diff --git a/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java b/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java index 558d917d17..7df09f6049 100644 --- a/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java +++ b/maven-core/src/test/java/org/apache/maven/MavenLifecycleParticipantTest.java @@ -15,11 +15,11 @@ * the License. */ - import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import org.apache.maven.artifact.Artifact; import org.apache.maven.execution.MavenExecutionRequest; @@ -71,6 +71,32 @@ public void afterSessionStart( MavenSession session ) } + public static class InjectReactorDependency + extends AbstractMavenLifecycleParticipant + { + @Override + public void afterProjectsRead( MavenSession session ) + { + injectReactorDependency( session.getProjects(), "module-a", "module-b" ); + } + + private void injectReactorDependency( List projects, String moduleFrom, String moduleTo ) + { + for ( MavenProject project : projects ) + { + if ( moduleFrom.equals( project.getArtifactId() ) ) + { + Dependency dependency = new Dependency(); + dependency.setArtifactId( moduleTo ); + dependency.setGroupId( project.getGroupId() ); + dependency.setVersion( project.getVersion() ); + + project.getModel().addDependency( dependency ); + } + } + } + } + @Override protected void setupContainer() { @@ -103,7 +129,7 @@ public void testDependencyInjection() assertFalse( result.getExceptions().toString(), result.hasExceptions() ); MavenProject project = result.getProject(); - + assertEquals( "bar", project.getProperties().getProperty( "foo" ) ); ArrayList artifacts = new ArrayList( project.getArtifacts() ); @@ -111,4 +137,37 @@ public void testDependencyInjection() assertEquals( 1, artifacts.size() ); assertEquals( INJECTED_ARTIFACT_ID, artifacts.get( 0 ).getArtifactId() ); } + + public void testReactorDependencyInjection() + throws Exception + { + List reactorOrder = + getReactorOrder( "lifecycle-participant-reactor-dependency-injection", InjectReactorDependency.class ); + assertEquals( Arrays.asList( "parent", "module-b", "module-a" ), reactorOrder ); + } + + private List getReactorOrder( String testProject, Class participant ) + throws Exception + { + PlexusContainer container = getContainer(); + + ComponentDescriptor cd = new ComponentDescriptor( participant, container.getContainerRealm() ); + cd.setRoleClass( AbstractMavenLifecycleParticipant.class ); + container.addComponentDescriptor( cd ); + + Maven maven = container.lookup( Maven.class ); + File pom = getProject( testProject ); + MavenExecutionRequest request = createMavenExecutionRequest( pom ); + request.setGoals( Arrays.asList( "validate" ) ); + MavenExecutionResult result = maven.execute( request ); + + assertFalse( result.getExceptions().toString(), result.hasExceptions() ); + + List order = new ArrayList(); + for ( MavenProject project : result.getTopologicallySortedProjects() ) + { + order.add( project.getArtifactId() ); + } + return order; + } } diff --git a/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-a/pom.xml b/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-a/pom.xml new file mode 100644 index 0000000000..6a173f6155 --- /dev/null +++ b/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-a/pom.xml @@ -0,0 +1,12 @@ + + 4.0.0 + + + lifecycle-participant-reactor-dependency-injection + parent + 1.0 + + + module-a + + diff --git a/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-b/pom.xml b/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-b/pom.xml new file mode 100644 index 0000000000..795111a2cc --- /dev/null +++ b/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/module-b/pom.xml @@ -0,0 +1,12 @@ + + 4.0.0 + + + lifecycle-participant-reactor-dependency-injection + parent + 1.0 + + + module-b + + diff --git a/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/pom.xml b/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/pom.xml new file mode 100644 index 0000000000..2830b321e2 --- /dev/null +++ b/maven-core/src/test/projects/lifecycle-listener/lifecycle-participant-reactor-dependency-injection/pom.xml @@ -0,0 +1,13 @@ + + 4.0.0 + + lifecycle-participant-reactor-dependency-injection + parent + 1.0 + pom + + + module-a + module-b + + diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index 4dcb0b7189..1615d58aaf 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -504,7 +504,7 @@ private void encryption( CliRequest cliRequest ) Console cons; char[] password; if ( ( cons = System.console() ) != null - && ( password = cons.readPassword( "Master password:") ) != null ) + && ( password = cons.readPassword( "Master password: " ) ) != null ) { // Cipher uses Strings passwd = String.copyValueOf( password ); @@ -529,7 +529,7 @@ else if ( cliRequest.commandLine.hasOption( CLIManager.ENCRYPT_PASSWORD ) ) Console cons; char[] password; if ( ( cons = System.console() ) != null - && ( password = cons.readPassword( "Password:" ) ) != null ) + && ( password = cons.readPassword( "Password: " ) ) != null ) { // Cipher uses Strings passwd = String.copyValueOf( password );