You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/11/25 14:40:26 UTC
svn commit: r348951 - in /cocoon/blocks:
portal-sample/trunk/samples/profiles/copletinstancedata/
portal-sample/trunk/samples/profiles/layout/
portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/
portal/trunk/java/org/apache/cocoon/portal/pluto/de...
Author: cziegeler
Date: Fri Nov 25 05:40:18 2005
New Revision: 348951
URL: http://svn.apache.org/viewcvs?rev=348951&view=rev
Log:
Preconfigure jpetstore portlet; add support for struts bridge during deployment
Added:
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java (with props)
Modified:
cocoon/blocks/portal-sample/trunk/samples/profiles/copletinstancedata/portal-user-cocoon.xml
cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal-user-cocoon.xml
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletWindowAspect.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/Deployer.java
Modified: cocoon/blocks/portal-sample/trunk/samples/profiles/copletinstancedata/portal-user-cocoon.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/samples/profiles/copletinstancedata/portal-user-cocoon.xml?rev=348951&r1=348950&r2=348951&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/samples/profiles/copletinstancedata/portal-user-cocoon.xml (original)
+++ cocoon/blocks/portal-sample/trunk/samples/profiles/copletinstancedata/portal-user-cocoon.xml Fri Nov 25 05:40:18 2005
@@ -54,6 +54,10 @@
<coplet-data>CocoonPortlet</coplet-data>
</coplet-instance-data>
+ <coplet-instance-data id="Petstore-1">
+ <coplet-data>jpetstore.JPetstorePortlet</coplet-data>
+ </coplet-instance-data>
+
<coplet-instance-data id="app-test-1">
<coplet-data>app-test-one</coplet-data>
</coplet-instance-data>
Modified: cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal-user-cocoon.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal-user-cocoon.xml?rev=348951&r1=348950&r2=348951&view=diff
==============================================================================
--- cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal-user-cocoon.xml (original)
+++ cocoon/blocks/portal-sample/trunk/samples/profiles/layout/portal-user-cocoon.xml Fri Nov 25 05:40:18 2005
@@ -67,6 +67,12 @@
</composite-layout>
</named-item>
+ <named-item name="Portals Bridges">
+ <coplet-layout name="coplet" layout-renderer-name="portlet-window">
+ <coplet-instance-data>Petstore-1</coplet-instance-data>
+ </coplet-layout>
+ </named-item>
+
<named-item name="WSRP">
<composite-layout name="column">
<item>
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletWindowAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletWindowAspect.java?rev=348951&r1=348950&r2=348951&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletWindowAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/adapter/PortletWindowAspect.java Fri Nov 25 05:40:18 2005
@@ -119,7 +119,11 @@
final PortletWindow window = (PortletWindow)copletInstanceData.getTemporaryAttribute("window");
if ( window == null ) {
// no portlet window, so use a default behaviour
- XMLUtils.createElement(contenthandler, "title", copletInstanceData.getTitle());
+ if ( copletInstanceData.getTitle() == null ) {
+ XMLUtils.createElement(contenthandler, "title", "No title");
+ } else {
+ XMLUtils.createElement(contenthandler, "title", copletInstanceData.getTitle());
+ }
} else {
if ( ((PortletWindowImpl)window).getLayout() == null ) {
((PortletWindowImpl)window).setLayout((CopletLayout)layout);
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/Deployer.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/Deployer.java?rev=348951&r1=348950&r2=348951&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/Deployer.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/Deployer.java Fri Nov 25 05:40:18 2005
@@ -113,6 +113,7 @@
webRewriter.processWebXML();
ContextRewriter contextRewriter = new ContextRewriter(contextXml, portletApplicationName);
contextRewriter.processContextXML();
+ PortletRewriter.process(portletXml);
// write the web.xml, portlet.xml, and context.xml files
addFile("WEB-INF/web.xml", webXml, jout);
Added: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java?rev=348951&view=auto
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java (added)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java Fri Nov 25 05:40:18 2005
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2005 The Apache Software Foundation.
+ *
+ * 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.cocoon.portal.pluto.deployment;
+
+import javax.xml.transform.TransformerException;
+
+import org.apache.cocoon.portal.bridges.ServletContextProviderImpl;
+import org.apache.cocoon.portal.deployment.DeploymentException;
+import org.apache.cocoon.xml.dom.DOMUtil;
+import org.apache.xpath.XPathAPI;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * Utilities for manipulating the portlet.xml deployment descriptor.
+ *
+ * @version $Id$
+ */
+public class PortletRewriter {
+
+
+ public static boolean process(Document document)
+ throws DeploymentException {
+ boolean changed = false;
+ final Element root = document.getDocumentElement();
+ final NodeList nodes = root.getChildNodes();
+ try {
+ for(int i=0; i<nodes.getLength(); i++) {
+ final Node current = nodes.item(i);
+ if ( current.getNodeType() == Node.ELEMENT_NODE
+ && ("portlet".equals(current.getLocalName()) || "portlet".equals(current.getNodeName()))) {
+ final Element e = (Element)current;
+ final Element classElement = (Element)XPathAPI.selectSingleNode(e, "*[local-name()='portlet-class']");
+ if ( classElement != null ) {
+ changed = true;
+ final String className = DOMUtil.getValueOfNode(classElement);
+ if ( className.equals("org.apache.portals.bridges.struts.StrutsPortlet") ) {
+ Element initParamName = (Element)XPathAPI.selectSingleNode(e, "*[local-name()='init-param']/*[local-name()='name' and contains(child::text(), \"ServletContextProvider\")]");
+ Element initParam;
+ if ( initParamName == null ) {
+ initParam = document.createElementNS(e.getNamespaceURI(), "init-param");
+ Element name = document.createElementNS(e.getNamespaceURI(), "name");
+ initParam.appendChild(name);
+ name.appendChild(document.createTextNode("ServletContextProvider"));
+ e.insertBefore(initParam, e.getFirstChild());
+ } else {
+ initParam = (Element)initParamName.getParentNode();
+ }
+ Element value = (Element)XPathAPI.selectSingleNode(initParam, "*[local-name()='value']");
+ if ( value == null ) {
+ value = document.createElementNS(e.getNamespaceURI(), "value");
+ initParam.appendChild(value);
+ } else {
+ while ( value.hasChildNodes() ) {
+ value.removeChild(value.getFirstChild());
+ }
+ }
+ value.appendChild(document.createTextNode(ServletContextProviderImpl.class.getName()));
+ }
+ }
+ }
+ }
+ } catch (TransformerException te) {
+ throw new DeploymentException("Unable to process portlet.xml.", te);
+ }
+ return changed;
+ }
+
+}
Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/pluto/deployment/PortletRewriter.java
------------------------------------------------------------------------------
svn:keywords = Id