This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch 1.7 in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit 7b123b6ea77c5ba09f1875dad0f0f421096e4f2b Author: Keith Turner <ktur...@apache.org> AuthorDate: Fri Feb 2 12:15:44 2018 -0500 Revert "ACCUMULO-4779 fixed classpath context config performance issue (#358)" This reverts commit 8c27bdf0e0168f854e9bb6effad25e6b6b0cb853. --- .../java/org/apache/accumulo/master/Master.java | 8 ++--- .../org/apache/accumulo/tserver/TabletServer.java | 8 ++--- .../main/java/org/apache/accumulo/shell/Shell.java | 18 ++++++----- .../start/classloader/vfs/ContextManager.java | 36 ++++++++++++++-------- 4 files changed, 41 insertions(+), 29 deletions(-) diff --git a/server/master/src/main/java/org/apache/accumulo/master/Master.java b/server/master/src/main/java/org/apache/accumulo/master/Master.java index 984fb60..6a43e93 100644 --- a/server/master/src/main/java/org/apache/accumulo/master/Master.java +++ b/server/master/src/main/java/org/apache/accumulo/master/Master.java @@ -589,12 +589,12 @@ public class Master extends AccumuloServerContext implements LiveTServerSet.List this.tabletBalancer.init(serverConfig); try { - AccumuloVFSClassLoader.getContextManager().setContextConfig(new ContextManager.DefaultContextsConfig() { + AccumuloVFSClassLoader.getContextManager().setContextConfig(new ContextManager.DefaultContextsConfig(new Iterable<Entry<String,String>>() { @Override - public String getProperty(String key) { - return getConfiguration().get(key); + public Iterator<Entry<String,String>> iterator() { + return getConfiguration().iterator(); } - }); + })); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java index 5240db6..4db28b5 100644 --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java @@ -2814,12 +2814,12 @@ public class TabletServer extends AccumuloServerContext implements Runnable { clientAddress = HostAndPort.fromParts(hostname, 0); try { - AccumuloVFSClassLoader.getContextManager().setContextConfig(new ContextManager.DefaultContextsConfig() { + AccumuloVFSClassLoader.getContextManager().setContextConfig(new ContextManager.DefaultContextsConfig(new Iterable<Entry<String,String>>() { @Override - public String getProperty(String key) { - return getConfiguration().get(key); + public Iterator<Entry<String,String>> iterator() { + return getConfiguration().iterator(); } - }); + })); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/shell/src/main/java/org/apache/accumulo/shell/Shell.java b/shell/src/main/java/org/apache/accumulo/shell/Shell.java index b5e5afb..36c843e 100644 --- a/shell/src/main/java/org/apache/accumulo/shell/Shell.java +++ b/shell/src/main/java/org/apache/accumulo/shell/Shell.java @@ -545,16 +545,18 @@ public class Shell extends ShellOptions implements KeywordExecutable { shellState.getConnector().instanceOperations().getSystemConfiguration().get(Property.VFS_CONTEXT_CLASSPATH_PROPERTY.getKey() + classpath); try { - - final Map<String,String> systemConfig = shellState.getConnector().instanceOperations().getSystemConfiguration(); - - AccumuloVFSClassLoader.getContextManager().setContextConfig(new ContextManager.DefaultContextsConfig() { + AccumuloVFSClassLoader.getContextManager().setContextConfig(new ContextManager.DefaultContextsConfig(new Iterable<Map.Entry<String,String>>() { @Override - public String getProperty(String key) { - return systemConfig.get(key); + public Iterator<Entry<String,String>> iterator() { + try { + return shellState.getConnector().instanceOperations().getSystemConfiguration().entrySet().iterator(); + } catch (AccumuloException e) { + throw new RuntimeException(e); + } catch (AccumuloSecurityException e) { + throw new RuntimeException(e); + } } - - }); + })); } catch (IllegalStateException ise) {} classloader = AccumuloVFSClassLoader.getContextManager().getClassLoader(classpath); diff --git a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java index a3d51fc..7145b4a 100644 --- a/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java +++ b/start/src/main/java/org/apache/accumulo/start/classloader/vfs/ContextManager.java @@ -18,7 +18,9 @@ package org.apache.accumulo.start.classloader.vfs; import java.io.IOException; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import org.apache.commons.vfs2.FileSystemException; @@ -97,30 +99,38 @@ public class ContextManager { ContextConfig getContextConfig(String context); } - public static abstract class DefaultContextsConfig implements ContextsConfig { + public static class DefaultContextsConfig implements ContextsConfig { - public abstract String getProperty(String key); + private Iterable<Entry<String,String>> config; + + public DefaultContextsConfig(Iterable<Entry<String,String>> config) { + this.config = config; + } @Override public ContextConfig getContextConfig(String context) { String key = AccumuloVFSClassLoader.VFS_CONTEXT_CLASSPATH_PROPERTY + context; - String uris = getProperty(key); - - if (uris == null) { - return null; - } - - String delegate = getProperty(key + ".delegation"); - + String uris = null; boolean preDelegate = true; - if (delegate != null && delegate.trim().equalsIgnoreCase("post")) { - preDelegate = false; + Iterator<Entry<String,String>> iter = config.iterator(); + while (iter.hasNext()) { + Entry<String,String> entry = iter.next(); + if (entry.getKey().equals(key)) { + uris = entry.getValue(); + } + + if (entry.getKey().equals(key + ".delegation") && entry.getValue().trim().equalsIgnoreCase("post")) { + preDelegate = false; + } } - return new ContextConfig(uris, preDelegate); + if (uris != null) + return new ContextConfig(uris, preDelegate); + + return null; } } -- To stop receiving notification emails like this one, please contact ktur...@apache.org.