From 4bba9c4e8ba962dd6f35c7fd25cfa466050f5607 Mon Sep 17 00:00:00 2001 From: "Robert (Bobby) Evans" Date: Mon, 22 Oct 2018 10:44:18 -0500 Subject: [PATCH] STORM-3269: Update version of httpclient, and fix version dep issue --- pom.xml | 2 +- .../jvm/org/apache/storm/utils/VersionInfo.java | 16 +++++++++++++--- .../rocksdb/ReadOnlyStringMetadataCache.java | 3 --- .../rocksdb/RocksDbMetricsWriter.java | 4 +--- .../rocksdb/WritableStringMetadataCache.java | 3 +-- 5 files changed, 16 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index f5bc4fe991f..d7191ae847e 100644 --- a/pom.xml +++ b/pom.xml @@ -263,7 +263,7 @@ 0.2.3 1.5.0 1.11 - 4.3.3 + 4.5.6 2.0.1 0.9.0 16.0.1 diff --git a/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java b/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java index 9805d8be341..bd8ff5141c2 100644 --- a/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java +++ b/storm-client/src/jvm/org/apache/storm/utils/VersionInfo.java @@ -38,7 +38,8 @@ public final class VersionInfo { private static final Logger LOG = LoggerFactory.getLogger(VersionInfo.class); private static final String STORM_CORE_PROPERTIES_NAME = "storm-core-version-info.properties"; - public static final IVersionInfo OUR_FULL_VERSION = new VersionInfoImpl("storm-core"); + private static final String STORM_CLIENT_PROPERTIES_NAME = "storm-client-version-info.properties"; + public static final IVersionInfo OUR_FULL_VERSION = new VersionInfoImpl("storm-client"); public static final SimpleVersion OUR_VERSION = new SimpleVersion(OUR_FULL_VERSION.getVersion()); private static class VersionInfoImpl implements IVersionInfo { @@ -122,11 +123,20 @@ public static IVersionInfo getFromClasspath(String cp) { * @return the IVersionInfo or null. */ public static IVersionInfo getFromClasspath(List classpath) { + IVersionInfo ret = getFromClasspath(classpath, STORM_CLIENT_PROPERTIES_NAME); + if (ret == null) { + //storm-core is needed here for backwards compatibility. + ret = getFromClasspath(classpath, STORM_CORE_PROPERTIES_NAME); + } + return ret; + } + + private static IVersionInfo getFromClasspath(List classpath, final String propFileName) { IVersionInfo ret = null; for (String part: classpath) { Path p = Paths.get(part); if (Files.isDirectory(p)) { - Path child = p.resolve(STORM_CORE_PROPERTIES_NAME); + Path child = p.resolve(propFileName); if (Files.exists(child) && !Files.isDirectory(child)) { try (FileReader reader = new FileReader(child.toFile())) { Properties info = new Properties(); @@ -144,7 +154,7 @@ public static IVersionInfo getFromClasspath(List classpath) { Enumeration zipEnums = jf.entries(); while (zipEnums.hasMoreElements()) { ZipEntry entry = zipEnums.nextElement(); - if (!entry.isDirectory() && entry.getName().equals(STORM_CORE_PROPERTIES_NAME)) { + if (!entry.isDirectory() && entry.getName().equals(propFileName)) { try (InputStreamReader reader = new InputStreamReader(jf.getInputStream(entry))) { Properties info = new Properties(); info.load(reader); diff --git a/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/ReadOnlyStringMetadataCache.java b/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/ReadOnlyStringMetadataCache.java index 11d82b72cb4..7735550df17 100644 --- a/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/ReadOnlyStringMetadataCache.java +++ b/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/ReadOnlyStringMetadataCache.java @@ -11,12 +11,9 @@ package org.apache.storm.metricstore.rocksdb; -import org.apache.http.annotation.ThreadSafe; - /** * The read-only interface to a StringMetadataCache allowed to be used by any thread. */ -@ThreadSafe public interface ReadOnlyStringMetadataCache { /** diff --git a/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/RocksDbMetricsWriter.java b/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/RocksDbMetricsWriter.java index 7a30bccd906..5ae8a0e6f8a 100644 --- a/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/RocksDbMetricsWriter.java +++ b/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/RocksDbMetricsWriter.java @@ -20,7 +20,6 @@ import java.util.TreeMap; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ThreadLocalRandom; -import org.apache.http.annotation.NotThreadSafe; import org.apache.storm.metricstore.AggLevel; import org.apache.storm.metricstore.Metric; import org.apache.storm.metricstore.MetricException; @@ -34,7 +33,7 @@ /** * Class designed to perform all metrics inserts into RocksDB. Metrics are processed from a blocking queue. Inserts * to RocksDB are done using a single thread to simplify design (such as looking up existing metric data for aggregation, - * and fetching/evicting metadata from the cache). + * and fetching/evicting metadata from the cache). This class is not thread safe. *

* A writable LRU StringMetadataCache is used to minimize looking up metadata string Ids. As entries are added to the full cache, older * entries are evicted from the cache and need to be written to the database. This happens as the handleEvictedMetadata() @@ -51,7 +50,6 @@ *
  • Investigate performance of multiple threads inserting into RocksDB versus a single ordered insert.
  • * */ -@NotThreadSafe public class RocksDbMetricsWriter implements Runnable, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(RocksDbMetricsWriter.class); private RocksDbStore store; diff --git a/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/WritableStringMetadataCache.java b/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/WritableStringMetadataCache.java index ab47fdfd5a1..fc5f0b1f9a4 100644 --- a/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/WritableStringMetadataCache.java +++ b/storm-server/src/main/java/org/apache/storm/metricstore/rocksdb/WritableStringMetadataCache.java @@ -13,13 +13,12 @@ import java.util.Map; import java.util.Set; -import org.apache.http.annotation.NotThreadSafe; import org.apache.storm.metricstore.MetricException; /** * The writable interface to a StringMetadataCache intended to be used by a single RocksDBMetricwWriter instance. + * This class is not thread safe. */ -@NotThreadSafe public interface WritableStringMetadataCache extends ReadOnlyStringMetadataCache { /**