[ 
https://issues.apache.org/jira/browse/DERBY-6945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16360163#comment-16360163
 ] 

Rick Hillegas commented on DERBY-6945:
--------------------------------------

Attaching derby-6945-19-ad-movePublicAPIintoToolsJar.diff. This patch 
consolidates the org.apache.derby.jdbc package in derbytools.jar. Tests passed 
cleanly on this patch. As of this patch:

1) Class-bearing packages are partitioned across the jar files. No 
class-bearing package straddles multiple jar files.

2) VetJigsawTest is enabled so that the regression tests now verify this clean 
partitioning of packages.

3) Security policies are adjusted to grant the userderbyinternals privilege to 
derbytools.jar, now that it contains the DataSources.

4) The classlister program is no longer used to calculate the contents of the 
jar files. Instead, each jar file simply contains the classes corresponding to 
the directory tree underneath its source root. Those package spaces are 
declared in tidy "include" elements in the jar commands. The jars can now be 
described as follows:

{noformat}
derbyrun.jar

  org.apache.derby.run...

derbyshared.jar

  org.apache.derby.shared...

derbyoptionaltools.jar

  org.apache.derby.optional...

derbyclient.jar

  org.apache.derby.client...

derbynet.jar

  org.apache.derby.drda...
  org.apache.derby.impl.drda...

derbytools.jar

  org.apache.derby.iapi.tools...
  org.apache.derby.impl.tools...
  org.apache.derby.jdbc...
  org.apache.derby.tools...

derby.jar (all other packages)

  org.apache.derby.agg...
  org.apache.derby.authentication...
  org.apache.derby.catalog...
  org.apache.derby.database...
  org.apache.derby.diag...
  org.apache.derby.iapi.db...
  org.apache.derby.iapi.jdbc...
  org.apache.derby.iapi.security...
  org.apache.derby.iapi.services...
  org.apache.derby.iapi.sql...
  org.apache.derby.iapi.store...
  org.apache.derby.iapi.transaction...
  org.apache.derby.iapi.types...
  org.apache.derby.iapi.util...
  org.apache.derby.impl.db...
  org.apache.derby.impl.io...
  org.apache.derby.impl.jdbc...
  org.apache.derby.impl.load...
  org.apache.derby.impl.services...
  org.apache.derby.impl.sql...
  org.apache.derby.impl.store...
  org.apache.derby.io...
  org.apache.derby.mbeans...
  org.apache.derby.osgi...
  org.apache.derby.security...
  org.apache.derby.vti...
{noformat}

A future patch will remove the classlister program and its source lists.
  
We may want to move non-class resources into separate directory spaces. 
However, the current situation does not seem to break the sealing directives. 
Maybe it will break resource resolution when we add module descriptors.

Touches the following files:

{noformat}
--------------------------------------------

M       build.xml
M       
java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derby.jar.lastcontents
M       
java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbyclient.jar.lastcontents
M       
java/build/org/apache/derbyBuild/lastgoodjarcontents/insane.derbytools.jar.lastcontents
M       
java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derby.jar.lastcontents
M       
java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyclient.jar.lastcontents
M       
java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbytools.jar.lastcontents

Moves everything that's left in org.apache.derby.jdbc into derbytools.jar.

--------------------------------------------

M       java/client/org/apache/derby/client/BasicClientDataSource.java

Corrects the hardwired name of this class. This was overlooked by a previous 
checkin which moved this class out of the public api.

--------------------------------------------

M       java/drda/org/apache/derby/drda/server.policy
M       java/drda/org/apache/derby/drda/template.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/GetCurrentPropertiesTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetworkServerControlApiTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/RuntimeInfoTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SecureServerTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ServerPropertiesTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SysinfoTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/engine/noDeregisterPermission.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/jdbc4/noAbortPermission.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LDAPTests.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/XATest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/SecurityPolicyReloadingTest.initial.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/SecurityPolicyReloadingTest.modified.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/SecurityPolicyReloadingTest.unreloadable.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/no_derby_internals.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/resultSetReader.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/management/CacheManagerMBeanTest.withPerm.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/management/CacheManagerMBeanTest.withoutPerm.policy
M       
java/testing/org/apache/derbyTesting/functionTests/tests/store/Derby3980DeadlockTest.policy
M       
java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy
M       
java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest.policy
M       
java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest1.policy
M       
java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest2.policy
M       
java/testing/org/apache/derbyTesting/unitTests/junit/SystemPrivilegesPermissionTest.policy
M       
java/testing/org/apache/derbyTesting/unitTests/junit/SystemPrivilegesPermissionTest1.policy

Adjusts security policies to grant usederbyinternals to derbytools.jar.

--------------------------------------------

M       
java/testing/org/apache/derbyTesting/functionTests/tests/store/ClassLoaderBootTest.java

Adjusts the classpath constructed by this test so that it includes both the 
engine and the tools jar, now that the tools jar contains the DataSources.

--------------------------------------------

M       java/testing/org/apache/derbyTesting/junit/Derby.java
M       java/testing/org/apache/derbyTesting/junit/DerbyDistribution.java
M       java/testing/org/apache/derbyTesting/junit/DerbyVersion.java

Adjusts the 10.15 classpaths used by the compatibility tests. The 10.15 engine 
classpath now includes the tools jar since that's where its DataSources live. 
Similarly, the 10.15 client classpath now includes the tools jar in order to 
access the client DataSources. 

--------------------------------------------

M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/VetJigsawTest.java
M       
java/testing/org/apache/derbyTesting/functionTests/tests/lang/_Suite.java

Enables the test which verifies the clean partitioning of package spaces across 
our release artifacts. Improves that test so that it is only sensitive to the 
location of classes and ignores the location of resources.
{noformat}


> Re-package Derby as a collection of jigsaw modules
> --------------------------------------------------
>
>                 Key: DERBY-6945
>                 URL: https://issues.apache.org/jira/browse/DERBY-6945
>             Project: Derby
>          Issue Type: Improvement
>    Affects Versions: 10.13.1.2
>            Reporter: Rick Hillegas
>            Priority: Major
>         Attachments: derby-6945-01-aa-remove_derbyPreBuild_dep.diff, 
> derby-6945-02-ab-newDerbySharedJar.diff, 
> derby-6945-02-ac-newDerbySharedJar.diff, derby-6945-03-aa-partitionTest.diff, 
> derby-6945-04-aa-moveRunClass.diff, 
> derby-6945-05-aa-removeRedundant_Attribute_SQLState.diff, 
> derby-6945-06-aa-removeOtherSharedDuplicates.diff, 
> derby-6945-07-aa-net_client_overlap.diff, 
> derby-6945-08-aa-move_shared_iapi_under_shared.diff, 
> derby-6945-08-ab-move_shared_iapi_under_shared.diff, 
> derby-6945-08-ad-move_shared_iapi_under_shared.diff, 
> derby-6945-09-ab-moveInternalDriver.diff, derby-6945-10-aa-moveDriver42.diff, 
> derby-6945-11-ab-moveAutoloadedDriver.diff, 
> derby-6945-12-ab-moveClientDataSourceInterface.diff, 
> derby-6945-13-aa-create-ClientAutoloadedDriver.diff, 
> derby-6945-14-aa-moveMoreEmbeddedClassesOutOfPublicAPI.diff, 
> derby-6945-15-aa-moveMoreClientClassesOutOfPublicAPI.diff, 
> derby-6945-16-aa-consolidatePublicAPI.diff, 
> derby-6945-17-aa-resealPackagesIn-derbyshared.diff, 
> derby-6945-18-aa-resealLocalizationPackage.diff, 
> derby-6945-19-ad-movePublicAPIintoToolsJar.diff, jdeps.out.tar
>
>
> Once we commit to building with Java 9 (see DERBY-6856), we should consider 
> re-packaging Derby as a set of jigsaw modules. This would result in a 
> different set of release artifacts. This might be a good opportunity to 
> address the Tomcat artifactory issues raised by issue DERBY-6944.



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

Reply via email to