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