proyal      2003/02/14 11:43:37

  Modified:    src/java/org/apache/avalon/cornerstone/blocks/event
                        DefaultEventManager.java
  Log:
  * Add full license
  * Remove unused lifecycle methods
  * Wrap all logged statements with checking to see if category is enabled
  * Remove output to console
  * General style cleanup
  
  Revision  Changes    Path
  1.3       +100 -77   
avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/event/DefaultEventManager.java
  
  Index: DefaultEventManager.java
  ===================================================================
  RCS file: 
/home/cvs/avalon-cornerstone/src/java/org/apache/avalon/cornerstone/blocks/event/DefaultEventManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultEventManager.java  23 Dec 2002 17:52:40 -0000      1.2
  +++ DefaultEventManager.java  14 Feb 2003 19:43:37 -0000      1.3
  @@ -1,34 +1,64 @@
   /*
  - * Copyright (C) The Apache Software Foundation. All rights reserved.
  - *
  - * This software is published under the terms of the Apache Software License
  - * version 1.1, a copy of which has been included with this distribution in
  - * the LICENSE.txt file.
  - */
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) @year@ The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Jakarta", "Avalon", "Excalibur" and "Apache Software 
Foundation"
  +    must not be used to endorse or promote products derived from this  
software
  +    without  prior written permission. For written permission, please contact
  +    [EMAIL PROTECTED]
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation. For more  information on the
  + Apache Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
   package org.apache.avalon.cornerstone.blocks.event;
   
  -import java.util.Hashtable;
   import java.util.Enumeration;
  -
  -import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.context.Contextualizable;
  -import org.apache.avalon.framework.context.Context;
  -import org.apache.avalon.framework.context.ContextException;
  -import org.apache.avalon.framework.configuration.Configurable;
  -import org.apache.avalon.framework.configuration.Configuration;
  -import org.apache.avalon.framework.configuration.ConfigurationException;
  -import org.apache.avalon.framework.service.Serviceable;
  -import org.apache.avalon.framework.service.ServiceManager;
  -import org.apache.avalon.framework.service.ServiceException;
  -import org.apache.avalon.framework.activity.Initializable;
  -import org.apache.avalon.framework.activity.Disposable;
  +import java.util.Hashtable;
   
   import org.apache.avalon.cornerstone.services.event.Event;
  -import org.apache.avalon.cornerstone.services.event.Filter;
   import org.apache.avalon.cornerstone.services.event.EventManager;
   import org.apache.avalon.cornerstone.services.event.Publisher;
   import org.apache.avalon.cornerstone.services.event.Register;
   import org.apache.avalon.cornerstone.services.event.Subscriber;
  +import org.apache.avalon.framework.activity.Initializable;
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
   
   /**
    * EventManager Block
  @@ -38,64 +68,42 @@
    *
    * @author Mauro Talevi
    */
  -public class DefaultEventManager extends AbstractLogEnabled
  -    implements EventManager,
  -               Contextualizable, Configurable, Serviceable, Initializable, 
Disposable
  +public class DefaultEventManager extends AbstractLogEnabled implements 
EventManager
   {
  -    private final String m_rootEventType = "Event";
  -    private Class m_eventClass;
  +    private Class m_eventClass = Event.class;
       private Publisher m_publisher = new DefaultPublisher();
       private Register m_register = new DefaultRegister();
       private Hashtable m_subscribers = new Hashtable();
   
  -    public Publisher getPublisher(){
  -        return m_publisher;
  -    }
  -    public Register getRegister(){
  -        return m_register;
  -    }
  -
  -    public void contextualize( final Context context )
  +    public Publisher getPublisher()
       {
  +        return m_publisher;
       }
   
  -    public void configure( final Configuration configuration )
  -        throws ConfigurationException
  -    {
  -    }
  -
  -    /**
  -     * ServiceManager dependencies
  -     */
  -    public void service( final ServiceManager serviceManager )
  -        throws ServiceException
  -    {
  -    }
  -
  -    public void initialize()
  -        throws Exception
  -    {
  -        m_eventClass = Class.forName( m_rootEventType );
  -        getLogger().info("Initialising eventClass " + m_eventClass);
  -    }
  -
  -    public void dispose()
  +    public Register getRegister()
       {
  +        return m_register;
       }
   
       class DefaultPublisher implements Publisher
       {
           public void publish( final Event event )
           {
  -            getLogger().info("Publishing event " + event.getClass());
  -            System.out.println("Publishing event " + event.getClass());
  -            for ( Enumeration e = m_subscribers.elements(); 
e.hasMoreElements(); ){
  -                Subscriber subscriber = (Subscriber)e.nextElement();
  -                if 
(subscriber.getEventType().isAssignableFrom(event.getClass())
  -                && (subscriber.getFilter() != null ||
  -                subscriber.getFilter().filter(event))){
  -                    getLogger().info("Informing subscriber "+subscriber+" of 
event "+event.getClass());
  -                    subscriber.inform(event);
  +            if( getLogger().isInfoEnabled() )
  +                getLogger().info( "Publishing event " + event.getClass() );
  +
  +            for( Enumeration e = m_subscribers.elements(); 
e.hasMoreElements(); )
  +            {
  +                Subscriber subscriber = ( Subscriber ) e.nextElement();
  +
  +                if( subscriber.getEventType().isAssignableFrom( 
event.getClass() )
  +                    && ( subscriber.getFilter() == null || 
subscriber.getFilter().filter( event ) ) )
  +                {
  +                    if( getLogger().isInfoEnabled() )
  +                        getLogger().info( "Informing subscriber " + 
subscriber
  +                                          + " of event " + event.getClass() 
);
  +
  +                    subscriber.inform( event );
                   }
               }
           }
  @@ -106,34 +114,49 @@
           public void subscribe( final Subscriber subscriber )
               throws InvalidEventTypeException
           {
  -            if ( !m_eventClass.isAssignableFrom( subscriber.getEventType() ) 
)
  +            if( !m_eventClass.isAssignableFrom( subscriber.getEventType() ) )
  +            {
                   throw new InvalidEventTypeException();
  +            }
  +
  +            if( getLogger().isInfoEnabled() )
  +                getLogger().info( "Subscribing event " + 
subscriber.getEventType().getName() );
   
  -            getLogger().info( "Subscribing event " + 
subscriber.getEventType().getName() );
               // Add to list but prevent duplicate subscriptions
  -            if ( !m_subscribers.containsKey( subscriber.getUID() ) ){
  +            if( !m_subscribers.containsKey( subscriber.getUID() ) )
  +            {
                   m_subscribers.put( subscriber.getUID(), subscriber );
  -                getLogger().info( "Subscribed Event " + 
subscriber.getEventType().getName() );
  -                if ( getLogger().isDebugEnabled() ){
  +                if( getLogger().isInfoEnabled() )
  +                    getLogger().info( "Subscribed Event " + 
subscriber.getEventType().getName()
  +                                      + ", " + subscriber );
  +
  +                if( getLogger().isDebugEnabled() )
                       getLogger().debug( "Subscribers now active: " + 
m_subscribers.size() );
  -                }
               }
           }
  +
           public void unsubscribe( Subscriber subscriber )
               throws InvalidEventTypeException
           {
  -            if ( !m_eventClass.isAssignableFrom( subscriber.getEventType() ) 
)
  +            if( !m_eventClass.isAssignableFrom( subscriber.getEventType() ) )
  +            {
                   throw new InvalidEventTypeException();
  -            if ( m_subscribers.containsKey( subscriber.getUID() ) ){
  +            }
  +
  +            if( m_subscribers.containsKey( subscriber.getUID() ) )
  +            {
                   m_subscribers.remove( subscriber.getUID() );
  -                getLogger().info( "Unsubscribed Event " + 
subscriber.getEventType().getName() );
  -                if ( getLogger().isDebugEnabled() ){
  +
  +                if( getLogger().isInfoEnabled() )
  +                    getLogger().info( "Unsubscribed Event " + 
subscriber.getEventType().getName() );
  +
  +                if( getLogger().isDebugEnabled() )
                       getLogger().debug( "Subscribers now active: " + 
m_subscribers.size() );
  -                }
  -            } else {
  +            }
  +            else
  +            {
                   getLogger().warn( "Subscriber " + subscriber.getUID() + " 
not found" );
               }
           }
       }
  -
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to