[
https://issues.apache.org/jira/browse/DERBY-6945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16499258#comment-16499258
]
Rick Hillegas commented on DERBY-6945:
--------------------------------------
I have prepared a gigantic rototill of the source tree,
derby-6945-37-aa-renameSourceRootsToModuleNames.diff. It is so big (67M) that
JIRA will not let me attach the patch. This patch renames the source roots so
that each one has the name of its module. That is, this patch renames source
directories as follows:
{noformat}
java/client -> java/org.apache.derby.client
java/shared -> java/org.apache.derby.commons
java/engine -> java/org.apache.derby.engine
java/optional -> java/org.apache.derby.optionaltools
java/run -> java/org.apache.derby.runner
java/drda -> java/org.apache.derby.server
java/testing -> java/org.apache.derby.tests
java/tools -> java/org.apache.derby.tools
{noformat}
This change is needed so that javadoc can run on the codeline now that we have
added module descriptors. We must get over a couple hurdles in order to build
javadoc on the modularized codeline:
1) We need to rename the source directories as noted above. This is apparently
described in the "Compile time" section of http://openjdk.java.net/jeps/261, as
explained to me in an email thread titled "running javadoc against multiple
modules" on the javadoc-dev mailing list (javadoc-dev at openjdk dot java dot
net).
2) For the time being, we will need to invoke javadoc via ant's <exec> task
rather than via ant's <javadoc> task. That is because ant does not yet support
any of the module-aware switches of the javadoc tool. For more context, see the
email thread titled "generating module-aware javadoc with ant" on the Apache
ant user mailing list (user at ant dot apache dot org).
Tests passed cleanly for me on this patch.
This patch touches every production source file in the codeline. That is
because the patch renames the top level source directories, with cascading
consequences. I used the "svn move" command, so that backporting and code
archaeology will survive this rototill. The most important changes are:
{noformat}
------------------------
A + java/org.apache.derby.client
A + java/org.apache.derby.commons
A + java/org.apache.derby.engine
A + java/org.apache.derby.optionaltools
A + java/org.apache.derby.runner
A + java/org.apache.derby.server
A + java/org.apache.derby.tests
D java/client
D java/engine
D java/shared
D java/optional
D java/run
D java/drda
D java/testing
Rename the source roots so that they match their module names.
------------------------
M + java/org.apache.derby.engine/build.xml
M + java/org.apache.derby.tools/build.xml
Adjust the javacc targets to refer to the new source directory names.
------------------------
M tools/ant/properties/dirs.properties
Adjust the build variables which point at the source roots.
{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-22-af-isolateClassesByArtifact.diff,
> derby-6945-23-aa-upgradeToAnt_1.10.2.diff,
> derby-6945-24-aa-fixNativeAuthenticationServiceTest.diff,
> derby-6945-25-ab-moduleDescriptors.diff,
> derby-6945-26-aa-packagePrivateTests.diff,
> derby-6945-27-aa-adjustModulesForTests.diff,
> derby-6945-28-aa-testingModuleDescriptor.diff,
> derby-6945-29-aa-disable-SimpleApp-test.diff,
> derby-6945-30-ab-move-clientmessages-toolsmessages.diff,
> derby-6945-31-aa-clientmessages-ResourceBundleProvider.diff,
> derby-6945-32-aa-messageLookupCleanup.diff,
> derby-6945-33-ab-moveLocalizations.diff,
> derby-6945-34-aa-licenseHeaders.diff,
> derby-6945-35-aa-removeSpuriousCharacter.diff,
> derby-6945-36-aa-moduleDescriptorsForLocaleJars.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)