Author: evenisse
Date: Fri Jun  1 07:12:28 2007
New Revision: 543493

URL: http://svn.apache.org/viewvc?view=rev&rev=543493
Log:
Add more listeners

Modified:
    
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
    
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
    
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/AbstractPluginConfigurationConverter.java
    
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PCCMultiproject.java
    
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PluginConfigurationConverter.java
    
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java

Modified: 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java?view=diff&rev=543493&r1=543492&r2=543493
==============================================================================
--- 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
 (original)
+++ 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/ConverterListener.java
 Fri Jun  1 07:12:28 2007
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.io.File;
+
 public interface ConverterListener
 {
     void debug( String message );
@@ -33,7 +35,23 @@
 
     void warn( String message, Throwable throwable );
 
-    void error( String message);
+    void error( String message );
 
     void error( String message, Throwable throwable );
+
+    void addDependencyEvent( String groupId, String artifactId, String version 
);
+
+    void addPluginEvent( String groupId, String artifactId );
+
+    void relocatePluginEvent( String oldGroupId, String oldArtifactId, String 
newGroupId, String newArtifactId );
+
+    void removePluginEvent( String groupId, String artifactId );
+
+    void addReportEvent( String groupId, String artifactId );
+
+    void relocateReportEvent( String oldGroupId, String oldArtifactId, String 
newGroupId, String newArtifactId );
+
+    void removeReportEvent( String groupId, String artifactId );
+
+    void savePomEvent( File pomFileFile, boolean alreadyExist );
 }

Modified: 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java?view=diff&rev=543493&r1=543492&r2=543493
==============================================================================
--- 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
 (original)
+++ 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/Maven1Converter.java
 Fri Jun  1 07:12:28 2007
@@ -41,7 +41,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
@@ -97,7 +96,8 @@
         }
         catch ( Exception e )
         {
-            throw new ProjectConverterException( "Exception caught while 
loading " + fileName + ". " + e.getMessage(), e );
+            throw new ProjectConverterException( "Exception caught while 
loading " + fileName + ". " + e.getMessage(),
+                                                 e );
         }
 
         Model v4Model;
@@ -108,8 +108,8 @@
         }
         catch ( Exception e )
         {
-            throw new ProjectConverterException( "Exception caught while 
converting " + fileName + ". " + e.getMessage(),
-                                                 e );
+            throw new ProjectConverterException(
+                "Exception caught while converting " + fileName + ". " + 
e.getMessage(), e );
         }
 
         Properties properties = new Properties();
@@ -125,6 +125,7 @@
         for ( Iterator i = converters.iterator(); i.hasNext(); )
         {
             PluginConfigurationConverter converter = 
(PluginConfigurationConverter) i.next();
+            converter.addListeners( listeners );
             converter.convertConfiguration( v4Model, v3Model, properties );
         }
 
@@ -136,6 +137,7 @@
         while ( iterator.hasNext() )
         {
             pluginRelocator = (PluginRelocator) iterator.next();
+            pluginRelocator.addListeners( listeners );
             pluginRelocator.relocate( v4Model );
         }
 
@@ -283,10 +285,12 @@
         }
 
         File pomxml = new File( outputdir, "pom.xml" );
+        boolean alreadyExist = false;
 
         if ( pomxml.exists() )
         {
             sendWarnMessage( "pom.xml in " + outputdir.getAbsolutePath() + " 
already exists, overwriting" );
+            alreadyExist = true;
         }
 
         MavenXpp3Writer v4Writer = new MavenXpp3Writer();
@@ -300,6 +304,7 @@
             output = new FileWriter( pomxml );
             v4Writer.write( output, v4Model );
             output.close();
+            fireSavePomEvent( pomxml, alreadyExist );
         }
         catch ( IOException e )
         {
@@ -361,7 +366,7 @@
     private void sendInfoMessage( String message )
     {
         getLogger().info( message );
-        
+
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
         {
             ConverterListener listener = (ConverterListener) i.next();
@@ -372,11 +377,20 @@
     private void sendWarnMessage( String message )
     {
         getLogger().warn( message );
-        
+
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
         {
             ConverterListener listener = (ConverterListener) i.next();
             listener.warn( message );
+        }
+    }
+
+    private void fireSavePomEvent( File pomFile, boolean alreadyExist )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.savePomEvent( pomFile, alreadyExist );
         }
     }
 }

Modified: 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/AbstractPluginConfigurationConverter.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/AbstractPluginConfigurationConverter.java?view=diff&rev=543493&r1=543492&r2=543493
==============================================================================
--- 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/AbstractPluginConfigurationConverter.java
 (original)
+++ 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/AbstractPluginConfigurationConverter.java
 Fri Jun  1 07:12:28 2007
@@ -24,10 +24,15 @@
 import org.apache.maven.model.Plugin;
 import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.Reporting;
+import org.apache.maven.model.converter.ConverterListener;
 import org.apache.maven.model.converter.ModelUtils;
 import org.apache.maven.model.converter.ProjectConverterException;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 
 /**
@@ -35,11 +40,16 @@
  * @author Dennis Lundberg
  * @version $Id$
  */
-public abstract class AbstractPluginConfigurationConverter implements 
PluginConfigurationConverter
+public abstract class AbstractPluginConfigurationConverter
+    extends AbstractLogEnabled
+    implements PluginConfigurationConverter
 {
     public static final String TYPE_BUILD_PLUGIN = "build plugin";
+
     public static final String TYPE_REPORT_PLUGIN = "report plugin";
 
+    private List listeners = new ArrayList();
+
     public abstract String getArtifactId();
 
     public String getGroupId()
@@ -49,6 +59,23 @@
 
     public abstract String getType();
 
+    public void addListeners( List listeners )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            addListener( listener );
+        }
+    }
+
+    public void addListener( ConverterListener listener )
+    {
+        if ( !listeners.contains( listener ) )
+        {
+            listeners.add( listener );
+        }
+    }
+
     /**
      * Add a child element to the configuration.
      *
@@ -113,6 +140,8 @@
                         v4Model.setBuild( new Build() );
                     }
                     v4Model.getBuild().addPlugin( plugin );
+                    sendInfoMessage( "Adding plugin " + plugin.getGroupId() + 
":" + plugin.getArtifactId() );
+                    fireAddPluginEvent( plugin );
                 }
             }
             else if ( TYPE_REPORT_PLUGIN.equals( getType() ) )
@@ -135,6 +164,8 @@
                         v4Model.setReporting( new Reporting() );
                     }
                     v4Model.getReporting().addPlugin( plugin );
+                    sendInfoMessage( "Adding report " + plugin.getGroupId() + 
":" + plugin.getArtifactId() );
+                    fireAddReportEvent( plugin );
                 }
             }
         }
@@ -143,4 +174,33 @@
     protected abstract void buildConfiguration( Xpp3Dom configuration, 
org.apache.maven.model.v3_0_0.Model v3Model,
                                                 Properties projectProperties )
         throws ProjectConverterException;
+
+    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 fireAddPluginEvent( Plugin plugin )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.addPluginEvent( plugin.getGroupId(), 
plugin.getArtifactId() );
+        }
+    }
+
+    private void fireAddReportEvent( ReportPlugin plugin )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.addReportEvent( plugin.getGroupId(), 
plugin.getArtifactId() );
+        }
+    }
 }

Modified: 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PCCMultiproject.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PCCMultiproject.java?view=diff&rev=543493&r1=543492&r2=543493
==============================================================================
--- 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PCCMultiproject.java
 (original)
+++ 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PCCMultiproject.java
 Fri Jun  1 07:12:28 2007
@@ -20,22 +20,43 @@
  */
 
 import org.apache.maven.model.Model;
+import org.apache.maven.model.converter.ConverterListener;
 import org.apache.maven.model.converter.ProjectConverterException;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 
 /**
- * @plexus.component 
role="org.apache.maven.model.converter.plugins.PluginConfigurationConverter" 
role-hint="multiproject"
- *
  * @author Fabrizio Giustina
  * @version $Id$
+ * @plexus.component 
role="org.apache.maven.model.converter.plugins.PluginConfigurationConverter" 
role-hint="multiproject"
  */
 public class PCCMultiproject
     implements PluginConfigurationConverter
 {
+    private List listeners = new ArrayList();
+
+    public void addListeners( List listeners )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            addListener( listener );
+        }
+    }
+
+    public void addListener( ConverterListener listener )
+    {
+        if ( !listeners.contains( listener ) )
+        {
+            listeners.add( listener );
+        }
+    }
 
     /**
-     * @see 
org.apache.maven.model.converter.plugins.PluginConfigurationConverter#convertConfiguration(org.apache.maven.model.Model,
 org.apache.maven.model.v3_0_0.Model, java.util.Properties)
+     * @see 
org.apache.maven.model.converter.plugins.PluginConfigurationConverter#convertConfiguration(org.apache.maven.model.Model,org.apache.maven.model.v3_0_0.Model,java.util.Properties)
      */
     public void convertConfiguration( Model v4Model, 
org.apache.maven.model.v3_0_0.Model v3Model,
                                       Properties projectProperties )

Modified: 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PluginConfigurationConverter.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PluginConfigurationConverter.java?view=diff&rev=543493&r1=543492&r2=543493
==============================================================================
--- 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PluginConfigurationConverter.java
 (original)
+++ 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/plugins/PluginConfigurationConverter.java
 Fri Jun  1 07:12:28 2007
@@ -19,18 +19,36 @@
  * under the License.
  */
 
-import java.util.Properties;
-
 import org.apache.maven.model.Model;
+import org.apache.maven.model.converter.ConverterListener;
 import org.apache.maven.model.converter.ProjectConverterException;
 
+import java.util.List;
+import java.util.Properties;
+
 /**
  * A plugin configuration converter reads properties from a v3 pom or 
project.properties and add them to the v4 pom.
+ *
  * @author Fabrizio Giustina
  * @version $Id$
  */
 public interface PluginConfigurationConverter
 {
-    void convertConfiguration( Model v4Model, 
org.apache.maven.model.v3_0_0.Model v3Model, Properties projectProperties )
+    void convertConfiguration( Model v4Model, 
org.apache.maven.model.v3_0_0.Model v3Model,
+                               Properties projectProperties )
         throws ProjectConverterException;
+
+    /**
+     * Add a listeners list for all messages sended by the relocator.
+     *
+     * @param listeners The listeners list that will receive messages
+     */
+    void addListeners( List listeners );
+
+    /**
+     * Add a listener for all messages sended by the relocator.
+     *
+     * @param listener The listener that will receive messages
+     */
+    void addListener( ConverterListener listener );
 }

Modified: 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java?view=diff&rev=543493&r1=543492&r2=543493
==============================================================================
--- 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
 (original)
+++ 
maven/shared/trunk/maven-model-converter/src/main/java/org/apache/maven/model/converter/relocators/AbstractPluginRelocator.java
 Fri Jun  1 07:12:28 2007
@@ -66,7 +66,7 @@
      * model, after the model has been converted.
      *
      * @return The artifactId of the Maven 1 plugin.
-     * @see 
org.apache.maven.model.converter.PomV3ToV4Translator#translateDependencies( 
java.util.List )
+     * @see 
org.apache.maven.model.converter.PomV3ToV4Translator#translateDependencies(java.util.List)
      */
     public abstract String getOldArtifactId();
 
@@ -79,7 +79,7 @@
      * </p>
      *
      * @return The groupId of the Maven 1 plugin.
-     * @see 
org.apache.maven.model.converter.PomV3ToV4Translator#translateDependencies( 
java.util.List )
+     * @see 
org.apache.maven.model.converter.PomV3ToV4Translator#translateDependencies(java.util.List)
      */
     public String getOldGroupId()
     {
@@ -100,6 +100,7 @@
                 // Remove the old plugin
                 v4Model.getBuild().getPlugins().remove( oldBuildPlugin );
                 sendInfoMessage( "Removing build plugin " + getOldGroupId() + 
":" + getOldArtifactId() );
+                fireRemovePluginEvent( getOldGroupId(), getOldArtifactId() );
             }
             else
             {
@@ -110,6 +111,7 @@
                     oldBuildPlugin.setArtifactId( getNewArtifactId() );
                     oldBuildPlugin.setGroupId( getNewGroupId() );
                     sendInfoMessage( "Relocating build plugin " + 
getOldGroupId() + ":" + getOldArtifactId() );
+                    fireRelocatePluginEvent( getOldGroupId(), 
getOldArtifactId(), getNewGroupId(), getNewArtifactId() );
                 }
                 else
                 {
@@ -117,6 +119,7 @@
                     v4Model.getBuild().getPlugins().remove( oldBuildPlugin );
                     sendInfoMessage( "Removing old build plugin " + 
getOldGroupId() + ":" + getOldArtifactId() +
                         " because the new one already exist" );
+                    fireRemovePluginEvent( getOldGroupId(), getOldArtifactId() 
);
                 }
             }
         }
@@ -130,6 +133,7 @@
                 // Remove the old plugin
                 v4Model.getReporting().getPlugins().remove( oldReportPlugin );
                 sendInfoMessage( "Removing report plugin " + getOldGroupId() + 
":" + getOldArtifactId() );
+                fireRemovePluginEvent( getOldGroupId(), getOldArtifactId() );
             }
             else
             {
@@ -140,6 +144,7 @@
                     oldReportPlugin.setArtifactId( getNewArtifactId() );
                     oldReportPlugin.setGroupId( getNewGroupId() );
                     sendInfoMessage( "Relocating report plugin " + 
getOldGroupId() + ":" + getOldArtifactId() );
+                    fireRelocateReportEvent( getOldGroupId(), 
getOldArtifactId(), getNewGroupId(), getNewArtifactId() );
                 }
                 else
                 {
@@ -147,6 +152,7 @@
                     v4Model.getReporting().getPlugins().remove( 
oldReportPlugin );
                     sendInfoMessage( "Removing old report plugin " + 
getOldGroupId() + ":" + getOldArtifactId() +
                         " because the new one already exist" );
+                    fireRemovePluginEvent( getOldGroupId(), getOldArtifactId() 
);
                 }
             }
         }
@@ -172,11 +178,49 @@
     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 fireRelocatePluginEvent( String oldGroupId, String 
oldArtifactId, String newGroupId,
+                                          String newArtifactId )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.relocatePluginEvent( oldGroupId, oldArtifactId, 
newGroupId, newArtifactId );
+        }
+    }
+
+    private void fireRelocateReportEvent( String oldGroupId, String 
oldArtifactId, String newGroupId,
+                                          String newArtifactId )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.relocateReportEvent( oldGroupId, oldArtifactId, 
newGroupId, newArtifactId );
+        }
+    }
+
+    private void fireRemovePluginEvent( String groupId, String artifactId )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.removePluginEvent( groupId, artifactId );
+        }
+    }
+
+    private void fireRemoveReportEvent( String groupId, String artifactId )
+    {
+        for ( Iterator i = listeners.iterator(); i.hasNext(); )
+        {
+            ConverterListener listener = (ConverterListener) i.next();
+            listener.removeReportEvent( groupId, artifactId );
         }
     }
 }


Reply via email to