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:16:00 UTC

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

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-3021?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Norbert Kalmar updated ZOOKEEPER-3021:
--------------------------------------
    Description: 
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}

There is already ZOOKEEPER-1078, but it's main approach is to create a maven proxy on top of ant. 
The main idea here is to replace ant with "pure" maven, and update the project structure accordingly.

  was:
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}


> 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
>            Priority: Major
>
> 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}
> There is already ZOOKEEPER-1078, but it's main approach is to create a maven proxy on top of ant. 
> The main idea here is to replace ant with "pure" maven, and update the project structure accordingly.



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