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 ); } } }