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 2007/12/19 22:44:15 UTC
svn commit: r605714 - in /cocoon/trunk/blocks/cocoon-portal:
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/impl/
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/
cocoon-portal-impl/src/main/resources/org/apache/cocoon/porta...
Author: cziegeler
Date: Wed Dec 19 13:44:14 2007
New Revision: 605714
URL: http://svn.apache.org/viewvc?rev=605714&view=rev
Log:
Migrate portal service from avalon to spring
Separate Spring related code into own package
Fix spring portal schema
Correct configuration
Added:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java (with props)
Modified:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/cocoon-portal-components.xml
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/portal.roles
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/spring/schema/cocoon-portal-1.0.xsd
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/avalon/cocoon-portal-sample.xconf
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/cocoon-portal-sample-components.xml
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/coplet-types.xml
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/layout-types.xml
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/impl/PortalServiceImpl.java Wed Dec 19 13:44:14 2007
@@ -16,29 +16,17 @@
*/
package org.apache.cocoon.portal.impl;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
+import java.util.Properties;
import javax.servlet.ServletContext;
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.portal.PortalRuntimeException;
import org.apache.cocoon.portal.PortalService;
import org.apache.cocoon.portal.RequestContext;
import org.apache.cocoon.portal.event.EventConverter;
import org.apache.cocoon.portal.event.EventManager;
-import org.apache.cocoon.portal.om.SkinDescription;
import org.apache.cocoon.portal.profile.ProfileManager;
import org.apache.cocoon.portal.services.CopletFactory;
import org.apache.cocoon.portal.services.LayoutFactory;
@@ -48,11 +36,8 @@
import org.apache.cocoon.portal.services.VariableResolver;
import org.apache.cocoon.portal.services.VariableResolver.CompiledExpression;
import org.apache.cocoon.portal.spi.RequestContextProvider;
-import org.apache.cocoon.util.AbstractLogEnabled;
-import org.apache.excalibur.source.Source;
-import org.apache.excalibur.source.SourceResolver;
-import org.apache.excalibur.source.TraversableSource;
-import org.springframework.web.context.ServletContextAware;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Default implementation of a portal service using a session to store
@@ -61,32 +46,17 @@
* @version $Id$
*/
public class PortalServiceImpl
- extends AbstractLogEnabled
- implements Serviceable,
- ThreadSafe,
- PortalService,
- ServletContextAware,
- Disposable,
- Configurable {
-
- /** Parameter map for the context protocol. */
- protected static final Map CONTEXT_PARAMETERS = Collections.singletonMap("force-traversable", Boolean.TRUE);
+ implements PortalService {
/** The servlet context. */
protected ServletContext servletContext;
- /** The service locator. */
- protected ServiceManager manager;
-
/** The list of skins. */
protected List skinList = new ArrayList();
/** The name of the portal. */
protected String portalName;
- /** The portal configuration. */
- protected Configuration configuration;
-
/** The profile manager. */
protected ProfileManager profileManager;
@@ -111,12 +81,21 @@
/** The request context provider. */
protected RequestContextProvider requestContextProvider;
- /**
- * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
- */
- public void service(ServiceManager serviceManager) throws ServiceException {
- this.manager = serviceManager;
- this.requestContextProvider = (RequestContextProvider)this.manager.lookup(RequestContextProvider.class.getName());
+ /** The event converter. */
+ protected EventConverter eventConverter;
+
+ /** Configuration. */
+ protected Properties configuration;
+
+ /** By default we use the logger for this class. */
+ private Log logger = LogFactory.getLog(getClass());
+
+ public Log getLogger() {
+ return this.logger;
+ }
+
+ public void setLogger(Log l) {
+ this.logger = l;
}
/**
@@ -127,12 +106,11 @@
}
/**
- * @see org.springframework.web.context.ServletContextAware#setServletContext(javax.servlet.ServletContext)
+ * Set the portal name.
+ * @param name The name of the portal.
*/
- public void setServletContext(ServletContext context) {
- this.servletContext = context;
- // add the portal service to the servlet context
- this.servletContext.setAttribute(PortalService.class.getName(), this);
+ public void setPortalName(String name) {
+ this.portalName = name;
}
/**
@@ -143,93 +121,18 @@
if ( this.servletContext != null ) {
this.servletContext.removeAttribute(PortalService.class.getName());
}
- if ( this.manager != null ) {
- this.manager.release(this.profileManager);
- this.profileManager = null;
- this.manager.release(this.linkService);
- this.linkService = null;
- this.manager.release(this.copletFactory);
- this.copletFactory = null;
- this.manager.release(this.layoutFactory);
- this.layoutFactory = null;
- this.manager.release(this.eventManager);
- this.eventManager = null;
- this.manager.release(this.portalManager);
- this.portalManager = null;
- this.manager.release(this.userService);
- this.userService = null;
- this.manager.release(this.requestContextProvider);
- this.requestContextProvider = null;
- this.manager = null;
- }
}
- /**
- * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
- */
- public void configure(Configuration config) throws ConfigurationException {
- final Configuration portal = config.getChild("portal", false);
- if ( portal == null ) {
- throw new ConfigurationException("No portal configured.", config);
- }
- this.portalName = portal.getAttribute("name");
- this.configuration = portal.getChild("configuration");
- this.configureSkins(this.getConfiguration(org.apache.cocoon.portal.Constants.CONFIGURATION_SKINS_PATH,
- org.apache.cocoon.portal.Constants.DEFAULT_CONFIGURATION_SKINS_PATH),
- this.getConfiguration(org.apache.cocoon.portal.Constants.CONFIGURATION_SKINS_PATH, null) != null);
- }
-
- protected void configureSkins(String directory, boolean check)
- throws ConfigurationException {
- SourceResolver resolver = null;
- Source dir = null;
- try {
- resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
- dir = resolver.resolveURI(directory, null, CONTEXT_PARAMETERS);
- if ( !dir.exists() ) {
- if ( check ) {
- throw new ConfigurationException("Skin directory does not exist: '" + directory + "'.");
- }
- this.getLogger().warn("No skin directory found at location '" + directory + "'.");
- return;
- }
- if ( dir instanceof TraversableSource ) {
- final Iterator children = ((TraversableSource)dir).getChildren().iterator();
- while ( children.hasNext() ) {
- final Source s = (Source)children.next();
- try {
- this.configureSkin(s);
- } finally {
- resolver.release(s);
- }
- }
- } else {
- throw new ConfigurationException("Skin configuration must point to a directory, '" + dir.getURI() + "' is not a directory.'");
- }
- } catch (IOException ioe) {
- throw new ConfigurationException("Unable to read configurations from " + directory);
- } catch (ServiceException e) {
- throw new ConfigurationException("Unable to get source resolver.");
- } finally {
- if ( resolver != null ) {
- resolver.release(dir);
- this.manager.release(resolver);
- }
+ public void setSkinDescriptions(List skins) {
+ if ( skins == null ) {
+ this.skinList = Collections.EMPTY_LIST;
+ } else {
+ this.skinList = new ArrayList(skins);
}
}
- protected void configureSkin(Source directory) {
- String uri = directory.getURI();
- if ( uri.endsWith("/") ) {
- uri = uri.substring(0, uri.length()-1);
- }
- int pos = uri.lastIndexOf('/');
- final String skinName = uri.substring(pos+1);
- final SkinDescription desc = new SkinDescription();
- desc.setName(skinName);
- desc.setBasePath(directory.getURI());
- desc.setThumbnailPath(directory.getURI() + '/' + "images/thumb.jpg");
- this.skinList.add(desc);
+ public void setConfiguration(Properties props) {
+ this.configuration = props;
}
/**
@@ -243,7 +146,14 @@
* @see org.apache.cocoon.portal.PortalService#getConfiguration(java.lang.String, java.lang.String)
*/
public String getConfiguration(String key, String defaultValue) {
- return this.configuration.getChild(key).getValue(defaultValue);
+ String result = null;
+ if ( this.configuration != null ) {
+ result = this.configuration.getProperty(key);
+ }
+ if ( result == null ) {
+ result = defaultValue;
+ }
+ return defaultValue;
}
/**
@@ -257,20 +167,17 @@
* @see org.apache.cocoon.portal.PortalService#getConfigurationAsBoolean(java.lang.String, boolean)
*/
public boolean getConfigurationAsBoolean(String key, boolean defaultValue) {
- return this.configuration.getChild(key).getValueAsBoolean(defaultValue);
+ final String value = this.getConfiguration(key);
+ if ( value == null ) {
+ return defaultValue;
+ }
+ return Boolean.valueOf(value).booleanValue();
}
/**
* @see org.apache.cocoon.portal.PortalService#getLinkService()
*/
public LinkService getLinkService() {
- if ( null == this.linkService ) {
- try {
- this.linkService = (LinkService)this.manager.lookup( LinkService.class.getName() );
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup link service.", e);
- }
- }
return this.linkService;
}
@@ -278,13 +185,6 @@
* @see org.apache.cocoon.portal.PortalService#getProfileManager()
*/
public ProfileManager getProfileManager() {
- if ( null == this.profileManager ) {
- try {
- this.profileManager = (ProfileManager)this.manager.lookup( ProfileManager.class.getName() );
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup profile manager.", e);
- }
- }
return this.profileManager;
}
@@ -292,13 +192,6 @@
* @see org.apache.cocoon.portal.PortalService#getEventManager()
*/
public EventManager getEventManager() {
- if ( null == this.eventManager ) {
- try {
- this.eventManager = (EventManager)this.manager.lookup( EventManager.class.getName() );
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup event manager.", e);
- }
- }
return this.eventManager;
}
@@ -306,13 +199,6 @@
* @see org.apache.cocoon.portal.PortalService#getCopletFactory()
*/
public CopletFactory getCopletFactory() {
- if ( null == this.copletFactory ) {
- try {
- this.copletFactory = (CopletFactory)this.manager.lookup( CopletFactory.class.getName() );
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup coplet factory.", e);
- }
- }
return this.copletFactory;
}
@@ -320,13 +206,6 @@
* @see org.apache.cocoon.portal.PortalService#getLayoutFactory()
*/
public LayoutFactory getLayoutFactory() {
- if ( null == this.layoutFactory ) {
- try {
- this.layoutFactory = (LayoutFactory)this.manager.lookup( LayoutFactory.class.getName() );
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup layout factory.", e);
- }
- }
return this.layoutFactory;
}
@@ -334,13 +213,6 @@
* @see org.apache.cocoon.portal.PortalService#getPortalManager()
*/
public PortalManager getPortalManager() {
- if ( null == this.portalManager ) {
- try {
- this.portalManager = (PortalManager)this.manager.lookup( PortalManager.class.getName() );
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup portal manager.", e);
- }
- }
return this.portalManager;
}
@@ -348,13 +220,6 @@
* @see org.apache.cocoon.portal.PortalService#getUserService()
*/
public UserService getUserService() {
- if ( this.userService == null ) {
- try {
- this.userService = (UserService)this.manager.lookup(UserService.class.getName());
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup user service.", e);
- }
- }
return this.userService;
}
@@ -362,11 +227,7 @@
* @see org.apache.cocoon.portal.PortalService#getEventConverter()
*/
public EventConverter getEventConverter() {
- try {
- return (EventConverter)this.manager.lookup(EventConverter.class.getName());
- } catch (ServiceException e) {
- throw new PortalRuntimeException("Unable to lookup event converter.", e);
- }
+ return this.eventConverter;
}
/**
Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java?rev=605714&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java Wed Dec 19 13:44:14 2007
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.spring;
+
+import javax.servlet.ServletContext;
+
+import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.event.EventConverter;
+import org.apache.cocoon.portal.event.EventManager;
+import org.apache.cocoon.portal.impl.PortalServiceImpl;
+import org.apache.cocoon.portal.profile.ProfileManager;
+import org.apache.cocoon.portal.services.CopletFactory;
+import org.apache.cocoon.portal.services.LayoutFactory;
+import org.apache.cocoon.portal.services.LinkService;
+import org.apache.cocoon.portal.services.PortalManager;
+import org.apache.cocoon.portal.services.UserService;
+import org.apache.cocoon.portal.spi.RequestContextProvider;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+
+/**
+ * This extensions of the {@link PortalServiceImpl} uses Spring
+ * to resolve the dependencies.
+ *
+ * @version $Id$
+ */
+public class SpringPortalService
+ extends PortalServiceImpl
+ implements ApplicationContextAware {
+
+ /**
+ * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
+ */
+ public void setApplicationContext(ApplicationContext appContext)
+ throws BeansException {
+ this.requestContextProvider = (RequestContextProvider) appContext.getBean(RequestContextProvider.class.getName());
+ this.servletContext = (ServletContext)appContext.getBean(ServletContext.class.getName());
+ // add the portal service to the servlet context
+ this.servletContext.setAttribute(PortalService.class.getName(), this);
+ this.profileManager = (ProfileManager)appContext.getBean(ProfileManager.class.getName());
+ this.linkService = (LinkService)appContext.getBean( LinkService.class.getName() );
+ this.eventManager = (EventManager)appContext.getBean( EventManager.class.getName() );
+ this.copletFactory = (CopletFactory)appContext.getBean( CopletFactory.class.getName() );
+ this.layoutFactory = (LayoutFactory)appContext.getBean( LayoutFactory.class.getName() );
+ this.portalManager = (PortalManager)appContext.getBean( PortalManager.class.getName() );
+ this.userService = (UserService)appContext.getBean(UserService.class.getName());
+ this.eventConverter = (EventConverter)appContext.getBean(EventConverter.class.getName());
+ }
+}
Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/spring/SpringPortalService.java
------------------------------------------------------------------------------
svn:keywords = author date id revision url
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/cocoon-portal-components.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/cocoon-portal-components.xml?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/cocoon-portal-components.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/cocoon-portal-components.xml Wed Dec 19 13:44:14 2007
@@ -31,6 +31,14 @@
http://cocoon.apache.org/schema/configurator http://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.1.xsd">
<!--+
+ | Spring Bean Post Processors:
+ +-->
+ <bean name="org.apache.cocoon.portal.spring.ReceiverBeanPostProcessor"
+ class="org.apache.cocoon.portal.spring.ReceiverBeanPostProcessor"/>
+ <bean name="org.apache.cocoon.portal.spring.RegistrationBeanPostProcessor"
+ class="org.apache.cocoon.portal.spring.RegistrationBeanPostProcessor"/>
+
+ <!--+
| Abstract Bean used as a base for nearly all beans
|
+-->
@@ -285,4 +293,5 @@
+-->
<configurator:bean-map id="org.apache.cocoon.portal.om.LayoutTypeMap"
type="org.apache.cocoon.portal.om.LayoutType"/>
+
</beans>
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/portal.roles
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/portal.roles?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/portal.roles (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/portal.roles Wed Dec 19 13:44:14 2007
@@ -18,14 +18,6 @@
<!-- @version $Id$ -->
<role-list>
<!--+
- | Spring Bean Post Processors:
- +-->
- <role name="org.apache.cocoon.portal.spring.ReceiverBeanPostProcessor"
- default-class="org.apache.cocoon.portal.spring.ReceiverBeanPostProcessor"/>
- <role name="org.apache.cocoon.portal.spring.RegistrationBeanPostProcessor"
- default-class="org.apache.cocoon.portal.spring.RegistrationBeanPostProcessor"/>
-
- <!--+
| Coplet and Layout Source.
|
+-->
@@ -33,15 +25,6 @@
default-class="org.apache.cocoon.portal.source.CopletSourceFactory"/>
<role name="org.apache.excalibur.source.SourceFactory/layout"
default-class="org.apache.cocoon.portal.source.LayoutSourceFactory"/>
-
-
- <!--+
- | Portal Service.
- |
- +-->
- <role name="org.apache.cocoon.portal.PortalService"
- default-class="org.apache.cocoon.portal.impl.PortalServiceImpl"
- shorthand="portal-service"/>
<!--+
| Deployment Manager
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/spring/schema/cocoon-portal-1.0.xsd
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/spring/schema/cocoon-portal-1.0.xsd?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/spring/schema/cocoon-portal-1.0.xsd (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/spring/schema/cocoon-portal-1.0.xsd Wed Dec 19 13:44:14 2007
@@ -81,12 +81,7 @@
<xsd:element name="layout-type">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="renderer" minOccurs="1" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:attribute name="ref" type="xsd:string" use="optional"/>
- <xsd:attribute name="type" type="xsd:string" use="optional"/>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element ref="renderer" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID" use="required"/>
<xsd:attribute name="layoutClass" type="xsd:string" use="required"/>
@@ -96,25 +91,36 @@
</xsd:complexType>
</xsd:element>
+ <xsd:element name="renderer">
+ <xsd:complexType>
+ <xsd:attribute name="ref" type="xsd:string" use="optional"/>
+ <xsd:attribute name="type" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
<xsd:element name="coplet-type">
<xsd:complexType>
<xsd:sequence>
- <xsd:element name="coplet-adapter" minOccurs="1" maxOccurs="1">
- <xsd:complexType>
- <xsd:attribute name="ref" type="xsd:string" use="optional"/>
- <xsd:attribute name="type" type="xsd:string" use="optional"/>
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="configuration" minOccurs="0" maxOccurs="unbounded">
- <xsd:complexType>
- <xsd:attribute name="name" type="xsd:string" use="required"/>
- <xsd:attribute name="value" type="xsd:string" use="required"/>
- <xsd:attribute name="type" type="xsd:string" use="optional"/>
- </xsd:complexType>
- </xsd:element>
+ <xsd:element ref="coplet-adapter" minOccurs="1" maxOccurs="1"/>
+ <xsd:element ref="configuration" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID" use="optional"/>
<xsd:attribute name="name" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="coplet-adapter">
+ <xsd:complexType>
+ <xsd:attribute name="ref" type="xsd:string" use="optional"/>
+ <xsd:attribute name="type" type="xsd:string" use="optional"/>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="configuration">
+ <xsd:complexType>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ <xsd:attribute name="type" type="xsd:string" use="optional"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/avalon/cocoon-portal-sample.xconf
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/avalon/cocoon-portal-sample.xconf?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/avalon/cocoon-portal-sample.xconf (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/avalon/cocoon-portal-sample.xconf Wed Dec 19 13:44:14 2007
@@ -44,18 +44,6 @@
<!-- We use Castor for persisting/mapping the profiles to XML: -->
<include src="resource://org/apache/cocoon/portal/persistence/castor/portal-castor.roles"/>
- <portal-service>
- <portal name="portal">
- <!-- Configuration: -->
- <configuration>
- <!-- The directory where all possible skins are stored. -->
- <skins-path>skins</skins-path>
- <!-- Whether the portal should use ajax or not -->
- <use-ajax>false</use-ajax>
- </configuration>
- </portal>
- </portal-service>
-
<!--+
| Deployment Manager.
+-->
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/cocoon-portal-sample-components.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/cocoon-portal-sample-components.xml?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/cocoon-portal-sample-components.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/cocoon-portal-sample-components.xml Wed Dec 19 13:44:14 2007
@@ -27,6 +27,18 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://cocoon.apache.org/schema/portal http://cocoon.apache.org/schema/portal/cocoon-portal-1.0.xsd">
+ <!--+
+ | THIS IS A SAMPLE PORTAL
+ |
+ | It demonstrates several features of the portal engine,
+ | so it's neither configured for *your* environment nor
+ | optimized for production. If you use the portal for your
+ | own projects make sure that you remove all unused stuff
+ | from the configuration and that you configure the remaining
+ | components properly. However, the best way is to start your
+ | portal project from scratch!
+ +-->
+
<!-- Include sitemap default beans -->
<import resource="classpath:org/apache/cocoon/portal/sitemap/cocoon-portal-sitemap-components.xml"/>
@@ -107,5 +119,42 @@
<portal:profile-manager-aspects id="org.apache.cocoon.portal.profile.ProfileManager.aspects">
<!-- Add your aspects here -->
</portal:profile-manager-aspects>
+
+ <!--+
+ | Portal Service.
+ |
+ +-->
+ <bean name="org.apache.cocoon.portal.PortalService"
+ class="org.apache.cocoon.portal.spring.SpringPortalService"
+ scope="singleton">
+ <!-- Configuration: -->
+ <property name="portalName" value="portal"/>
+ <!-- The available skins -->
+ <property name="skinDescriptions">
+ <list>
+ <bean class="org.apache.cocoon.portal.om.SkinDescription">
+ <property name="name" value="basic"/>
+ <property name="basePath" value="skins/basic"/>
+ <property name="thumbnailPath" value="skins/basic/images/thumb.jpg"/>
+ </bean>
+ <bean class="org.apache.cocoon.portal.om.SkinDescription">
+ <property name="name" value="common"/>
+ <property name="basePath" value="skins/common"/>
+ <property name="thumbnailPath" value="skins/common/images/thumb.jpg"/>
+ </bean>
+ <bean class="org.apache.cocoon.portal.om.SkinDescription">
+ <property name="name" value="modern"/>
+ <property name="basePath" value="skins/modern"/>
+ <property name="thumbnailPath" value="skins/modern/images/thumb.jpg"/>
+ </bean>
+ </list>
+ </property>
+ <property name="configuration">
+ <value>
+ <!-- Whether the portal should use ajax or not -->
+ use-ajax=false
+ </value>
+ </property>
+ </bean>
</beans>
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/coplet-types.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/coplet-types.xml?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/coplet-types.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/coplet-types.xml Wed Dec 19 13:44:14 2007
@@ -33,15 +33,15 @@
<portal:coplet-type id="portlet">
<portal:coplet-adapter type="portlet"/>
- <portal:configuration key="buffer" type="boolean" value="true"/>
- <portal:configuration key="full-screen" type="boolean" value="false"/>
- <portal:configuration key="handle-sizing" type="boolean" value="true"/>
+ <portal:configuration name="buffer" type="boolean" value="true"/>
+ <portal:configuration name="full-screen" type="boolean" value="false"/>
+ <portal:configuration name="handle-sizing" type="boolean" value="true"/>
</portal:coplet-type>
<!--
<portal:coplet-type id="wsrp">
<portal:coplet-adapter type="wsrp"/>
- <portal:configuration key="buffer" type="boolean" value="true"/>
+ <portal:configuration name="buffer" type="boolean" value="true"/>
</portal:coplet-type>
-->
</beans>
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/layout-types.xml
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/layout-types.xml?rev=605714&r1=605713&r2=605714&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/layout-types.xml (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/layout-types.xml Wed Dec 19 13:44:14 2007
@@ -36,19 +36,19 @@
</portal:layout-type>
<portal:layout-type id="tab" layoutClass="org.apache.cocoon.portal.om.CompositeLayout"
- itemClassName="org.apache.cocoon.portal.om.NamedItem"
+ itemClass="org.apache.cocoon.portal.om.NamedItem"
createLayoutId="true" defaultIsStatic="true">
<portal:renderer type="tab"/>
</portal:layout-type>
<portal:layout-type id="rawtab" layoutClass="org.apache.cocoon.portal.om.CompositeLayout"
- itemClassName="org.apache.cocoon.portal.om.NamedItem"
+ itemClass="org.apache.cocoon.portal.om.NamedItem"
createLayoutId="true" defaultIsStatic="true">
<portal:renderer type="rawtab"/>
</portal:layout-type>
<portal:layout-type id="linktab" layoutClass="org.apache.cocoon.portal.om.CompositeLayout"
- itemClassName="org.apache.cocoon.portal.om.NamedItem"
+ itemClass="org.apache.cocoon.portal.om.NamedItem"
createLayoutId="true" defaultIsStatic="true">
<portal:renderer type="linktab"/>
</portal:layout-type>