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

Umbrella: Migrate project structure to Maven build

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    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

        There are no Sub-Tasks for this issue.

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            nkalmar Norbert Kalmár
            nkalmar Norbert Kalmár
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 67.5h
                67.5h

                Slack

                  Issue deployment