Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-3021

Umbrella: Migrate project structure to Maven build

    Details

    • Type: Improvement
    • Status: In Progress
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.6.0
    • Fix Version/s: None
    • Labels:
      None

      Description

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

      First phase - separate project structure that requires no code change:

      zookeeper
      |-bin
      |-conf
      |-zk-client
      | |-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
      

       
       
      Second phase - separate modules that require code changes:

      zookeeper
      |-bin
      |-conf
      *|-jute*
      |-zk-client
      | |-zk-client-c
      *| |-zk-client-java* (separated from zk-server)
      *| \-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
      

       
      Every module will have the same maven structure:

      zk-something
      |-src
      | |-main
      | | |-java
      | | | \org...
      | | \resources
      | \test (unit tests only?)
      | |-java
      | | \org...
      | \resources
      \pom.xml (build.xml, build.gradle?)
      

      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.

      It is also worth noting, that backporting only the package changes to 3.4 is a good practice for future backport commits. Maven build implementation not needed, just the directory structuro to be compatible with 3.5/master.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nkalmar Norbert Kalmar
                Reporter:
                nkalmar Norbert Kalmar
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 8h 40m
                  8h 40m