bloritsch 2003/02/06 08:39:58 Modified: src/java/org/apache/log Hierarchy.java src/test/org/apache/log/test LoggerListenerTestCase.java Log: update loggerlistener support to the best compromise Revision Changes Path 1.23 +14 -3 avalon-logkit/src/java/org/apache/log/Hierarchy.java Index: Hierarchy.java =================================================================== RCS file: /home/cvs/avalon-logkit/src/java/org/apache/log/Hierarchy.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- Hierarchy.java 5 Feb 2003 08:28:32 -0000 1.22 +++ Hierarchy.java 6 Feb 2003 16:39:58 -0000 1.23 @@ -195,13 +195,24 @@ } /** - * Set the LoggerListener associated with hierarchy. + * Set the LoggerListener associated with hierarchy. This is a + * unicast listener, so only one LoggerListener is allowed. * * @param loggerListener the LoggerListener + * + * @throws UnsupportedOperationException if no more LoggerListeners are + * permitted. */ - public synchronized void setLoggerListener( final LoggerListener loggerListener ) + public synchronized void addLoggerListener( final LoggerListener loggerListener ) { - m_loggerListener = loggerListener; + if ( null == m_loggerListener ) + { + m_loggerListener = loggerListener; + } + else + { + throw new UnsupportedOperationException( "LoggerListener already set on a unicast event notifier" ); + } } /** 1.2 +19 -1 avalon-logkit/src/test/org/apache/log/test/LoggerListenerTestCase.java Index: LoggerListenerTestCase.java =================================================================== RCS file: /home/cvs/avalon-logkit/src/test/org/apache/log/test/LoggerListenerTestCase.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- LoggerListenerTestCase.java 3 Feb 2003 19:39:39 -0000 1.1 +++ LoggerListenerTestCase.java 6 Feb 2003 16:39:58 -0000 1.2 @@ -24,12 +24,30 @@ super( name ); } + public void testUnicastLoggerListener() + { + final Hierarchy hierarchy = new Hierarchy(); + final RecordingLoggerListener listener = new RecordingLoggerListener(); + + try + { + hierarchy.addLoggerListener( listener ); + hierarchy.addLoggerListener( listener ); + + fail( "You should only be able to add one listener." ); + } + catch (UnsupportedOperationException uoe) + { + // It passed, yay! + } + } + public void testPriorityInheritance() throws Exception { final RecordingLoggerListener listener = new RecordingLoggerListener(); final Hierarchy hierarchy = new Hierarchy(); - hierarchy.setLoggerListener( listener ); + hierarchy.addLoggerListener( listener ); final Logger root = hierarchy.getRootLogger(); final Logger l1 = root.getChildLogger( "logger1" );
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]