Andy Guibert created DERBY-7039:
-----------------------------------

             Summary: DataSource classes removed from derby.jar
                 Key: DERBY-7039
                 URL: https://issues.apache.org/jira/browse/DERBY-7039
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.15.1.3
            Reporter: Andy Guibert


Between versions 10.14.X and 10.15.X the DataSource implementation classes 
under the org.apache.derby.jdbc package were removed from the derby.jar. It 
looks like the DataSource classes were moved to derbytools.jar, which has a 
dependency on the derbynetwork.jar: 
[https://db.apache.org/derby/docs/10.15/publishedapi/org.apache.derby.tools/module-summary.html]

This makes it impossible to use just a Derby Embedded DataSource, without 
pulling in all of the Derby Network Client code too.

It appears this change was made for the sake of modularity, since split 
packages are not allowed in JPMS modules, and the org.apache.derby.jdbc package 
contains DataSource classes for both Embedded and Network usage. I am not sure 
what the best way to untangle this dependency issue is, but ideally it can be 
done in a way that doesn't require dependencies on Derby Embedded and Network 
clients in order to use DataSource at all.

One possible suggestion is to introduce new DataSource classes in new packages, 
such as:

org.apache.derby.jdbc.embedded // for Embedded DataSource classes
org.apache.derby.jdbc.network // for Network Client DataSources

Then, gut out the DataSource classes in org.apache.derby.jdbc and have them 
extend from their respective embedded/network implementations. This will allow 
existing users to add more dependencies and leave their code unchanged, or it 
will allow users who just want to depend on Embedded or Network clients to 
update the DataSource class name.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to