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/10 20:55:57 UTC
svn commit: r603019 - in /cocoon/trunk/blocks/cocoon-portal:
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/
cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/
cocoon-portal-impl/src/main/java/org/apach...
Author: cziegeler
Date: Mon Dec 10 11:55:55 2007
New Revision: 603019
URL: http://svn.apache.org/viewvc?rev=603019&view=rev
Log:
Refactor profile loading and object conversion.
Added:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/Converter.java
- copied, changed from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/Converter.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ConverterException.java
- copied, changed from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/ConverterException.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java (with props)
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileStore.java
- copied, changed from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileLS.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapBasedProfileStore.java
- copied, changed from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java
Removed:
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/Converter.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/ConverterException.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileLS.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java
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/persistence/castor/ReferenceFieldHandler.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileException.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.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/persistence/castor/portal-castor.roles
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/portal.roles
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java
cocoon/trunk/blocks/cocoon-portal/cocoon-portal-sample/src/main/resources/COB-INF/config/spring/cocoon-portal-sample-components.xml
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/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/CastorSourceConverter.java?rev=603019&r1=603018&r2=603019&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 Mon Dec 10 11:55:55 2007
@@ -36,9 +36,10 @@
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
import org.apache.cocoon.components.source.SourceUtil;
-import org.apache.cocoon.portal.persistence.Converter;
-import org.apache.cocoon.portal.persistence.ConverterException;
-import org.apache.cocoon.portal.profile.ProfileLS;
+import org.apache.cocoon.portal.profile.Converter;
+import org.apache.cocoon.portal.profile.ConverterException;
+import org.apache.cocoon.portal.profile.PersistenceType;
+import org.apache.cocoon.portal.profile.ProfileStore;
import org.apache.cocoon.util.AbstractLogEnabled;
import org.apache.cocoon.util.ClassUtils;
import org.apache.excalibur.source.Source;
@@ -82,21 +83,20 @@
protected ReferenceResolver idResolver = new ReferenceResolver();
/**
- * @see org.apache.cocoon.portal.persistence.Converter#getObject(java.io.InputStream, java.lang.String, java.util.Map, java.util.Map)
+ * @see org.apache.cocoon.portal.profile.Converter#getObject(java.io.InputStream, org.apache.cocoon.portal.profile.PersistenceType, java.util.Map)
*/
public Object getObject(InputStream stream,
- String mappingName,
- Map references,
+ PersistenceType type,
Map parameters)
throws ConverterException {
try {
- threadLocalMap.set(references);
- final Unmarshaller unmarshaller = (Unmarshaller)((Object[])this.mappings.get(mappingName))[1];
+ threadLocalMap.set(type);
+ final Unmarshaller unmarshaller = (Unmarshaller)((Object[])this.mappings.get(type.getType()))[1];
final Object result = unmarshaller.unmarshal(new InputSource(stream));
stream.close();
return result;
} catch (IllegalStateException ise) {
- throw new ConverterException("Unable to unmarshal objects for mapping " + mappingName, ise);
+ throw new ConverterException("Unable to unmarshal objects for mapping " + type.getType(), ise);
} catch (Exception e) {
throw new ConverterException(e.getMessage(), e);
} finally {
@@ -105,21 +105,22 @@
}
/**
- * @see org.apache.cocoon.portal.persistence.Converter#storeObject(java.io.OutputStream, java.lang.String, java.lang.Object, java.util.Map)
+ * @see org.apache.cocoon.portal.profile.Converter#storeObject(java.io.OutputStream, java.lang.Object, org.apache.cocoon.portal.profile.PersistenceType, java.util.Map)
*/
public void storeObject(OutputStream stream,
- String mappingName,
- Object referenceObject,
+ Object object,
+ PersistenceType type,
Map parameters)
throws ConverterException {
- Object references = referenceObject;
- if ( referenceObject instanceof Collection && !(referenceObject instanceof CollectionWrapper) ) {
- references = new CollectionWrapper((Collection)referenceObject);
+ Object references = object;
+ if ( object instanceof Collection && !(object instanceof CollectionWrapper) ) {
+ references = new CollectionWrapper((Collection)object);
}
Writer writer = new OutputStreamWriter(stream);
try {
+ threadLocalMap.set(type);
Marshaller marshaller = new Marshaller( writer );
- marshaller.setMapping((Mapping)((Object[])this.mappings.get(mappingName))[0]);
+ marshaller.setMapping((Mapping)((Object[])this.mappings.get(type.getType()))[0]);
boolean suppressXSIType = this.defaultSuppressXSIType;
if ( parameters != null ) {
Boolean value = (Boolean)parameters.get("suppressXSIType");
@@ -134,6 +135,8 @@
throw new ConverterException("Can't create Unmarshaller", e);
} catch (Exception e) {
throw new ConverterException(e.getMessage(), e);
+ } finally {
+ threadLocalMap.set(null);
}
}
@@ -160,9 +163,9 @@
// default configuration
final String prefix = "resource://org/apache/cocoon/portal/persistence/castor/";
- this.mappingSources.put(ProfileLS.PROFILETYPE_LAYOUT, prefix + ProfileLS.PROFILETYPE_LAYOUT +".xml");
- this.mappingSources.put(ProfileLS.PROFILETYPE_COPLETDEFINITION, prefix + ProfileLS.PROFILETYPE_COPLETDEFINITION + ".xml");
- this.mappingSources.put(ProfileLS.PROFILETYPE_COPLETINSTANCE, prefix + ProfileLS.PROFILETYPE_COPLETINSTANCE + ".xml");
+ this.mappingSources.put(ProfileStore.PROFILETYPE_LAYOUT, prefix + ProfileStore.PROFILETYPE_LAYOUT +".xml");
+ this.mappingSources.put(ProfileStore.PROFILETYPE_COPLETDEFINITION, prefix + ProfileStore.PROFILETYPE_COPLETDEFINITION + ".xml");
+ this.mappingSources.put(ProfileStore.PROFILETYPE_COPLETINSTANCE, prefix + ProfileStore.PROFILETYPE_COPLETINSTANCE + ".xml");
boolean plutoAvailable = false;
try {
ClassUtils.loadClass("org.apache.cocoon.portal.pluto.adapter.PortletAdapter");
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ReferenceFieldHandler.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ReferenceFieldHandler.java?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ReferenceFieldHandler.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/castor/ReferenceFieldHandler.java Mon Dec 10 11:55:55 2007
@@ -16,6 +16,7 @@
*/
package org.apache.cocoon.portal.persistence.castor;
+import java.util.Iterator;
import java.util.Map;
import org.apache.cocoon.portal.om.CopletDefinition;
@@ -23,6 +24,7 @@
import org.apache.cocoon.portal.om.CopletType;
import org.apache.cocoon.portal.om.Layout;
import org.apache.cocoon.portal.om.LayoutType;
+import org.apache.cocoon.portal.profile.PersistenceType;
import org.exolab.castor.mapping.AbstractFieldHandler;
/**
@@ -36,13 +38,25 @@
* @see org.exolab.castor.mapping.FieldHandler#getValue(java.lang.Object)
*/
public Object getValue(Object object) {
- if ( object instanceof CopletDefinition ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("copletType") ) {
return ((CopletDefinition)object).getCopletType().getId();
}
- if ( object instanceof CopletInstance ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("copletDefinition") ) {
return ((CopletInstance)object).getCopletDefinition().getId();
}
- if ( object instanceof Layout ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("customRenderer") ) {
+ final Object renderer = ((Layout)object).getCustomRenderer();
+ final PersistenceType type = (PersistenceType)CastorSourceConverter.threadLocalMap.get();
+ final Map references = type.getReferences(this.getFieldDescriptor().getFieldName());
+ final Iterator i = references.entrySet().iterator();
+ while ( i.hasNext() ) {
+ final Map.Entry current = (Map.Entry)i.next();
+ if ( current.getValue() == renderer ) {
+ return current.getKey();
+ }
+ }
+ }
+ if ( this.getFieldDescriptor().getFieldName().equals("layoutType") ) {
return ((Layout)object).getLayoutType().getId();
}
return null;
@@ -66,13 +80,13 @@
* @see org.exolab.castor.mapping.FieldHandler#resetValue(java.lang.Object)
*/
public void resetValue(Object object) {
- if ( object instanceof CopletDefinition ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("copletType") ) {
((CopletDefinition)object).setCopletType(null);
}
- if ( object instanceof CopletInstance ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("copletDefinition") ) {
((CopletInstance)object).setCopletDefinition(null);
}
- if ( object instanceof Layout ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("layoutType") ) {
((Layout)object).setLayoutType(null);
}
}
@@ -81,15 +95,16 @@
* @see org.exolab.castor.mapping.FieldHandler#setValue(java.lang.Object, java.lang.Object)
*/
public void setValue(Object object, Object value) {
- final Map references = (Map)CastorSourceConverter.threadLocalMap.get();
+ final PersistenceType type = (PersistenceType)CastorSourceConverter.threadLocalMap.get();
+ final Map references = type.getReferences(this.getFieldDescriptor().getFieldName());
final Object reference = (references != null ? references.get(value) : null);
- if ( object instanceof CopletDefinition ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("copletType") ) {
((CopletDefinition)object).setCopletType((CopletType)reference);
}
- if ( object instanceof CopletInstance ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("copletDefinition") ) {
((CopletInstance)object).setCopletDefinition((CopletDefinition)reference);
}
- if ( object instanceof Layout ) {
+ if ( this.getFieldDescriptor().getFieldName().equals("layoutType") ) {
((Layout)object).setLayoutType((LayoutType)reference);
}
}
Copied: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/Converter.java (from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/Converter.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/Converter.java?p2=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/Converter.java&p1=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/Converter.java&r1=602917&r2=603019&rev=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/Converter.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/Converter.java Mon Dec 10 11:55:55 2007
@@ -14,12 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.portal.persistence;
+package org.apache.cocoon.portal.profile;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
+
/**
* This is a component that converts a profile (= object tree) to a persistence
* format.
@@ -28,35 +29,31 @@
*/
public interface Converter {
- /** The role to lookup this component. */
- public static final String ROLE = Converter.class.getName();
-
/**
- * Load an object from the given input stream.
+ * Load an object from the given input stream.
* @param stream The input stream with the data.
- * @param profileType {@link org.apache.cocoon.portal.profile.ProfileLS}
+ * @param profileType {@link org.apache.cocoon.portal.profile.ProfileStore}
* @param references A map of references referenced from the profile.
* @param parameters An optional map of parameters for the conversion.
* @return The loaded object.
* @throws ConverterException
*/
Object getObject(InputStream stream,
- String profileType,
- Map references,
+ PersistenceType type,
Map parameters)
throws ConverterException;
/**
* Save an object to a given stream.
* @param stream The output stream.
- * @param profileType {@link org.apache.cocoon.portal.profile.ProfileLS}
+ * @param profileType {@link org.apache.cocoon.portal.profile.ProfileStore}
* @param object The object to save.
* @param parameters An optional map of parameters for the conversion.
* @throws ConverterException
*/
void storeObject(OutputStream stream,
- String profileType,
Object object,
+ PersistenceType type,
Map parameters)
throws ConverterException;
}
Copied: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ConverterException.java (from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/ConverterException.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ConverterException.java?p2=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ConverterException.java&p1=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/ConverterException.java&r1=602917&r2=603019&rev=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/persistence/ConverterException.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ConverterException.java Mon Dec 10 11:55:55 2007
@@ -14,14 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.portal.persistence;
-
-import org.apache.avalon.framework.CascadingException;
+package org.apache.cocoon.portal.profile;
/**
* @version $Id$
*/
-public class ConverterException extends CascadingException {
+public class ConverterException extends Exception {
public ConverterException(String message) {
super(message);
Added: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java?rev=603019&view=auto
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java (added)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java Mon Dec 10 11:55:55 2007
@@ -0,0 +1,76 @@
+/*
+ * 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.profile;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This component is used for loading/saving of a profile.
+ *
+ * The load/save method is able to load/save the various parts of the profile.
+ * The correct profile type is specified by a constant. For resolving
+ * references during loading an object map is passsed to the loadProfile method.
+ * This object map varies depending on the profile type:
+ * PROFILETYPE_LAYOUT: A map with layout types.
+ * PROFILETYPE_LAYOUTINSTANCE: -
+ * PROFILETYPE_COPLETDEFINITION: A map with coplet types.
+ * PROFILETYPE_COPLETINSTANCE: A map with coplet definitions
+ *
+ * @version $Id$
+ */
+public class PersistenceType {
+
+ public static final String PERSISTENCETYPE_LAYOUT = "layout";
+ public static final String PPERSISTENCETYPE_LAYOUTINSTANCE = "layoutinstance";
+ public static final String PERSISTENCETYPE_COPLETDEFINITION = "copletdefinition";
+ public static final String PERSISTENCETYPE_COPLETINSTANCE = "copletinstance";
+
+ protected final String type;
+
+ protected final Map references = new HashMap();
+
+ public PersistenceType(final String t) {
+ this.type = t;
+ }
+
+ public String getType() {
+ return this.type;
+ }
+
+ public void setReferences(final String fieldKey, final Map objects) {
+ // TODO - check the fieldKey for the type
+ this.references.put(fieldKey, objects);
+ }
+
+ public Map getReferences(final String fieldKey) {
+ return (Map) this.references.get(fieldKey);
+ }
+
+ public Object getReference(final String fieldKey, final String key) {
+ final Map objects = (Map)this.references.get(fieldKey);
+ if ( objects != null ) {
+ return objects.get(key);
+ }
+ return null;
+ }
+
+ public Collection getReferenceFieldKeys() {
+ return this.references.keySet();
+ }
+}
Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/PersistenceType.java
------------------------------------------------------------------------------
svn:keywords = author date id revision url
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileException.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileException.java?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileException.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileException.java Mon Dec 10 11:55:55 2007
@@ -23,6 +23,7 @@
* @version $Id$
*/
public class ProfileException extends PortalRuntimeException {
+
public ProfileException() {
super();
}
Copied: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileStore.java (from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileLS.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileStore.java?p2=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileStore.java&p1=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileLS.java&r1=602917&r2=603019&rev=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileLS.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/ProfileStore.java Mon Dec 10 11:55:55 2007
@@ -16,8 +16,6 @@
*/
package org.apache.cocoon.portal.profile;
-import java.util.Map;
-
import org.apache.excalibur.source.SourceValidity;
/**
@@ -34,10 +32,10 @@
*
* @version $Id$
*/
-public interface ProfileLS {
+public interface ProfileStore {
/** Component role */
- String ROLE = ProfileLS.class.getName();
+ String ROLE = ProfileStore.class.getName();
String PROFILETYPE_LAYOUT = "layout";
String PROFILETYPE_LAYOUTINSTANCE = "layoutinstance";
@@ -51,7 +49,7 @@
* @param profileType The type of the profile (instances, types, layouts etc. )
* @param objectMap Map with objects which might be references by the profile.
*/
- Object loadProfile(Object key, String profileType, Map objectMap)
+ Object loadProfile(Object key, PersistenceType type)
throws Exception;
/**
@@ -61,7 +59,7 @@
* @param profileType The type of the profile (instances, types, layouts etc. )
* @param profile The profile itself.
*/
- void saveProfile(Object key, String profileType, Object profile) throws Exception;
+ void saveProfile(Object key, PersistenceType type, Object profile) throws Exception;
/**
* Get the validity of a profile.
@@ -69,5 +67,5 @@
* like user etc.
* @param profileType The type of the profile (instances, types, layouts etc. )
*/
- SourceValidity getValidity(Object key, String profileType);
+ SourceValidity getValidity(Object key, String type);
}
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/AbstractProfileManager.java Mon Dec 10 11:55:55 2007
@@ -56,8 +56,15 @@
/** The map of coplet types. */
protected Map copletTypesMap = Collections.EMPTY_MAP;
+ /** The map of renderers. */
+ protected Map rendererMap = Collections.EMPTY_MAP;
+
public void setCopletTypesMap(final Map m) {
this.copletTypesMap = (m != null ? m : Collections.EMPTY_MAP);
+ }
+
+ public void setRendererMap(final Map m) {
+ this.rendererMap = (m != null ? m : Collections.EMPTY_MAP);
}
/**
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/GroupBasedProfileManager.java Mon Dec 10 11:55:55 2007
@@ -40,8 +40,9 @@
import org.apache.cocoon.portal.om.LayoutException;
import org.apache.cocoon.portal.om.LayoutInstance;
import org.apache.cocoon.portal.om.PortalUser;
+import org.apache.cocoon.portal.profile.PersistenceType;
import org.apache.cocoon.portal.profile.ProfileException;
-import org.apache.cocoon.portal.profile.ProfileLS;
+import org.apache.cocoon.portal.profile.ProfileStore;
import org.apache.commons.collections.map.LinkedMap;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.excalibur.source.SourceNotFoundException;
@@ -89,12 +90,12 @@
protected boolean checkForChanges = true;
/** The profiler loader/saver. */
- protected ProfileLS loader;
+ protected ProfileStore loader;
/** The configuration for loading/saving the profile. */
protected Properties configuration;
- public void setProfileLS(ProfileLS loader) {
+ public void setProfileLS(ProfileStore loader) {
this.loader = loader;
}
@@ -339,7 +340,7 @@
}
final Map key = this.buildKey(CATEGORY_GLOBAL,
- ProfileLS.PROFILETYPE_COPLETDEFINITION,
+ ProfileStore.PROFILETYPE_COPLETDEFINITION,
info,
true,
null);
@@ -351,7 +352,7 @@
if ( validity == SourceValidity.VALID) {
return this.copletDefinitions.objects;
} else if ( validity == SourceValidity.UNKNOWN ) {
- newValidity = loader.getValidity(key, ProfileLS.PROFILETYPE_COPLETDEFINITION);
+ newValidity = loader.getValidity(key, ProfileStore.PROFILETYPE_COPLETDEFINITION);
if ( newValidity != null
&& this.copletDefinitions.validity.isValid(newValidity) == SourceValidity.VALID) {
return this.copletDefinitions.objects;
@@ -360,7 +361,10 @@
}
synchronized ( this ) {
- Collection collection = (Collection)loader.loadProfile(key, ProfileLS.PROFILETYPE_COPLETDEFINITION, this.copletTypesMap);
+ final PersistenceType persType = new PersistenceType(ProfileStore.PROFILETYPE_COPLETDEFINITION);
+ persType.setReferences("copletType", this.copletTypesMap);
+
+ Collection collection = (Collection)loader.loadProfile(key, persType);
collection = this.processCopletDefinitions(collection);
final Iterator i = collection.iterator();
final Map objects = new HashMap();
@@ -377,7 +381,7 @@
// now add deployed coplets
this.copletDefinitions.objects.putAll(this.deployedCopletDefinitions);
if ( newValidity == null ) {
- newValidity = loader.getValidity(key, ProfileLS.PROFILETYPE_COPLETDEFINITION);
+ newValidity = loader.getValidity(key, ProfileStore.PROFILETYPE_COPLETDEFINITION);
}
this.copletDefinitions.validity = newValidity;
@@ -402,12 +406,15 @@
final String layoutKey)
throws Exception {
Map key = this.buildKey(category,
- ProfileLS.PROFILETYPE_COPLETINSTANCE,
+ ProfileStore.PROFILETYPE_COPLETINSTANCE,
info,
true,
layoutKey);
try {
- Collection cidm = (Collection)loader.loadProfile(key, ProfileLS.PROFILETYPE_COPLETINSTANCE, profile.getCopletDefinitionsMap());
+ final PersistenceType persType = new PersistenceType(ProfileStore.PROFILETYPE_COPLETINSTANCE);
+ persType.setReferences("copletDefinition", profile.getCopletDefinitionsMap());
+
+ Collection cidm = (Collection)loader.loadProfile(key, persType);
cidm = this.processCopletInstances(profile, cidm);
profile.setCopletInstances(cidm);
@@ -426,12 +433,16 @@
final String layoutKey)
throws Exception {
final Map key = this.buildKey(category,
- ProfileLS.PROFILETYPE_LAYOUT,
+ ProfileStore.PROFILETYPE_LAYOUT,
info,
true,
layoutKey);
try {
- Layout l = (Layout)loader.loadProfile(key, ProfileLS.PROFILETYPE_LAYOUT, profile.getLayoutTypesMap());
+ final PersistenceType persType = new PersistenceType(ProfileStore.PROFILETYPE_LAYOUT);
+ persType.setReferences("layoutType", profile.getLayoutTypesMap());
+ persType.setReferences("customRenderer", this.rendererMap);
+
+ Layout l = (Layout)loader.loadProfile(key, persType);
l = this.processLayout(profile, l);
profile.setRootLayout(l);
@@ -495,11 +506,14 @@
try {
final ProfileHolder profile = this.getUserProfile();
final Map key = this.buildKey(CATEGORY_USER,
- ProfileLS.PROFILETYPE_COPLETINSTANCE,
+ ProfileStore.PROFILETYPE_COPLETINSTANCE,
this.portalService.getUserService().getUser(),
false,
null);
- this.loader.saveProfile(key, ProfileLS.PROFILETYPE_COPLETINSTANCE, profile.getCopletInstances());
+ final PersistenceType persType = new PersistenceType(ProfileStore.PROFILETYPE_COPLETINSTANCE);
+ persType.setReferences("copletDefinition", profile.getCopletDefinitionsMap());
+
+ this.loader.saveProfile(key, persType, profile.getCopletInstances());
} catch (Exception e) {
// TODO
throw new ProfileException("Exception during save profile", e);
@@ -510,11 +524,14 @@
try {
final ProfileHolder profile = this.getUserProfile();
final Map key = this.buildKey(CATEGORY_USER,
- ProfileLS.PROFILETYPE_LAYOUTINSTANCE,
+ ProfileStore.PROFILETYPE_LAYOUTINSTANCE,
this.portalService.getUserService().getUser(),
false,
null);
- this.loader.saveProfile(key, ProfileLS.PROFILETYPE_LAYOUTINSTANCE, profile.getRootLayout());
+ final PersistenceType persType = new PersistenceType(ProfileStore.PROFILETYPE_LAYOUTINSTANCE);
+ persType.setReferences("layout", profile.keyedLayouts);
+
+ this.loader.saveProfile(key, persType, profile.getRootLayout());
} catch (Exception e) {
// TODO
throw new ProfileException("Exception during save profile", e);
Copied: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapBasedProfileStore.java (from r602917, cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapBasedProfileStore.java?p2=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapBasedProfileStore.java&p1=cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java&r1=602917&r2=603019&rev=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/MapBasedProfileStore.java Mon Dec 10 11:55:55 2007
@@ -17,30 +17,20 @@
package org.apache.cocoon.portal.profile.impl;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.avalon.framework.activity.Disposable;
-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.persistence.Converter;
-import org.apache.cocoon.portal.profile.ProfileLS;
-import org.apache.cocoon.util.AbstractLogEnabled;
+import org.apache.cocoon.portal.profile.Converter;
+import org.apache.cocoon.portal.profile.PersistenceType;
+import org.apache.cocoon.portal.profile.ProfileStore;
+import org.apache.cocoon.portal.util.AbstractBean;
import org.apache.cocoon.util.NetUtils;
-import org.apache.cocoon.xml.dom.DOMUtil;
import org.apache.excalibur.source.ModifiableSource;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceResolver;
import org.apache.excalibur.source.SourceValidity;
-import org.apache.excalibur.xml.sax.SAXParser;
-import org.apache.excalibur.xml.xpath.XPathProcessor;
-import org.w3c.dom.Element;
/**
* This implementation uses a {@link Converter} component to load/save
@@ -48,15 +38,9 @@
*
* @version $Id$
*/
-public class MapProfileLS
- extends AbstractLogEnabled
- implements Serviceable, ProfileLS, ThreadSafe, Disposable {
-
- /** The service manager. */
- protected ServiceManager manager;
-
- /** The XPath Processor. */
- protected XPathProcessor xpathProcessor;
+public class MapBasedProfileStore
+ extends AbstractBean
+ implements ProfileStore {
/** The converter component. */
protected Converter converter;
@@ -64,32 +48,15 @@
/** The source resolver. */
protected SourceResolver resolver;
- /**
- * @see org.apache.avalon.framework.activity.Disposable#dispose()
- */
- public void dispose() {
- if ( this.manager != null ) {
- this.manager.release( this.xpathProcessor );
- this.xpathProcessor = null;
- this.manager.release( this.converter );
- this.converter = null;
- this.manager.release( this.resolver );
- this.resolver = null;
- this.manager = null;
- }
+ public void setSourceResolver(SourceResolver sr) {
+ this.resolver = sr;
}
- /**
- * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
- */
- public void service(ServiceManager aManager) throws ServiceException {
- this.manager = aManager;
- this.xpathProcessor = (XPathProcessor)this.manager.lookup(XPathProcessor.ROLE);
- this.converter = (Converter)this.manager.lookup(Converter.ROLE);
- this.resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
+ public void setConverter(Converter c) {
+ this.converter = c;
}
- protected String getURI(Map keyMap)
+ protected String getURI(Map keyMap)
throws Exception {
final StringBuffer buffer = new StringBuffer();
Iterator iter = keyMap.entrySet().iterator();
@@ -124,14 +91,14 @@
buffer.append(append);
}
}
-
+
return buffer.toString();
}
/**
- * @see org.apache.cocoon.portal.profile.ProfileLS#loadProfile(java.lang.Object, java.lang.String, java.util.Map)
+ * @see org.apache.cocoon.portal.profile.ProfileStore#loadProfile(java.lang.Object, org.apache.cocoon.portal.profile.PersistenceType)
*/
- public Object loadProfile(Object key, String profileType, Map objectMap)
+ public Object loadProfile(Object key, PersistenceType type)
throws Exception {
final Map keyMap = (Map) key;
@@ -142,8 +109,7 @@
source = this.resolver.resolveURI(uri);
return this.converter.getObject(source.getInputStream(),
- profileType,
- objectMap,
+ type,
null);
} finally {
this.resolver.release(source);
@@ -151,9 +117,9 @@
}
/**
- * @see org.apache.cocoon.portal.profile.ProfileLS#saveProfile(java.lang.Object, java.lang.String, java.lang.Object)
+ * @see org.apache.cocoon.portal.profile.ProfileStore#saveProfile(java.lang.Object, org.apache.cocoon.portal.profile.PersistenceType, java.lang.Object)
*/
- public void saveProfile(Object key, String profileType, Object profile)
+ public void saveProfile(Object key, PersistenceType type, Object profile)
throws Exception {
final Map keyMap = (Map) key;
@@ -165,8 +131,8 @@
source = this.resolver.resolveURI(uri);
if ( source instanceof ModifiableSource ) {
this.converter.storeObject( ((ModifiableSource)source).getOutputStream(),
- profileType,
profile,
+ type,
null);
return;
}
@@ -176,39 +142,26 @@
}
final StringBuffer buffer = new StringBuffer(uri);
- SAXParser parser = null;
- try {
- ByteArrayOutputStream writer = new ByteArrayOutputStream();
- this.converter.storeObject(writer,
- profileType,
- profile,
- null);
-
- buffer.append("&content=");
- try {
- buffer.append(NetUtils.encode(writer.toString(), "utf-8"));
- } catch (UnsupportedEncodingException uee) {
- // ignore this as utf-8 is always supported
- }
-
- source = this.resolver.resolveURI(buffer.toString());
+ ByteArrayOutputStream writer = new ByteArrayOutputStream();
+ this.converter.storeObject(writer,
+ profile,
+ type,
+ null);
- parser = (SAXParser)this.manager.lookup(SAXParser.ROLE);
- Element element = DOMUtil.getDocumentFragment(parser, new InputStreamReader(source.getInputStream())).getOwnerDocument().getDocumentElement();
- if (!DOMUtil.getValueOf(element, "descendant::sourceResult/execution", this.xpathProcessor).trim().equals("success")) {
- throw new IOException("Could not save profile: "+DOMUtil.getValueOf(element, "descendant::sourceResult/message", this.xpathProcessor));
- }
+ buffer.append("&content=");
+ try {
+ buffer.append(NetUtils.encode(writer.toString(), "utf-8"));
+ } catch (UnsupportedEncodingException uee) {
+ // ignore this as utf-8 is always supported
+ }
- } finally {
- this.resolver.release(source);
- this.manager.release(parser);
- }
+ source = this.resolver.resolveURI(buffer.toString());
}
/**
- * @see org.apache.cocoon.portal.profile.ProfileLS#getValidity(java.lang.Object, java.lang.String)
+ * @see org.apache.cocoon.portal.profile.ProfileStore#getValidity(java.lang.Object, java.lang.String)
*/
- public SourceValidity getValidity(Object key, String profileType) {
+ public SourceValidity getValidity(Object key, String type) {
Source source = null;
try {
final Map keyMap = (Map) key;
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/profile/impl/StaticProfileManager.java Mon Dec 10 11:55:55 2007
@@ -30,8 +30,9 @@
import org.apache.cocoon.portal.om.Item;
import org.apache.cocoon.portal.om.Layout;
import org.apache.cocoon.portal.om.LayoutInstance;
+import org.apache.cocoon.portal.profile.PersistenceType;
import org.apache.cocoon.portal.profile.ProfileException;
-import org.apache.cocoon.portal.profile.ProfileLS;
+import org.apache.cocoon.portal.profile.ProfileStore;
import org.apache.commons.collections.map.LinkedMap;
import org.apache.commons.collections.map.StaticBucketMap;
import org.apache.excalibur.source.SourceValidity;
@@ -53,9 +54,9 @@
protected static final String LAYOUTKEY_PREFIX = StaticProfileManager.class.getName() + "/Layout/";
/** The profiler loader/saver. */
- protected ProfileLS loader;
+ protected ProfileStore loader;
- public void setProfileLS(ProfileLS loader) {
+ public void setProfileLS(ProfileStore loader) {
this.loader = loader;
}
@@ -89,7 +90,7 @@
map.put("profile", "layout");
map.put("groupKey", layoutKey);
- SourceValidity newValidity = this.loader.getValidity(map, ProfileLS.PROFILETYPE_LAYOUT);
+ SourceValidity newValidity = this.loader.getValidity(map, ProfileStore.PROFILETYPE_LAYOUT);
if (valid == SourceValidity.UNKNOWN) {
if (sourceValidity.isValid(newValidity) == SourceValidity.VALID) {
return (Layout) ((Map) objects[0]).get(layoutID);
@@ -97,7 +98,11 @@
}
// get Layout specified in the map
- Layout layout = (Layout) this.loader.loadProfile(map, ProfileLS.PROFILETYPE_LAYOUT, null);
+ final PersistenceType lType = new PersistenceType(ProfileStore.PROFILETYPE_LAYOUT);
+ lType.setReferences("layoutType", this.copletTypesMap);
+ lType.setReferences("customRenderer", this.rendererMap);
+
+ Layout layout = (Layout) this.loader.loadProfile(map, lType);
layout = this.processLayout(null, layout);
final Map layouts = new HashMap();
@@ -161,7 +166,10 @@
map.put("portalname", this.portalService.getPortalName());
map.put("profile", "coplet");
map.put("name", "data");
- Collection c = (Collection) this.loader.loadProfile(map, ProfileLS.PROFILETYPE_COPLETDEFINITION, this.copletTypesMap);
+ final PersistenceType cdType = new PersistenceType(ProfileStore.PROFILETYPE_COPLETDEFINITION);
+ cdType.setReferences("copletType", this.copletTypesMap);
+
+ Collection c = (Collection) this.loader.loadProfile(map, cdType);
c = this.processCopletDefinitions(c);
final Map definitions = new HashMap();
final Iterator i = c.iterator();
@@ -177,7 +185,10 @@
map.put("portalname", this.portalService.getPortalName());
map.put("profile", "coplet");
map.put("name", "instancedata");
- instances = (Collection) this.loader.loadProfile(map, ProfileLS.PROFILETYPE_COPLETINSTANCE, definitions);
+ final PersistenceType ciType = new PersistenceType(ProfileStore.PROFILETYPE_COPLETINSTANCE);
+ ciType.setReferences("copletDefinition", definitions);
+
+ instances = (Collection) this.loader.loadProfile(map, ciType);
instances = this.processCopletInstances(null, instances);
// store managers
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=603019&r1=603018&r2=603019&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 Mon Dec 10 11:55:55 2007
@@ -238,6 +238,19 @@
+-->
<!--+
+ | Profile Store
+ |
+ +-->
+ <bean name="org.apache.cocoon.portal.profile.ProfileStore"
+ class="org.apache.cocoon.portal.profile.impl.MapBasedProfileStore"
+ parent="org.apache.cocoon.portal.util.AbstractBean"
+ scope="singleton">
+ <property name="converter" ref="org.apache.cocoon.portal.profile.Converter"/>
+ <property name="sourceResolver" ref="org.apache.excalibur.source.SourceResolver"/>
+ </bean>
+
+
+ <!--+
| Profile Manager Aspects.
|
+-->
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/portal-castor.roles
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/portal-castor.roles?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/portal-castor.roles (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/resources/org/apache/cocoon/portal/persistence/castor/portal-castor.roles Mon Dec 10 11:55:55 2007
@@ -22,7 +22,7 @@
| Castor Converter
|
+-->
- <role name="org.apache.cocoon.portal.persistence.Converter"
+ <role name="org.apache.cocoon.portal.profile.Converter"
default-class="org.apache.cocoon.portal.persistence.castor.CastorSourceConverter"
shorthand="castor-converter"/>
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=603019&r1=603018&r2=603019&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 Mon Dec 10 11:55:55 2007
@@ -26,14 +26,6 @@
default-class="org.apache.cocoon.portal.spring.RegistrationBeanPostProcessor"/>
<!--+
- | Components.
- |
- +-->
- <role name="org.apache.cocoon.portal.profile.ProfileLS"
- default-class="org.apache.cocoon.portal.profile.impl.MapProfileLS"/>
-
-
- <!--+
| Coplet and Layout Source.
|
+-->
Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java?rev=603019&r1=603018&r2=603019&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-portlet-impl/src/main/java/org/apache/cocoon/portal/pluto/PortletPreferencesProviderImpl.java Mon Dec 10 11:55:55 2007
@@ -25,7 +25,8 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.cocoon.portal.om.CopletInstance;
import org.apache.cocoon.portal.pluto.om.common.PreferenceSetImpl;
-import org.apache.cocoon.portal.profile.ProfileLS;
+import org.apache.cocoon.portal.profile.PersistenceType;
+import org.apache.cocoon.portal.profile.ProfileStore;
import org.apache.cocoon.portal.util.AbstractComponent;
import org.apache.commons.collections.map.LinkedMap;
import org.apache.pluto.om.common.PreferenceSet;
@@ -45,10 +46,10 @@
extends AbstractComponent
implements Parameterizable, PortletPreferencesProvider {
- protected static final String PROFILETYPE_PREFERENCES = "portletpreferences";
+ protected static final String PERSISTENCETYPE_PREFERENCES = "portletpreferences";
/** The component for loading/saving the profiles. */
- protected ProfileLS loader;
+ protected ProfileStore loader;
/** The configuration for this component. */
protected Parameters configuration;
@@ -76,19 +77,19 @@
*/
public void service(ServiceManager serviceManager) throws ServiceException {
super.service(serviceManager);
- this.loader = (ProfileLS)this.manager.lookup(ProfileLS.ROLE);
+ this.loader = (ProfileStore)this.manager.lookup(ProfileStore.ROLE);
}
protected Map buildKey(boolean load, String copletId)
throws ParameterException {
- final StringBuffer config = new StringBuffer(PROFILETYPE_PREFERENCES);
+ final StringBuffer config = new StringBuffer(PERSISTENCETYPE_PREFERENCES);
config.append('-');
config.append("user");
config.append('-');
if ( load ) {
config.append("load");
} else {
- config.append("save");
+ config.append("save");
}
final String uri = this.configuration.getParameter(config.toString());
@@ -108,7 +109,9 @@
*/
public PreferenceSet getPreferenceSet(CopletInstance cid) {
try {
- return (PreferenceSet)this.loader.loadProfile(this.buildKey(true, cid.getId()), PROFILETYPE_PREFERENCES, null);
+ final PersistenceType persType = new PersistenceType(PERSISTENCETYPE_PREFERENCES);
+
+ return (PreferenceSet)this.loader.loadProfile(this.buildKey(true, cid.getId()), persType);
} catch (Exception ignore) {
// we ignore all exceptions for now (TODO)
}
@@ -120,7 +123,9 @@
*/
public void storePreferenceSet(CopletInstance cid, PreferenceSet prefs) {
try {
- this.loader.saveProfile(this.buildKey(false, cid.getId()), PROFILETYPE_PREFERENCES, prefs);
+ final PersistenceType persType = new PersistenceType(PERSISTENCETYPE_PREFERENCES);
+
+ this.loader.saveProfile(this.buildKey(false, cid.getId()), persType, prefs);
} catch (Exception ignore) {
// we ignore all exceptions for now (TODO)
}
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=603019&r1=603018&r2=603019&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 Mon Dec 10 11:55:55 2007
@@ -70,6 +70,8 @@
layout-user-save=cocoon:raw:/save-user-profile?profile=layout
</value>
</property>
+ <property name="copletTypesMap" ref="org.apache.cocoon.portal.om.CopletTypeMap"/>
+ <property name="rendererMap" ref="org.apache.cocoon.portal.layout.renderer.RendererMap"/>
</bean>
<!--+