You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by ps...@apache.org on 2012/03/08 18:50:13 UTC
svn commit: r1298484 - in /incubator/wookie/trunk/src/org/apache/wookie:
controller/ helpers/ proxy/ updates/
Author: psharples
Date: Thu Mar 8 17:50:12 2012
New Revision: 1298484
URL: http://svn.apache.org/viewvc?rev=1298484&view=rev
Log:
Partial Update for WOOKIE-324. POSTing a widget now returns the original config.xml. (still to do is to build a hybrid version of this with the paths replaced by the parser)
Added:
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetAdvertHelper.java
- copied, changed from r1298308, incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetHelper.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetImportHelper.java (with props)
Removed:
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetHelper.java
Modified:
incubator/wookie/trunk/src/org/apache/wookie/controller/ApiKeyController.java
incubator/wookie/trunk/src/org/apache/wookie/controller/Controller.java
incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java
incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/PoliciesHelper.java
incubator/wookie/trunk/src/org/apache/wookie/proxy/Policy.java
incubator/wookie/trunk/src/org/apache/wookie/updates/UpdateInformation.java
incubator/wookie/trunk/src/org/apache/wookie/updates/UpdatesController.java
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/ApiKeyController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/ApiKeyController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/ApiKeyController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/ApiKeyController.java Thu Mar 8 17:50:12 2012
@@ -68,7 +68,7 @@ public class ApiKeyController extends Co
* @see org.apache.wookie.controller.Controller#create(java.lang.String, javax.servlet.http.HttpServletRequest)
*/
@Override
- protected boolean create(String resourceId, HttpServletRequest request)
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceDuplicationException, InvalidParametersException,
UnauthorizedAccessException {
String value = request.getParameter("apikey");
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/Controller.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/Controller.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/Controller.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/Controller.java Thu Mar 8 17:50:12 2012
@@ -112,7 +112,7 @@ public abstract class Controller extends
throws ServletException, IOException {
String resourceId = getResourceId(request);
try {
- if (create(resourceId, request)){
+ if (create(resourceId, request, response)){
response.setStatus(HttpServletResponse.SC_CREATED);
} else {
response.setStatus(HttpServletResponse.SC_OK);
@@ -137,7 +137,7 @@ public abstract class Controller extends
throws ServletException, IOException {
String resourceId = getResourceId(request);
try {
- update(resourceId,request);
+ update(resourceId,request,response);
response.setStatus(HttpServletResponse.SC_OK);
} catch (ResourceNotFoundException e) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
@@ -175,7 +175,7 @@ public abstract class Controller extends
@return true if the resource was successfully created
* @throws ResourceDuplicationException
*/
- protected boolean create(String resourceId, HttpServletRequest request) throws ResourceDuplicationException, InvalidParametersException, UnauthorizedAccessException{return false;};
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response) throws ResourceDuplicationException, InvalidParametersException, UnauthorizedAccessException{return false;};
/**
* Delete a resource
@@ -191,7 +191,7 @@ public abstract class Controller extends
* @param request
* @throws ResourceNotFoundException
*/
- protected void update(String resourceId, HttpServletRequest request) throws ResourceNotFoundException,InvalidParametersException,UnauthorizedAccessException{};
+ protected void update(String resourceId, HttpServletRequest request, HttpServletResponse response) throws ResourceNotFoundException,InvalidParametersException,UnauthorizedAccessException{};
// Utilities
@@ -213,6 +213,11 @@ public abstract class Controller extends
}
if (path != null)
path = path.trim();
+ // TODO: policy requests have two urls. (this should work for all other cases)
+ // fix for tomcat where one of the forward slashes is missing
+ if(path.contains("http:/") && !path.contains("http://")){
+ path = path.replace("http:/", "http://");
+ }
return path;
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java Thu Mar 8 17:50:12 2012
@@ -76,7 +76,7 @@ public class ParticipantsController exte
}
@Override
- protected boolean create(String resourceId, HttpServletRequest request)
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceDuplicationException, InvalidParametersException,
UnauthorizedAccessException {
return create(request);
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/PoliciesController.java Thu Mar 8 17:50:12 2012
@@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.wookie.exceptions.InvalidParametersException;
import org.apache.wookie.exceptions.ResourceDuplicationException;
@@ -56,8 +55,8 @@ public class PoliciesController extends
// For some reason the main controller resourceId method isn't parsing
// the resource part correctly
//
- resourceId = request.getPathInfo().trim();
- if (resourceId != null) resourceId = StringUtils.stripStart(resourceId, "/");
+ //resourceId = request.getPathInfo().trim();
+ //if (resourceId != null) resourceId = StringUtils.stripStart(resourceId, "/");
//
// The resource id is the policy scope. E.g., calling
@@ -103,7 +102,7 @@ public class PoliciesController extends
* @see org.apache.wookie.controller.Controller#create(java.lang.String, javax.servlet.http.HttpServletRequest)
*/
@Override
- protected boolean create(String resourceId, HttpServletRequest request)
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceDuplicationException, InvalidParametersException,
UnauthorizedAccessException {
try {
@@ -150,8 +149,8 @@ public class PoliciesController extends
// For some reason the main controller resourceId method isn't parsing
// the resource part correctly
//
- resourceId = request.getPathInfo().trim();
- if (resourceId != null) resourceId = StringUtils.stripStart(resourceId, "/");
+ //resourceId = request.getPathInfo().trim();
+ //if (resourceId != null) resourceId = StringUtils.stripStart(resourceId, "/");
try {
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/PropertiesController.java Thu Mar 8 17:50:12 2012
@@ -117,7 +117,7 @@ public class PropertiesController extend
}
@Override
- protected boolean create(String resourceId, HttpServletRequest request)
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceDuplicationException, InvalidParametersException,
UnauthorizedAccessException {
createOrUpdate(request);
@@ -125,7 +125,7 @@ public class PropertiesController extend
}
@Override
- protected void update(String resourceId, HttpServletRequest request)
+ protected void update(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceNotFoundException, InvalidParametersException,UnauthorizedAccessException {
createOrUpdate(request);
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetInstancesController.java Thu Mar 8 17:50:12 2012
@@ -141,7 +141,7 @@ public class WidgetInstancesController e
* @see org.apache.wookie.controller.Controller#update(java.lang.String, javax.servlet.http.HttpServletRequest)
*/
@Override
- protected void update(String resourceId, HttpServletRequest request)
+ protected void update(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceNotFoundException, InvalidParametersException,
UnauthorizedAccessException {
String requestId = request.getParameter("requestid"); //$NON-NLS-1$
@@ -158,6 +158,17 @@ 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{
+ //System.out.println("delete widget instance@" + resourceId);
+ //TODO: implement this
+ return false;
+ }
/**
* Locks a widget instance
Modified: incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java Thu Mar 8 17:50:12 2012
@@ -36,7 +36,8 @@ import org.apache.wookie.exceptions.Reso
import org.apache.wookie.exceptions.UnauthorizedAccessException;
import org.apache.wookie.feature.Features;
import org.apache.wookie.helpers.WidgetFactory;
-import org.apache.wookie.helpers.WidgetHelper;
+import org.apache.wookie.helpers.WidgetAdvertHelper;
+import org.apache.wookie.helpers.WidgetImportHelper;
import org.apache.wookie.server.LocaleHandler;
import org.apache.wookie.util.WidgetFileUtils;
import org.apache.wookie.util.WidgetJavascriptSyntaxAnalyzer;
@@ -73,7 +74,7 @@ public class WidgetsController extends C
* @see org.apache.wookie.controller.Controller#update(java.lang.String, javax.servlet.http.HttpServletRequest)
*/
@Override
- protected void update(String resourceId, HttpServletRequest request)
+ protected void update(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceNotFoundException, InvalidParametersException,
UnauthorizedAccessException {
@@ -88,7 +89,7 @@ public class WidgetsController extends C
if (widget == null) throw new ResourceNotFoundException();
try {
- create(resourceId, request);
+ create(resourceId, request, response);
} catch (ResourceDuplicationException e) {
e.printStackTrace();
}
@@ -118,9 +119,9 @@ public class WidgetsController extends C
throw new ResourceNotFoundException();
switch (format(request)) {
- case XML:returnXml(WidgetHelper.createXMLWidgetsDocument(widget,getLocalPath(request), getLocales(request)), response);break;
+ case XML:returnXml(WidgetAdvertHelper.createXMLWidgetsDocument(widget,getLocalPath(request), getLocales(request)), response);break;
case WIDGET:returnWidget(widget, response);break;
- default:returnXml(WidgetHelper.createXMLWidgetsDocument(widget,getLocalPath(request), getLocales(request)), response);
+ default:returnXml(WidgetAdvertHelper.createXMLWidgetsDocument(widget,getLocalPath(request), getLocales(request)), response);
}
}
@@ -164,7 +165,7 @@ public class WidgetsController extends C
IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
IWidget[] widgets = persistenceManager.findAll(IWidget.class);
- returnXml(WidgetHelper.createXMLWidgetsDocument(widgets, getLocalPath(request), getLocales(request)),response);
+ returnXml(WidgetAdvertHelper.createXMLWidgetsDocument(widgets, getLocalPath(request), getLocales(request)),response);
}
/* (non-Javadoc)
@@ -205,7 +206,7 @@ public class WidgetsController extends C
* @see org.apache.wookie.controller.Controller#create(java.lang.String, javax.servlet.http.HttpServletRequest)
*/
@Override
- protected boolean create(String resourceId, HttpServletRequest request)
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceDuplicationException, InvalidParametersException,
UnauthorizedAccessException {
@@ -260,7 +261,7 @@ public class WidgetsController extends C
fac.setStartPageProcessor(new StartPageProcessor());
W3CWidget widgetModel = fac.parse(zipFile);
new WidgetJavascriptSyntaxAnalyzer(fac.getUnzippedWidgetDirectory());
-
+ // File f = new File();
//
// Check if the widget model corresponds to an existing installed widget
//
@@ -271,6 +272,7 @@ public class WidgetsController extends C
// A new widget was created, so return 201
//
WidgetFactory.addNewWidget(widgetModel, zipFile,false);
+ returnXml(WidgetImportHelper.createXMLWidgetDocument(widgetModel, new File(fac.getUnzippedWidgetDirectory(), "config.xml")), response);
return true;
} else {
@@ -280,6 +282,7 @@ public class WidgetsController extends C
// and return 200
//
WidgetFactory.update(widgetModel,persistenceManager.findWidgetByGuid(widgetModel.getIdentifier()),false, zipFile);
+ returnXml(WidgetImportHelper.createXMLWidgetDocument(widgetModel, new File(fac.getUnzippedWidgetDirectory(), "config.xml")), response);
return false;
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/helpers/PoliciesHelper.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/PoliciesHelper.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/PoliciesHelper.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/PoliciesHelper.java Thu Mar 8 17:50:12 2012
@@ -70,7 +70,7 @@ public class PoliciesHelper {
IPersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager();
IWidget widget = persistenceManager.findWidgetByGuid(policy.getScope());
if (widget != null){
- policyJson.put("widget-title", WidgetHelper.getEncodedWidgetTitle(widget, null));
+ policyJson.put("widget-title", WidgetAdvertHelper.getEncodedWidgetTitle(widget, null));
}
}
policyJson.put("origin", policy.getOrigin());
Copied: incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetAdvertHelper.java (from r1298308, incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetHelper.java)
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetAdvertHelper.java?p2=incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetAdvertHelper.java&p1=incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetHelper.java&r1=1298308&r2=1298484&rev=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetHelper.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetAdvertHelper.java Thu Mar 8 17:50:12 2012
@@ -32,7 +32,7 @@ import org.apache.wookie.w3c.util.Locali
* @author scott wilson
*
*/
-public class WidgetHelper {
+public class WidgetAdvertHelper {
private static final String XMLDECLARATION = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
Added: incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetImportHelper.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetImportHelper.java?rev=1298484&view=auto
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetImportHelper.java (added)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetImportHelper.java Thu Mar 8 17:50:12 2012
@@ -0,0 +1,47 @@
+/*
+ * Licensed 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.wookie.helpers;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.wookie.w3c.W3CWidget;
+
+//TODO improve this so it more than a basic stub
+public class WidgetImportHelper {
+
+ private static String ERROR_RESPONSE = "<error>unable to read config.xml</error>";
+
+ public static String createXMLWidgetDocument(W3CWidget widgetModel, File configXml) {
+ if(configXml.exists()){
+ String xmlContents;
+ try {
+ xmlContents = FileUtils.readFileToString(configXml, "UTF-8");
+ return updatePaths(widgetModel, xmlContents);
+ } catch (IOException e) {
+ return ERROR_RESPONSE;
+ }
+ }else{
+ return ERROR_RESPONSE;
+ }
+
+ }
+
+ private static String updatePaths(W3CWidget widgetModel, String configXml){
+ //TODO - some jdom stuff to update the paths to start files & icons
+ return configXml;
+ }
+
+}
Propchange: incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetImportHelper.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/wookie/trunk/src/org/apache/wookie/proxy/Policy.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/proxy/Policy.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/proxy/Policy.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/proxy/Policy.java Thu Mar 8 17:50:12 2012
@@ -46,6 +46,9 @@ public class Policy {
*/
public Policy(String policy) throws PolicyFormatException{
String[] elements = policy.split(" ");
+ if (elements.length != 3){
+ elements = policy.split("\\+");
+ }
if (elements.length == 3){
setScope(elements[0]);
setOrigin(elements[1]);
Modified: incubator/wookie/trunk/src/org/apache/wookie/updates/UpdateInformation.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/updates/UpdateInformation.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/updates/UpdateInformation.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/updates/UpdateInformation.java Thu Mar 8 17:50:12 2012
@@ -14,7 +14,7 @@
package org.apache.wookie.updates;
import org.apache.wookie.beans.IWidget;
-import org.apache.wookie.helpers.WidgetHelper;
+import org.apache.wookie.helpers.WidgetAdvertHelper;
import org.apache.wookie.w3c.updates.UpdateDescriptionDocument;
import org.jdom.Element;
@@ -58,7 +58,7 @@ public class UpdateInformation {
public Element toXml(){
Element element = this.udd.toXml();
element.setAttribute("widget", this.widget.getId().toString());
- element.setAttribute("widget_title", WidgetHelper.getEncodedWidgetTitle(this.widget, null));
+ element.setAttribute("widget_title", WidgetAdvertHelper.getEncodedWidgetTitle(this.widget, null));
return element;
}
Modified: incubator/wookie/trunk/src/org/apache/wookie/updates/UpdatesController.java
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/updates/UpdatesController.java?rev=1298484&r1=1298483&r2=1298484&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/updates/UpdatesController.java (original)
+++ incubator/wookie/trunk/src/org/apache/wookie/updates/UpdatesController.java Thu Mar 8 17:50:12 2012
@@ -98,7 +98,7 @@ public class UpdatesController extends C
* TODO Note that this call can take a while to complete so it may be better in future to make the call asynchronous and spawn a background task to complete the update process
*/
@Override
- protected boolean create(String resourceId, HttpServletRequest request)
+ protected boolean create(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceDuplicationException, InvalidParametersException,
UnauthorizedAccessException {
// Check to see if we're requiring updates over HTTPS - if not output a warning
@@ -124,7 +124,7 @@ public class UpdatesController extends C
* A PUT requests a single widget to be updated if there is an update available.
*/
@Override
- protected void update(String resourceId, HttpServletRequest request)
+ protected void update(String resourceId, HttpServletRequest request, HttpServletResponse response)
throws ResourceNotFoundException, InvalidParametersException,
UnauthorizedAccessException {
// attempt to get specific widget by id