Author: lindner
Date: Wed Mar 19 14:05:26 2008
New Revision: 639018
URL: http://svn.apache.org/viewvc?rev=639018&view=rev
Log:
Apply Patch from Changshin Lee for SHINDIG-137
- Allow web.xml customization to allow for custom data handlers for
the socialdata servlet
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java
incubator/shindig/trunk/java/gadgets/src/main/webapp/WEB-INF/web.xml
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java?rev=639018&r1=639017&r2=639018&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/GadgetDataServlet.java
Wed Mar 19 14:05:26 2008
@@ -59,21 +59,31 @@
= Logger.getLogger("org.apache.shindig.social");
// TODO: get through injection
- private static List<GadgetDataHandler> handlers
+ private static final List<GadgetDataHandler> handlers
= new ArrayList<GadgetDataHandler>();
- static {
- // TODO: Should we just use a map from String type to Handler?
- handlers.add(new OpenSocialDataHandler());
- handlers.add(new StateFileDataHandler());
- }
-
- private CrossServletState servletState;
-
@Override
public void init(ServletConfig config) throws ServletException {
+ super.init(config);
servletState = CrossServletState.get(config);
+
+ String handlerNames = config.getInitParameter("handlers");
+ if (handlerNames == null) {
+ handlers.add(new OpenSocialDataHandler());
+ handlers.add(new StateFileDataHandler());
+ } else {
+ for (String handlerName : handlerNames.split(",")) {
+ try {
+ GadgetDataHandler handler = (GadgetDataHandler)
(Class.forName(handlerName)).newInstance();
+ handlers.add(handler);
+ } catch (Exception ex) {
+ throw new ServletException(ex);
+ }
+ }
+ }
}
+
+ private CrossServletState servletState;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
Modified: incubator/shindig/trunk/java/gadgets/src/main/webapp/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/webapp/WEB-INF/web.xml?rev=639018&r1=639017&r2=639018&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/webapp/WEB-INF/web.xml
(original)
+++ incubator/shindig/trunk/java/gadgets/src/main/webapp/WEB-INF/web.xml Wed
Mar 19 14:05:26 2008
@@ -66,6 +66,13 @@
<servlet-class>
org.apache.shindig.social.GadgetDataServlet
</servlet-class>
+ <init-param>
+<!--
+ Add your custom classes that handle opensocial requests here
+ <param-name>handlers</param-name>
+ <parame-value>com.muysite.OpenSocialDataHandler</param-value>
+-->
+ </init-param>
</servlet>
<!-- javascript serving -->