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