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;
}