You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rick Hillegas (JIRA)" <ji...@apache.org> on 2018/03/07 02:09:01 UTC

[jira] [Commented] (DERBY-6945) Re-package Derby as a collection of jigsaw modules

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

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

Attaching derby-6945-22-ae-isolateClassesByArtifact.diff. This is a revision of the patch which splits the classes directory into separate directories for each release jar. Tests pass cleanly on this patch. I have run the tests via my own scripts and via the junit-all target.

I do not want to break the development environments of people who run tests a different way. In particular, I would appreciate it if someone else could apply the patch and run the tests according to their own practices. In particular, I would appreciate hearing about how the patch behaves for people who run the tests after setting up their own custom classpaths built out of the classes directory.

There is a little more work to be done with this patch, perhaps in a follow-on effort: I would like to split the generated source directory into separate subdirectories for each of the jar files which contain generated classes. This will reduce the brittleness of the changes I made to the build scripts for the engine, shared, and tools jars.

Thanks!

Touches the following files:

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

M       tools/ant/properties/dirs.properties

New variables for the locations of the separate classes subdirectories
corresponding to each jar file.

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

M       java/build/org/apache/derbyBuild/build.xml
M       java/client/build.xml
M       java/demo/build.xml
M       java/drda/build.xml
M       java/engine/build.xml
M       java/demo/toursdb/build.xml
M       java/engine/org/apache/derby/loc/build.xml
M       java/optional/build.xml
M       java/run/build.xml
M       java/shared/build.xml
M       java/storeless/build.xml
M       java/testing/build.xml
M       java/build/org/apache/derbyPreBuild/build.xml
M       java/tools/build.xml

Changes to the build scripts to use the new variables.

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

M       build.xml

Simplification of the jar-file building targets. Now each jar target
mostly just gathers up the classes under its corresponding
subdirectory under trunk/classes.

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

M       java/build/org/apache/derbyBuild/lastgoodjarcontents/sane.derbyTesting.jar.lastcontents

Moves some demo classes into the testing jar because they are used by
the regression tests. Previously, these classes did not live in any
jar file.

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

M       java/build/org/apache/derbyBuild/splitmessages.java

Makes the message splitter write the localizations into trunk/classes/locales.

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

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

Don't run VetJigsawTest if running from the classes directory tree
rather than from jar files.

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

M       java/testing/org/apache/derbyTesting/junit/SecurityManagerSetup.java

There is now a classes subdirectory corresponding to each jar
file. Set the security policy variables so that when you run from jar
files, the variables point at jar files, and when you run from classes, the
variables point to the different classes subdirectories. This makes it possible to
eliminate the extra block of permissions in each policy file which
granted all of the needed privileges to the entire trunk/classes codebase.

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

M       java/testing/org/apache/derbyTesting/functionTests/tests/compatibility/VersionCombinationConfigurator.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/ProtocolTest.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/replicationTests/Derby5937SlaveShutdownTest.policy
M       java/testing/org/apache/derbyTesting/functionTests/tests/store/Derby3980DeadlockTest.policy
M       java/testing/org/apache/derbyTesting/functionTests/tests/tools/derbyrunjartest.policy
M       java/testing/org/apache/derbyTesting/functionTests/tests/unit/fillLog.policy
M       java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy
M       java/testing/org/apache/derbyTesting/functionTests/util/useprocessfalse.policy
M       java/testing/org/apache/derbyTesting/unitTests/junit/AssertFailureTest.policy
M       java/testing/org/apache/derbyTesting/unitTests/junit/AssertFailureTest1.policy
M       java/testing/org/apache/derbyTesting/unitTests/junit/MissingPermissionsTest.java
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

Adjust the security policies to refer to the new security variables.
{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, derby-6945-20-aa-removeClasslister.diff, derby-6945-21-aa-simplifyBuildScripts.diff, derby-6945-21-ab-simplifyBuildScripts.diff, derby-6945-22-ad-isolateClassesByArtifact.diff, derby-6945-22-ae-isolateClassesByArtifact.diff, derby-6945-XX-moveDataSourceFactories, jdeps.out.tar, weirdAnt.out
>
>
> 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)