[ https://issues.apache.org/jira/browse/RIVER-300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12983204#action_12983204 ]
Dennis Reedy commented on RIVER-300: ------------------------------------ The organization of the project is structured as follows: apache-river \ |- river-libs (*) |- river-dl |- river-lib |- river-services (*) \ |- reggie (*) \ |- reggie-proxy |- reggie-service |- outrigger (*) \ |- outrigger-proxy |- outrigger-service |- river-platform |- river-start At this time, each module produces one artifact (the directories with a '*' do not produce artifacts, they are used for source code organization). The produced name of the artifact is the same as the name of the module, with the addition of the version number of the project. Going forward we may find that we need to provide additional processing options in river-platform to produce equivalent jsk-resources and jsk-policy.jar artifacts. All Java source code is located in accepted standard locations src/main/java Groovy source would similarly be located in src/main/groovy All test code for each module is encouraged to be located in src/test/java As for determining what classes go in what module, the approach is simply to look at what classes are in what jar file and organize the modules accordingly. Key to the modularization was to remove reliance on classdepandjar. It should be simple to see how additional services can be added to this structure by following the convention of: <service> \ | - <service>-proxy | - <service>-service More information on the convention used for this project can be found here: http://www.rio-project.org/conventions.html Building -------- If using Maven, well, you use Maven. If you are not familiar with Maven you want to start here http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html Running either > mvn install Or > mvn package The distribution is placed into dist/target/apache-river-2.2-SNAPSHOT If using Gradle, > gradle build > gradle -q dist The distribution is placed into distribution/ The produced jars for either distribution are as follows: lib/ outrigger-service-2.2-SNAPSHOT.jar outrigger-snaplogstore-2.2-SNAPSHOT.jar reggie-service-2.2-SNAPSHOT.jar river-lib-2.2-SNAPSHOT.jar river-platform-2.2-SNAPSHOT.jar river-start-2.2-SNAPSHOT.jar lib-dl/ ------- outrigger-proxy-2.2-SNAPSHOT.jar reggie-proxy-2.2-SNAPSHOT.jar river-dl-2.2-SNAPSHOT.jar The produced archives also have converted the com.sun.jini namespace to the org.apache.river namespace. Testing ------- Right now there are no testcases included in the contributions. Ideally, we would move forward with adding testcases to each constituent module. That way as each module is assembled, it will run through it's testcases in an automated fashion. The current testing framework can be easily added to the existing build setup in the same way as it's run today, perhaps tied to a specific lifecycle using Maven), or to a specific task (using Gradle). The latter may be more accepted since Gradle has strong Ant ties and semantics. > introduce maven to the river build process > ------------------------------------------ > > Key: RIVER-300 > URL: https://issues.apache.org/jira/browse/RIVER-300 > Project: River > Issue Type: Improvement > Components: build > Reporter: Jools Enticknap > Attachments: apache-river-gradle.zip, apache-river-maven.zip > > > Currently the river build using ant, but it's a custom build process and has > many hang overs from the original make build. > Given that the project has no 3rd party dependencies, it would be very easy > to break the code up into modules. > Please feel free to add to this JIRA if you have any opinions on how the > maven repository should be setup. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.