Hi Norbert,
thank you for your suggestiion

there is a long standing patch for migration to Maven
https://issues.apache.org/jira/browse/ZOOKEEPER-1078

personally I am using that pom.xml in order to speed up work

I really would like this change, but we need support from some committer.
It is an important change and it cannot be done without full consensus in
the community

Cheers
Enrico


2018-04-19 13:28 GMT+02:00 Norbert Kalmar <nkal...@cloudera.com>:

> Hi ZooKeeper community,
>
> As the vast majority of the components in the Hadoop ecosystem is built
> with Maven, what do you think of moving Zookeeper to a Maven structure as
> well?
>
> This would bring the benefit of a more consistent project structure, better
> dependency management and more possibilities for future changes (i.e.: we
> could separate java client code so that projects like HDFS that only needs
> the client doesn't have to import the whole ZooKeeper).
>
> This could be done as a multi-step change.
>
> The change would also include the separation of unit tests from integration
> and/or functional tests.
>
> In the first iteration, the project structure could be separated something
> like:
>
> 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
>
>
> 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.
>
> In a second iteration, we could start the changes that require code changes
> as well:
>
> 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
>
>
> Here, java client code is separated from the server code (and any other
> supported languages client code).
>
> The final iteration would be something like:
>
> zk-something
> |-src
> | |-main
> | |  |-java
> | |  | \org...
> | |   \resources
> | \test (unit tests only?)
> |  |-java
> |  |  \org...
> |  \resources
> \pom.xml
>
>
> But this is just to give a high level example/vision.
>
> Of course, with all the iteration, even at the end when possibly moving to
> a full Maven build, it is important that the final jar structure remains
> the same.
>
> What do you think?
>
> Kind regards,
> Norbert
>

Reply via email to