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