You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Norbert Kalmar (JIRA)" <ji...@apache.org> on 2018/04/20 11:08:00 UTC

[jira] [Created] (ZOOKEEPER-3021) Umbrella: Migrate project structure to Maven build

Norbert Kalmar created ZOOKEEPER-3021:
-----------------------------------------

             Summary: Umbrella: Migrate project structure to Maven build
                 Key: ZOOKEEPER-3021
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-3021
             Project: ZooKeeper
          Issue Type: Improvement
          Components: build, build-infrastructure, scripts
    Affects Versions: 3.6.0
            Reporter: Norbert Kalmar


In multiple steps, Maven should replace current ant build in ZooKeeper.

 
First iteration: separate project structure
{noformat}
zookeeper
|-bin
|-conf
|-zk-client-c
|-zk-contrib
| |-zk-contrib-fatjar
| |-zk-contrib-huebrowser
| |-zk-contrib-loggraph
| |-zk-contrib-monitoring
| |-zk-contrib-rest
| |-zk-contrib-zkfuse
| |-zk-contrib-zkperl
| |-zk-contrib-zkpython
| |-zk-contrib-zktreeutil
| \-zk-contrib-zooinspector
|-zk-docs
|-zk-it (integration tests)
|-zk-server
|-zk-recipes
| |-zk-recipes-election
| |-zk-recipes-lock
\ \-zk-recipes-queue
{noformat}
 
With this kind of structure, the code change could be kept to a bare minimum, if any at all.
Just change the ant script to conform to the new structure. 
 
Second iteration: code changes:
{noformat}
zookeeper
|-bin
|-conf
|-jute
|-zk-client
| |-zk-client-c
| |-zk-client-java
| \-zk-client-go (or any other language)
|-zk-common
|-zk-contrib
| |-zk-contrib-fatjar
| |-zk-contrib-huebrowser
| |-zk-contrib-loggraph
| |-zk-contrib-monitoring
| |-zk-contrib-rest
| |-zk-contrib-zkfuse
| |-zk-contrib-zkperl
| |-zk-contrib-zkpython
| |-zk-contrib-zktreeutil
| \-zk-contrib-zooinspector
|-zk-docs
|-zk-it (integration tests)
|-zk-server
|-zk-recipes
| |-zk-recipes-election
| |-zk-recipes-lock
\ \-zk-recipes-queue
{noformat}
 
Here, java client code is separated from the server code (and any other supported languages client code).
 
Third iteration: maven structure
{noformat}
zk-something
|-src
| |-main
| | |-java
| | | \org...
| | \resources
| \test (unit tests only?)
| |-java
| | \org...
| \resources
\pom.xml (build.xml, build.gradle?)
{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)