This is an automated email from the ASF dual-hosted git repository. symat pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/master by this push: new d3282c6 ZOOKEEPER-3952: Remove commons-lang from ZooKeeper d3282c6 is described below commit d3282c62ddb30a8ce265dcebca0e106c51f07ca3 Author: Tamas Penzes <tam...@cloudera.com> AuthorDate: Tue Oct 6 10:39:37 2020 +0000 ZOOKEEPER-3952: Remove commons-lang from ZooKeeper Removed commons-lang from main project, replaced functionality with standard Java code. Author: Tamas Penzes <tam...@cloudera.com> Reviewers: Christopher Tubbs <ctubb...@apache.org>, Enrico Olivelli <eolive...@apache.org>, Mate Szalay-Beko <sy...@apache.org>, tison <wander4...@gmail.com> Closes #1478 from tamaashu/ZOOKEEPER-3952 --- pom.xml | 48 +++++++++++++++++++--- .../zookeeper-contrib-zooinspector/ivy.xml | 8 +--- .../zookeeper-contrib-zooinspector/pom.xml | 6 --- zookeeper-server/pom.xml | 4 -- .../java/org/apache/zookeeper/common/PathTrie.java | 23 +++++++---- .../zookeeper/server/FinalRequestProcessor.java | 3 +- 6 files changed, 60 insertions(+), 32 deletions(-) diff --git a/pom.xml b/pom.xml index b994523..5c95183 100755 --- a/pom.xml +++ b/pom.xml @@ -444,10 +444,10 @@ <kerby.version>2.0.0</kerby.version> <bouncycastle.version>1.60</bouncycastle.version> <commons-collections.version>3.2.2</commons-collections.version> - <commons-lang.version>2.6</commons-lang.version> <dropwizard.version>3.2.5</dropwizard.version> <spotbugsannotations.version>4.0.2</spotbugsannotations.version> <checkstyle.version>8.17</checkstyle.version> + <enforcer.version>3.0.0-M3</enforcer.version> <!-- parameters to pass to C client build --> <c-client-openssl>yes</c-client-openssl> @@ -468,11 +468,6 @@ <version>${commons-collections.version}</version> </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>${commons-lang.version}</version> - </dependency> - <dependency> <groupId>org.apache.yetus</groupId> <artifactId>audience-annotations</artifactId> <version>${audience-annotations.version}</version> @@ -1046,6 +1041,47 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>${enforcer.version}</version> + <executions> + <execution> + <id>banned-commons-lang</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <bannedDependencies> + <excludes> + <exclude>commons-lang:commons-lang</exclude> + </excludes> + <searchTransitive>false</searchTransitive> + <message>We don't use commons-lang any more, so do not depend on it directly.</message> + </bannedDependencies> + </rules> + </configuration> + </execution> + <execution> + <id>banned-commons-lang3</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <bannedDependencies> + <excludes> + <exclude>org.apache.commons:commons-lang3</exclude> + </excludes> + <searchTransitive>false</searchTransitive> + <message>We don't use commons-lang3, so do not depend on it directly.</message> + </bannedDependencies> + </rules> + </configuration> + </execution> + </executions> + </plugin> </plugins> <resources> <resource> diff --git a/zookeeper-contrib/zookeeper-contrib-zooinspector/ivy.xml b/zookeeper-contrib/zookeeper-contrib-zooinspector/ivy.xml index d841d18..96acdde 100644 --- a/zookeeper-contrib/zookeeper-contrib-zooinspector/ivy.xml +++ b/zookeeper-contrib/zookeeper-contrib-zooinspector/ivy.xml @@ -39,12 +39,8 @@ <dependency org="log4j" name="log4j" rev="1.2.17" transitive="false"/> <dependency org="junit" name="junit" rev="4.12" conf="test->default"/> - <dependency org="org.apache.rat" name="apache-rat-tasks" - rev="0.6" conf="releaseaudit->default"/> - <dependency org="commons-lang" name="commons-lang" - rev="2.4" conf="releaseaudit->default"/> - <dependency org="commons-collections" name="commons-collections" - rev="3.2.2" conf="releaseaudit->default"/> + <dependency org="org.apache.rat" name="apache-rat-tasks" rev="0.6" conf="releaseaudit->default"/> + <dependency org="commons-collections" name="commons-collections" rev="3.2.2" conf="releaseaudit->default"/> </dependencies> </ivy-module> diff --git a/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml b/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml index c9f3b1e..b517441 100755 --- a/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml +++ b/zookeeper-contrib/zookeeper-contrib-zooinspector/pom.xml @@ -35,7 +35,6 @@ <properties> <rat.version>0.6</rat.version> - <commons-lang.version>2.4</commons-lang.version> <guava.version>18.0</guava.version> </properties> @@ -85,11 +84,6 @@ <version>${rat.version}</version> </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>${commons-lang.version}</version> - </dependency> - <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> </dependency> diff --git a/zookeeper-server/pom.xml b/zookeeper-server/pom.xml index 5cdb8b3..5dbc028 100755 --- a/zookeeper-server/pom.xml +++ b/zookeeper-server/pom.xml @@ -49,10 +49,6 @@ <scope>test</scope> </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - </dependency> - <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper-jute</artifactId> <version>${project.version}</version> diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/common/PathTrie.java b/zookeeper-server/src/main/java/org/apache/zookeeper/common/PathTrie.java index 95258b2..86acdd9 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/common/PathTrie.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/common/PathTrie.java @@ -27,7 +27,7 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; - import org.apache.commons.lang.StringUtils; + import java.util.stream.Stream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -203,10 +203,10 @@ public void addPath(final String path) { Objects.requireNonNull(path, "Path cannot be null"); - final String[] pathComponents = StringUtils.split(path, '/'); - if (pathComponents.length == 0) { + if (path.length() == 0) { throw new IllegalArgumentException("Invalid path: " + path); } + final String[] pathComponents = split(path); writeLock.lock(); try { @@ -233,10 +233,11 @@ public void deletePath(final String path) { Objects.requireNonNull(path, "Path cannot be null"); - final String[] pathComponents = StringUtils.split(path, '/'); - if (pathComponents.length == 0) { + if (path.length() == 0) { throw new IllegalArgumentException("Invalid path: " + path); } + final String[] pathComponents = split(path); + writeLock.lock(); try { @@ -267,10 +268,10 @@ public boolean existsNode(final String path) { Objects.requireNonNull(path, "Path cannot be null"); - final String[] pathComponents = StringUtils.split(path, '/'); - if (pathComponents.length == 0) { + if (path.length() == 0) { throw new IllegalArgumentException("Invalid path: " + path); } + final String[] pathComponents = split(path); readLock.lock(); try { @@ -299,7 +300,7 @@ public String findMaxPrefix(final String path) { Objects.requireNonNull(path, "Path cannot be null"); - final String[] pathComponents = StringUtils.split(path, '/'); + final String[] pathComponents = split(path); readLock.lock(); try { @@ -344,4 +345,10 @@ } } + private static String[] split(final String path){ + return Stream.of(path.split("/")) + .filter(t -> !t.trim().isEmpty()) + .toArray(String[]::new); + } + } 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 a23e903..26d5baf 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 @@ -25,7 +25,6 @@ import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.apache.jute.Record; import org.apache.zookeeper.ClientCnxn; import org.apache.zookeeper.KeeperException; @@ -554,7 +553,7 @@ public class FinalRequestProcessor implements RequestProcessor { String prefixPath = getEphemerals.getPrefixPath(); Set<String> allEphems = zks.getZKDatabase().getDataTree().getEphemerals(request.sessionId); List<String> ephemerals = new ArrayList<>(); - if (StringUtils.isBlank(prefixPath) || "/".equals(prefixPath.trim())) { + if (prefixPath == null || prefixPath.trim().isEmpty() || "/".equals(prefixPath.trim())) { ephemerals.addAll(allEphems); } else { for (String p : allEphems) {