diff --git a/src/it/it-use-latest-releases-006/invoker.properties b/src/it/it-use-latest-releases-006/invoker.properties new file mode 100644 index 000000000..c8647c6b4 --- /dev/null +++ b/src/it/it-use-latest-releases-006/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-latest-releases diff --git a/src/it/it-use-latest-releases-006/pom.xml b/src/it/it-use-latest-releases-006/pom.xml new file mode 100644 index 000000000..ae30588b1 --- /dev/null +++ b/src/it/it-use-latest-releases-006/pom.xml @@ -0,0 +1,39 @@ + + 4.0.0 + + localhost + dummy-parent + 1.0 + + + localhost + it-use-latest-releases-006 + 1.0 + pom + Update a parent dependency + + + + + localhost + dummy-impl + 1.0 + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + true + + + + + + diff --git a/src/it/it-use-latest-releases-006/verify.bsh b/src/it/it-use-latest-releases-006/verify.bsh new file mode 100644 index 000000000..afc3f9b04 --- /dev/null +++ b/src/it/it-use-latest-releases-006/verify.bsh @@ -0,0 +1,33 @@ +import java.io.*; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E.*\\Q\\E\\s*3\\.0\\s*\\Q\\E.*\\Q\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update parent to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/it/it-use-latest-releases-007/invoker.properties b/src/it/it-use-latest-releases-007/invoker.properties new file mode 100644 index 000000000..c8647c6b4 --- /dev/null +++ b/src/it/it-use-latest-releases-007/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-latest-releases diff --git a/src/it/it-use-latest-releases-007/pom.xml b/src/it/it-use-latest-releases-007/pom.xml new file mode 100644 index 000000000..664490b6f --- /dev/null +++ b/src/it/it-use-latest-releases-007/pom.xml @@ -0,0 +1,46 @@ + + 4.0.0 + + localhost + dummy-parent + 1.0 + + + localhost + it-use-latest-release-007 + 1.0 + pom + Update matching parent and dependency declaration + + + + + localhost + dummy-impl + 1.0 + + + localhost + dummy-parent + 1.0 + pom + import + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + true + + + + + + \ No newline at end of file diff --git a/src/it/it-use-latest-releases-007/verify.bsh b/src/it/it-use-latest-releases-007/verify.bsh new file mode 100644 index 000000000..204a0b815 --- /dev/null +++ b/src/it/it-use-latest-releases-007/verify.bsh @@ -0,0 +1,62 @@ +import java.io.*; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E.*\\Q\\E\\s*3\\.0\\s*\\Q\\E.*\\Q\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update parent to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E\\s*3\\.0\\s*\\Q\\E.*\\Qpom\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/it/it-use-latest-snapshots-003/invoker.properties b/src/it/it-use-latest-snapshots-003/invoker.properties new file mode 100644 index 000000000..7f4030996 --- /dev/null +++ b/src/it/it-use-latest-snapshots-003/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-latest-snapshots diff --git a/src/it/it-use-latest-snapshots-003/pom.xml b/src/it/it-use-latest-snapshots-003/pom.xml new file mode 100644 index 000000000..ec3ba0a61 --- /dev/null +++ b/src/it/it-use-latest-snapshots-003/pom.xml @@ -0,0 +1,41 @@ + + 4.0.0 + + localhost + dummy-parent2 + 1.0 + + + localhost + it-use-latest-snapshots-003 + 1.0 + pom + Update a parent dependency + + + + + localhost + dummy-impl + 1.0 + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + true + true + true + + + + + + diff --git a/src/it/it-use-latest-snapshots-003/verify.bsh b/src/it/it-use-latest-snapshots-003/verify.bsh new file mode 100644 index 000000000..49ec32a58 --- /dev/null +++ b/src/it/it-use-latest-snapshots-003/verify.bsh @@ -0,0 +1,33 @@ +import java.io.*; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E.*\\Q\\E\\s*3\\.0-SNAPSHOT\\s*\\Q\\E.*\\Q\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update parent to version 3.0-SNAPSHOT" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/it/it-use-latest-snapshots-004/invoker.properties b/src/it/it-use-latest-snapshots-004/invoker.properties new file mode 100644 index 000000000..7f4030996 --- /dev/null +++ b/src/it/it-use-latest-snapshots-004/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-latest-snapshots diff --git a/src/it/it-use-latest-snapshots-004/pom.xml b/src/it/it-use-latest-snapshots-004/pom.xml new file mode 100644 index 000000000..b615b0c61 --- /dev/null +++ b/src/it/it-use-latest-snapshots-004/pom.xml @@ -0,0 +1,48 @@ + + 4.0.0 + + localhost + dummy-parent2 + 1.0 + + + localhost + it-use-latest-snapshots-004 + 1.0 + pom + Update matching parent and dependency declaration + + + + + localhost + dummy-impl + 1.0 + + + localhost + dummy-parent2 + 1.0 + pom + import + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + true + true + true + + + + + + \ No newline at end of file diff --git a/src/it/it-use-latest-snapshots-004/verify.bsh b/src/it/it-use-latest-snapshots-004/verify.bsh new file mode 100644 index 000000000..7c07bf749 --- /dev/null +++ b/src/it/it-use-latest-snapshots-004/verify.bsh @@ -0,0 +1,62 @@ +import java.io.*; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E.*\\Q\\E\\s*3\\.0-SNAPSHOT\\s*\\Q\\E.*\\Q\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update parent to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E\\s*3\\.0-SNAPSHOT\\s*\\Q\\E.*\\Qpom\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/it/it-use-latest-versions-009/invoker.properties b/src/it/it-use-latest-versions-009/invoker.properties new file mode 100644 index 000000000..ec24afaef --- /dev/null +++ b/src/it/it-use-latest-versions-009/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-latest-versions diff --git a/src/it/it-use-latest-versions-009/pom.xml b/src/it/it-use-latest-versions-009/pom.xml new file mode 100644 index 000000000..370b171e5 --- /dev/null +++ b/src/it/it-use-latest-versions-009/pom.xml @@ -0,0 +1,39 @@ + + 4.0.0 + + localhost + dummy-parent + 1.0 + + + localhost + it-use-latest-versions-009 + 1.0 + pom + Update a parent dependency + + + + + localhost + dummy-impl + 1.0 + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + true + + + + + + diff --git a/src/it/it-use-latest-versions-009/verify.bsh b/src/it/it-use-latest-versions-009/verify.bsh new file mode 100644 index 000000000..afc3f9b04 --- /dev/null +++ b/src/it/it-use-latest-versions-009/verify.bsh @@ -0,0 +1,33 @@ +import java.io.*; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E.*\\Q\\E\\s*3\\.0\\s*\\Q\\E.*\\Q\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update parent to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/it/it-use-latest-versions-010/invoker.properties b/src/it/it-use-latest-versions-010/invoker.properties new file mode 100644 index 000000000..ec24afaef --- /dev/null +++ b/src/it/it-use-latest-versions-010/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-latest-versions diff --git a/src/it/it-use-latest-versions-010/pom.xml b/src/it/it-use-latest-versions-010/pom.xml new file mode 100644 index 000000000..3aba8aca1 --- /dev/null +++ b/src/it/it-use-latest-versions-010/pom.xml @@ -0,0 +1,46 @@ + + 4.0.0 + + localhost + dummy-parent + 1.0 + + + localhost + it-use-latest-versions-010 + 1.0 + pom + Update matching parent and dependency declaration + + + + + localhost + dummy-impl + 1.0 + + + localhost + dummy-parent + 1.0 + pom + import + + + + + + + + @project.groupId@ + @project.artifactId@ + @project.version@ + + true + + + + + + \ No newline at end of file diff --git a/src/it/it-use-latest-versions-010/verify.bsh b/src/it/it-use-latest-versions-010/verify.bsh new file mode 100644 index 000000000..204a0b815 --- /dev/null +++ b/src/it/it-use-latest-versions-010/verify.bsh @@ -0,0 +1,62 @@ +import java.io.*; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E.*\\Q\\E\\s*3\\.0\\s*\\Q\\E.*\\Q\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update parent to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +try +{ + File file = new File( basedir, "pom.xml" ); + + BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ) ); + StringBuilder buf = new StringBuilder(); + String line = in.readLine(); + while ( line != null ) + { + buf.append( line ); + buf.append( " " ); + line = in.readLine(); + } + + Pattern p = Pattern.compile( "\\Q\\E\\s*3\\.0\\s*\\Q\\E.*\\Qpom\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "Did not update to version 3.0" ); + return false; + } + System.out.println( m.group( 0 ) ); +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/main/java/org/codehaus/mojo/versions/UseLatestReleasesMojo.java b/src/main/java/org/codehaus/mojo/versions/UseLatestReleasesMojo.java index 489c4f3d6..082514c18 100644 --- a/src/main/java/org/codehaus/mojo/versions/UseLatestReleasesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/UseLatestReleasesMojo.java @@ -108,6 +108,17 @@ protected void update( ModifiedPomXMLEventReader pom ) { useLatestReleases( pom, getProject().getDependencies() ); } + if ( getProject().getParent() != null && isProcessingParent() ) + { + Dependency dependency = new Dependency(); + dependency.setArtifactId(getProject().getParent().getArtifactId()); + dependency.setGroupId(getProject().getParent().getGroupId()); + dependency.setVersion(getProject().getParent().getVersion()); + dependency.setType("pom"); + List list = new ArrayList(); + list.add(dependency); + useLatestReleases( pom, list); + } } catch ( ArtifactMetadataRetrievalException e ) { @@ -156,6 +167,15 @@ private void useLatestReleases( ModifiedPomXMLEventReader pom, Collection 0 ) { String newVersion = filteredVersions[filteredVersions.length - 1].toString(); + if(getProject().getParent() != null){ + if(artifact.getId().equals(getProject().getParentArtifact().getId()) && isProcessingParent()) + { + if ( PomHelper.setProjectParentVersion( pom, newVersion.toString() ) ) + { + getLog().debug( "Made parent update from " + version + " to " + newVersion.toString() ); + } + } + } if ( PomHelper.setDependencyVersion( pom, dep.getGroupId(), dep.getArtifactId(), version, newVersion, getProject().getModel() ) ) { diff --git a/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java b/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java index c1812c33b..f8976796d 100644 --- a/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/UseLatestSnapshotsMojo.java @@ -37,6 +37,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -104,6 +106,17 @@ protected void update( ModifiedPomXMLEventReader pom ) { useLatestSnapshots( pom, getProject().getDependencies() ); } + if ( getProject().getParent() != null && isProcessingParent() ) + { + Dependency dependency = new Dependency(); + dependency.setArtifactId(getProject().getParent().getArtifactId()); + dependency.setGroupId(getProject().getParent().getGroupId()); + dependency.setVersion(getProject().getParent().getVersion()); + dependency.setType("pom"); + List list = new ArrayList(); + list.add(dependency); + useLatestSnapshots( pom, list); + } } catch ( ArtifactMetadataRetrievalException e ) { @@ -163,6 +176,16 @@ private void useLatestSnapshots( ModifiedPomXMLEventReader pom, Collection 0 ) { String newVersion = filteredVersions[filteredVersions.length - 1].toString(); + if(getProject().getParent() != null){ + if(artifact.getId().equals(getProject().getParentArtifact().getId()) && isProcessingParent()) + { + if ( PomHelper.setProjectParentVersion( pom, newVersion.toString() ) ) + { + getLog().debug( "Made parent update from " + version + " to " + newVersion.toString() ); + } + } + } if ( PomHelper.setDependencyVersion( pom, dep.getGroupId(), dep.getArtifactId(), version, newVersion, - getProject().getModel() ) ) + getProject().getModel() ) ) { - getLog().info( "Updated " + toString( dep ) + " to version " + newVersion ); + getLog().info( "Updated " + toString( dep ) + " to version " + newVersion ); + } }