Author: evenisse
Date: Wed Jul 26 15:09:40 2006
New Revision: 425873

URL: http://svn.apache.org/viewvc?rev=425873&view=rev
Log:
Add listeners to the converter

Added:
    
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
   (with props)
Modified:
    
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
    
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
    
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/PluginRelocator.java

Added: 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java?rev=425873&view=auto
==============================================================================
--- 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
 (added)
+++ 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
 Wed Jul 26 15:09:40 2006
@@ -0,0 +1,36 @@
+package org.apache.maven.model.converter;
+
+/*
+ * Copyright 2001-2006 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.
+ */
+
+public interface ConverterListener
+{
+    void debug( String message );
+
+    void debug( String message, Throwable throwable );
+
+    void info( String message );
+
+    void info( String message, Throwable throwable );
+
+    void warn( String message );
+
+    void warn( String message, Throwable throwable );
+
+    void error( String message);
+
+    void error( String message, Throwable throwable );
+}

Propchange: 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java?rev=425873&r1=425872&r2=425873&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
 (original)
+++ 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
 Wed Jul 26 15:09:40 2006
@@ -35,8 +35,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.Writer;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
@@ -71,6 +73,8 @@
 
     private String fileName = "project.xml";
 
+    private List listeners = new ArrayList();
+
     public void execute()
         throws ProjectConverterException
     {
@@ -123,7 +127,7 @@
 
         // @todo Should this be run before or after the configuration 
converters?
         Collection pluginRelocators = 
pluginRelocatorManager.getPluginRelocators();
-        getLogger().info( "There are " + pluginRelocators.size() + " plugin 
relocators available" );
+        sendInfoMessage( "There are " + pluginRelocators.size() + " plugin 
relocators available" );
         PluginRelocator pluginRelocator;
         Iterator iterator = pluginRelocators.iterator();
         while ( iterator.hasNext() )
@@ -152,7 +156,7 @@
             }
             catch ( IOException e )
             {
-                getLogger().warn( "Unable to read " + 
propertiesFile.getAbsolutePath() + ", ignoring." );
+                sendWarnMessage( "Unable to read " + 
propertiesFile.getAbsolutePath() + ", ignoring." );
             }
             finally
             {
@@ -217,14 +221,14 @@
 
             if ( !isEmpty( groupId ) )
             {
-                getLogger().warn( "Both <id> and <groupId> is set, using 
<groupId>." );
+                sendWarnMessage( "Both <id> and <groupId> is set, using 
<groupId>." );
 
                 model.setGroupId( groupId );
             }
 
             if ( !isEmpty( artifactId ) )
             {
-                getLogger().warn( "Both <id> and <artifactId> is set, using 
<artifactId>." );
+                sendWarnMessage( "Both <id> and <artifactId> is set, using 
<artifactId>." );
 
                 model.setArtifactId( artifactId );
             }
@@ -267,13 +271,13 @@
 
         if ( pomxml.exists() )
         {
-            getLogger().warn( "pom.xml in " + outputdir.getAbsolutePath() + " 
already exists, overwriting" );
+            sendWarnMessage( "pom.xml in " + outputdir.getAbsolutePath() + " 
already exists, overwriting" );
         }
 
         MavenXpp3Writer v4Writer = new MavenXpp3Writer();
 
         // write the new pom.xml
-        getLogger().info( "Writing new pom to: " + pomxml.getAbsolutePath() );
+        sendInfoMessage( "Writing new pom to: " + pomxml.getAbsolutePath() );
 
         Writer output = null;
         try
@@ -329,5 +333,35 @@
     public void setOutputdir( File outputdir )
     {
         this.outputdir = outputdir;
+    }
+
+    public void addListener( ConverterListener listener )
+    {
+        if ( !listeners.contains( listener ) )
+        {
+            listeners.add( listener );
+        }
+    }
+
+    private void sendInfoMessage( String message )
+    {
+        getLogger().info( message );
+        
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.info( message );
+        }
+    }
+
+    private void sendWarnMessage( String message )
+    {
+        getLogger().warn( message );
+        
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.warn( message );
+        }
     }
 }

Modified: 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java?rev=425873&r1=425872&r2=425873&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
 (original)
+++ 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
 Wed Jul 26 15:09:40 2006
@@ -19,9 +19,14 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.converter.ConverterListener;
 import org.apache.maven.model.converter.ModelUtils;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * A general implementation of the <code>PluginRelocator</code> interface.
  *
@@ -32,6 +37,8 @@
     extends AbstractLogEnabled
     implements PluginRelocator
 {
+    private List listeners = new ArrayList();
+
     /**
      * If there is no replacement for this plugin, you can have the plugin
      * removed from the v4 pom by returning <code>null</code> from this method
@@ -89,7 +96,7 @@
             {
                 // Remove the old plugin
                 v4Model.getBuild().getPlugins().remove( oldBuildPlugin );
-                getLogger().info( "Removing build plugin " + getOldGroupId() + 
":" + getOldArtifactId() );
+                sendInfoMessage( "Removing build plugin " + getOldGroupId() + 
":" + getOldArtifactId() );
             }
             else
             {
@@ -99,13 +106,13 @@
                     // The new plugin does not exist, relocate the old one
                     oldBuildPlugin.setArtifactId( getNewArtifactId() );
                     oldBuildPlugin.setGroupId( getNewGroupId() );
-                    getLogger().info( "Relocating build plugin " + 
getOldGroupId() + ":" + getOldArtifactId() );
+                    sendInfoMessage( "Relocating build plugin " + 
getOldGroupId() + ":" + getOldArtifactId() );
                 }
                 else
                 {
                     // The new plugin already exist, remove the old one
                     v4Model.getBuild().getPlugins().remove( oldBuildPlugin );
-                    getLogger().info( "Removing old build plugin " + 
getOldGroupId() + ":" + getOldArtifactId() +
+                    sendInfoMessage( "Removing old build plugin " + 
getOldGroupId() + ":" + getOldArtifactId() +
                         " because the new one already exist" );
                 }
             }
@@ -119,7 +126,7 @@
             {
                 // Remove the old plugin
                 v4Model.getReporting().getPlugins().remove( oldReportPlugin );
-                getLogger().info( "Removing report plugin " + getOldGroupId() 
+ ":" + getOldArtifactId() );
+                sendInfoMessage( "Removing report plugin " + getOldGroupId() + 
":" + getOldArtifactId() );
             }
             else
             {
@@ -129,16 +136,44 @@
                     // The new plugin does not exist, relocate the old one
                     oldReportPlugin.setArtifactId( getNewArtifactId() );
                     oldReportPlugin.setGroupId( getNewGroupId() );
-                    getLogger().info( "Relocating report plugin " + 
getOldGroupId() + ":" + getOldArtifactId() );
+                    sendInfoMessage( "Relocating report plugin " + 
getOldGroupId() + ":" + getOldArtifactId() );
                 }
                 else
                 {
                     // The new plugin already exist, remove the old one
                     v4Model.getReporting().getPlugins().remove( 
oldReportPlugin );
-                    getLogger().info( "Removing old report plugin " + 
getOldGroupId() + ":" + getOldArtifactId() +
+                    sendInfoMessage( "Removing old report plugin " + 
getOldGroupId() + ":" + getOldArtifactId() +
                         " because the new one already exist" );
                 }
             }
+        }
+    }
+
+    public void addListener( ConverterListener listener )
+    {
+        if ( !listeners.contains( listener ) )
+        {
+            listeners.add( listener );
+        }
+    }
+
+    public void addListeners( List listeners )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            addListener( listener );
+        }
+    }
+
+    private void sendInfoMessage( String message )
+    {
+        getLogger().info( message );
+        
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.info( message );
         }
     }
 }

Modified: 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/PluginRelocator.java
URL: 
http://svn.apache.org/viewvc/maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/PluginRelocator.java?rev=425873&r1=425872&r2=425873&view=diff
==============================================================================
--- 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/PluginRelocator.java
 (original)
+++ 
maven/components/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/PluginRelocator.java
 Wed Jul 26 15:09:40 2006
@@ -17,6 +17,9 @@
  */
 
 import org.apache.maven.model.Model;
+import org.apache.maven.model.converter.ConverterListener;
+
+import java.util.List;
 
 /**
  * A plugin relocator handles a plugin that has changed its groupId and/or
@@ -36,4 +39,18 @@
      * @param v4Model The model where we look for the plugin
      */
     void relocate( Model v4Model );
+
+    /**
+     * Add a listener for all messages sended by the relocator.
+     *
+     * @param listener The listener that will receive messages
+     */
+    void addListener( ConverterListener listener );
+
+    /**
+     * Add a listeners list for all messages sended by the relocator.
+     *
+     * @param listeners The listeners list that will receive messages
+     */
+    void addListeners( List listeners );
 }


Reply via email to