diff --git a/.gitignore b/.gitignore index 5b7d5dcac48..cb2399f0548 100644 --- a/.gitignore +++ b/.gitignore @@ -69,35 +69,39 @@ tags obj zookeeper-server/src/main/resources/lib/ant-eclipse-* zookeeper-server/src/main/resources/lib/ivy-* -zookeeper-client/zookeeper-client-c/Makefile.in -zookeeper-client/zookeeper-client-c/aclocal.m4 -zookeeper-client/zookeeper-client-c/autom4te.cache/ -zookeeper-client/zookeeper-client-c/compile -zookeeper-client/zookeeper-client-c/config.guess -zookeeper-client/zookeeper-client-c/config.h.in -zookeeper-client/zookeeper-client-c/config.sub -zookeeper-client/zookeeper-client-c/configure -zookeeper-client/zookeeper-client-c/depcomp -zookeeper-client/zookeeper-client-c/install-sh -zookeeper-client/zookeeper-client-c/ltmain.sh -zookeeper-client/zookeeper-client-c/missing -zookeeper-client/zookeeper-client-c/.deps/ -zookeeper-client/zookeeper-client-c/.libs/ -zookeeper-client/zookeeper-client-c/Makefile -zookeeper-client/zookeeper-client-c/cli_mt -zookeeper-client/zookeeper-client-c/cli_st -zookeeper-client/zookeeper-client-c/config.h -zookeeper-client/zookeeper-client-c/config.status -zookeeper-client/zookeeper-client-c/libtool -zookeeper-client/zookeeper-client-c/load_gen -zookeeper-client/zookeeper-client-c/stamp-h1 -zookeeper-client/zookeeper-client-c/build -zookeeper-client/zookeeper-client-c/core.* -zookeeper-client/zookeeper-client-c/TEST-*.txt -zookeeper-client/zookeeper-client-c/*.la -zookeeper-client/zookeeper-client-c/*.lo -zookeeper-client/zookeeper-client-c/*.o -zookeeper-client/zookeeper-client-c/generated/ + +zookeeper-client-c/Makefile.in +zookeeper-client-c/aclocal.m4 +zookeeper-client-c/autom4te.cache/ +zookeeper-client-c/compile +zookeeper-client-c/config.guess +zookeeper-client-c/config.h.in +zookeeper-client-c/config.sub +zookeeper-client-c/configure +zookeeper-client-c/depcomp +zookeeper-client-c/install-sh +zookeeper-client-c/ltmain.sh +zookeeper-client-c/missing +zookeeper-client-c/.deps/ +zookeeper-client-c/.libs/ +zookeeper-client-c/Makefile +zookeeper-client-c/cli_mt +zookeeper-client-c/cli_st +zookeeper-client-c/config.h +zookeeper-client-c/config.status +zookeeper-client-c/libtool +zookeeper-client-c/load_gen +zookeeper-client-c/stamp-h1 +zookeeper-client-c/build +zookeeper-client-c/core.* +zookeeper-client-c/TEST-*.txt +zookeeper-client-c/*.la +zookeeper-client-c/*.lo +zookeeper-client-c/*.o +zookeeper-client-c/generated/ + +# Old c client files +zookeeper-client/zookeeper-client-c # Python *.py[cod] diff --git a/.typos.toml b/.typos.toml index b3cd78c734f..4974aa04da0 100644 --- a/.typos.toml +++ b/.typos.toml @@ -48,5 +48,5 @@ [files] extend-exclude = [ - "zookeeper-server/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith.java", + "zookeeper-common/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith.java", ] diff --git a/bin/zkEnv.sh b/bin/zkEnv.sh index 40889874818..595e3bc1610 100755 --- a/bin/zkEnv.sh +++ b/bin/zkEnv.sh @@ -104,7 +104,7 @@ for d in "$ZOOBINDIR"/../build/lib/*.jar; do done #make it work for developers -for d in "$ZOOBINDIR"/../zookeeper-server/target/lib/*.jar; do +for d in "$ZOOBINDIR"/../zookeeper/target/lib/*.jar; do CLASSPATH="$d:$CLASSPATH" done @@ -117,6 +117,8 @@ done CLASSPATH="$ZOOBINDIR/../build/classes:$CLASSPATH" #make it work for developers +CLASSPATH="$ZOOBINDIR/../zookeeper-client/target/classes:$CLASSPATH" +CLASSPATH="$ZOOBINDIR/../zookeeper-common/target/classes:$CLASSPATH" CLASSPATH="$ZOOBINDIR/../zookeeper-server/target/classes:$CLASSPATH" #make it work for developers diff --git a/checkstyleSuppressions.xml b/checkstyleSuppressions.xml index 513de6b4d80..3ac32e5b599 100644 --- a/checkstyleSuppressions.xml +++ b/checkstyleSuppressions.xml @@ -24,11 +24,20 @@ + + + + + + + + + diff --git a/pom.xml b/pom.xml index 94c05b66590..9891e22008b 100644 --- a/pom.xml +++ b/pom.xml @@ -57,10 +57,13 @@ + zookeeper + zookeeper-cli zookeeper-docs zookeeper-jute zookeeper-server zookeeper-metrics-providers + zookeeper-common zookeeper-client zookeeper-recipes zookeeper-assembly @@ -292,6 +295,7 @@ zookeeper-contrib zookeeper-it + zookeeper-client-c diff --git a/zookeeper-assembly/pom.xml b/zookeeper-assembly/pom.xml index 160f9e1b9d0..fd56de6b0aa 100644 --- a/zookeeper-assembly/pom.xml +++ b/zookeeper-assembly/pom.xml @@ -61,14 +61,23 @@ org.apache.zookeeper - zookeeper + zookeeper-common ${project.version} org.apache.zookeeper zookeeper-client ${project.version} - pom + + + org.apache.zookeeper + zookeeper-cli + ${project.version} + + + org.apache.zookeeper + zookeeper-server + ${project.version} org.apache.zookeeper diff --git a/zookeeper-assembly/src/main/assembly/bin-package.xml b/zookeeper-assembly/src/main/assembly/bin-package.xml index 1fa81d0bb22..14ba18a20e8 100644 --- a/zookeeper-assembly/src/main/assembly/bin-package.xml +++ b/zookeeper-assembly/src/main/assembly/bin-package.xml @@ -36,7 +36,6 @@ org.apache.zookeeper:zookeeper-recipes - org.apache.zookeeper:zookeeper-client org.apache.zookeeper:zookeeper-docs false @@ -63,6 +62,13 @@ ${rw.file.permission} ${rwx.file.permission} + + + ${project.basedir}/../zookeeper-client/target/apidocs + docs/apidocs/zookeeper-client + ${rw.file.permission} + ${rwx.file.permission} + ${project.basedir}/../zookeeper-server/target/apidocs @@ -70,9 +76,16 @@ ${rw.file.permission} ${rwx.file.permission} + + + ${project.basedir}/../zookeeper-cli/target/apidocs + docs/apidocs/zookeeper-cli + ${rw.file.permission} + ${rwx.file.permission} + - ${project.basedir}/../zookeeper-server/src/main/resources/lib + ${project.basedir}/../zookeeper/src/main/resources/lib *.txt diff --git a/zookeeper-assembly/src/main/assembly/lib-package.xml b/zookeeper-assembly/src/main/assembly/lib-package.xml index 40336cee8fd..cb4af514a84 100644 --- a/zookeeper-assembly/src/main/assembly/lib-package.xml +++ b/zookeeper-assembly/src/main/assembly/lib-package.xml @@ -29,7 +29,7 @@ - ${project.basedir}/../zookeeper-client/zookeeper-client-c/target/c + ${project.basedir}/../zookeeper-client-c/target/c usr include/**/* @@ -40,7 +40,7 @@ - ${project.basedir}/../zookeeper-client/zookeeper-client-c/target/c + ${project.basedir}/../zookeeper-client-c/target/c usr bin/* @@ -50,7 +50,7 @@ - ${project.basedir}/../zookeeper-client/zookeeper-client-c + ${project.basedir}/../zookeeper-client-c LICENSE diff --git a/zookeeper-cli/pom.xml b/zookeeper-cli/pom.xml new file mode 100644 index 00000000000..1bb6bc9b6ec --- /dev/null +++ b/zookeeper-cli/pom.xml @@ -0,0 +1,193 @@ + + + + 4.0.0 + + org.apache.zookeeper + parent + 3.10.0-SNAPSHOT + + + zookeeper-cli + jar + Apache ZooKeeper - Cli + ZooKeeper cli + + + + org.apache.zookeeper + zookeeper-jute + ${project.version} + + + org.apache.zookeeper + zookeeper-common + ${project.version} + + + org.apache.zookeeper + zookeeper-client + ${project.version} + + + org.apache.zookeeper + zookeeper-server + ${project.version} + + + org.apache.zookeeper + zookeeper-server + ${project.version} + test-jar + test + + + + com.github.spotbugs + spotbugs-annotations + provided + true + + + + commons-cli + commons-cli + + + org.apache.commons + commons-collections4 + test + + + jline + jline + provided + + + + + io.dropwizard.metrics + metrics-core + test + + + org.xerial.snappy + snappy-java + test + + + + + org.slf4j + slf4j-api + + + ch.qos.logback + logback-classic + runtime + true + + + + + io.netty + netty-buffer + + + + + org.mockito + mockito-core + test + + + org.mockito + mockito-inline + test + + + org.jmockit + jmockit + test + + + org.hamcrest + hamcrest-library + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + + + org.junit.platform + junit-platform-runner + test + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/*Test.java + + ${surefire-forkcount} + false + -Xmx512m -Dtest.junit.threads=${surefire-forkcount} -Dzookeeper.junit.threadid=${surefire.forkNumber} -javaagent:${org.jmockit:jmockit:jar} + ${project.basedir} + + ${project.build.directory}/surefire + super:D/InIHSb7yEEbrWz8b9l71RjZJU= + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + publish-test-jar + + test-jar + + + + + + + + diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/JLineZNodeCompleter.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/JLineZNodeCompleter.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/JLineZNodeCompleter.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/JLineZNodeCompleter.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperMain.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/ZooKeeperMain.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperMain.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/ZooKeeperMain.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/AclParser.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/AclParser.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/AclParser.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AddAuthCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/AddAuthCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/AddAuthCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/AddAuthCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/AddWatchCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/AddWatchCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/AddWatchCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/AddWatchCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/Base64OutputFormatter.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/Base64OutputFormatter.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/Base64OutputFormatter.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/Base64OutputFormatter.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliException.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliException.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliParseException.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliParseException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliParseException.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliParseException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliWrapperException.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliWrapperException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CliWrapperException.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CliWrapperException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CloseCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CloseCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CloseCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CloseCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CommandFactory.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CommandFactory.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CommandFactory.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CommandFactory.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CommandNotFoundException.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CommandNotFoundException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CommandNotFoundException.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CommandNotFoundException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CommandUsageHelper.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CommandUsageHelper.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CommandUsageHelper.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CommandUsageHelper.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/CreateCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CreateCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/CreateCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/CreateCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/DelQuotaCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/DelQuotaCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/DelQuotaCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/DelQuotaCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/DeleteAllCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/DeleteAllCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/DeleteAllCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/DeleteAllCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/DeleteCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/DeleteCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/DeleteCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/DeleteCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetAclCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetAclCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetAclCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetAclCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetAllChildrenNumberCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetAllChildrenNumberCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetAllChildrenNumberCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetAllChildrenNumberCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetConfigCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetConfigCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetConfigCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetConfigCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetEphemeralsCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetEphemeralsCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetEphemeralsCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/GetEphemeralsCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/HexDumpOutputFormatter.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/HexDumpOutputFormatter.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/HexDumpOutputFormatter.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/HexDumpOutputFormatter.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/ListQuotaCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/ListQuotaCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/ListQuotaCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/ListQuotaCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/LsCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/LsCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/LsCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/LsCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/MalformedCommandException.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/MalformedCommandException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/MalformedCommandException.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/MalformedCommandException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/MalformedPathException.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/MalformedPathException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/MalformedPathException.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/MalformedPathException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/OutputFormatter.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/OutputFormatter.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/OutputFormatter.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/OutputFormatter.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/PlainOutputFormatter.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/PlainOutputFormatter.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/PlainOutputFormatter.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/PlainOutputFormatter.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/ReconfigCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/ReconfigCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/ReconfigCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/ReconfigCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/RemoveWatchesCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/RemoveWatchesCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/RemoveWatchesCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/RemoveWatchesCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/SetAclCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SetAclCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/SetAclCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SetAclCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/SetCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SetCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/SetCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SetCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/SetQuotaCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SetQuotaCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/SetQuotaCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SetQuotaCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/StatCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/StatCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/StatCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/StatCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/StatPrinter.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/StatPrinter.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/StatPrinter.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/StatPrinter.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/SyncCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SyncCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/SyncCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/SyncCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/VersionCommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/VersionCommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/VersionCommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/VersionCommand.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/WhoAmICommand.java b/zookeeper-cli/src/main/java/org/apache/zookeeper/cli/WhoAmICommand.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/cli/WhoAmICommand.java rename to zookeeper-cli/src/main/java/org/apache/zookeeper/cli/WhoAmICommand.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/RemoveWatchesCmdTest.java b/zookeeper-cli/src/test/java/org/apache/zookeeper/RemoveWatchesCmdTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/RemoveWatchesCmdTest.java rename to zookeeper-cli/src/test/java/org/apache/zookeeper/RemoveWatchesCmdTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java b/zookeeper-cli/src/test/java/org/apache/zookeeper/ZooKeeperTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java rename to zookeeper-cli/src/test/java/org/apache/zookeeper/ZooKeeperTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/cli/CommandFactoryTest.java b/zookeeper-cli/src/test/java/org/apache/zookeeper/cli/CommandFactoryTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/cli/CommandFactoryTest.java rename to zookeeper-cli/src/test/java/org/apache/zookeeper/cli/CommandFactoryTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/EnforceQuotaTest.java b/zookeeper-cli/src/test/java/org/apache/zookeeper/test/EnforceQuotaTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/EnforceQuotaTest.java rename to zookeeper-cli/src/test/java/org/apache/zookeeper/test/EnforceQuotaTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumQuotaTest.java b/zookeeper-cli/src/test/java/org/apache/zookeeper/test/QuorumQuotaTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/QuorumQuotaTest.java rename to zookeeper-cli/src/test/java/org/apache/zookeeper/test/QuorumQuotaTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ZooKeeperQuotaTest.java b/zookeeper-cli/src/test/java/org/apache/zookeeper/test/ZooKeeperQuotaTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/ZooKeeperQuotaTest.java rename to zookeeper-cli/src/test/java/org/apache/zookeeper/test/ZooKeeperQuotaTest.java diff --git a/zookeeper-client/zookeeper-client-c/CMakeLists.txt b/zookeeper-client-c/CMakeLists.txt similarity index 99% rename from zookeeper-client/zookeeper-client-c/CMakeLists.txt rename to zookeeper-client-c/CMakeLists.txt index da1351e20f5..052ae7c9292 100644 --- a/zookeeper-client/zookeeper-client-c/CMakeLists.txt +++ b/zookeeper-client-c/CMakeLists.txt @@ -288,6 +288,6 @@ if(WANT_CPPUNIT) enable_testing() add_test(NAME zktest_runner COMMAND zktest) set_property(TEST zktest_runner PROPERTY ENVIRONMENT - "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/../.." + "ZKROOT=${CMAKE_CURRENT_SOURCE_DIR}/.." "CLASSPATH=$CLASSPATH:$CLOVER_HOME/lib/clover*.jar") endif() diff --git a/zookeeper-client/zookeeper-client-c/ChangeLog b/zookeeper-client-c/ChangeLog similarity index 100% rename from zookeeper-client/zookeeper-client-c/ChangeLog rename to zookeeper-client-c/ChangeLog diff --git a/zookeeper-client/zookeeper-client-c/INSTALL b/zookeeper-client-c/INSTALL similarity index 100% rename from zookeeper-client/zookeeper-client-c/INSTALL rename to zookeeper-client-c/INSTALL diff --git a/zookeeper-client/zookeeper-client-c/LICENSE b/zookeeper-client-c/LICENSE similarity index 100% rename from zookeeper-client/zookeeper-client-c/LICENSE rename to zookeeper-client-c/LICENSE diff --git a/zookeeper-client/zookeeper-client-c/Makefile.am b/zookeeper-client-c/Makefile.am similarity index 99% rename from zookeeper-client/zookeeper-client-c/Makefile.am rename to zookeeper-client-c/Makefile.am index e42a3539b8a..75ef1cc25fa 100644 --- a/zookeeper-client/zookeeper-client-c/Makefile.am +++ b/zookeeper-client-c/Makefile.am @@ -130,7 +130,7 @@ else endif check_PROGRAMS = zktest-st -TESTS_ENVIRONMENT = ZKROOT=${srcdir}/../.. \ +TESTS_ENVIRONMENT = ZKROOT=${srcdir}/.. \ CLASSPATH=$$CLASSPATH:$$CLOVER_HOME/lib/clover*.jar nodist_zktest_st_SOURCES = $(TEST_SOURCES) zktest_st_LDADD = libzkst.la libhashtable.la $(CPPUNIT_LIBS) $(OPENSSL_LIB_LDFLAGS) $(SASL_LIB_LDFLAGS) -ldl diff --git a/zookeeper-client/zookeeper-client-c/NOTICE.txt b/zookeeper-client-c/NOTICE.txt similarity index 100% rename from zookeeper-client/zookeeper-client-c/NOTICE.txt rename to zookeeper-client-c/NOTICE.txt diff --git a/zookeeper-client/zookeeper-client-c/README b/zookeeper-client-c/README similarity index 100% rename from zookeeper-client/zookeeper-client-c/README rename to zookeeper-client-c/README diff --git a/zookeeper-client/zookeeper-client-c/acinclude.m4 b/zookeeper-client-c/acinclude.m4 similarity index 100% rename from zookeeper-client/zookeeper-client-c/acinclude.m4 rename to zookeeper-client-c/acinclude.m4 diff --git a/zookeeper-client/zookeeper-client-c/aminclude.am b/zookeeper-client-c/aminclude.am similarity index 100% rename from zookeeper-client/zookeeper-client-c/aminclude.am rename to zookeeper-client-c/aminclude.am diff --git a/zookeeper-client/zookeeper-client-c/c-doc.Doxyfile b/zookeeper-client-c/c-doc.Doxyfile similarity index 100% rename from zookeeper-client/zookeeper-client-c/c-doc.Doxyfile rename to zookeeper-client-c/c-doc.Doxyfile diff --git a/zookeeper-client/zookeeper-client-c/cmake_config.h.in b/zookeeper-client-c/cmake_config.h.in similarity index 100% rename from zookeeper-client/zookeeper-client-c/cmake_config.h.in rename to zookeeper-client-c/cmake_config.h.in diff --git a/zookeeper-client/zookeeper-client-c/configure.ac b/zookeeper-client-c/configure.ac similarity index 99% rename from zookeeper-client/zookeeper-client-c/configure.ac rename to zookeeper-client-c/configure.ac index 0de8427e5bb..1bbb32c10b2 100644 --- a/zookeeper-client/zookeeper-client-c/configure.ac +++ b/zookeeper-client-c/configure.ac @@ -67,7 +67,7 @@ fi AM_CONDITIONAL([WANT_OPENSSL],[test "x$with_openssl" != xno]) if test "$CALLER" = "ANT" ; then -CPPUNIT_CFLAGS="$CPPUNIT_CFLAGS -DZKSERVER_CMD=\"\\\"${base_dir}/zookeeper-client/zookeeper-client-c/tests/zkServer.sh\\\"\"" +CPPUNIT_CFLAGS="$CPPUNIT_CFLAGS -DZKSERVER_CMD=\"\\\"${base_dir}/zookeeper-client-c/tests/zkServer.sh\\\"\"" else CPPUNIT_CFLAGS="$CPPUNIT_CFLAGS -DZKSERVER_CMD=\"\\\"./tests/zkServer.sh\\\"\"" AC_CHECK_FILES([$srcdir/generated/zookeeper.jute.c $srcdir/generated/zookeeper.jute.h],[], diff --git a/zookeeper-client/zookeeper-client-c/include/proto.h b/zookeeper-client-c/include/proto.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/proto.h rename to zookeeper-client-c/include/proto.h diff --git a/zookeeper-client/zookeeper-client-c/include/recordio.h b/zookeeper-client-c/include/recordio.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/recordio.h rename to zookeeper-client-c/include/recordio.h diff --git a/zookeeper-client/zookeeper-client-c/include/win_getopt.h b/zookeeper-client-c/include/win_getopt.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/win_getopt.h rename to zookeeper-client-c/include/win_getopt.h diff --git a/zookeeper-client/zookeeper-client-c/include/winconfig.h b/zookeeper-client-c/include/winconfig.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/winconfig.h rename to zookeeper-client-c/include/winconfig.h diff --git a/zookeeper-client/zookeeper-client-c/include/zookeeper.h b/zookeeper-client-c/include/zookeeper.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/zookeeper.h rename to zookeeper-client-c/include/zookeeper.h diff --git a/zookeeper-client/zookeeper-client-c/include/zookeeper_log.h b/zookeeper-client-c/include/zookeeper_log.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/zookeeper_log.h rename to zookeeper-client-c/include/zookeeper_log.h diff --git a/zookeeper-client/zookeeper-client-c/include/zookeeper_version.h b/zookeeper-client-c/include/zookeeper_version.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/include/zookeeper_version.h rename to zookeeper-client-c/include/zookeeper_version.h diff --git a/zookeeper-client/zookeeper-client-c/pom.xml b/zookeeper-client-c/pom.xml similarity index 92% rename from zookeeper-client/zookeeper-client-c/pom.xml rename to zookeeper-client-c/pom.xml index 91e45cff3e8..10a53c74574 100644 --- a/zookeeper-client/zookeeper-client-c/pom.xml +++ b/zookeeper-client-c/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.apache.zookeeper - zookeeper-client + parent 3.10.0-SNAPSHOT @@ -37,6 +37,13 @@ + + maven-deploy-plugin + + + true + + org.codehaus.mojo exec-maven-plugin @@ -68,7 +75,7 @@ ${project.build.directory}/c ${project.basedir}/configure - ${project.basedir}/../.. + ${project.basedir}/.. ANT @@ -106,8 +113,8 @@ - - + + @@ -176,8 +183,8 @@ - - + + diff --git a/zookeeper-client/zookeeper-client-c/src/addrvec.c b/zookeeper-client-c/src/addrvec.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/addrvec.c rename to zookeeper-client-c/src/addrvec.c diff --git a/zookeeper-client/zookeeper-client-c/src/addrvec.h b/zookeeper-client-c/src/addrvec.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/addrvec.h rename to zookeeper-client-c/src/addrvec.h diff --git a/zookeeper-client/zookeeper-client-c/src/cli.c b/zookeeper-client-c/src/cli.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/cli.c rename to zookeeper-client-c/src/cli.c diff --git a/zookeeper-client/zookeeper-client-c/src/hashtable/LICENSE.txt b/zookeeper-client-c/src/hashtable/LICENSE.txt similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/hashtable/LICENSE.txt rename to zookeeper-client-c/src/hashtable/LICENSE.txt diff --git a/zookeeper-client/zookeeper-client-c/src/hashtable/hashtable.c b/zookeeper-client-c/src/hashtable/hashtable.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/hashtable/hashtable.c rename to zookeeper-client-c/src/hashtable/hashtable.c diff --git a/zookeeper-client/zookeeper-client-c/src/hashtable/hashtable.h b/zookeeper-client-c/src/hashtable/hashtable.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/hashtable/hashtable.h rename to zookeeper-client-c/src/hashtable/hashtable.h diff --git a/zookeeper-client/zookeeper-client-c/src/hashtable/hashtable_itr.c b/zookeeper-client-c/src/hashtable/hashtable_itr.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/hashtable/hashtable_itr.c rename to zookeeper-client-c/src/hashtable/hashtable_itr.c diff --git a/zookeeper-client/zookeeper-client-c/src/hashtable/hashtable_itr.h b/zookeeper-client-c/src/hashtable/hashtable_itr.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/hashtable/hashtable_itr.h rename to zookeeper-client-c/src/hashtable/hashtable_itr.h diff --git a/zookeeper-client/zookeeper-client-c/src/hashtable/hashtable_private.h b/zookeeper-client-c/src/hashtable/hashtable_private.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/hashtable/hashtable_private.h rename to zookeeper-client-c/src/hashtable/hashtable_private.h diff --git a/zookeeper-client/zookeeper-client-c/src/load_gen.c b/zookeeper-client-c/src/load_gen.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/load_gen.c rename to zookeeper-client-c/src/load_gen.c diff --git a/zookeeper-client/zookeeper-client-c/src/mt_adaptor.c b/zookeeper-client-c/src/mt_adaptor.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/mt_adaptor.c rename to zookeeper-client-c/src/mt_adaptor.c diff --git a/zookeeper-client/zookeeper-client-c/src/recordio.c b/zookeeper-client-c/src/recordio.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/recordio.c rename to zookeeper-client-c/src/recordio.c diff --git a/zookeeper-client/zookeeper-client-c/src/st_adaptor.c b/zookeeper-client-c/src/st_adaptor.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/st_adaptor.c rename to zookeeper-client-c/src/st_adaptor.c diff --git a/zookeeper-client/zookeeper-client-c/src/winport.c b/zookeeper-client-c/src/winport.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/winport.c rename to zookeeper-client-c/src/winport.c diff --git a/zookeeper-client/zookeeper-client-c/src/winport.h b/zookeeper-client-c/src/winport.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/winport.h rename to zookeeper-client-c/src/winport.h diff --git a/zookeeper-client/zookeeper-client-c/src/zk_adaptor.h b/zookeeper-client-c/src/zk_adaptor.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zk_adaptor.h rename to zookeeper-client-c/src/zk_adaptor.h diff --git a/zookeeper-client/zookeeper-client-c/src/zk_hashtable.c b/zookeeper-client-c/src/zk_hashtable.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zk_hashtable.c rename to zookeeper-client-c/src/zk_hashtable.c diff --git a/zookeeper-client/zookeeper-client-c/src/zk_hashtable.h b/zookeeper-client-c/src/zk_hashtable.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zk_hashtable.h rename to zookeeper-client-c/src/zk_hashtable.h diff --git a/zookeeper-client/zookeeper-client-c/src/zk_log.c b/zookeeper-client-c/src/zk_log.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zk_log.c rename to zookeeper-client-c/src/zk_log.c diff --git a/zookeeper-client/zookeeper-client-c/src/zk_sasl.c b/zookeeper-client-c/src/zk_sasl.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zk_sasl.c rename to zookeeper-client-c/src/zk_sasl.c diff --git a/zookeeper-client/zookeeper-client-c/src/zk_sasl.h b/zookeeper-client-c/src/zk_sasl.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zk_sasl.h rename to zookeeper-client-c/src/zk_sasl.h diff --git a/zookeeper-client/zookeeper-client-c/src/zookeeper.c b/zookeeper-client-c/src/zookeeper.c similarity index 100% rename from zookeeper-client/zookeeper-client-c/src/zookeeper.c rename to zookeeper-client-c/src/zookeeper.c diff --git a/zookeeper-client/zookeeper-client-c/ssl/gencerts.sh b/zookeeper-client-c/ssl/gencerts.sh similarity index 100% rename from zookeeper-client/zookeeper-client-c/ssl/gencerts.sh rename to zookeeper-client-c/ssl/gencerts.sh diff --git a/zookeeper-client/zookeeper-client-c/tests/CollectionUtil.h b/zookeeper-client-c/tests/CollectionUtil.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/CollectionUtil.h rename to zookeeper-client-c/tests/CollectionUtil.h diff --git a/zookeeper-client/zookeeper-client-c/tests/CppAssertHelper.h b/zookeeper-client-c/tests/CppAssertHelper.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/CppAssertHelper.h rename to zookeeper-client-c/tests/CppAssertHelper.h diff --git a/zookeeper-client/zookeeper-client-c/tests/LibCMocks.cc b/zookeeper-client-c/tests/LibCMocks.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/LibCMocks.cc rename to zookeeper-client-c/tests/LibCMocks.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/LibCMocks.h b/zookeeper-client-c/tests/LibCMocks.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/LibCMocks.h rename to zookeeper-client-c/tests/LibCMocks.h diff --git a/zookeeper-client/zookeeper-client-c/tests/LibCSymTable.cc b/zookeeper-client-c/tests/LibCSymTable.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/LibCSymTable.cc rename to zookeeper-client-c/tests/LibCSymTable.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/LibCSymTable.h b/zookeeper-client-c/tests/LibCSymTable.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/LibCSymTable.h rename to zookeeper-client-c/tests/LibCSymTable.h diff --git a/zookeeper-client/zookeeper-client-c/tests/MocksBase.cc b/zookeeper-client-c/tests/MocksBase.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/MocksBase.cc rename to zookeeper-client-c/tests/MocksBase.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/MocksBase.h b/zookeeper-client-c/tests/MocksBase.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/MocksBase.h rename to zookeeper-client-c/tests/MocksBase.h diff --git a/zookeeper-client/zookeeper-client-c/tests/PthreadMocks.cc b/zookeeper-client-c/tests/PthreadMocks.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/PthreadMocks.cc rename to zookeeper-client-c/tests/PthreadMocks.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/PthreadMocks.h b/zookeeper-client-c/tests/PthreadMocks.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/PthreadMocks.h rename to zookeeper-client-c/tests/PthreadMocks.h diff --git a/zookeeper-client/zookeeper-client-c/tests/TestClient.cc b/zookeeper-client-c/tests/TestClient.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestClient.cc rename to zookeeper-client-c/tests/TestClient.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestClientRetry.cc b/zookeeper-client-c/tests/TestClientRetry.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestClientRetry.cc rename to zookeeper-client-c/tests/TestClientRetry.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestDriver.cc b/zookeeper-client-c/tests/TestDriver.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestDriver.cc rename to zookeeper-client-c/tests/TestDriver.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestLogClientEnv.cc b/zookeeper-client-c/tests/TestLogClientEnv.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestLogClientEnv.cc rename to zookeeper-client-c/tests/TestLogClientEnv.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestMulti.cc b/zookeeper-client-c/tests/TestMulti.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestMulti.cc rename to zookeeper-client-c/tests/TestMulti.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestOperations.cc b/zookeeper-client-c/tests/TestOperations.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestOperations.cc rename to zookeeper-client-c/tests/TestOperations.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestReadOnlyClient.cc b/zookeeper-client-c/tests/TestReadOnlyClient.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestReadOnlyClient.cc rename to zookeeper-client-c/tests/TestReadOnlyClient.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestReconfig.cc b/zookeeper-client-c/tests/TestReconfig.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestReconfig.cc rename to zookeeper-client-c/tests/TestReconfig.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestReconfigServer.cc b/zookeeper-client-c/tests/TestReconfigServer.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestReconfigServer.cc rename to zookeeper-client-c/tests/TestReconfigServer.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestSASLAuth.cc b/zookeeper-client-c/tests/TestSASLAuth.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestSASLAuth.cc rename to zookeeper-client-c/tests/TestSASLAuth.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestWatchers.cc b/zookeeper-client-c/tests/TestWatchers.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestWatchers.cc rename to zookeeper-client-c/tests/TestWatchers.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestZookeeperClose.cc b/zookeeper-client-c/tests/TestZookeeperClose.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestZookeeperClose.cc rename to zookeeper-client-c/tests/TestZookeeperClose.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/TestZookeeperInit.cc b/zookeeper-client-c/tests/TestZookeeperInit.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/TestZookeeperInit.cc rename to zookeeper-client-c/tests/TestZookeeperInit.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/ThreadingUtil.cc b/zookeeper-client-c/tests/ThreadingUtil.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/ThreadingUtil.cc rename to zookeeper-client-c/tests/ThreadingUtil.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/ThreadingUtil.h b/zookeeper-client-c/tests/ThreadingUtil.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/ThreadingUtil.h rename to zookeeper-client-c/tests/ThreadingUtil.h diff --git a/zookeeper-client/zookeeper-client-c/tests/Util.cc b/zookeeper-client-c/tests/Util.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/Util.cc rename to zookeeper-client-c/tests/Util.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/Util.h b/zookeeper-client-c/tests/Util.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/Util.h rename to zookeeper-client-c/tests/Util.h diff --git a/zookeeper-client/zookeeper-client-c/tests/Vector.h b/zookeeper-client-c/tests/Vector.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/Vector.h rename to zookeeper-client-c/tests/Vector.h diff --git a/zookeeper-client/zookeeper-client-c/tests/WatchUtil.h b/zookeeper-client-c/tests/WatchUtil.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/WatchUtil.h rename to zookeeper-client-c/tests/WatchUtil.h diff --git a/zookeeper-client/zookeeper-client-c/tests/ZKMocks.cc b/zookeeper-client-c/tests/ZKMocks.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/ZKMocks.cc rename to zookeeper-client-c/tests/ZKMocks.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/ZKMocks.h b/zookeeper-client-c/tests/ZKMocks.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/ZKMocks.h rename to zookeeper-client-c/tests/ZKMocks.h diff --git a/zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc b/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc rename to zookeeper-client-c/tests/ZooKeeperQuorumServer.cc diff --git a/zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.h b/zookeeper-client-c/tests/ZooKeeperQuorumServer.h similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.h rename to zookeeper-client-c/tests/ZooKeeperQuorumServer.h diff --git a/zookeeper-client/zookeeper-client-c/tests/wrappers-mt.opt b/zookeeper-client-c/tests/wrappers-mt.opt similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/wrappers-mt.opt rename to zookeeper-client-c/tests/wrappers-mt.opt diff --git a/zookeeper-client/zookeeper-client-c/tests/wrappers.opt b/zookeeper-client-c/tests/wrappers.opt similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/wrappers.opt rename to zookeeper-client-c/tests/wrappers.opt diff --git a/zookeeper-client/zookeeper-client-c/tests/zkServer.sh b/zookeeper-client-c/tests/zkServer.sh similarity index 95% rename from zookeeper-client/zookeeper-client-c/tests/zkServer.sh rename to zookeeper-client-c/tests/zkServer.sh index e1b850dd194..40f2bdd1c77 100755 --- a/zookeeper-client/zookeeper-client-c/tests/zkServer.sh +++ b/zookeeper-client-c/tests/zkServer.sh @@ -83,20 +83,15 @@ fi CLASSPATH="$CLASSPATH:$zk_base/build/classes" CLASSPATH="$CLASSPATH:$zk_base/conf" -CLASSPATH="$CLASSPATH:$zk_base/zookeeper-server/target/classes" for i in "$zk_base"/build/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done -for d in "$zk_base"/zookeeper-server/target/lib/*.jar; do +for d in "$zk_base"/zookeeper/target/lib/*.jar; do CLASSPATH="$d:$CLASSPATH" done -for i in "$zk_base"/zookeeper-server/src/main/resource/lib/*.jar; do - CLASSPATH="$CLASSPATH:$i" -done - CLASSPATH="$CLASSPATH:$CLOVER_HOME/lib/clover*.jar" if $cygwin; then @@ -136,7 +131,7 @@ if [[ -z $base_dir ]]; then tests_dir="tests" else tmp_dir="$base_dir/build/tmp" - tests_dir=$base_dir/zookeeper-client/zookeeper-client-c/tests + tests_dir=$base_dir/zookeeper-client-c/tests fi # ===== diff --git a/zookeeper-client/zookeeper-client-c/tests/zoo.cfg b/zookeeper-client-c/tests/zoo.cfg similarity index 100% rename from zookeeper-client/zookeeper-client-c/tests/zoo.cfg rename to zookeeper-client-c/tests/zoo.cfg diff --git a/zookeeper-client/pom.xml b/zookeeper-client/pom.xml index 16f6419f6d2..8a86ecd565f 100644 --- a/zookeeper-client/pom.xml +++ b/zookeeper-client/pom.xml @@ -27,25 +27,135 @@ zookeeper-client - pom - Apache ZooKeeper - Client + jar + Apache ZooKeeper - Client - Java ZooKeeper client - - - full-build - - zookeeper-client-c - - - + + + org.apache.zookeeper + zookeeper-jute + ${project.version} + + + org.apache.zookeeper + zookeeper-common + ${project.version} + + + + + com.github.spotbugs + spotbugs-annotations + provided + true + + + org.apache.yetus + audience-annotations + + + + + commons-io + commons-io + + + + + io.netty + netty-handler + + + io.netty + netty-transport-native-epoll + linux-x86_64 + + + io.netty + netty-tcnative-boringssl-static + + + + + org.slf4j + slf4j-api + + + ch.qos.logback + logback-classic + runtime + true + + + + + org.burningwave + tools + test + + + + + org.hamcrest + hamcrest-library + test + + + org.mockito + mockito-core + test + + + org.mockito + mockito-inline + test + + + org.jmockit + jmockit + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + + + org.junit.platform + junit-platform-runner + test + + + + - maven-deploy-plugin + org.apache.maven.plugins + maven-surefire-plugin - - true + + **/*Test.java + + ${surefire-forkcount} + false + -Xmx512m -Dtest.junit.threads=${surefire-forkcount} -Dzookeeper.junit.threadid=${surefire.forkNumber} -javaagent:${org.jmockit:jmockit:jar} + ${project.basedir} + + ${project.build.directory}/surefire + super:D/InIHSb7yEEbrWz8b9l71RjZJU= + diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/AddWatchMode.java b/zookeeper-client/src/main/java/org/apache/zookeeper/AddWatchMode.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/AddWatchMode.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/AddWatchMode.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java b/zookeeper-client/src/main/java/org/apache/zookeeper/AsyncCallback.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/AsyncCallback.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/AsyncCallback.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxn.java similarity index 99% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxn.java index ed03359f7fe..900cd31f5b7 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxn.java +++ b/zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxn.java @@ -91,7 +91,6 @@ import org.apache.zookeeper.proto.WatcherEvent; import org.apache.zookeeper.server.ByteBufferInputStream; import org.apache.zookeeper.server.ZooKeeperThread; -import org.apache.zookeeper.server.ZooTrace; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -1283,10 +1282,9 @@ public void run() { if (l != null) { l.shutdown(); } - ZooTrace.logTraceMessage( - LOG, - ZooTrace.getTextTraceLevel(), - "SendThread exited loop for session: 0x" + Long.toHexString(getSessionId())); + if (LOG.isDebugEnabled()) { + LOG.trace("SendThread exited loop for session: 0x{}", Long.toHexString(getSessionId())); + } } private void cleanAndNotifyState() { diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxnSocket.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxnSocket.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxnSocket.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxnSocket.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxnSocketNIO.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxnSocketNIO.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxnSocketNIO.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxnSocketNIO.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxnSocketNetty.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxnSocketNetty.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ClientCnxnSocketNetty.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ClientCnxnSocketNetty.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ClientWatchManager.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ClientWatchManager.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ClientWatchManager.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ClientWatchManager.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/SaslServerPrincipal.java b/zookeeper-client/src/main/java/org/apache/zookeeper/SaslServerPrincipal.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/SaslServerPrincipal.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/SaslServerPrincipal.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ServerAdminClient.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ServerAdminClient.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ServerAdminClient.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ServerAdminClient.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Testable.java b/zookeeper-client/src/main/java/org/apache/zookeeper/Testable.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Testable.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/Testable.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Transaction.java b/zookeeper-client/src/main/java/org/apache/zookeeper/Transaction.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Transaction.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/Transaction.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/WatchDeregistration.java b/zookeeper-client/src/main/java/org/apache/zookeeper/WatchDeregistration.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/WatchDeregistration.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/WatchDeregistration.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ZKUtil.java similarity index 82% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ZKUtil.java index e149408dc20..6d9ff5dc2ce 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZKUtil.java +++ b/zookeeper-client/src/main/java/org/apache/zookeeper/ZKUtil.java @@ -18,14 +18,11 @@ package org.apache.zookeeper; -import java.io.File; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Map; import java.util.Queue; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Semaphore; import java.util.concurrent.atomic.AtomicBoolean; import org.apache.zookeeper.AsyncCallback.MultiCallback; @@ -33,14 +30,12 @@ import org.apache.zookeeper.AsyncCallback.VoidCallback; import org.apache.zookeeper.KeeperException.Code; import org.apache.zookeeper.common.PathUtils; -import org.apache.zookeeper.data.ACL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ZKUtil { +public class ZKUtil extends ZKCommonUtil { private static final Logger LOG = LoggerFactory.getLogger(ZKUtil.class); - private static final Map permCache = new ConcurrentHashMap<>(); /** * Recursively delete the node with the given path. *

@@ -166,24 +161,6 @@ public static void deleteRecursive( } } - /** - * @param filePath the file path to be validated - * @return Returns null if valid otherwise error message - */ - public static String validateFileInput(String filePath) { - File file = new File(filePath); - if (!file.exists()) { - return "File '" + file.getAbsolutePath() + "' does not exist."; - } - if (!file.canRead()) { - return "Read permission is denied on the file '" + file.getAbsolutePath() + "'"; - } - if (file.isDirectory()) { - return "'" + file.getAbsolutePath() + "' is a directory. it must be a file."; - } - return null; - } - /** * BFS Traversal of the system under pathRoot, with the entries in the list, in the * same order as that of the traversal. @@ -266,45 +243,4 @@ private static void visitSubTreeDFSHelper( return; // ignore } } - - /** - * @param perms - * ACL permissions - * @return string representation of permissions - */ - public static String getPermString(int perms) { - return permCache.computeIfAbsent(perms, k -> constructPermString(k)); - } - - private static String constructPermString(int perms) { - StringBuilder p = new StringBuilder(); - if ((perms & ZooDefs.Perms.CREATE) != 0) { - p.append('c'); - } - if ((perms & ZooDefs.Perms.DELETE) != 0) { - p.append('d'); - } - if ((perms & ZooDefs.Perms.READ) != 0) { - p.append('r'); - } - if ((perms & ZooDefs.Perms.WRITE) != 0) { - p.append('w'); - } - if ((perms & ZooDefs.Perms.ADMIN) != 0) { - p.append('a'); - } - return p.toString(); - } - - public static String aclToString(List acls) { - StringBuilder sb = new StringBuilder(); - for (ACL acl : acls) { - sb.append(acl.getId().getScheme()); - sb.append(":"); - sb.append(acl.getId().getId()); - sb.append(":"); - sb.append(getPermString(acl.getPerms())); - } - return sb.toString(); - } } diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZKWatchManager.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ZKWatchManager.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ZKWatchManager.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ZKWatchManager.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ZooKeeper.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeper.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ZooKeeper.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperTestable.java b/zookeeper-client/src/main/java/org/apache/zookeeper/ZooKeeperTestable.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ZooKeeperTestable.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/ZooKeeperTestable.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/admin/ZooKeeperAdmin.java b/zookeeper-client/src/main/java/org/apache/zookeeper/admin/ZooKeeperAdmin.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/admin/ZooKeeperAdmin.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/admin/ZooKeeperAdmin.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/Chroot.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/Chroot.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/Chroot.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/Chroot.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ChrootCreateCallback.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ChrootCreateCallback.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ChrootCreateCallback.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ChrootCreateCallback.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ChrootWatcher.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ChrootWatcher.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ChrootWatcher.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ChrootWatcher.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ConnectStringParser.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/FourLetterWordMain.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/FourLetterWordMain.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/FourLetterWordMain.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/FourLetterWordMain.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/HostProvider.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/HostProvider.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/HostProvider.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/HostProvider.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/StaticHostProvider.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ZKClientConfig.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ZKClientConfig.java similarity index 89% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ZKClientConfig.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ZKClientConfig.java index f1552a688ee..434da3fc1b1 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ZKClientConfig.java +++ b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ZKClientConfig.java @@ -22,8 +22,8 @@ import java.nio.file.Path; import org.apache.yetus.audience.InterfaceAudience; import org.apache.zookeeper.common.ConfigException; +import org.apache.zookeeper.common.SaslLoginKeys; import org.apache.zookeeper.common.ZKConfig; -import org.apache.zookeeper.server.quorum.QuorumPeerConfig; /** * Handles client specific properties @@ -36,8 +36,8 @@ public class ZKClientConfig extends ZKConfig { public static final String ZK_SASL_CLIENT_USERNAME_DEFAULT = "zookeeper"; public static final String ZK_SASL_CLIENT_CANONICALIZE_HOSTNAME = "zookeeper.sasl.client.canonicalize.hostname"; public static final String ZK_SASL_CLIENT_CANONICALIZE_HOSTNAME_DEFAULT = "true"; - public static final String LOGIN_CONTEXT_NAME_KEY = "zookeeper.sasl.clientconfig"; - public static final String LOGIN_CONTEXT_NAME_KEY_DEFAULT = "Client"; + public static final String LOGIN_CONTEXT_NAME_KEY = SaslLoginKeys.CLIENT_NAME_KEY; + public static final String LOGIN_CONTEXT_NAME_KEY_DEFAULT = SaslLoginKeys.CLIENT_NAME_KEY_DEFAULT; public static final String ENABLE_CLIENT_SASL_KEY = "zookeeper.sasl.client"; public static final String ENABLE_CLIENT_SASL_DEFAULT = "true"; public static final String ZOOKEEPER_SERVER_REALM = "zookeeper.server.realm"; @@ -69,22 +69,22 @@ public ZKClientConfig() { /** *

Use {@link ZKClientConfig#ZKClientConfig(Path configPath)} instead. * - *

The signature of this method will be changed to throw {@link ConfigException} - * instead of {@link QuorumPeerConfig.ConfigException} in future release. + *

The signature of this method has been changed to throw {@link ConfigException} + * instead of {@code QuorumPeerConfig.ConfigException}. */ @Deprecated - public ZKClientConfig(File configFile) throws QuorumPeerConfig.ConfigException { + public ZKClientConfig(File configFile) throws ConfigException { super(configFile); } /** *

Use {@link ZKClientConfig#ZKClientConfig(Path configPath)} instead. * - *

The signature of this method will be changed to throw {@link ConfigException} - * instead of {@link QuorumPeerConfig.ConfigException} in future release. + *

The signature of this method has been changed to throw {@link ConfigException} + * instead of {@code QuorumPeerConfig.ConfigException}. */ @Deprecated - public ZKClientConfig(String configPath) throws QuorumPeerConfig.ConfigException { + public ZKClientConfig(String configPath) throws ConfigException { super(configPath); } @@ -122,6 +122,11 @@ protected void handleBackwardCompatibility() { setProperty(SECURE_CLIENT, System.getProperty(SECURE_CLIENT)); } + @Override + public boolean isClient() { + return true; + } + /** * Returns true if the SASL client is enabled. By default, the client is * enabled but can be disabled by setting the system property diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ZooKeeperBuilder.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ZooKeeperBuilder.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ZooKeeperBuilder.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ZooKeeperBuilder.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ZooKeeperOptions.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ZooKeeperOptions.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ZooKeeperOptions.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ZooKeeperOptions.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/client/ZooKeeperSaslClient.java b/zookeeper-client/src/main/java/org/apache/zookeeper/client/ZooKeeperSaslClient.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/client/ZooKeeperSaslClient.java rename to zookeeper-client/src/main/java/org/apache/zookeeper/client/ZooKeeperSaslClient.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ConnectStringParserTest.java b/zookeeper-client/src/test/java/org/apache/zookeeper/client/ConnectStringParserTest.java similarity index 96% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/ConnectStringParserTest.java rename to zookeeper-client/src/test/java/org/apache/zookeeper/client/ConnectStringParserTest.java index fc30e69920f..214412b557d 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ConnectStringParserTest.java +++ b/zookeeper-client/src/test/java/org/apache/zookeeper/client/ConnectStringParserTest.java @@ -16,14 +16,12 @@ * limitations under the License. */ -package org.apache.zookeeper.test; +package org.apache.zookeeper.client; import static org.junit.jupiter.api.Assertions.assertEquals; -import org.apache.zookeeper.ZKTestCase; -import org.apache.zookeeper.client.ConnectStringParser; import org.junit.jupiter.api.Test; -public class ConnectStringParserTest extends ZKTestCase { +public class ConnectStringParserTest { private static final int DEFAULT_PORT = 2181; diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java b/zookeeper-client/src/test/java/org/apache/zookeeper/client/StaticHostProviderTest.java similarity index 99% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java rename to zookeeper-client/src/test/java/org/apache/zookeeper/client/StaticHostProviderTest.java index 2289847d4e4..b99ef37f8b2 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java +++ b/zookeeper-client/src/test/java/org/apache/zookeeper/client/StaticHostProviderTest.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.zookeeper.test; +package org.apache.zookeeper.client; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.equalTo; @@ -44,9 +44,6 @@ import java.util.List; import java.util.Map; import java.util.Random; -import org.apache.zookeeper.ZKTestCase; -import org.apache.zookeeper.client.HostProvider; -import org.apache.zookeeper.client.StaticHostProvider; import org.apache.zookeeper.common.Time; import org.burningwave.tools.net.DefaultHostResolver; import org.burningwave.tools.net.HostResolutionRequestInterceptor; @@ -55,7 +52,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -public class StaticHostProviderTest extends ZKTestCase { +public class StaticHostProviderTest { @BeforeAll public static void setupDNSMocks() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java b/zookeeper-client/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java rename to zookeeper-client/src/test/java/org/apache/zookeeper/client/ZKClientConfigTest.java diff --git a/zookeeper-common/pom.xml b/zookeeper-common/pom.xml new file mode 100644 index 00000000000..6538e339c1c --- /dev/null +++ b/zookeeper-common/pom.xml @@ -0,0 +1,254 @@ + + + + 4.0.0 + + org.apache.zookeeper + parent + 3.10.0-SNAPSHOT + + + zookeeper-common + 3.10.0-SNAPSHOT + jar + Apache ZooKeeper - Common + ZooKeeper common + + + + org.apache.zookeeper + zookeeper-jute + ${project.version} + + + + + com.github.spotbugs + spotbugs-annotations + provided + true + + + org.apache.yetus + audience-annotations + + + + commons-io + commons-io + compile + + + + + io.netty + netty-handler + + + io.netty + netty-transport-native-epoll + linux-x86_64 + + + io.netty + netty-tcnative-boringssl-static + + + + + org.slf4j + slf4j-api + + + ch.qos.logback + logback-classic + runtime + true + + + + org.bouncycastle + bcprov-jdk18on + test + + + org.bouncycastle + bcpkix-jdk18on + test + + + org.apache.kerby + kerb-core + test + + + org.apache.kerby + kerb-simplekdc + test + + + org.apache.kerby + kerby-config + test + + + + + org.hamcrest + hamcrest-library + test + + + org.mockito + mockito-core + test + + + org.mockito + mockito-inline + test + + + org.jmockit + jmockit + test + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.junit.jupiter + junit-jupiter-params + test + + + org.junit.platform + junit-platform-runner + test + + + org.burningwave + tools + test + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + + build-time + + timestamp-property + + + build.time + yyyy-MM-dd HH:mm zz + en_US + UTC + + + + parse-version + + parse-version + + + + generate-sources + + add-source + + + + ${project.build.directory}/generated-sources/java + + + + + + + org.apache.maven.plugins + maven-resources-plugin + + + prepare-filtered-java-source + + copy-resources + + generate-sources + + ${project.build.directory}/generated-sources/java + + + src/main/java-filtered + true + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + **/*Test.java + + ${surefire-forkcount} + false + -Xmx512m -Dtest.junit.threads=${surefire-forkcount} -Dzookeeper.junit.threadid=${surefire.forkNumber} -javaagent:${org.jmockit:jmockit:jar} + ${project.basedir} + + ${project.build.directory}/surefire + super:D/InIHSb7yEEbrWz8b9l71RjZJU= + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + publish-test-jar + + test-jar + + + + + + + diff --git a/zookeeper-server/src/main/java-filtered/org/apache/zookeeper/version/Info.java b/zookeeper-common/src/main/java-filtered/org/apache/zookeeper/version/Info.java similarity index 100% rename from zookeeper-server/src/main/java-filtered/org/apache/zookeeper/version/Info.java rename to zookeeper-common/src/main/java-filtered/org/apache/zookeeper/version/Info.java diff --git a/zookeeper-server/src/main/java-filtered/org/apache/zookeeper/version/VersionInfoMain.java b/zookeeper-common/src/main/java-filtered/org/apache/zookeeper/version/VersionInfoMain.java similarity index 100% rename from zookeeper-server/src/main/java-filtered/org/apache/zookeeper/version/VersionInfoMain.java rename to zookeeper-common/src/main/java-filtered/org/apache/zookeeper/version/VersionInfoMain.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/CreateMode.java b/zookeeper-common/src/main/java/org/apache/zookeeper/CreateMode.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/CreateMode.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/CreateMode.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/CreateOptions.java b/zookeeper-common/src/main/java/org/apache/zookeeper/CreateOptions.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/CreateOptions.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/CreateOptions.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Environment.java b/zookeeper-common/src/main/java/org/apache/zookeeper/Environment.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Environment.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/Environment.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/KeeperException.java b/zookeeper-common/src/main/java/org/apache/zookeeper/KeeperException.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/KeeperException.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/KeeperException.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Login.java b/zookeeper-common/src/main/java/org/apache/zookeeper/Login.java similarity index 97% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Login.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/Login.java index 2c483a5f74b..2bfeb97df83 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/Login.java +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/Login.java @@ -37,10 +37,9 @@ import javax.security.auth.login.Configuration; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; -import org.apache.zookeeper.client.ZKClientConfig; +import org.apache.zookeeper.common.SaslLoginKeys; import org.apache.zookeeper.common.Time; import org.apache.zookeeper.common.ZKConfig; -import org.apache.zookeeper.server.ZooKeeperSaslServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -334,16 +333,12 @@ private synchronized LoginContext login(final String loginContextName) throws Lo } private String getLoginContextMessage() { - if (zkConfig instanceof ZKClientConfig) { - return ZKClientConfig.LOGIN_CONTEXT_NAME_KEY - + "(=" - + zkConfig.getProperty(ZKClientConfig.LOGIN_CONTEXT_NAME_KEY, ZKClientConfig.LOGIN_CONTEXT_NAME_KEY_DEFAULT) - + ")"; + if (zkConfig.isClient()) { + String key = SaslLoginKeys.CLIENT_NAME_KEY; + return String.format("%s(=%s)", key, zkConfig.getProperty(key, SaslLoginKeys.CLIENT_NAME_KEY_DEFAULT)); } else { - return ZooKeeperSaslServer.LOGIN_CONTEXT_NAME_KEY - + "(=" - + System.getProperty(ZooKeeperSaslServer.LOGIN_CONTEXT_NAME_KEY, ZooKeeperSaslServer.DEFAULT_LOGIN_CONTEXT_NAME) - + ")"; + String key = SaslLoginKeys.SERVER_NAME_KEY; + return String.format("%s(=%s)", key, System.getProperty(key, SaslLoginKeys.SERVER_NAME_KEY_DEFAULT)); } } diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/MultiOperationRecord.java b/zookeeper-common/src/main/java/org/apache/zookeeper/MultiOperationRecord.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/MultiOperationRecord.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/MultiOperationRecord.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/MultiResponse.java b/zookeeper-common/src/main/java/org/apache/zookeeper/MultiResponse.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/MultiResponse.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/MultiResponse.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Op.java b/zookeeper-common/src/main/java/org/apache/zookeeper/Op.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Op.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/Op.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/OpResult.java b/zookeeper-common/src/main/java/org/apache/zookeeper/OpResult.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/OpResult.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/OpResult.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/SaslClientCallbackHandler.java b/zookeeper-common/src/main/java/org/apache/zookeeper/SaslClientCallbackHandler.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/SaslClientCallbackHandler.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/SaslClientCallbackHandler.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Shell.java b/zookeeper-common/src/main/java/org/apache/zookeeper/Shell.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Shell.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/Shell.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Version.java b/zookeeper-common/src/main/java/org/apache/zookeeper/Version.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Version.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/Version.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/WatchedEvent.java b/zookeeper-common/src/main/java/org/apache/zookeeper/WatchedEvent.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/WatchedEvent.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/WatchedEvent.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/Watcher.java b/zookeeper-common/src/main/java/org/apache/zookeeper/Watcher.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/Watcher.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/Watcher.java diff --git a/zookeeper-common/src/main/java/org/apache/zookeeper/ZKCommonUtil.java b/zookeeper-common/src/main/java/org/apache/zookeeper/ZKCommonUtil.java new file mode 100644 index 00000000000..2c7549912d1 --- /dev/null +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/ZKCommonUtil.java @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.zookeeper; + +import java.io.File; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import org.apache.zookeeper.data.ACL; + +public class ZKCommonUtil { + private static final Map permCache = new ConcurrentHashMap<>(); + + /** + * @param filePath the file path to be validated + * @return Returns null if valid otherwise error message + */ + public static String validateFileInput(String filePath) { + File file = new File(filePath); + if (!file.exists()) { + return "File '" + file.getAbsolutePath() + "' does not exist."; + } + if (!file.canRead()) { + return "Read permission is denied on the file '" + file.getAbsolutePath() + "'"; + } + if (file.isDirectory()) { + return "'" + file.getAbsolutePath() + "' is a directory. it must be a file."; + } + return null; + } + + /** + * @param perms + * ACL permissions + * @return string representation of permissions + */ + public static String getPermString(int perms) { + return permCache.computeIfAbsent(perms, ZKCommonUtil::constructPermString); + } + + private static String constructPermString(int perms) { + StringBuilder p = new StringBuilder(); + if ((perms & ZooDefs.Perms.CREATE) != 0) { + p.append('c'); + } + if ((perms & ZooDefs.Perms.DELETE) != 0) { + p.append('d'); + } + if ((perms & ZooDefs.Perms.READ) != 0) { + p.append('r'); + } + if ((perms & ZooDefs.Perms.WRITE) != 0) { + p.append('w'); + } + if ((perms & ZooDefs.Perms.ADMIN) != 0) { + p.append('a'); + } + return p.toString(); + } + + public static String aclToString(List acls) { + StringBuilder sb = new StringBuilder(); + for (ACL acl : acls) { + sb.append(acl.getId().getScheme()); + sb.append(":"); + sb.append(acl.getId().getId()); + sb.append(":"); + sb.append(getPermString(acl.getPerms())); + } + return sb.toString(); + } +} diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java b/zookeeper-common/src/main/java/org/apache/zookeeper/ZooDefs.java similarity index 90% rename from zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/ZooDefs.java index 77c3de37cb5..0ce3e30f678 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/ZooDefs.java +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/ZooDefs.java @@ -161,4 +161,16 @@ public interface AddWatchModes { int persistentRecursive = 1; // matches AddWatchMode.PERSISTENT_RECURSIVE } + /* predefined xid's values recognized as special by the server */ + public interface PredefinedXids { + // -1 means notification(WATCHER_EVENT) + int NOTIFICATION_XID = -1; + // -2 is the xid for pings + int PING_XID = -2; + // -4 is the xid for AuthPacket + int AUTHPACKET_XID = -4; + // -8 is the xid for setWatch + int SET_WATCHES_XID = -8; + } + } diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/BCFKSFileLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/BCFKSFileLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/BCFKSFileLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/BCFKSFileLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ClientX509Util.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ClientX509Util.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/ClientX509Util.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/ClientX509Util.java diff --git a/zookeeper-common/src/main/java/org/apache/zookeeper/common/ConfigException.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ConfigException.java new file mode 100644 index 00000000000..0d6842b9ba6 --- /dev/null +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ConfigException.java @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.zookeeper.common; + +@SuppressWarnings("serial") +public class ConfigException extends Exception { + + public ConfigException(String msg) { + super(msg); + } + public ConfigException(String msg, Exception e) { + super(msg, e); + } + +} + diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/FileChangeWatcher.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/FileChangeWatcher.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/FileChangeWatcher.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/FileChangeWatcher.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoaderBuilderProvider.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoaderBuilderProvider.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoaderBuilderProvider.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/FileKeyStoreLoaderBuilderProvider.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/JKSFileLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/JKSFileLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/JKSFileLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/JKSFileLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/KeyStoreFileType.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/KeyStoreFileType.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/KeyStoreFileType.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/KeyStoreFileType.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/KeyStoreLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/KeyStoreLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/KeyStoreLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/KeyStoreLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/NetUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/NetUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/NetUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/NetUtils.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/NettyUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/NettyUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/NettyUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/NettyUtils.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/PEMFileLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/PEMFileLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/PEMFileLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/PEMFileLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/PKCS12FileLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/PKCS12FileLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/PKCS12FileLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/PKCS12FileLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/PathUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/PathUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/PathUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/PathUtils.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/SSLContextAndOptions.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/SSLContextAndOptions.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/SSLContextAndOptions.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/SSLContextAndOptions.java diff --git a/zookeeper-common/src/main/java/org/apache/zookeeper/common/SaslLoginKeys.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/SaslLoginKeys.java new file mode 100644 index 00000000000..a792c39f20c --- /dev/null +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/common/SaslLoginKeys.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.zookeeper.common; + +public class SaslLoginKeys { + public static final String CLIENT_NAME_KEY = "zookeeper.sasl.clientconfig"; + public static final String CLIENT_NAME_KEY_DEFAULT = "Client"; + + public static final String SERVER_NAME_KEY = "zookeeper.sasl.serverconfig"; + public static final String SERVER_NAME_KEY_DEFAULT = "Server"; +} diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/SecretUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/SecretUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/SecretUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/SecretUtils.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/StandardTypeFileKeyStoreLoader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/StandardTypeFileKeyStoreLoader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/StandardTypeFileKeyStoreLoader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/StandardTypeFileKeyStoreLoader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/StringUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/StringUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/StringUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/StringUtils.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/Time.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/Time.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/Time.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/Time.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/X509Exception.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/X509Exception.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/X509Exception.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/X509Exception.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/X509Util.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/X509Util.java similarity index 99% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/X509Util.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/X509Util.java index 2584fecd89d..d38eb990128 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/X509Util.java +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/common/X509Util.java @@ -56,8 +56,6 @@ import org.apache.zookeeper.common.X509Exception.KeyManagerException; import org.apache.zookeeper.common.X509Exception.SSLContextException; import org.apache.zookeeper.common.X509Exception.TrustManagerException; -import org.apache.zookeeper.server.NettyServerCnxnFactory; -import org.apache.zookeeper.server.auth.ProviderRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -306,10 +304,10 @@ public SSLContextAndOptions getDefaultSSLContextAndOptions() throws X509Exceptio private void resetDefaultSSLContextAndOptions() throws X509Exception.SSLContextException { SSLContextAndOptions newContext = createSSLContextAndOptions(); defaultSSLContextAndOptions.set(newContext); + onCertReloaded(); + } - if (Boolean.getBoolean(NettyServerCnxnFactory.CLIENT_CERT_RELOAD_KEY)) { - ProviderRegistry.addOrUpdateProvider(ProviderRegistry.AUTHPROVIDER_PROPERTY_PREFIX + "x509"); - } + protected void onCertReloaded() { } private SSLContextAndOptions createSSLContextAndOptions() throws SSLContextException { diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKConfig.java similarity index 63% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKConfig.java index 47fd943860c..3c3b780383c 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKConfig.java +++ b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKConfig.java @@ -21,13 +21,14 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.lang.reflect.Constructor; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import org.apache.zookeeper.Environment; -import org.apache.zookeeper.server.quorum.QuorumPeerConfig; import org.apache.zookeeper.server.util.VerifyingFileFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,8 +66,8 @@ public ZKConfig() { /** *

Use {@link ZKConfig#ZKConfig(Path configPath)} instead. * - *

The signature of this method will be changed to throw {@link ConfigException} - * instead of {@link QuorumPeerConfig.ConfigException} in future release. + *

The signature of this method has been changed to throw {@link ConfigException} + * instead of {@code QuorumPeerConfig.ConfigException}. * * @param configPath * Configuration file path @@ -74,15 +75,15 @@ public ZKConfig() { * if failed to load configuration properties */ @Deprecated - public ZKConfig(String configPath) throws QuorumPeerConfig.ConfigException { - this(new File(configPath)); + public ZKConfig(String configPath) throws ConfigException { + this(Paths.get(configPath)); } /** *

Use {@link ZKConfig#ZKConfig(Path configPath)} instead. * - *

The signature of this method will be changed to throw {@link ConfigException} - * instead of {@link QuorumPeerConfig.ConfigException} in future release. + *

The signature of this method has been changed to throw {@link ConfigException} + * instead of {@code QuorumPeerConfig.ConfigException}. * * @param configFile * Configuration file @@ -90,10 +91,8 @@ public ZKConfig(String configPath) throws QuorumPeerConfig.ConfigException { * if failed to load configuration properties */ @Deprecated - public ZKConfig(File configFile) throws QuorumPeerConfig.ConfigException { - this(); - addConfiguration(configFile); - LOG.info("ZK Config {}", this.properties); + public ZKConfig(File configFile) throws ConfigException { + this(configFile.toPath()); } /** @@ -102,9 +101,10 @@ public ZKConfig(File configFile) throws QuorumPeerConfig.ConfigException { * @param configPath path to configuration file * @throws ConfigException */ - @SuppressWarnings("deprecation") public ZKConfig(Path configPath) throws ConfigException { - this(configPath.toFile()); + this(); + addConfiguration(configPath); + LOG.info("ZK Config {}", this.properties); } private void init() { @@ -122,40 +122,17 @@ private void init() { */ protected void handleBackwardCompatibility() { properties.put(JUTE_MAXBUFFER, System.getProperty(JUTE_MAXBUFFER)); - properties.put(KINIT_COMMAND, System.getProperty(KINIT_COMMAND)); properties.put(JGSS_NATIVE, System.getProperty(JGSS_NATIVE)); - try (ClientX509Util clientX509Util = new ClientX509Util()) { - putSSLProperties(clientX509Util); - properties.put(clientX509Util.getSslAuthProviderProperty(), System.getProperty(clientX509Util.getSslAuthProviderProperty())); - properties.put(clientX509Util.getSslProviderProperty(), System.getProperty(clientX509Util.getSslProviderProperty())); - } - - try (X509Util x509Util = new QuorumX509Util()) { - putSSLProperties(x509Util); - } + System.getProperties().forEach((key, value) -> { + if (((String) key).startsWith("zookeeper.")) { + properties.put((String) key, (String) value); + } + }); } - private void putSSLProperties(X509Util x509Util) { - properties.put(x509Util.getSslProtocolProperty(), System.getProperty(x509Util.getSslProtocolProperty())); - properties.put(x509Util.getSslEnabledProtocolsProperty(), System.getProperty(x509Util.getSslEnabledProtocolsProperty())); - properties.put(x509Util.getSslCipherSuitesProperty(), System.getProperty(x509Util.getSslCipherSuitesProperty())); - properties.put(x509Util.getSslKeystoreLocationProperty(), System.getProperty(x509Util.getSslKeystoreLocationProperty())); - properties.put(x509Util.getSslKeystorePasswdProperty(), System.getProperty(x509Util.getSslKeystorePasswdProperty())); - properties.put(x509Util.getSslKeystorePasswdPathProperty(), System.getProperty(x509Util.getSslKeystorePasswdPathProperty())); - properties.put(x509Util.getSslKeystoreTypeProperty(), System.getProperty(x509Util.getSslKeystoreTypeProperty())); - properties.put(x509Util.getSslTruststoreLocationProperty(), System.getProperty(x509Util.getSslTruststoreLocationProperty())); - properties.put(x509Util.getSslTruststorePasswdProperty(), System.getProperty(x509Util.getSslTruststorePasswdProperty())); - properties.put(x509Util.getSslTruststorePasswdPathProperty(), System.getProperty(x509Util.getSslTruststorePasswdPathProperty())); - properties.put(x509Util.getSslTruststoreTypeProperty(), System.getProperty(x509Util.getSslTruststoreTypeProperty())); - properties.put(x509Util.getSslContextSupplierClassProperty(), System.getProperty(x509Util.getSslContextSupplierClassProperty())); - properties.put(x509Util.getSslClientHostnameVerificationEnabledProperty(), System.getProperty(x509Util.getSslClientHostnameVerificationEnabledProperty())); - properties.put(x509Util.getSslHostnameVerificationEnabledProperty(), System.getProperty(x509Util.getSslHostnameVerificationEnabledProperty())); - properties.put(x509Util.getSslCrlEnabledProperty(), System.getProperty(x509Util.getSslCrlEnabledProperty())); - properties.put(x509Util.getSslOcspEnabledProperty(), System.getProperty(x509Util.getSslOcspEnabledProperty())); - properties.put(x509Util.getSslClientAuthProperty(), System.getProperty(x509Util.getSslClientAuthProperty())); - properties.put(x509Util.getSslHandshakeDetectionTimeoutMillisProperty(), System.getProperty(x509Util.getSslHandshakeDetectionTimeoutMillisProperty())); - properties.put(x509Util.getFipsModeProperty(), System.getProperty(x509Util.getFipsModeProperty())); + public boolean isClient() { + return false; } /** @@ -215,16 +192,39 @@ public void setProperty(String key, String value) { * * @param configPath path to Configuration file. */ - @SuppressWarnings("deprecation") public void addConfiguration(Path configPath) throws ConfigException { - addConfiguration(configPath.toFile()); + Path absoluteConfigPath = configPath.toAbsolutePath(); + LOG.info("Reading configuration from: {}", absoluteConfigPath); + try { + File configFile = (new VerifyingFileFactory.Builder(LOG).warnForRelativePath() + .failForNonExistingPath() + .build()).validate(configPath.toFile()); + Properties cfg = new Properties(); + try (FileInputStream in = new FileInputStream(configFile)) { + cfg.load(in); + } + parseProperties(cfg); + } catch (IOException | IllegalArgumentException e) { + LOG.error("Error while configuration from: {}", absoluteConfigPath, e); + String msg = "Error while processing " + absoluteConfigPath; + try { + Class clazz = Class.forName("org.apache.zookeeper.server.quorum.QuorumPeerConfig.ConfigException"); + Class exceptionClass = clazz.asSubclass(ConfigException.class); + Constructor constructor = exceptionClass.getDeclaredConstructor(String.class, Exception.class); + throw constructor.newInstance(msg, e); + } catch (ClassNotFoundException ignored) { + } catch (Exception ignored) { + LOG.warn("Fail to construct QuorumPeerConfig.ConfigException", e); + } + throw new ConfigException(msg, e); + } } /** *

Use {@link #addConfiguration(Path)} instead.

* - *

The signature of this method will be changed to throw {@link ConfigException} - * instead of {@link QuorumPeerConfig.ConfigException} in future release. + *

The signature of this method has been changed to throw {@link ConfigException} + * instead of {@code QuorumPeerConfig.ConfigException}. * *

Add a configuration resource. The properties form this configuration will * overwrite corresponding already loaded property and system property @@ -233,31 +233,15 @@ public void addConfiguration(Path configPath) throws ConfigException { * Configuration file. */ @Deprecated - public void addConfiguration(File configFile) throws QuorumPeerConfig.ConfigException { - LOG.info("Reading configuration from: {}", configFile.getAbsolutePath()); - try { - configFile = (new VerifyingFileFactory.Builder(LOG).warnForRelativePath() - .failForNonExistingPath() - .build()).validate(configFile); - Properties cfg = new Properties(); - FileInputStream in = new FileInputStream(configFile); - try { - cfg.load(in); - } finally { - in.close(); - } - parseProperties(cfg); - } catch (IOException | IllegalArgumentException e) { - LOG.error("Error while configuration from: {}", configFile.getAbsolutePath(), e); - throw new QuorumPeerConfig.ConfigException("Error while processing " + configFile.getAbsolutePath(), e); - } + public void addConfiguration(File configFile) throws ConfigException { + addConfiguration(configFile.toPath()); } /** *

Use {@link #addConfiguration(Path)} instead.

* - *

The signature of this method will be changed to throw {@link ConfigException} - * instead of {@link QuorumPeerConfig.ConfigException} in future release. + *

The signature of this method has been changed to throw {@link ConfigException} + * instead of {@code QuorumPeerConfig.ConfigException}. * *

Add a configuration resource. The properties form this configuration will * overwrite corresponding already loaded property and system property @@ -266,8 +250,8 @@ public void addConfiguration(File configFile) throws QuorumPeerConfig.ConfigExce * Configuration file path. */ @Deprecated - public void addConfiguration(String configPath) throws QuorumPeerConfig.ConfigException { - addConfiguration(new File(configPath)); + public void addConfiguration(String configPath) throws ConfigException { + addConfiguration(Paths.get(configPath)); } private void parseProperties(Properties cfg) { diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKHostnameVerifier.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKTrustManager.java b/zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKTrustManager.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/common/ZKTrustManager.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/common/ZKTrustManager.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/compat/ProtocolManager.java b/zookeeper-common/src/main/java/org/apache/zookeeper/compat/ProtocolManager.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/compat/ProtocolManager.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/compat/ProtocolManager.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ByteBufferInputStream.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/ByteBufferInputStream.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/ByteBufferInputStream.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/ByteBufferInputStream.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/EphemeralType.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/EphemeralType.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/EphemeralType.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/EphemeralType.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/EphemeralTypeEmulate353.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/EphemeralTypeEmulate353.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/EphemeralTypeEmulate353.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/EphemeralTypeEmulate353.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ExitCode.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/ExitCode.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/ExitCode.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/ExitCode.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperThread.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/ZooKeeperThread.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperThread.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/ZooKeeperThread.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/auth/KerberosName.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/KerberosUtil.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/util/KerberosUtil.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/util/KerberosUtil.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/util/KerberosUtil.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/VerifyingFileFactory.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/util/VerifyingFileFactory.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/util/VerifyingFileFactory.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/util/VerifyingFileFactory.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/PathParentIterator.java b/zookeeper-common/src/main/java/org/apache/zookeeper/server/watch/PathParentIterator.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/server/watch/PathParentIterator.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/server/watch/PathParentIterator.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/util/PemReader.java b/zookeeper-common/src/main/java/org/apache/zookeeper/util/PemReader.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/util/PemReader.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/util/PemReader.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/util/SecurityUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/util/SecurityUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/util/SecurityUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/util/SecurityUtils.java diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/util/ServiceUtils.java b/zookeeper-common/src/main/java/org/apache/zookeeper/util/ServiceUtils.java similarity index 100% rename from zookeeper-server/src/main/java/org/apache/zookeeper/util/ServiceUtils.java rename to zookeeper-common/src/main/java/org/apache/zookeeper/util/ServiceUtils.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/CreateModeTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/CreateModeTest.java similarity index 93% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/CreateModeTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/CreateModeTest.java index ee2e4f4f75e..29388bd4776 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/CreateModeTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/CreateModeTest.java @@ -16,20 +16,17 @@ * limitations under the License. */ -package org.apache.zookeeper.test; +package org.apache.zookeeper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.util.EnumSet; -import org.apache.zookeeper.CreateMode; -import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.KeeperException.Code; -import org.apache.zookeeper.ZKTestCase; import org.junit.jupiter.api.Test; -public class CreateModeTest extends ZKTestCase { +public class CreateModeTest { @Test public void testBasicCreateMode() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/EventTypeTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/EventTypeTest.java similarity index 92% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/EventTypeTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/EventTypeTest.java index b7ff295d933..54f4a3666ea 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/EventTypeTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/EventTypeTest.java @@ -16,16 +16,15 @@ * limitations under the License. */ -package org.apache.zookeeper.test; +package org.apache.zookeeper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; import java.util.EnumSet; import org.apache.zookeeper.Watcher.Event.EventType; -import org.apache.zookeeper.ZKTestCase; import org.junit.jupiter.api.Test; -public class EventTypeTest extends ZKTestCase { +public class EventTypeTest { @Test public void testIntConversion() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/KeeperStateTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/KeeperStateTest.java similarity index 94% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/KeeperStateTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/KeeperStateTest.java index 9d0833205c9..fcd6006a175 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/KeeperStateTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/KeeperStateTest.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.zookeeper.test; +package org.apache.zookeeper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -24,10 +24,9 @@ import java.util.EnumSet; import org.apache.zookeeper.KeeperException.Code; import org.apache.zookeeper.Watcher.Event.KeeperState; -import org.apache.zookeeper.ZKTestCase; import org.junit.jupiter.api.Test; -public class KeeperStateTest extends ZKTestCase { +public class KeeperStateTest { @Test public void testIntConversion() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/MultiOperationRecordTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/MultiOperationRecordTest.java similarity index 97% rename from zookeeper-server/src/test/java/org/apache/zookeeper/MultiOperationRecordTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/MultiOperationRecordTest.java index df8d8b91642..45423567046 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/MultiOperationRecordTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/MultiOperationRecordTest.java @@ -27,7 +27,7 @@ import org.apache.zookeeper.server.ByteBufferInputStream; import org.junit.jupiter.api.Test; -public class MultiOperationRecordTest extends ZKTestCase { +public class MultiOperationRecordTest { @Test public void testRoundTrip() throws IOException { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/WatchedEventTest.java similarity index 95% rename from zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/WatchedEventTest.java index a9bc11da2a6..9912dd3201b 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/WatchedEventTest.java @@ -16,19 +16,17 @@ * limitations under the License. */ -package org.apache.zookeeper.test; +package org.apache.zookeeper; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.fail; import java.util.EnumSet; -import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.Watcher.Event.KeeperState; -import org.apache.zookeeper.ZKTestCase; import org.apache.zookeeper.proto.WatcherEvent; import org.junit.jupiter.api.Test; -public class WatchedEventTest extends ZKTestCase { +public class WatchedEventTest { @Test public void testCreatingWatchedEvent() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith.java b/zookeeper-common/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/common/CertificatesToPlayWith.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/common/KeyStoreFileTypeTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/common/KeyStoreFileTypeTest.java similarity index 98% rename from zookeeper-server/src/test/java/org/apache/zookeeper/common/KeyStoreFileTypeTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/common/KeyStoreFileTypeTest.java index 3f7faaabcc5..5153fa58079 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/common/KeyStoreFileTypeTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/common/KeyStoreFileTypeTest.java @@ -21,10 +21,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; -import org.apache.zookeeper.ZKTestCase; import org.junit.jupiter.api.Test; -public class KeyStoreFileTypeTest extends ZKTestCase { +public class KeyStoreFileTypeTest { @Test public void testGetPropertyValue() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/common/NetUtilsTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/common/NetUtilsTest.java similarity index 98% rename from zookeeper-server/src/test/java/org/apache/zookeeper/common/NetUtilsTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/common/NetUtilsTest.java index fbe49221470..48396175b46 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/common/NetUtilsTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/common/NetUtilsTest.java @@ -23,10 +23,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import java.net.InetSocketAddress; -import org.apache.zookeeper.ZKTestCase; import org.junit.jupiter.api.Test; -public class NetUtilsTest extends ZKTestCase { +public class NetUtilsTest { private Integer port = 1234; private String v4addr = "127.0.0.1"; diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/common/PathUtilsTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/common/PathUtilsTest.java similarity index 98% rename from zookeeper-server/src/test/java/org/apache/zookeeper/common/PathUtilsTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/common/PathUtilsTest.java index fb4f4bd73bd..ff1018c5b35 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/common/PathUtilsTest.java +++ b/zookeeper-common/src/test/java/org/apache/zookeeper/common/PathUtilsTest.java @@ -21,10 +21,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; -import org.apache.zookeeper.ZKTestCase; import org.junit.jupiter.api.Test; -public class PathUtilsTest extends ZKTestCase { +public class PathUtilsTest { @Test public void testValidatePath_ValidPath() { diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/common/ZKConfigTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/common/ZKConfigTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/common/ZKConfigTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/common/ZKConfigTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/common/ZKHostnameVerifierTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/common/ZKHostnameVerifierTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/common/ZKHostnameVerifierTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/common/ZKHostnameVerifierTest.java diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/compat/ProtocolManagerTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/compat/ProtocolManagerTest.java similarity index 100% rename from zookeeper-server/src/test/java/org/apache/zookeeper/compat/ProtocolManagerTest.java rename to zookeeper-common/src/test/java/org/apache/zookeeper/compat/ProtocolManagerTest.java diff --git a/zookeeper-contrib/zookeeper-contrib-fatjar/pom.xml b/zookeeper-contrib/zookeeper-contrib-fatjar/pom.xml index f78a8fdce09..7198149f860 100644 --- a/zookeeper-contrib/zookeeper-contrib-fatjar/pom.xml +++ b/zookeeper-contrib/zookeeper-contrib-fatjar/pom.xml @@ -49,7 +49,7 @@ org.apache.zookeeper - zookeeper + zookeeper-server ${project.version} test-jar diff --git a/zookeeper-contrib/zookeeper-contrib-loggraph/pom.xml b/zookeeper-contrib/zookeeper-contrib-loggraph/pom.xml index 3e129cadf96..a1010eecec2 100644 --- a/zookeeper-contrib/zookeeper-contrib-loggraph/pom.xml +++ b/zookeeper-contrib/zookeeper-contrib-loggraph/pom.xml @@ -41,7 +41,7 @@ org.apache.zookeeper - zookeeper + zookeeper-server ${project.version} diff --git a/zookeeper-contrib/zookeeper-contrib-rest/pom.xml b/zookeeper-contrib/zookeeper-contrib-rest/pom.xml index 94dc093c12b..e61c2e1ffa6 100644 --- a/zookeeper-contrib/zookeeper-contrib-rest/pom.xml +++ b/zookeeper-contrib/zookeeper-contrib-rest/pom.xml @@ -54,12 +54,12 @@ org.apache.zookeeper - zookeeper + zookeeper-client ${project.version} org.apache.zookeeper - zookeeper + zookeeper-server ${project.version} test-jar test diff --git a/zookeeper-contrib/zookeeper-contrib-rest/src/test/zkServer.sh b/zookeeper-contrib/zookeeper-contrib-rest/src/test/zkServer.sh index 4272130173a..de37f251fca 100755 --- a/zookeeper-contrib/zookeeper-contrib-rest/src/test/zkServer.sh +++ b/zookeeper-contrib/zookeeper-contrib-rest/src/test/zkServer.sh @@ -57,9 +57,10 @@ for i in "$zk_base"/build/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done -for i in "$zk_base"/zookeeper-server/src/main/resource/lib/*.jar; do +for i in "$zk_base"/zookeeper/target/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done + export CLASSPATH case $1 in diff --git a/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zkServer.sh b/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zkServer.sh index a8049fd6794..257ba9e6010 100755 --- a/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zkServer.sh +++ b/zookeeper-contrib/zookeeper-contrib-zkpython/src/test/zkServer.sh @@ -48,16 +48,12 @@ if [[ $1 == "startClean" ]]; then rm -rf "$WORK_DIR" fi -CLASSPATH="$CLASSPATH:$PROJECT_ROOT/zookeeper-server/target/classes" CLASSPATH="$CLASSPATH:$PROJECT_ROOT/conf" -for i in "$PROJECT_ROOT"/zookeeper-server/target/lib/*.jar; do +for i in "$PROJECT_ROOT"/zookeeper/target/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done -for i in "$PROJECT_ROOT"/zookeeper-server/src/main/resource/lib/*.jar; do - CLASSPATH="$CLASSPATH:$i" -done export CLASSPATH # Make sure nothing is left over from before @@ -69,7 +65,7 @@ case $1 in rm -rf "$WORK_DIR/ssl" mkdir -p "$WORK_DIR/ssl" - cp "$PROJECT_ROOT/zookeeper-client/zookeeper-client-c/ssl/gencerts.sh" "$WORK_DIR/ssl/" + cp "$PROJECT_ROOT/zookeeper-client-c/ssl/gencerts.sh" "$WORK_DIR/ssl/" (cd "$WORK_DIR/ssl/" && ./gencerts.sh) sed "s#WORKDIR#$WORK_DIR#g" "$TEST_DIR/zoo.cfg" >"$WORK_DIR/zoo.cfg" diff --git a/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml b/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml index d8f75e55129..c0b3131376e 100644 --- a/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml +++ b/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml @@ -82,7 +82,7 @@ org.apache.zookeeper - zookeeper + zookeeper-client ${project.version} diff --git a/zookeeper-it/pom.xml b/zookeeper-it/pom.xml index 0346bd90d64..b121dc4db94 100644 --- a/zookeeper-it/pom.xml +++ b/zookeeper-it/pom.xml @@ -48,7 +48,7 @@ org.apache.zookeeper - zookeeper + zookeeper-server tests test-jar ${project.version} diff --git a/zookeeper-jute/pom.xml b/zookeeper-jute/pom.xml index 2be9787d530..f669d2a1dcd 100644 --- a/zookeeper-jute/pom.xml +++ b/zookeeper-jute/pom.xml @@ -110,7 +110,7 @@ exec - ${project.basedir}/../zookeeper-client/zookeeper-client-c/generated/ + ${project.basedir}/../zookeeper-client-c/generated/ java -classpath diff --git a/zookeeper-recipes/pom.xml b/zookeeper-recipes/pom.xml index 65a63d64156..d13fec5bdc0 100644 --- a/zookeeper-recipes/pom.xml +++ b/zookeeper-recipes/pom.xml @@ -69,7 +69,7 @@ org.apache.zookeeper - zookeeper + zookeeper-server ${project.version} test-jar test diff --git a/zookeeper-recipes/zookeeper-recipes-lock/src/main/c/tests/zkServer.sh b/zookeeper-recipes/zookeeper-recipes-lock/src/main/c/tests/zkServer.sh index e6201e9bd28..71d7d3354bb 100755 --- a/zookeeper-recipes/zookeeper-recipes-lock/src/main/c/tests/zkServer.sh +++ b/zookeeper-recipes/zookeeper-recipes-lock/src/main/c/tests/zkServer.sh @@ -47,7 +47,7 @@ for i in "$base_dir"/build/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done -for i in "$base_dir"/zookeeper-server/src/main/resource/lib/*.jar; do +for i in "$base_dir"/zookeeper/src/main/resource/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done diff --git a/zookeeper-recipes/zookeeper-recipes-queue/src/main/c/tests/zkServer.sh b/zookeeper-recipes/zookeeper-recipes-queue/src/main/c/tests/zkServer.sh index e6201e9bd28..506e0dd6be2 100755 --- a/zookeeper-recipes/zookeeper-recipes-queue/src/main/c/tests/zkServer.sh +++ b/zookeeper-recipes/zookeeper-recipes-queue/src/main/c/tests/zkServer.sh @@ -47,8 +47,8 @@ for i in "$base_dir"/build/lib/*.jar; do CLASSPATH="$CLASSPATH:$i" done -for i in "$base_dir"/zookeeper-server/src/main/resource/lib/*.jar; do - CLASSPATH="$CLASSPATH:$i" +for d in "$base_dir"/zookeeper/target/lib/*.jar; do + CLASSPATH="$d:$CLASSPATH" done CLASSPATH="$CLASSPATH:$CLOVER_HOME/lib/clover.jar" diff --git a/zookeeper-server/pom.xml b/zookeeper-server/pom.xml index 495e4847919..56a20b7c61d 100644 --- a/zookeeper-server/pom.xml +++ b/zookeeper-server/pom.xml @@ -26,12 +26,13 @@ 3.10.0-SNAPSHOT - zookeeper + zookeeper-server jar Apache ZooKeeper - Server ZooKeeper server + com.github.spotbugs spotbugs-annotations @@ -39,29 +40,37 @@ true - org.hamcrest - hamcrest-library - test + org.apache.yetus + audience-annotations + + - org.apache.commons - commons-collections4 - test + org.apache.zookeeper + zookeeper-jute + ${project.version} org.apache.zookeeper - zookeeper-jute + zookeeper-common ${project.version} + + - commons-cli - commons-cli - provided + org.apache.zookeeper + zookeeper-client + ${project.version} + test + + - org.apache.yetus - audience-annotations + commons-io + commons-io + + io.netty netty-handler @@ -75,6 +84,8 @@ io.netty netty-tcnative-boringssl-static + + org.slf4j slf4j-api @@ -85,25 +96,12 @@ runtime true + + - org.eclipse.jetty - jetty-server - provided - - - org.eclipse.jetty - jetty-servlet - provided - - - org.eclipse.jetty - jetty-client - provided - - - com.fasterxml.jackson.core - jackson-databind - provided + org.apache.commons + commons-collections4 + test org.bouncycastle @@ -115,11 +113,6 @@ bcpkix-jdk18on test - - jline - jline - provided - io.dropwizard.metrics metrics-core @@ -140,6 +133,18 @@ kerby-config test + + org.burningwave + tools + test + + + + + org.hamcrest + hamcrest-library + test + org.mockito mockito-core @@ -175,103 +180,46 @@ junit-platform-runner test + + - org.burningwave - tools - test + commons-cli + commons-cli + provided + + + + + org.eclipse.jetty + jetty-server + provided - org.xerial.snappy - snappy-java + org.eclipse.jetty + jetty-servlet provided - commons-io - commons-io - compile + org.eclipse.jetty + jetty-client + provided + + + com.fasterxml.jackson.core + jackson-databind + provided + + + + + org.xerial.snappy + snappy-java + provided - - org.codehaus.mojo - build-helper-maven-plugin - - - - build-time - - timestamp-property - - - build.time - yyyy-MM-dd HH:mm zz - en_US - UTC - - - - parse-version - - parse-version - - - - generate-sources - - add-source - - - - ${project.build.directory}/generated-sources/java - - - - - - - org.apache.maven.plugins - maven-resources-plugin - - - prepare-filtered-java-source - - copy-resources - - generate-sources - - ${project.build.directory}/generated-sources/java - - - src/main/java-filtered - true - - - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy-dependencies - package - - copy-dependencies - - - ${project.build.directory}/lib - false - true - false - - - - - org.apache.maven.plugins maven-surefire-plugin @@ -290,50 +238,6 @@ - - org.apache.felix - maven-bundle-plugin - - - build bundle - package - - bundle - - - - - - - io.netty.buffer;resolution:=optional, - io.netty.channel;resolution:=optional, - io.netty.channel.group;resolution:=optional, - io.netty.channel.socket.nio;resolution:=optional, - javax.management;resolution:=optional, - javax.security.auth.callback, - javax.security.auth.login, - javax.security.sasl, - org.ietf.jgss, - org.osgi.framework;resolution:=optional, - org.osgi.util.tracker;resolution:=optional, - org.slf4j, - *;resolution:=optional - - - !org.apache.zookeeper.data, - !org.apache.zookeeper.proto, - !org.apache.zookeeper.txn, - org.apache.zookeeper* - - ZooKeeper Bundle - https://zookeeper.apache.org/doc/current/ - ${mvngit.commit.id} - !Implementation-Build,* - - osgi - - - org.apache.maven.plugins maven-jar-plugin diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/audit/AuditHelper.java b/zookeeper-server/src/main/java/org/apache/zookeeper/audit/AuditHelper.java index d6f1178c609..dd46a32f20c 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/audit/AuditHelper.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/audit/AuditHelper.java @@ -24,7 +24,7 @@ import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.MultiOperationRecord; import org.apache.zookeeper.Op; -import org.apache.zookeeper.ZKUtil; +import org.apache.zookeeper.ZKCommonUtil; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.audit.AuditEvent.Result; import org.apache.zookeeper.proto.CreateRequest; @@ -101,7 +101,7 @@ public static void addAuditLog(Request request, ProcessTxnResult txnResult, bool case ZooDefs.OpCode.setACL: op = AuditConstants.OP_SETACL; SetACLRequest setACLRequest = request.readRequestRecord(SetACLRequest::new); - acls = ZKUtil.aclToString(setACLRequest.getAcl()); + acls = ZKCommonUtil.aclToString(setACLRequest.getAcl()); if (failedTxn) { path = setACLRequest.getPath(); } diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/QuorumX509Util.java b/zookeeper-server/src/main/java/org/apache/zookeeper/common/QuorumX509Util.java index af3ee1bdeab..71604444ed5 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/QuorumX509Util.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/common/QuorumX509Util.java @@ -32,5 +32,4 @@ protected String getConfigPrefix() { protected boolean shouldVerifyClientHostname() { return true; } - } diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java index 911583f9fc2..87c5ee6105c 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/FinalRequestProcessor.java @@ -26,7 +26,6 @@ import java.util.Locale; import java.util.Set; import org.apache.jute.Record; -import org.apache.zookeeper.ClientCnxn; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.KeeperException.Code; import org.apache.zookeeper.KeeperException.SessionMovedException; @@ -215,7 +214,7 @@ public void processRequest(Request request) { lastOp = "PING"; updateStats(request, lastOp, lastZxid); - responseSize = cnxn.sendResponse(new ReplyHeader(ClientCnxn.PING_XID, lastZxid, 0), null, "response"); + responseSize = cnxn.sendResponse(new ReplyHeader(ZooDefs.PredefinedXids.PING_XID, lastZxid, 0), null, "response"); return; } case OpCode.createSession: { diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java index d35cf97edad..abe7b8a6a21 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NIOServerCnxn.java @@ -36,7 +36,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.jute.BinaryInputArchive; import org.apache.jute.Record; -import org.apache.zookeeper.ClientCnxn; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.ZooDefs; @@ -719,7 +718,7 @@ public void process(WatchedEvent event, List znodeAcl) { } return; } - ReplyHeader h = new ReplyHeader(ClientCnxn.NOTIFICATION_XID, event.getZxid(), 0); + ReplyHeader h = new ReplyHeader(ZooDefs.PredefinedXids.NOTIFICATION_XID, event.getZxid(), 0); if (LOG.isTraceEnabled()) { ZooTrace.logTraceMessage( LOG, diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxn.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxn.java index d6acb90fb1f..72df150a821 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxn.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxn.java @@ -42,7 +42,6 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.apache.jute.BinaryInputArchive; import org.apache.jute.Record; -import org.apache.zookeeper.ClientCnxn; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.ZooDefs; @@ -177,7 +176,7 @@ public void process(WatchedEvent event, List znodeAcl) { } return; } - ReplyHeader h = new ReplyHeader(ClientCnxn.NOTIFICATION_XID, event.getZxid(), 0); + ReplyHeader h = new ReplyHeader(ZooDefs.PredefinedXids.NOTIFICATION_XID, event.getZxid(), 0); if (LOG.isTraceEnabled()) { ZooTrace.logTraceMessage( LOG, diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java index e6b0fac2a6e..c7e44a852d2 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxnFactory.java @@ -510,7 +510,14 @@ private ServerBootstrap configureBootstrapAllocator(ServerBootstrap bootstrap) { } NettyServerCnxnFactory() { - x509Util = new ClientX509Util(); + x509Util = new ClientX509Util() { + @Override + protected void onCertReloaded() { + if (Boolean.getBoolean(CLIENT_CERT_RELOAD_KEY)) { + ProviderRegistry.addOrUpdateProvider(ProviderRegistry.AUTHPROVIDER_PROPERTY_PREFIX + "x509"); + } + } + }; boolean useClientReload = Boolean.getBoolean(CLIENT_CERT_RELOAD_KEY); LOG.info("{}={}", CLIENT_CERT_RELOAD_KEY, useClientReload); diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java index c7791dafbd0..3d0d9a5ecdc 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/SnapshotFormatter.java @@ -31,7 +31,7 @@ import org.apache.jute.BinaryInputArchive; import org.apache.jute.InputArchive; import org.apache.yetus.audience.InterfaceAudience; -import org.apache.zookeeper.ZKUtil; +import org.apache.zookeeper.ZKCommonUtil; import org.apache.zookeeper.data.StatPersisted; import org.apache.zookeeper.server.persistence.FileSnap; import org.apache.zookeeper.server.persistence.SnapStream; @@ -77,7 +77,7 @@ public static void main(String[] args) throws Exception { return; } - String error = ZKUtil.validateFileInput(snapshotFile); + String error = ZKCommonUtil.validateFileInput(snapshotFile); if (null != error) { System.err.println(error); ServiceUtils.requestSystemExit(ExitCode.INVALID_INVOCATION.getValue()); diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperSaslServer.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperSaslServer.java index bf5089d792b..6c7917bd8aa 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperSaslServer.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ZooKeeperSaslServer.java @@ -22,14 +22,15 @@ import javax.security.sasl.SaslException; import javax.security.sasl.SaslServer; import org.apache.zookeeper.Login; +import org.apache.zookeeper.common.SaslLoginKeys; import org.apache.zookeeper.util.SecurityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ZooKeeperSaslServer { - public static final String LOGIN_CONTEXT_NAME_KEY = "zookeeper.sasl.serverconfig"; - public static final String DEFAULT_LOGIN_CONTEXT_NAME = "Server"; + public static final String LOGIN_CONTEXT_NAME_KEY = SaslLoginKeys.SERVER_NAME_KEY; + public static final String DEFAULT_LOGIN_CONTEXT_NAME = SaslLoginKeys.SERVER_NAME_KEY_DEFAULT; private static final Logger LOG = LoggerFactory.getLogger(ZooKeeperSaslServer.class); private SaslServer saslServer; diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/CustomHostProviderTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/CustomHostProviderTest.java index 9a78b3428e5..0403b1cb775 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/CustomHostProviderTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/CustomHostProviderTest.java @@ -27,7 +27,7 @@ import org.apache.zookeeper.test.ClientBase; import org.junit.jupiter.api.Test; -public class CustomHostProviderTest extends ZKTestCase { +public class CustomHostProviderTest { private AtomicInteger counter = new AtomicInteger(3); diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/audit/Slf4JAuditLoggerTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/audit/Slf4JAuditLoggerTest.java index caad6ad3bcb..26f60c93a81 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/audit/Slf4JAuditLoggerTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/audit/Slf4JAuditLoggerTest.java @@ -33,7 +33,7 @@ import org.apache.zookeeper.KeeperException.Code; import org.apache.zookeeper.Op; import org.apache.zookeeper.PortAssignment; -import org.apache.zookeeper.ZKUtil; +import org.apache.zookeeper.ZKCommonUtil; import org.apache.zookeeper.ZooDefs; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.audit.AuditEvent.Result; @@ -188,11 +188,11 @@ public void testSetACLAuditLogs() } verifyLog( getAuditLog(AuditConstants.OP_SETACL, path, Result.FAILURE, - ZKUtil.aclToString(openAclUnsafe), null), readAuditLog(os)); + ZKCommonUtil.aclToString(openAclUnsafe), null), readAuditLog(os)); zk.setACL(path, openAclUnsafe, -1); verifyLog( getAuditLog(AuditConstants.OP_SETACL, path, Result.SUCCESS, - ZKUtil.aclToString(openAclUnsafe), null), readAuditLog(os)); + ZKCommonUtil.aclToString(openAclUnsafe), null), readAuditLog(os)); } @Test diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ClientSSLReloadTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ClientSSLReloadTest.java index c7e3c8d22e7..618ae43cb0f 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/ClientSSLReloadTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/ClientSSLReloadTest.java @@ -25,7 +25,6 @@ import java.util.Properties; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; -import jline.internal.Log; import org.apache.commons.io.FileUtils; import org.apache.zookeeper.PortAssignment; import org.apache.zookeeper.WatchedEvent; @@ -144,7 +143,7 @@ public void certificateReloadTest() throws Exception { assertTrue(l.await(10, TimeUnit.SECONDS)); } - Log.info("Updating keyStore & trustStore files !!!!"); + LOG.info("Updating keyStore & trustStore files !!!!"); // Update the keyStoreFile1 and trustStoreFile1 files in the filesystem with keyStoreFile2 & trustStoreFile2 FileUtils.writeStringToFile(keyStoreFile1, FileUtils.readFileToString(keyStoreFile2, StandardCharsets.US_ASCII), StandardCharsets.US_ASCII, false); FileUtils.writeStringToFile(trustStoreFile1, FileUtils.readFileToString(trustStoreFile2, StandardCharsets.US_ASCII), StandardCharsets.US_ASCII, false); @@ -156,7 +155,7 @@ public void certificateReloadTest() throws Exception { try (ZooKeeper zk = new ZooKeeper(zkServer.getSecureConnectionString(), 60000, (WatchedEvent event) -> { switch (event.getState()) { case SyncConnected: - l.countDown(); + l2.countDown(); break; } }, zKClientConfig)) { diff --git a/zookeeper/pom.xml b/zookeeper/pom.xml new file mode 100644 index 00000000000..12042e6e3a1 --- /dev/null +++ b/zookeeper/pom.xml @@ -0,0 +1,193 @@ + + + + 4.0.0 + + org.apache.zookeeper + parent + 3.10.0-SNAPSHOT + + + zookeeper + jar + Apache ZooKeeper - Client | Server | Cli + ZooKeeper client-server-cli + + + + org.apache.zookeeper + zookeeper-jute + ${project.version} + + + org.apache.zookeeper + zookeeper-common + ${project.version} + + + org.apache.zookeeper + zookeeper-client + ${project.version} + + + org.apache.zookeeper + zookeeper-server + ${project.version} + + + org.apache.zookeeper + zookeeper-cli + ${project.version} + + + + + ch.qos.logback + logback-classic + runtime + true + + + + + org.eclipse.jetty + jetty-server + provided + + + org.eclipse.jetty + jetty-servlet + provided + + + org.eclipse.jetty + jetty-client + provided + + + com.fasterxml.jackson.core + jackson-databind + provided + + + + + jline + jline + provided + + + commons-cli + commons-cli + provided + + + + + io.dropwizard.metrics + metrics-core + provided + + + + + org.xerial.snappy + snappy-java + provided + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + true + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/lib + false + true + false + + + + + + + org.apache.felix + maven-bundle-plugin + + + build bundle + package + + bundle + + + + + + + io.netty.buffer;resolution:=optional, + io.netty.channel;resolution:=optional, + io.netty.channel.group;resolution:=optional, + io.netty.channel.socket.nio;resolution:=optional, + javax.management;resolution:=optional, + javax.security.auth.callback, + javax.security.auth.login, + javax.security.sasl, + org.ietf.jgss, + org.osgi.framework;resolution:=optional, + org.osgi.util.tracker;resolution:=optional, + org.slf4j, + *;resolution:=optional + + + !org.apache.zookeeper.data, + !org.apache.zookeeper.proto, + !org.apache.zookeeper.txn, + org.apache.zookeeper* + + ZooKeeper Bundle + https://zookeeper.apache.org/doc/current/ + ${mvngit.commit.id} + !Implementation-Build,* + + osgi + + + + + diff --git a/zookeeper/src/main/java/org/apache/zookeeper/package-info.java b/zookeeper/src/main/java/org/apache/zookeeper/package-info.java new file mode 100644 index 00000000000..6f795be3ebe --- /dev/null +++ b/zookeeper/src/main/java/org/apache/zookeeper/package-info.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Module to bundle `zookeeper-client`, `zookeeper-server` and others together. + * + *

This module exists for two purposes: + *

    + *
  1. keep compatibility with old zookeeper artifact
  2. + *
  3. build osgi bundle jar
  4. + *
+ * + *

DON'T DELETE THIS FILE. + * + *

`maven-bundle-plugin` does not include classes if there is no source code. I have no idea why. + * + *

As far as I know OSGI could not tolerate overlapping package paths cross bundles. But we have + * jute classes `FileHeader`, `LearnerInfo`, `QuorumAuthPacket` and `QuorumPacket` in `zookeeper-jute` + * under package `o.a.zookeeper.server` which is exported by `zookeeper` but not `zookeeper-jute`. + * + *

We have to include above classes to this bundle without bring other classes from `zookeeper-jute`. + * `Embed-Dependency` can't handle this as we can not embed `zookeeper-jute` while jar of `zookeeper-server` + * does not contain those classes. So we have to resort to exclude/include from `Export-Package` as before. + * But, it does not work if there is no source code, so we have this file for OSGI bundle. + */ +package org.apache.zookeeper; diff --git a/zookeeper-server/src/main/resources/LICENSE.txt b/zookeeper/src/main/resources/LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/LICENSE.txt rename to zookeeper/src/main/resources/LICENSE.txt diff --git a/zookeeper-server/src/main/resources/NOTICE.txt b/zookeeper/src/main/resources/NOTICE.txt similarity index 100% rename from zookeeper-server/src/main/resources/NOTICE.txt rename to zookeeper/src/main/resources/NOTICE.txt diff --git a/zookeeper-server/src/main/resources/lib/commons-cli-1.5.0.LICENSE.txt b/zookeeper/src/main/resources/lib/commons-cli-1.5.0.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/commons-cli-1.5.0.LICENSE.txt rename to zookeeper/src/main/resources/lib/commons-cli-1.5.0.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/commons-io-2.11.0.LICENSE.txt b/zookeeper/src/main/resources/lib/commons-io-2.11.0.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/commons-io-2.11.0.LICENSE.txt rename to zookeeper/src/main/resources/lib/commons-io-2.11.0.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-client-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-client-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-client-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-client-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-http-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-http-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-http-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-http-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-io-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-io-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-io-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-io-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-security-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-security-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-security-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-security-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-server-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-server-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-server-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-server-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-servlet-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-servlet-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-servlet-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-servlet-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-util-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-util-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-util-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-util-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jetty-util-ajax-9.4.57.v20241219.LICENSE.txt b/zookeeper/src/main/resources/lib/jetty-util-ajax-9.4.57.v20241219.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jetty-util-ajax-9.4.57.v20241219.LICENSE.txt rename to zookeeper/src/main/resources/lib/jetty-util-ajax-9.4.57.v20241219.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/jline-2.14.6.LICENSE.txt b/zookeeper/src/main/resources/lib/jline-2.14.6.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/jline-2.14.6.LICENSE.txt rename to zookeeper/src/main/resources/lib/jline-2.14.6.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/logback-classic-1.3.15.LICENSE.txt b/zookeeper/src/main/resources/lib/logback-classic-1.3.15.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/logback-classic-1.3.15.LICENSE.txt rename to zookeeper/src/main/resources/lib/logback-classic-1.3.15.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/logback-core-1.3.15.LICENSE.txt b/zookeeper/src/main/resources/lib/logback-core-1.3.15.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/logback-core-1.3.15.LICENSE.txt rename to zookeeper/src/main/resources/lib/logback-core-1.3.15.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/metrics-core-4.1.12.1.jar_LICENSE.txt b/zookeeper/src/main/resources/lib/metrics-core-4.1.12.1.jar_LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/metrics-core-4.1.12.1.jar_LICENSE.txt rename to zookeeper/src/main/resources/lib/metrics-core-4.1.12.1.jar_LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-buffer-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-buffer-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-buffer-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-buffer-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-codec-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-codec-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-codec-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-codec-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-common-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-common-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-common-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-common-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-handler-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-handler-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-handler-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-handler-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-resolver-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-resolver-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-resolver-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-resolver-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-transport-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-transport-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-transport-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-transport-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-transport-classes-epoll-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-transport-classes-epoll-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-transport-classes-epoll-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-transport-classes-epoll-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/netty-transport-native-unix-common-4.1.119.Final.LICENSE.txt b/zookeeper/src/main/resources/lib/netty-transport-native-unix-common-4.1.119.Final.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/netty-transport-native-unix-common-4.1.119.Final.LICENSE.txt rename to zookeeper/src/main/resources/lib/netty-transport-native-unix-common-4.1.119.Final.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/simpleclient-0.9.0.LICENSE.txt b/zookeeper/src/main/resources/lib/simpleclient-0.9.0.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/simpleclient-0.9.0.LICENSE.txt rename to zookeeper/src/main/resources/lib/simpleclient-0.9.0.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/simpleclient_common-0.9.0_LICENSE.txt b/zookeeper/src/main/resources/lib/simpleclient_common-0.9.0_LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/simpleclient_common-0.9.0_LICENSE.txt rename to zookeeper/src/main/resources/lib/simpleclient_common-0.9.0_LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/simpleclient_hotspot-0.9.0_LICENSE.txt b/zookeeper/src/main/resources/lib/simpleclient_hotspot-0.9.0_LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/simpleclient_hotspot-0.9.0_LICENSE.txt rename to zookeeper/src/main/resources/lib/simpleclient_hotspot-0.9.0_LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/simpleclient_servlet-0.9.0_LICENSE.txt b/zookeeper/src/main/resources/lib/simpleclient_servlet-0.9.0_LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/simpleclient_servlet-0.9.0_LICENSE.txt rename to zookeeper/src/main/resources/lib/simpleclient_servlet-0.9.0_LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/slf4j-2.0.13.LICENSE.txt b/zookeeper/src/main/resources/lib/slf4j-2.0.13.LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/slf4j-2.0.13.LICENSE.txt rename to zookeeper/src/main/resources/lib/slf4j-2.0.13.LICENSE.txt diff --git a/zookeeper-server/src/main/resources/lib/snappy-java-1.1.10.5.jar_LICENSE.txt b/zookeeper/src/main/resources/lib/snappy-java-1.1.10.5.jar_LICENSE.txt similarity index 100% rename from zookeeper-server/src/main/resources/lib/snappy-java-1.1.10.5.jar_LICENSE.txt rename to zookeeper/src/main/resources/lib/snappy-java-1.1.10.5.jar_LICENSE.txt diff --git a/zookeeper-server/src/main/resources/overview.html b/zookeeper/src/main/resources/overview.html similarity index 100% rename from zookeeper-server/src/main/resources/overview.html rename to zookeeper/src/main/resources/overview.html