[
https://issues.apache.org/jira/browse/DERBY-6945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16377030#comment-16377030
]
Rick Hillegas commented on DERBY-6945:
--------------------------------------
Attaching derby-6945-22-ad-isolateClassesByArtifact.diff. This is a preliminary
patch which passes regression tests but which needs to be stressed further. The
patch re-plumbs the build so that each artifact (released jar) has its own
subdirectory under the output classes directory. That is, instead of dumping
all classes into...
{noformat}
trunk/classes
{noformat}
...this patch dumps classes into the following subdirectories...
{noformat}
derby.jar -> trunk/classes/engine
derbyclient.jar -> trunk/classes/client
derbyshared.jar -> trunk/classes/shared
derbytools.jar -> trunk/classes/tools
derbyoptionaltools.jar -> trunk/classes/optional
derbynet.jar -> trunk/classes/drda
derbyrun.jar -> trunk/classes/run
all locale jars -> trunk/classes/locales
derbyTesting.jar -> trunk/classes/testing
demo classes -> trunk/classes/demo
build support -> trunk/classes/build
{noformat}
I apologize for the disruption which will be encountered by people who run
derby from the classpath. Instead of just adding trunk/classes to the
classpath, people will need to add all of the above directories to the
classpath.
This considerably simplifies the build targets which assemble the jar
artifacts. More importantly, this change will set us up for adding module
descriptors. Each jar file will need its own module descriptor. The descriptors
all have to have the same name (module-info.java) and they have to be compiled
into the root directory of the class-space. Separating each artifact into its
own output silo is necessary for distinguishing the compiled module descriptors
from one another.
I am attaching this preliminary patch just in case something awkward happens to
me on my way home from vacation.
> 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-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)