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>