You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by lr...@apache.org on 2009/05/01 20:34:02 UTC

svn commit: r770784 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/render/ test/java/org/apache/shindig/gadgets/render/

Author: lryan
Date: Fri May  1 18:34:02 2009
New Revision: 770784

URL: http://svn.apache.org/viewvc?rev=770784&view=rev
Log:
Make RpcServiceLookup an interface.

Added:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java
      - copied, changed from r770547, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookupTest.java
      - copied, changed from r770547, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RpcServiceLookupTest.java

Copied: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java (from r770547, incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java?p2=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java&p1=incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java&r1=770547&r2=770784&rev=770784&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookup.java Fri May  1 18:34:02 2009
@@ -42,7 +42,7 @@
  * ... } }, container 2 : ..... }
  */
 @Singleton
-public class RpcServiceLookup {
+public class DefaultRpcServiceLookup implements RpcServiceLookup {
 
   private final ConcurrentMap<String, Multimap<String, String>> containerServices;
 
@@ -53,7 +53,7 @@
    * @param duration in seconds service definitions should remain in the cache
    */
   @Inject
-  public RpcServiceLookup(RpcServiceFetcher fetcher,
+  public DefaultRpcServiceLookup(RpcServiceFetcher fetcher,
       @Named("org.apache.shindig.serviceExpirationDurationMinutes")Long duration) {
     containerServices = new MapMaker().expiration(duration * 60, TimeUnit.SECONDS).makeMap();
     this.fetcher = fetcher;

Added: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java?rev=770784&view=auto
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java (added)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RpcServiceLookup.java Fri May  1 18:34:02 2009
@@ -0,0 +1,47 @@
+/*
+ * 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;
+
+/**
+ * Provide information about the set of JSON-RPC services that are available to gadgets running in
+ * the context of a specific container
+ */
+@ImplementedBy(DefaultRpcServiceLookup.class)
+public interface RpcServiceLookup {
+  /**
+   * This result map is a map of the form
+   * { endpoint1 -> [services]}, endpoint2 -> [services]}
+   *
+   * Services are described using the names expected as a result of JSON-RPC call
+   * to system.listMethods
+   *
+   * When a gadget is rendered the container data is mapped into gadgets.config and used to
+   * initialize osapi, which typically results in output that looks like
+   *
+   * { "osapi.services" : { "http://.../endpoint1" : ["system.listMethods", "people.get", "people.create",
+   * "people.delete"], ... }, "http://.../endpoint2" : { "system.listMethods", "cache.invalidate"],
+   * ... } }}
+   * @param container
+   * @param host
+   * @return
+   */
+  Multimap<String, String> getServicesFor(String container, String host);
+}

Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookupTest.java (from r770547, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RpcServiceLookupTest.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookupTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookupTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RpcServiceLookupTest.java&r1=770547&r2=770784&rev=770784&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RpcServiceLookupTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/DefaultRpcServiceLookupTest.java Fri May  1 18:34:02 2009
@@ -29,16 +29,16 @@
 
 import org.apache.shindig.gadgets.http.BasicHttpFetcher;
 
-public class RpcServiceLookupTest extends TestCase {
+public class DefaultRpcServiceLookupTest extends TestCase {
   
-  private RpcServiceLookup svcLookup;
+  private DefaultRpcServiceLookup svcLookup;
   private String socialEndpoint;
   private String host;
 
   @Override
   protected void setUp() throws Exception {
     super.setUp();
-    svcLookup = new RpcServiceLookup(new RpcServiceFetcher(null, new BasicHttpFetcher()), 60l);
+    svcLookup = new DefaultRpcServiceLookup(new RpcServiceFetcher(null, new BasicHttpFetcher()), 60l);
     socialEndpoint = "http://localhost:8080/social/rpc";
     host = "localhost:8080";
   }