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)