Author: hsaputra Date: Tue Aug 30 19:25:20 2011 New Revision: 1163344 URL: http://svn.apache.org/viewvc?rev=1163344&view=rev Log: SHINDIG-1604 | Inject Authority object instead of injecting the BasicAuthorityProvider itself
CR: https://reviews.apache.org/r/1676/ Added: shindig/trunk/java/common/src/test/java/org/apache/shindig/common/servlet/BasicAuthorityTest.java Modified: shindig/trunk/content/samplecontainer/examples/commoncontainer/assembler.js shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/BasicAuthority.java shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/BasicAuthorityProvider.java shindig/trunk/java/common/src/test/java/org/apache/shindig/common/servlet/BasicAuthorityProviderTest.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultServiceFetcher.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java Modified: shindig/trunk/content/samplecontainer/examples/commoncontainer/assembler.js URL: http://svn.apache.org/viewvc/shindig/trunk/content/samplecontainer/examples/commoncontainer/assembler.js?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/content/samplecontainer/examples/commoncontainer/assembler.js (original) +++ shindig/trunk/content/samplecontainer/examples/commoncontainer/assembler.js Tue Aug 30 19:25:20 2011 @@ -19,7 +19,7 @@ // url base should be <host>:<port>//<contextRoot> var urlBase = location.href.substr(0, location.href.indexOf('/samplecontainer/examples/commoncontainer/')); -var contextRoot = urlBase.substr(urlBase.indexOf(location.port) + location.port.length); +var contextRoot = urlBase.substr(urlBase.indexOf(location.host) + location.host.length); var testConfig = testConfig || {}; testConfig[osapi.container.ServiceConfig.API_PATH] = contextRoot + '/rpc'; Modified: shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/BasicAuthority.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/BasicAuthority.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/BasicAuthority.java (original) +++ shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/BasicAuthority.java Tue Aug 30 19:25:20 2011 @@ -17,40 +17,35 @@ */ package org.apache.shindig.common.servlet; -import org.apache.shindig.common.Nullable; -import org.apache.shindig.common.servlet.ServletRequestContext; - -import com.google.inject.Inject; -import com.google.inject.name.Named; - import com.google.common.base.Joiner; import com.google.common.base.Objects; -import com.google.common.base.Strings; +import com.google.inject.Inject; +import com.google.inject.name.Named; +import org.apache.commons.lang.StringUtils; +import org.apache.shindig.common.Nullable; /** * Basic implementation for Authority Interface. * * Authority information is calculated based on following procedure. - * 1. Optionally default host and default port can be provided as ServletContext Parameters in web.xml. Once it's provided, - * default host and default port are used to construct authority information. - * 2. If default host and default port are not provided, host and port from current HttpServletRequest will be used if available. - * 3. If HttpServletRequest is not available, jetty host/port will be used. This is required for junit tests. + * 1. Optionally default host and default port can be provided as ServletContext Parameters in web.xml. + * Once it's provided, default host and default port are used to construct authority information. + * 2. If default host and default port are not provided, host and port from current HttpServletRequest + * will be used if available. + * 3. If HttpServletRequest is not available, jetty host/port will be used. + * This is required for junit tests. */ public class BasicAuthority implements Authority { - private String host; - private String port; + private final String host; + private final String port; public final static String JETTY_HOST = "jetty.host"; public final static String JETTY_PORT = "jetty.port"; @Inject public BasicAuthority(@Nullable @Named("shindig.host") String defaultHost, @Nullable @Named("shindig.port") String defaultPort) { - if (!Strings.isNullOrEmpty(defaultHost)) { - this.host = defaultHost; - } - if (!Strings.isNullOrEmpty(defaultPort)) { - this.port = defaultPort; - } + this.host = StringUtils.isNotBlank(defaultHost) ? defaultHost : null; + this.port = StringUtils.isNotBlank(defaultPort) ? defaultPort : null; } public String getAuthority() { Added: shindig/trunk/java/common/src/test/java/org/apache/shindig/common/servlet/BasicAuthorityTest.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/servlet/BasicAuthorityTest.java?rev=1163344&view=auto ============================================================================== --- shindig/trunk/java/common/src/test/java/org/apache/shindig/common/servlet/BasicAuthorityTest.java (added) +++ shindig/trunk/java/common/src/test/java/org/apache/shindig/common/servlet/BasicAuthorityTest.java Tue Aug 30 19:25:20 2011 @@ -0,0 +1,56 @@ +/* + * 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.shindig.common.servlet; + +import org.apache.shindig.common.EasyMockTestCase; + +import org.junit.Test; + +/** + * Simple test for BasicAuthority. + */ +public class BasicAuthorityTest extends EasyMockTestCase { + + @Test + public void testBasicAuthorityWorks() { + String host = "myhost"; + String port = "9080"; + BasicAuthority authority = new BasicAuthority(host,port); + assertEquals( "myhost:9080", authority.getAuthority()); + } + + @Test + public void testDefaultHostAndPort() { + String host = ""; + String port = ""; + BasicAuthority authority = new BasicAuthority(host,port); + assertEquals("localhost:8080", authority.getAuthority()); + } + + @Test + public void testJettyHostAndPort() { + String host = ""; + String port = ""; + System.setProperty("jetty.host", "localhost"); + System.setProperty("jetty.port", "9003"); + BasicAuthority authority = new BasicAuthority(host,port); + assertEquals("localhost:9003", authority.getAuthority() ); + System.clearProperty("jetty.host"); + System.clearProperty("jetty.port"); + } +} Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGuiceModule.java Tue Aug 30 19:25:20 2011 @@ -29,6 +29,7 @@ import com.google.inject.multibindings.M import com.google.inject.name.Named; import com.google.inject.name.Names; +import org.apache.shindig.common.servlet.BasicAuthority; import org.apache.shindig.common.servlet.GuiceServletContextListener; import org.apache.shindig.gadgets.config.DefaultConfigContributorModule; import org.apache.shindig.gadgets.http.AbstractHttpCache; @@ -47,7 +48,6 @@ import org.apache.shindig.gadgets.uri.Pr import org.apache.shindig.gadgets.uri.UriModule; import org.apache.shindig.common.servlet.Authority; -import org.apache.shindig.common.servlet.BasicAuthorityProvider; import org.apache.shindig.gadgets.variables.SubstituterModule; @@ -70,7 +70,7 @@ public class DefaultGuiceModule extends bind(ExecutorService.class).to(ShindigExecutorService.class); bind(Executor.class).annotatedWith(Names.named("shindig.concat.executor")).to(ShindigExecutorService.class); - bind(Authority.class).toProvider(BasicAuthorityProvider.class); + bind(Authority.class).to(BasicAuthority.class); bindConstant().annotatedWith(Names.named("shindig.jsload.ttl-secs")).to(60 * 60); // 1 hour bindConstant().annotatedWith(Names.named("shindig.jsload.require-onload-with-jsload")).to(true); Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/BasicOAuthStore.java Tue Aug 30 19:25:20 2011 @@ -89,7 +89,7 @@ public class BasicOAuthStore implements /** Number of times we removed an access token */ private int accessTokenRemoveCount = 0; - private Provider<Authority> hostProvider; + private Authority authority; public BasicOAuthStore() { consumerInfos = Maps.newHashMap(); @@ -165,8 +165,8 @@ public class BasicOAuthStore implements consumerInfos.put(providerKey, keyAndSecret); } - public void setHostProvider( Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } public ConsumerInfo getConsumerKeyAndSecret( @@ -198,8 +198,8 @@ public class BasicOAuthStore implements } String callback = (cks.getCallbackUrl() != null ? cks.getCallbackUrl() : defaultCallbackUrl); - if (hostProvider != null) { - callback = callback.replace("%authority%", hostProvider.get().getAuthority()); + if (authority != null) { + callback = callback.replace("%authority%", authority.getAuthority()); } return new ConsumerInfo(consumer, cks.getKeyName(), callback); Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthModule.java Tue Aug 30 19:25:20 2011 @@ -120,11 +120,11 @@ public class OAuthModule extends Abstrac @Named(OAUTH_SIGNING_KEY_FILE) String signingKeyFile, @Named(OAUTH_SIGNING_KEY_NAME) String signingKeyName, @Named(OAUTH_CALLBACK_URL) String defaultCallbackUrl, - Provider<Authority> hostProvider) { + Authority authority) { store = new BasicOAuthStore(); loadDefaultKey(signingKeyFile, signingKeyName); store.setDefaultCallbackUrl(defaultCallbackUrl); - store.setHostProvider(hostProvider); + store.setAuthority(authority); loadConsumers(); } Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultServiceFetcher.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultServiceFetcher.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultServiceFetcher.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultServiceFetcher.java Tue Aug 30 19:25:20 2011 @@ -43,8 +43,6 @@ import com.google.common.collect.Immutab import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import com.google.inject.Inject; -import com.google.inject.Provider; - /** * Retrieves the rpc services for a container by fetching them from the container's @@ -73,7 +71,7 @@ public class DefaultServiceFetcher { private final HttpFetcher fetcher; - private Provider<Authority> hostProvider; + private Authority authority; /** @param config Container Config for looking up endpoints */ @Inject @@ -83,8 +81,8 @@ public class DefaultServiceFetcher { } @Inject(optional = true) - public void setHostProvider( Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } /** @@ -114,13 +112,12 @@ public class DefaultServiceFetcher { // Merge services lazily loaded from the endpoints if any List<String> endpoints = getEndpointsFromContainerConfig(container, host); for (String endpoint : endpoints) { - String endpointVal = endpoint; - if ( endpoint.startsWith("//") && hostProvider != null ){ - endpointVal = hostProvider.get().getScheme() + ":" + endpoint; + String endpointVal = endpoint; + if ( endpoint.startsWith("//") && authority != null ){ + endpointVal = authority.getScheme() + ":" + endpoint; } endpointServices.putAll(endpoint, retrieveServices(endpointVal.replace("%host%", host))); } - return ImmutableMultimap.copyOf(endpointServices); } Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java Tue Aug 30 19:25:20 2011 @@ -21,7 +21,6 @@ package org.apache.shindig.gadgets.uri; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.name.Named; import org.apache.commons.lang.StringEscapeUtils; @@ -56,7 +55,7 @@ public class DefaultConcatUriManager imp private final ContainerConfig config; private final Versioner versioner; private boolean strictParsing; - private Provider<Authority> hostProvider; + private Authority authority; private static int DEFAULT_URL_MAX_LENGTH = 2048; private int urlMaxLength = DEFAULT_URL_MAX_LENGTH; private static final float URL_LENGTH_BUFFER_MARGIN = .8f; @@ -80,8 +79,8 @@ public class DefaultConcatUriManager imp } @Inject(optional = true) - public void setHostProvider(Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } public int getUrlMaxLength() { @@ -232,8 +231,8 @@ public class DefaultConcatUriManager imp throw new RuntimeException( "Missing required config '" + key + "' for container: " + container); } - if (hostProvider != null) { - val = val.replace("%authority%", hostProvider.get().getAuthority()); + if (authority != null) { + val = val.replace("%authority%", authority.getAuthority()); } return val; Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultIframeUriManager.java Tue Aug 30 19:25:20 2011 @@ -21,7 +21,6 @@ package org.apache.shindig.gadgets.uri; import com.google.common.collect.ImmutableList; import com.google.inject.ImplementedBy; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.name.Named; import org.apache.commons.lang.StringUtils; @@ -60,7 +59,7 @@ public class DefaultIframeUriManager imp private boolean ldEnabled = true; private TemplatingSignal tplSignal = null; private Versioner versioner = null; - private Provider<Authority> hostProvider; + private Authority authority; private final ContainerConfig config; private final LockedDomainPrefixGenerator ldGen; @@ -108,8 +107,8 @@ public class DefaultIframeUriManager imp } @Inject(optional = true) - public void setHostProvider( Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } public Uri makeRenderingUri(Gadget gadget) { @@ -356,8 +355,8 @@ public class DefaultIframeUriManager imp throw new RuntimeException("Missing required container config param, key: " + key + ", container: " + container); } - if (hostProvider != null) { - val = val.replace("%authority%", hostProvider.get().getAuthority()); + if (authority != null) { + val = val.replace("%authority%", authority.getAuthority()); } return val; Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultJsUriManager.java Tue Aug 30 19:25:20 2011 @@ -22,7 +22,6 @@ import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import com.google.inject.Inject; -import com.google.inject.Provider; import org.apache.shindig.common.uri.Uri; import org.apache.shindig.common.uri.UriBuilder; @@ -54,7 +53,7 @@ public class DefaultJsUriManager impleme private final ContainerConfig config; private final Versioner versioner; - private Provider<Authority> hostProvider; + private Authority authority; @Inject public DefaultJsUriManager(ContainerConfig config, Versioner versioner) { @@ -63,8 +62,8 @@ public class DefaultJsUriManager impleme } @Inject(optional = true) - public void setHostProvider(Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } public Uri makeExternJsUri(JsUri ctx) { @@ -232,8 +231,8 @@ public class DefaultJsUriManager impleme "' missing config for required param: " + key); } } - if (hostProvider != null) { - ret = ret.replace("%authority%", hostProvider.get().getAuthority()); + if (authority != null) { + ret = ret.replace("%authority%", authority.getAuthority()); } return ret; } Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java (original) +++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultProxyUriManager.java Tue Aug 30 19:25:20 2011 @@ -22,7 +22,6 @@ import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.name.Named; import org.apache.commons.lang.StringUtils; @@ -75,7 +74,7 @@ public class DefaultProxyUriManager impl private final ContainerConfig config; private final Versioner versioner; private boolean strictParsing = false; - private Provider<Authority> hostProvider; + private Authority authority; @Inject public DefaultProxyUriManager(ContainerConfig config, @@ -90,8 +89,8 @@ public class DefaultProxyUriManager impl } @Inject(optional = true) - public void setHostProvider(Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } public List<Uri> make(List<ProxyUri> resources, Integer forcedRefresh) { @@ -288,9 +287,9 @@ public class DefaultProxyUriManager impl throw new RuntimeException("Missing required container config key: " + key + " for " + "container: " + container); } - if (hostProvider != null) { - val = val.replace("%authority%", hostProvider.get().getAuthority()); - }else{ + if (authority != null) { + val = val.replace("%authority%", authority.getAuthority()); + } else{ //require this for test purpose, %host% needs to be replaced with default value eg. StyleTagProxyEmbeddedUrlsVisitorTest if (val.contains("%authority%")) { val = val.replace("%authority%", "localhost:8080"); Modified: shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java URL: http://svn.apache.org/viewvc/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java?rev=1163344&r1=1163343&r2=1163344&view=diff ============================================================================== --- shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java (original) +++ shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/sample/spi/JsonDbOpensocialService.java Tue Aug 30 19:25:20 2011 @@ -64,7 +64,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.Singleton; import com.google.inject.name.Named; @@ -138,7 +137,7 @@ public class JsonDbOpensocialService imp */ private static final String ACTIVITYSTREAMS_TABLE = "activityEntries"; - private Provider<Authority> hostProvider; + private Authority authority; /** * Initializes the JsonDbOpensocialService using Guice @@ -173,10 +172,10 @@ public class JsonDbOpensocialService imp public void setDb(JSONObject db) { this.db = db; } - + @Inject(optional = true) - public void setHostProvider(Provider<Authority> hostProvider) { - this.hostProvider = hostProvider; + public void setAuthority(Authority authority) { + this.authority = authority; } /** {@inheritDoc} */ @@ -1381,9 +1380,9 @@ public class JsonDbOpensocialService imp .size()])); } String objectVal = object.toString(); - if (hostProvider != null) { - objectVal = objectVal.replace("%origin%", hostProvider.get().getOrigin()); - } else { + if (authority != null) { + objectVal = objectVal.replace("%origin%", authority.getOrigin()); + } else { //provide default for junit tests objectVal = objectVal.replace("%origin%", "http://localhost:8080"); }
