[ 
https://issues.apache.org/jira/browse/DERBY-5955?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dag H. Wanvik updated DERBY-5955:
---------------------------------

    Attachment: derby-5955-client-restructure-01.stat
                derby-5955-client-restructure-01.diff

Uploading patch derby-5955-client-restructure-01. This patch restructures the 
data source hierarchy of the client driver with the same aim as for the 
embedded driver; to prepare for data sources that are not dependent on JNDI.

Patch details:

A   ClientDataSourceInterface
A   ClientConnectionPoolDataSourceInterface
A   ClientXADataSourceInterface

The patch adds three new interfaces allowing the common parts of the data 
sources to be declared there.

M       java/client/org/apache/derby/jdbc/ClientBaseDataSource.java

The base implementation, ClientBaseDataSource is analogous to 
EmbeddedBaseDataSource. It no longer implements Referenceable, that is moved to 
ClientDataSource.  The basic getConnection method is hoisted up into 
ClientBaseDataSource, as are minion methods for pooled connections and XA 
connections. Constants are moved to ClientDataSourceInterface. Both the latter 
changes makes those resources available to new data sources (not yet introduced 
in this patch) not inheriting ClientDataSource; with its JNDI dependence.

M       java/client/org/apache/derby/client/net/ClientJDBCObjectFactoryImpl.java
M       
java/client/org/apache/derby/client/net/ClientJDBCObjectFactoryImpl40.java
M       java/client/org/apache/derby/client/ClientXAConnection.java
M       java/client/org/apache/derby/client/ClientXAConnection40.java
M       java/client/org/apache/derby/client/am/Configuration.java
M       java/client/org/apache/derby/client/am/Connection.java
M       java/client/org/apache/derby/jdbc/ClientDriver.java

Smaller changes to accomodate the new hierarchy.

M       java/client/org/apache/derby/client/am/LogWriter.java

Smaller changes to accomodate the new hierarchy plus LogWriter#getAttributes it 
no longer uses Reference#getAll to get at the data source's attributes, but now 
uses bean inspection to avoid presuming the data source has implements 
Referenceable. 

M       java/client/org/apache/derby/jdbc/ClientConnectionPoolDataSource.java

Now uses the minion connection methods and implements the new 
ClientConnectionPoolDataSourceInterface.

M       java/client/org/apache/derby/jdbc/ClientConnectionPoolDataSource40.java
M       java/client/org/apache/derby/jdbc/ClientDataSource40.java
M       java/client/org/apache/derby/jdbc/ClientXADataSource40.java

These now implement javax.sql.*DataSource to get compile-time check that they 
actually implement the 4.1 extensions; added a missing explicit 
serialVersionUID chosen to be the old default value (otherwise serialization 
would break with the new hierachy changes).

M       java/client/org/apache/derby/jdbc/ClientDataSource.java

Now implements Referenceable itself instead of through ClientBaseDataSource.
Now inherits basic connection methods from ClientBaseDataSource instead of 
implementing them itself.

M       java/client/org/apache/derby/jdbc/ClientXADataSource.java

Now implements ClientXADataSourceInterface; hoisted its connection logic up to 
ClientBaseDataSource.

M       tools/jar/dnc.properties
M       java/client/org/apache/derby/client/am/ClientJDBCObjectFactory.java
M       java/client/org/apache/derby/client/net/NetConnection.java
M       java/client/org/apache/derby/client/net/NetConnection40.java
M       
java/testing/org/apache/derbyTesting/functionTests/tests/upgradeTests/UpgradeTrajectoryTest.java
M       java/testing/org/apache/derbyTesting/junit/J2EEDataSource.java

Trivial changes

Running regressions, please review.

                
> Prepare Derby to run with Compact Profiles (JEP 161)
> ----------------------------------------------------
>
>                 Key: DERBY-5955
>                 URL: https://issues.apache.org/jira/browse/DERBY-5955
>             Project: Derby
>          Issue Type: Improvement
>          Components: Documentation, JDBC, Services, SQL
>            Reporter: Dag H. Wanvik
>            Assignee: Dag H. Wanvik
>         Attachments: apidiff.zip, client-graph.png, 
> derby-5955-client-restructure-01.diff, derby-5955-client-restructure-01.stat, 
> derby-5955-embed-restructure-01.diff, derby-5955-embed-restructure-01.stat, 
> derby-5955-embed-restructure-02.diff, derby-5955-embed-restructure-02.stat, 
> derby-5955-embed-restructure-03.diff, derby-5955-embed-restructure-03.stat, 
> derby-5955-embed-restructure-04.diff, derby-5955-embed-restructure-04.stat, 
> derby-5955-embed-restructure-followup.diff, 
> derby-5955-embed-restructure-followup.stat, 
> derby-5955-proof-of-concept-2.diff, derby-5955-proof-of-concept-2.stat, 
> derby-5955-proof-of-concept.diff, derby-5955-proof-of-concept.stat, 
> derby-5955-ser.zip, embedded-graph.png, old-client-graph.png, 
> old-embedded-graph.png, publishedapi.zip, publishedapi.zip
>
>
> While waiting for a Java module system (aka project Jigsaw), it has been 
> decided to define a few subsets of the Java SE Platform Specification, cf JEP 
> 161 ( http://openjdk.java.net/jeps/161).
> A quote from the JEP: "More broadly, this feature is intended to enable the 
> migration of applications currently built on top of the Java ME Connected 
> Device Configuration (CDC) to appropriate Profiles of the Java SE Platform, 
> part of the long-term effort to converge CDC with Java SE."
> It would be good if we make Derby to run on such limited profiles. The 
> current proposal places JDBC in Compact Profile 2 (cf. link above), while 
> other libraries used by Derby, e.g. javax.naming (JNDI) are in Profile 3 
> (larger).
> It would be good if Derby could run on the smallest posible platform, i.e. 
> Profile 2, but that will probably involve some changes to make Derby 
> gracefully limit functionality when some libraries are missing.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to