hlship      2004/06/15 12:26:38

  Modified:    framework/src/java/org/apache/hivemind
                        HiveMindMessages.properties
               framework/src/test/hivemind/test/services
                        TestEventLinker.java EventConsumer.java
                        EventProducer.java
               framework/src/java/org/apache/hivemind/order
                        OrdererMessages.java Orderer.java
               framework/src/java/org/apache/hivemind/service/impl
                        EventLinkerImpl.java ServiceMessages.java
                        BuilderFactory.java ServiceStrings.properties
               library/src/test/org/apache/hivemind/lib/factory
                        TestBeanTranslator.java
               library/src/java/org/apache/hivemind/lib/factory
                        BeanTranslator.java
               framework/src/test/org/apache/hivemind/order
                        TestOrderer.java
  Added:       framework/src/java/org/apache/hivemind/order
                        OrdererStrings.properties
  Log:
  Split out many messages out of HiveMindMessages.properties and into 
per-package properties files (more to come).
  Begin excising location-related portions of messages (as location reporting 
is a function of the ErrorHandler).
  
  Revision  Changes    Path
  1.18      +0 -9      
jakarta-hivemind/framework/src/java/org/apache/hivemind/HiveMindMessages.properties
  
  Index: HiveMindMessages.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/HiveMindMessages.properties,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- HiveMindMessages.properties       10 Jun 2004 19:49:39 -0000      1.17
  +++ HiveMindMessages.properties       15 Jun 2004 19:26:37 -0000      1.18
  @@ -84,15 +84,6 @@
   HiveMindFilter.init=Constructing HiveMind Registry.
   HiveMindFilter.cleanup-error=Unable to cleanup current thread: {0}
   
  -# order package
  -
  -Orderer.duplicate-name={0} ''{1}'' (at {2}) duplicates previous value (at 
{3}) and is being ignored.
  -Orderer.bad-dependency=Unknown {0} dependency ''{1}'' (for ''{2}'', at {3}).
  -Orderer.dependency-cycle=Unable to order {0} ''{1}'' (at {2}) due to 
dependency cycle: {3}
  -Orderer.exception=Unable to order {0}s: {1}
  -Orderer.dupe-leader={0} ''{1}'' (at {2}) has been ordered first, conflicting 
with ''{3}'' (at {4}).
  -Orderer.dupe-trailer={0} ''{1}'' (at {2}) has been ordered last, conflicting 
with ''{3}'' (at {4}).
  -
   # sdl.parse package
   
   SDLResourceParser.unable-to-close-stream=Unable to close input stream for 
{0}: {1}
  
  
  
  1.3       +67 -33    
jakarta-hivemind/framework/src/test/hivemind/test/services/TestEventLinker.java
  
  Index: TestEventLinker.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/TestEventLinker.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestEventLinker.java      18 May 2004 15:34:01 -0000      1.2
  +++ TestEventLinker.java      15 Jun 2004 19:26:37 -0000      1.3
  @@ -16,6 +16,7 @@
   
   import java.beans.PropertyChangeEvent;
   
  +import org.apache.hivemind.ErrorHandler;
   import org.apache.hivemind.Location;
   import org.apache.hivemind.Resource;
   import org.apache.hivemind.impl.DefaultClassResolver;
  @@ -25,6 +26,7 @@
   import org.apache.hivemind.service.impl.EventLinkerImpl;
   import org.apache.hivemind.test.HiveMindTestCase;
   import org.apache.hivemind.util.ClasspathResource;
  +import org.easymock.MockControl;
   
   /**
    * Tests for the [EMAIL PROTECTED] 
org.apache.hivemind.service.impl.EventLinkerImpl} class,
  @@ -35,14 +37,13 @@
    */
   public class TestEventLinker extends HiveMindTestCase
   {
  -    private EventLinker _l = new EventLinkerImpl();
  -
       public void testNoName()
       {
           EventProducer p = new EventProducer();
           EventConsumer c = new EventConsumer();
  +        EventLinker l = new EventLinkerImpl(null, null);
   
  -        _l.addEventListener(p, null, c, null);
  +        l.addEventListener(p, null, c, null);
   
           PropertyChangeEvent e = new PropertyChangeEvent(this, "whatever", 
"foo", "bar");
   
  @@ -55,7 +56,7 @@
   
           EventConsumer c2 = new EventConsumer();
   
  -        _l.addEventListener(p, null, c2, null);
  +        l.addEventListener(p, null, c2, null);
   
           p.fire(e);
   
  @@ -66,15 +67,15 @@
       {
           EventProducer p = new EventProducer();
           EventConsumer c = new EventConsumer();
  +        EventLinker l = new EventLinkerImpl(null, null);
   
  -        _l.addEventListener(p, "propertyChange", c, null);
  +        l.addEventListener(p, "propertyChange", c, null);
   
           PropertyChangeEvent e = new PropertyChangeEvent(this, "whatever", 
"foo", "bar");
   
           p.fire(e);
   
           assertSame(e, c.getLastEvent());
  -
       }
   
       private Location createLocation()
  @@ -85,71 +86,104 @@
   
       public void testNoMatch() throws Exception
       {
  -        Location l = createLocation();
  +        Location location = createLocation();
           EventProducer p = new EventProducer();
           Object c = "NeverwinterNights";
   
  -        interceptLogging(EventLinkerImpl.class.getName());
  +        MockControl control = 
MockControl.createStrictControl(ErrorHandler.class);
  +        ErrorHandler eh = (ErrorHandler) control.getMock();
  +
  +        eh.error(
  +            null,
  +            "NeverwinterNights does not implement any listener interfaces 
compatible with EventProducer.",
  +            location,
  +            null);
  +
  +        control.replay();
   
  -        _l.addEventListener(p, null, c, l);
  +        EventLinker l = new EventLinkerImpl(null, eh);
   
  -        assertLoggedMessagePattern(
  -            "NeverwinterNights \\(at classpath:/foo/bar, line 67\\) "
  -                + "does not implement any listener interfaces compatible 
with "
  -                + "hivemind.test.services.EventProducer@");
  +        l.addEventListener(p, null, c, location);
   
           assertEquals(0, p.getListenerCount());
  +
  +        control.verify();
       }
   
       public void testNoMatchingName() throws Exception
       {
  -        Location l = createLocation();
  +        Location location = createLocation();
           EventProducer p = new EventProducer();
           Object c = "SoulCailiburII";
   
  -        interceptLogging(EventLinkerImpl.class.getName());
  +        MockControl control = 
MockControl.createStrictControl(ErrorHandler.class);
  +        ErrorHandler eh = (ErrorHandler) control.getMock();
  +
  +        eh.error(
  +            null,
  +            "EventProducer does not implement an event set named 'fred'.",
  +            location,
  +            null);
  +
  +        control.replay();
   
  -        _l.addEventListener(p, "fred", c, l);
  +        EventLinker l = new EventLinkerImpl(null, eh);
   
  -        assertLoggedMessagePattern(
  -            "[EMAIL PROTECTED] does not implement an "
  -                + "event set named 'fred' \\(at classpath:/foo/bar, line 
67\\)\\.");
  +        l.addEventListener(p, "fred", c, location);
   
           assertEquals(0, p.getListenerCount());
  +
  +        control.verify();
       }
   
       public void testIncompatible() throws Exception
       {
  -        Location l = createLocation();
  +        Location location = createLocation();
           EventProducer p = new EventProducer();
           Object c = "SplinterCell";
   
  -        interceptLogging(EventLinkerImpl.class.getName());
  +        MockControl control = 
MockControl.createStrictControl(ErrorHandler.class);
  +        ErrorHandler eh = (ErrorHandler) control.getMock();
  +
  +        eh.error(
  +            null,
  +            "SplinterCell does not implement the 
java.beans.PropertyChangeListener listener interface (for event set 
'propertyChange' of EventProducer).",
  +            location,
  +            null);
  +
  +        control.replay();
   
  -        _l.addEventListener(p, "propertyChange", c, l);
  +        EventLinker l = new EventLinkerImpl(null, eh);
   
  -        assertLoggedMessagePattern(
  -            "SplinterCell \\(at classpath:/foo/bar, line 67\\) does not 
implement "
  -                + "the java.beans.PropertyChangeListener listener interface "
  -                + "\\(for event set 'propertyChange' of [EMAIL 
PROTECTED])\\.");
  +        l.addEventListener(p, "propertyChange", c, location);
   
           assertEquals(0, p.getListenerCount());
   
  +        control.verify();
       }
   
       public void testNoProducer() throws Exception
       {
  -        Location l = createLocation();
  +        Location location = createLocation();
           Object p = "DanceDanceRevolution";
           Object c = "SplinterCell";
   
  -        interceptLogging(EventLinkerImpl.class.getName());
  +        MockControl control = 
MockControl.createStrictControl(ErrorHandler.class);
  +        ErrorHandler eh = (ErrorHandler) control.getMock();
  +
  +        eh.error(
  +            null,
  +            "SplinterCell does not implement any listener interfaces 
compatible with DanceDanceRevolution.",
  +            location,
  +            null);
  +
  +        control.replay();
  +
  +        EventLinker l = new EventLinkerImpl(null, eh);
   
  -        _l.addEventListener(p, null, c, l);
  +        l.addEventListener(p, null, c, location);
   
  -        assertLoggedMessagePattern(
  -            "SplinterCell \\(at classpath:/foo/bar, line 67\\) "
  -                + "does not implement any listener interfaces compatible 
with DanceDanceRevolution\\.");
  +        control.verify();
       }
   
       public void testInsideBuilderFactory() throws Exception
  
  
  
  1.2       +6 -1      
jakarta-hivemind/framework/src/test/hivemind/test/services/EventConsumer.java
  
  Index: EventConsumer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/EventConsumer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EventConsumer.java        26 Feb 2004 23:07:36 -0000      1.1
  +++ EventConsumer.java        15 Jun 2004 19:26:37 -0000      1.2
  @@ -42,4 +42,9 @@
           _lastEvent = event;
       }
   
  +    public String toString()
  +    {
  +        return "EventConsumer";
  +    }
  +
   }
  
  
  
  1.2       +26 -22    
jakarta-hivemind/framework/src/test/hivemind/test/services/EventProducer.java
  
  Index: EventProducer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/EventProducer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- EventProducer.java        26 Feb 2004 23:07:36 -0000      1.1
  +++ EventProducer.java        15 Jun 2004 19:26:37 -0000      1.2
  @@ -18,7 +18,6 @@
   import java.beans.PropertyChangeListener;
   import java.beans.PropertyChangeSupport;
   
  -
   /**
    * Class used by [EMAIL PROTECTED] hivemind.test.services.TestEventLinker}.
    * 
  @@ -27,25 +26,30 @@
    */
   public class EventProducer
   {
  -     private PropertyChangeSupport _support = new 
PropertyChangeSupport(this);
  -     
  -     public void addPropertyChangeListener(PropertyChangeListener listener)
  -     {
  -             _support.addPropertyChangeListener(listener);
  -     }
  +    private PropertyChangeSupport _support = new PropertyChangeSupport(this);
  +
  +    public void addPropertyChangeListener(PropertyChangeListener listener)
  +    {
  +        _support.addPropertyChangeListener(listener);
  +    }
  +
  +    public void removePropertyChangeListener(PropertyChangeListener listener)
  +    {
  +        _support.removePropertyChangeListener(listener);
  +    }
  +
  +    public void fire(PropertyChangeEvent event)
  +    {
  +        _support.firePropertyChange(event);
  +    }
  +
  +    public int getListenerCount()
  +    {
  +        return _support.getPropertyChangeListeners().length;
  +    }
   
  -     public void removePropertyChangeListener(PropertyChangeListener 
listener)
  -     {
  -             _support.removePropertyChangeListener(listener);
  -     }
  -     
  -     public void fire(PropertyChangeEvent event)
  -     {
  -             _support.firePropertyChange(event);
  -     }
  -     
  -     public int getListenerCount()
  -     {
  -             return _support.getPropertyChangeListeners().length;
  -     }
  +    public String toString()
  +    {
  +        return "EventProducer";
  +    }
   }
  
  
  
  1.2       +21 -18    
jakarta-hivemind/framework/src/java/org/apache/hivemind/order/OrdererMessages.java
  
  Index: OrdererMessages.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/order/OrdererMessages.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- OrdererMessages.java      5 Jun 2004 19:09:13 -0000       1.1
  +++ OrdererMessages.java      15 Jun 2004 19:26:37 -0000      1.2
  @@ -14,11 +14,12 @@
   
   package org.apache.hivemind.order;
   
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.hivemind.HiveMind;
  +import org.apache.hivemind.impl.MessageFormatter;
   import org.apache.hivemind.util.StringUtils;
   
  -import sun.rmi.transport.ObjectTable;
  -
   /**
    * Messages for classes in this package.
    *
  @@ -26,14 +27,18 @@
    */
   final class OrdererMessages
   {
  +    private static final Log LOG = LogFactory.getLog(OrdererMessages.class);
  +    private static final MessageFormatter _formatter =
  +        new MessageFormatter(LOG, OrdererMessages.class, "OrdererStrings");
  +
       public static String duplicateName(
           String objectType,
           String objectName,
           Object newObject,
           Object existingObject)
       {
  -        return HiveMind.format(
  -            "Orderer.duplicate-name",
  +        return _formatter.format(
  +            "duplicate-name",
               new Object[] {
                   StringUtils.capitalize(objectType),
                   objectName,
  @@ -43,7 +48,7 @@
   
       public static String exception(String objectType, Throwable cause)
       {
  -        return HiveMind.format("Orderer.exception", objectType, 
cause.getMessage());
  +        return _formatter.format("Orderer.exception", objectType, 
_formatter.extractMessage(cause));
       }
   
       public static String dupeLeader(
  @@ -51,8 +56,8 @@
           ObjectOrdering newOrdering,
           ObjectOrdering existingLeader)
       {
  -        return HiveMind.format(
  -            "Orderer.dupe-leader",
  +        return _formatter.format(
  +            "dupe-leader",
               new Object[] {
                   StringUtils.capitalize(objectType),
                   newOrdering.getName(),
  @@ -66,8 +71,8 @@
           ObjectOrdering newOrdering,
           ObjectOrdering existingTrailer)
       {
  -        return HiveMind.format(
  -            "Orderer.dupe-trailer",
  +        return _formatter.format(
  +            "dupe-trailer",
               new Object[] {
                   StringUtils.capitalize(objectType),
                   newOrdering.getName(),
  @@ -81,13 +86,11 @@
           ObjectOrdering trigger,
           Throwable cause)
       {
  -        return HiveMind.format(
  -            "Orderer.dependency-cycle",
  -            new Object[] {
  -                objectType,
  -                trigger.getName(),
  -                HiveMind.getLocationString(trigger.getObject()),
  -                cause.getMessage()});
  +        return _formatter.format(
  +            "dependency-cycle",
  +            objectType,
  +            trigger.getName(),
  +            _formatter.extractMessage(cause));
       }
   
       public static String badDependency(
  @@ -95,8 +98,8 @@
           String dependencyName,
           ObjectOrdering ordering)
       {
  -        return HiveMind.format(
  -            "Orderer.bad-dependency",
  +        return _formatter.format(
  +            "bad-dependency",
               new Object[] {
                   objectType,
                   dependencyName,
  
  
  
  1.5       +26 -12    
jakarta-hivemind/framework/src/java/org/apache/hivemind/order/Orderer.java
  
  Index: Orderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/order/Orderer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Orderer.java      10 Jun 2004 19:49:40 -0000      1.4
  +++ Orderer.java      15 Jun 2004 19:26:37 -0000      1.5
  @@ -188,8 +188,7 @@
           }
           catch (Exception ex)
           {
  -
  -            _log.error(OrdererMessages.exception(_objectType, ex), ex);
  +            _errorHandler.error(_log, OrdererMessages.exception(_objectType, 
ex), null, ex);
           }
       }
   
  @@ -224,11 +223,11 @@
                       _leader = goal;
                   else
                   {
  -                    _log.error(
  -                        OrdererMessages.dupeLeader(
  -                            _objectType,
  -                            o,
  -                            getOrderable(_leader.getName())));
  +                    _errorHandler.error(
  +                        _log,
  +                        OrdererMessages.dupeLeader(_objectType, o, 
getOrderable(_leader.getName())),
  +                                     HiveMind.getLocation(o.getObject()),
  +                        null);
                   }
               }
   
  @@ -238,11 +237,14 @@
                       _trailer = goal;
                   else
                   {
  -                    _log.error(
  +                    _errorHandler.error(
  +                        _log,
                           OrdererMessages.dupeTrailer(
                               _objectType,
                               o,
  -                            getOrderable(_trailer.getName())));
  +                            getOrderable(_trailer.getName())),
  +                        HiveMind.getLocation(o.getObject()),
  +                        null);
                   }
               }
   
  @@ -285,7 +287,11 @@
               String name = goal.getName();
               ObjectOrdering trigger = getOrderable(name);
   
  -            _log.error(OrdererMessages.dependencyCycle(_objectType, trigger, 
ex), ex);
  +            _errorHandler.error(
  +                _log,
  +                OrdererMessages.dependencyCycle(_objectType, trigger, ex),
  +                HiveMind.getLocation(orderable.getObject()),
  +                ex);
           }
       }
   
  @@ -320,7 +326,11 @@
                       String name = goal.getName();
                       ObjectOrdering trigger = getOrderable(name);
   
  -                    _log.error(OrdererMessages.dependencyCycle(_objectType, 
trigger, ex), ex);
  +                    _errorHandler.error(
  +                        _log,
  +                        OrdererMessages.dependencyCycle(_objectType, 
trigger, ex),
  +                        HiveMind.getLocation(trigger.getObject()),
  +                        ex);
                   }
   
               }
  @@ -359,7 +369,11 @@
                       String name = goal.getName();
                       ObjectOrdering trigger = getOrderable(name);
   
  -                    _log.error(OrdererMessages.dependencyCycle(_objectType, 
trigger, ex), ex);
  +                    _errorHandler.error(
  +                        _log,
  +                        OrdererMessages.dependencyCycle(_objectType, 
trigger, ex),
  +                        HiveMind.getLocation(trigger.getObject()),
  +                        ex);
                   }
   
               }
  
  
  
  1.1                  
jakarta-hivemind/framework/src/java/org/apache/hivemind/order/OrdererStrings.properties
  
  Index: OrdererStrings.properties
  ===================================================================
  #
  # Copyright 2004 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.
  
  duplicate-name={0} ''{1}'' (at {2}) duplicates previous value (at {3}) and is 
being ignored.
  bad-dependency=Unknown {0} dependency ''{1}'' (for ''{2}'', at {3}).
  dependency-cycle=Unable to order {0} ''{1}'' due to dependency cycle: {2}
  exception=Unable to order {0}s: {1}
  dupe-leader={0} ''{1}'' (at {2}) has been ordered first, conflicting with 
''{3}'' (at {4}).
  dupe-trailer={0} ''{1}'' (at {2}) has been ordered last, conflicting with 
''{3}'' (at {4}).
  
  
  
  1.4       +33 -8     
jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/EventLinkerImpl.java
  
  Index: EventLinkerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/EventLinkerImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- EventLinkerImpl.java      5 Jun 2004 19:09:13 -0000       1.3
  +++ EventLinkerImpl.java      15 Jun 2004 19:26:37 -0000      1.4
  @@ -24,6 +24,7 @@
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  +import org.apache.hivemind.ErrorHandler;
   import org.apache.hivemind.HiveMind;
   import org.apache.hivemind.Location;
   import org.apache.hivemind.impl.BaseLocatable;
  @@ -39,13 +40,20 @@
    */
   public class EventLinkerImpl extends BaseLocatable implements EventLinker
   {
  -    private static final Log LOG = LogFactory.getLog(EventLinkerImpl.class);
  +    private Log _log;
  +    private ErrorHandler _errorHandler;
   
       /**
        * Map of [EMAIL PROTECTED] java.beans.EventSetDescriptor}[], keyed on 
producer class.
        */
       private Map _producerEventSets;
   
  +    public EventLinkerImpl(Log log, ErrorHandler errorHandler)
  +    {
  +        _log = log;
  +        _errorHandler = errorHandler;
  +    }
  +
       public void addEventListener(
           Object producer,
           String eventSetName,
  @@ -71,8 +79,11 @@
                       addEventListener(producer, set, consumer, location);
                   else
                   {
  -                    LOG.error(
  -                        ServiceMessages.notCompatibleWithEvent(consumer, 
location, set, producer));
  +                    _errorHandler.error(
  +                        _log,
  +                        ServiceMessages.notCompatibleWithEvent(consumer, 
set, producer),
  +                        location,
  +                        null);
                   }
   
                   return;
  @@ -90,9 +101,17 @@
           if (count == 0)
           {
               if (nameMatch)
  -                LOG.error(ServiceMessages.noSuchEventSet(producer, 
eventSetName, location));
  +                _errorHandler.error(
  +                    _log,
  +                    ServiceMessages.noSuchEventSet(producer, eventSetName),
  +                    location,
  +                    null);
               else
  -                LOG.error(ServiceMessages.noEventMatches(consumer, location, 
producer));
  +                _errorHandler.error(
  +                    _log,
  +                    ServiceMessages.noEventMatches(consumer, producer),
  +                    location,
  +                    null);
           }
       }
   
  @@ -115,8 +134,10 @@
           }
           catch (Exception ex)
           {
  -            LOG.error(
  +            _errorHandler.error(
  +                _log,
                   ServiceMessages.unableToAddListener(producer, set, consumer, 
location, ex),
  +                location,
                   ex);
   
           }
  @@ -159,7 +180,11 @@
           }
           catch (IntrospectionException ex)
           {
  -            LOG.error(ServiceMessages.unableToIntrospectClass(producerClass, 
ex), ex);
  +            _errorHandler.error(
  +                _log,
  +                ServiceMessages.unableToIntrospectClass(producerClass, ex),
  +                null,
  +                ex);
   
               return new EventSetDescriptor[0];
           }
  
  
  
  1.6       +5 -13     
jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ServiceMessages.java
  
  Index: ServiceMessages.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ServiceMessages.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ServiceMessages.java      12 Jun 2004 18:43:41 -0000      1.5
  +++ ServiceMessages.java      15 Jun 2004 19:26:37 -0000      1.6
  @@ -21,11 +21,9 @@
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  -import org.apache.hivemind.HiveMind;
   import org.apache.hivemind.InterceptorStack;
   import org.apache.hivemind.Location;
   import org.apache.hivemind.impl.MessageFormatter;
  -import org.apache.hivemind.service.ClassFab;
   import org.apache.hivemind.service.MethodSignature;
   
   /**
  @@ -129,28 +127,22 @@
   
       public static String notCompatibleWithEvent(
           Object consumer,
  -        Location location,
           EventSetDescriptor set,
           Object producer)
       {
           return _formatter.format(
               "not-compatible-with-event",
  -            new Object[] {
  -                consumer,
  -                location,
  -                set.getListenerType().getName(),
  -                set.getName(),
  -                producer });
  +            new Object[] { consumer, set.getListenerType().getName(), 
set.getName(), producer });
       }
   
  -    public static String noSuchEventSet(Object producer, String name, 
Location location)
  +    public static String noSuchEventSet(Object producer, String name)
       {
  -        return _formatter.format("no-such-event-set", producer, name, 
location);
  +        return _formatter.format("no-such-event-set", producer, name);
       }
   
  -    public static String noEventMatches(Object consumer, Location location, 
Object producer)
  +    public static String noEventMatches(Object consumer, Object producer)
       {
  -        return _formatter.format("no-event-matches", consumer, location, 
producer);
  +        return _formatter.format("no-event-matches", consumer, producer);
       }
   
       public static String unableToAddListener(
  
  
  
  1.10      +17 -9     
jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/BuilderFactory.java
  
  Index: BuilderFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/BuilderFactory.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BuilderFactory.java       15 Jun 2004 13:42:33 -0000      1.9
  +++ BuilderFactory.java       15 Jun 2004 19:26:37 -0000      1.10
  @@ -15,12 +15,14 @@
   package org.apache.hivemind.service.impl;
   
   import java.lang.reflect.Method;
  +import java.util.Iterator;
   import java.util.List;
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.hivemind.ApplicationRuntimeException;
   import org.apache.hivemind.ClassResolver;
  +import org.apache.hivemind.ErrorHandler;
   import org.apache.hivemind.HiveMind;
   import org.apache.hivemind.Location;
   import org.apache.hivemind.ServiceImplementationFactory;
  @@ -49,8 +51,6 @@
   {
       private static final String POINT_ID = "hivemind.BuilderFactory";
   
  -    private EventLinker _eventLinker = new EventLinkerImpl();
  -
       public Object createCoreServiceImplementation(
           String serviceId,
           Class serviceInterface,
  @@ -60,6 +60,7 @@
           HiveMind.checkFactoryParameterCount(POINT_ID, parameters, 1);
   
           Log log = LogFactory.getLog(serviceId);
  +        ErrorHandler errorHandler = invokingModule.getErrorHandler();
   
           BuilderParameter parameter = (BuilderParameter) parameters.get(0);
   
  @@ -67,29 +68,36 @@
   
           setProperties(serviceId, invokingModule, parameter, result, log);
   
  -        registerForEvents(parameter, result);
  +        registerForEvents(log, errorHandler, parameter, result);
   
           invokeInitializer(parameter, result, serviceId, log, invokingModule);
   
           return result;
       }
   
  -    private void registerForEvents(BuilderParameter parameter, Object result)
  +    private void registerForEvents(
  +        Log log,
  +        ErrorHandler eventHandler,
  +        BuilderParameter parameter,
  +        Object result)
       {
           List eventRegistrations = parameter.getEventRegistrations();
  -        int count = eventRegistrations.size();
   
  -        for (int i = 0; i < count; i++)
  +        if (eventRegistrations.isEmpty())
  +            return;
  +
  +        EventLinker linker = new EventLinkerImpl(log, eventHandler);
  +        Iterator i = eventRegistrations.iterator();
  +        while (i.hasNext())
           {
  -            EventRegistration er = (EventRegistration) 
eventRegistrations.get(i);
  +            EventRegistration er = (EventRegistration) i.next();
   
  -            _eventLinker.addEventListener(
  +            linker.addEventListener(
                   er.getProducer(),
                   er.getEventSetName(),
                   result,
                   er.getLocation());
           }
  -
       }
   
       private void setProperties(
  
  
  
  1.4       +3 -3      
jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ServiceStrings.properties
  
  Index: ServiceStrings.properties
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ServiceStrings.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ServiceStrings.properties 12 Jun 2004 18:43:41 -0000      1.3
  +++ ServiceStrings.properties 15 Jun 2004 19:26:37 -0000      1.4
  @@ -23,9 +23,9 @@
   unable-to-lookup=Unable to lookup {0}: {1}
   unable-to-add-catch=Unable to add catch block for exception {0} to class 
{1}: {2}
   duplicate-symbol=Default for symbol ''{0}'' duplicates prior value (at {1}) 
and has been ignored.
  -not-compatible-with-event={0} (at {1}) does not implement the {2} listener 
interface (for event set ''{3}'' of {4}).
  -no-such-event-set={0} does not implement an event set named ''{1}'' (at {2}).
  -no-event-matches={0} (at {1}) does not implement any listener interfaces 
compatible with {2}.
  +not-compatible-with-event={0} does not implement the {1} listener interface 
(for event set ''{2}'' of {3}).
  +no-such-event-set={0} does not implement an event set named ''{1}''.
  +no-event-matches={0} does not implement any listener interfaces compatible 
with {1}.
   unable-to-introspect-class=Unable to introspect {0}: {1}
   unable-to-add-listener=Unable to add {0} as listener of {1} (event set {2}, 
at {3}): {4}
   duplicate-method-in-class=Attempt to redefine method {0} of class {1}.
  
  
  
  1.2       +2 -2      
jakarta-hivemind/library/src/test/org/apache/hivemind/lib/factory/TestBeanTranslator.java
  
  Index: TestBeanTranslator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/factory/TestBeanTranslator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestBeanTranslator.java   15 Jun 2004 13:42:33 -0000      1.1
  +++ TestBeanTranslator.java   15 Jun 2004 19:26:37 -0000      1.2
  @@ -1,10 +1,10 @@
  -// Copyright 2004 The Apache Software Foundation
  +//  Copyright 2004 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
  +//     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,
  
  
  
  1.2       +2 -2      
jakarta-hivemind/library/src/java/org/apache/hivemind/lib/factory/BeanTranslator.java
  
  Index: BeanTranslator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/factory/BeanTranslator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- BeanTranslator.java       15 Jun 2004 13:42:33 -0000      1.1
  +++ BeanTranslator.java       15 Jun 2004 19:26:38 -0000      1.2
  @@ -1,10 +1,10 @@
  -// Copyright 2004 The Apache Software Foundation
  +//  Copyright 2004 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
  +//     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,
  
  
  
  1.3       +53 -13    
jakarta-hivemind/framework/src/test/org/apache/hivemind/order/TestOrderer.java
  
  Index: TestOrderer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-hivemind/framework/src/test/org/apache/hivemind/order/TestOrderer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestOrderer.java  10 Jun 2004 19:49:40 -0000      1.2
  +++ TestOrderer.java  15 Jun 2004 19:26:38 -0000      1.3
  @@ -18,10 +18,17 @@
   
   import java.util.List;
   
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   import org.apache.hivemind.ErrorHandler;
   import org.apache.hivemind.impl.DefaultErrorHandler;
  +import org.easymock.AbstractMatcher;
   import org.easymock.MockControl;
   
  +import com.werken.werkz.CyclicGoalChainException;
  +import com.werken.werkz.Goal;
  +import com.werken.werkz.WerkzException;
  +
   /**
    * Tests for the [EMAIL PROTECTED] org.apache.hivemind.order.Orderer}.
    *
  @@ -30,6 +37,8 @@
    */
   public class TestOrderer extends FrameworkTestCase
   {
  +    private static final Log LOG = LogFactory.getLog(TestOrderer.class);
  +
       private MockControl _errorHandlerControl;
   
       private ErrorHandler getErrorHandler()
  @@ -140,43 +149,74 @@
           assertLoggedMessage("Unknown cartoon character dependency 'dino' 
(for 'betty', at unknown location).");
       }
   
  +    private static class ExceptionAwareArgumentsMatcher extends 
AbstractMatcher
  +    {
  +        protected boolean argumentMatches(Object arg0, Object arg1)
  +        {
  +            if (arg0 instanceof Throwable)
  +                return arg0.getClass().equals(arg1.getClass());
  +
  +            return super.argumentMatches(arg0, arg1);
  +        }
  +
  +    }
  +
       public void testCyclePre() throws Exception
       {
  -        Orderer o = new Orderer(new DefaultErrorHandler(), "cartoon 
character");
  +        MockControl c = MockControl.createStrictControl(ErrorHandler.class);
  +        ErrorHandler eh = (ErrorHandler) c.getMock();
  +
  +        eh.error(
  +            LOG,
  +            "Unable to order cartoon character 'wilma' due to dependency 
cycle:"
  +                + " A cycle has been detected from the initial goal [wilma]",
  +            null,
  +            new CyclicGoalChainException(new Goal("")));
  +
  +        c.setMatcher(new ExceptionAwareArgumentsMatcher());
  +
  +        c.replay();
  +
  +        Orderer o = new Orderer(LOG, eh, "cartoon character");
   
           o.add("FRED", "fred", "wilma", null);
           o.add("BARNEY", "barney", "betty", null);
           o.add("BETTY", "betty", "fred", null);
           o.add("WILMA", "wilma", "barney", null);
   
  -        interceptLogging();
  -
           List l = o.getOrderedObjects();
   
           assertListsEqual(new Object[] { "WILMA", "FRED", "BETTY", "BARNEY" 
}, l);
   
  -        assertLoggedMessage(
  -            "Unable to order cartoon character 'wilma' (at unknown location) 
due to dependency cycle:"
  -                + " A cycle has been detected from the initial goal 
[wilma]");
  +        c.verify();
       }
   
       public void testCyclePost() throws Exception
       {
  -        Orderer o = new Orderer(new DefaultErrorHandler(), "cartoon 
character");
  +        MockControl c = MockControl.createStrictControl(ErrorHandler.class);
  +        ErrorHandler eh = (ErrorHandler) c.getMock();
  +
  +        eh.error(
  +            LOG,
  +            "Unable to order cartoon character 'betty' due to dependency 
cycle: A cycle has been detected from the initial goal [fred]",
  +            null,
  +            new CyclicGoalChainException(new Goal("")));
  +
  +        c.setMatcher(new ExceptionAwareArgumentsMatcher());
  +
  +        c.replay();
  +
  +        Orderer o = new Orderer(LOG, eh, "cartoon character");
   
           o.add("WILMA", "wilma", null, "betty");
           o.add("FRED", "fred", null, "barney");
           o.add("BARNEY", "barney", null, "wilma");
           o.add("BETTY", "betty", null, "fred");
   
  -        interceptLogging();
  -
           List l = o.getOrderedObjects();
           assertListsEqual(new Object[] { "FRED", "BARNEY", "WILMA", "BETTY" 
}, l);
   
  -        assertLoggedMessage(
  -            "Unable to order cartoon character 'betty' (at unknown location) 
due to dependency cycle:"
  -                + " A cycle has been detected from the initial goal [fred]");
  +        c.verify();
       }
   
       public void testDupe() throws Exception
  
  
  

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

Reply via email to