You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by mw...@apache.org on 2018/08/29 14:40:32 UTC
[accumulo] branch master updated: fixes #434 - Anonymous types
replaced with lamdba (#610)
This is an automated email from the ASF dual-hosted git repository.
mwalch pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/master by this push:
new 355fd10 fixes #434 - Anonymous types replaced with lamdba (#610)
355fd10 is described below
commit 355fd104fc24d06204b032221f2d61e4cfe57210
Author: Christopher McTague <cj...@apache.org>
AuthorDate: Wed Aug 29 10:40:28 2018 -0400
fixes #434 - Anonymous types replaced with lamdba (#610)
- Accumulo-core java 8 simplification/translation
- Accumulo-minicluster java 8 simplification/translation
- accumulo-start java 8 simplification/translation
---
.../org/apache/accumulo/core/client/impl/Bulk.java | 2 +-
.../accumulo/core/client/impl/BulkImport.java | 2 +-
.../accumulo/core/client/impl/ClientContext.java | 2 +-
.../core/client/impl/ConditionalWriterImpl.java | 14 +--
.../core/client/impl/TableOperationsImpl.java | 5 +-
.../impl/TabletServerBatchReaderIterator.java | 25 ++--
.../core/client/impl/TabletServerBatchWriter.java | 20 ++--
.../core/client/summary/CountingSummarizer.java | 54 ++++-----
.../accumulo/core/conf/DefaultConfiguration.java | 2 +-
.../accumulo/core/file/BloomFilterLayer.java | 126 ++++++++++-----------
.../file/blockfile/impl/CachableBlockFile.java | 2 +-
.../core/metadata/MetadataLocationObtainer.java | 16 +--
.../core/rpc/UGIAssumingTransportFactory.java | 7 +-
.../core/spi/scan/HintScanPrioritizer.java | 2 +-
.../core/spi/scan/IdleRatioScanPrioritizer.java | 2 +-
.../org/apache/accumulo/core/summary/Gatherer.java | 41 ++++---
.../accumulo/core/summary/SummaryReader.java | 4 +-
.../accumulo/core/trace/DistributedTrace.java | 9 +-
.../core/util/format/DefaultFormatter.java | 7 +-
.../java/org/apache/accumulo/fate/AgeOffStore.java | 7 +-
.../main/java/org/apache/accumulo/fate/Fate.java | 16 +--
.../apache/accumulo/fate/zookeeper/ZooReader.java | 10 +-
.../accumulo/core/client/TestThrift1474.java | 7 +-
.../client/summary/CountingSummarizerTest.java | 4 +-
.../apache/accumulo/core/conf/PropertyTest.java | 2 +-
.../accumulo/core/conf/PropertyTypeTest.java | 2 +-
.../core/file/rfile/MultiThreadedRFileTest.java | 19 ++--
.../zookeeper/DistributedReadWriteLockTest.java | 37 +++---
.../fate/zookeeper/ZooReaderWriterTest.java | 21 +---
.../accumulo/minicluster/MiniAccumuloRunner.java | 39 +++----
.../minicluster/impl/MiniAccumuloClusterImpl.java | 32 +++---
.../start/classloader/AccumuloClassLoader.java | 9 +-
.../vfs/AccumuloReloadingVFSClassLoader.java | 13 +--
.../classloader/vfs/AccumuloVFSClassLoader.java | 15 +--
.../vfs/AccumuloReloadingVFSClassLoaderTest.java | 36 +-----
.../start/classloader/vfs/ContextManagerTest.java | 45 +++-----
36 files changed, 255 insertions(+), 401 deletions(-)
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/Bulk.java b/core/src/main/java/org/apache/accumulo/core/client/impl/Bulk.java
index dcea41c..8dfb1e5 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/Bulk.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/Bulk.java
@@ -154,7 +154,7 @@ public class Bulk {
Map<String,FileInfo> files = new HashMap<>();
public Files(Collection<FileInfo> files) {
- files.forEach(fi -> add(fi));
+ files.forEach(this::add);
}
public Files() {}
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/BulkImport.java b/core/src/main/java/org/apache/accumulo/core/client/impl/BulkImport.java
index 8c3abd5..8db4acc 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/BulkImport.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/BulkImport.java
@@ -126,7 +126,7 @@ public class BulkImport implements ImportSourceArguments, ImportExecutorOptions
SortedMap<KeyExtent,Bulk.Files> mappings = computeFileToTabletMappings(fs, tableId, srcPath,
executor, context);
- BulkSerialize.writeLoadMapping(mappings, srcPath.toString(), p -> fs.create(p));
+ BulkSerialize.writeLoadMapping(mappings, srcPath.toString(), fs::create);
List<ByteBuffer> args = Arrays.asList(ByteBuffer.wrap(tableId.getUtf8()),
ByteBuffer.wrap(srcPath.toString().getBytes(UTF_8)),
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ClientContext.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ClientContext.java
index 68c0aa5..07986fd 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/ClientContext.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ClientContext.java
@@ -78,7 +78,7 @@ public class ClientContext {
private static <T> Supplier<T> memoizeWithExpiration(Supplier<T> s) {
// This insanity exists to make modernizer plugin happy. We are living in the future now.
- return () -> Suppliers.memoizeWithExpiration(() -> s.get(), 100, TimeUnit.MILLISECONDS).get();
+ return () -> Suppliers.memoizeWithExpiration(s::get, 100, TimeUnit.MILLISECONDS).get();
}
public ClientContext(ClientInfo info) {
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
index 0a1f658..18ef8f9 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java
@@ -399,15 +399,11 @@ class ConditionalWriterImpl implements ConditionalWriter {
this.durability = config.getDurability();
this.classLoaderContext = config.getClassLoaderContext();
- Runnable failureHandler = new Runnable() {
-
- @Override
- public void run() {
- List<QCMutation> mutations = new ArrayList<>();
- failedMutations.drainTo(mutations);
- if (mutations.size() > 0)
- queue(mutations);
- }
+ Runnable failureHandler = () -> {
+ List<QCMutation> mutations = new ArrayList<>();
+ failedMutations.drainTo(mutations);
+ if (mutations.size() > 0)
+ queue(mutations);
};
failureHandler = new LoggingRunnable(log, failureHandler);
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java b/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
index 80cfc7a..a75b538 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/TableOperationsImpl.java
@@ -1887,9 +1887,10 @@ public class TableOperationsImpl extends TableOperationsHelper {
SummarizerConfiguration.fromTableProperties(getProperties(tableName)));
HashSet<SummarizerConfiguration> newConfigSet = new HashSet<>(Arrays.asList(newConfigs));
- newConfigSet.removeIf(sc -> currentConfigs.contains(sc));
+ newConfigSet.removeIf(currentConfigs::contains);
- Set<String> newIds = newConfigSet.stream().map(sc -> sc.getPropertyId()).collect(toSet());
+ Set<String> newIds = newConfigSet.stream().map(SummarizerConfiguration::getPropertyId)
+ .collect(toSet());
for (SummarizerConfiguration csc : currentConfigs) {
if (newIds.contains(csc.getPropertyId())) {
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java b/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java
index 7438fd1..c645b4b 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java
@@ -131,23 +131,18 @@ public class TabletServerBatchReaderIterator implements Iterator<Entry<Key,Value
ranges = ranges2;
}
- ResultReceiver rr = new ResultReceiver() {
-
- @Override
- public void receive(List<Entry<Key,Value>> entries) {
- try {
- resultsQueue.put(entries);
- } catch (InterruptedException e) {
- if (TabletServerBatchReaderIterator.this.queryThreadPool.isShutdown())
- log.debug("Failed to add Batch Scan result", e);
- else
- log.warn("Failed to add Batch Scan result", e);
- fatalException = e;
- throw new RuntimeException(e);
+ ResultReceiver rr = entries -> {
+ try {
+ resultsQueue.put(entries);
+ } catch (InterruptedException e) {
+ if (TabletServerBatchReaderIterator.this.queryThreadPool.isShutdown())
+ log.debug("Failed to add Batch Scan result", e);
+ else
+ log.warn("Failed to add Batch Scan result", e);
+ fatalException = e;
+ throw new RuntimeException(e);
- }
}
-
};
try {
diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java b/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java
index 512b33d..a1f5be3 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java
@@ -726,18 +726,14 @@ public class TabletServerBatchWriter {
void queueMutations(final MutationSet mutationsToSend) throws InterruptedException {
if (null == mutationsToSend)
return;
- binningThreadPool.execute(Trace.wrap(new Runnable() {
-
- @Override
- public void run() {
- if (null != mutationsToSend) {
- try {
- log.trace("{} - binning {} mutations", Thread.currentThread().getName(),
- mutationsToSend.size());
- addMutations(mutationsToSend);
- } catch (Exception e) {
- updateUnknownErrors("Error processing mutation set", e);
- }
+ binningThreadPool.execute(Trace.wrap(() -> {
+ if (null != mutationsToSend) {
+ try {
+ log.trace("{} - binning {} mutations", Thread.currentThread().getName(),
+ mutationsToSend.size());
+ addMutations(mutationsToSend);
+ } catch (Exception e) {
+ updateUnknownErrors("Error processing mutation set", e);
}
}
}));
diff --git a/core/src/main/java/org/apache/accumulo/core/client/summary/CountingSummarizer.java b/core/src/main/java/org/apache/accumulo/core/client/summary/CountingSummarizer.java
index 5e69cf1..41b1216 100644
--- a/core/src/main/java/org/apache/accumulo/core/client/summary/CountingSummarizer.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/summary/CountingSummarizer.java
@@ -282,41 +282,37 @@ public abstract class CountingSummarizer<K> implements Summarizer {
@Override
public Combiner combiner(SummarizerConfiguration sc) {
init(sc);
- return new Combiner() {
+ return (summary1, summary2) -> {
- @Override
- public void merge(Map<String,Long> summary1, Map<String,Long> summary2) {
-
- for (String key : ALL_STATS) {
- summary1.merge(key, summary2.getOrDefault(key, 0L), Long::sum);
- }
+ for (String key : ALL_STATS) {
+ summary1.merge(key, summary2.getOrDefault(key, 0L), Long::sum);
+ }
- for (Entry<String,Long> entry : summary2.entrySet()) {
- String k2 = entry.getKey();
- Long v2 = entry.getValue();
+ for (Entry<String,Long> entry : summary2.entrySet()) {
+ String k2 = entry.getKey();
+ Long v2 = entry.getValue();
- if (k2.startsWith(COUNTER_STAT_PREFIX)) {
- summary1.merge(k2, v2, Long::sum);
- }
+ if (k2.startsWith(COUNTER_STAT_PREFIX)) {
+ summary1.merge(k2, v2, Long::sum);
}
+ }
- if (summary1.size() - ALL_STATS.length > maxCounters) {
- // find the keys with the lowest counts to remove
- List<String> keysToRemove = summary1.entrySet().stream()
- .filter(e -> e.getKey().startsWith(COUNTER_STAT_PREFIX)) // filter out non counters
- .sorted((e1, e2) -> Long.compare(e2.getValue(), e1.getValue())) // sort descending by
- // count
- .skip(maxCounters) // skip most frequent
- .map(e -> e.getKey()).collect(Collectors.toList()); // collect the least frequent
- // counters in a list
-
- long removedCount = 0;
- for (String key : keysToRemove) {
- removedCount += summary1.remove(key);
- }
-
- summary1.merge(TOO_MANY_STAT, removedCount, Long::sum);
+ if (summary1.size() - ALL_STATS.length > maxCounters) {
+ // find the keys with the lowest counts to remove
+ List<String> keysToRemove = summary1.entrySet().stream()
+ .filter(e -> e.getKey().startsWith(COUNTER_STAT_PREFIX)) // filter out non counters
+ .sorted((e1, e2) -> Long.compare(e2.getValue(), e1.getValue())) // sort descending by
+ // count
+ .skip(maxCounters) // skip most frequent
+ .map(Entry::getKey).collect(Collectors.toList()); // collect the least frequent
+ // counters in a list
+
+ long removedCount = 0;
+ for (String key : keysToRemove) {
+ removedCount += summary1.remove(key);
}
+
+ summary1.merge(TOO_MANY_STAT, removedCount, Long::sum);
}
};
}
diff --git a/core/src/main/java/org/apache/accumulo/core/conf/DefaultConfiguration.java b/core/src/main/java/org/apache/accumulo/core/conf/DefaultConfiguration.java
index 54b87cc..3e82187 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/DefaultConfiguration.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/DefaultConfiguration.java
@@ -29,7 +29,7 @@ public class DefaultConfiguration extends AccumuloConfiguration {
private static final Map<String,String> resolvedProps = Arrays.stream(Property.values())
.filter(p -> p.getType() != PropertyType.PREFIX)
- .collect(Collectors.toMap(p -> p.getKey(), p -> p.getDefaultValue()));
+ .collect(Collectors.toMap(Property::getKey, Property::getDefaultValue));
private DefaultConfiguration() {}
diff --git a/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java b/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
index 7d1e999..8ca966d 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/BloomFilterLayer.java
@@ -219,74 +219,70 @@ public class BloomFilterLayer {
final String context = acuconf.get(Property.TABLE_CLASSPATH);
- loadTask = new Runnable() {
- @Override
- public void run() {
+ loadTask = () -> {
+ // no need to load the bloom filter if the map file is closed
+ if (closed)
+ return;
+ String ClassName = null;
+ DataInputStream in = null;
- // no need to load the bloom filter if the map file is closed
+ try {
+ in = reader.getMetaStore(BLOOM_FILE_NAME);
+ DynamicBloomFilter tmpBloomFilter = new DynamicBloomFilter();
+
+ // check for closed again after open but before reading the bloom filter in
if (closed)
return;
- String ClassName = null;
- DataInputStream in = null;
-
- try {
- in = reader.getMetaStore(BLOOM_FILE_NAME);
- DynamicBloomFilter tmpBloomFilter = new DynamicBloomFilter();
-
- // check for closed again after open but before reading the bloom filter in
- if (closed)
- return;
-
- /**
- * Load classname for keyFunctor
- */
- ClassName = in.readUTF();
-
- Class<? extends KeyFunctor> clazz;
- if (context != null && !context.equals(""))
- clazz = AccumuloVFSClassLoader.getContextManager().loadClass(context, ClassName,
- KeyFunctor.class);
- else
- clazz = AccumuloVFSClassLoader.loadClass(ClassName, KeyFunctor.class);
- transformer = clazz.newInstance();
-
- /**
- * read in bloom filter
- */
-
- tmpBloomFilter.readFields(in);
- // only set the bloom filter after it is fully constructed
- bloomFilter = tmpBloomFilter;
- } catch (NoSuchMetaStoreException nsme) {
- // file does not have a bloom filter, ignore it
- } catch (IOException ioe) {
- if (!closed)
- LOG.warn("Can't open BloomFilter", ioe);
- else
- LOG.debug("Can't open BloomFilter, file closed : {}", ioe.getMessage());
-
- bloomFilter = null;
- } catch (ClassNotFoundException e) {
- LOG.error("Failed to find KeyFunctor in config: " + ClassName, e);
- bloomFilter = null;
- } catch (InstantiationException e) {
- LOG.error("Could not instantiate KeyFunctor: " + ClassName, e);
- bloomFilter = null;
- } catch (IllegalAccessException e) {
- LOG.error("Illegal acess exception", e);
- bloomFilter = null;
- } catch (RuntimeException rte) {
- if (!closed)
- throw rte;
- else
- LOG.debug("Can't open BloomFilter, RTE after closed ", rte);
- } finally {
- if (in != null) {
- try {
- in.close();
- } catch (IOException e) {
- LOG.warn("Failed to close ", e);
- }
+
+ /**
+ * Load classname for keyFunctor
+ */
+ ClassName = in.readUTF();
+
+ Class<? extends KeyFunctor> clazz;
+ if (context != null && !context.equals(""))
+ clazz = AccumuloVFSClassLoader.getContextManager().loadClass(context, ClassName,
+ KeyFunctor.class);
+ else
+ clazz = AccumuloVFSClassLoader.loadClass(ClassName, KeyFunctor.class);
+ transformer = clazz.newInstance();
+
+ /**
+ * read in bloom filter
+ */
+
+ tmpBloomFilter.readFields(in);
+ // only set the bloom filter after it is fully constructed
+ bloomFilter = tmpBloomFilter;
+ } catch (NoSuchMetaStoreException nsme) {
+ // file does not have a bloom filter, ignore it
+ } catch (IOException ioe) {
+ if (!closed)
+ LOG.warn("Can't open BloomFilter", ioe);
+ else
+ LOG.debug("Can't open BloomFilter, file closed : {}", ioe.getMessage());
+
+ bloomFilter = null;
+ } catch (ClassNotFoundException e) {
+ LOG.error("Failed to find KeyFunctor in config: " + ClassName, e);
+ bloomFilter = null;
+ } catch (InstantiationException e) {
+ LOG.error("Could not instantiate KeyFunctor: " + ClassName, e);
+ bloomFilter = null;
+ } catch (IllegalAccessException e) {
+ LOG.error("Illegal acess exception", e);
+ bloomFilter = null;
+ } catch (RuntimeException rte) {
+ if (!closed)
+ throw rte;
+ else
+ LOG.debug("Can't open BloomFilter, RTE after closed ", rte);
+ } finally {
+ if (in != null) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ LOG.warn("Failed to close ", e);
}
}
}
diff --git a/core/src/main/java/org/apache/accumulo/core/file/blockfile/impl/CachableBlockFile.java b/core/src/main/java/org/apache/accumulo/core/file/blockfile/impl/CachableBlockFile.java
index e49a0ce..eaef448 100644
--- a/core/src/main/java/org/apache/accumulo/core/file/blockfile/impl/CachableBlockFile.java
+++ b/core/src/main/java/org/apache/accumulo/core/file/blockfile/impl/CachableBlockFile.java
@@ -92,7 +92,7 @@ public class CachableBlockFile {
private long getCachedFileLen() throws IOException {
try {
- return fileLenCache.get(cacheId, () -> lengthSupplier.get());
+ return fileLenCache.get(cacheId, lengthSupplier::get);
} catch (ExecutionException e) {
throw new IOException("Failed to get " + cacheId + " len from cache ", e);
}
diff --git a/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java b/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java
index b0f9ee3..90b7235 100644
--- a/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java
+++ b/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java
@@ -178,16 +178,12 @@ public class MetadataLocationObtainer implements TabletLocationObtainer {
final TreeMap<Key,Value> results = new TreeMap<>();
- ResultReceiver rr = new ResultReceiver() {
-
- @Override
- public void receive(List<Entry<Key,Value>> entries) {
- for (Entry<Key,Value> entry : entries) {
- try {
- results.putAll(WholeRowIterator.decodeRow(entry.getKey(), entry.getValue()));
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ ResultReceiver rr = entries -> {
+ for (Entry<Key,Value> entry : entries) {
+ try {
+ results.putAll(WholeRowIterator.decodeRow(entry.getKey(), entry.getValue()));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
}
};
diff --git a/core/src/main/java/org/apache/accumulo/core/rpc/UGIAssumingTransportFactory.java b/core/src/main/java/org/apache/accumulo/core/rpc/UGIAssumingTransportFactory.java
index f64e54a..49b64f2 100644
--- a/core/src/main/java/org/apache/accumulo/core/rpc/UGIAssumingTransportFactory.java
+++ b/core/src/main/java/org/apache/accumulo/core/rpc/UGIAssumingTransportFactory.java
@@ -45,11 +45,6 @@ public class UGIAssumingTransportFactory extends TTransportFactory {
@Override
public TTransport getTransport(final TTransport trans) {
- return ugi.doAs(new PrivilegedAction<TTransport>() {
- @Override
- public TTransport run() {
- return wrapped.getTransport(trans);
- }
- });
+ return ugi.doAs((PrivilegedAction<TTransport>) () -> wrapped.getTransport(trans));
}
}
diff --git a/core/src/main/java/org/apache/accumulo/core/spi/scan/HintScanPrioritizer.java b/core/src/main/java/org/apache/accumulo/core/spi/scan/HintScanPrioritizer.java
index 01b1437..22063ef 100644
--- a/core/src/main/java/org/apache/accumulo/core/spi/scan/HintScanPrioritizer.java
+++ b/core/src/main/java/org/apache/accumulo/core/spi/scan/HintScanPrioritizer.java
@@ -100,6 +100,6 @@ public class HintScanPrioritizer implements ScanPrioritizer {
Comparator<ScanInfo> cmp = Comparator.comparingInt(si -> getPriority(si, defaultPriority, hpa));
return cmp.thenComparingLong(si -> si.getLastRunTime().orElse(0))
- .thenComparingLong(si -> si.getCreationTime());
+ .thenComparingLong(ScanInfo::getCreationTime);
}
}
diff --git a/core/src/main/java/org/apache/accumulo/core/spi/scan/IdleRatioScanPrioritizer.java b/core/src/main/java/org/apache/accumulo/core/spi/scan/IdleRatioScanPrioritizer.java
index 9f5adf7..df0714c 100644
--- a/core/src/main/java/org/apache/accumulo/core/spi/scan/IdleRatioScanPrioritizer.java
+++ b/core/src/main/java/org/apache/accumulo/core/spi/scan/IdleRatioScanPrioritizer.java
@@ -45,6 +45,6 @@ public class IdleRatioScanPrioritizer implements ScanPrioritizer {
};
return c1.thenComparingLong(si -> si.getLastRunTime().orElse(0))
- .thenComparingLong(si -> si.getCreationTime());
+ .thenComparingLong(ScanInfo::getCreationTime);
}
}
diff --git a/core/src/main/java/org/apache/accumulo/core/summary/Gatherer.java b/core/src/main/java/org/apache/accumulo/core/summary/Gatherer.java
index 84be0d6..f6888b4 100644
--- a/core/src/main/java/org/apache/accumulo/core/summary/Gatherer.java
+++ b/core/src/main/java/org/apache/accumulo/core/summary/Gatherer.java
@@ -230,28 +230,25 @@ public class Gatherer {
return Collections.singletonList(map);
}
- return new Iterable<Map<K,V>>() {
- @Override
- public Iterator<Map<K,V>> iterator() {
- Iterator<Entry<K,V>> esi = map.entrySet().iterator();
-
- return new Iterator<Map<K,V>>() {
- @Override
- public boolean hasNext() {
- return esi.hasNext();
- }
+ return () -> {
+ Iterator<Entry<K,V>> esi = map.entrySet().iterator();
- @Override
- public Map<K,V> next() {
- Map<K,V> workingMap = new HashMap<>(max);
- while (esi.hasNext() && workingMap.size() < max) {
- Entry<K,V> entry = esi.next();
- workingMap.put(entry.getKey(), entry.getValue());
- }
- return workingMap;
+ return new Iterator<Map<K,V>>() {
+ @Override
+ public boolean hasNext() {
+ return esi.hasNext();
+ }
+
+ @Override
+ public Map<K,V> next() {
+ Map<K,V> workingMap = new HashMap<>(max);
+ while (esi.hasNext() && workingMap.size() < max) {
+ Entry<K,V> entry = esi.next();
+ workingMap.put(entry.getKey(), entry.getValue());
}
- };
- }
+ return workingMap;
+ }
+ };
};
}
@@ -362,7 +359,7 @@ public class Gatherer {
Predicate<String> fileSelector = file -> Math
.abs(Hashing.murmur3_32().hashString(file).asInt()) % modulus == remainder;
if (previousWork != null) {
- fileSelector = fileSelector.and(file -> previousWork.failedFiles.contains(file));
+ fileSelector = fileSelector.and(previousWork.failedFiles::contains);
}
Map<String,Map<String,List<TRowRange>>> filesGBL;
filesGBL = getFilesGroupedByLocation(fileSelector);
@@ -386,7 +383,7 @@ public class Gatherer {
// when all processing is done, check for failed files... and if found starting processing
// again
- future.thenRun(() -> updateFuture());
+ future.thenRun(this::updateFuture);
} catch (Exception e) {
future = CompletableFuture.completedFuture(new ProcessedFiles());
// force future to have this exception
diff --git a/core/src/main/java/org/apache/accumulo/core/summary/SummaryReader.java b/core/src/main/java/org/apache/accumulo/core/summary/SummaryReader.java
index eb49fbb..668de1e 100644
--- a/core/src/main/java/org/apache/accumulo/core/summary/SummaryReader.java
+++ b/core/src/main/java/org/apache/accumulo/core/summary/SummaryReader.java
@@ -167,7 +167,7 @@ public class SummaryReader {
Predicate<SummarizerConfiguration> summarySelector, SummarizerFactory factory)
throws IOException {
SummaryReader fileSummaries = new SummaryReader();
- fileSummaries.summaryStores = load(name -> bcReader.getMetaBlock(name), summarySelector);
+ fileSummaries.summaryStores = load(bcReader::getMetaBlock, summarySelector);
fileSummaries.factory = factory;
return fileSummaries;
}
@@ -229,7 +229,7 @@ public class SummaryReader {
out.print("Summary data : \n");
- List<SummarySerializer> stores = load(name -> fsi.getMetaStore(name), conf -> true);
+ List<SummarySerializer> stores = load(fsi::getMetaStore, conf -> true);
int i = 1;
for (SummarySerializer summaryStore : stores) {
out.printf("%sSummary %d of %d generated by : %s\n", indent, i, stores.size(),
diff --git a/core/src/main/java/org/apache/accumulo/core/trace/DistributedTrace.java b/core/src/main/java/org/apache/accumulo/core/trace/DistributedTrace.java
index 3a79f9d..5ce5ce3 100644
--- a/core/src/main/java/org/apache/accumulo/core/trace/DistributedTrace.java
+++ b/core/src/main/java/org/apache/accumulo/core/trace/DistributedTrace.java
@@ -127,12 +127,9 @@ public class DistributedTrace {
setProperty(conf, TRACE_SERVICE_PROPERTY, service);
}
org.apache.htrace.Trace.setProcessId(service);
- ShutdownHookManager.get().addShutdownHook(new Runnable() {
- @Override
- public void run() {
- Trace.off();
- closeReceivers();
- }
+ ShutdownHookManager.get().addShutdownHook(() -> {
+ Trace.off();
+ closeReceivers();
}, 0);
loadSpanReceivers(conf);
}
diff --git a/core/src/main/java/org/apache/accumulo/core/util/format/DefaultFormatter.java b/core/src/main/java/org/apache/accumulo/core/util/format/DefaultFormatter.java
index 6abee26..84b9c08 100644
--- a/core/src/main/java/org/apache/accumulo/core/util/format/DefaultFormatter.java
+++ b/core/src/main/java/org/apache/accumulo/core/util/format/DefaultFormatter.java
@@ -82,12 +82,7 @@ public class DefaultFormatter implements Formatter {
}
/* so a new date object doesn't get created for every record in the scan result */
- private static ThreadLocal<Date> tmpDate = new ThreadLocal<Date>() {
- @Override
- protected Date initialValue() {
- return new Date();
- }
- };
+ private static ThreadLocal<Date> tmpDate = ThreadLocal.withInitial(Date::new);
/** Does not show timestamps if timestampFormat is null */
public static String formatEntry(Entry<Key,Value> entry, DateFormat timestampFormat) {
diff --git a/core/src/main/java/org/apache/accumulo/fate/AgeOffStore.java b/core/src/main/java/org/apache/accumulo/fate/AgeOffStore.java
index 399fc63..c37cacc 100644
--- a/core/src/main/java/org/apache/accumulo/fate/AgeOffStore.java
+++ b/core/src/main/java/org/apache/accumulo/fate/AgeOffStore.java
@@ -138,12 +138,7 @@ public class AgeOffStore<T> implements TStore<T> {
}
public AgeOffStore(TStore<T> store, long ageOffTime) {
- this(store, ageOffTime, new TimeSource() {
- @Override
- public long currentTimeMillis() {
- return System.currentTimeMillis();
- }
- });
+ this(store, ageOffTime, System::currentTimeMillis);
}
@Override
diff --git a/core/src/main/java/org/apache/accumulo/fate/Fate.java b/core/src/main/java/org/apache/accumulo/fate/Fate.java
index 6e13bd5..62dd36f 100644
--- a/core/src/main/java/org/apache/accumulo/fate/Fate.java
+++ b/core/src/main/java/org/apache/accumulo/fate/Fate.java
@@ -19,7 +19,6 @@ package org.apache.accumulo.fate;
import java.util.EnumSet;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
-import java.util.concurrent.ThreadFactory;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -174,16 +173,11 @@ public class Fate<T> {
*/
public void startTransactionRunners(int numThreads) {
final AtomicInteger runnerCount = new AtomicInteger(0);
- executor = Executors.newFixedThreadPool(numThreads, new ThreadFactory() {
-
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(new LoggingRunnable(log, r),
- "Repo runner " + runnerCount.getAndIncrement());
- t.setDaemon(true);
- return t;
- }
-
+ executor = Executors.newFixedThreadPool(numThreads, r -> {
+ Thread t = new Thread(new LoggingRunnable(log, r),
+ "Repo runner " + runnerCount.getAndIncrement());
+ t.setDaemon(true);
+ return t;
});
for (int i = 0; i < numThreads; i++) {
executor.execute(new TransactionRunner());
diff --git a/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooReader.java b/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooReader.java
index fee76b7..98e49d3 100644
--- a/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooReader.java
+++ b/core/src/main/java/org/apache/accumulo/fate/zookeeper/ZooReader.java
@@ -23,7 +23,6 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.accumulo.fate.util.Retry;
import org.apache.accumulo.fate.util.Retry.RetryFactory;
import org.apache.accumulo.fate.zookeeper.ZooUtil.ZooKeeperConnectionInfo;
-import org.apache.zookeeper.AsyncCallback.VoidCallback;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.Code;
import org.apache.zookeeper.Watcher;
@@ -239,12 +238,9 @@ public class ZooReader implements IZooReader {
public void sync(final String path) throws KeeperException, InterruptedException {
final AtomicInteger rc = new AtomicInteger();
final CountDownLatch waiter = new CountDownLatch(1);
- getZooKeeper().sync(path, new VoidCallback() {
- @Override
- public void processResult(int code, String arg1, Object arg2) {
- rc.set(code);
- waiter.countDown();
- }
+ getZooKeeper().sync(path, (code, arg1, arg2) -> {
+ rc.set(code);
+ waiter.countDown();
}, null);
waiter.await();
Code code = Code.get(rc.get());
diff --git a/core/src/test/java/org/apache/accumulo/core/client/TestThrift1474.java b/core/src/test/java/org/apache/accumulo/core/client/TestThrift1474.java
index 2ae1a56..8e632a9 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/TestThrift1474.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/TestThrift1474.java
@@ -69,12 +69,7 @@ public class TestThrift1474 {
args.stopTimeoutVal = 10;
args.stopTimeoutUnit = TimeUnit.MILLISECONDS;
final TServer server = new TThreadPoolServer(args.processor(processor));
- Thread thread = new Thread() {
- @Override
- public void run() {
- server.serve();
- }
- };
+ Thread thread = new Thread(server::serve);
thread.start();
while (!server.isServing()) {
sleepUninterruptibly(10, TimeUnit.MILLISECONDS);
diff --git a/core/src/test/java/org/apache/accumulo/core/client/summary/CountingSummarizerTest.java b/core/src/test/java/org/apache/accumulo/core/client/summary/CountingSummarizerTest.java
index c9cb457..d1e6b89 100644
--- a/core/src/test/java/org/apache/accumulo/core/client/summary/CountingSummarizerTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/client/summary/CountingSummarizerTest.java
@@ -75,7 +75,7 @@ public class CountingSummarizerTest {
}
HashMap<String,Long> stats = new HashMap<>();
- collector.summarize((k, v) -> stats.put(k, v));
+ collector.summarize(stats::put);
CounterSummary csum = new CounterSummary(stats);
Assert.assertEquals(expected, csum.getCounters());
@@ -104,7 +104,7 @@ public class CountingSummarizerTest {
collector.accept(dk, new Value(""));
HashMap<String,Long> stats = new HashMap<>();
- collector.summarize((k, v) -> stats.put(k, v));
+ collector.summarize(stats::put);
String p = COUNTER_STAT_PREFIX;
diff --git a/core/src/test/java/org/apache/accumulo/core/conf/PropertyTest.java b/core/src/test/java/org/apache/accumulo/core/conf/PropertyTest.java
index 5351c96..41f4f7b 100644
--- a/core/src/test/java/org/apache/accumulo/core/conf/PropertyTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/conf/PropertyTest.java
@@ -110,7 +110,7 @@ public class PropertyTest {
// ignores duplicates because ConfigurationCopy already de-duplicates
Collector<Entry<String,String>,?,TreeMap<String,String>> treeMapCollector = Collectors
- .toMap(e -> e.getKey(), e -> e.getValue(), (a, b) -> a, TreeMap::new);
+ .toMap(Entry::getKey, Entry::getValue, (a, b) -> a, TreeMap::new);
Predicate<Entry<String,String>> sensitiveNames = e -> e.getKey()
.equals(Property.INSTANCE_SECRET.getKey()) || e.getKey().toLowerCase().contains("password")
diff --git a/core/src/test/java/org/apache/accumulo/core/conf/PropertyTypeTest.java b/core/src/test/java/org/apache/accumulo/core/conf/PropertyTypeTest.java
index 854ecb7..e0bcecf 100644
--- a/core/src/test/java/org/apache/accumulo/core/conf/PropertyTypeTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/conf/PropertyTypeTest.java
@@ -68,7 +68,7 @@ public class PropertyTypeTest {
public void testFullCoverage() {
// This test checks the remainder of the methods in this class to ensure each property type has
// a corresponding test
- Stream<String> types = Arrays.stream(PropertyType.values()).map(v -> v.name());
+ Stream<String> types = Arrays.stream(PropertyType.values()).map(Enum::name);
List<String> typesTested = Arrays.stream(this.getClass().getMethods()).map(m -> m.getName())
.filter(m -> m.startsWith("testType")).map(m -> m.substring(8))
diff --git a/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java b/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
index dcd1af1..e78b1b1 100644
--- a/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
+++ b/core/src/test/java/org/apache/accumulo/core/file/rfile/MultiThreadedRFileTest.java
@@ -237,18 +237,15 @@ public class MultiThreadedRFileTest {
TimeUnit.SECONDS, new LinkedBlockingQueue<>(), new NamingThreadFactory(name));
pool.allowCoreThreadTimeOut(true);
try {
- Runnable runnable = new Runnable() {
- @Override
- public void run() {
- try {
- TestRFile trf = trfBase;
- synchronized (trfBaseCopy) {
- trf = trfBaseCopy.deepCopy();
- }
- validate(trf);
- } catch (Throwable t) {
- threadExceptions.add(t);
+ Runnable runnable = () -> {
+ try {
+ TestRFile trf = trfBase;
+ synchronized (trfBaseCopy) {
+ trf = trfBaseCopy.deepCopy();
}
+ validate(trf);
+ } catch (Throwable t) {
+ threadExceptions.add(t);
}
};
for (int i = 0; i < maxThreads; i++) {
diff --git a/core/src/test/java/org/apache/accumulo/fate/zookeeper/DistributedReadWriteLockTest.java b/core/src/test/java/org/apache/accumulo/fate/zookeeper/DistributedReadWriteLockTest.java
index 486a4c6..454ab2d 100644
--- a/core/src/test/java/org/apache/accumulo/fate/zookeeper/DistributedReadWriteLockTest.java
+++ b/core/src/test/java/org/apache/accumulo/fate/zookeeper/DistributedReadWriteLockTest.java
@@ -100,29 +100,26 @@ public class DistributedReadWriteLockTest {
Thread[] threads = new Thread[2];
for (int i = 0; i < threads.length; i++) {
final int which = i;
- threads[i] = new Thread() {
- @Override
- public void run() {
- if (which % 2 == 0) {
- final Lock wl = locker.writeLock();
- wl.lock();
- try {
- data.write();
- } finally {
- wl.unlock();
- }
- } else {
- final Lock rl = locker.readLock();
- rl.lock();
+ threads[i] = new Thread(() -> {
+ if (which % 2 == 0) {
+ final Lock wl = locker.writeLock();
+ wl.lock();
+ try {
+ data.write();
+ } finally {
+ wl.unlock();
+ }
+ } else {
+ final Lock rl = locker.readLock();
+ rl.lock();
+ data.read();
+ try {
data.read();
- try {
- data.read();
- } finally {
- rl.unlock();
- }
+ } finally {
+ rl.unlock();
}
}
- };
+ });
}
for (Thread t : threads) {
t.start();
diff --git a/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java b/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
index f2e5e37..dfe514e 100644
--- a/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
+++ b/core/src/test/java/org/apache/accumulo/fate/zookeeper/ZooReaderWriterTest.java
@@ -101,12 +101,7 @@ public class ZooReaderWriterTest {
final String path = "/foo";
final byte[] value = {0};
final List<ACL> acls = Collections.emptyList();
- Mutator mutator = new Mutator() {
- @Override
- public byte[] mutate(byte[] currentValue) throws Exception {
- return new byte[] {1};
- }
- };
+ Mutator mutator = currentValue -> new byte[] {1};
zk.create(path, value, acls, CreateMode.PERSISTENT);
EasyMock.expectLastCall().andThrow(new SessionExpiredException()).once();
@@ -124,12 +119,7 @@ public class ZooReaderWriterTest {
final byte[] value = {0};
final List<ACL> acls = Collections.emptyList();
final byte[] mutatedBytes = {1};
- Mutator mutator = new Mutator() {
- @Override
- public byte[] mutate(byte[] currentValue) throws Exception {
- return mutatedBytes;
- }
- };
+ Mutator mutator = currentValue -> mutatedBytes;
Method getDataMethod = ZooReaderWriter.class.getMethod("getData", String.class, boolean.class,
Stat.class);
@@ -162,12 +152,7 @@ public class ZooReaderWriterTest {
final byte[] value = {0};
final List<ACL> acls = Collections.emptyList();
final byte[] mutatedBytes = {1};
- Mutator mutator = new Mutator() {
- @Override
- public byte[] mutate(byte[] currentValue) throws Exception {
- return mutatedBytes;
- }
- };
+ Mutator mutator = currentValue -> mutatedBytes;
Method getDataMethod = ZooReaderWriter.class.getMethod("getData", String.class, boolean.class,
Stat.class);
diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java
index 02c0723..1b3636a 100644
--- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java
+++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloRunner.java
@@ -208,29 +208,26 @@ public class MiniAccumuloRunner {
final MiniAccumuloCluster accumulo = new MiniAccumuloCluster(config);
- Runtime.getRuntime().addShutdownHook(new Thread() {
- @Override
- public void run() {
- try {
- accumulo.stop();
- } catch (IOException e) {
- log.error("IOException attempting to stop Accumulo.", e);
- return;
- } catch (InterruptedException e) {
- log.error("InterruptedException attempting to stop Accumulo.", e);
- return;
- }
-
- try {
- FileUtils.deleteDirectory(miniDir);
- } catch (IOException e) {
- log.error("IOException attempting to clean up miniDir.", e);
- return;
- }
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ try {
+ accumulo.stop();
+ } catch (IOException e) {
+ log.error("IOException attempting to stop Accumulo.", e);
+ return;
+ } catch (InterruptedException e) {
+ log.error("InterruptedException attempting to stop Accumulo.", e);
+ return;
+ }
- System.out.println("\nShut down gracefully on " + new Date());
+ try {
+ FileUtils.deleteDirectory(miniDir);
+ } catch (IOException e) {
+ log.error("IOException attempting to clean up miniDir.", e);
+ return;
}
- });
+
+ System.out.println("\nShut down gracefully on " + new Date());
+ }));
accumulo.start();
diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
index d1c0cd6..ac7db48 100644
--- a/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
+++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/impl/MiniAccumuloClusterImpl.java
@@ -130,14 +130,11 @@ public class MiniAccumuloClusterImpl implements AccumuloCluster {
this.in = new BufferedReader(new InputStreamReader(stream));
out = new BufferedWriter(new FileWriter(logFile));
- SimpleTimer.getInstance(null).schedule(new Runnable() {
- @Override
- public void run() {
- try {
- flush();
- } catch (IOException e) {
- log.error("Exception while attempting to flush.", e);
- }
+ SimpleTimer.getInstance(null).schedule(() -> {
+ try {
+ flush();
+ } catch (IOException e) {
+ log.error("Exception while attempting to flush.", e);
}
}, 1000, 1000);
}
@@ -568,18 +565,15 @@ public class MiniAccumuloClusterImpl implements AccumuloCluster {
"The Accumulo instance being used is already running. Aborting.");
} else {
if (!initialized) {
- Runtime.getRuntime().addShutdownHook(new Thread() {
- @Override
- public void run() {
- try {
- MiniAccumuloClusterImpl.this.stop();
- } catch (IOException e) {
- log.error("IOException while attempting to stop the MiniAccumuloCluster.", e);
- } catch (InterruptedException e) {
- log.error("The stopping of MiniAccumuloCluster was interrupted.", e);
- }
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
+ try {
+ MiniAccumuloClusterImpl.this.stop();
+ } catch (IOException e) {
+ log.error("IOException while attempting to stop the MiniAccumuloCluster.", e);
+ } catch (InterruptedException e) {
+ log.error("The stopping of MiniAccumuloCluster was interrupted.", e);
}
- });
+ }));
}
if (!config.useExistingZooKeepers())
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java
index 3a1b4e0..1e4dc14 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/AccumuloClassLoader.java
@@ -17,7 +17,6 @@
package org.apache.accumulo.start.classloader;
import java.io.File;
-import java.io.FilenameFilter;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
@@ -172,12 +171,8 @@ public class AccumuloClassLoader {
urls.add(extDir.toURI().toURL());
else {
if (extDir.getParentFile() != null) {
- File[] extJars = extDir.getParentFile().listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- return name.matches("^" + extDir.getName());
- }
- });
+ File[] extJars = extDir.getParentFile()
+ .listFiles((dir, name) -> name.matches("^" + extDir.getName()));
if (extJars != null && extJars.length > 0) {
for (File jar : extJars)
urls.add(jar.toURI().toURL());
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoader.java
index a084db3..43ee314 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoader.java
@@ -64,15 +64,10 @@ public class AccumuloReloadingVFSClassLoader implements FileListener, ReloadingC
private final ThreadPoolExecutor executor;
{
BlockingQueue<Runnable> queue = new ArrayBlockingQueue<>(2);
- ThreadFactory factory = new ThreadFactory() {
-
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r);
- t.setDaemon(true);
- return t;
- }
-
+ ThreadFactory factory = r -> {
+ Thread t = new Thread(r);
+ t.setDaemon(true);
+ return t;
};
executor = new ThreadPoolExecutor(1, 1, 1, SECONDS, queue, factory);
}
diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
index 3aa87eb..c3c9bc8 100644
--- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
+++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/AccumuloVFSClassLoader.java
@@ -307,7 +307,7 @@ public class AccumuloVFSClassLoader {
public static String getClassPath(boolean debug) {
StringBuilder cp = new StringBuilder();
- printClassPath(s -> cp.append(s), debug);
+ printClassPath(cp::append, debug);
return cp.toString();
}
@@ -401,14 +401,11 @@ public class AccumuloVFSClassLoader {
public static synchronized ContextManager getContextManager() throws IOException {
if (contextManager == null) {
getClassLoader();
- contextManager = new ContextManager(generateVfs(), new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- try {
- return AccumuloVFSClassLoader.getClassLoader();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ contextManager = new ContextManager(generateVfs(), () -> {
+ try {
+ return getClassLoader();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
});
}
diff --git a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoaderTest.java b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoaderTest.java
index 81ea37f..7a69b3b 100644
--- a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoaderTest.java
+++ b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/AccumuloReloadingVFSClassLoaderTest.java
@@ -72,12 +72,7 @@ public class AccumuloReloadingVFSClassLoaderTest {
FileObject[] dirContents = testDir.getChildren();
AccumuloReloadingVFSClassLoader arvcl = new AccumuloReloadingVFSClassLoader(folderPath, vfs,
- new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- return ClassLoader.getSystemClassLoader();
- }
- }, true);
+ ClassLoader::getSystemClassLoader, true);
VFSClassLoader cl = (VFSClassLoader) arvcl.getClassLoader();
@@ -93,12 +88,7 @@ public class AccumuloReloadingVFSClassLoaderTest {
FileObject[] dirContents = testDir.getChildren();
AccumuloReloadingVFSClassLoader arvcl = new AccumuloReloadingVFSClassLoader(folderPath, vfs,
- new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- return ClassLoader.getSystemClassLoader();
- }
- }, 1000, true);
+ ClassLoader::getSystemClassLoader, 1000, true);
FileObject[] files = ((VFSClassLoader) arvcl.getClassLoader()).getFileObjects();
Assert.assertArrayEquals(createFileSystems(dirContents), files);
@@ -144,12 +134,7 @@ public class AccumuloReloadingVFSClassLoaderTest {
FileObject[] dirContents = testDir.getChildren();
AccumuloReloadingVFSClassLoader arvcl = new AccumuloReloadingVFSClassLoader(folderPath, vfs,
- new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- return ClassLoader.getSystemClassLoader();
- }
- }, 1000, true);
+ ClassLoader::getSystemClassLoader, 1000, true);
FileObject[] files = ((VFSClassLoader) arvcl.getClassLoader()).getFileObjects();
Assert.assertArrayEquals(createFileSystems(dirContents), files);
@@ -202,13 +187,7 @@ public class AccumuloReloadingVFSClassLoaderTest {
FileObject[] dirContents = testDir.getChildren();
AccumuloReloadingVFSClassLoader arvcl = new AccumuloReloadingVFSClassLoader(folderPath, vfs,
- new ReloadingClassLoader() {
-
- @Override
- public ClassLoader getClassLoader() {
- return ClassLoader.getSystemClassLoader();
- }
- }, 1000, true);
+ ClassLoader::getSystemClassLoader, 1000, true);
FileObject[] files = ((VFSClassLoader) arvcl.getClassLoader()).getFileObjects();
Assert.assertArrayEquals(createFileSystems(dirContents), files);
@@ -250,12 +229,7 @@ public class AccumuloReloadingVFSClassLoaderTest {
FileObject[] dirContents = testDir.getChildren();
AccumuloReloadingVFSClassLoader arvcl = new AccumuloReloadingVFSClassLoader(folderPath, vfs,
- new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- return ClassLoader.getSystemClassLoader();
- }
- }, 1000, true);
+ ClassLoader::getSystemClassLoader, 1000, true);
FileObject[] files = ((VFSClassLoader) arvcl.getClassLoader()).getFileObjects();
Assert.assertArrayEquals(createFileSystems(dirContents), files);
diff --git a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/ContextManagerTest.java b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/ContextManagerTest.java
index 221fc5c..4f85443 100644
--- a/start/src/test/java/org/apache/accumulo/start/classloader/vfs/ContextManagerTest.java
+++ b/start/src/test/java/org/apache/accumulo/start/classloader/vfs/ContextManagerTest.java
@@ -20,7 +20,6 @@ import java.io.File;
import java.util.HashSet;
import org.apache.accumulo.start.classloader.vfs.ContextManager.ContextConfig;
-import org.apache.accumulo.start.classloader.vfs.ContextManager.ContextsConfig;
import org.apache.commons.io.FileUtils;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
@@ -83,23 +82,15 @@ public class ContextManagerTest {
@Test
public void differentContexts() throws Exception {
- ContextManager cm = new ContextManager(vfs, new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- return ClassLoader.getSystemClassLoader();
- }
- });
+ ContextManager cm = new ContextManager(vfs, ClassLoader::getSystemClassLoader);
- cm.setContextConfig(new ContextsConfig() {
- @Override
- public ContextConfig getContextConfig(String context) {
- if (context.equals("CX1")) {
- return new ContextConfig(uri1, true);
- } else if (context.equals("CX2")) {
- return new ContextConfig(uri2, true);
- }
- return null;
+ cm.setContextConfig(context -> {
+ if (context.equals("CX1")) {
+ return new ContextConfig(uri1, true);
+ } else if (context.equals("CX2")) {
+ return new ContextConfig(uri2, true);
}
+ return null;
});
FileObject testDir = vfs.resolveFile(folder1.getRoot().toURI().toString());
@@ -133,23 +124,15 @@ public class ContextManagerTest {
Class<?> pclass = parent.loadClass("test.HelloWorld");
- ContextManager cm = new ContextManager(vfs, new ReloadingClassLoader() {
- @Override
- public ClassLoader getClassLoader() {
- return parent;
- }
- });
+ ContextManager cm = new ContextManager(vfs, () -> parent);
- cm.setContextConfig(new ContextsConfig() {
- @Override
- public ContextConfig getContextConfig(String context) {
- if (context.equals("CX1")) {
- return new ContextConfig(uri2.toString(), true);
- } else if (context.equals("CX2")) {
- return new ContextConfig(uri2.toString(), false);
- }
- return null;
+ cm.setContextConfig(context -> {
+ if (context.equals("CX1")) {
+ return new ContextConfig(uri2.toString(), true);
+ } else if (context.equals("CX2")) {
+ return new ContextConfig(uri2.toString(), false);
}
+ return null;
});
Assert.assertSame(cm.getClassLoader("CX1").loadClass("test.HelloWorld"), pclass);