protected InstanceKeyDataSource getNewInstance()

in src/main/java/org/apache/commons/dbcp2/datasources/PerUserPoolDataSourceFactory.java [43:96]


    protected InstanceKeyDataSource getNewInstance(final Reference ref) throws IOException, ClassNotFoundException {
        final PerUserPoolDataSource pupds = new PerUserPoolDataSource();
        RefAddr refAddr = ref.get("defaultMaxTotal");
        if (refAddr != null && refAddr.getContent() != null) {
            pupds.setDefaultMaxTotal(parseInt(refAddr));
        }

        refAddr = ref.get("defaultMaxIdle");
        if (refAddr != null && refAddr.getContent() != null) {
            pupds.setDefaultMaxIdle(parseInt(refAddr));
        }

        refAddr = ref.get("defaultMaxWaitMillis");
        if (refAddr != null && refAddr.getContent() != null) {
            pupds.setDefaultMaxWait(Duration.ofMillis(parseInt(refAddr)));
        }

        refAddr = ref.get("perUserDefaultAutoCommit");
        if (refAddr != null && refAddr.getContent() != null) {
            final byte[] serialized = (byte[]) refAddr.getContent();
            pupds.setPerUserDefaultAutoCommit((Map<String, Boolean>) deserialize(serialized));
        }

        refAddr = ref.get("perUserDefaultTransactionIsolation");
        if (refAddr != null && refAddr.getContent() != null) {
            final byte[] serialized = (byte[]) refAddr.getContent();
            pupds.setPerUserDefaultTransactionIsolation((Map<String, Integer>) deserialize(serialized));
        }

        refAddr = ref.get("perUserMaxTotal");
        if (refAddr != null && refAddr.getContent() != null) {
            final byte[] serialized = (byte[]) refAddr.getContent();
            pupds.setPerUserMaxTotal((Map<String, Integer>) deserialize(serialized));
        }

        refAddr = ref.get("perUserMaxIdle");
        if (refAddr != null && refAddr.getContent() != null) {
            final byte[] serialized = (byte[]) refAddr.getContent();
            pupds.setPerUserMaxIdle((Map<String, Integer>) deserialize(serialized));
        }

        refAddr = ref.get("perUserMaxWaitMillis");
        if (refAddr != null && refAddr.getContent() != null) {
            final byte[] serialized = (byte[]) refAddr.getContent();
            pupds.setPerUserMaxWaitMillis((Map<String, Long>) deserialize(serialized));
        }

        refAddr = ref.get("perUserDefaultReadOnly");
        if (refAddr != null && refAddr.getContent() != null) {
            final byte[] serialized = (byte[]) refAddr.getContent();
            pupds.setPerUserDefaultReadOnly((Map<String, Boolean>) deserialize(serialized));
        }
        return pupds;
    }