Repository: incubator-wave
Updated Branches:
  refs/heads/master 1b8ce7c1f -> 803697606


http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/src/org/waveprotocol/wave/util/settings/SettingsBinder.java
----------------------------------------------------------------------
diff --git a/src/org/waveprotocol/wave/util/settings/SettingsBinder.java 
b/src/org/waveprotocol/wave/util/settings/SettingsBinder.java
deleted file mode 100644
index 0316520..0000000
--- a/src/org/waveprotocol/wave/util/settings/SettingsBinder.java
+++ /dev/null
@@ -1,198 +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.waveprotocol.wave.util.settings;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.AbstractModule;
-import com.google.inject.Module;
-import com.google.inject.TypeLiteral;
-import com.google.inject.name.Names;
-
-import org.apache.commons.configuration.CompositeConfiguration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.configuration.SystemConfiguration;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * A property file parsing system that converts a given
- * settings class into a Guice module with injectable
- * @Named parameters.
- *
- * Originally based on some CLI work by [email protected] (Anthony Baxter).
- * Refactored by [email protected] (Tad Glines) to use Commons 
Configuration and add support for
- * List<String>.
- */
-public class SettingsBinder {
-
-  /**
-   * Used to validate that a type is supported. Some types may have generic 
parameters that need
-   * to be checked.
-   */
-  private interface SettingTypeValidator {
-    boolean check(Type type);
-  }
-
-  private static final Map<Type, SettingTypeValidator> supportedSettingTypes;
-
-  /**
-   * This default validator just returns true.
-   */
-  private static final SettingTypeValidator DEFAULT_TYPE_VALIDATOR = new 
SettingTypeValidator() {
-    @Override
-    public boolean check(Type type) {
-      return true;
-    }
-  };
-
-  /**
-   * This validator checks to make sure the {@link List}'s generic parameter 
is also supported.
-   */
-  private static final SettingTypeValidator LIST_TYPE_VALIDATOR = new 
SettingTypeValidator() {
-    @Override
-    public boolean check(Type type) {
-      if (type instanceof ParameterizedType) {
-        Type[] args = ((ParameterizedType)type).getActualTypeArguments();
-        if (args.length == 1) {
-          // At the moment only List<String> is supported.
-          if (args[0] == String.class) {
-            return true;
-          }
-        }
-      }
-      return false;
-    }
-  };
-
-  static {
-    ImmutableMap.Builder<Type, SettingTypeValidator> builder = 
ImmutableMap.builder();
-    builder.put(int.class, DEFAULT_TYPE_VALIDATOR);
-    builder.put(boolean.class, DEFAULT_TYPE_VALIDATOR);
-    builder.put(String.class, DEFAULT_TYPE_VALIDATOR);
-    builder.put(List.class, LIST_TYPE_VALIDATOR);
-    supportedSettingTypes = builder.build();
-  }
-
-  /**
-   * Bind configuration parameters into Guice Module.
-   *
-   * @return a Guice module configured with setting support.
-   * @throws ConfigurationException on configuration error
-   */
-  public static Module bindSettings(String propertiesFileKey, Class<?>... 
settingsArg)
-      throws ConfigurationException {
-    final CompositeConfiguration config = new CompositeConfiguration();
-    config.addConfiguration(new SystemConfiguration());
-    String propertyFile = config.getString(propertiesFileKey);
-    if (propertyFile != null) {
-      config.addConfiguration(new PropertiesConfiguration(propertyFile));
-    }
-
-    List<Field> fields = new ArrayList<Field>();
-    for (Class<?> settings : settingsArg) {
-      fields.addAll(Arrays.asList(settings.getDeclaredFields()));
-    }
-
-    // Reflect on settings class and absorb settings
-    final Map<Setting, Field> settings = new LinkedHashMap<Setting, Field>();
-    for (Field field : fields) {
-      if (!field.isAnnotationPresent(Setting.class)) {
-        continue;
-      }
-
-      // Validate target type
-      SettingTypeValidator typeHelper = 
supportedSettingTypes.get(field.getType());
-      if (typeHelper == null || !typeHelper.check(field.getGenericType())) {
-        throw new IllegalArgumentException(field.getType()
-            + " is not one of the supported setting types");
-      }
-
-      Setting setting = field.getAnnotation(Setting.class);
-      settings.put(setting, field);
-    }
-
-    // Now validate them
-    List<String> missingProperties = new ArrayList<String>();
-    for (Setting setting : settings.keySet()) {
-      if (setting.defaultValue().isEmpty()) {
-        if (!config.containsKey(setting.name())) {
-          missingProperties.add(setting.name());
-        }
-      }
-    }
-    if (missingProperties.size() > 0) {
-      StringBuilder error = new StringBuilder();
-      error.append("The following required properties are missing from the 
server configuration: ");
-      error.append(Joiner.on(", ").join(missingProperties));
-      throw new ConfigurationException(error.toString());
-    }
-
-    // bundle everything up in an injectable guice module
-    return new AbstractModule() {
-
-      @Override
-      protected void configure() {
-        // We must iterate the settings a third time when binding.
-        // Note: do not collapse these loops as that will damage
-        // early error detection. The runtime is still O(n) in setting count.
-        for (Map.Entry<Setting, Field> entry : settings.entrySet()) {
-          Class<?> type = entry.getValue().getType();
-          Setting setting = entry.getKey();
-
-          if (int.class.equals(type)) {
-            Integer defaultValue = null;
-            if (!setting.defaultValue().isEmpty()) {
-              defaultValue = Integer.parseInt(setting.defaultValue());
-            }
-            bindConstant().annotatedWith(Names.named(setting.name()))
-                .to(config.getInteger(setting.name(), defaultValue));
-          } else if (boolean.class.equals(type)) {
-            Boolean defaultValue = null;
-            if (!setting.defaultValue().isEmpty()) {
-              defaultValue = Boolean.parseBoolean(setting.defaultValue());
-            }
-            bindConstant().annotatedWith(Names.named(setting.name()))
-                .to(config.getBoolean(setting.name(), defaultValue));
-          } else if (String.class.equals(type)) {
-            bindConstant().annotatedWith(Names.named(setting.name()))
-                .to(config.getString(setting.name(), setting.defaultValue()));
-          } else {
-            String[] value = config.getStringArray(setting.name());
-            if (value.length == 0 && !setting.defaultValue().isEmpty()) {
-              value = setting.defaultValue().split(",");
-            }
-            bind(new TypeLiteral<List<String>>() 
{}).annotatedWith(Names.named(setting.name()))
-                .toInstance(ImmutableList.copyOf(value));
-          }
-        }
-      }
-    };
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/persistence/file/AccountStoreTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/persistence/file/AccountStoreTest.java 
b/test/org/waveprotocol/box/server/persistence/file/AccountStoreTest.java
index 26b3d8d..c1bd5f0 100644
--- a/test/org/waveprotocol/box/server/persistence/file/AccountStoreTest.java
+++ b/test/org/waveprotocol/box/server/persistence/file/AccountStoreTest.java
@@ -19,6 +19,7 @@
 
 package org.waveprotocol.box.server.persistence.file;
 
+import com.typesafe.config.ConfigFactory;
 import org.waveprotocol.box.server.persistence.AccountStore;
 import org.waveprotocol.box.server.persistence.AccountStoreTestBase;
 
@@ -40,7 +41,8 @@ public class AccountStoreTest extends AccountStoreTestBase {
 
   @Override
   protected AccountStore newAccountStore() {
-    return new FileAccountStore(path.getAbsolutePath());
+    return new FileAccountStore(
+      ConfigFactory.parseString("core.account_store_directory : " + 
path.getAbsolutePath()));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/persistence/file/AttachmentStoreTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/persistence/file/AttachmentStoreTest.java 
b/test/org/waveprotocol/box/server/persistence/file/AttachmentStoreTest.java
index 023d3c9..6ace3ee 100644
--- a/test/org/waveprotocol/box/server/persistence/file/AttachmentStoreTest.java
+++ b/test/org/waveprotocol/box/server/persistence/file/AttachmentStoreTest.java
@@ -19,6 +19,7 @@
 
 package org.waveprotocol.box.server.persistence.file;
 
+import com.typesafe.config.ConfigFactory;
 import org.waveprotocol.box.server.persistence.AttachmentStore;
 import org.waveprotocol.box.server.persistence.AttachmentStoreTestBase;
 
@@ -39,7 +40,8 @@ public class AttachmentStoreTest extends 
AttachmentStoreTestBase {
 
   @Override
   protected AttachmentStore newAttachmentStore() {
-    return new FileAttachmentStore(path.getAbsolutePath());
+    return new FileAttachmentStore(
+      ConfigFactory.parseString("core.attachment_store_directory : " + 
path.getAbsolutePath()));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/persistence/file/CertPathStoreTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/persistence/file/CertPathStoreTest.java 
b/test/org/waveprotocol/box/server/persistence/file/CertPathStoreTest.java
index 36f67f2..0065d80 100644
--- a/test/org/waveprotocol/box/server/persistence/file/CertPathStoreTest.java
+++ b/test/org/waveprotocol/box/server/persistence/file/CertPathStoreTest.java
@@ -19,6 +19,7 @@
 
 package org.waveprotocol.box.server.persistence.file;
 
+import com.typesafe.config.ConfigFactory;
 import org.waveprotocol.box.server.persistence.CertPathStoreTestBase;
 import org.waveprotocol.wave.crypto.CertPathStore;
 
@@ -45,7 +46,7 @@ public class CertPathStoreTest extends CertPathStoreTestBase {
 
   @Override
   protected CertPathStore newCertPathStore() {
-    return new FileSignerInfoStore(path.getAbsolutePath());
+    return new 
FileSignerInfoStore(ConfigFactory.parseString("core.signer_info_store_directory 
: " + path.getAbsolutePath()));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/persistence/file/DeltaStoreTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/persistence/file/DeltaStoreTest.java 
b/test/org/waveprotocol/box/server/persistence/file/DeltaStoreTest.java
index 6c01f70..1bc18ee 100644
--- a/test/org/waveprotocol/box/server/persistence/file/DeltaStoreTest.java
+++ b/test/org/waveprotocol/box/server/persistence/file/DeltaStoreTest.java
@@ -21,6 +21,7 @@ package org.waveprotocol.box.server.persistence.file;
 
 import com.google.common.collect.ImmutableList;
 
+import com.typesafe.config.ConfigFactory;
 import org.waveprotocol.box.server.persistence.DeltaStoreTestBase;
 import org.waveprotocol.box.server.waveserver.DeltaStore;
 import org.waveprotocol.box.server.waveserver.WaveletDeltaRecord;
@@ -54,7 +55,8 @@ public class DeltaStoreTest extends DeltaStoreTestBase {
 
   @Override
   protected DeltaStore newDeltaStore() {
-    return new FileDeltaStore(path.getAbsolutePath());
+    return new 
FileDeltaStore(ConfigFactory.parseString("core.delta_store_directory : " + path
+      .getAbsolutePath()));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/robots/agent/AbstractRobotAgentTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/robots/agent/AbstractRobotAgentTest.java 
b/test/org/waveprotocol/box/server/robots/agent/AbstractRobotAgentTest.java
index 5f78d04..6794276 100644
--- a/test/org/waveprotocol/box/server/robots/agent/AbstractRobotAgentTest.java
+++ b/test/org/waveprotocol/box/server/robots/agent/AbstractRobotAgentTest.java
@@ -46,7 +46,7 @@ public class AbstractRobotAgentTest extends TestCase {
     public FakeRobotAgent(String waveDomain, TokenGenerator tokenGenerator,
         ServerFrontendAddressHolder frontendAddressHolder, AccountStore 
accountStore,
         RobotRegistrar registrar, Boolean sslEnabled) {
-      super(waveDomain, tokenGenerator, frontendAddressHolder, accountStore, 
registrar, sslEnabled);
+      super(waveDomain, frontendAddressHolder, accountStore, registrar, 
sslEnabled);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/rpc/AuthenticationServletTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/rpc/AuthenticationServletTest.java 
b/test/org/waveprotocol/box/server/rpc/AuthenticationServletTest.java
index 2e39d2d..89c705e 100644
--- a/test/org/waveprotocol/box/server/rpc/AuthenticationServletTest.java
+++ b/test/org/waveprotocol/box/server/rpc/AuthenticationServletTest.java
@@ -26,6 +26,9 @@ import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import com.google.common.collect.ImmutableMap;
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
 
 import org.mockito.Mock;
@@ -77,8 +80,16 @@ public class AuthenticationServletTest extends TestCase {
         new HumanAccountDataImpl(USER, new 
PasswordDigest("password".toCharArray()));
     store.putAccount(account);
 
+    Config config = ConfigFactory.parseMap(ImmutableMap.<String, Object>of(
+      "administration.disable_registration", false,
+      "administration.analytics_account", "UA-someid",
+      "security.enable_clientauth", false,
+      "security.clientauth_cert_domain", "",
+      "administration.disable_loginpage", false)
+    );
+
     servlet = new AuthenticationServlet(store, 
AuthTestUtil.makeConfiguration(),
-        manager, "examPLe.com", false, "", false, false, welcomeBot, 
"UA-someid");
+        manager, "examPLe.com", config, welcomeBot);
     AccountStoreHolder.init(store, "eXaMple.com");
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/rpc/RpcTest.java
----------------------------------------------------------------------
diff --git a/test/org/waveprotocol/box/server/rpc/RpcTest.java 
b/test/org/waveprotocol/box/server/rpc/RpcTest.java
index 8af1078..ffc887e 100644
--- a/test/org/waveprotocol/box/server/rpc/RpcTest.java
+++ b/test/org/waveprotocol/box/server/rpc/RpcTest.java
@@ -24,29 +24,20 @@ import com.google.common.util.concurrent.MoreExecutors;
 import com.google.inject.AbstractModule;
 import com.google.inject.Guice;
 import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.name.Names;
 import com.google.protobuf.Descriptors;
 import com.google.protobuf.RpcCallback;
 import com.google.protobuf.RpcController;
-
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
-
 import org.mockito.Mockito;
 import org.waveprotocol.box.common.comms.WaveClientRpc;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticate;
-import 
org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolAuthenticationResult;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolOpenRequest;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolSubmitRequest;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolSubmitResponse;
-import org.waveprotocol.box.common.comms.WaveClientRpc.ProtocolWaveletUpdate;
-import org.waveprotocol.box.server.CoreSettings;
+import org.waveprotocol.box.common.comms.WaveClientRpc.*;
 import org.waveprotocol.box.server.authentication.SessionManager;
 
 import java.io.IOException;
 import java.net.InetSocketAddress;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -77,12 +68,14 @@ public class RpcTest extends TestCase {
         new ServerRpcProvider(new InetSocketAddress[] {new 
InetSocketAddress("localhost", 0)},
             new String[] {"./war"}, sessionManager, null, null, false, null, 
null,
             MoreExecutors.sameThreadExecutor());
+    final Map<String, Object> props = new HashMap<>();
+    props.put("network.websocket_max_idle_time", 0);
+    props.put("network.websocket_max_message_size", 2);
     Injector injector = Guice.createInjector(new AbstractModule() {
       @Override
       protected void configure() {
         bind(ServerRpcProvider.class).toInstance(server);
-        bind(Key.get(Integer.class, 
Names.named(CoreSettings.WEBSOCKET_MAX_IDLE_TIME))).toInstance(0);
-        bind(Key.get(Integer.class, 
Names.named(CoreSettings.WEBSOCKET_MAX_MESSAGE_SIZE))).toInstance(2);
+        bind(Config.class).toInstance(ConfigFactory.parseMap(props));
       }
     });
     server.startWebSocketServer(injector);
@@ -235,7 +228,7 @@ public class RpcTest extends TestCase {
 
     // Wait for a response, and assert that is a complete failure. :-)
     responseLatch.await(TIMEOUT_SECONDS, TimeUnit.SECONDS);
-    assertEquals(Arrays.asList((ProtocolWaveletUpdate) null), responses);
+    assertEquals(Collections.singletonList((ProtocolWaveletUpdate) null), 
responses);
     assertTrue(controller.failed());
     assertEquals(ERROR_TEXT, controller.errorText());
   }

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/rpc/UserRegistrationServletTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/rpc/UserRegistrationServletTest.java 
b/test/org/waveprotocol/box/server/rpc/UserRegistrationServletTest.java
index bd83db8..84f1ac3 100644
--- a/test/org/waveprotocol/box/server/rpc/UserRegistrationServletTest.java
+++ b/test/org/waveprotocol/box/server/rpc/UserRegistrationServletTest.java
@@ -26,6 +26,9 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import com.google.common.collect.ImmutableMap;
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
 
 import org.mockito.Mock;
@@ -129,10 +132,19 @@ public class UserRegistrationServletTest extends TestCase 
{
       HttpServletRequest req, HttpServletResponse resp, String address,
       String password, boolean disabledRegistration) throws IOException {
 
+    Config config1 = ConfigFactory.parseMap(ImmutableMap.<String, Object>of(
+      "administration.disable_registration", false,
+      "administration.analytics_account", "UA-someid")
+    );
     UserRegistrationServlet enabledServlet =
-        new UserRegistrationServlet(store, "example.com", welcomeBot, false, 
"UA-someid");
+        new UserRegistrationServlet(store, "example.com", config1, welcomeBot);
+
+    Config config2 = ConfigFactory.parseMap(ImmutableMap.<String, Object>of(
+      "administration.disable_registration", true,
+      "administration.analytics_account", "UA-someid")
+    );
     UserRegistrationServlet disabledServlet =
-        new UserRegistrationServlet(store, "example.com", welcomeBot, true, 
"UA-someid");
+        new UserRegistrationServlet(store, "example.com", config2, welcomeBot);
 
     when(req.getParameter("address")).thenReturn(address);
     when(req.getParameter("password")).thenReturn(password);

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/waveserver/CertificateManagerImplTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/waveserver/CertificateManagerImplTest.java 
b/test/org/waveprotocol/box/server/waveserver/CertificateManagerImplTest.java
index 75ac795..625a66e 100644
--- 
a/test/org/waveprotocol/box/server/waveserver/CertificateManagerImplTest.java
+++ 
b/test/org/waveprotocol/box/server/waveserver/CertificateManagerImplTest.java
@@ -29,6 +29,8 @@ import static 
org.waveprotocol.box.server.waveserver.Ticker.EASY_TICKS;
 import com.google.common.collect.ImmutableList;
 import com.google.protobuf.ByteString;
 
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
 
 import org.waveprotocol.box.server.common.CoreWaveletOperationSerializer;
@@ -83,6 +85,7 @@ public class CertificateManagerImplTest extends TestCase {
   private CertPathStore store;
   private CertificateManager manager;
   private Ticker ticker;
+  private Config config;
 
   /*
    * These belong to the example.com domain.
@@ -93,7 +96,8 @@ public class CertificateManagerImplTest extends TestCase {
   protected void setUp() throws Exception {
     super.setUp();
     store = new MemoryStore();
-    manager = new CertificateManagerImpl(false, getSigner(), 
getVerifier(store, true), store);
+    config = 
ConfigFactory.parseString("federation.waveserver_disable_verification : " + 
false);
+    manager = new CertificateManagerImpl(config, getSigner(), 
getVerifier(store, true), store);
     ticker = new Ticker();
   }
 
@@ -121,7 +125,7 @@ public class CertificateManagerImplTest extends TestCase {
         .setAuthor("[email protected]")
         .build();
     ByteStringMessage<ProtocolWaveletDelta> canonicalDelta = 
ByteStringMessage.serializeMessage(delta);
-    manager = new CertificateManagerImpl(false, getSigner(), 
getVerifier(store, false), store);
+    manager = new CertificateManagerImpl(config, getSigner(), 
getVerifier(store, false), store);
     ProtocolSignedDelta signedDelta = manager.signDelta(canonicalDelta);
 
     try {
@@ -154,7 +158,7 @@ public class CertificateManagerImplTest extends TestCase {
   }
 
   public void testRealSignature() throws Exception {
-    manager = new CertificateManagerImpl(false, getSigner(), 
getRealVerifier(store), store);
+    manager = new CertificateManagerImpl(config, getSigner(), 
getRealVerifier(store), store);
     manager.storeSignerInfo(Certificates.getRealSignerInfo().toProtoBuf());
     ByteStringMessage<ProtocolWaveletDelta> compare = 
manager.verifyDelta(getFakeSignedDelta());
     assertEquals(compare, getFakeDelta());

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewProviderTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewProviderTest.java
 
b/test/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewProviderTest.java
index 078203c..96cb819 100644
--- 
a/test/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewProviderTest.java
+++ 
b/test/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewProviderTest.java
@@ -58,7 +58,7 @@ public class LucenePerUserWaveViewProviderTest extends 
PerUserWaveViewProviderTe
   @Override
   protected PerUserWaveViewHandler createPerUserWaveViewHandler() {
     handler =
-        new LucenePerUserWaveViewHandlerImpl(directory, waveletProvider, 
textCollator, DOMAIN,
+        new LucenePerUserWaveViewHandlerImpl(directory, waveletProvider, 
DOMAIN,
           Executors.newCachedThreadPool());
     return handler;
   }

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImplTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImplTest.java 
b/test/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImplTest.java
index d966305..1b5e5a1 100644
--- 
a/test/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImplTest.java
+++ 
b/test/org/waveprotocol/box/server/waveserver/SimpleSearchProviderImplTest.java
@@ -137,7 +137,7 @@ public class SimpleSearchProviderImplTest extends TestCase {
         }
 
         private ParticipantId computeAuthor(SearchResult.Digest digest) {
-          ParticipantId author = null;
+          ParticipantId author;
           author = ParticipantId.ofUnsafe(digest.getParticipants().get(0));
           assert author != null : "Cannot find author for the wave: " + 
digest.getWaveId();
           return author;
@@ -165,8 +165,6 @@ public class SimpleSearchProviderImplTest extends TestCase {
   @Mock private PerUserWaveViewProvider waveViewProvider;
 
   private SearchProvider searchProvider;
-  private ConversationUtil conversationUtil;
-  private WaveDigester digester;
   private WaveMap waveMap;
 
   @Override
@@ -181,8 +179,8 @@ public class SimpleSearchProviderImplTest extends TestCase {
     
when(waveViewProvider.retrievePerUserWaveView(USER2)).thenReturn(wavesViewUser2);
     
when(waveViewProvider.retrievePerUserWaveView(SHARED_USER)).thenReturn(wavesViewUser3);
 
-    conversationUtil = new ConversationUtil(idGenerator);
-    digester = new WaveDigester(conversationUtil);
+    ConversationUtil conversationUtil = new ConversationUtil(idGenerator);
+    WaveDigester digester = new WaveDigester(conversationUtil);
 
     final DeltaStore deltaStore = new MemoryDeltaStore();
     final Executor persistExecutor = MoreExecutors.sameThreadExecutor();
@@ -206,8 +204,9 @@ public class SimpleSearchProviderImplTest extends TestCase {
         };
 
     waveMap =
-        new WaveMap(waveletStore, notifiee, notifiee, 
localWaveletContainerFactory,
+        new WaveMap(waveletStore, notifiee, localWaveletContainerFactory,
             remoteWaveletContainerFactory, DOMAIN, lookupExecutor);
+
     searchProvider = new SimpleSearchProviderImpl(DOMAIN, digester, waveMap, 
waveViewProvider);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/waveserver/WaveMapTest.java
----------------------------------------------------------------------
diff --git a/test/org/waveprotocol/box/server/waveserver/WaveMapTest.java 
b/test/org/waveprotocol/box/server/waveserver/WaveMapTest.java
index e161490..579dc7c 100644
--- a/test/org/waveprotocol/box/server/waveserver/WaveMapTest.java
+++ b/test/org/waveprotocol/box/server/waveserver/WaveMapTest.java
@@ -84,7 +84,7 @@ public class WaveMapTest extends TestCase {
 
     waveletStore = mock(DeltaAndSnapshotStore.class);
     waveMap =
-        new WaveMap(waveletStore, notifiee, notifiee, 
localWaveletContainerFactory,
+        new WaveMap(waveletStore, notifiee, localWaveletContainerFactory,
             remoteWaveletContainerFactory, "example.com", 
storageContinuationExecutor);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/box/server/waveserver/WaveServerTest.java
----------------------------------------------------------------------
diff --git a/test/org/waveprotocol/box/server/waveserver/WaveServerTest.java 
b/test/org/waveprotocol/box/server/waveserver/WaveServerTest.java
index 1da4f7b..8291af3 100644
--- a/test/org/waveprotocol/box/server/waveserver/WaveServerTest.java
+++ b/test/org/waveprotocol/box/server/waveserver/WaveServerTest.java
@@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.MoreExecutors;
 
+import com.typesafe.config.Config;
 import junit.framework.TestCase;
 
 import org.mockito.Matchers;
@@ -83,6 +84,7 @@ public class WaveServerTest extends TestCase {
   @Mock private WaveletFederationProvider federationRemote;
   @Mock private WaveletNotificationDispatcher notifiee;
   @Mock private RemoteWaveletContainer.Factory remoteWaveletContainerFactory;
+  @Mock private Config config;
 
   private CertificateManager certificateManager;
   private DeltaAndSnapshotStore waveletStore;
@@ -98,7 +100,8 @@ public class WaveServerTest extends TestCase {
     
when(localSigner.sign(Matchers.<ByteStringMessage<ProtocolWaveletDelta>>any()))
         .thenReturn(ImmutableList.<ProtocolSignature>of());
 
-    certificateManager = new CertificateManagerImpl(true, localSigner, null, 
null);
+    
when(config.getBoolean("federation.waveserver_disable_verification")).thenReturn(true);
+    certificateManager = new CertificateManagerImpl(config, localSigner, null, 
null);
     final DeltaStore deltaStore = new MemoryDeltaStore();
     final Executor waveletLoadExecutor = MoreExecutors.sameThreadExecutor();
     final Executor persistExecutor = MoreExecutors.sameThreadExecutor();
@@ -116,7 +119,7 @@ public class WaveServerTest extends TestCase {
     waveletStore = new DeltaStoreBasedSnapshotStore(deltaStore);
     Executor lookupExecutor = MoreExecutors.sameThreadExecutor();
     waveMap =
-        new WaveMap(waveletStore, notifiee, notifiee, 
localWaveletContainerFactory,
+        new WaveMap(waveletStore, notifiee, localWaveletContainerFactory,
             remoteWaveletContainerFactory, "example.com", lookupExecutor);
     waveServer =
         new WaveServerImpl(MoreExecutors.sameThreadExecutor(), 
certificateManager,

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/wave/federation/xmpp/MockDisco.java
----------------------------------------------------------------------
diff --git a/test/org/waveprotocol/wave/federation/xmpp/MockDisco.java 
b/test/org/waveprotocol/wave/federation/xmpp/MockDisco.java
index 6a0193e..5824cc8 100644
--- a/test/org/waveprotocol/wave/federation/xmpp/MockDisco.java
+++ b/test/org/waveprotocol/wave/federation/xmpp/MockDisco.java
@@ -23,12 +23,17 @@ import com.google.common.base.Function;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.MapMaker;
+import com.typesafe.config.Config;
+import com.typesafe.config.ConfigFactory;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Queue;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -44,9 +49,24 @@ public class MockDisco extends XmppDisco {
 
   private static final int FAIL_EXPIRY_SECS = 5 * 60;
   private static final int SUCCESS_EXPIRY_SECS = 2 * 60 * 60;
+  private static final int DISCO_EXPIRY_HOURS = 6;
 
-  MockDisco(String serverName) {
-    super(serverName, FAIL_EXPIRY_SECS, SUCCESS_EXPIRY_SECS);
+  public static final Config config;
+
+  static {
+    Map<String, Object> props = new HashMap<>();
+    props.put("federation.xmpp_server_description", "Wave in a Box");
+    props.put("federation.disco_info_category", "collaboration");
+    props.put("federation.disco_info_type", "apache-wave");
+    props.put("federation.xmpp_disco_failed_expiry", FAIL_EXPIRY_SECS + "s");
+    props.put("federation.xmpp_disco_successful_expiry", SUCCESS_EXPIRY_SECS + 
"s");
+    props.put("federation.disco_expiration", DISCO_EXPIRY_HOURS + "h");
+
+    config = ConfigFactory.parseMap(props);
+  }
+
+  MockDisco() {
+    super(config);
   }
 
   public static class PendingMockDisco {

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/wave/federation/xmpp/RoundTripTest.java
----------------------------------------------------------------------
diff --git a/test/org/waveprotocol/wave/federation/xmpp/RoundTripTest.java 
b/test/org/waveprotocol/wave/federation/xmpp/RoundTripTest.java
index e7879c0..fc928a6 100644
--- a/test/org/waveprotocol/wave/federation/xmpp/RoundTripTest.java
+++ b/test/org/waveprotocol/wave/federation/xmpp/RoundTripTest.java
@@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyZeroInteractions;
 
 
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
 
 import org.mockito.ArgumentCaptor;
@@ -42,6 +43,8 @@ import 
org.waveprotocol.wave.federation.FederationErrorProto.FederationError;
 import org.waveprotocol.wave.federation.FederationErrors;
 import 
org.waveprotocol.wave.federation.xmpp.MockOutgoingPacketTransport.Router;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
@@ -61,8 +64,6 @@ public class RoundTripTest extends TestCase {
   private static final String SERVER2_DOMAIN = "acmewave.com";
 
   private static final int PACKET_TIMEOUT = 10;
-  private static final int DISCO_FAIL_EXPIRY_SECS = 5 * 60;
-  private static final int DISCO_SUCCESS_EXPIRY_SECS = 2 * 60 * 60;
 
   private static class ServerInstances {
     final String jid;
@@ -81,7 +82,12 @@ public class RoundTripTest extends TestCase {
       // 'Real' instantiated classes!
       jid = "wave." + domain;
       transport = new MockOutgoingPacketTransport(router);
-      manager = new XmppManager(host, remote, disco, transport, jid);
+
+      final Map<String, Object> props = new HashMap<>();
+      props.put("federation.xmpp_disco_successful_expiry", "6s");
+      props.put("federation.xmpp_jid", jid);
+      manager = new XmppManager(
+        host, remote, disco, transport, ConfigFactory.parseMap(props));
 
       // Verify manager callback.
       verify(host).setManager(eq(manager));
@@ -184,8 +190,7 @@ public class RoundTripTest extends TestCase {
     // that will never be processed.
     ArgumentCaptor<PacketCallback> server2Callback = 
ArgumentCaptor.forClass(PacketCallback.class);
     verify(server2.disco).processDiscoItemsGet(eq(packet), 
server2Callback.capture());
-    XmppDisco realDisco = new XmppDisco("Some Unchecked Wave Server", 
DISCO_FAIL_EXPIRY_SECS,
-                                        DISCO_SUCCESS_EXPIRY_SECS);
+    XmppDisco realDisco = new XmppDisco(MockDisco.config);
     realDisco.setManager(server2.manager);
     realDisco.processDiscoItemsGet(packet, server2Callback.getValue());
 

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/wave/federation/xmpp/XmppDiscoTest.java
----------------------------------------------------------------------
diff --git a/test/org/waveprotocol/wave/federation/xmpp/XmppDiscoTest.java 
b/test/org/waveprotocol/wave/federation/xmpp/XmppDiscoTest.java
index 9be9588..ef42b67 100644
--- a/test/org/waveprotocol/wave/federation/xmpp/XmppDiscoTest.java
+++ b/test/org/waveprotocol/wave/federation/xmpp/XmppDiscoTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.verifyZeroInteractions;
 
 import com.google.common.collect.Lists;
 
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
 
 import org.dom4j.Element;
@@ -37,7 +38,9 @@ import org.xmpp.packet.Packet;
 import org.xmpp.packet.PacketError;
 import org.joda.time.DateTimeUtils;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -55,7 +58,7 @@ public class XmppDiscoTest extends TestCase {
 
   private static final String DISCO_ITEMS_ID = "disco-items";
   private static final String DISCO_INFO_ID = "disco-info";
-  private static final String SERVER_DESCRIPTION = "Google Wave Server";
+  private static final String SERVER_DESCRIPTION = "Wave in a Box";
 
   // The following JID is intentionally non-Wave.
   private static final String REMOTE_PUBSUB_JID = "pubsub." + REMOTE_DOMAIN;
@@ -88,7 +91,7 @@ public class XmppDiscoTest extends TestCase {
     "\n<iq type=\"result\" id=\""+ DISCO_INFO_ID + "\" from=\"" + LOCAL_JID + 
"\" "
     + "to=\"" + REMOTE_JID + "\">\n"
     + "  <query xmlns=\"http://jabber.org/protocol/disco#info\";>\n"
-    + "    <identity category=\"collaboration\" type=\"google-wave\" "
+    + "    <identity category=\"collaboration\" type=\"apache-wave\" "
     + "name=\"" + SERVER_DESCRIPTION + "\"/>\n"
     + "    <feature 
var=\"http://waveprotocol.org/protocol/0.2/waveserver\"/>\n"
     + "  </query>\n"
@@ -116,10 +119,12 @@ public class XmppDiscoTest extends TestCase {
   @Override
   protected void setUp() throws Exception {
     super.setUp();
-    disco = new XmppDisco(SERVER_DESCRIPTION, DISCO_FAIL_EXPIRY_SECS, 
DISCO_SUCCESS_EXPIRY_SECS);
+    disco = new XmppDisco(MockDisco.config);
     transport = new MockOutgoingPacketTransport();
+    final Map<String, Object> props = new HashMap<>();
+    props.put("federation.xmpp_jid", LOCAL_JID);
     manager = new XmppManager(mock(XmppFederationHost.class), 
mock(XmppFederationRemote.class),
-        disco, transport, LOCAL_JID);
+        disco, transport, 
ConfigFactory.parseMap(props).withFallback(MockDisco.config));
     disco.setManager(manager);
     discoCallback = createMockCallback();
 
@@ -545,8 +550,8 @@ public class XmppDiscoTest extends TestCase {
     if (forWaveJID) {
       response.setFrom(REMOTE_JID);
       query.addElement("identity")
-          .addAttribute("category", XmppDisco.DISCO_INFO_CATEGORY)
-          .addAttribute("type", XmppDisco.DISCO_INFO_TYPE)
+          .addAttribute("category", 
MockDisco.config.getString("federation.disco_info_category"))
+        .addAttribute("type",  
MockDisco.config.getString("federation.disco_info_type"))
           .addAttribute("name", SERVER_DESCRIPTION);
       query.addElement("feature")
           .addAttribute("var", XmppNamespace.NAMESPACE_WAVE_SERVER);
@@ -614,12 +619,15 @@ public class XmppDiscoTest extends TestCase {
    */
   private IQ createDiscoRequest(String namespace) {
     IQ request = new IQ(IQ.Type.get);
-    if (namespace.equals(XmppNamespace.NAMESPACE_DISCO_ITEMS)) {
-      request.setID(DISCO_ITEMS_ID);
-    } else if (namespace.equals(XmppNamespace.NAMESPACE_DISCO_INFO)) {
-      request.setID(DISCO_INFO_ID);
-    } else {
-      throw new IllegalArgumentException();
+    switch (namespace) {
+      case XmppNamespace.NAMESPACE_DISCO_ITEMS:
+        request.setID(DISCO_ITEMS_ID);
+        break;
+      case XmppNamespace.NAMESPACE_DISCO_INFO:
+        request.setID(DISCO_INFO_ID);
+        break;
+      default:
+        throw new IllegalArgumentException();
     }
     request.setTo(LOCAL_JID);
     request.setFrom(REMOTE_JID);

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/wave/federation/xmpp/XmppFederationHostForDomainTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/wave/federation/xmpp/XmppFederationHostForDomainTest.java
 
b/test/org/waveprotocol/wave/federation/xmpp/XmppFederationHostForDomainTest.java
index 6994484..499b692 100644
--- 
a/test/org/waveprotocol/wave/federation/xmpp/XmppFederationHostForDomainTest.java
+++ 
b/test/org/waveprotocol/wave/federation/xmpp/XmppFederationHostForDomainTest.java
@@ -25,6 +25,7 @@ import static org.mockito.Mockito.verify;
 
 import com.google.protobuf.ByteString;
 
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
 
 import org.waveprotocol.wave.federation.ProtocolHashedVersionFactory;
@@ -110,12 +111,15 @@ public class XmppFederationHostForDomainTest extends 
TestCase {
       }
     };
 
-    disco = new MockDisco(null);
+    disco = new MockDisco();
     transport = new MockOutgoingPacketTransport();
     XmppManager manager =
         new XmppManager(mock(XmppFederationHost.class), 
mock(XmppFederationRemote.class),
-                        disco, transport, LOCAL_JID);
-    fedHost = new XmppFederationHostForDomain(REMOTE_DOMAIN, manager, disco, 
LOCAL_JID);
+                        disco, transport, 
ConfigFactory.parseString("federation.xmpp_jid : "
+                                                                      + 
LOCAL_JID));
+    fedHost = new XmppFederationHostForDomain(
+      REMOTE_DOMAIN, manager, disco, 
ConfigFactory.parseString("federation.xmpp_jid : "
+                                                                 + LOCAL_JID));
   }
 
   @Override
@@ -230,7 +234,7 @@ public class XmppFederationHostForDomainTest extends 
TestCase {
    * @param updateCallback result callback
    */
   private void update(WaveletFederationListener.WaveletUpdateCallback 
updateCallback) {
-    fedHost.waveletUpdate(WAVELET_NAME, 
Collections.<ByteString>singletonList(DELTA_BYTESTRING),
+    fedHost.waveletUpdate(WAVELET_NAME, 
Collections.singletonList(DELTA_BYTESTRING),
         null, updateCallback);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-wave/blob/80369760/test/org/waveprotocol/wave/federation/xmpp/XmppFederationRemoteTest.java
----------------------------------------------------------------------
diff --git 
a/test/org/waveprotocol/wave/federation/xmpp/XmppFederationRemoteTest.java 
b/test/org/waveprotocol/wave/federation/xmpp/XmppFederationRemoteTest.java
index 3c19283..63eab47 100644
--- a/test/org/waveprotocol/wave/federation/xmpp/XmppFederationRemoteTest.java
+++ b/test/org/waveprotocol/wave/federation/xmpp/XmppFederationRemoteTest.java
@@ -19,45 +19,40 @@
 
 package org.waveprotocol.wave.federation.xmpp;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-
 import com.google.common.collect.ImmutableList;
 import com.google.protobuf.ByteString;
-
+import com.typesafe.config.ConfigFactory;
 import junit.framework.TestCase;
-
 import org.dom4j.Element;
 import org.mockito.ArgumentCaptor;
-import org.waveprotocol.wave.federation.ProtocolHashedVersionFactory;
-import org.waveprotocol.wave.federation.WaveletFederationListener;
-import org.waveprotocol.wave.federation.WaveletFederationProvider;
 import org.waveprotocol.wave.federation.FederationErrorProto.FederationError;
 import org.waveprotocol.wave.federation.Proto.ProtocolHashedVersion;
 import org.waveprotocol.wave.federation.Proto.ProtocolSignedDelta;
 import org.waveprotocol.wave.federation.Proto.ProtocolSignerInfo;
+import org.waveprotocol.wave.federation.ProtocolHashedVersionFactory;
+import org.waveprotocol.wave.federation.WaveletFederationListener;
 import 
org.waveprotocol.wave.federation.WaveletFederationListener.WaveletUpdateCallback;
+import org.waveprotocol.wave.federation.WaveletFederationProvider;
 import 
org.waveprotocol.wave.federation.WaveletFederationProvider.DeltaSignerInfoResponseListener;
 import 
org.waveprotocol.wave.federation.WaveletFederationProvider.HistoryResponseListener;
 import 
org.waveprotocol.wave.federation.WaveletFederationProvider.PostSignerInfoResponseListener;
 import 
org.waveprotocol.wave.federation.WaveletFederationProvider.SubmitResultListener;
+import org.waveprotocol.wave.model.id.URIEncoderDecoder.EncodingException;
 import org.waveprotocol.wave.model.id.WaveId;
 import org.waveprotocol.wave.model.id.WaveletId;
 import org.waveprotocol.wave.model.id.WaveletName;
-import org.waveprotocol.wave.model.id.URIEncoderDecoder.EncodingException;
 import org.xmpp.packet.IQ;
 import org.xmpp.packet.Message;
 import org.xmpp.packet.PacketError;
 
 import java.util.List;
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.*;
+
 /**
  * Tests for {@link XmppFederationRemote}.
  *
@@ -167,12 +162,15 @@ public class XmppFederationRemoteTest extends TestCase {
         .thenReturn(mockUpdateListener);
 
     // Create mockDisco. It wants an XmppManager, but we don't need to set it 
here.
-    disco = new MockDisco("irrelevant");
+    disco = new MockDisco();
 
     transport = new MockOutgoingPacketTransport();
-    remote = new XmppFederationRemote(mockUpdateListenerFactory, disco, 
LOCAL_JID);
-    host = new XmppFederationHost(mockProvider, disco, REMOTE_JID);
-    manager = new XmppManager(host, remote, disco, transport, LOCAL_JID);
+    remote = new XmppFederationRemote(mockUpdateListenerFactory, disco,
+               ConfigFactory.parseString("federation.xmpp_jid : " + 
LOCAL_JID));
+    host = new XmppFederationHost(mockProvider, disco,
+             ConfigFactory.parseString("federation.xmpp_jid : " + REMOTE_JID));
+    manager = new XmppManager(host, remote, disco, transport,
+                ConfigFactory.parseString("federation.xmpp_jid : " + 
LOCAL_JID));
 
     remote.setManager(manager);
   }

Reply via email to