[
https://issues.apache.org/jira/browse/DERBY-6645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16725979#comment-16725979
]
Rick Hillegas commented on DERBY-6645:
--------------------------------------
The existing maven logic in trunk/maven2 is only used to publish release
artifacts to the maven repositories. Most developers never touch it. Only
release managers do. Instructions for operating it can be found in the cookbook
for release publication at https://wiki.apache.org/db-derby/ReleasePublication.
The build targets for message management accomplish the following goals:
1) Messages and their localizations should be packaged inside the modules which
raise those messages. However, the tools module violates this pattern for
reasons which I don't understand. That logic pre-dates my involvement with
Derby. The English tools messages are packaged inside the tools module but the
non-English localizations for those messages live inside the locale-specific
jars. Client messages and their localizations are packaged inside
derbyclient.jar. Server messages and their localizations are packaged inside
derbynet.jar.
2) The engine messages are split up into many smaller files. There are a lot of
engine messages and this extra complexity is supposed to prevent the engine
from faulting in unnecessary message strings and thereby consuming too much
memory. In an effort to reduce the static footprint of the engine jar, the
localizations for engine messages were separated out into separate jar files,
one for each supported locale. As noted above, for some reason the
localizations for tools messages managed to leak into those jar files. Message
splitting is accomplished by the
trunk/java/build/org/apache/derbyBuild/splitmessages.java build tool, which is
invoked by the oddball
trunk/java/org.apache.derby.engine/org/apache/derby/loc/build.xml script as
part of building the engine module.
3) We generate user documentation for the engine messages. The following
Reference Guide page is generated by the Derby build:
http://db.apache.org/derby/docs/10.14/ref/rrefexcept71493.html. The source for
the english engine messages lives in
trunk/java/org.apache.derby.engine/org/apache/derby/loc/messages.xml alongside
extra information needed to document them. This file is consumed by the
trunk/java/build/org/apache/derbyBuild/MessageBuilder.java build tool. That
tool generates
trunk/generated/java/org.apache.derby.engine/org/apache/derby/loc/messages_en.properties,
the input file to step (2) above. The MessageBuilder tool also generates the
dita source for the Reference Guide page.
> Switch to Maven for building Apache Derby
> -----------------------------------------
>
> Key: DERBY-6645
> URL: https://issues.apache.org/jira/browse/DERBY-6645
> Project: Derby
> Issue Type: Improvement
> Components: Build tools
> Affects Versions: 10.10.2.0
> Reporter: Moritz Hoffmann
> Priority: Major
> Attachments: DERBY-6645_v1.patch
>
>
> For a new user building Derby is very hard. It does not follow established
> Java project structures and requires a lot of prior knowledge. Also the
> documentation is rather short. Especially running the tests is non-intuitive
> at the beginning. Thus, I propose that Derby switches to building using Maven
> and restructures its components in a cleaner way. Testing should be revised
> to produce reproducible results. This would make development and testing much
> easier and more user-friendly.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)