diff --git a/src/it/it-set-property-001/verify.bsh b/src/it/it-set-property-001/verify.bsh index e655d3a87..2ff1f7090 100644 --- a/src/it/it-set-property-001/verify.bsh +++ b/src/it/it-set-property-001/verify.bsh @@ -8,12 +8,12 @@ try if ( buf.indexOf( "1.2.3-SNAPSHOT" ) < 0 ) { - System.err.println( "versionModule has been changed which should not happened." ); + System.err.println( "versionModule has been changed which should not happen." ); return false; } if ( buf.indexOf( "9.5.0-20170604.123223-2" ) < 0 ) { - System.err.println( "versionModuleTest has been changed which should not happen." ); + System.err.println( "versionModuleTest has not been changed which should not happen." ); return false; } } diff --git a/src/it/it-set-property-002/verify.bsh b/src/it/it-set-property-002/verify.bsh index 05511930c..51f180ed6 100644 --- a/src/it/it-set-property-002/verify.bsh +++ b/src/it/it-set-property-002/verify.bsh @@ -8,7 +8,7 @@ try if ( buf.indexOf( "9.5.0-20170604.123456-2" ) < 0 ) { - System.err.println( "versionModule has not been changed which should not happened." ); + System.err.println( "versionModule has not been changed which should not happen." ); return false; } if ( buf.indexOf( "1.2.3-SNAPSHOT" ) < 0 ) diff --git a/src/it/it-set-property-003-multiple-properties/invoker.properties b/src/it/it-set-property-003-multiple-properties/invoker.properties new file mode 100644 index 000000000..094e5f742 --- /dev/null +++ b/src/it/it-set-property-003-multiple-properties/invoker.properties @@ -0,0 +1,2 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:set-property +invoker.mavenOpts=-Dproperty=versionModule,versionModuleTest -DnewVersion=9.5.0-20170604.123456-2 \ No newline at end of file diff --git a/src/it/it-set-property-003-multiple-properties/pom.xml b/src/it/it-set-property-003-multiple-properties/pom.xml new file mode 100644 index 000000000..c64c22718 --- /dev/null +++ b/src/it/it-set-property-003-multiple-properties/pom.xml @@ -0,0 +1,53 @@ + + + + 4.0.0 + + localhost + it-set-property-003-multiple-properties + 1.0 + pom + + set-property based on issue-543 + set-property goal to be able to set a multiple properties separated by "," + + 1.2.3-SNAPSHOT + 1.2.3-SNAPSHOT + + + + + test.package + module + ${versionModule} + + + test.package + moduleTest + ${versionModuleTest} + + + + + + + + maven-clean-plugin + 2.2 + + + maven-deploy-plugin + 2.3 + + + maven-install-plugin + 2.2 + + + maven-site-plugin + 2.0 + + + + + diff --git a/src/it/it-set-property-003-multiple-properties/verify.bsh b/src/it/it-set-property-003-multiple-properties/verify.bsh new file mode 100644 index 000000000..945436515 --- /dev/null +++ b/src/it/it-set-property-003-multiple-properties/verify.bsh @@ -0,0 +1,26 @@ +import java.io.*; +import org.codehaus.plexus.util.FileUtils; + +try +{ + File file = new File( basedir, "pom.xml" ); + String buf = FileUtils.fileRead( file, "UTF-8" ); + + if ( buf.indexOf( "9.5.0-20170604.123456-2" ) < 0 ) + { + System.err.println( "versionModule has not been changed which should not happen." ); + return false; + } + if ( buf.indexOf( "9.5.0-20170604.123456-2" ) < 0 ) + { + System.err.println( "versionModuleTest has not been changed which should not happen." ); + return false; + } +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java b/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java index 49646141e..0461e6074 100644 --- a/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/SetPropertyMojo.java @@ -31,6 +31,7 @@ import javax.xml.stream.XMLStreamException; import java.io.IOException; +import java.util.Arrays; import java.util.Map; /** @@ -50,6 +51,7 @@ public class SetPropertyMojo /** * A property to update. + * You can also specify multiple property names separated by "," which are all set to the same new version. */ @Parameter( property = "property" ) private String property = null; @@ -103,9 +105,13 @@ protected void update( ModifiedPomXMLEventReader pom ) properties = reader.getProperties(); } else { getLog().debug( "Reading properties and versions to update from property and newVersion " ); - Property propertyConfig = new Property(property); - propertyConfig.setVersion(newVersion); - propertiesConfig = new Property[] { propertyConfig }; + propertiesConfig = Arrays.stream(StringUtils.split(property, ",")) + .map(prp -> { + Property propertyConfig = new Property(prp); + propertyConfig.setVersion(newVersion); + return propertyConfig; + }) + .toArray(size -> new Property[size]); properties = property; } update(pom, propertiesConfig, properties);