From 9fbb8d4ebe652c2f71593cbc79f3673aae2c3bdc Mon Sep 17 00:00:00 2001 From: Sylwester Lachiewicz Date: Wed, 1 Jan 2020 16:01:14 +0100 Subject: [PATCH] [MNG-7417] Several classes do not set properties properly for building requests This closes #306 --- .../project/DefaultMavenProjectBuilder.java | 3 ++- .../project/artifact/MavenMetadataSource.java | 1 + .../AbstractCoreMavenComponentTestCase.java | 3 ++- .../maven/project/PomConstructionTest.java | 22 +++++++++---------- .../DefaultArtifactDescriptorReader.java | 14 +++++------- 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java index 7bc5a5c3a471..0fc1697d4238 100644 --- a/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java +++ b/maven-compat/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java @@ -115,7 +115,8 @@ private ProjectBuildingRequest injectSession( ProjectBuildingRequest request ) { request.setRepositorySession( session.getRepositorySession() ); request.setSystemProperties( session.getSystemProperties() ); - if ( request.getUserProperties().isEmpty() ) + + if ( request.getUserProperties() != null && !request.getUserProperties().isEmpty() ) { request.setUserProperties( session.getUserProperties() ); } diff --git a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java b/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java index 508ebeb25147..baf5e7c85071 100644 --- a/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java +++ b/maven-core/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java @@ -570,6 +570,7 @@ private ProjectRelocation retrieveRelocatedProject( Artifact artifact, MetadataR configuration.setProcessPlugins( false ); configuration.setRepositoryMerging( ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT ); configuration.setSystemProperties( getSystemProperties() ); + configuration.setUserProperties( new Properties() ); configuration.setRepositorySession( legacySupport.getRepositorySession() ); project = projectBuilder.build( pomArtifact, configuration ).getProject(); diff --git a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java b/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java index 2d9400ef47cf..bb3574ae41d8 100644 --- a/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java +++ b/maven-core/src/test/java/org/apache/maven/AbstractCoreMavenComponentTestCase.java @@ -128,7 +128,8 @@ protected MavenSession createMavenSession( File pom, Properties executionPropert .setLocalRepository( request.getLocalRepository() ) .setRemoteRepositories( request.getRemoteRepositories() ) .setPluginArtifactRepositories( request.getPluginArtifactRepositories() ) - .setSystemProperties( executionProperties ); + .setSystemProperties( executionProperties ) + .setUserProperties( new Properties() ); List projects = new ArrayList<>(); diff --git a/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java b/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java index e2f371e55bbe..a96583d64a6d 100644 --- a/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java +++ b/maven-core/src/test/java/org/apache/maven/project/PomConstructionTest.java @@ -257,7 +257,7 @@ public void testValidationErrorUponNonUniqueDependencyManagementKeyInProfile() public void testDuplicateDependenciesCauseLastDeclarationToBePickedInLenientMode() throws Exception { - PomTestWrapper pom = buildPom( "unique-dependency-key/deps", true, null ); + PomTestWrapper pom = buildPom( "unique-dependency-key/deps", true, null, null ); assertEquals( 1, ( (List) pom.getValue( "dependencies" ) ).size() ); assertEquals( "0.2", pom.getValue( "dependencies[1]/version" ) ); } @@ -1517,7 +1517,7 @@ public void testJdkActivation() Properties props = new Properties(); props.put( "java.version", "1.5.0_15" ); - PomTestWrapper pom = buildPom( "jdk-activation", props ); + PomTestWrapper pom = buildPom( "jdk-activation", props, null ); assertEquals( 3, pom.getMavenProject().getActiveProfiles().size() ); assertEquals( "PASSED", pom.getValue( "properties/jdkProperty3" ) ); assertEquals( "PASSED", pom.getValue( "properties/jdkProperty2" ) ); @@ -1624,7 +1624,7 @@ public void testInterpolationWithSystemProperty() { Properties sysProps = new Properties(); sysProps.setProperty( "system.property", "PASSED" ); - PomTestWrapper pom = buildPom( "system-property-interpolation", sysProps ); + PomTestWrapper pom = buildPom( "system-property-interpolation", sysProps, null ); assertEquals( "PASSED", pom.getValue( "name" ) ); } @@ -1764,7 +1764,7 @@ public void testCliPropsDominateProjectPropsDuringInterpolation() { Properties props = new Properties(); props.setProperty( "testProperty", "PASSED" ); - PomTestWrapper pom = buildPom( "interpolation-cli-wins", props ); + PomTestWrapper pom = buildPom( "interpolation-cli-wins", null, props ); assertEquals( "PASSED", pom.getValue( "properties/interpolatedProperty" ) ); } @@ -1918,17 +1918,17 @@ private void assertPathWithNormalizedFileSeparators( Object value ) private PomTestWrapper buildPom( String pomPath, String... profileIds ) throws Exception { - return buildPom( pomPath, null, profileIds ); + return buildPom( pomPath, null, null, profileIds ); } - private PomTestWrapper buildPom( String pomPath, Properties executionProperties, String... profileIds ) + private PomTestWrapper buildPom( String pomPath, Properties systemProperties, Properties userProperties, String... profileIds ) throws Exception { - return buildPom( pomPath, false, executionProperties, profileIds ); + return buildPom( pomPath, false, systemProperties, userProperties, profileIds ); } - private PomTestWrapper buildPom( String pomPath, boolean lenientValidation, Properties executionProperties, - String... profileIds ) + private PomTestWrapper buildPom( String pomPath, boolean lenientValidation, Properties systemProperties, + Properties userProperties, String... profileIds ) throws Exception { File pomFile = new File( testDirectory, pomPath ); @@ -1944,8 +1944,8 @@ private PomTestWrapper buildPom( String pomPath, boolean lenientValidation, Prop localRepoUrl = "file://" + localRepoUrl; config.setLocalRepository( repositorySystem.createArtifactRepository( "local", localRepoUrl, new DefaultRepositoryLayout(), null, null ) ); config.setActiveProfileIds( Arrays.asList( profileIds ) ); - config.setSystemProperties( executionProperties ); - config.setUserProperties( executionProperties ); + config.setSystemProperties( systemProperties ); + config.setUserProperties( userProperties ); config.setValidationLevel( lenientValidation ? ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0 : ModelBuildingRequest.VALIDATION_LEVEL_STRICT ); diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java index 7beeb043e115..5eee93924b2a 100644 --- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java @@ -216,8 +216,8 @@ private Model loadPom( RepositorySystemSession session, ArtifactDescriptorReques modelRequest.setValidationLevel( ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL ); modelRequest.setProcessPlugins( false ); modelRequest.setTwoPhaseBuilding( false ); - modelRequest.setSystemProperties( toProperties( session.getUserProperties(), - session.getSystemProperties() ) ); + modelRequest.setSystemProperties( toProperties( session.getSystemProperties() ) ); + modelRequest.setUserProperties( toProperties( session.getUserProperties() ) ); modelRequest.setModelCache( DefaultModelCache.newInstance( session ) ); modelRequest.setModelResolver( new DefaultModelResolver( session, trace.newChild( modelRequest ), request.getRequestContext(), artifactResolver, @@ -273,16 +273,12 @@ private Model loadPom( RepositorySystemSession session, ArtifactDescriptorReques } } - private Properties toProperties( Map dominant, Map recessive ) + private Properties toProperties( Map map ) { Properties props = new Properties(); - if ( recessive != null ) + if ( map != null ) { - props.putAll( recessive ); - } - if ( dominant != null ) - { - props.putAll( dominant ); + props.putAll( map ); } return props; }