Return-Path: X-Original-To: apmail-accumulo-commits-archive@www.apache.org Delivered-To: apmail-accumulo-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 03EED10F30 for ; Thu, 21 Nov 2013 22:41:24 +0000 (UTC) Received: (qmail 40456 invoked by uid 500); 21 Nov 2013 22:41:23 -0000 Delivered-To: apmail-accumulo-commits-archive@accumulo.apache.org Received: (qmail 40385 invoked by uid 500); 21 Nov 2013 22:41:23 -0000 Mailing-List: contact commits-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list commits@accumulo.apache.org Received: (qmail 40283 invoked by uid 99); 21 Nov 2013 22:41:23 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 21 Nov 2013 22:41:23 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 43B5A9011AB; Thu, 21 Nov 2013 22:41:23 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ctubbsii@apache.org To: commits@accumulo.apache.org Date: Thu, 21 Nov 2013 22:41:24 -0000 Message-Id: <07c62798a0cb4998a60f2d6e21fdc9fc@git.apache.org> In-Reply-To: <3ceae733254e45ca842e39e2e93aa4e1@git.apache.org> References: <3ceae733254e45ca842e39e2e93aa4e1@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [2/6] git commit: ACCUMULO-1009 moved ClientConfiguration into public API and removed its usage of AccumuloConfiguration ACCUMULO-1009 moved ClientConfiguration into public API and removed its usage of AccumuloConfiguration Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/5bd68ef9 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/5bd68ef9 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/5bd68ef9 Branch: refs/heads/master Commit: 5bd68ef9b751848a441cb56ca82a7e2aafdf1461 Parents: fe46a60 Author: Keith Turner Authored: Thu Nov 21 15:03:03 2013 -0500 Committer: Keith Turner Committed: Thu Nov 21 15:04:53 2013 -0500 ---------------------------------------------------------------------- .../apache/accumulo/core/cli/ClientOpts.java | 4 +- .../core/client/ClientConfiguration.java | 260 ++++++++++++++++ .../accumulo/core/client/ZooKeeperInstance.java | 19 +- .../client/admin/InstanceOperationsImpl.java | 8 +- .../core/client/admin/TableOperationsImpl.java | 6 +- .../core/client/impl/ConditionalWriterImpl.java | 6 +- .../accumulo/core/client/impl/MasterClient.java | 2 +- .../core/client/impl/OfflineScanner.java | 4 +- .../core/client/impl/ScannerIterator.java | 2 +- .../accumulo/core/client/impl/ServerClient.java | 4 +- .../client/impl/ServerConfigurationFactory.java | 30 -- .../client/impl/ServerConfigurationUtil.java | 63 ++++ .../impl/TabletServerBatchReaderIterator.java | 2 +- .../client/impl/TabletServerBatchWriter.java | 6 +- .../accumulo/core/client/impl/Writer.java | 2 +- .../core/client/mapred/AbstractInputFormat.java | 2 +- .../core/client/mapred/AccumuloInputFormat.java | 2 +- .../mapred/AccumuloMultiTableInputFormat.java | 2 +- .../client/mapred/AccumuloOutputFormat.java | 2 +- .../client/mapred/AccumuloRowInputFormat.java | 2 +- .../client/mapreduce/AbstractInputFormat.java | 2 +- .../client/mapreduce/AccumuloInputFormat.java | 2 +- .../AccumuloMultiTableInputFormat.java | 2 +- .../client/mapreduce/AccumuloOutputFormat.java | 2 +- .../mapreduce/AccumuloRowInputFormat.java | 2 +- .../mapreduce/lib/util/ConfiguratorBase.java | 2 +- .../accumulo/core/conf/ClientConfiguration.java | 310 ------------------- .../core/metadata/MetadataLocationObtainer.java | 8 +- .../apache/accumulo/core/util/shell/Shell.java | 11 +- .../core/util/shell/ShellOptionsJC.java | 4 +- .../lib/util/ConfiguratorBaseTest.java | 4 +- .../core/conf/ClientConfigurationTest.java | 3 +- .../core/util/shell/ShellSetInstanceTest.java | 17 +- .../examples/simple/filedata/FileDataQuery.java | 2 +- .../simple/mapreduce/TokenFileWordCount.java | 2 +- .../examples/simple/reservations/ARS.java | 2 +- .../minicluster/MiniAccumuloCluster.java | 2 +- .../minicluster/MiniAccumuloInstance.java | 2 +- .../org/apache/accumulo/proxy/ProxyServer.java | 2 +- .../accumulo/server/client/BulkImporter.java | 10 +- .../accumulo/utils/metanalysis/IndexMeta.java | 2 +- .../gc/GarbageCollectWriteAheadLogs.java | 4 +- .../accumulo/gc/SimpleGarbageCollector.java | 14 +- .../java/org/apache/accumulo/master/Master.java | 4 +- .../apache/accumulo/test/IMMLGBenchmark.java | 2 +- .../metadata/MetadataBatchScanTest.java | 2 +- .../test/performance/thrift/NullTserver.java | 2 +- .../apache/accumulo/test/randomwalk/State.java | 2 +- .../test/randomwalk/multitable/CopyTool.java | 2 +- .../randomwalk/sequential/MapRedVerifyTool.java | 2 +- .../accumulo/test/scalability/ScaleTest.java | 2 +- .../test/MultiTableBatchWriterTest.java | 2 +- 52 files changed, 422 insertions(+), 437 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/cli/ClientOpts.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/cli/ClientOpts.java b/core/src/main/java/org/apache/accumulo/core/cli/ClientOpts.java index 1d26a00..c43b121 100644 --- a/core/src/main/java/org/apache/accumulo/core/cli/ClientOpts.java +++ b/core/src/main/java/org/apache/accumulo/core/cli/ClientOpts.java @@ -24,9 +24,11 @@ import java.util.UUID; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.ZooKeeperInstance; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.impl.thrift.SecurityErrorCode; import org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat; import org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat; @@ -35,8 +37,6 @@ import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.Properties; import org.apache.accumulo.core.client.security.tokens.PasswordToken; import org.apache.accumulo.core.conf.AccumuloConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.conf.DefaultConfiguration; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.security.Authorizations; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java b/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java new file mode 100644 index 0000000..aa1c6fc --- /dev/null +++ b/core/src/main/java/org/apache/accumulo/core/client/ClientConfiguration.java @@ -0,0 +1,260 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.accumulo.core.client; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.StringReader; +import java.io.StringWriter; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.UUID; + +import org.apache.accumulo.core.conf.Property; +import org.apache.accumulo.core.conf.PropertyType; +import org.apache.accumulo.core.util.ArgumentChecker; +import org.apache.commons.configuration.CompositeConfiguration; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; + +/** + * Contains a list of property keys recognized by the Accumulo client and convenience methods for setting them. + * + * @since 1.6.0 + */ +public class ClientConfiguration extends CompositeConfiguration { + public static final String USER_ACCUMULO_DIR_NAME = ".accumulo"; + public static final String USER_CONF_FILENAME = "config"; + public static final String GLOBAL_CONF_FILENAME = "client.conf"; + + public enum ClientProperty { + RPC_SSL_TRUSTSTORE_PATH(Property.RPC_SSL_TRUSTSTORE_PATH), + RPC_SSL_TRUSTSTORE_PASSWORD(Property.RPC_SSL_TRUSTSTORE_PASSWORD), + RPC_SSL_TRUSTSTORE_TYPE(Property.RPC_SSL_TRUSTSTORE_TYPE), + RPC_SSL_KEYSTORE_PATH(Property.RPC_SSL_KEYSTORE_PATH), + RPC_SSL_KEYSTORE_PASSWORD(Property.RPC_SSL_KEYSTORE_PASSWORD), + RPC_SSL_KEYSTORE_TYPE(Property.RPC_SSL_KEYSTORE_TYPE), + RPC_USE_JSSE(Property.RPC_USE_JSSE), + INSTANCE_RPC_SSL_CLIENT_AUTH(Property.INSTANCE_RPC_SSL_CLIENT_AUTH), + INSTANCE_RPC_SSL_ENABLED(Property.INSTANCE_RPC_SSL_ENABLED), + INSTANCE_ZK_HOST(Property.INSTANCE_ZK_HOST), + INSTANCE_ZK_TIMEOUT(Property.INSTANCE_ZK_TIMEOUT), + INSTANCE_NAME("client.instance.name", null, PropertyType.STRING, "Name of Accumulo instance to connect to"), + INSTANCE_ID("client.instance.id", null, PropertyType.STRING, "UUID of Accumulo instance to connect to"), + ; + + private String key; + private String defaultValue; + private PropertyType type; + private String description; + + private Property accumuloProperty = null; + + private ClientProperty(Property prop) { + this(prop.getKey(), prop.getDefaultValue(), prop.getType(), prop.getDescription()); + accumuloProperty = prop; + } + + private ClientProperty(String key, String defaultValue, PropertyType type, String description) { + this.key = key; + this.defaultValue = defaultValue; + this.type = type; + this.description = description; + } + + public String getKey() { + return key; + } + + public String getDefaultValue() { + return defaultValue; + } + + public PropertyType getType() { + return type; + } + + public String getDescription() { + return description; + } + + public Property getAccumuloProperty() { + return accumuloProperty; + } + + public static ClientProperty getPropertyByKey(String key) { + for (ClientProperty prop : ClientProperty.values()) + if (prop.getKey().equals(key)) + return prop; + return null; + } + }; + + public ClientConfiguration(List configs) { + super(configs); + } + + public ClientConfiguration(Configuration... configs) { + this(Arrays.asList(configs)); + } + + public static ClientConfiguration loadDefault() { + return loadFromSearchPath(getDefaultSearchPath()); + } + + public static ClientConfiguration loadDefault(String overridePropertiesFilename) throws FileNotFoundException, ConfigurationException { + if (overridePropertiesFilename == null) + return loadDefault(); + else + return new ClientConfiguration(new PropertiesConfiguration(overridePropertiesFilename)); + } + + private static ClientConfiguration loadFromSearchPath(List paths) { + try { + List configs = new LinkedList(); + for (String path : paths) { + File conf = new File(path); + if (conf.canRead()) { + configs.add(new PropertiesConfiguration(conf)); + } + } + return new ClientConfiguration(configs); + } catch (ConfigurationException e) { + throw new IllegalStateException("Error loading client configuration", e); + } + } + + public static ClientConfiguration deserialize(String serializedConfig) { + PropertiesConfiguration propConfig = new PropertiesConfiguration(); + try { + propConfig.load(new StringReader(serializedConfig)); + } catch (ConfigurationException e) { + throw new IllegalArgumentException("Error deserializing client configuration: " + serializedConfig, e); + } + return new ClientConfiguration(propConfig); + } + + private static List getDefaultSearchPath() { + String clientConfSearchPath = System.getenv("ACCUMULO_CLIENT_CONF_PATH"); + List clientConfPaths; + if (clientConfSearchPath != null) { + clientConfPaths = Arrays.asList(clientConfSearchPath.split(File.pathSeparator)); + } else { + // if $ACCUMULO_CLIENT_CONF_PATH env isn't set, priority from top to bottom is: + // ~/.accumulo/config + // $ACCUMULO_CONF_DIR/client.conf -OR- $ACCUMULO_HOME/conf/client.conf (depending on whether $ACCUMULO_CONF_DIR is set) + // /etc/accumulo/client.conf + clientConfPaths = new LinkedList(); + clientConfPaths.add(System.getProperty("user.home") + File.separator + USER_ACCUMULO_DIR_NAME + File.separator + USER_CONF_FILENAME); + if (System.getenv("ACCUMULO_CONF_DIR") != null) { + clientConfPaths.add(System.getenv("ACCUMULO_CONF_DIR") + File.separator + GLOBAL_CONF_FILENAME); + } else if (System.getenv("ACCUMULO_HOME") != null) { + clientConfPaths.add(System.getenv("ACCUMULO_HOME") + File.separator + "conf" + File.separator + GLOBAL_CONF_FILENAME); + } + clientConfPaths.add("/etc/accumulo/" + GLOBAL_CONF_FILENAME); + } + return clientConfPaths; + } + + public String serialize() { + PropertiesConfiguration propConfig = new PropertiesConfiguration(); + propConfig.copy(this); + StringWriter writer = new StringWriter(); + try { + propConfig.save(writer); + } catch (ConfigurationException e) { + // this should never happen + throw new IllegalStateException(e); + } + return writer.toString(); + } + + public String get(ClientProperty prop) { + if (this.containsKey(prop.getKey())) + return this.getString(prop.getKey()); + else + return prop.getDefaultValue(); + } + + public void setProperty(ClientProperty prop, String value) { + this.setProperty(prop.getKey(), value); + } + + public ClientConfiguration with(ClientProperty prop, String value) { + this.setProperty(prop.getKey(), value); + return this; + } + + public ClientConfiguration withInstance(String instanceName) { + ArgumentChecker.notNull(instanceName); + return with(ClientProperty.INSTANCE_NAME, instanceName); + } + + public ClientConfiguration withInstance(UUID instanceId) { + ArgumentChecker.notNull(instanceId); + return with(ClientProperty.INSTANCE_ID, instanceId.toString()); + } + + public ClientConfiguration withZkHosts(String zooKeepers) { + ArgumentChecker.notNull(zooKeepers); + return with(ClientProperty.INSTANCE_ZK_HOST, zooKeepers); + } + + public ClientConfiguration withZkTimeout(int timeout) { + return with(ClientProperty.INSTANCE_ZK_TIMEOUT, String.valueOf(timeout)); + } + + public ClientConfiguration withSsl(boolean sslEnabled) { + return withSsl(sslEnabled, false); + } + + public ClientConfiguration withSsl(boolean sslEnabled, boolean useJsseConfig) { + return with(ClientProperty.INSTANCE_RPC_SSL_ENABLED, String.valueOf(sslEnabled)) + .with(ClientProperty.RPC_USE_JSSE, String.valueOf(useJsseConfig)); + } + + public ClientConfiguration withTruststore(String path) { + return withTruststore(path, null, null); + } + + public ClientConfiguration withTruststore(String path, String password, String type) { + ArgumentChecker.notNull(path); + setProperty(ClientProperty.RPC_SSL_TRUSTSTORE_PATH, path); + if (password != null) + setProperty(ClientProperty.RPC_SSL_TRUSTSTORE_PASSWORD, password); + if (type != null) + setProperty(ClientProperty.RPC_SSL_TRUSTSTORE_TYPE, type); + return this; + } + + public ClientConfiguration withKeystore(String path) { + return withKeystore(path, null, null); + } + + public ClientConfiguration withKeystore(String path, String password, String type) { + ArgumentChecker.notNull(path); + setProperty(ClientProperty.INSTANCE_RPC_SSL_CLIENT_AUTH, "true"); + setProperty(ClientProperty.RPC_SSL_KEYSTORE_PATH, path); + if (password != null) + setProperty(ClientProperty.RPC_SSL_KEYSTORE_PASSWORD, password); + if (type != null) + setProperty(ClientProperty.RPC_SSL_KEYSTORE_TYPE, type); + return this; + } +} http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java index fb4ab79..caf6864 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java +++ b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java @@ -23,12 +23,13 @@ import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; import org.apache.accumulo.core.Constants; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.impl.ConnectorImpl; +import org.apache.accumulo.core.client.impl.ServerConfigurationUtil; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.PasswordToken; import org.apache.accumulo.core.conf.AccumuloConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; +import org.apache.accumulo.core.conf.DefaultConfiguration; import org.apache.accumulo.core.metadata.RootTable; import org.apache.accumulo.core.security.Credentials; import org.apache.accumulo.core.util.ArgumentChecker; @@ -81,7 +82,7 @@ public class ZooKeeperInstance implements Instance { * The name of specific accumulo instance. This is set at initialization time. * @param zooKeepers * A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port. - * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(ClientConfiguration)} instead. + * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(Configuration)} instead. */ @Deprecated public ZooKeeperInstance(String instanceName, String zooKeepers) { @@ -96,7 +97,7 @@ public class ZooKeeperInstance implements Instance { * A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port. * @param sessionTimeout * zoo keeper session time out in milliseconds. - * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(ClientConfiguration)} instead. + * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(Configuration)} instead. */ @Deprecated public ZooKeeperInstance(String instanceName, String zooKeepers, int sessionTimeout) { @@ -109,7 +110,7 @@ public class ZooKeeperInstance implements Instance { * The UUID that identifies the accumulo instance you want to connect to. * @param zooKeepers * A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port. - * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(ClientConfiguration)} instead. + * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(Configuration)} instead. */ @Deprecated public ZooKeeperInstance(UUID instanceId, String zooKeepers) { @@ -124,7 +125,7 @@ public class ZooKeeperInstance implements Instance { * A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port. * @param sessionTimeout * zoo keeper session time out in milliseconds. - * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(ClientConfiguration)} instead. + * @deprecated since 1.6.0; Use {@link #ZooKeeperInstance(Configuration)} instead. */ @Deprecated public ZooKeeperInstance(UUID instanceId, String zooKeepers, int sessionTimeout) { @@ -264,11 +265,9 @@ public class ZooKeeperInstance implements Instance { } @Override + @Deprecated public AccumuloConfiguration getConfiguration() { - if (accumuloConf == null) { - accumuloConf = clientConf.getAccumuloConfiguration(); - } - return accumuloConf; + return ServerConfigurationUtil.convertClientConfig(accumuloConf == null ? DefaultConfiguration.getInstance() : accumuloConf, clientConf); } @Override http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperationsImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperationsImpl.java b/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperationsImpl.java index 333201e..85bc1a3 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperationsImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/client/admin/InstanceOperationsImpl.java @@ -30,7 +30,7 @@ import org.apache.accumulo.core.client.impl.ClientExec; import org.apache.accumulo.core.client.impl.ClientExecReturn; import org.apache.accumulo.core.client.impl.MasterClient; import org.apache.accumulo.core.client.impl.ServerClient; -import org.apache.accumulo.core.client.impl.ServerConfigurationFactory; +import org.apache.accumulo.core.client.impl.ServerConfigurationUtil; import org.apache.accumulo.core.client.impl.thrift.ClientService; import org.apache.accumulo.core.client.impl.thrift.ConfigurationType; import org.apache.accumulo.core.client.impl.thrift.ThriftSecurityException; @@ -132,7 +132,7 @@ public class InstanceOperationsImpl implements InstanceOperations { public List getActiveScans(String tserver) throws AccumuloException, AccumuloSecurityException { Client client = null; try { - client = ThriftUtil.getTServerClient(tserver, ServerConfigurationFactory.getConfiguration(instance)); + client = ThriftUtil.getTServerClient(tserver, ServerConfigurationUtil.getConfiguration(instance)); List as = new ArrayList(); for (org.apache.accumulo.core.tabletserver.thrift.ActiveScan activeScan : client.getActiveScans(Tracer.traceInfo(), credentials.toThrift(instance))) { @@ -169,7 +169,7 @@ public class InstanceOperationsImpl implements InstanceOperations { public List getActiveCompactions(String tserver) throws AccumuloException, AccumuloSecurityException { Client client = null; try { - client = ThriftUtil.getTServerClient(tserver, ServerConfigurationFactory.getConfiguration(instance)); + client = ThriftUtil.getTServerClient(tserver, ServerConfigurationUtil.getConfiguration(instance)); List as = new ArrayList(); for (org.apache.accumulo.core.tabletserver.thrift.ActiveCompaction activeCompaction : client.getActiveCompactions(Tracer.traceInfo(), @@ -193,7 +193,7 @@ public class InstanceOperationsImpl implements InstanceOperations { public void ping(String tserver) throws AccumuloException { TTransport transport = null; try { - transport = ThriftUtil.createTransport(AddressUtil.parseAddress(tserver), ServerConfigurationFactory.getConfiguration(instance)); + transport = ThriftUtil.createTransport(AddressUtil.parseAddress(tserver), ServerConfigurationUtil.getConfiguration(instance)); TabletClientService.Client client = ThriftUtil.createClient(new TabletClientService.Client.Factory(), transport); client.getTabletServerStatus(Tracer.traceInfo(), credentials.toThrift(instance)); } catch (TTransportException e) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java index a85772d..a779ae4 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java +++ b/core/src/main/java/org/apache/accumulo/core/client/admin/TableOperationsImpl.java @@ -61,7 +61,7 @@ import org.apache.accumulo.core.client.impl.ClientExec; import org.apache.accumulo.core.client.impl.ClientExecReturn; import org.apache.accumulo.core.client.impl.MasterClient; import org.apache.accumulo.core.client.impl.ServerClient; -import org.apache.accumulo.core.client.impl.ServerConfigurationFactory; +import org.apache.accumulo.core.client.impl.ServerConfigurationUtil; import org.apache.accumulo.core.client.impl.Tables; import org.apache.accumulo.core.client.impl.TabletLocator; import org.apache.accumulo.core.client.impl.TabletLocator.TabletLocation; @@ -470,7 +470,7 @@ public class TableOperationsImpl extends TableOperationsHelper { } try { - TabletClientService.Client client = ThriftUtil.getTServerClient(tl.tablet_location, ServerConfigurationFactory.getConfiguration(instance)); + TabletClientService.Client client = ThriftUtil.getTServerClient(tl.tablet_location, ServerConfigurationUtil.getConfiguration(instance)); try { OpTimer opTimer = null; if (log.isTraceEnabled()) @@ -1113,7 +1113,7 @@ public class TableOperationsImpl extends TableOperationsHelper { ret = new Path(dir); fs = ret.getFileSystem(CachedConfiguration.getInstance()); } else { - fs = FileUtil.getFileSystem(CachedConfiguration.getInstance(), ServerConfigurationFactory.getConfiguration(instance)); + fs = FileUtil.getFileSystem(CachedConfiguration.getInstance(), ServerConfigurationUtil.getConfiguration(instance)); ret = fs.makeQualified(new Path(dir)); } http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/ConditionalWriterImpl.java ---------------------------------------------------------------------- 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 1d35af4..cd89adb 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 @@ -536,10 +536,10 @@ class ConditionalWriterImpl implements ConditionalWriter { private TabletClientService.Iface getClient(String location) throws TTransportException { TabletClientService.Iface client; - if (timeout < ServerConfigurationFactory.getConfiguration(instance).getTimeInMillis(Property.GENERAL_RPC_TIMEOUT)) - client = ThriftUtil.getTServerClient(location, ServerConfigurationFactory.getConfiguration(instance), timeout); + if (timeout < ServerConfigurationUtil.getConfiguration(instance).getTimeInMillis(Property.GENERAL_RPC_TIMEOUT)) + client = ThriftUtil.getTServerClient(location, ServerConfigurationUtil.getConfiguration(instance), timeout); else - client = ThriftUtil.getTServerClient(location, ServerConfigurationFactory.getConfiguration(instance)); + client = ThriftUtil.getTServerClient(location, ServerConfigurationUtil.getConfiguration(instance)); return client; } http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java b/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java index 4cf6e06..6bef3a7 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/MasterClient.java @@ -61,7 +61,7 @@ public class MasterClient { try { // Master requests can take a long time: don't ever time out - MasterClientService.Client client = ThriftUtil.getClientNoTimeout(new MasterClientService.Client.Factory(), master, ServerConfigurationFactory.getConfiguration(instance)); + MasterClientService.Client client = ThriftUtil.getClientNoTimeout(new MasterClientService.Client.Factory(), master, ServerConfigurationUtil.getConfiguration(instance)); return client; } catch (TTransportException tte) { if (tte.getCause().getClass().equals(UnknownHostException.class)) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/OfflineScanner.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/OfflineScanner.java b/core/src/main/java/org/apache/accumulo/core/client/impl/OfflineScanner.java index 5e92d8b..6e08710 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/OfflineScanner.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/OfflineScanner.java @@ -227,7 +227,7 @@ class OfflineIterator implements Iterator> { if (currentExtent != null && !extent.isPreviousExtent(currentExtent)) throw new AccumuloException(" " + currentExtent + " is not previous extent " + extent); - String tablesDir = ServerConfigurationFactory.getConfiguration(instance).get(Property.INSTANCE_DFS_DIR) + "/tables"; + String tablesDir = ServerConfigurationUtil.getConfiguration(instance).get(Property.INSTANCE_DFS_DIR) + "/tables"; List absFiles = new ArrayList(); for (String relPath : relFiles) { @@ -296,7 +296,7 @@ class OfflineIterator implements Iterator> { Configuration conf = CachedConfiguration.getInstance(); - FileSystem defaultFs = FileUtil.getFileSystem(conf, ServerConfigurationFactory.getConfiguration(instance)); + FileSystem defaultFs = FileUtil.getFileSystem(conf, ServerConfigurationUtil.getConfiguration(instance)); for (SortedKeyValueIterator reader : readers) { ((FileSKVIterator) reader).close(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java index 677a751..5ea3662 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ScannerIterator.java @@ -81,7 +81,7 @@ public class ScannerIterator implements Iterator> { try { while (true) { - List currentBatch = ThriftScanner.scan(instance, credentials, scanState, timeOut, ServerConfigurationFactory.getConfiguration(instance)); + List currentBatch = ThriftScanner.scan(instance, credentials, scanState, timeOut, ServerConfigurationUtil.getConfiguration(instance)); if (currentBatch == null) { synchQ.add(EMPTY_LIST); http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/ServerClient.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ServerClient.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ServerClient.java index 89956db..4eb845d 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/ServerClient.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ServerClient.java @@ -125,7 +125,7 @@ public class ServerClient { } public static Pair getConnection(Instance instance, boolean preferCachedConnections) throws TTransportException { - AccumuloConfiguration conf = ServerConfigurationFactory.getConfiguration(instance); + AccumuloConfiguration conf = ServerConfigurationUtil.getConfiguration(instance); return getConnection(instance, preferCachedConnections, conf.getTimeInMillis(Property.GENERAL_RPC_TIMEOUT)); } @@ -142,7 +142,7 @@ public class ServerClient { if (data != null && !new String(data).equals("master")) servers.add(new ThriftTransportKey( new ServerServices(new String(data)).getAddressString(Service.TSERV_CLIENT), - rpcTimeout, SslConnectionParams.forClient(ServerConfigurationFactory.getConfiguration(instance)))); + rpcTimeout, SslConnectionParams.forClient(ServerConfigurationUtil.getConfiguration(instance)))); } boolean opened = false; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationFactory.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationFactory.java deleted file mode 100644 index 2c3427a..0000000 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationFactory.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.accumulo.core.client.impl; - -import org.apache.accumulo.core.client.Instance; -import org.apache.accumulo.core.conf.AccumuloConfiguration; - -/** - * All client side code that needs a server side configuration object should obtain it from here. - */ -public class ServerConfigurationFactory { - @SuppressWarnings("deprecation") - public static AccumuloConfiguration getConfiguration(Instance instance) { - return instance.getConfiguration(); - } -} http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationUtil.java b/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationUtil.java new file mode 100644 index 0000000..8021f76 --- /dev/null +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/ServerConfigurationUtil.java @@ -0,0 +1,63 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.accumulo.core.client.impl; + +import java.util.Iterator; +import java.util.Map; + +import org.apache.accumulo.core.client.Instance; +import org.apache.accumulo.core.conf.AccumuloConfiguration; +import org.apache.accumulo.core.conf.Property; +import org.apache.commons.configuration.Configuration; + +/** + * All client side code that needs a server side configuration object should obtain it from here. + */ +public class ServerConfigurationUtil { + @SuppressWarnings("deprecation") + public static AccumuloConfiguration getConfiguration(Instance instance) { + return instance.getConfiguration(); + } + + public static AccumuloConfiguration convertClientConfig(final AccumuloConfiguration base, final Configuration config) { + + return new AccumuloConfiguration() { + @Override + public String get(Property property) { + if (config.containsKey(property.getKey())) + return config.getString(property.getKey()); + else + return base.get(property); + } + + @Override + public void getProperties(Map props, PropertyFilter filter) { + + base.getProperties(props, filter); + + @SuppressWarnings("unchecked") + Iterator keyIter = config.getKeys(); + while (keyIter.hasNext()) { + String key = keyIter.next(); + if (filter.accept(key)) + props.put(key, config.getString(key)); + } + } + }; + + } +} http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchReaderIterator.java ---------------------------------------------------------------------- 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 9961f8f..d82056b 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 @@ -362,7 +362,7 @@ public class TabletServerBatchReaderIterator implements Iterator 0) { locator.invalidateCache(tsFailures.keySet()); synchronized (failures) { http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/TabletServerBatchWriter.java ---------------------------------------------------------------------- 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 b79ae39..8a51657 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 @@ -855,10 +855,10 @@ public class TabletServerBatchWriter { try { TabletClientService.Iface client; - if (timeoutTracker.getTimeOut() < ServerConfigurationFactory.getConfiguration(instance).getTimeInMillis(Property.GENERAL_RPC_TIMEOUT)) - client = ThriftUtil.getTServerClient(location, ServerConfigurationFactory.getConfiguration(instance), timeoutTracker.getTimeOut()); + if (timeoutTracker.getTimeOut() < ServerConfigurationUtil.getConfiguration(instance).getTimeInMillis(Property.GENERAL_RPC_TIMEOUT)) + client = ThriftUtil.getTServerClient(location, ServerConfigurationUtil.getConfiguration(instance), timeoutTracker.getTimeOut()); else - client = ThriftUtil.getTServerClient(location, ServerConfigurationFactory.getConfiguration(instance)); + client = ThriftUtil.getTServerClient(location, ServerConfigurationUtil.getConfiguration(instance)); try { MutationSet allFailures = new MutationSet(); http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/impl/Writer.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/impl/Writer.java b/core/src/main/java/org/apache/accumulo/core/client/impl/Writer.java index e253024..72a050a 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/impl/Writer.java +++ b/core/src/main/java/org/apache/accumulo/core/client/impl/Writer.java @@ -93,7 +93,7 @@ public class Writer { } try { - updateServer(instance, m, tabLoc.tablet_extent, tabLoc.tablet_location, credentials, ServerConfigurationFactory.getConfiguration(instance)); + updateServer(instance, m, tabLoc.tablet_extent, tabLoc.tablet_location, credentials, ServerConfigurationUtil.getConfiguration(instance)); return; } catch (NotServingTabletException e) { log.trace("Not serving tablet, server = " + tabLoc.tablet_location); http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java index 53ac4a1..c0ef0b5 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AbstractInputFormat.java @@ -27,6 +27,7 @@ import java.util.Map; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.ClientSideIteratorScanner; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; @@ -43,7 +44,6 @@ import org.apache.accumulo.core.client.mapreduce.InputTableConfig; import org.apache.accumulo.core.client.mapreduce.lib.util.InputConfigurator; import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.KeyExtent; import org.apache.accumulo.core.data.Range; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java index ffd74a5..917b71d 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloInputFormat.java @@ -19,8 +19,8 @@ package org.apache.accumulo.core.client.mapred; import java.io.IOException; import java.util.Map.Entry; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.security.Authorizations; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java index f6eb294..2ef9931 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloMultiTableInputFormat.java @@ -19,9 +19,9 @@ package org.apache.accumulo.core.client.mapred; import java.io.IOException; import java.util.Map; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.mapreduce.InputTableConfig; import org.apache.accumulo.core.client.mapreduce.lib.util.InputConfigurator; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.util.format.DefaultFormatter; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java index eae6780..02512a4 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloOutputFormat.java @@ -26,6 +26,7 @@ import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.BatchWriterConfig; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.MultiTableBatchWriter; @@ -38,7 +39,6 @@ import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.SecurityErrorCode; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.AuthenticationTokenSerializer; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.ColumnUpdate; import org.apache.accumulo.core.data.KeyExtent; import org.apache.accumulo.core.data.Mutation; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java index 35ce7c7..673c5b8 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapred/AccumuloRowInputFormat.java @@ -19,9 +19,9 @@ package org.apache.accumulo.core.client.mapred; import java.io.IOException; import java.util.Map.Entry; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.RowIterator; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.security.Authorizations; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java index 9d8024e..5c2777d 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AbstractInputFormat.java @@ -31,6 +31,7 @@ import java.util.Map; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.ClientSideIteratorScanner; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; @@ -46,7 +47,6 @@ import org.apache.accumulo.core.client.impl.TabletLocator; import org.apache.accumulo.core.client.mapreduce.lib.util.InputConfigurator; import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.ByteSequence; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.KeyExtent; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java index 0539c93..9a339be 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloInputFormat.java @@ -19,8 +19,8 @@ package org.apache.accumulo.core.client.mapreduce; import java.io.IOException; import java.util.Map.Entry; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.security.Authorizations; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java index e59abae..357bf38 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloMultiTableInputFormat.java @@ -22,11 +22,11 @@ import java.io.IOException; import java.util.List; import java.util.Map; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.IteratorSetting; import org.apache.accumulo.core.client.Scanner; import org.apache.accumulo.core.client.mapreduce.lib.util.InputConfigurator; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.security.Authorizations; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java index afbedca..0c924b1 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloOutputFormat.java @@ -26,6 +26,7 @@ import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.BatchWriterConfig; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.MultiTableBatchWriter; @@ -38,7 +39,6 @@ import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.SecurityErrorCode; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.AuthenticationTokenSerializer; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.ColumnUpdate; import org.apache.accumulo.core.data.KeyExtent; import org.apache.accumulo.core.data.Mutation; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java index 4734eda..37caf15 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/AccumuloRowInputFormat.java @@ -19,9 +19,9 @@ package org.apache.accumulo.core.client.mapreduce; import java.io.IOException; import java.util.Map.Entry; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.RowIterator; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.security.Authorizations; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBase.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBase.java b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBase.java index 9189150..0fbba98 100644 --- a/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBase.java +++ b/core/src/main/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBase.java @@ -22,12 +22,12 @@ import java.net.URISyntaxException; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.AuthenticationTokenSerializer; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.security.Credentials; import org.apache.accumulo.core.util.ArgumentChecker; import org.apache.commons.codec.binary.Base64; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/conf/ClientConfiguration.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/conf/ClientConfiguration.java b/core/src/main/java/org/apache/accumulo/core/conf/ClientConfiguration.java deleted file mode 100644 index 5bb95ae..0000000 --- a/core/src/main/java/org/apache/accumulo/core/conf/ClientConfiguration.java +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.accumulo.core.conf; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; -import java.util.UUID; - -import org.apache.accumulo.core.util.ArgumentChecker; -import org.apache.commons.configuration.CompositeConfiguration; -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationException; -import org.apache.commons.configuration.MapConfiguration; -import org.apache.commons.configuration.PropertiesConfiguration; - -/** - * Contains a list of property keys recognized by the Accumulo client and convenience methods for setting them. - */ -public class ClientConfiguration extends CompositeConfiguration { - public static final String USER_ACCUMULO_DIR_NAME = ".accumulo"; - public static final String USER_CONF_FILENAME = "config"; - public static final String GLOBAL_CONF_FILENAME = "client.conf"; - - public enum ClientProperty { - RPC_SSL_TRUSTSTORE_PATH(Property.RPC_SSL_TRUSTSTORE_PATH), - RPC_SSL_TRUSTSTORE_PASSWORD(Property.RPC_SSL_TRUSTSTORE_PASSWORD), - RPC_SSL_TRUSTSTORE_TYPE(Property.RPC_SSL_TRUSTSTORE_TYPE), - RPC_SSL_KEYSTORE_PATH(Property.RPC_SSL_KEYSTORE_PATH), - RPC_SSL_KEYSTORE_PASSWORD(Property.RPC_SSL_KEYSTORE_PASSWORD), - RPC_SSL_KEYSTORE_TYPE(Property.RPC_SSL_KEYSTORE_TYPE), - RPC_USE_JSSE(Property.RPC_USE_JSSE), - INSTANCE_RPC_SSL_CLIENT_AUTH(Property.INSTANCE_RPC_SSL_CLIENT_AUTH), - INSTANCE_RPC_SSL_ENABLED(Property.INSTANCE_RPC_SSL_ENABLED), - INSTANCE_ZK_HOST(Property.INSTANCE_ZK_HOST), - INSTANCE_ZK_TIMEOUT(Property.INSTANCE_ZK_TIMEOUT), - INSTANCE_NAME("client.instance.name", null, PropertyType.STRING, "Name of Accumulo instance to connect to"), - INSTANCE_ID("client.instance.id", null, PropertyType.STRING, "UUID of Accumulo instance to connect to"), - ; - - private String key; - private String defaultValue; - private PropertyType type; - private String description; - - private Property accumuloProperty = null; - - private ClientProperty(Property prop) { - this(prop.getKey(), prop.getDefaultValue(), prop.getType(), prop.getDescription()); - accumuloProperty = prop; - } - - private ClientProperty(String key, String defaultValue, PropertyType type, String description) { - this.key = key; - this.defaultValue = defaultValue; - this.type = type; - this.description = description; - } - - public String getKey() { - return key; - } - - public String getDefaultValue() { - return defaultValue; - } - - public PropertyType getType() { - return type; - } - - public String getDescription() { - return description; - } - - public Property getAccumuloProperty() { - return accumuloProperty; - } - - public static ClientProperty getPropertyByKey(String key) { - for (ClientProperty prop : ClientProperty.values()) - if (prop.getKey().equals(key)) - return prop; - return null; - } - }; - - public ClientConfiguration(List configs) { - super(configs); - } - - public ClientConfiguration(Configuration... configs) { - this(Arrays.asList(configs)); - } - - public static ClientConfiguration loadDefault() { - return loadFromSearchPath(getDefaultSearchPath()); - } - - public static ClientConfiguration loadDefault(String overridePropertiesFilename) throws FileNotFoundException, ConfigurationException { - if (overridePropertiesFilename == null) - return loadDefault(); - else - return new ClientConfiguration(new PropertiesConfiguration(overridePropertiesFilename)); - } - - private static ClientConfiguration loadFromSearchPath(List paths) { - try { - List configs = new LinkedList(); - for (String path : paths) { - File conf = new File(path); - if (conf.canRead()) { - configs.add(new PropertiesConfiguration(conf)); - } - } - return new ClientConfiguration(configs); - } catch (ConfigurationException e) { - throw new IllegalStateException("Error loading client configuration", e); - } - } - - public static ClientConfiguration deserialize(String serializedConfig) { - PropertiesConfiguration propConfig = new PropertiesConfiguration(); - try { - propConfig.load(new StringReader(serializedConfig)); - } catch (ConfigurationException e) { - throw new IllegalArgumentException("Error deserializing client configuration: " + serializedConfig, e); - } - return new ClientConfiguration(propConfig); - } - - private static List getDefaultSearchPath() { - String clientConfSearchPath = System.getenv("ACCUMULO_CLIENT_CONF_PATH"); - List clientConfPaths; - if (clientConfSearchPath != null) { - clientConfPaths = Arrays.asList(clientConfSearchPath.split(File.pathSeparator)); - } else { - // if $ACCUMULO_CLIENT_CONF_PATH env isn't set, priority from top to bottom is: - // ~/.accumulo/config - // $ACCUMULO_CONF_DIR/client.conf -OR- $ACCUMULO_HOME/conf/client.conf (depending on whether $ACCUMULO_CONF_DIR is set) - // /etc/accumulo/client.conf - clientConfPaths = new LinkedList(); - clientConfPaths.add(System.getProperty("user.home") + File.separator + USER_ACCUMULO_DIR_NAME + File.separator + USER_CONF_FILENAME); - if (System.getenv("ACCUMULO_CONF_DIR") != null) { - clientConfPaths.add(System.getenv("ACCUMULO_CONF_DIR") + File.separator + GLOBAL_CONF_FILENAME); - } else if (System.getenv("ACCUMULO_HOME") != null) { - clientConfPaths.add(System.getenv("ACCUMULO_HOME") + File.separator + "conf" + File.separator + GLOBAL_CONF_FILENAME); - } - clientConfPaths.add("/etc/accumulo/" + GLOBAL_CONF_FILENAME); - } - return clientConfPaths; - } - - public String serialize() { - PropertiesConfiguration propConfig = new PropertiesConfiguration(); - propConfig.copy(this); - StringWriter writer = new StringWriter(); - try { - propConfig.save(writer); - } catch (ConfigurationException e) { - // this should never happen - throw new IllegalStateException(e); - } - return writer.toString(); - } - - public String get(ClientProperty prop) { - if (this.containsKey(prop.getKey())) - return this.getString(prop.getKey()); - else - return prop.getDefaultValue(); - } - - public void setProperty(ClientProperty prop, String value) { - this.setProperty(prop.getKey(), value); - } - - public ClientConfiguration with(ClientProperty prop, String value) { - this.setProperty(prop.getKey(), value); - return this; - } - - public ClientConfiguration withInstance(String instanceName) { - ArgumentChecker.notNull(instanceName); - return with(ClientProperty.INSTANCE_NAME, instanceName); - } - - public ClientConfiguration withInstance(UUID instanceId) { - ArgumentChecker.notNull(instanceId); - return with(ClientProperty.INSTANCE_ID, instanceId.toString()); - } - - public ClientConfiguration withZkHosts(String zooKeepers) { - ArgumentChecker.notNull(zooKeepers); - return with(ClientProperty.INSTANCE_ZK_HOST, zooKeepers); - } - - public ClientConfiguration withZkTimeout(int timeout) { - return with(ClientProperty.INSTANCE_ZK_TIMEOUT, String.valueOf(timeout)); - } - - public ClientConfiguration withSsl(boolean sslEnabled) { - return withSsl(sslEnabled, false); - } - - public ClientConfiguration withSsl(boolean sslEnabled, boolean useJsseConfig) { - return with(ClientProperty.INSTANCE_RPC_SSL_ENABLED, String.valueOf(sslEnabled)) - .with(ClientProperty.RPC_USE_JSSE, String.valueOf(useJsseConfig)); - } - - public ClientConfiguration withTruststore(String path) { - return withTruststore(path, null, null); - } - - public ClientConfiguration withTruststore(String path, String password, String type) { - ArgumentChecker.notNull(path); - setProperty(ClientProperty.RPC_SSL_TRUSTSTORE_PATH, path); - if (password != null) - setProperty(ClientProperty.RPC_SSL_TRUSTSTORE_PASSWORD, password); - if (type != null) - setProperty(ClientProperty.RPC_SSL_TRUSTSTORE_TYPE, type); - return this; - } - - public ClientConfiguration withKeystore(String path) { - return withKeystore(path, null, null); - } - - public ClientConfiguration withKeystore(String path, String password, String type) { - ArgumentChecker.notNull(path); - setProperty(ClientProperty.INSTANCE_RPC_SSL_CLIENT_AUTH, "true"); - setProperty(ClientProperty.RPC_SSL_KEYSTORE_PATH, path); - if (password != null) - setProperty(ClientProperty.RPC_SSL_KEYSTORE_PASSWORD, password); - if (type != null) - setProperty(ClientProperty.RPC_SSL_KEYSTORE_TYPE, type); - return this; - } - - public AccumuloConfiguration getAccumuloConfiguration() { - final AccumuloConfiguration defaultConf = AccumuloConfiguration.getDefaultConfiguration(); - return new AccumuloConfiguration() { - - @Override - public Iterator> iterator() { - TreeMap entries = new TreeMap(); - - for (Entry parentEntry : defaultConf) - entries.put(parentEntry.getKey(), parentEntry.getValue()); - - @SuppressWarnings("unchecked") - Iterator keyIter = getKeys(); - while (keyIter.hasNext()) { - String key = keyIter.next(); - entries.put(key, getString(key)); - } - - return entries.entrySet().iterator(); - } - - @Override - public String get(Property property) { - if (containsKey(property.getKey())) - return getString(property.getKey()); - else - return defaultConf.get(property); - } - - @Override - public void getProperties(Map props, PropertyFilter filter) { - for (Entry entry : this) - if (filter.accept(entry.getKey())) - props.put(entry.getKey(), entry.getValue()); - } - }; - } - - public static ClientConfiguration fromAccumuloConfiguration(AccumuloConfiguration accumuloConf) { - Map props = new HashMap(); - for (ClientProperty prop : ClientProperty.values()) { - if (prop.accumuloProperty == null) - continue; - props.put(prop.getKey(), accumuloConf.get(prop.accumuloProperty)); - } - return new ClientConfiguration(new MapConfiguration(props)); - } -} http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/metadata/MetadataLocationObtainer.java ---------------------------------------------------------------------- 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 cb86b77..25007f5 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 @@ -34,7 +34,7 @@ import org.apache.accumulo.core.client.AccumuloSecurityException; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.impl.AccumuloServerException; import org.apache.accumulo.core.client.impl.ScannerOptions; -import org.apache.accumulo.core.client.impl.ServerConfigurationFactory; +import org.apache.accumulo.core.client.impl.ServerConfigurationUtil; import org.apache.accumulo.core.client.impl.TabletLocator; import org.apache.accumulo.core.client.impl.TabletLocator.TabletLocation; import org.apache.accumulo.core.client.impl.TabletLocator.TabletLocations; @@ -98,7 +98,7 @@ public class MetadataLocationObtainer implements TabletLocationObtainer { Map> serverSideIteratorOptions = Collections.emptyMap(); boolean more = ThriftScanner.getBatchFromServer(instance, credentials, range, src.tablet_extent, src.tablet_location, encodedResults, locCols, - serverSideIteratorList, serverSideIteratorOptions, Constants.SCAN_BATCH_SIZE, Authorizations.EMPTY, false, ServerConfigurationFactory.getConfiguration(instance)); + serverSideIteratorList, serverSideIteratorOptions, Constants.SCAN_BATCH_SIZE, Authorizations.EMPTY, false, ServerConfigurationUtil.getConfiguration(instance)); decodeRows(encodedResults, results); @@ -106,7 +106,7 @@ public class MetadataLocationObtainer implements TabletLocationObtainer { range = new Range(results.lastKey().followingKey(PartialKey.ROW_COLFAM_COLQUAL_COLVIS_TIME), true, new Key(stopRow).followingKey(PartialKey.ROW), false); encodedResults.clear(); more = ThriftScanner.getBatchFromServer(instance, credentials, range, src.tablet_extent, src.tablet_location, encodedResults, locCols, - serverSideIteratorList, serverSideIteratorOptions, Constants.SCAN_BATCH_SIZE, Authorizations.EMPTY, false, ServerConfigurationFactory.getConfiguration(instance)); + serverSideIteratorList, serverSideIteratorOptions, Constants.SCAN_BATCH_SIZE, Authorizations.EMPTY, false, ServerConfigurationUtil.getConfiguration(instance)); decodeRows(encodedResults, results); } @@ -179,7 +179,7 @@ public class MetadataLocationObtainer implements TabletLocationObtainer { Map> failures = new HashMap>(); try { TabletServerBatchReaderIterator.doLookup(instance, credentials, tserver, tabletsRanges, failures, unscanned, rr, columns, opts, Authorizations.EMPTY, - ServerConfigurationFactory.getConfiguration(instance)); + ServerConfigurationUtil.getConfiguration(instance)); if (failures.size() > 0) { // invalidate extents in parents cache if (log.isTraceEnabled()) http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java b/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java index b518400..ddadae9 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/Shell.java @@ -41,19 +41,21 @@ import jline.console.history.FileHistory; import org.apache.accumulo.core.Constants; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.IteratorSetting; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.client.ZooKeeperInstance; +import org.apache.accumulo.core.client.impl.ServerConfigurationUtil; import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.PasswordToken; import org.apache.accumulo.core.conf.AccumuloConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration; -import org.apache.accumulo.core.conf.SiteConfiguration; +import org.apache.accumulo.core.conf.DefaultConfiguration; import org.apache.accumulo.core.conf.Property; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; +import org.apache.accumulo.core.conf.SiteConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.data.thrift.TConstraintViolationSummary; @@ -419,7 +421,8 @@ public class Shell extends ShellOptions { instanceName = clientConfig.get(ClientProperty.INSTANCE_NAME); } if (instanceName == null || keepers == null) { - AccumuloConfiguration conf = SiteConfiguration.getInstance(clientConfig.getAccumuloConfiguration()); + AccumuloConfiguration conf = SiteConfiguration.getInstance(ServerConfigurationUtil.convertClientConfig(DefaultConfiguration.getInstance(), + clientConfig)); if (instanceName == null) { Path instanceDir = new Path(conf.get(Property.INSTANCE_DFS_DIR), "instance_id"); instanceId = UUID.fromString(ZooUtil.getInstanceIDFromHdfs(instanceDir)); http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptionsJC.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptionsJC.java b/core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptionsJC.java index 2f30a87..547da48 100644 --- a/core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptionsJC.java +++ b/core/src/main/java/org/apache/accumulo/core/util/shell/ShellOptionsJC.java @@ -24,9 +24,9 @@ import java.util.Map; import java.util.Scanner; import java.util.TreeMap; +import org.apache.accumulo.core.client.ClientConfiguration; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; import org.apache.commons.configuration.ConfigurationException; import org.apache.log4j.Logger; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBaseTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBaseTest.java b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBaseTest.java index 50fc0a9..3b5143f 100644 --- a/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBaseTest.java +++ b/core/src/test/java/org/apache/accumulo/core/client/mapreduce/lib/util/ConfiguratorBaseTest.java @@ -21,14 +21,14 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.ZooKeeperInstance; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken.AuthenticationTokenSerializer; import org.apache.accumulo.core.client.security.tokens.PasswordToken; -import org.apache.accumulo.core.conf.ClientConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; import org.apache.commons.codec.binary.Base64; import org.apache.hadoop.conf.Configuration; import org.apache.log4j.Level; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/test/java/org/apache/accumulo/core/conf/ClientConfigurationTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/accumulo/core/conf/ClientConfigurationTest.java b/core/src/test/java/org/apache/accumulo/core/conf/ClientConfigurationTest.java index 55cf9d3..40be70f 100644 --- a/core/src/test/java/org/apache/accumulo/core/conf/ClientConfigurationTest.java +++ b/core/src/test/java/org/apache/accumulo/core/conf/ClientConfigurationTest.java @@ -20,7 +20,8 @@ import static org.junit.Assert.assertEquals; import java.util.Arrays; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; +import org.apache.accumulo.core.client.ClientConfiguration; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.PropertiesConfiguration; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/core/src/test/java/org/apache/accumulo/core/util/shell/ShellSetInstanceTest.java ---------------------------------------------------------------------- diff --git a/core/src/test/java/org/apache/accumulo/core/util/shell/ShellSetInstanceTest.java b/core/src/test/java/org/apache/accumulo/core/util/shell/ShellSetInstanceTest.java index 5ce1320..a2769bd 100644 --- a/core/src/test/java/org/apache/accumulo/core/util/shell/ShellSetInstanceTest.java +++ b/core/src/test/java/org/apache/accumulo/core/util/shell/ShellSetInstanceTest.java @@ -35,11 +35,11 @@ import java.util.UUID; import jline.console.ConsoleReader; +import org.apache.accumulo.core.client.ClientConfiguration; +import org.apache.accumulo.core.client.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.conf.AccumuloConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration; -import org.apache.accumulo.core.conf.ClientConfiguration.ClientProperty; import org.apache.accumulo.core.conf.ConfigSanityCheck; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.zookeeper.ZooUtil; @@ -154,22 +154,21 @@ public class ShellSetInstanceTest { expect(clientConf.get(ClientProperty.INSTANCE_NAME)).andReturn(null); } - AccumuloConfiguration conf = createMock(AccumuloConfiguration.class); - expect(clientConf.getAccumuloConfiguration()).andReturn(conf); - mockStatic(ConfigSanityCheck.class); ConfigSanityCheck.validate(EasyMock.anyObject()); - expectLastCall(); + expectLastCall().atLeastOnce(); replay(ConfigSanityCheck.class); if (!onlyHosts) { - expect(conf.get(Property.INSTANCE_ZK_HOST)).andReturn("host1,host2").atLeastOnce(); + expect(clientConf.containsKey(Property.INSTANCE_ZK_HOST.getKey())).andReturn(true).atLeastOnce(); + expect(clientConf.getString(Property.INSTANCE_ZK_HOST.getKey())).andReturn("host1,host2").atLeastOnce(); expect(clientConf.withZkHosts("host1,host2")).andReturn(clientConf); } if (!onlyInstance) { - expect(conf.get(Property.INSTANCE_DFS_DIR)).andReturn("/dfs").atLeastOnce(); + expect(clientConf.containsKey(Property.INSTANCE_DFS_DIR.getKey())).andReturn(true).atLeastOnce(); + expect(clientConf.getString(Property.INSTANCE_DFS_DIR.getKey())).andReturn("/dfs").atLeastOnce(); } - replay(conf); + UUID randomUUID = null; if (!onlyInstance) { mockStatic(ZooUtil.class); http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java ---------------------------------------------------------------------- diff --git a/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java b/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java index a66438e..4b12d7b 100644 --- a/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java +++ b/examples/simple/src/main/java/org/apache/accumulo/examples/simple/filedata/FileDataQuery.java @@ -23,12 +23,12 @@ import java.util.Map.Entry; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Scanner; import org.apache.accumulo.core.client.TableNotFoundException; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Key; import org.apache.accumulo.core.data.Range; import org.apache.accumulo.core.data.Value; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapreduce/TokenFileWordCount.java ---------------------------------------------------------------------- diff --git a/examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapreduce/TokenFileWordCount.java b/examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapreduce/TokenFileWordCount.java index 1114a7e..fc4b27f 100644 --- a/examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapreduce/TokenFileWordCount.java +++ b/examples/simple/src/main/java/org/apache/accumulo/examples/simple/mapreduce/TokenFileWordCount.java @@ -18,8 +18,8 @@ package org.apache.accumulo.examples.simple.mapreduce; import java.io.IOException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.mapreduce.AccumuloOutputFormat; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Mutation; import org.apache.accumulo.core.data.Value; import org.apache.accumulo.core.util.CachedConfiguration; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/examples/simple/src/main/java/org/apache/accumulo/examples/simple/reservations/ARS.java ---------------------------------------------------------------------- diff --git a/examples/simple/src/main/java/org/apache/accumulo/examples/simple/reservations/ARS.java b/examples/simple/src/main/java/org/apache/accumulo/examples/simple/reservations/ARS.java index 12365b6..509a674 100644 --- a/examples/simple/src/main/java/org/apache/accumulo/examples/simple/reservations/ARS.java +++ b/examples/simple/src/main/java/org/apache/accumulo/examples/simple/reservations/ARS.java @@ -24,13 +24,13 @@ import jline.console.ConsoleReader; import org.apache.accumulo.core.client.ConditionalWriter; import org.apache.accumulo.core.client.ConditionalWriter.Status; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.ConditionalWriterConfig; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.IsolatedScanner; import org.apache.accumulo.core.client.Scanner; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.client.security.tokens.PasswordToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Condition; import org.apache.accumulo.core.data.ConditionalMutation; import org.apache.accumulo.core.data.Key; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java ---------------------------------------------------------------------- diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java index 0a50747..8b195ff 100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloCluster.java @@ -44,11 +44,11 @@ import java.util.Set; import org.apache.accumulo.core.client.AccumuloException; import org.apache.accumulo.core.client.AccumuloSecurityException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.ZooKeeperInstance; import org.apache.accumulo.core.client.security.tokens.PasswordToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.conf.Property; import org.apache.accumulo.core.master.thrift.MasterGoalState; import org.apache.accumulo.core.util.Daemon; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java ---------------------------------------------------------------------- diff --git a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java index 1e1c464..43cae2d 100644 --- a/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java +++ b/minicluster/src/main/java/org/apache/accumulo/minicluster/MiniAccumuloInstance.java @@ -20,9 +20,9 @@ import java.io.File; import java.io.FileNotFoundException; import java.net.MalformedURLException; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.Instance; import org.apache.accumulo.core.client.ZooKeeperInstance; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.conf.Property; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; http://git-wip-us.apache.org/repos/asf/accumulo/blob/5bd68ef9/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java ---------------------------------------------------------------------- diff --git a/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java b/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java index 9324da9..799c763 100644 --- a/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java +++ b/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java @@ -42,6 +42,7 @@ import org.apache.accumulo.core.client.BatchWriter; import org.apache.accumulo.core.client.BatchWriterConfig; import org.apache.accumulo.core.client.ConditionalWriter; import org.apache.accumulo.core.client.ConditionalWriter.Result; +import org.apache.accumulo.core.client.ClientConfiguration; import org.apache.accumulo.core.client.ConditionalWriterConfig; import org.apache.accumulo.core.client.Connector; import org.apache.accumulo.core.client.Instance; @@ -61,7 +62,6 @@ import org.apache.accumulo.core.client.mock.MockInstance; import org.apache.accumulo.core.client.security.SecurityErrorCode; import org.apache.accumulo.core.client.security.tokens.AuthenticationToken; import org.apache.accumulo.core.client.security.tokens.PasswordToken; -import org.apache.accumulo.core.conf.ClientConfiguration; import org.apache.accumulo.core.data.Column; import org.apache.accumulo.core.data.ConditionalMutation; import org.apache.accumulo.core.data.Key;