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/07/14 16:44:07 UTC

svn commit: r219043 - in /cocoon: blocks/forms/trunk/java/org/apache/cocoon/forms/binding/ blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/ blocks/portal/trunk/java/org/apache/cocoon/portal/ blocks/portal/trunk/java/org/apache/cocoon/portal/a...

Author: cziegeler
Date: Thu Jul 14 07:44:06 2005
New Revision: 219043

URL: http://svn.apache.org/viewcvs?rev=219043&view=rev
Log:
Sync deprecation logging with 2.1.x :(
Remove use of deprecated Publisher

Added:
    cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java   (with props)
    cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java   (with props)
Removed:
    cocoon/trunk/src/java/org/apache/cocoon/util/log/DeprecationLogger.java
Modified:
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/PortalComponentManager.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/acting/CopletSetDataAction.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/ApplicationCopletAdapter.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java
    cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java
    cocoon/trunk/src/test/org/apache/cocoon/core/container/ContainerTestCase.java
    cocoon/trunk/src/test/org/apache/cocoon/test/core/TestBootstrapEnvironment.java

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/StructJXPathBindingBuilder.java Thu Jul 14 07:44:06 2005
@@ -16,7 +16,7 @@
 package org.apache.cocoon.forms.binding;
 
 import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
 import org.w3c.dom.Element;
 
 /**
@@ -38,7 +38,7 @@
 
     public JXPathBindingBase buildBinding(Element bindingElm, JXPathBindingManager.Assistant assistant)
             throws BindingException {
-        DeprecationLogger.log("'fb:struct' is deprecated and replaced by 'fb:group' at " + DomHelper.getLocation(bindingElm));
+        Deprecation.logger.info("'fb:struct' is deprecated and replaced by 'fb:group' at " + DomHelper.getLocation(bindingElm));
         try {
             String widgetId = DomHelper.getAttribute(bindingElm, "id");
             CommonAttributes commonAtts = JXPathBindingBuilderBase.getCommonAttributes(bindingElm);

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/ActionDefinitionBuilder.java Thu Jul 14 07:44:06 2005
@@ -19,7 +19,7 @@
 
 import org.apache.cocoon.forms.event.ActionListener;
 import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
 import org.w3c.dom.Element;
 
 /**
@@ -48,7 +48,7 @@
         if (actionCommand == null) {
             actionCommand = DomHelper.getAttribute(widgetElement, "action-command", null);
             if (actionCommand != null) {
-                DeprecationLogger.log("The 'action-command' attribute is deprecated and replaced by 'command', at " +
+                Deprecation.logger.info("The 'action-command' attribute is deprecated and replaced by 'command', at " +
                     DomHelper.getLocation(widgetElement));
             }
         }

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java Thu Jul 14 07:44:06 2005
@@ -20,7 +20,7 @@
 import org.apache.cocoon.forms.Constants;
 import org.apache.cocoon.forms.event.ActionListener;
 import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
 import org.w3c.dom.Element;
 
 /**
@@ -62,7 +62,7 @@
         if (actionCommand == null) {
             actionCommand = DomHelper.getAttribute(widgetElement, "action-command", null);
             if (actionCommand != null) {
-                DeprecationLogger.log("The 'action-command' attribute is deprecated and replaced by 'command', at " +
+                Deprecation.logger.info("The 'action-command' attribute is deprecated and replaced by 'command', at " +
                     DomHelper.getLocation(widgetElement));
             }
         }

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/RowActionDefinitionBuilder.java Thu Jul 14 07:44:06 2005
@@ -20,7 +20,7 @@
 import org.apache.cocoon.forms.Constants;
 import org.apache.cocoon.forms.event.ActionListener;
 import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
 import org.w3c.dom.Element;
 
 /**
@@ -39,7 +39,7 @@
         if (actionCommand == null) {
             actionCommand = DomHelper.getAttribute(widgetElement, "action-command", null);
             if (actionCommand != null) {
-                DeprecationLogger.log("The 'action-command' attribute is deprecated and replaced by 'command', at " +
+                Deprecation.logger.info("The 'action-command' attribute is deprecated and replaced by 'command', at " +
                     DomHelper.getLocation(widgetElement));
             }
         }

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/StructDefinitionBuilder.java Thu Jul 14 07:44:06 2005
@@ -18,7 +18,7 @@
 import org.w3c.dom.Element;
 import org.apache.cocoon.forms.Constants;
 import org.apache.cocoon.forms.util.DomHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
 
 /**
  * Builds {StructDefinition}s.
@@ -43,7 +43,7 @@
         }
 
         definition.makeImmutable();
-        DeprecationLogger.log("Use of 'fd:struct' is deprecated. Use 'fd:group' instead, at " + definition.getLocation());
+        Deprecation.logger.info("Use of 'fd:struct' is deprecated. Use 'fd:group' instead, at " + definition.getLocation());
         return definition;
     }
 }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/PortalComponentManager.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/PortalComponentManager.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/PortalComponentManager.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/PortalComponentManager.java Thu Jul 14 07:44:06 2005
@@ -15,7 +15,6 @@
  */
 package org.apache.cocoon.portal;
 
-import org.apache.cocoon.core.Core;
 import org.apache.cocoon.portal.coplet.CopletFactory;
 import org.apache.cocoon.portal.event.EventManager;
 import org.apache.cocoon.portal.layout.LayoutFactory;
@@ -57,26 +56,20 @@
      * Get the coplet factory.
      */
     CopletFactory getCopletFactory();
-
+    
     /**
-     * Get the layout factory.
+     * Get the layout factory
      */
     LayoutFactory getLayoutFactory();
-
+    
     /**
-     * Get the event manager.
+     * Get the event manager
      */
     EventManager getEventManager();
 
     /**
-     * Get the portal manager.
+     * Get the portal manager
      * @since 2.1.8
      */
     PortalManager getPortalManager();
-
-    /**
-     * Return the Cocoon core.
-     * @since 2.2
-     */
-    Core getCore();
 }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/acting/CopletSetDataAction.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/acting/CopletSetDataAction.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/acting/CopletSetDataAction.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/acting/CopletSetDataAction.java Thu Jul 14 07:44:06 2005
@@ -28,7 +28,7 @@
 import org.apache.cocoon.portal.Constants;
 import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.event.Event;
-import org.apache.cocoon.portal.event.Publisher;
+import org.apache.cocoon.portal.event.EventManager;
 import org.apache.cocoon.portal.event.impl.CopletJXPathEvent;
 
 /**
@@ -69,7 +69,7 @@
             // if the value is null or empty, the value is not set!
             final String[] names = parameters.getNames();
             if ( names != null ) {
-                final Publisher publisher = portalService.getComponentManager().getEventManager().getPublisher();
+                final EventManager publisher = portalService.getComponentManager().getEventManager();
                 for(int i=0; i<names.length; i++) {
                     final String path = names[i];
                     final String value = parameters.getParameter(path, null );
@@ -77,7 +77,7 @@
                         final Event event = new CopletJXPathEvent(portalService.getComponentManager().getProfileManager().getCopletInstanceData(copletId),
                                 path,
                                 value);
-                        publisher.publish(event);
+                        publisher.send(event);
                     }
                 }
             }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/ApplicationCopletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/ApplicationCopletAdapter.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/ApplicationCopletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/ApplicationCopletAdapter.java Thu Jul 14 07:44:06 2005
@@ -27,7 +27,7 @@
 import org.apache.cocoon.portal.coplet.CopletData;
 import org.apache.cocoon.portal.coplet.CopletFactory;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
-import org.apache.cocoon.portal.event.Event;
+import org.apache.cocoon.portal.event.CopletInstanceEvent;
 import org.apache.cocoon.portal.event.impl.CopletLinkEvent;
 import org.apache.cocoon.portal.layout.CompositeLayout;
 import org.apache.cocoon.portal.layout.Item;
@@ -73,7 +73,7 @@
      * There is a special CopletLinkEvent with the uri "createNewCopletInstance", which is the
      * trigger to create a new instance of the one that is the target of the event.
      */
-    public void handleCopletInstanceEvent(Event e) {
+    public void handleCopletInstanceEvent(CopletInstanceEvent e) {
         super.handleCopletInstanceEvent(e);
         
         if ( e instanceof CopletLinkEvent ) {
@@ -198,9 +198,8 @@
      * @return True if the error content has been rendered, otherwise false
      * @throws SAXException
      */
-    protected boolean renderErrorContent(
-        CopletInstanceData coplet,
-        ContentHandler handler)
+    protected boolean renderErrorContent(CopletInstanceData coplet,
+                                         ContentHandler handler)
     throws SAXException {
         handler.startDocument();
         XMLUtils.startElement(handler, "p");

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/CachingURICopletAdapter.java Thu Jul 14 07:44:06 2005
@@ -19,9 +19,9 @@
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.components.sax.XMLByteStreamCompiler;
 import org.apache.cocoon.components.sax.XMLByteStreamInterpreter;
+import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
 import org.apache.cocoon.portal.event.CopletInstanceEvent;
-import org.apache.cocoon.portal.event.Event;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 
@@ -34,7 +34,7 @@
  *
  * @author <a href="mailto:gerald.kahrer@rizit.at">Gerald Kahrer</a>
  * 
- * @version CVS $Id: CachingURICopletAdapter.java,v 1.6 2004/06/21 11:09:45 cziegeler Exp $
+ * @version CVS $Id$
  */
 public class CachingURICopletAdapter
     extends URICopletAdapter
@@ -184,25 +184,21 @@
         coplet.setAttribute(CACHE_VALIDITY, CACHE_INVALID);
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#inform(org.apache.cocoon.portal.event.Event)
+    /**
+     * @see org.apache.cocoon.portal.event.Receiver
      */
-    public void inform(Event e) {
-        if (e instanceof CopletInstanceEvent) {
-            if ( this.getLogger().isInfoEnabled() ) {
-                this.getLogger().info("CopletInstanceEvent " + e + " caught by CachingURICopletAdapter");
-            }
-            this.handleCopletInstanceEvent(e);
+    public void inform(CopletInstanceEvent e, PortalService service) {
+        if ( this.getLogger().isInfoEnabled() ) {
+            this.getLogger().info("CopletInstanceEvent " + e + " caught by CachingURICopletAdapter");
         }
-        super.inform(e);
+        this.handleCopletInstanceEvent(e);
+        super.inform(e, service);
     }
 
     /**
      * This adapter listens for CopletInstanceEvents. Each event sets the cache invalid.
      */
-    public void handleCopletInstanceEvent(Event e) {
-        final CopletInstanceEvent event = (CopletInstanceEvent) e;
-
+    public void handleCopletInstanceEvent(CopletInstanceEvent event) {
         final CopletInstanceData coplet = (CopletInstanceData) event.getTarget();
 
         this.setCacheInvalid(coplet);

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/adapter/impl/URICopletAdapter.java Thu Jul 14 07:44:06 2005
@@ -38,10 +38,8 @@
 import org.apache.cocoon.portal.PortalService;
 import org.apache.cocoon.portal.coplet.CopletInstanceData;
 import org.apache.cocoon.portal.event.CopletInstanceEvent;
-import org.apache.cocoon.portal.event.Event;
 import org.apache.cocoon.portal.event.EventManager;
-import org.apache.cocoon.portal.event.Filter;
-import org.apache.cocoon.portal.event.Subscriber;
+import org.apache.cocoon.portal.event.Receiver;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.xml.sax.ContentHandler;
@@ -57,7 +55,7 @@
  */
 public class URICopletAdapter 
     extends AbstractCopletAdapter
-    implements Disposable, Subscriber, Initializable, Contextualizable {
+    implements Disposable, Receiver, Initializable, Contextualizable {
 	
     /** The source resolver */
     protected SourceResolver resolver;
@@ -80,6 +78,9 @@
         this.resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
     }
     
+    /**
+     * @see org.apache.cocoon.portal.coplet.adapter.impl.AbstractCopletAdapter#streamContent(org.apache.cocoon.portal.coplet.CopletInstanceData, org.xml.sax.ContentHandler)
+     */
     public void streamContent(CopletInstanceData coplet, ContentHandler contentHandler)
     throws SAXException {
         final String uri = (String)coplet.getCopletData().getAttribute("uri");
@@ -90,8 +91,8 @@
     }
 
     public void streamContent(final CopletInstanceData coplet, 
-                               final String uri,
-                               final ContentHandler contentHandler)
+                              final String uri,
+                              final ContentHandler contentHandler)
     throws SAXException {
 		Source copletSource = null;
 		PortalService portalService = null;
@@ -138,8 +139,8 @@
 			this.manager.release(portalService);
 		}
     }
-    
-    /* (non-Javadoc)
+
+    /**
      * @see org.apache.avalon.framework.activity.Disposable#dispose()
      */
     public void dispose() {
@@ -147,7 +148,7 @@
             EventManager eventManager = null;
             try { 
                 eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
-                eventManager.getRegister().unsubscribe( this );
+                eventManager.unsubscribe(this);
             } catch (Exception ignore) {
                 // ignore
             } finally {
@@ -160,49 +161,28 @@
         }
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#getEventType()
-     */
-    public Class getEventType() {
-        return CopletInstanceEvent.class;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#getFilter()
-     */
-    public Filter getFilter() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#inform(org.apache.cocoon.portal.event.Event)
+    /**
+     * @see Receiver
      */
-    public void inform(Event e) {
-        CopletInstanceEvent event = (CopletInstanceEvent)e;
-        PortalService service = null;
-        try {
-            service = (PortalService)this.manager.lookup(PortalService.ROLE);
-            List list = (List)service.getTemporaryAttribute(URICopletAdapter.class.getName());
-            if ( list == null ) {
-                list = new ArrayList();
-            }
+    public void inform(CopletInstanceEvent event, PortalService service) {
+        List list = (List)service.getTemporaryAttribute(URICopletAdapter.class.getName());
+        if ( list == null ) {
+            list = new ArrayList();
+        }
+        if ( !list.contains(event.getTarget()) ) {
             list.add(event.getTarget());
-            service.setTemporaryAttribute(URICopletAdapter.class.getName(), list);
-        } catch (ServiceException ignore ) {            
-            // ignore
-        } finally {
-            this.manager.release(service);
         }
+        service.setTemporaryAttribute(URICopletAdapter.class.getName(), list);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.avalon.framework.activity.Initializable#initialize()
      */
     public void initialize() throws Exception {
         EventManager eventManager = null;
         try { 
             eventManager = (EventManager)this.manager.lookup(EventManager.ROLE);
-            eventManager.getRegister().subscribe( this );
+            eventManager.subscribe( this );
         } finally {
             this.manager.release( eventManager );
         }
@@ -260,5 +240,4 @@
         }
         return false;
     }
-
 }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplets/basket/BasketManagerImpl.java Thu Jul 14 07:44:06 2005
@@ -63,10 +63,8 @@
 import org.apache.cocoon.portal.coplets.basket.events.ShowBasketEvent;
 import org.apache.cocoon.portal.coplets.basket.events.ShowItemEvent;
 import org.apache.cocoon.portal.coplets.basket.events.UploadItemEvent;
-import org.apache.cocoon.portal.event.Event;
 import org.apache.cocoon.portal.event.EventManager;
-import org.apache.cocoon.portal.event.Filter;
-import org.apache.cocoon.portal.event.Subscriber;
+import org.apache.cocoon.portal.event.Receiver;
 import org.apache.cocoon.portal.layout.impl.CopletLayout;
 import org.apache.cocoon.servlet.multipart.Part;
 import org.apache.cocoon.servlet.multipart.PartOnDisk;
@@ -81,7 +79,7 @@
  */
 public class BasketManagerImpl
 extends AbstractLogEnabled
-implements BasketManager, Serviceable, Subscriber, Contextualizable, Initializable, Disposable, Parameterizable, ThreadSafe  {
+implements BasketManager, Serviceable, Receiver, Contextualizable, Initializable, Disposable, Parameterizable, ThreadSafe  {
     
     /** The service manager */
     protected ServiceManager manager;
@@ -172,30 +170,16 @@
         EventManager eventManager = null;
         try {
             eventManager = (EventManager) this.manager.lookup(EventManager.ROLE);
-            eventManager.getRegister().subscribe(this);
+            eventManager.subscribe(this);
         } finally {
             this.manager.release(eventManager);
         }
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#getEventType()
-     */
-    public Class getEventType() {
-        return ContentStoreEvent.class;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#getFilter()
-     */
-    public Filter getFilter() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.cocoon.portal.event.Subscriber#inform(org.apache.cocoon.portal.event.Event)
+    /**
+     * @see Receiver
      */
-    public void inform(Event event) {
+    public void inform(ContentStoreEvent event, PortalService service) {
         // dispatch
         final Session session = ContextHelper.getRequest(this.context).getSession();
         if ( event instanceof AddItemEvent ) {

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/event/impl/DefaultEventAspectContext.java Thu Jul 14 07:44:06 2005
@@ -24,7 +24,7 @@
 import org.apache.cocoon.portal.event.Publisher;
 import org.apache.cocoon.portal.event.aspect.EventAspect;
 import org.apache.cocoon.portal.event.aspect.EventAspectContext;
-import org.apache.cocoon.util.log.DeprecationLogger;
+import org.apache.cocoon.util.Deprecation;
 
 /**
  *
@@ -79,7 +79,7 @@
      * Get the publisher
      */
     public Publisher getEventPublisher() {
-        DeprecationLogger.log("The getEventPublisher() method in the EventAspectContext is deprecated.");
+        Deprecation.logger.info("The getEventPublisher() method in the EventAspectContext is deprecated.");
         return this.publisher;
     }
     

Modified: cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/Cocoon.java Thu Jul 14 07:44:06 2005
@@ -46,7 +46,6 @@
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.Session;
 import org.apache.cocoon.environment.internal.EnvironmentHelper;
-import org.apache.cocoon.util.log.DeprecationLogger;
 
 import org.apache.commons.lang.SystemUtils;
 import org.apache.excalibur.source.Source;
@@ -171,7 +170,6 @@
      */
     public void setLoggerManager(LoggerManager loggerManager) {
         this.loggerManager = loggerManager;
-        DeprecationLogger.logger = this.loggerManager.getLoggerForCategory("deprecation");
     }
 
     /* (non-Javadoc)

Added: cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java?rev=219043&view=auto
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java (added)
+++ cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java Thu Jul 14 07:44:06 2005
@@ -0,0 +1,206 @@
+/*
+ * Copyright 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.util;
+
+import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.commons.lang.enums.ValuedEnum;
+
+/**
+ * This class provides a special static "deprecation" logger.
+ * All deprecated code should use this logger to log messages into the 
+ * deprecation logger. This makes it easier for users to find out if they're 
+ * using deprecated stuff.
+ * <p>
+ * Additionally, it is possible to set the forbidden level of deprecation messages (default
+ * is to forbid ERROR, i.e. allow up to WARN). Messages equal to or above the forbidden level
+ * will lead to throwing a {@link DeprecationException}. Setting the forbidden level to
+ * FATAL_ERROR allows running legacy applications using deprecated features (tolerant mode), and
+ * setting the forbidden level to DEBUG will run in strict mode, forbidding all deprecations.
+ * <p>
+ * Note that according to the above, issuing a fatalError log always raises an exception, and
+ * can therefore be used when detecting old features that have been totally removed.
+ *
+ * @version $Id$
+ */
+public class Deprecation {
+    
+    /**
+     * The deprecation logger.
+     */
+    public static final Logger logger = new LoggerWrapper(new ConsoleLogger());
+    
+    private static final int DEBUG_VALUE = 0;
+    private static final int INFO_VALUE = 1;
+    private static final int WARN_VALUE = 2;
+    private static final int ERROR_VALUE = 3;
+    private static final int FATAL_VALUE = 3;
+    private static final int FATAL_ERROR_VALUE = 4;
+    
+    /**
+     * Debug deprecation messages indicate features that are no more considered "current"
+     * or "best practice", but for which no removal is currently foreseen.
+     */
+    public static final LogLevel DEBUG = new LogLevel("DEBUG", DEBUG_VALUE);
+
+    /**
+     * Info deprecation messages indicate features that are no more considered "current"
+     * or "best practice", and that will probably be removed in future releases.
+     */
+    public static final LogLevel INFO = new LogLevel("INFO", INFO_VALUE);
+
+    /**
+     * Warning deprecation messages indicate features that will be removed in the next major
+     * version (e.g. 2.1.x --> 2.2.0). Such features should not be used if the application is
+     * planned to be migrated to newer Cocoon versions.
+     */
+    public static final LogLevel WARN = new LogLevel("WARN", WARN_VALUE);
+
+    /**
+     * Error deprecation messages indicate features that will be removed in the next minor
+     * version (e.g. 2.1.6 --> 2.1.7). Although still functional, users are stronly invited to
+     * not use them.
+     */
+    public static final LogLevel ERROR = new LogLevel("ERROR", ERROR_VALUE);
+
+    /**
+     * Fatal error deprecation messages indicate features that used to exist but have been removed
+     * in the current version. Logging such a message always throws a {@link DeprecationException}.
+     */
+    public static final LogLevel FATAL_ERROR = new LogLevel("FATAL_ERROR", FATAL_ERROR_VALUE);
+    
+    public static final class LogLevel extends ValuedEnum {
+        private LogLevel(String text, int value) {
+            super(text, value);
+        }
+        
+        public static LogLevel getLevel(String level) {
+            return (LogLevel)ValuedEnum.getEnum(LogLevel.class, level);
+        }
+    }
+
+    public static void setLogger(Logger newLogger) {
+        // Note: the "logger" attribute is not of type LoggerWrapper so that it appears
+        // as a standard Logger in the javadocs.
+        ((LoggerWrapper)logger).setLogger(newLogger);
+    }
+    
+    public static void setForbiddenLevel(LogLevel level) {
+        // If null, reset to the default level
+        if (level == null) {
+            level = ERROR;
+        }
+        ((LoggerWrapper)logger).setForbiddenLevel(level);
+    }
+    
+    /**
+     * Wraps a logger, and throws an DeprecatedException if the message level is
+     * higher than the allowed one.
+     */
+    private static class LoggerWrapper implements Logger {
+        
+        private Logger realLogger;
+        // up to warn is allowed
+        private int forbiddenLevel = ERROR_VALUE;
+        
+        public LoggerWrapper(Logger logger) {
+            this.realLogger = logger;
+        }
+        
+        public void setLogger(Logger logger) {
+            // Unwrap a wrapped logger
+            while(logger instanceof LoggerWrapper) {
+                logger = ((LoggerWrapper)logger).realLogger;
+            }
+            this.realLogger = logger;
+        }
+        
+        public void setForbiddenLevel(LogLevel level) {
+            this.forbiddenLevel = level.getValue();
+        }
+        
+        private void throwException(int level, String message) {
+            if (level >= this.forbiddenLevel) {
+                throw new DeprecationException(message);
+            }
+        }
+        
+        private boolean isThrowingException(int level) {
+            return level >= this.forbiddenLevel;
+        }
+        
+        public void debug(String message) {
+            realLogger.debug(message);
+            throwException(DEBUG_VALUE, message);
+        }
+        public void debug(String message, Throwable thr) {
+            realLogger.debug(message, thr);
+            throwException(DEBUG_VALUE, message);
+        }
+        public void info(String message) {
+            realLogger.info(message);
+            throwException(INFO_VALUE, message);
+        }
+        public void info(String message, Throwable thr) {
+            realLogger.info(message, thr);
+            throwException(INFO_VALUE, message);
+        }
+        public void warn(String message) {
+            realLogger.warn(message);
+            throwException(WARN_VALUE, message);
+        }
+        public void warn(String message, Throwable thr) {
+            realLogger.warn(message, thr);
+            throwException(WARN_VALUE, message);
+        }
+        public void error(String message) {
+            realLogger.error(message);
+            throwException(ERROR_VALUE, message);
+        }
+        public void error(String message, Throwable thr) {
+            realLogger.error(message, thr);
+            throwException(ERROR_VALUE, message);
+        }
+        public void fatalError(String message) {
+            realLogger.fatalError(message);
+            throwException(FATAL_VALUE, message);
+        }
+        public void fatalError(String message, Throwable thr) {
+            realLogger.fatalError(message, thr);
+            throwException(FATAL_VALUE, message);
+        }
+        public boolean isDebugEnabled() {
+            // Enable level also if it is set to throw an exception, so that
+            // logging the message occurs, and then throws it.
+            return isThrowingException(DEBUG_VALUE) || realLogger.isDebugEnabled();
+        }
+        public boolean isInfoEnabled() {
+            return isThrowingException(INFO_VALUE) || realLogger.isInfoEnabled();
+        }
+        public boolean isWarnEnabled() {
+            return isThrowingException(WARN_VALUE) || realLogger.isWarnEnabled();
+        }
+        public boolean isErrorEnabled() {
+            return isThrowingException(ERROR_VALUE) || realLogger.isErrorEnabled();
+        }
+        public boolean isFatalErrorEnabled() {
+            return true;
+        }
+        public Logger getChildLogger(String message) {
+            return realLogger.getChildLogger(message);
+        }
+    }
+}

Propchange: cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/src/java/org/apache/cocoon/util/Deprecation.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java?rev=219043&view=auto
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java (added)
+++ cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java Thu Jul 14 07:44:06 2005
@@ -0,0 +1,29 @@
+/*
+ * Copyright 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.util;
+
+
+/**
+ * An exception that indicates unauthorized use of a deprecated feature, or an
+ * attempt to use a old feature that has been removed.
+ * 
+ * @version $Id$
+ */
+public class DeprecationException extends RuntimeException {
+    public DeprecationException(String message) {
+        super(message);
+    }
+}

Propchange: cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/trunk/src/java/org/apache/cocoon/util/DeprecationException.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: cocoon/trunk/src/test/org/apache/cocoon/core/container/ContainerTestCase.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/core/container/ContainerTestCase.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/trunk/src/test/org/apache/cocoon/core/container/ContainerTestCase.java (original)
+++ cocoon/trunk/src/test/org/apache/cocoon/core/container/ContainerTestCase.java Thu Jul 14 07:44:06 2005
@@ -39,7 +39,6 @@
 import org.apache.cocoon.core.Core;
 import org.apache.cocoon.core.CoreUtil;
 import org.apache.cocoon.core.MutableSettings;
-import org.apache.cocoon.util.log.DeprecationLogger;
 
 /**
  * JUnit TestCase for Cocoon Components.
@@ -150,7 +149,6 @@
 
         String level = System.getProperty("junit.test.loglevel", "" + ConsoleLogger.LEVEL_WARN);
         this.logger = new ConsoleLogger(Integer.parseInt(level));
-        DeprecationLogger.logger = this.logger;
         this.prepare();
     }
     

Modified: cocoon/trunk/src/test/org/apache/cocoon/test/core/TestBootstrapEnvironment.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/test/org/apache/cocoon/test/core/TestBootstrapEnvironment.java?rev=219043&r1=219042&r2=219043&view=diff
==============================================================================
--- cocoon/trunk/src/test/org/apache/cocoon/test/core/TestBootstrapEnvironment.java (original)
+++ cocoon/trunk/src/test/org/apache/cocoon/test/core/TestBootstrapEnvironment.java Thu Jul 14 07:44:06 2005
@@ -26,7 +26,6 @@
 import org.apache.cocoon.core.MutableSettings;
 import org.apache.cocoon.core.Settings;
 import org.apache.cocoon.environment.Context;
-import org.apache.cocoon.util.log.DeprecationLogger;
 
 public class TestBootstrapEnvironment
     implements BootstrapEnvironment {
@@ -48,7 +47,6 @@
         this.environmentContext = environmentContext;
 
         this.logger = logger;
-        DeprecationLogger.logger = this.logger;
     }
 
     /**