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 2006/04/12 19:59:56 UTC

svn commit: r393551 - in /cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl: ./ src/main/java/org/apache/cocoon/portal/coplet/adapter/ src/main/java/org/apache/cocoon/portal/persistence/castor/ src/main/java/org/apache/cocoon/portal/pluto/adapter/ s...

Author: cziegeler
Date: Wed Apr 12 10:59:55 2006
New Revision: 393551

URL: http://svn.apache.org/viewcvs?rev=393551&view=rev
Log:
Better way of configuring castor and adding a decoration provider to simplify renderer configuration

Added:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java   (with props)
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java   (with props)
Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/CastorSourceConverter.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/status.xml

Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java?rev=393551&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java Wed Apr 12 10:59:55 2006
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2006 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.coplet.adapter;
+
+import java.util.List;
+
+import org.apache.cocoon.portal.coplet.CopletInstanceData;
+
+/**
+ * @version $Id$
+ */
+public interface CopletDecorationProvider extends CopletAdapter {
+
+    String getTitle(CopletInstanceData coplet);
+
+    /**
+     * Returns a list of {@link DecorationAction}.
+     * @return List of possible window states, might be empty.
+     */
+    List getPossibleWindowStates();
+
+    /**
+     * Returns a list of {@link DecorationAction}.
+     * @return List of possible coplet modes, might be empty.
+     */
+    List getPossibleCopletModes();
+}

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/CopletDecorationProvider.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java?rev=393551&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java Wed Apr 12 10:59:55 2006
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2006 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.coplet.adapter;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.cocoon.portal.event.Event;
+
+/**
+ * @version $Id$
+ */
+public final class DecorationAction {
+
+    protected String name;
+    protected List   events;
+
+    public DecorationAction(String name, List events) {
+        this.name = name;
+        this.events = events;
+    }
+
+    public DecorationAction(String name, Event event) {
+        this.name = name;
+        this.events = Collections.singletonList(event);
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public List getEvents() {
+        return this.events;
+    }
+}
\ No newline at end of file

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/coplet/adapter/DecorationAction.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/CastorSourceConverter.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/CastorSourceConverter.java?rev=393551&r1=393550&r2=393551&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/CastorSourceConverter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/CastorSourceConverter.java Wed Apr 12 10:59:55 2006
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Map.Entry;
 
 import org.apache.avalon.framework.activity.Initializable;
@@ -137,7 +138,14 @@
      */
     public void configure(Configuration config) throws ConfigurationException {
         // configure castor - so we don't need a properties file
-        LocalConfiguration.getInstance().getProperties().setProperty("org.exolab.castor.parser.namespaces", "true");
+        final Properties castorProperties = LocalConfiguration.getInstance().getProperties();
+        castorProperties.setProperty("org.exolab.castor.parser.namespaces", "true");
+        final Configuration[] properties = config.getChild("castor-properties").getChildren("property");
+        for(int i=0; i<properties.length; i++) {
+            final String propName = properties[i].getAttribute("name");
+            final String propValue = properties[i].getAttribute("value");
+            castorProperties.setProperty(propName, propValue);
+        }
 
         // default configuration
         final String prefix = "resource://org/apache/cocoon/portal/persistence/castor/";

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java?rev=393551&r1=393550&r2=393551&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/pluto/adapter/PortletAdapter.java Wed Apr 12 10:59:55 2006
@@ -15,6 +15,7 @@
  */
 package org.apache.cocoon.portal.pluto.adapter;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
@@ -39,6 +40,7 @@
 import org.apache.cocoon.portal.PortalManagerAspectRenderContext;
 import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
+import org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider;
 import org.apache.cocoon.portal.coplet.adapter.impl.AbstractCopletAdapter;
 import org.apache.cocoon.portal.event.Receiver;
 import org.apache.cocoon.portal.pluto.PortletActionProviderImpl;
@@ -59,6 +61,7 @@
 import org.apache.pluto.PortletContainerImpl;
 import org.apache.pluto.om.entity.PortletApplicationEntity;
 import org.apache.pluto.om.entity.PortletEntity;
+import org.apache.pluto.om.portlet.PortletDefinition;
 import org.apache.pluto.om.window.PortletWindow;
 import org.apache.pluto.om.window.PortletWindowCtrl;
 import org.apache.pluto.om.window.PortletWindowList;
@@ -78,7 +81,7 @@
  */
 public class PortletAdapter 
     extends AbstractCopletAdapter
-    implements PortalManagerAspect, Receiver, Parameterizable {
+    implements PortalManagerAspect, CopletDecorationProvider, Receiver, Parameterizable {
 
     /** The servlet configuration for pluto. */
     protected ServletConfig servletConfig;
@@ -395,5 +398,44 @@
 
     protected String getResponse(CopletInstanceData instance, HttpServletResponse response) {
         return response.toString();
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider#getPossibleCopletModes()
+     */
+    public List getPossibleCopletModes() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider#getPossibleWindowStates()
+     */
+    public List getPossibleWindowStates() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider#getTitle(org.apache.cocoon.portal.coplet.CopletInstanceData)
+     */
+    public String getTitle(CopletInstanceData copletInstanceData) {
+        String title = null;
+        final PortletWindow window = (PortletWindow)copletInstanceData.getTemporaryAttribute("window");
+        if ( window != null ) {
+            title = (String) copletInstanceData.getTemporaryAttribute("dynamic-title");
+            if ( title == null ) {
+                final PortletDefinition def = window.getPortletEntity().getPortletDefinition();
+                try {
+                    title = def.getDisplayName(def.getLanguageSet().getDefaultLocale()).getDisplayName();
+                } catch (Exception ignore)  {
+                    // we ignore this
+                }
+            }
+        }
+        if ( title == null ) {
+            title = copletInstanceData.getTitle();
+        }
+        return title;
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java?rev=393551&r1=393550&r2=393551&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/wsrp/adapter/WSRPAdapter.java Wed Apr 12 10:59:55 2006
@@ -18,11 +18,13 @@
 import java.io.IOException;
 import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.servlet.ServletConfig;
 
 import oasis.names.tc.wsrp.v1.types.BlockingInteractionResponse;
+import oasis.names.tc.wsrp.v1.types.LocalizedString;
 import oasis.names.tc.wsrp.v1.types.MarkupContext;
 import oasis.names.tc.wsrp.v1.types.MarkupResponse;
 import oasis.names.tc.wsrp.v1.types.MarkupType;
@@ -52,6 +54,7 @@
 import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.coplet.CopletData;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
+import org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider;
 import org.apache.cocoon.portal.coplet.adapter.impl.AbstractCopletAdapter;
 import org.apache.cocoon.portal.event.Event;
 import org.apache.cocoon.portal.event.Receiver;
@@ -112,6 +115,7 @@
 public class WSRPAdapter 
     extends AbstractCopletAdapter
     implements PortalManagerAspect,
+               CopletDecorationProvider,
                Parameterizable,
                Receiver {
 
@@ -849,5 +853,40 @@
         ContainerUtil.initialize(component);
 
         return component;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider#getPossibleCopletModes()
+     */
+    public List getPossibleCopletModes() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider#getPossibleWindowStates()
+     */
+    public List getPossibleWindowStates() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.CopletDecorationProvider#getTitle(org.apache.cocoon.portal.coplet.CopletInstanceData)
+     */
+    public String getTitle(CopletInstanceData copletInstanceData) {
+        String title = null;
+        final PortletKey portletKey = (PortletKey)copletInstanceData.getTemporaryAttribute(WSRPAdapter.ATTRIBUTE_NAME_PORTLET_KEY);
+
+        if ( portletKey != null ) {
+            LocalizedString localizedTitle = (LocalizedString)copletInstanceData.getTemporaryAttribute(WSRPAdapter.ATTRIBUTE_NAME_PORTLET_TITLE);
+            if ( localizedTitle != null ) {
+                title = localizedTitle.getValue();
+            }
+        }
+        if ( title == null ) {
+            title = copletInstanceData.getTitle();
+        }
+        return title;
     }
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/status.xml?rev=393551&r1=393550&r2=393551&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/status.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/status.xml Wed Apr 12 10:59:55 2006
@@ -66,6 +66,15 @@
  <changes>
   <release version="@version@" date="@date@">
     <action dev="CZ" type="add">
+      Add CopletDecorationProvider which provides the information for the
+      title bar of a coplet. A coplet adapter can optinally implement
+      this interface.
+    </action>
+    <action dev="CZ" type="add">
+      Castor source converter can be configured using xconf instead of adding
+      a castor.properties file to the classpath.
+    </action>
+    <action dev="CZ" type="add">
       Unify coplet adapters: Caching is now supported by all adapters including
       the portlet and wsrp adapters. Therefore the caching-uri adapter has been removed.
     </action>