Author: psharples
Date: Tue Mar 6 12:59:05 2012
New Revision: 1297456
URL: http://svn.apache.org/viewvc?rev=1297456&view=rev
Log:
Updates to make sure the REST API call for DELETE also removes the widgets file
resources
Modified:
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFileUtils.java
Modified:
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java?rev=1297456&r1=1297455&r2=1297456&view=diff
==============================================================================
---
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
(original)
+++
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/WidgetsControllerTest.java
Tue Mar 6 12:59:05 2012
@@ -269,16 +269,21 @@ public class WidgetsControllerTest exten
assertEquals(404, get.getStatusCode());
}
-
+ /**
+ * We allow updates to existing widgets via POST as well as PUT
+ * (to allow browsers to update using forms)
+ * @throws HttpException
+ * @throws IOException
+ */
@Test
- public void updateWidget() throws HttpException, IOException{
+ public void updateWidgetByPost() throws HttpException, IOException{
HttpClient client = new HttpClient();
//
// Use admin credentials
//
setAuthenticationCredentials(client);
- PutMethod post = new
PutMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fuploadtest");
+ PostMethod post = new
PostMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fuploadtest");
//
// Use upload test widget
@@ -303,6 +308,39 @@ public class WidgetsControllerTest exten
}
+ @Test
+ public void updateWidgetByPut() throws HttpException, IOException{
+ HttpClient client = new HttpClient();
+ //
+ // Use admin credentials
+ //
+ setAuthenticationCredentials(client);
+
+ PutMethod put = new
PutMethod(TEST_WIDGETS_SERVICE_URL_VALID+"/http%3A%2F%2Fuploadtest");
+
+ //
+ // Use upload test widget
+ //
+ File file = new File("src-tests/testdata/upload-test.wgt");
+ assertTrue(file.exists());
+
+ //
+ // Add test wgt file to PUT
+ //
+ Part[] parts = { new FilePart(file.getName(), file) };
+ put.setRequestEntity(new MultipartRequestEntity(parts, put
+ .getParams()));
+
+ //
+ // PUT the file to /widgets and check we get 200 (Updated)
+ //
+ client.executeMethod(put);
+ int code = put.getStatusCode();
+ assertEquals(200,code);
+ put.releaseConnection();
+
+ }
+
@Test
public void updateWidgetUnauthorized() throws HttpException,
IOException{
HttpClient client = new HttpClient();
Modified: incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java?rev=1297456&r1=1297455&r2=1297456&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/WidgetAdminServlet.java Tue
Mar 6 12:59:05 2012
@@ -217,14 +217,8 @@ public class WidgetAdminServlet extends
String widgetId = request.getParameter("widgetId");
//$NON-NLS-1$
IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
IWidget widget = persistenceManager.findById(IWidget.class,
widgetId);
- String guid = widget.getGuid();
- if(WidgetFactory.destroy(widget)){
- if(WidgetFileUtils.removeWidgetResources(WIDGETFOLDER,
guid)){
- request.setAttribute("message_value",
localizedMessages.getString("WidgetAdminServlet.12"));
//$NON-NLS-1$ //$NON-NLS-2$
- }
- else{
- request.setAttribute("error_value",
localizedMessages.getString("WidgetAdminServlet.13")); //$NON-NLS-1$
//$NON-NLS-2$
- }
+ if(WidgetFactory.destroy(widget, WIDGETFOLDER)){
+ request.setAttribute("message_value",
localizedMessages.getString("WidgetAdminServlet.12"));
//$NON-NLS-1$ //$NON-NLS-2$
}
else{
request.setAttribute("error_value",
localizedMessages.getString("WidgetAdminServlet.14")); //$NON-NLS-1$
//$NON-NLS-2$
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=1297456&r1=1297455&r2=1297456&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/controller/WidgetsController.java
Tue Mar 6 12:59:05 2012
@@ -163,7 +163,9 @@ public class WidgetsController extends C
//
// Delete the widget
//
- return WidgetFactory.destroy(widget);
+ Configuration properties = (Configuration)
getServletContext().getAttribute("properties"); //$NON-NLS-1$
+ final String WIDGETFOLDER =
getServletContext().getRealPath(properties.getString("widget.widgetfolder"));//$NON-NLS-1$
+ return WidgetFactory.destroy(widget, WIDGETFOLDER);
}
/**
Modified:
incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java?rev=1297456&r1=1297455&r2=1297456&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/WidgetFactory.java Tue
Mar 6 12:59:05 2012
@@ -36,6 +36,7 @@ import org.apache.wookie.beans.util.IPer
import org.apache.wookie.beans.util.PersistenceManagerFactory;
import org.apache.wookie.proxy.Policies;
import org.apache.wookie.proxy.Policy;
+import org.apache.wookie.util.WidgetFileUtils;
import org.apache.wookie.w3c.IAccessEntity;
import org.apache.wookie.w3c.IContentEntity;
import org.apache.wookie.w3c.IDescriptionEntity;
@@ -247,11 +248,12 @@ public class WidgetFactory {
* @param widget the widget to destroy
* @return true if the widget is destroyed successfully
*/
- public static boolean destroy(IWidget widget){
+ public static boolean destroy(IWidget widget, String resourcesPath){
if(widget==null) return false;
+ String widgetGuid = widget.getGuid();
String widgetName = widget.getWidgetTitle("en");
IPersistenceManager persistenceManager =
PersistenceManagerFactory.getPersistenceManager();
@@ -291,8 +293,10 @@ public class WidgetFactory {
_logger.error("Problem with properties configuration", e);
}
- // remove the widget itself
+ // remove the widget db entry itself
persistenceManager.delete(widget);
+ // now remove the widget file resources
+ WidgetFileUtils.removeWidgetResources(resourcesPath,
widgetGuid);
_logger.info("'"+widgetName+"' - " + "Widget was successfully deleted from
the system.");
Modified: incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFileUtils.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFileUtils.java?rev=1297456&r1=1297455&r2=1297456&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFileUtils.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/util/WidgetFileUtils.java Tue
Mar 6 12:59:05 2012
@@ -132,7 +132,7 @@ public class WidgetFileUtils {
* @param widgetGuid
* @return
*/
- public static boolean removeWidgetResources(String WIDGETFOLDER,
+ public static void removeWidgetResources(String WIDGETFOLDER,
String widgetGuid) {
String folder = WidgetPackageUtils.convertIdToFolderName(widgetGuid);
String serverPath = WIDGETFOLDER + File.separator + folder;
@@ -145,7 +145,6 @@ public class WidgetFileUtils {
} catch (Exception ex) {
_logger.error(ex);
}
- return true;
}
}