You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/05/06 12:04:48 UTC

svn commit: r653729 - in /incubator/shindig/trunk/java: server/src/main/webapp/WEB-INF/ social-api/src/main/java/org/apache/shindig/social/ social-api/src/main/java/org/apache/shindig/social/abdera/

Author: doll
Date: Tue May  6 03:04:44 2008
New Revision: 653729

URL: http://svn.apache.org/viewvc?rev=653729&view=rev
Log:
SHINDIG-236
Based on patch from David Primmer. Moves the SocialApiProvider into the abdera subpackage. Cleans up the restful part of the web.xml files.


Added:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/SocialApiProvider.java
      - copied, changed from r653724, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiProvider.java
Removed:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiProvider.java
Modified:
    incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.full.xml
    incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.social.xml
    incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java

Modified: incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.full.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.full.xml?rev=653729&r1=653728&r2=653729&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.full.xml (original)
+++ incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.full.xml Tue May  6 03:04:44 2008
@@ -71,6 +71,19 @@
     <servlet-class>org.apache.shindig.gadgets.http.JsServlet</servlet-class>
   </servlet>
 
+  <!-- Serve REST api -->
+  <servlet>
+    <servlet-name>restapiServlet</servlet-name>
+    <servlet-class>
+      org.apache.shindig.social.RestServerServlet
+    </servlet-class>
+    <init-param>
+      <param-name>org.apache.abdera.protocol.server.Provider</param-name>
+      <param-value>org.apache.shindig.social.abdera.SocialApiProvider
+      </param-value>
+    </init-param>
+  </servlet>
+
   <servlet-mapping>
     <servlet-name>js</servlet-name>
     <url-pattern>/gadgets/js/*</url-pattern>
@@ -95,4 +108,9 @@
     <servlet-name>socialdata</servlet-name>
     <url-pattern>/social/data</url-pattern>
   </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>restapiServlet</servlet-name>
+    <url-pattern>/social/rest/*</url-pattern>
+  </servlet-mapping>
 </web-app>

Modified: incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.social.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.social.xml?rev=653729&r1=653728&r2=653729&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.social.xml (original)
+++ incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.social.xml Tue May  6 03:04:44 2008
@@ -33,7 +33,6 @@
     <listener-class>org.apache.shindig.gadgets.http.GuiceServletContextListener</listener-class>
   </listener>
 
-
   <!-- Serve social data -->
   <servlet>
     <servlet-name>socialdata</servlet-name>
@@ -42,8 +41,25 @@
     </servlet-class>
   </servlet>
 
+  <!-- Serve REST api -->
+  <servlet>
+    <servlet-name>restapiServlet</servlet-name>
+    <servlet-class>
+      org.apache.shindig.social.RestServerServlet
+    </servlet-class>
+    <init-param>
+      <param-name>org.apache.abdera.protocol.server.Provider</param-name>
+      <param-value>org.apache.shindig.social.abdera.SocialApiProvider</param-value>
+    </init-param>
+  </servlet>
+
   <servlet-mapping>
     <servlet-name>socialdata</servlet-name>
     <url-pattern>/social/data</url-pattern>
   </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>restapiServlet</servlet-name>
+    <url-pattern>/social/rest/*</url-pattern>
+  </servlet-mapping>
 </web-app>

Modified: incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml?rev=653729&r1=653728&r2=653729&view=diff
==============================================================================
--- incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/shindig/trunk/java/server/src/main/webapp/WEB-INF/web.xml Tue May  6 03:04:44 2008
@@ -79,11 +79,10 @@
     </servlet-class>
     <init-param>
       <param-name>org.apache.abdera.protocol.server.Provider</param-name>
-      <param-value>org.apache.shindig.social.SocialApiProvider</param-value>
+      <param-value>org.apache.shindig.social.abdera.SocialApiProvider</param-value>
     </init-param>
   </servlet>
 
-
   <servlet-mapping>
     <servlet-name>js</servlet-name>
     <url-pattern>/gadgets/js/*</url-pattern>

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java?rev=653729&r1=653728&r2=653729&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/RestServerServlet.java Tue May  6 03:04:44 2008
@@ -18,41 +18,40 @@
  */
 package org.apache.shindig.social;
 
-import com.google.inject.Injector;
+import org.apache.shindig.gadgets.http.GuiceServletContextListener;
 
+import com.google.inject.Injector;
 import org.apache.abdera.protocol.server.Provider;
 import org.apache.abdera.protocol.server.servlet.AbderaServlet;
-import org.apache.shindig.gadgets.http.GuiceServletContextListener;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.logging.Logger;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.UnavailableException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.logging.Logger;
 
 /**
  * Superclass for all servlets related to processing of REST api.
  * The reason for its existence is to init Guice Injection.
- * Since this has AbderaServlet to extend Abdera Servlet, 
- * it cannot extend InjectedServlet like GadgetDataServlet does. 
- * 
+ * Since this has AbderaServlet to extend Abdera Servlet,
+ * it cannot extend InjectedServlet like GadgetDataServlet does.
+ *
  * Injection is also a little different because of Abdera is in the middle.
- * instead of injecting (this) as the GadgetServlet does, 
+ * instead of injecting (this) as the GadgetServlet does,
  * here the Provider is injected.
  */
 public class RestServerServlet extends AbderaServlet {
-  private static Logger logger = 
+  private static Logger logger =
       Logger.getLogger(RestServerServlet.class.getName());
-  
+
   @Override public void init() {
     // Abdera provider stuff
     manager = createServiceManager();
     provider = createProvider();
   }
-  
+
   @Override
   protected Provider createProvider() {
     Provider provider = manager.newProvider(getProperties(getServletConfig()));
@@ -65,8 +64,8 @@
     }
     return provider;
   }
-  
-  protected void initGuice(ServletConfig config, Provider provider) 
+
+  protected void initGuice(ServletConfig config, Provider provider)
       throws ServletException {
     ServletContext context = config.getServletContext();
     Injector injector = (Injector)

Copied: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/SocialApiProvider.java (from r653724, incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiProvider.java)
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/SocialApiProvider.java?p2=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/SocialApiProvider.java&p1=incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiProvider.java&r1=653724&r2=653729&rev=653729&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiProvider.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/abdera/SocialApiProvider.java Tue May  6 03:04:44 2008
@@ -15,81 +15,76 @@
  * copyright in this work, please see the NOTICE file in the top level
  * directory of this distribution.
  */
-package org.apache.shindig.social;
+package org.apache.shindig.social.abdera;
 
 import com.google.inject.Inject;
 import com.google.inject.Provider;
-
 import org.apache.abdera.protocol.server.TargetType;
 import org.apache.abdera.protocol.server.impl.DefaultProvider;
 import org.apache.abdera.protocol.server.impl.RouteManager;
-import org.apache.shindig.social.abdera.ActivitiesServiceAdapter;
-import org.apache.shindig.social.abdera.PeopleServiceAdapter;
 
 public class SocialApiProvider extends DefaultProvider {
   //TODO why is this hardcoded here. can't this be from servletContext?
   private static final String BASE = "/social/rest/";
   private static final String ROUTENAME_NOT_USED = "not_used_right_now";
-  private PeopleServiceAdapter peopleAdapter;
-  private ActivitiesServiceAdapter activitiesAdapter;
 
   private Provider<PeopleServiceAdapter> peopleAdapterProvider;
+  private Provider<ActivitiesServiceAdapter> activitiesAdapterProvider;
+
   @Inject
-  public void setPeopleAdapter(
-      Provider<PeopleServiceAdapter> peopleAdapterProvider) {
+  public void setPeopleAdapter(Provider<PeopleServiceAdapter>
+      peopleAdapterProvider) {
     this.peopleAdapterProvider = peopleAdapterProvider;
   }
-  private Provider<ActivitiesServiceAdapter> activitiesAdapterProvider;
+
   @Inject
-  public void setActivitiesAdapter(
-      Provider<ActivitiesServiceAdapter> activitiesAdapterProvider) {
+  public void setActivitiesAdapter(Provider<ActivitiesServiceAdapter>
+      activitiesAdapterProvider) {
     this.activitiesAdapterProvider = activitiesAdapterProvider;
   }
-  
-  public SocialApiProvider() {
-  }
-  
+
   public void initialize() {
-    peopleAdapter = peopleAdapterProvider.get();
-    activitiesAdapter = activitiesAdapterProvider.get();
-    
+    PeopleServiceAdapter peopleAdapter = peopleAdapterProvider.get();
+    ActivitiesServiceAdapter activitiesAdapter
+        = activitiesAdapterProvider.get();
+
     // Add the RouteManager that parses incoming and builds outgoing URLs
     routeManager = new RouteManager()
-    
-      //Collection of all people connected to user {uid} 
+
+      // Collection of all people connected to user {uid}
       // /people/{uid}/@all
       .addRoute(ROUTENAME_NOT_USED,
-            BASE + "people/:uid/@all", 
-            TargetType.TYPE_COLLECTION, 
-            peopleAdapter)
-
-      //Individual person record. /people/{uid}/@all/{pid}
-      .addRoute(ROUTENAME_NOT_USED, 
-          BASE + "people/:uid/@all/:pid", 
-          TargetType.TYPE_ENTRY, 
+            BASE + "people/:uid/@all",
+            TargetType.TYPE_COLLECTION,
           peopleAdapter)
-    
-      //Self Profile record for user {uid} /people/{uid}/@self
-      .addRoute(ROUTENAME_NOT_USED, 
-          BASE + "people/:uid/@self", 
-          TargetType.TYPE_ENTRY, 
+
+      // Individual person record. /people/{uid}/@all/{pid}
+      .addRoute(ROUTENAME_NOT_USED,
+          BASE + "people/:uid/@all/:pid",
+          TargetType.TYPE_ENTRY,
+          peopleAdapter)
+
+      // Self Profile record for user {uid} /people/{uid}/@self
+      .addRoute(ROUTENAME_NOT_USED,
+          BASE + "people/:uid/@self",
+          TargetType.TYPE_ENTRY,
           peopleAdapter)
 
-      //Activities
-      //Collection of activities for given user /activities/{uid}/@self  
-      .addRoute(ROUTENAME_NOT_USED, 
-          BASE + "activities/:uid/@self", 
-          TargetType.TYPE_COLLECTION, 
+      // Activities
+      // Collection of activities for given user /activities/{uid}/@self
+      .addRoute(ROUTENAME_NOT_USED,
+          BASE + "activities/:uid/@self",
+          TargetType.TYPE_COLLECTION,
           activitiesAdapter)
-         
-      //Individual activity resource; usually discovered from collection
+
+      // Individual activity resource; usually discovered from collection
       // /activities/{uid}/@self/{aid}
-      .addRoute(ROUTENAME_NOT_USED, 
-          BASE + "activities/:uid/@self/:aid", 
-          TargetType.TYPE_ENTRY, 
+      .addRoute(ROUTENAME_NOT_USED,
+          BASE + "activities/:uid/@self/:aid",
+          TargetType.TYPE_ENTRY,
           activitiesAdapter)
-    ;    
-      
+    ;
+
     targetBuilder = routeManager;
     targetResolver = routeManager;
   }