You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2008/07/08 07:17:36 UTC

svn commit: r674722 [2/2] - in /continuum/trunk: ./ continuum-base/continuum-scm/src/main/java/org/apache/continuum/scm/manager/spring/ continuum-core/ continuum-core/src/main/java/org/apache/maven/continuum/execution/maven/m1/ continuum-core/src/main/...

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java Mon Jul  7 22:17:34 2008
@@ -27,9 +27,10 @@
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
+import org.apache.maven.continuum.notification.MessageContext;
+import org.apache.maven.continuum.notification.NotificationException;
 import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.apache.maven.continuum.store.ContinuumStore;
-import org.codehaus.plexus.notification.NotificationException;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
 import org.codehaus.plexus.util.StringUtils;
 import org.schwering.irc.lib.IRCConnection;
@@ -39,27 +40,28 @@
 import org.schwering.irc.lib.IRCUser;
 import org.schwering.irc.lib.ssl.SSLDefaultTrustManager;
 import org.schwering.irc.lib.ssl.SSLIRCConnection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
 
 /**
  * <b>This implementation assumes there aren't concurrent acces to the IRCConnection</b>
  *
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
- * @plexus.component role="org.codehaus.plexus.notification.notifier.Notifier" role-hint="irc"
+ * @plexus.component role="org.apache.maven.continuum.notification.Notifier" role-hint="irc"
  */
 public class IrcContinuumNotifier
     extends AbstractContinuumNotifier
     implements Disposable
 {
+    private Logger log = LoggerFactory.getLogger( getClass() );
+
     // ----------------------------------------------------------------------
     // Requirements
     // ----------------------------------------------------------------------
@@ -67,8 +69,8 @@
     /**
      * @plexus.requirement role-hint="jdo"
      */
-    private ContinuumStore store;    
-    
+    private ContinuumStore store;
+
     /**
      * @plexus.requirement
      */
@@ -93,9 +95,8 @@
     public void dispose()
     {
         // cleanup connections
-        for ( Iterator<String> keys = hostConnections.keySet().iterator(); keys.hasNext(); )
+        for ( String key : hostConnections.keySet() )
         {
-            String key = keys.next();
             IRCConnection connection = hostConnections.get( key );
             if ( connection.isConnected() )
             {
@@ -221,19 +222,21 @@
     // Notifier Implementation
     // ----------------------------------------------------------------------
 
+    public String getType()
+    {
+        return "irc";
+    }
 
-    public void sendNotification( String source, Set recipients, Map configuration, Map context )
+    public void sendMessage( String messageId, MessageContext context )
         throws NotificationException
     {
-        Project project = (Project) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT );
+        Project project = context.getProject();
 
-        ProjectNotifier projectNotifier =
-            (ProjectNotifier) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT_NOTIFIER );
+        List<ProjectNotifier> notifiers = context.getNotifiers();
 
-        BuildDefinition buildDefinition = (BuildDefinition) context
-            .get( ContinuumNotificationDispatcher.CONTEXT_BUILD_DEFINITION );
+        BuildDefinition buildDefinition = context.getBuildDefinition();
 
-        BuildResult build = (BuildResult) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD );
+        BuildResult build = context.getBuildResult();
 
         // ----------------------------------------------------------------------
         // If there wasn't any building done, don't notify
@@ -250,9 +253,12 @@
 
         try
         {
-            if ( source.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
+            if ( messageId.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
             {
-                buildComplete( project, projectNotifier, build, buildDefinition, configuration );
+                for ( ProjectNotifier notifier : notifiers )
+                {
+                    buildComplete( project, notifier, build, buildDefinition );
+                }
             }
         }
         catch ( ContinuumException e )
@@ -262,7 +268,7 @@
     }
 
     private void buildComplete( Project project, ProjectNotifier projectNotifier, BuildResult build,
-                                BuildDefinition buildDef, Map configuration )
+                                BuildDefinition buildDef )
         throws ContinuumException, NotificationException
     {
         // ----------------------------------------------------------------------
@@ -270,6 +276,7 @@
         // ----------------------------------------------------------------------
 
         BuildResult previousBuild = getPreviousBuild( project, buildDef, build );
+        Map<String, String> configuration = projectNotifier.getConfiguration();
 
         if ( !shouldNotify( build, previousBuild, projectNotifier ) )
         {
@@ -280,47 +287,47 @@
         // Gather configuration values
         // ----------------------------------------------------------------------
 
-        String host = (String) configuration.get( "host" );
+        String host = configuration.get( "host" );
 
-        String portAsString = (String) configuration.get( "port" );
+        String portAsString = configuration.get( "port" );
         int port = defaultPort;
         if ( portAsString != null )
         {
             port = Integer.parseInt( portAsString );
         }
-        String channel = (String) configuration.get( "channel" );
+        String channel = configuration.get( "channel" );
 
-        String nickName = (String) configuration.get( "nick" );
+        String nickName = configuration.get( "nick" );
 
         if ( StringUtils.isEmpty( nickName ) )
         {
             nickName = "continuum";
         }
 
-        String alternateNickName = (String) configuration.get( "alternateNick" );
+        String alternateNickName = configuration.get( "alternateNick" );
 
         if ( StringUtils.isEmpty( alternateNickName ) )
         {
             alternateNickName = "continuum_";
         }
 
-        String userName = (String) configuration.get( "username" );
+        String userName = configuration.get( "username" );
 
         if ( StringUtils.isEmpty( userName ) )
         {
             userName = nickName;
         }
 
-        String fullName = (String) configuration.get( "fullName" );
+        String fullName = configuration.get( "fullName" );
 
         if ( StringUtils.isEmpty( fullName ) )
         {
             fullName = nickName;
         }
 
-        String password = (String) configuration.get( "password" );
+        String password = configuration.get( "password" );
 
-        boolean isSsl = Boolean.parseBoolean( (String) configuration.get( "ssl" ) );
+        boolean isSsl = Boolean.parseBoolean( configuration.get( "ssl" ) );
 
         try
         {
@@ -360,7 +367,7 @@
         }
         else
         {
-            getLogger().warn( "Unknown build state " + state + " for project " + project.getId() );
+            log.warn( "Unknown build state " + state + " for project " + project.getId() );
 
             message = "ERROR: Unknown build state " + state + " for " + project.getName() + " project";
         }
@@ -369,15 +376,6 @@
     }
 
     /**
-     * @see org.codehaus.plexus.notification.notifier.Notifier#sendNotification(java.lang.String,java.util.Set,java.util.Properties)
-     */
-    public void sendNotification( String arg0, Set arg1, Properties arg2 )
-        throws NotificationException
-    {
-        throw new NotificationException( "Not implemented." );
-    }
-
-    /**
      * Treats IRC events. The most of them are just printed.
      */
     class Listener
@@ -398,27 +396,27 @@
 
         public void onRegistered()
         {
-            getLogger().info( "Connected" );
+            log.info( "Connected" );
         }
 
         public void onDisconnected()
         {
-            getLogger().info( "Disconnected" );
+            log.info( "Disconnected" );
         }
 
         public void onError( String msg )
         {
-            getLogger().error( "Error: " + msg );
+            log.error( "Error: " + msg );
         }
 
         public void onError( int num, String msg )
         {
-            getLogger().error( "Error #" + num + ": " + msg );
+            log.error( "Error #" + num + ": " + msg );
             if ( num == IRCConstants.ERR_NICKNAMEINUSE )
             {
                 if ( alternateNick != null )
                 {
-                    getLogger().info( "reconnection with alternate nick: '" + alternateNick + "'" );
+                    log.info( "reconnection with alternate nick: '" + alternateNick + "'" );
                     try
                     {
                         boolean ssl = false;
@@ -441,77 +439,113 @@
 
         public void onInvite( String chan, IRCUser u, String nickPass )
         {
-            getLogger().debug( chan + "> " + u.getNick() + " invites " + nickPass );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + " invites " + nickPass );
+            }
         }
 
         public void onJoin( String chan, IRCUser u )
         {
-            getLogger().debug( chan + "> " + u.getNick() + " joins" );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + " joins" );
+            }
         }
 
         public void onKick( String chan, IRCUser u, String nickPass, String msg )
         {
-            getLogger().debug( chan + "> " + u.getNick() + " kicks " + nickPass );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + " kicks " + nickPass );
+            }
         }
 
         public void onMode( IRCUser u, String nickPass, String mode )
         {
-            getLogger().debug( "Mode: " + u.getNick() + " sets modes " + mode + " " + nickPass );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( "Mode: " + u.getNick() + " sets modes " + mode + " " + nickPass );
+            }
         }
 
         public void onMode( String chan, IRCUser u, IRCModeParser mp )
         {
-            getLogger().debug( chan + "> " + u.getNick() + " sets mode: " + mp.getLine() );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + " sets mode: " + mp.getLine() );
+            }
         }
 
         public void onNick( IRCUser u, String nickNew )
         {
-            getLogger().debug( "Nick: " + u.getNick() + " is now known as " + nickNew );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( "Nick: " + u.getNick() + " is now known as " + nickNew );
+            }
         }
 
         public void onNotice( String target, IRCUser u, String msg )
         {
-            getLogger().info( target + "> " + u.getNick() + " (notice): " + msg );
+            log.info( target + "> " + u.getNick() + " (notice): " + msg );
         }
 
         public void onPart( String chan, IRCUser u, String msg )
         {
-            getLogger().debug( chan + "> " + u.getNick() + " parts" );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + " parts" );
+            }
         }
 
         public void onPrivmsg( String chan, IRCUser u, String msg )
         {
-            getLogger().debug( chan + "> " + u.getNick() + ": " + msg );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + ": " + msg );
+            }
         }
 
         public void onQuit( IRCUser u, String msg )
         {
-            getLogger().debug( "Quit: " + u.getNick() );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( "Quit: " + u.getNick() );
+            }
         }
 
         public void onReply( int num, String value, String msg )
         {
-            getLogger().info( "Reply #" + num + ": " + value + " " + msg );
+            log.info( "Reply #" + num + ": " + value + " " + msg );
         }
 
         public void onTopic( String chan, IRCUser u, String topic )
         {
-            getLogger().debug( chan + "> " + u.getNick() + " changes topic into: " + topic );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( chan + "> " + u.getNick() + " changes topic into: " + topic );
+            }
         }
 
         public void onPing( String p )
         {
-            getLogger().debug( "Ping:" + p );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( "Ping:" + p );
+            }
         }
 
         public void unknown( String a, String b, String c, String d )
         {
-            getLogger().debug( "UNKNOWN: " + a + " b " + c + " " + d );
+            if ( log.isDebugEnabled() )
+            {
+                log.debug( "UNKNOWN: " + a + " b " + c + " " + d );
+            }
         }
     }
 
     protected ContinuumStore getContinuumStore()
     {
         return this.store;
-    }    
+    }
 }

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java Mon Jul  7 22:17:34 2008
@@ -27,15 +27,18 @@
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
+import org.apache.maven.continuum.notification.MessageContext;
+import org.apache.maven.continuum.notification.NotificationException;
 import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.codehaus.plexus.jabber.JabberClient;
 import org.codehaus.plexus.jabber.JabberClientException;
-import org.codehaus.plexus.notification.NotificationException;
+import org.codehaus.plexus.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -44,6 +47,8 @@
 public class JabberContinuumNotifier
     extends AbstractContinuumNotifier
 {
+    private Logger log = LoggerFactory.getLogger( getClass() );
+
     // ----------------------------------------------------------------------
     // Requirements
     // ----------------------------------------------------------------------
@@ -96,19 +101,19 @@
     // Notifier Implementation
     // ----------------------------------------------------------------------
 
-    public void sendNotification( String source, Set recipients, Map configuration, Map context )
-        throws NotificationException
+    public String getType()
     {
-        Project project = (Project) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT );
-
-        ProjectNotifier projectNotifier =
-            (ProjectNotifier) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT_NOTIFIER );
-
-        BuildDefinition buildDefinition = (BuildDefinition) context
-            .get( ContinuumNotificationDispatcher.CONTEXT_BUILD_DEFINITION );
+        return "jabber";
+    }
 
-        BuildResult build = (BuildResult) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD );
+    public void sendMessage( String messageId, MessageContext context )
+        throws NotificationException
+    {
+        Project project = context.getProject();
 
+        List<ProjectNotifier> notifiers = context.getNotifiers();
+        BuildDefinition buildDefinition = context.getBuildDefinition();
+        BuildResult build = context.getBuildResult();
         // ----------------------------------------------------------------------
         // If there wasn't any building done, don't notify
         // ----------------------------------------------------------------------
@@ -122,9 +127,19 @@
         //
         // ----------------------------------------------------------------------
 
+        List<String> recipients = new ArrayList<String>();
+        for ( ProjectNotifier notifier : notifiers )
+        {
+            Map<String, String> configuration = notifier.getConfiguration();
+            if ( configuration != null && StringUtils.isNotEmpty( configuration.get( ADDRESS_FIELD ) ) )
+            {
+                recipients.add( configuration.get( ADDRESS_FIELD ) );
+            }
+        }
+
         if ( recipients.size() == 0 )
         {
-            getLogger().info( "No Jabber recipients for '" + project.getName() + "'." );
+            log.info( "No Jabber recipients for '" + project.getName() + "'." );
 
             return;
         }
@@ -133,9 +148,12 @@
         //
         // ----------------------------------------------------------------------
 
-        if ( source.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
+        if ( messageId.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
         {
-            sendMessage( project, projectNotifier, build, recipients, buildDefinition, configuration );
+            for ( ProjectNotifier notifier : notifiers )
+            {
+                sendMessage( project, notifier, build, buildDefinition );
+            }
         }
     }
 
@@ -169,7 +187,7 @@
         }
         else
         {
-            getLogger().warn( "Unknown build state " + state + " for project " + project.getId() );
+            log.warn( "Unknown build state " + state + " for project " + project.getId() );
 
             message = "ERROR: Unknown build state " + state + " for " + project.getName() + " project";
         }
@@ -177,8 +195,7 @@
         return message + " " + getReportUrl( project, build, configurationService );
     }
 
-    private void sendMessage( Project project, ProjectNotifier projectNotifier, BuildResult build, Set recipients,
-                              BuildDefinition buildDef, Map configuration )
+    private void sendMessage( Project project, ProjectNotifier notifier, BuildResult build, BuildDefinition buildDef )
         throws NotificationException
     {
         String message;
@@ -189,7 +206,7 @@
 
         BuildResult previousBuild = getPreviousBuild( project, buildDef, build );
 
-        if ( !shouldNotify( build, previousBuild, projectNotifier ) )
+        if ( !shouldNotify( build, previousBuild, notifier ) )
         {
             return;
         }
@@ -203,17 +220,17 @@
             throw new NotificationException( "Can't generate the message.", e );
         }
 
-        jabberClient.setHost( getHost( configuration ) );
+        jabberClient.setHost( getHost( notifier.getConfiguration() ) );
 
-        jabberClient.setPort( getPort( configuration ) );
+        jabberClient.setPort( getPort( notifier.getConfiguration() ) );
 
-        jabberClient.setUser( getUsername( configuration ) );
+        jabberClient.setUser( getUsername( notifier.getConfiguration() ) );
 
-        jabberClient.setPassword( getPassword( configuration ) );
+        jabberClient.setPassword( getPassword( notifier.getConfiguration() ) );
 
-        jabberClient.setImDomainName( getImDomainName( configuration ) );
+        jabberClient.setImDomainName( getImDomainName( notifier.getConfiguration() ) );
 
-        jabberClient.setSslConnection( isSslConnection( configuration ) );
+        jabberClient.setSslConnection( isSslConnection( notifier.getConfiguration() ) );
 
         try
         {
@@ -221,17 +238,21 @@
 
             jabberClient.logon();
 
-            for ( Iterator i = recipients.iterator(); i.hasNext(); )
+            if ( notifier.getConfiguration() != null &&
+                StringUtils.isNotEmpty( (String) notifier.getConfiguration().get( ADDRESS_FIELD ) ) )
             {
-                String recipient = (String) i.next();
-
-                if ( isGroup( configuration ) )
+                String address = (String) notifier.getConfiguration().get( ADDRESS_FIELD );
+                String[] recipients = StringUtils.split( address, "," );
+                for ( String recipient : recipients )
                 {
-                    jabberClient.sendMessageToGroup( recipient, message );
-                }
-                else
-                {
-                    jabberClient.sendMessageToUser( recipient, message );
+                    if ( isGroup( notifier.getConfiguration() ) )
+                    {
+                        jabberClient.sendMessageToGroup( recipient, message );
+                    }
+                    else
+                    {
+                        jabberClient.sendMessageToUser( recipient, message );
+                    }
                 }
             }
         }
@@ -252,12 +273,6 @@
         }
     }
 
-    public void sendNotification( String arg0, Set arg1, Properties arg2 )
-        throws NotificationException
-    {
-        throw new NotificationException( "Not implemented." );
-    }
-
     private String getHost( Map configuration )
     {
         if ( configuration.containsKey( "host" ) )
@@ -290,7 +305,7 @@
             }
             catch ( NumberFormatException e )
             {
-                getLogger().error( "jabber port isn't a number.", e );
+                log.error( "jabber port isn't a number.", e );
             }
         }
 
@@ -357,25 +372,11 @@
 
     private boolean isGroup( Map configuration )
     {
-        if ( configuration.containsKey( "isGroup" ) )
-        {
-            return convertBoolean( (String) configuration.get( "isGroup" ) );
-        }
-        else
-        {
-            return false;
-        }
+        return configuration.containsKey( "isGroup" ) && convertBoolean( (String) configuration.get( "isGroup" ) );
     }
 
     private boolean convertBoolean( String value )
     {
-        if ( "true".equalsIgnoreCase( value ) || "on".equalsIgnoreCase( value ) || "yes".equalsIgnoreCase( value ) )
-        {
-            return true;
-        }
-        else
-        {
-            return false;
-        }
+        return "true".equalsIgnoreCase( value ) || "on".equalsIgnoreCase( value ) || "yes".equalsIgnoreCase( value );
     }
 }

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java Mon Jul  7 22:17:34 2008
@@ -27,12 +27,17 @@
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
+import org.apache.maven.continuum.notification.MessageContext;
+import org.apache.maven.continuum.notification.NotificationException;
 import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.codehaus.plexus.msn.MsnClient;
 import org.codehaus.plexus.msn.MsnException;
-import org.codehaus.plexus.notification.NotificationException;
+import org.codehaus.plexus.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
@@ -44,6 +49,8 @@
 public class MsnContinuumNotifier
     extends AbstractContinuumNotifier
 {
+    private Logger log = LoggerFactory.getLogger( getClass() );
+
     // ----------------------------------------------------------------------
     // Requirements
     // ----------------------------------------------------------------------
@@ -80,18 +87,21 @@
     // Notifier Implementation
     // ----------------------------------------------------------------------
 
-    public void sendNotification( String source, Set recipients, Map configuration, Map context )
+    public String getType()
+    {
+        return "irc";
+    }
+
+    public void sendMessage( String messageId, MessageContext context )
         throws NotificationException
     {
-        Project project = (Project) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT );
+        Project project = context.getProject();
 
-        ProjectNotifier projectNotifier =
-            (ProjectNotifier) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT_NOTIFIER );
+        List<ProjectNotifier> notifiers = context.getNotifiers();
 
-        BuildDefinition buildDefinition = (BuildDefinition) context
-            .get( ContinuumNotificationDispatcher.CONTEXT_BUILD_DEFINITION );
+        BuildDefinition buildDefinition = context.getBuildDefinition();
 
-        BuildResult build = (BuildResult) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD );
+        BuildResult build = context.getBuildResult();
 
         // ----------------------------------------------------------------------
         // If there wasn't any building done, don't notify
@@ -106,9 +116,18 @@
         //
         // ----------------------------------------------------------------------
 
+        List<String> recipients = new ArrayList<String>();
+        for ( ProjectNotifier notifier : notifiers )
+        {
+            Map<String, String> configuration = notifier.getConfiguration();
+            if ( configuration != null && StringUtils.isNotEmpty( configuration.get( ADDRESS_FIELD ) ) )
+            {
+                recipients.add( configuration.get( ADDRESS_FIELD ) );
+            }
+        }
         if ( recipients.size() == 0 )
         {
-            getLogger().info( "No MSN recipients for '" + project.getName() + "'." );
+            log.info( "No MSN recipients for '" + project.getName() + "'." );
 
             return;
         }
@@ -117,9 +136,12 @@
         //
         // ----------------------------------------------------------------------
 
-        if ( source.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
+        if ( messageId.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
         {
-            buildComplete( project, projectNotifier, build, recipients, buildDefinition, configuration );
+            for ( ProjectNotifier notifier : notifiers )
+            {
+                buildComplete( project, notifier, build, buildDefinition );
+            }
         }
     }
 
@@ -153,7 +175,7 @@
         }
         else
         {
-            getLogger().warn( "Unknown build state " + state + " for project " + project.getId() );
+            log.warn( "Unknown build state " + state + " for project " + project.getId() );
 
             message = "ERROR: Unknown build state " + state + " for " + project.getName() + " project";
         }
@@ -161,8 +183,7 @@
         return message + " " + getReportUrl( project, build, configurationService );
     }
 
-    private void buildComplete( Project project, ProjectNotifier projectNotifier, BuildResult build, Set recipients,
-                                BuildDefinition buildDef, Map configuration )
+    private void buildComplete( Project project, ProjectNotifier notifier, BuildResult build, BuildDefinition buildDef )
         throws NotificationException
     {
         String message;
@@ -173,7 +194,7 @@
 
         BuildResult previousBuild = getPreviousBuild( project, buildDef, build );
 
-        if ( !shouldNotify( build, previousBuild, projectNotifier ) )
+        if ( !shouldNotify( build, previousBuild, notifier ) )
         {
             return;
         }
@@ -187,19 +208,23 @@
             throw new NotificationException( "Can't generate the message.", e );
         }
 
-        msnClient.setLogin( getUsername( configuration ) );
+        msnClient.setLogin( getUsername( notifier.getConfiguration() ) );
 
-        msnClient.setPassword( getPassword( configuration ) );
+        msnClient.setPassword( getPassword( notifier.getConfiguration() ) );
 
         try
         {
             msnClient.login();
 
-            for ( Iterator i = recipients.iterator(); i.hasNext(); )
+            if ( notifier.getConfiguration() != null &&
+                StringUtils.isNotEmpty( (String) notifier.getConfiguration().get( ADDRESS_FIELD ) ) )
             {
-                String recipient = (String) i.next();
-
-                msnClient.sendMessage( recipient, message );
+                String address = (String) notifier.getConfiguration().get( ADDRESS_FIELD );
+                String[] recipients = StringUtils.split( address, "," );
+                for ( String recipient : recipients )
+                {
+                    msnClient.sendMessage( recipient, message );
+                }
             }
         }
         catch ( MsnException e )
@@ -219,15 +244,6 @@
         }
     }
 
-    /**
-     * @see org.codehaus.plexus.notification.notifier.Notifier#sendNotification(java.lang.String,java.util.Set,java.util.Properties)
-     */
-    public void sendNotification( String arg0, Set arg1, Properties arg2 )
-        throws NotificationException
-    {
-        throw new NotificationException( "Not implemented." );
-    }
-
     private String getUsername( Map configuration )
     {
         if ( configuration.containsKey( "login" ) )

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-wagon/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-wagon/pom.xml?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-wagon/pom.xml (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-wagon/pom.xml Mon Jul  7 22:17:34 2008
@@ -32,10 +32,6 @@
       <artifactId>maven-project</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-notification</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-core</artifactId>
       <version>${pom.version}</version>

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/main/java/org/apache/maven/continuum/notification/wagon/WagonContinuumNotifier.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/main/java/org/apache/maven/continuum/notification/wagon/WagonContinuumNotifier.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/main/java/org/apache/maven/continuum/notification/wagon/WagonContinuumNotifier.java (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/main/java/org/apache/maven/continuum/notification/wagon/WagonContinuumNotifier.java Mon Jul  7 22:17:34 2008
@@ -32,6 +32,8 @@
 import org.apache.maven.continuum.model.project.ProjectNotifier;
 import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
+import org.apache.maven.continuum.notification.MessageContext;
+import org.apache.maven.continuum.notification.NotificationException;
 import org.apache.maven.model.DistributionManagement;
 import org.apache.maven.model.Site;
 import org.apache.maven.profiles.DefaultProfileManager;
@@ -60,22 +62,21 @@
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.context.Context;
 import org.codehaus.plexus.context.ContextException;
-import org.codehaus.plexus.notification.NotificationException;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
 
 /**
  * @author <a href="mailto:hisidro@exist.com">Henry Isidro</a>
  * @author <a href="mailto:nramirez@exist.com">Napoleon Esmundo C. Ramirez</a>
- * @plexus.component role="org.codehaus.plexus.notification.notifier.Notifier" role-hint="wagon"
+ * @plexus.component role="org.apache.maven.continuum.notification.Notifier" role-hint="wagon"
  */
 public class WagonContinuumNotifier
     extends AbstractContinuumNotifier
@@ -85,6 +86,8 @@
 
     private static final String CONTEXT_MAVEN_PROJECT = "CONTEXT_MAVEN_PROJECT";
 
+    private Logger log = LoggerFactory.getLogger( getClass() );
+
     /**
      * @plexus.requirement
      */
@@ -116,18 +119,21 @@
 
     private PlexusContainer container;
 
-    public void sendNotification( String source, Set recipients, Map configuration, Map context )
+    public String getType()
+    {
+        return "wagon";
+    }
+
+    public void sendMessage( String messageId, MessageContext context )
         throws NotificationException
     {
-        Project project = (Project) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT );
+        Project project = context.getProject();
 
-        ProjectNotifier projectNotifier =
-            (ProjectNotifier) context.get( ContinuumNotificationDispatcher.CONTEXT_PROJECT_NOTIFIER );
+        List<ProjectNotifier> notifiers = context.getNotifiers();
 
-        BuildResult build = (BuildResult) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD );
+        BuildResult build = context.getBuildResult();
 
-        BuildDefinition buildDefinition =
-            (BuildDefinition) context.get( ContinuumNotificationDispatcher.CONTEXT_BUILD_DEFINITION );
+        BuildDefinition buildDefinition = context.getBuildDefinition();
 
         // ----------------------------------------------------------------------
         // If there wasn't any building done, don't notify
@@ -146,11 +152,13 @@
              * acquire the MavenProject associated to the Project in context
              */
             MavenProject mavenProject = getMavenProject( project, buildDefinition );
-            configuration.put( CONTEXT_MAVEN_PROJECT, mavenProject );
 
-            if ( source.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
+            if ( messageId.equals( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE ) )
             {
-                buildComplete( project, projectNotifier, build, configuration );
+                for ( ProjectNotifier notifier : notifiers )
+                {
+                    buildComplete( notifier, build, mavenProject );
+                }
             }
         }
         catch ( ContinuumException e )
@@ -159,20 +167,21 @@
         }
     }
 
-    private void buildComplete( Project project, ProjectNotifier projectNotifier, BuildResult build, Map configuration )
+    private void buildComplete( ProjectNotifier notifier, BuildResult build, MavenProject mavenProject )
         throws ContinuumException
     {
-        String id = null;
-        String url = null;
+        String id;
+        String url;
+
+        Map<String, String> configuration = notifier.getConfiguration();
 
         if ( configuration.containsKey( "url" ) )
         {
-            url = (String) configuration.get( "url" );
-            id = (String) configuration.get( "id" );
+            url = configuration.get( "url" );
+            id = configuration.get( "id" );
         }
         else
         {
-            MavenProject mavenProject = (MavenProject) configuration.get( CONTEXT_MAVEN_PROJECT );
             DistributionManagement distributionManagement = mavenProject.getDistributionManagement();
 
             if ( distributionManagement == null )
@@ -216,7 +225,7 @@
 
         try
         {
-            if ( getLogger().isDebugEnabled() )
+            if ( log.isDebugEnabled() )
             {
                 Debug debug = new Debug();
 
@@ -283,17 +292,11 @@
             }
             catch ( ConnectionException e )
             {
-                getLogger().error( "Error disconnecting wagon - ignored", e );
+                log.error( "Error disconnecting wagon - ignored", e );
             }
         }
     }
 
-    public void sendNotification( String arg0, Set arg1, Properties arg2 )
-        throws NotificationException
-    {
-        throw new NotificationException( "Not implemented." );
-    }
-
     private MavenProject getMavenProject( Project project, BuildDefinition buildDefinition )
         throws ContinuumException
     {
@@ -301,7 +304,7 @@
             new File( configurationService.getWorkingDirectory(), Integer.toString( project.getId() ) );
         File pomFile = new File( projectWorkingDir, buildDefinition.getBuildFile() );
 
-        MavenProject mavenProject = null;
+        MavenProject mavenProject;
 
         try
         {
@@ -325,11 +328,11 @@
             }
             catch ( IOException e )
             {
-                getLogger().error( "Failed to get Settings", e );
+                log.error( "Failed to get Settings", e );
             }
             catch ( XmlPullParserException e )
             {
-                getLogger().error( "Failed to get Settings", e );
+                log.error( "Failed to get Settings", e );
             }
         }
 
@@ -369,9 +372,8 @@
         Settings settings = getSettings();
         if ( settings.getProxies() != null && !settings.getProxies().isEmpty() )
         {
-            for ( Iterator i = settings.getProxies().iterator(); i.hasNext(); )
+            for ( Proxy p : (List<Proxy>) settings.getProxies() )
             {
-                Proxy p = (Proxy) i.next();
                 wagonManager.addProxy( p.getProtocol(), p.getHost(), p.getPort(), p.getUsername(), p.getPassword(),
                                        p.getNonProxyHosts() );
             }

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/java/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/java/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/java/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.java (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/java/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.java Mon Jul  7 22:17:34 2008
@@ -23,13 +23,10 @@
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.notification.ContinuumNotificationDispatcher;
+import org.apache.maven.continuum.notification.MessageContext;
+import org.apache.maven.continuum.notification.Notifier;
 import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.notification.notifier.Notifier;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
 
 /**
  * @author <a href="mailto:nramirez@exist">Napoleon Esmundo C. Ramirez</a>
@@ -41,13 +38,7 @@
 
     private Notifier notifier;
 
-    private Project project;
-
-    private BuildResult build;
-
-    private BuildDefinition buildDefinition;
-
-    private Map context;
+    private MessageContext context;
 
 
     public void setUp()
@@ -56,12 +47,12 @@
         super.setUp();
 
         server = (ServletServer) lookup( ServletServer.ROLE );
-        notifier = (Notifier) lookup( Notifier.ROLE, "wagon" );
+        notifier = (Notifier) lookup( Notifier.class.getName(), "wagon" );
 
-        project = new Project();
+        Project project = new Project();
         project.setId( 2 );
 
-        build = new BuildResult();
+        BuildResult build = new BuildResult();
         build.setId( 1 );
         build.setProject( project );
         build.setStartTime( System.currentTimeMillis() );
@@ -70,13 +61,13 @@
         build.setTrigger( ContinuumProjectState.TRIGGER_FORCED );
         build.setExitCode( 0 );
 
-        buildDefinition = new BuildDefinition();
+        BuildDefinition buildDefinition = new BuildDefinition();
         buildDefinition.setBuildFile( "pom.xml" );
 
-        context = new HashMap();
-        context.put( ContinuumNotificationDispatcher.CONTEXT_PROJECT, project );
-        context.put( ContinuumNotificationDispatcher.CONTEXT_BUILD, build );
-        context.put( ContinuumNotificationDispatcher.CONTEXT_BUILD_DEFINITION, buildDefinition );
+        context = new MessageContext();
+        context.setProject( project );
+        context.setBuildResult( build );
+        context.setBuildDefinition( buildDefinition );
 
         String basedir = System.getProperty( "basedir" );
         if ( basedir == null )
@@ -88,8 +79,7 @@
     public void testSendNotification()
         throws Exception
     {
-        notifier.sendNotification( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE, new HashSet(),
-                                   new HashMap(), context );
+        notifier.sendMessage( ContinuumNotificationDispatcher.MESSAGE_ID_BUILD_COMPLETE, context );
     }
 
     protected void tearDown()
@@ -97,6 +87,4 @@
     {
         release( server );
     }
-
-
 }

Modified: continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/resources/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/resources/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.xml?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/resources/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.xml (original)
+++ continuum/trunk/continuum-notifiers/continuum-notifier-wagon/src/test/resources/org/apache/maven/continuum/wagon/WagonContinuumNotifierTest.xml Mon Jul  7 22:17:34 2008
@@ -50,7 +50,7 @@
     </component>
     
     <component>
-      <role>org.codehaus.plexus.notification.notifier.Notifier</role>
+      <role>org.apache.maven.continuum.notification.Notifier</role>
       <role-hint>wagon</role-hint>
       <implementation>org.apache.maven.continuum.notification.wagon.WagonContinuumNotifier</implementation>
       <requirements>

Modified: continuum/trunk/continuum-notifiers/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/pom.xml?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-notifiers/pom.xml (original)
+++ continuum/trunk/continuum-notifiers/pom.xml Mon Jul  7 22:17:34 2008
@@ -39,9 +39,5 @@
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-notification</artifactId>
-    </dependency>
   </dependencies>
 </project>

Modified: continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java (original)
+++ continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/AbstractContinuumTest.java Mon Jul  7 22:17:34 2008
@@ -19,16 +19,6 @@
  * under the License.
  */
 
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
-
 import org.apache.maven.continuum.configuration.ConfigurationService;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
@@ -45,6 +35,15 @@
 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
 import org.jpox.SchemaTool;
 
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
  * @version $Id$
@@ -69,11 +68,12 @@
 
         Collection<ProjectGroup> projectGroups = store.getAllProjectGroupsWithProjects();
 
-        assertEquals( 0, projectGroups.size() );
-
-        createDefaultProjectGroup();
+        if ( projectGroups.size() == 0 ) //if ContinuumInitializer is loaded by Spring at startup, size == 1
+        {
+            createDefaultProjectGroup();
 
-        projectGroups = store.getAllProjectGroupsWithProjects();
+            projectGroups = store.getAllProjectGroupsWithProjects();
+        }
 
         assertEquals( 1, projectGroups.size() );
     }
@@ -149,6 +149,8 @@
 
         jdoFactory.setUrl( url );
 
+        jdoFactory.reconfigure();
+
 //        jdoFactory.setUserName( "sa" );
 //
 //        jdoFactory.setPassword( "" );
@@ -363,7 +365,7 @@
 
             for ( int i = 0; i < notifiers.size(); i++ )
             {
-                ProjectNotifier notifier = (ProjectNotifier) notifiers.get( i );
+                ProjectNotifier notifier = notifiers.get( i );
 
                 ProjectNotifier actualNotifier = (ProjectNotifier) actual.getNotifiers().get( i );
 

Modified: continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/jdo/MemoryJdoFactory.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/jdo/MemoryJdoFactory.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/jdo/MemoryJdoFactory.java (original)
+++ continuum/trunk/continuum-test/src/main/java/org/apache/maven/continuum/jdo/MemoryJdoFactory.java Mon Jul  7 22:17:34 2008
@@ -16,4 +16,10 @@
     {
         this.otherProperties = otherProperties;
     }
+
+    public void reconfigure()
+    {
+        configured = Boolean.FALSE;
+        getPersistenceManagerFactory();
+    }
 }

Modified: continuum/trunk/continuum-test/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-test/src/main/resources/META-INF/spring-context.xml?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-test/src/main/resources/META-INF/spring-context.xml (original)
+++ continuum/trunk/continuum-test/src/main/resources/META-INF/spring-context.xml Mon Jul  7 22:17:34 2008
@@ -20,7 +20,8 @@
         p:persistenceManagerFactoryClass="org.jpox.PersistenceManagerFactoryImpl"
         p:driverName="org.hsqldb.jdbcDriver"
         p:userName="sa"
-        p:password="">
+        p:password=""
+        p:url="jdbc:hsqldb:mem:test">
 
 <!-- 
         <property name="persistenceManagerFactoryClass" value="org.jpox.PersistenceManagerFactoryImpl"/>

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java Mon Jul  7 22:17:34 2008
@@ -26,7 +26,7 @@
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.web.action.ContinuumActionSupport;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
 import org.apache.maven.continuum.web.model.NotifierSummary;
@@ -34,7 +34,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -66,9 +65,9 @@
      */
     private ProjectGroup projectGroup;
 
-    private List projectGroupNotifierSummaries = new ArrayList();
+    private List<NotifierSummary> projectGroupNotifierSummaries = new ArrayList<NotifierSummary>();
 
-    private List projectNotifierSummaries = new ArrayList();
+    private List<NotifierSummary> projectNotifierSummaries = new ArrayList<NotifierSummary>();
 
     private String projectGroupName = "";
 
@@ -107,7 +106,7 @@
      * @param projectId The project id.
      * @return
      */
-    private List summarizeForProject( int projectId )
+    private List<NotifierSummary> summarizeForProject( int projectId )
         throws ContinuumException
     {
         return gatherProjectNotifierSummaries( projectId );
@@ -128,13 +127,12 @@
 
             projectGroupNotifierSummaries = gatherGroupNotifierSummaries();
 
-            Collection projects = getContinuum().getProjectsInGroup( projectGroupId );
+            Collection<Project> projects = getContinuum().getProjectsInGroup( projectGroupId );
             if ( projects != null )
             {
-                for ( Iterator i = projects.iterator(); i.hasNext(); )
+                for ( Project project : projects )
                 {
-                    Project p = (Project) i.next();
-                    projectNotifierSummaries.addAll( summarizeForProject( p.getId() ) );
+                    projectNotifierSummaries.addAll( summarizeForProject( project.getId() ) );
                 }
             }
         }
@@ -160,15 +158,15 @@
      * @throws ContinuumException if there was an error obtaining
      *                            and preparing Notifier Summary list for the project
      */
-    private List gatherProjectNotifierSummaries( int projectId )
+    private List<NotifierSummary> gatherProjectNotifierSummaries( int projectId )
         throws ContinuumException
     {
-        List summaryList = new ArrayList();
+        List<NotifierSummary> summaryList = new ArrayList<NotifierSummary>();
         Project project = getContinuum().getProjectWithAllDetails( projectId );
 
-        for ( Iterator i = project.getNotifiers().iterator(); i.hasNext(); )
+        for ( ProjectNotifier pn : (List<ProjectNotifier>) project.getNotifiers() )
         {
-            NotifierSummary ns = generateProjectNotifierSummary( (ProjectNotifier) i.next(), project );
+            NotifierSummary ns = generateProjectNotifierSummary( pn, project );
             summaryList.add( ns );
         }
 
@@ -181,15 +179,15 @@
      * @return
      * @throws ContinuumException if there was an error fetching the {@link ProjectGroup} for specified Id.
      */
-    private List gatherGroupNotifierSummaries()
+    private List<NotifierSummary> gatherGroupNotifierSummaries()
         throws ContinuumException
     {
-        List summaryList = new ArrayList();
+        List<NotifierSummary> summaryList = new ArrayList<NotifierSummary>();
         projectGroup = getContinuum().getProjectGroupWithBuildDetails( projectGroupId );
 
-        for ( Iterator i = projectGroup.getNotifiers().iterator(); i.hasNext(); )
+        for ( ProjectNotifier pn : (List<ProjectNotifier>) projectGroup.getNotifiers() )
         {
-            NotifierSummary ns = generateGroupNotifierSummary( (ProjectNotifier) i.next() );
+            NotifierSummary ns = generateGroupNotifierSummary( pn );
             summaryList.add( ns );
         }
 
@@ -253,13 +251,13 @@
         if ( ( "mail".equals( notifier.getType() ) ) || ( "msn".equals( notifier.getType() ) ) ||
             ( "jabber".equals( notifier.getType() ) ) )
         {
-            if ( StringUtils.isNotEmpty( (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD ) ) )
+            if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD ) ) )
             {
-                recipient = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+                recipient = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
             }
-            if ( StringUtils.isNotEmpty( (String) configuration.get( ContinuumRecipientSource.COMMITTER_FIELD ) ) )
+            if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
             {
-                if ( Boolean.parseBoolean( (String) configuration.get( ContinuumRecipientSource.COMMITTER_FIELD ) ) )
+                if ( Boolean.parseBoolean( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
                 {
                     if ( "unknown".equals( recipient ) )
                     {
@@ -381,7 +379,7 @@
     /**
      * @return the projectGroupNotifierSummaries
      */
-    public List getProjectGroupNotifierSummaries()
+    public List<NotifierSummary> getProjectGroupNotifierSummaries()
     {
         return projectGroupNotifierSummaries;
     }
@@ -389,7 +387,7 @@
     /**
      * @param projectGroupNotifierSummaries the projectGroupNotifierSummaries to set
      */
-    public void setProjectGroupNotifierSummaries( List projectGroupNotifierSummaries )
+    public void setProjectGroupNotifierSummaries( List<NotifierSummary> projectGroupNotifierSummaries )
     {
         this.projectGroupNotifierSummaries = projectGroupNotifierSummaries;
     }
@@ -397,7 +395,7 @@
     /**
      * @return the projectNotifierSummaries
      */
-    public List getProjectNotifierSummaries()
+    public List<NotifierSummary> getProjectNotifierSummaries()
     {
         return projectNotifierSummaries;
     }
@@ -405,7 +403,7 @@
     /**
      * @param projectNotifierSummaries the projectNotifierSummaries to set
      */
-    public void setProjectNotifierSummaries( List projectNotifierSummaries )
+    public void setProjectNotifierSummaries( List<NotifierSummary> projectNotifierSummaries )
     {
         this.projectNotifierSummaries = projectNotifierSummaries;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java Mon Jul  7 22:17:34 2008
@@ -20,9 +20,9 @@
  */
 
 import org.apache.maven.continuum.ContinuumException;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.web.action.ContinuumActionSupport;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
 import org.codehaus.plexus.util.StringUtils;
@@ -91,7 +91,7 @@
         if ( ( "mail".equals( notifierType ) ) || ( "msn".equals( notifierType ) ) ||
             ( "jabber".equals( notifierType ) ) )
         {
-            recipient = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+            recipient = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
         }
 
         if ( "irc".equals( notifierType ) )

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java Mon Jul  7 22:17:34 2008
@@ -23,7 +23,7 @@
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.apache.maven.continuum.web.action.ContinuumActionSupport;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
 import org.codehaus.plexus.util.StringUtils;
@@ -102,7 +102,7 @@
         if ( ( "mail".equals( notifierType ) ) || ( "msn".equals( notifierType ) ) ||
             ( "jabber".equals( notifierType ) ) )
         {
-            recipient = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+            recipient = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
         }
 
         if ( "irc".equals( notifierType ) )

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberGroupNotifierEditAction.java Mon Jul  7 22:17:34 2008
@@ -21,7 +21,7 @@
 
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -69,7 +69,7 @@
 
         domainName = (String) configuration.get( "domainName" );
 
-        address = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+        address = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
 
         sslConnection = Boolean.valueOf( (String) configuration.get( "sslConnection" ) ).booleanValue();
 
@@ -90,7 +90,7 @@
 
         configuration.put( "domainName", domainName );
 
-        configuration.put( ContinuumRecipientSource.ADDRESS_FIELD, address );
+        configuration.put( AbstractContinuumNotifier.ADDRESS_FIELD, address );
 
         configuration.put( "sslConnection", String.valueOf( sslConnection ) );
 

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/JabberProjectNotifierEditAction.java Mon Jul  7 22:17:34 2008
@@ -21,7 +21,7 @@
 
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -68,7 +68,7 @@
 
         domainName = (String) configuration.get( "domainName" );
 
-        address = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+        address = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
 
         sslConnection = Boolean.valueOf( (String) configuration.get( "sslConnection" ) ).booleanValue();
 
@@ -89,7 +89,7 @@
 
         configuration.put( "domainName", domainName );
 
-        configuration.put( ContinuumRecipientSource.ADDRESS_FIELD, address );
+        configuration.put( AbstractContinuumNotifier.ADDRESS_FIELD, address );
 
         configuration.put( "sslConnection", String.valueOf( sslConnection ) );
 

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java Mon Jul  7 22:17:34 2008
@@ -21,7 +21,7 @@
 
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.util.HashMap;
@@ -45,14 +45,15 @@
 
     protected void initConfiguration( Map configuration )
     {
-        if ( StringUtils.isNotEmpty( (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD ) ) )
+        if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD ) ) )
         {
-            address = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+            address = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
         }
 
-        if ( StringUtils.isNotEmpty( (String) configuration.get( ContinuumRecipientSource.COMMITTER_FIELD ) ) )
+        if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
         {
-            committers = Boolean.parseBoolean( (String) configuration.get( ContinuumRecipientSource.COMMITTER_FIELD ) );
+            committers =
+                Boolean.parseBoolean( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) );
         }
     }
 
@@ -62,10 +63,10 @@
 
         if ( StringUtils.isNotEmpty( address ) )
         {
-            configuration.put( ContinuumRecipientSource.ADDRESS_FIELD, address );
+            configuration.put( AbstractContinuumNotifier.ADDRESS_FIELD, address );
         }
 
-        configuration.put( ContinuumRecipientSource.COMMITTER_FIELD, String.valueOf( committers ) );
+        configuration.put( AbstractContinuumNotifier.COMMITTER_FIELD, String.valueOf( committers ) );
 
         notifier.setConfiguration( configuration );
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java Mon Jul  7 22:17:34 2008
@@ -21,7 +21,7 @@
 
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.util.HashMap;
@@ -45,14 +45,15 @@
 
     protected void initConfiguration( Map configuration )
     {
-        if ( StringUtils.isNotEmpty( (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD ) ) )
+        if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD ) ) )
         {
-            address = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+            address = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
         }
 
-        if ( StringUtils.isNotEmpty( (String) configuration.get( ContinuumRecipientSource.COMMITTER_FIELD ) ) )
+        if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
         {
-            committers = Boolean.parseBoolean( (String) configuration.get( ContinuumRecipientSource.COMMITTER_FIELD ) );
+            committers =
+                Boolean.parseBoolean( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) );
         }
     }
 
@@ -62,10 +63,10 @@
 
         if ( StringUtils.isNotEmpty( address ) )
         {
-            configuration.put( ContinuumRecipientSource.ADDRESS_FIELD, address );
+            configuration.put( AbstractContinuumNotifier.ADDRESS_FIELD, address );
         }
 
-        configuration.put( ContinuumRecipientSource.COMMITTER_FIELD, String.valueOf( committers ) );
+        configuration.put( AbstractContinuumNotifier.COMMITTER_FIELD, String.valueOf( committers ) );
 
         notifier.setConfiguration( configuration );
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnGroupNotifierEditAction.java Mon Jul  7 22:17:34 2008
@@ -21,7 +21,7 @@
 
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -49,7 +49,7 @@
 
         password = (String) configuration.get( "password" );
 
-        address = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+        address = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
     }
 
     protected void setNotifierConfiguration( ProjectNotifier notifier )
@@ -60,7 +60,7 @@
 
         configuration.put( "password", password );
 
-        configuration.put( ContinuumRecipientSource.ADDRESS_FIELD, address );
+        configuration.put( AbstractContinuumNotifier.ADDRESS_FIELD, address );
 
         notifier.setConfiguration( configuration );
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MsnProjectNotifierEditAction.java Mon Jul  7 22:17:34 2008
@@ -21,7 +21,7 @@
 
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -50,7 +50,7 @@
 
         password = (String) configuration.get( "password" );
 
-        address = (String) configuration.get( ContinuumRecipientSource.ADDRESS_FIELD );
+        address = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
     }
 
     protected void setNotifierConfiguration( ProjectNotifier notifier )
@@ -61,7 +61,7 @@
 
         configuration.put( "password", password );
 
-        configuration.put( ContinuumRecipientSource.ADDRESS_FIELD, address );
+        configuration.put( AbstractContinuumNotifier.ADDRESS_FIELD, address );
 
         notifier.setConfiguration( configuration );
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java Mon Jul  7 22:17:34 2008
@@ -20,7 +20,7 @@
  */
 
 import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.ContinuumRecipientSource;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
 import org.extremecomponents.table.bean.Column;
 import org.extremecomponents.table.cell.DisplayCell;
 import org.extremecomponents.table.core.TableModel;
@@ -68,14 +68,9 @@
                 return notifier.getConfiguration().get( "url" ).toString();
             }
 
-            if ( notifier.getConfiguration().get( ContinuumRecipientSource.ADDRESS_FIELD ) == null )
-            {
-                return "";
-            }
-            else
-            {
-                return notifier.getConfiguration().get( ContinuumRecipientSource.ADDRESS_FIELD ).toString();
-            }
+            String address = (String) notifier.getConfiguration().get( AbstractContinuumNotifier.ADDRESS_FIELD );
+
+            return address == null ? "" : address;
         }
     }
 }

Modified: continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml Mon Jul  7 22:17:34 2008
@@ -92,7 +92,7 @@
     | The mail notifier
     |-->
     <component>
-      <role>org.codehaus.plexus.notification.notifier.Notifier</role>
+      <role>org.apache.maven.continuum.notification.Notifier</role>
       <role-hint>mail</role-hint>
       <implementation>org.apache.maven.continuum.notification.mail.MailContinuumNotifier</implementation>
       <requirements>
@@ -173,7 +173,7 @@
     | The jabber notifier
     |-->
     <component>
-      <role>org.codehaus.plexus.notification.notifier.Notifier</role>
+      <role>org.apache.maven.continuum.notification.Notifier</role>
       <role-hint>jabber</role-hint>
       <implementation>org.apache.maven.continuum.notification.jabber.JabberContinuumNotifier</implementation>
       <requirements>
@@ -207,7 +207,7 @@
     | The MSN notifier
     |-->
     <component>
-      <role>org.codehaus.plexus.notification.notifier.Notifier</role>
+      <role>org.apache.maven.continuum.notification.Notifier</role>
       <role-hint>msn</role-hint>
       <implementation>org.apache.maven.continuum.notification.msn.MsnContinuumNotifier</implementation>
       <requirements>

Modified: continuum/trunk/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/pom.xml?rev=674722&r1=674721&r2=674722&view=diff
==============================================================================
--- continuum/trunk/pom.xml (original)
+++ continuum/trunk/pom.xml Mon Jul  7 22:17:34 2008
@@ -709,11 +709,6 @@
       </dependency>
       <dependency>
         <groupId>org.codehaus.plexus</groupId>
-        <artifactId>plexus-notification</artifactId>
-        <version>1.0-alpha-5</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-taskqueue</artifactId>
         <version>1.0-alpha-8</version>
       </dependency>