You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrp4j-dev@portals.apache.org by dl...@apache.org on 2006/11/22 01:06:39 UTC

svn commit: r477979 - in /portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet: controller/ model/delegate/ model/delegate/impl/ services/ util/

Author: dlouzan
Date: Tue Nov 21 16:06:38 2006
New Revision: 477979

URL: http://svn.apache.org/viewvc?view=rev&rev=477979
Log:
ConfigPortlet: Added support for deleting portlets

Modified:
    portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java
    portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java
    portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java
    portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java
    portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java

Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java?view=diff&rev=477979&r1=477978&r2=477979
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/controller/DeployPortletConfigPortlet.java Tue Nov 21 16:06:38 2006
@@ -119,6 +119,8 @@
             String action = request.getParameter(Constants.PARAM_ACTION);
             if (action.equals(Constants.ACTION_ADD_PORTLET)) {
                 service.processAddPortlet(request, response);
+            } else if (action.equals(Constants.ACTION_DELETE_PORTLET)) {
+                service.processDeletePortlet(request, response);
             }
         } catch (ConfigPortletException e) {
             throw new PortletException(e);

Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java?view=diff&rev=477979&r1=477978&r2=477979
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/DeployPortletDelegate.java Tue Nov 21 16:06:38 2006
@@ -42,4 +42,7 @@
     public void addPortlet(PortletTO portletTO)
     throws DuplicatePortletException, ConfigPortletException;
     
+    public void deletePortlet(String id)
+    throws PortletNotFoundException, ConfigPortletException;
+    
 }

Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java?view=diff&rev=477979&r1=477978&r2=477979
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/model/delegate/impl/DeployPortletDelegateImpl.java Tue Nov 21 16:06:38 2006
@@ -115,6 +115,7 @@
             );
             
             this.portletXmlDOM = builder.parse(portletXml);
+            portletXmlDOM.getDocumentElement().normalize();
             log.info("Loaded portlet.xml contents...");
             
             portletTOs = new TreeMap();
@@ -174,12 +175,32 @@
         
         NodeList portletAppNodes = portletXmlDOM.getElementsByTagName("portlet-app");
         portletAppNodes.item(0).appendChild(portletElement);
+        
+        portletXmlDOM.getDocumentElement().normalize();
         writeXmlDocument(portletXmlDOM, portletXml);
         
         portletTOs.put(portletTO.getId(), portletTO);
         
     }
     
+    public void deletePortlet(String id)
+    throws PortletNotFoundException, ConfigPortletException {
+        
+        if (!existsPortlet(id)) {
+            throw new PortletNotFoundException(id);
+        }
+        
+        Node portletNode =
+                findPortletNode(portletXmlDOM, id);
+        portletNode.getParentNode().removeChild(portletNode);
+        
+        portletXmlDOM.getDocumentElement().normalize();
+        writeXmlDocument(portletXmlDOM, portletXml);
+        
+        portletTOs.remove(id);
+        
+    }
+    
     /**
      * Populates the PortletTO map searching on the DOM document. We could use
      * a solution similar to Pluto's using castor to map the portlet.xml
@@ -410,7 +431,31 @@
         
     }
     
-    public void writeXmlDocument(Document document, File file)
+    private Node findPortletNode(Document document, String portletId) {
+        
+        NodeList portletNodes = document.getElementsByTagName("portlet");
+        
+        if (portletNodes != null) {
+            for (int i=0; i<portletNodes.getLength(); i++) {
+                Node portletNode = portletNodes.item(i);
+                NodeList children = portletNode.getChildNodes();
+                if (children != null) {
+                    for (int j=0; j<children.getLength(); j++) {
+                        Node child = children.item(j);
+                        if ((child.getNodeName().equals("portlet-name"))
+                            && (child.getChildNodes().item(0).getNodeValue().trim().equals(portletId))) {
+                            return portletNode;
+                        }
+                    }
+                }
+            }
+        }
+        
+        return null;
+        
+    }
+    
+    private void writeXmlDocument(Document document, File file)
     throws ConfigPortletException {
         
         try {

Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java?view=diff&rev=477979&r1=477978&r2=477979
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/services/DeployPortletService.java Tue Nov 21 16:06:38 2006
@@ -137,6 +137,29 @@
         
     }
     
+    public void processDeletePortlet(ActionRequest request,
+            ActionResponse response)
+    throws ConfigPortletException {
+        
+        String portletId = request.getParameter(Constants.PARAM_PORTLET_ID);
+        
+        try {
+            delegate.deletePortlet(portletId);
+        } catch (PortletNotFoundException e) {
+            errors = new Hashtable();
+            errors.put(Constants.PARAM_PORTLET_ID,
+                    Constants.ERROR_PORTLET_NOT_FOUND);
+            response.setRenderParameter(Constants.PARAM_ACTION,
+                    Constants.ACTION_SHOW_PORTLET);
+            response.setRenderParameter(Constants.PARAM_IS_ERROR,
+                    Constants.TRUE);
+        }
+        
+        response.setRenderParameter(Constants.PARAM_ACTION,
+                Constants.ACTION_SHOW_ALL_DEPLOYED_PORTLETS);
+        
+    }
+    
     private PortletTO createPortletTO(PortletForm form) {
         return new PortletTO(form.getId(), form.getDescription(),
                 form.getDisplayName(), form.getTitle(), form.getShortTitle(),

Modified: portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java
URL: http://svn.apache.org/viewvc/portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java?view=diff&rev=477979&r1=477978&r2=477979
==============================================================================
--- portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java (original)
+++ portals/wsrp4j/trunk/consumer-proxyportlet/src/java/org/apache/wsrp4j/consumer/configportlet/util/Constants.java Tue Nov 21 16:06:38 2006
@@ -64,6 +64,7 @@
     public static final String ACTION_SHOW_PORTLET = "showPortlet";
     public static final String ACTION_SHOW_ADD_PORTLET = "showAddPortlet";
     public static final String ACTION_ADD_PORTLET = "addPortlet";
+    public static final String ACTION_DELETE_PORTLET = "deletePortlet";
     
     public static final String TRUE = "true";
     public static final String FALSE = "false";