Author: hsaputra
Date: Thu Jul 26 22:16:44 2012
New Revision: 1366211
URL: http://svn.apache.org/viewvc?rev=1366211&view=rev
Log:
Introduce ServiceFetcher interface to allow easy injection and customizaton for
RPC service fetcher.
Added:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/ServiceFetcher.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultServiceFetcher.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java?rev=1366211&r1=1366210&r2=1366211&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
Thu Jul 26 22:16:44 2012
@@ -48,14 +48,14 @@ public class DefaultRpcServiceLookup imp
private final Cache<String, Multimap<String, String>> containerServices;
- private final DefaultServiceFetcher fetcher;
+ private final ServiceFetcher fetcher;
/**
* @param fetcher RpcServiceFetcher to retrieve services available from
endpoints
* @param duration in seconds service definitions should remain in the cache
*/
@Inject
- public DefaultRpcServiceLookup(DefaultServiceFetcher fetcher,
+ public DefaultRpcServiceLookup(ServiceFetcher fetcher,
@Named("org.apache.shindig.serviceExpirationDurationMinutes")Long
duration) {
this.containerServices = CacheBuilder.newBuilder()
.expireAfterWrite(duration * 60, TimeUnit.SECONDS)
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=1366211&r1=1366210&r2=1366211&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
Thu Jul 26 22:16:44 2012
@@ -56,10 +56,10 @@ import java.util.logging.Level;
import java.util.logging.Logger;
/**
- * Retrieves the rpc services for a container by fetching them from the
container's
- * system.listMethods endpoints as defined in the container config.
+ * Default implementation for the ServiceFetcher the rpc services for a
container by fetching
+ * them from the container's system.listMethods endpoints as defined in the
container config.
*/
-public class DefaultServiceFetcher {
+public class DefaultServiceFetcher implements ServiceFetcher {
//class name for logging purpose
private static final String classname =
DefaultServiceFetcher.class.getName();
@@ -139,7 +139,7 @@ public class DefaultServiceFetcher {
}
@SuppressWarnings("unchecked")
- private List<String> getEndpointsFromContainerConfig(String container,
String host) {
+ protected List<String> getEndpointsFromContainerConfig(String container,
String host) {
Map<String, Object> properties = (Map<String, Object>)
containerConfig.getMap(container,
GADGETS_FEATURES_CONFIG).get(OSAPI_FEATURE_CONFIG);
@@ -149,7 +149,7 @@ public class DefaultServiceFetcher {
return ImmutableList.of();
}
- private Set<String> retrieveServices(String container, String endpoint) {
+ protected Set<String> retrieveServices(String container, String endpoint) {
try {
StringBuilder sb = new StringBuilder( 250 );
sb.append(endpoint).append( "?method=" + SYSTEM_LIST_METHODS_METHOD );
@@ -186,7 +186,7 @@ public class DefaultServiceFetcher {
return ImmutableSet.of();
}
- private Set<String> getServicesFromJsonResponse(String content)
+ protected Set<String> getServicesFromJsonResponse(String content)
throws JSONException {
ImmutableSet.Builder<String> services = ImmutableSet.builder();
JSONObject js = new JSONObject(content);
Added:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/ServiceFetcher.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/ServiceFetcher.java?rev=1366211&view=auto
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/ServiceFetcher.java
(added)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/ServiceFetcher.java
Thu Jul 26 22:16:44 2012
@@ -0,0 +1,30 @@
+/*
+ * 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.gadgets.render;
+
+import com.google.common.collect.Multimap;
+import com.google.inject.ImplementedBy;
+
+/**
+ * Retrieves the rpc services for a container.
+ */
+@ImplementedBy(DefaultServiceFetcher.class)
+public interface ServiceFetcher {
+ Multimap<String, String> getServicesForContainer(String container, String
host);
+}