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

Greg Trasuk commented on RIVER-444:
-----------------------------------

Small complication - In the com.sun.jini.tools directory, there are two 
classes, 'ClassServer' and 'DebugDynamicPolicyProvider', that have dependencies 
on classes that are elsewhere in the source.  ClassServer depends on 
'com.sun.jini.start.LifeCycle', and 'DebugDynamicPolicyProvider' depends on 
several class in 'net.jini.security.policy'.

Also, there is another package, 'com.sun.jini.tools.envcheck' which has several 
dependencies on the core API.

Fundamentally, the problem is that as it sits, the 'tools' package is a bit 
muddled:  part of it is tools for building the system (classdep, jarwrapper, 
etc), and part of it is tools for runtime (classserver, envcheck).  The runtime 
tools have a further dependency on the start package.  Obviously the build tool 
portion should be built prior to the main packages, and the runtime tool 
portion could be built after the main packages.

It would make sense to move the 'DebugDynamicPolicyProvider' into 
'net.jini.security'.

ClassServer and envcheck present a bigger problem, however.  As runtime tools, 
they should be in a separate deliverable (e.g. Maven module) from the build 
tools ( and it really doesn't make any sense to include them in the same parent 
project as the build tools).  But pulling them out into a separate deliverable 
would also imply pulling out the start package, the examples and 
service-browser packages (which depend on start), and also the qa packages 
(which depend on both start and the ClassServer).

All of which is not a bad thing, I think.  The build system ends up simplified, 
the project gets more modular, we get closer to a "modular build" and new users 
can simply start out with the examples project rather than the whole ball of 
string.  Also, merging back qa_refactor would seem like less of an issues, 
because those modules could similarly be removed from that branch.  But it does 
seem like quite a large change.

Any opinions?

> Extract classdep and other tools to a separate project and upgrade to JDK1.8
> ----------------------------------------------------------------------------
>
>                 Key: RIVER-444
>                 URL: https://issues.apache.org/jira/browse/RIVER-444
>             Project: River
>          Issue Type: Improvement
>          Components: build
>    Affects Versions: River_2.2.2
>            Reporter: Greg Trasuk
>
> Currently the build system in the 2.2 branch includes the classdep tool, 
> which is built in an early phase of the build.  It uses ASM3.2, which fails 
> under JDK8.
> I proposed on the mailing list to remove the tools package to a separate 
> project as follows:
> How about if I pull out the ‘tools’ package to a separate Maven project and 
> integrate the changes that Peter did on qa_refactor?  Then both the 2.2 
> branch and qa_refactor can use the same tools.
> Process would be as follows:
> - Create a project in Apache git repo for ‘river-tools’
> - Create a Maven project (I’ll have a look at the modularization that Dennis 
> did, I suspect this is already done) in that repository
> - Integrate Peter’s updates from qa-refactor (which update to use asm-5 in 
> classdep)
> - Do a release on river-tools, so that tools.jar can go into Maven Central 
> - Remove tools packages from 2.2. branch.  Modify build to get tools.jar from 
> Central rather than building it.
>       - I can update qa_refactor at the same time.
> - Roll a release of the 2.2. branch.
> Which will leave a 2.2. release that builds under JDK1.8, qa_refactor that 
> uses the same tool, and one less piece of build system confusion to put off 
> new committers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to