You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/10/11 21:57:54 UTC
svn commit: r312946 - in
/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal: bridges/
event/aspect/impl/ event/impl/ impl/ layout/
Author: cziegeler
Date: Tue Oct 11 12:57:27 2005
New Revision: 312946
URL: http://svn.apache.org/viewcvs?rev=312946&view=rev
Log:
New event manager which should be a little bit faster and should have less concurrency problems
Code formatting
Modified:
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/bridges/ServletContextProviderImpl.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PageLabelManager.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractParameters.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/CompositeLayout.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Item.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Layout.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutDescription.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutException.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutFactory.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/NamedItem.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Parameters.java
cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/SkinDescription.java
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/bridges/ServletContextProviderImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/bridges/ServletContextProviderImpl.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/bridges/ServletContextProviderImpl.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/bridges/ServletContextProviderImpl.java Tue Oct 11 12:57:27 2005
@@ -30,7 +30,7 @@
/**
* This is the "bridge" to the bridges project.
*
- * @version CVS $Id:$
+ * @version $Id$
*/
public class ServletContextProviderImpl implements ServletContextProvider {
@@ -54,5 +54,4 @@
public ServletContext getServletContext(GenericPortlet portlet) {
return ((PortletContextImpl)portlet.getPortletContext()).getServletContext();
}
-
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/aspect/impl/LinkEventAspect.java Tue Oct 11 12:57:27 2005
@@ -39,11 +39,11 @@
}
/**
- * @see org.apache.cocoon.portal.event.aspect.impl.AbstractContentEventAspect#publish(org.apache.cocoon.portal.event.Publisher, org.apache.cocoon.portal.layout.Layout, java.lang.String[])
+ * @see org.apache.cocoon.portal.event.aspect.impl.AbstractContentEventAspect#publish(EventManager, org.apache.cocoon.portal.layout.Layout, java.lang.String[])
*/
protected void publish(EventManager publisher,
- Layout layout,
- String[] values) {
+ Layout layout,
+ String[] values) {
if (layout instanceof LinkLayout) {
LinkLayout linkLayout = (LinkLayout) layout;
Event e = new ChangeAspectDataEvent(linkLayout,
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventManager.java Tue Oct 11 12:57:27 2005
@@ -50,10 +50,10 @@
/**
* This is the default implementation of the event manager.
- *
+ *
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
+ *
* @version $Id$
*/
public class DefaultEventManager
@@ -66,30 +66,24 @@
Disposable,
Contextualizable {
- /** The list of all receivers */
- private Map receivers = new HashMap();
+ /** The service manager. */
+ protected ServiceManager manager;
+
+ /** Our configuration. */
+ protected Configuration configuration;
- private ServiceManager manager;
- private Configuration configuration;
-
protected EventAspectChain chain;
-
+
protected ServiceSelector aspectSelector;
protected Context context;
- /** The portal service */
+ /** The portal service. */
protected PortalService service;
- /** Introspected receiver classes */
+ /** Introspected receiver classes. */
protected Map receiverClasses = new HashMap();
- /** Are we currently processing events? */
- protected int isSendingEvents = 0;
-
- /** Additional receivers if we are currenlty sending events. */
- protected List additionalReceiverClasses = new ArrayList();
-
/** Map of all event classes and their corresponding receivers. */
protected Map eventHierarchy = new HashMap();
@@ -137,8 +131,8 @@
*/
public void initialize()
throws Exception {
- // create tree of all Events
- // this.getHierarchyInfo(Event.class);
+ // we create a tree of all events - we initialize this with the root class
+ this.getHierarchyInfo(Event.class);
// subscribe all configured receiver roles
Configuration roles = this.configuration.getChild("receiver-roles", false);
@@ -173,7 +167,6 @@
this.subscribe(receiver);
}
}
-
}
/**
@@ -201,7 +194,7 @@
converter = (EventConverter) this.manager.lookup(EventConverter.ROLE);
converter.start();
-
+
// Invoke aspects
context.setObjectModel(this.getObjectModel());
context.setEventConverter(converter);
@@ -215,7 +208,6 @@
this.manager.release(converter);
this.manager.release(service);
}
-
}
/**
@@ -231,44 +223,45 @@
*/
public void send(Event event) {
if ( getLogger().isDebugEnabled() ) {
- getLogger().debug("Publishing event " + event.getClass());
+ getLogger().debug("Publishing event " + event);
}
- this.isSendingEvents++;
- try {
- for (Iterator re = receivers.entrySet().iterator(); re.hasNext(); ) {
- final Map.Entry current = (Map.Entry)re.next();
- final Receiver receiver = (Receiver)current.getKey();
- final List methodInfos = (List)current.getValue();
- boolean found = false;
- final Iterator ci = methodInfos.iterator();
- while ( !found && ci.hasNext() ) {
- final MethodInfo info = (MethodInfo)ci.next();
- if ( info.eventClass.isAssignableFrom(event.getClass()) ) {
- if ( getLogger().isDebugEnabled() ) {
- getLogger().info("Informing receiver "+receiver+" of event "+event.getClass());
- }
- try {
- info.method.invoke(receiver, new Object[] {event, this.service});
- } catch (Exception ignore) {
- this.getLogger().warn("Exception during event dispatching on receiver " + receiver
- +" and event " + event, ignore);
- }
- found = true;
+ final HierarchyInfo info = this.getHierarchyInfo(event.getClass());
+ this.send(event, info, true);
+ }
+
+ protected void send(Event event, HierarchyInfo hierarchy, boolean recursive) {
+ final List receivers = hierarchy.getReceivers();
+ int index = 0;
+ // we don't use an iterator to avoid problems if a receiver is added while we're sending
+ // events.
+ while ( index < receivers.size() ) {
+ final Receiver receiver = (Receiver)receivers.get(index);
+ final List methodInfos = (List)this.receiverClasses.get(receiver.getClass().getName());
+ boolean found = false;
+ final Iterator ci = methodInfos.iterator();
+ while ( !found && ci.hasNext() ) {
+ final MethodInfo info = (MethodInfo)ci.next();
+ if ( info.eventClass.isAssignableFrom(event.getClass()) ) {
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger().info("Informing receiver "+receiver+" of event "+event.getClass());
}
+ try {
+ info.method.invoke(receiver, new Object[] {event, this.service});
+ } catch (Exception ignore) {
+ this.getLogger().warn("Exception during event dispatching on receiver " + receiver
+ +" and event " + event, ignore);
+ }
+ found = true;
}
}
- } finally {
- this.isSendingEvents--;
- if ( this.isSendingEvents == 0 && this.additionalReceiverClasses.size() > 0) {
- List copy = null;
- synchronized ( this.additionalReceiverClasses ) {
- copy = new ArrayList(this.additionalReceiverClasses);
- this.additionalReceiverClasses.clear();
- }
- final Iterator i = copy.iterator();
- while (i.hasNext() ) {
- this.subscribe((Receiver)i.next());
- }
+ index++;
+ }
+ // now call listeners for parents
+ if ( recursive ) {
+ final Iterator parentIterator = hierarchy.getParents().iterator();
+ while ( parentIterator.hasNext() ) {
+ final HierarchyInfo current = (HierarchyInfo)parentIterator.next();
+ this.send(event, current, false);
}
}
}
@@ -294,45 +287,38 @@
info.eventClass = params[0];
info.method = current;
result.add(info);
- // HierarchyInfo hi = this.getHierarchyInfo(info.eventClass);
- // this.print(hi);
+ // create the hierarchy info for the event class
+ this.getHierarchyInfo(info.eventClass);
}
}
}
}
if ( result.size() == 0 ) {
result = null;
+ } else {
+ this.receiverClasses.put(receiverClass.getName(), result);
}
}
return result;
}
-
+
/**
* @see org.apache.cocoon.portal.event.EventManager#subscribe(org.apache.cocoon.portal.event.Receiver)
*/
public void subscribe(Receiver receiver) {
- // if we are currently sending events, we just store the receiver
- // and add it later on
- if ( this.isSendingEvents > 0 ) {
- synchronized ( this.additionalReceiverClasses ) {
- this.additionalReceiverClasses.add(receiver);
- return;
- }
- }
-
List infos = this.introspect(receiver.getClass());
if ( infos == null ) {
throw new RuntimeException("Invalid event receiver type: " + receiver);
}
// Add to list but prevent duplicate subscriptions
- List eventClassesForReceiver = (List)this.receivers.get(receiver);
- if ( eventClassesForReceiver == null ) {
- this.receivers.put(receiver, infos);
- }
- if ( getLogger().isDebugEnabled() ) {
- for(int i=0; i<infos.size();i++) {
- getLogger().debug( "Receiver " + receiver + " subscribed for event: " + ((MethodInfo)infos.get(i)).eventClass.getName() );
+ final Iterator i = infos.iterator();
+ while ( i.hasNext() ) {
+ final MethodInfo info = (MethodInfo)i.next();
+ final HierarchyInfo hierarchy = this.getHierarchyInfo(info.eventClass);
+ hierarchy.addToReceivers(receiver);
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger().debug( "Receiver " + receiver + " subscribed for event: " + info.eventClass.getName() );
}
}
}
@@ -341,10 +327,19 @@
* @see org.apache.cocoon.portal.event.EventManager#unsubscribe(org.apache.cocoon.portal.event.Receiver)
*/
public void unsubscribe(Receiver receiver) {
- if ( getLogger().isDebugEnabled() ) {
- getLogger().debug( "Receiver " + receiver + " unsubscribed.");
+ // unsubscribing is a costly operation
+ List infos = this.introspect(receiver.getClass());
+ if ( infos != null ) {
+ final Iterator i = infos.iterator();
+ while ( i.hasNext() ) {
+ final MethodInfo info = (MethodInfo)i.next();
+ final HierarchyInfo hierarchy = this.getHierarchyInfo(info.eventClass);
+ hierarchy.removeFromReceivers(receiver);
+ if ( getLogger().isDebugEnabled() ) {
+ getLogger().debug( "Receiver " + receiver + " unsubscribed from event: " + info.eventClass.getName() );
+ }
+ }
}
- this.receivers.remove(receiver);
}
/**
@@ -368,20 +363,6 @@
return info;
}
- protected void print(HierarchyInfo info) {
- if ( info.className.equals(Event.class.getName())) return;
- System.out.println("-------------------------------- " + info.className);
- if ( info.getParents().size() == 0 ) return;
- System.out.println("Parents: ");
- Iterator i = info.getParents().iterator();
- while ( i.hasNext() ) {
- HierarchyInfo c = (HierarchyInfo)i.next();
- System.out.println(" " + c.className);
- }
- System.out.println("===============================================================");
- System.out.println();
- }
-
protected void addToHierarchy(HierarchyInfo info, Class c) {
if ( c != null && Event.class.isAssignableFrom(c) ) {
final HierarchyInfo parent = this.getHierarchyInfo(c);
@@ -410,14 +391,22 @@
this.className = className;
}
+ public void removeFromReceivers(Receiver receiver) {
+ if ( this.receivers != null ) {
+ this.receivers.remove(receiver);
+ }
+ }
+
public synchronized void addToReceivers(Receiver r) {
if ( this.receivers == null ) {
this.receivers = new ArrayList();
}
- this.receivers.add(r);
+ if ( !this.receivers.contains(r)) {
+ this.receivers.add(r);
+ }
}
- public synchronized void addToParents(HierarchyInfo i) {
+ public void addToParents(HierarchyInfo i) {
if ( this.parents == null ) {
this.parents = new ArrayList();
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PageLabelManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PageLabelManager.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PageLabelManager.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/impl/PageLabelManager.java Tue Oct 11 12:57:27 2005
@@ -19,6 +19,8 @@
import java.util.List;
import java.util.Map;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.ContextException;
import org.apache.avalon.framework.context.Contextualizable;
@@ -27,20 +29,17 @@
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.Serviceable;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.avalon.framework.CascadingRuntimeException;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.components.ContextHelper;
+import org.apache.cocoon.environment.ObjectModelHelper;
+import org.apache.cocoon.environment.Request;
import org.apache.cocoon.portal.PortalException;
-import org.apache.cocoon.portal.layout.Layout;
+import org.apache.cocoon.portal.PortalService;
+import org.apache.cocoon.portal.event.impl.ChangeAspectDataEvent;
import org.apache.cocoon.portal.layout.CompositeLayout;
import org.apache.cocoon.portal.layout.Item;
+import org.apache.cocoon.portal.layout.Layout;
import org.apache.cocoon.portal.layout.NamedItem;
-import org.apache.cocoon.portal.event.impl.ChangeAspectDataEvent;
import org.apache.cocoon.util.HashMap;
-import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.environment.ObjectModelHelper;
-import org.apache.cocoon.components.ContextHelper;
/**
* Manages the various activities required for page labels.
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -26,36 +26,35 @@
import org.apache.pluto.om.common.Parameter;
/**
+ * FIXME - We have to remove the dependency to pluto
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public abstract class AbstractLayout
extends AbstractProducible
implements Layout, Parameters {
-
+
protected String rendererName;
-
+
protected Item parent;
-
+
protected Map parameters = new LinkedMap();
- /* (non-Javadoc)
+ /**
* @see org.apache.cocoon.portal.layout.Parameters#getParameters()
*/
public final Map getParameters() {
return parameters;
}
- public final Set getCastorParameters()
- {
+ public final Set getCastorParameters() {
Set set = new HashSet(this.parameters.size());
Iterator iterator = this.parameters.entrySet().iterator();
Map.Entry entry;
- while (iterator.hasNext())
- {
+ while (iterator.hasNext()) {
entry = (Map.Entry) iterator.next();
ParameterImpl param = new ParameterImpl();
param.setName((String) entry.getKey());
@@ -65,8 +64,7 @@
return set;
}
- public void addParameter(Parameter parameter)
- {
+ public void addParameter(Parameter parameter) {
parameters.put(parameter.getName(), parameter.getValue());
}
@@ -83,38 +81,37 @@
public void setLayoutRendererName(String value) {
this.rendererName = value;
}
-
+
public Item getParent() {
return this.parent;
}
-
+
public void setParent(Item item) {
this.parent = item;
}
- /* (non-Javadoc)
+ /**
* @see org.apache.cocoon.portal.layout.Layout#getLayoutRendererName()
*/
public String getLayoutRendererName() {
return this.rendererName;
}
-
- /* (non-Javadoc)
+ /**
* @see java.lang.Object#clone()
*/
protected Object clone() throws CloneNotSupportedException {
AbstractLayout clone = (AbstractLayout)super.clone();
-
+
// we don't clone the parent; we just set it to null
clone.rendererName = this.rendererName;
clone.parameters = new LinkedMap(this.parameters);
clone.parent = null;
-
+
return clone;
}
-
- /* (non-Javadoc)
+
+ /**
* @see org.apache.cocoon.portal.layout.Layout#copy()
*/
public Layout copy() {
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractParameters.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractParameters.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractParameters.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractParameters.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -28,15 +28,15 @@
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public abstract class AbstractParameters
implements Parameters, Cloneable {
protected Map parameters = new LinkedMap();
-
- /* (non-Javadoc)
+
+ /**
* @see org.apache.cocoon.portal.layout.Parameters#getParameters()
*/
public final Map getParameters() {
@@ -47,8 +47,7 @@
Set set = new HashSet(this.parameters.size());
Iterator iterator = this.parameters.entrySet().iterator();
Map.Entry entry;
- while (iterator.hasNext())
- {
+ while (iterator.hasNext()) {
entry = (Map.Entry) iterator.next();
ParameterImpl param = new ParameterImpl();
param.setName((String)entry.getKey());
@@ -62,14 +61,14 @@
parameters.put(parameter.getName(), parameter.getValue());
}
- /* (non-Javadoc)
+ /**
* @see java.lang.Object#clone()
*/
protected Object clone() throws CloneNotSupportedException {
AbstractParameters clone = (AbstractParameters)super.clone();
-
+
clone.parameters = new LinkedMap(this.parameters);
-
+
return clone;
}
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/CompositeLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/CompositeLayout.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/CompositeLayout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/CompositeLayout.java Tue Oct 11 12:57:27 2005
@@ -1,6 +1,6 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -17,14 +17,13 @@
import java.util.List;
-
/**
* A composite layout is a layout that contains other layouts.
- *
+ *
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public interface CompositeLayout
extends Layout {
@@ -60,13 +59,13 @@
* @return size
*/
int getSize();
-
+
/**
* Remove an item
* @param item
*/
void removeItem(Item item);
-
+
/**
* Create a new item.
* This item is not added to the composite layout
@@ -77,10 +76,9 @@
* @return Returns the item class name.
*/
String getItemClassName();
-
+
/**
* @param value The item class name to set.
*/
void setItemClassName(String value);
-
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Item.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Item.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Item.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Item.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,15 +20,15 @@
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public class Item extends AbstractParameters {
-
+
private Layout layout;
private CompositeLayout parentLayout;
-
+
/**
* Returns the layout.
* @return Layout
@@ -47,7 +47,7 @@
layout.setParent(this);
}
}
-
+
public final CompositeLayout getParent() {
return this.parentLayout;
}
@@ -55,19 +55,19 @@
public final void setParent(CompositeLayout layout) {
this.parentLayout = layout;
}
-
- /* (non-Javadoc)
+
+ /**
* @see java.lang.Object#clone()
*/
protected Object clone() throws CloneNotSupportedException {
Item clone = (Item)super.clone();
-
+
clone.layout = null;
clone.parentLayout = null;
-
+
return clone;
}
-
+
public Item copy(CompositeLayout parent) {
try {
Item clone = (Item)this.clone();
@@ -82,5 +82,4 @@
}
return null;
}
-
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Layout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Layout.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Layout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Layout.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,8 +23,8 @@
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public interface Layout
extends Parameters, Producible, Aspectalizable {
@@ -36,13 +36,13 @@
* @return String The role name
*/
String getRendererName();
-
+
/**
* Get the name of a custom {@link org.apache.cocoon.portal.layout.renderer.Renderer} for this layout.
* @return String The role name
*/
String getLayoutRendererName();
-
+
Item getParent();
void setParent(Item item);
@@ -52,5 +52,4 @@
* This includes copies of items and copletinstancedatas.
*/
Layout copy();
-
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutDescription.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutDescription.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutDescription.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutDescription.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,10 +22,10 @@
/**
* A configured layout
- *
+ *
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public interface LayoutDescription
extends ProducibleDescription, AspectalizableDescription {
@@ -34,12 +34,12 @@
* @return the default renderer name
*/
String getDefaultRendererName();
-
+
/**
* @return the names of all allowed renderers
*/
Iterator getRendererNames();
-
+
/**
* @return The class name of the item
*/
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutException.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutException.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutException.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutException.java Tue Oct 11 12:57:27 2005
@@ -21,9 +21,10 @@
*
* @author <a href="mailto:rgoers@apache.org">Ralph Goers</a>
*
- * @version $Id: $
+ * @version $Id$
*/
public class LayoutException extends PortalException {
+
public LayoutException() {
super();
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutFactory.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutFactory.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/LayoutFactory.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,29 +20,29 @@
import org.apache.cocoon.ProcessingException;
/**
- * This factory is for creating and managing layout objects
- *
+ * This factory is for creating and managing layout objects.
+ *
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public interface LayoutFactory {
-
+
String ROLE = LayoutFactory.class.getName();
-
+
/**
* This method is invoked for a newly loaded profile
*/
void prepareLayout(Layout layout);
-
+
/**
* Create a new layout instance.
* The instance is also registered at the profile manager.
*/
Layout newInstance(String name)
throws ProcessingException;
-
+
/**
* Remove the layout instance.
* The instance (and all childs) will also be unregistered from
@@ -50,7 +50,6 @@
*/
void remove(Layout layout)
throws ProcessingException;
-
+
List getLayoutDescriptions();
-
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/NamedItem.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/NamedItem.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/NamedItem.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/NamedItem.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,8 +19,8 @@
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id$
+ *
+ * @version $Id$
*/
public class NamedItem extends Item {
@@ -42,15 +42,14 @@
this.name = name;
}
- /* (non-Javadoc)
+ /**
* @see java.lang.Object#clone()
*/
protected Object clone() throws CloneNotSupportedException {
NamedItem clone = (NamedItem)super.clone();
-
+
clone.name = this.name;
-
+
return clone;
}
-
}
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Parameters.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Parameters.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Parameters.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/Parameters.java Tue Oct 11 12:57:27 2005
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2004 The Apache Software Foundation.
- *
+ * Copyright 1999-2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -21,10 +21,11 @@
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
- *
- * @version CVS $Id: Parameters.java,v 1.2 2004/03/05 13:02:13 bdelacretaz Exp $
+ *
+ * @version $Id$
*/
public interface Parameters {
+
/**
* Get custom parameters as List of
* org.apache.cocoon.portal.layout.impl.Parameters. This method
Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/SkinDescription.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/SkinDescription.java?rev=312946&r1=312945&r2=312946&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/SkinDescription.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/SkinDescription.java Tue Oct 11 12:57:27 2005
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2002,2004 The Apache Software Foundation.
+ * Copyright 1999-2002,2004-2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,46 +16,50 @@
package org.apache.cocoon.portal.layout;
/**
-*
-* @version CVS $Id: Parameters.java 30932 2004-07-29 17:35:38Z vgritsenko $
-*/
+ *
+ * @version $Id$
+ */
public class SkinDescription {
protected String name;
protected String basePath;
protected String thumbnailPath;
-
-
+
/**
* @return Returns the basePath.
*/
public String getBasePath() {
return basePath;
}
+
/**
* @param basePath The basePath to set.
*/
public void setBasePath(String basePath) {
this.basePath = basePath;
}
+
/**
* @return Returns the name.
*/
public String getName() {
return name;
}
+
/**
* @param name The name to set.
*/
public void setName(String name) {
this.name = name;
}
+
/**
* @return Returns the thumbnailPath.
*/
public String getThumbnailPath() {
return thumbnailPath;
}
+
/**
* @param thumbnailPath The thumbnailPath to set.
*/