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 extends ZipEntry> 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 {
/**