Author: scottbw
Date: Fri Feb 14 17:09:59 2014
New Revision: 1568359
URL: http://svn.apache.org/r1568359
Log:
Removed legacy non-REST API
Removed:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/WidgetServiceServlet.java
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/Controller.java
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
wookie/trunk/wookie-server/src/main/webapp/WEB-INF/web.xml
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/Controller.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/Controller.java?rev=1568359&r1=1568358&r2=1568359&view=diff
==============================================================================
---
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/Controller.java
(original)
+++
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/Controller.java
Fri Feb 14 17:09:59 2014
@@ -400,9 +400,17 @@ public abstract class Controller extends
* @return
*/
protected static AuthToken getAuthTokenFromRequest(HttpServletRequest
request){
+ return getAuthTokenFromRequest(request, false);
+ }
+
+ /**
+ * Get an AuthToken from the request
+ * @param request
+ * @return
+ */
+ protected static AuthToken getAuthTokenFromRequest(HttpServletRequest
request, boolean useDefaultWidget){
AuthToken authToken = null;
-
//
// First, lets use idkey if present
@@ -457,10 +465,14 @@ public abstract class Controller extends
if (widgetId == null || widgetId.trim().equals("")) return null;
//
- // The widget MUST be installed
+ // The widget MUST be installed unless we're set to use the default
//
if
(WidgetMetadataService.Factory.getInstance().getWidget(widgetId) == null){
- return null;
+ if (useDefaultWidget){
+ widgetId = "http://notsupported";
+ } else {
+ return null;
+ }
}
//
Modified:
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
URL:
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java?rev=1568359&r1=1568358&r2=1568359&view=diff
==============================================================================
---
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
(original)
+++
wookie/trunk/wookie-server/src/main/java/org/apache/wookie/controller/WidgetInstancesController.java
Fri Feb 14 17:09:59 2014
@@ -15,7 +15,6 @@
package org.apache.wookie.controller;
import java.io.IOException;
-import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.UUID;
@@ -56,68 +55,32 @@ public class WidgetInstancesController e
static Logger _logger =
Logger.getLogger(WidgetInstancesController.class.getName());
protected static final String CONTENT_TYPE =
"text/xml;charset=\"UTF-8\""; //$NON-NLS-1$
protected static URL urlWidgetProxyServer = null;
-
+
+ /// Implementation
+
/* (non-Javadoc)
* @see
org.apache.wookie.controller.Controller#doPost(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
*/
- /**
- * We override the default POST action as we need to support the legacy
getOrCreate method
- */
@Override
- protected void doPost(HttpServletRequest request, HttpServletResponse
response)
- throws ServletException, IOException {
- doGetOrCreateWidget(request, response);
+ protected void doPost(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException,
IOException {
+ doGet(request, response);
}
- /* (non-Javadoc)
- * @see
org.apache.wookie.controller.Controller#doGet(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
- */
- /**
- * We override the default GET method to support legacy clients
tunneling through GET to send other types of
- * requests usually sent over POST and PUT.
- */
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException{
- try {
- String resourceId = getResourceId(request);
- String requestId = request.getParameter("requestid");
//$NON-NLS-1$
- if (requestId == null || requestId.equals("")){
- show(resourceId, request, response);
- } else {
- if(requestId.equals("getwidget")){ //$NON-NLS-1$
- doGetOrCreateWidget(request, response);
- } else if(requestId.equals("stopwidget")){ //$NON-NLS-1$
- doStopWidget(request);
- } else if(requestId.equals("resumewidget")){ //$NON-NLS-1$
- doResumeWidget(request);
- } else if(requestId.equals("clone")){ //$NON-NLS-1$
- cloneSharedData(request);
- } else {
- response.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
- }
- }
- } catch (ResourceNotFoundException e) {
- response.sendError(HttpServletResponse.SC_NOT_FOUND);
- } catch (UnauthorizedAccessException e){
- response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- }
- }
-
- /// Implementation
+
/* (non-Javadoc)
- * @see org.apache.wookie.controller.Controller#show(java.lang.String,
javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+ * @see
org.apache.wookie.controller.Controller#doGet(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
*/
@Override
- protected void show(String resourceId, HttpServletRequest request,
HttpServletResponse response) throws ResourceNotFoundException,
UnauthorizedAccessException, IOException {
-
- AuthToken authToken = getAuthTokenFromRequest(request);
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException,
IOException {
+ AuthToken authToken = getAuthTokenFromRequest(request, true);
+
if (authToken == null){
- throw new ResourceNotFoundException();
+ response.setStatus(HttpServletResponse.SC_FORBIDDEN);
} else {
//
// Check the API key matches
@@ -132,8 +95,16 @@ public class WidgetInstancesController e
} catch (Exception e1) {
throw new IOException(e1);
}
-
- response.setStatus(HttpServletResponse.SC_OK);
+
+ //
+ // If the widget was replaced by the not supported
widget, return
+ // 404. Otherwise return 200.
+ //
+ if
(authToken.getWidgetId().equals("http://notsupported")){
+
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ } else {
+ response.setStatus(HttpServletResponse.SC_OK);
+ }
//
// Use default sizes where none provided?
@@ -150,7 +121,7 @@ public class WidgetInstancesController e
//
// Return XML or JSON
- //
+ //
try {
switch(format(request)){
case XML:
returnXml(WidgetInstanceHelper.createXMLWidgetInstanceDocument(authToken, url,
useDefaultSizes), response); break;
@@ -164,7 +135,7 @@ public class WidgetInstancesController e
}
}
-
+
/* (non-Javadoc)
* @see
org.apache.wookie.controller.Controller#update(java.lang.String,
javax.servlet.http.HttpServletRequest)
*/
@@ -186,15 +157,6 @@ public class WidgetInstancesController e
}
}
- /*
- * (non-Javadoc)
- * @see
org.apache.wookie.controller.Controller#remove(java.lang.String,
javax.servlet.http.HttpServletRequest)
- */
- @Override
- protected boolean remove(String resourceId, HttpServletRequest request)
- throws
ResourceNotFoundException,UnauthorizedAccessException,InvalidParametersException{
- return deleteWidgetInstance(resourceId, request);
- }
/**
* Locks a widget instance
@@ -222,60 +184,6 @@ public class WidgetInstancesController e
Notifier.notifyWidgets(request.getSession(), authToken,
Notifier.STATE_UPDATED);
}
- //
- // This is now meaningless
- // TODO remove from API
- //
- public static boolean deleteWidgetInstance(String resourceId,
HttpServletRequest request) throws InvalidParametersException,
ResourceNotFoundException {
- return false;
- }
-
- /**
- * This is the "legacy" get-or-create method accessed via POST or a
tunnel through GET. This will be deprecated in future.
- * @param request
- * @param response
- * @throws ServletException
- * @throws IOException
- */
- public static void doGetOrCreateWidget(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
-
- AuthToken authToken = getAuthTokenFromRequest(request);
- if (authToken == null){
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
- checkProxy(request);
-
- response.setStatus(HttpServletResponse.SC_OK);
-
- //
- // Use default sizes where none provided?
- //
- boolean useDefaultSizes = true;
- Configuration properties = (Configuration)
request.getSession().getServletContext().getAttribute("properties");
//$NON-NLS-1$
- if (properties.containsKey("widget.use_default_sizes")){
- try {
- useDefaultSizes =
properties.getBoolean("widget.use_default_sizes");
- } catch (Exception e) {
- useDefaultSizes = true;
- }
- }
-
- String url;
- try {
- url = getUrl(request, authToken);
- } catch (Exception e) {
- throw new IOException(e);
- }
- response.setContentType(CONTENT_TYPE);
- PrintWriter out = response.getWriter();
- try {
-
out.println(WidgetInstanceHelper.createXMLWidgetInstanceDocument(authToken,
url, useDefaultSizes));
- } catch (Exception e) {
-
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- }
- }
-
/**
* Create a clone of the instance
* @param request
Modified: wookie/trunk/wookie-server/src/main/webapp/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/wookie/trunk/wookie-server/src/main/webapp/WEB-INF/web.xml?rev=1568359&r1=1568358&r2=1568359&view=diff
==============================================================================
--- wookie/trunk/wookie-server/src/main/webapp/WEB-INF/web.xml (original)
+++ wookie/trunk/wookie-server/src/main/webapp/WEB-INF/web.xml Fri Feb 14
17:09:59 2014
@@ -224,17 +224,6 @@
<servlet-name>PoliciesServlet</servlet-name>
<url-pattern>/policies/*</url-pattern>
</servlet-mapping>
-
- <!-- Legacy API - deprecated in favour of REST API -->
- <servlet>
- <description></description>
- <display-name>Widget API</display-name>
- <servlet-name>WidgetServiceServlet</servlet-name>
- <servlet-class>
- org.apache.wookie.WidgetServiceServlet
- </servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
<servlet>
<description>
@@ -245,11 +234,6 @@
</servlet>
<servlet-mapping>
- <servlet-name>WidgetServiceServlet</servlet-name>
- <url-pattern>/WidgetServiceServlet</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>