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


Reply via email to