You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2016/12/21 16:47:00 UTC
maven git commit: [MNG-6139] Addition of command line option
'legacy-dependency-management'.
Repository: maven
Updated Branches:
refs/heads/master a4fe9ec79 -> 7e70c59e4
[MNG-6139] Addition of command line option 'legacy-dependency-management'.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/7e70c59e
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/7e70c59e
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/7e70c59e
Branch: refs/heads/master
Commit: 7e70c59e43f112c12282de49d937e870c9545fc9
Parents: a4fe9ec
Author: Christian Schulte <sc...@apache.org>
Authored: Wed Dec 21 17:45:54 2016 +0100
Committer: Christian Schulte <sc...@apache.org>
Committed: Wed Dec 21 17:45:54 2016 +0100
----------------------------------------------------------------------
.../java/org/apache/maven/DefaultMaven.java | 43 +++++++++++---------
.../java/org/apache/maven/RepositoryUtils.java | 23 +++++++----
.../execution/DefaultMavenExecutionRequest.java | 26 ++++++++++++
.../maven/execution/MavenExecutionRequest.java | 11 +++++
.../DefaultRepositorySystemSessionFactory.java | 7 ++++
.../maven/project/DefaultProjectBuilder.java | 1 +
.../project/DefaultProjectBuildingRequest.java | 22 ++++++++++
.../maven/project/ProjectBuildingRequest.java | 10 +++++
.../java/org/apache/maven/cli/CLIManager.java | 3 ++
.../java/org/apache/maven/cli/MavenCli.java | 9 +++-
.../building/DefaultModelBuildingRequest.java | 21 ++++++++++
.../building/FilterModelBuildingRequest.java | 15 ++++++-
.../model/building/ModelBuildingRequest.java | 10 +++++
.../DefaultDependencyManagementInjector.java | 27 ++++++++++--
.../ArtifactDescriptorReaderDelegate.java | 19 +++++----
15 files changed, 207 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 6954e9b..d6f6e17 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -102,30 +102,35 @@ public class DefaultMaven
{
MavenExecutionResult result;
- try
- {
- result = doExecute( request );
- }
- catch ( OutOfMemoryError e )
- {
- result = addExceptionToResult( new DefaultMavenExecutionResult(), e );
- }
- catch ( RuntimeException e )
+ synchronized ( RepositoryUtils.class )
{
- // TODO Hack to make the cycle detection the same for the new graph builder
- if ( e.getCause() instanceof ProjectCycleException )
+ try
{
- result = addExceptionToResult( new DefaultMavenExecutionResult(), e.getCause() );
+ RepositoryUtils.legacyDependencyManagement = request.isLegacyDependencyManagementRequested();
+ result = doExecute( request );
}
- else
+ catch ( OutOfMemoryError e )
{
- result = addExceptionToResult( new DefaultMavenExecutionResult(),
- new InternalErrorException( "Internal error: " + e, e ) );
+ result = addExceptionToResult( new DefaultMavenExecutionResult(), e );
+ }
+ catch ( RuntimeException e )
+ {
+ // TODO Hack to make the cycle detection the same for the new graph builder
+ if ( e.getCause() instanceof ProjectCycleException )
+ {
+ result = addExceptionToResult( new DefaultMavenExecutionResult(), e.getCause() );
+ }
+ else
+ {
+ result = addExceptionToResult( new DefaultMavenExecutionResult(),
+ new InternalErrorException( "Internal error: " + e, e ) );
+ }
+ }
+ finally
+ {
+ legacySupport.setSession( null );
+ RepositoryUtils.legacyDependencyManagement = false;
}
- }
- finally
- {
- legacySupport.setSession( null );
}
return result;
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
index 08749ea..d844254 100644
--- a/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
+++ b/maven-core/src/main/java/org/apache/maven/RepositoryUtils.java
@@ -55,6 +55,15 @@ import org.eclipse.aether.util.repository.AuthenticationBuilder;
public class RepositoryUtils
{
+ /**
+ * Package private field set on every invocation of the
+ * {@link DefaultMaven#execute(org.apache.maven.execution.MavenExecutionRequest)}. A very good example for why
+ * {@code public static} helper/utility/whatever methods are crap.
+ *
+ * @since 3.4.0
+ */
+ static boolean legacyDependencyManagement = false;
+
private static String nullify( String string )
{
return ( string == null || string.length() <= 0 ) ? null : string;
@@ -320,14 +329,14 @@ public class RepositoryUtils
exclusions.add( toExclusion( exclusion ) );
}
- Dependency result = new Dependency( artifact,
- dependency.getScope(),
- dependency.getOptional() != null
- ? dependency.isOptional()
- : null,
- exclusions );
+ return RepositoryUtils.legacyDependencyManagement
+ ? new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions )
+ : new Dependency( artifact, dependency.getScope(),
+ dependency.getOptional() != null
+ ? dependency.isOptional()
+ : null,
+ exclusions );
- return result;
}
private static Exclusion toExclusion( org.apache.maven.model.Exclusion exclusion )
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
index d67061f..769bd3b 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
@@ -163,6 +163,8 @@ public class DefaultMavenExecutionRequest
private boolean useLegacyLocalRepositoryManager = false;
+ private boolean legacyDependencyManagementRequested = false;
+
private Map<String, Object> data;
public DefaultMavenExecutionRequest()
@@ -210,6 +212,7 @@ public class DefaultMavenExecutionRequest
copy.setExecutionListener( original.getExecutionListener() );
copy.setUseLegacyLocalRepository( original.isUseLegacyLocalRepository() );
copy.setBuilderId( original.getBuilderId() );
+ copy.setLegacyDependencyManagementRequested( original.isLegacyDependencyManagementRequested() );
return copy;
}
@@ -1105,6 +1108,9 @@ public class DefaultMavenExecutionRequest
projectBuildingRequest.setProfiles( getProfiles() );
projectBuildingRequest.setProcessPlugins( true );
projectBuildingRequest.setBuildStartTime( getStartTime() );
+ projectBuildingRequest.
+ setLegacyDependencyManagementRequested( this.isLegacyDependencyManagementRequested() );
+
}
return projectBuildingRequest;
@@ -1285,4 +1291,24 @@ public class DefaultMavenExecutionRequest
return data;
}
+
+ /**
+ * @since 3.4.0
+ */
+ @Override
+ public boolean isLegacyDependencyManagementRequested()
+ {
+ return this.legacyDependencyManagementRequested;
+ }
+
+ /**
+ * @since 3.4.0
+ */
+ @Override
+ public MavenExecutionRequest setLegacyDependencyManagementRequested( final boolean value )
+ {
+ this.legacyDependencyManagementRequested = value;
+ return this;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
index 203b2b7..d758676 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
@@ -442,4 +442,15 @@ public interface MavenExecutionRequest
* @since 3.3.0
*/
Map<String, Object> getData();
+
+ /**
+ * @since 3.4.0
+ */
+ boolean isLegacyDependencyManagementRequested();
+
+ /**
+ * @since 3.4.0
+ */
+ MavenExecutionRequest setLegacyDependencyManagementRequested( boolean value );
+
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index 248a3b6..0253b5b 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -58,6 +58,7 @@ import java.io.InputStream;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
+import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
/**
* @since 3.3.0
@@ -238,6 +239,12 @@ public class DefaultRepositorySystemSessionFactory
mavenRepositorySystem.injectProxy( session, request.getPluginArtifactRepositories() );
mavenRepositorySystem.injectAuthentication( session, request.getPluginArtifactRepositories() );
+ if ( request.isLegacyDependencyManagementRequested() )
+ {
+ session.setDependencyManager( new ClassicDependencyManager() );
+ session.getData().set( "maven.legacyDependencyManagement", Boolean.TRUE );
+ }
+
return session;
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 25124e4..e6692d8 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -272,6 +272,7 @@ public class DefaultProjectBuilder
request.setBuildStartTime( configuration.getBuildStartTime() );
request.setModelResolver( resolver );
request.setModelCache( config.modelCache );
+ request.setLegacyDependencyManagementRequested( config.request.isLegacyDependencyManagementRequested() );
return request;
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
index d42da04..fee94b7 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuildingRequest.java
@@ -68,6 +68,8 @@ public class DefaultProjectBuildingRequest
private RepositoryMerging repositoryMerging = RepositoryMerging.POM_DOMINANT;
+ private boolean legacyDependencyManagementRequested = false;
+
public DefaultProjectBuildingRequest()
{
processPlugins = true;
@@ -100,6 +102,7 @@ public class DefaultProjectBuildingRequest
setSystemProperties( request.getSystemProperties() );
setUserProperties( request.getUserProperties() );
setValidationLevel( request.getValidationLevel() );
+ setLegacyDependencyManagementRequested( request.isLegacyDependencyManagementRequested() );
}
public MavenProject getProject()
@@ -344,4 +347,23 @@ public class DefaultProjectBuildingRequest
return repositoryMerging;
}
+ /**
+ * @since 3.4.0
+ */
+ @Override
+ public boolean isLegacyDependencyManagementRequested()
+ {
+ return this.legacyDependencyManagementRequested;
+ }
+
+ /**
+ * @since 3.4.0
+ */
+ @Override
+ public ProjectBuildingRequest setLegacyDependencyManagementRequested( final boolean value )
+ {
+ this.legacyDependencyManagementRequested = value;
+ return this;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java b/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
index 17a53b1..2dc854f 100644
--- a/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/project/ProjectBuildingRequest.java
@@ -185,6 +185,16 @@ public interface ProjectBuildingRequest
ProjectBuildingRequest setResolveVersionRanges( boolean value );
/**
+ * @since 3.4.0
+ */
+ boolean isLegacyDependencyManagementRequested();
+
+ /**
+ * @since 3.4.0
+ */
+ ProjectBuildingRequest setLegacyDependencyManagementRequested( boolean value );
+
+ /**
* The possible merge modes for combining remote repositories.
*/
enum RepositoryMerging
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
----------------------------------------------------------------------
diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
index f86f48b..7c01ef7 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
@@ -99,6 +99,8 @@ public class CLIManager
public static final String LEGACY_LOCAL_REPOSITORY = "llr";
+ public static final String LEGACY_DEPENDENCY_MANAGEMENT = "ldm";
+
public static final String BUILDER = "b";
protected Options options;
@@ -140,6 +142,7 @@ public class CLIManager
options.addOption( OptionBuilder.withLongOpt( "threads" ).hasArg().withDescription( "Thread count, for instance 2.0C where C is core multiplied" ).create( THREADS ) );
options.addOption( OptionBuilder.withLongOpt( "legacy-local-repository" ).withDescription( "Use Maven 2 Legacy Local Repository behaviour, ie no use of _remote.repositories. Can also be activated by using -Dmaven.legacyLocalRepo=true" ).create( LEGACY_LOCAL_REPOSITORY ) );
options.addOption( OptionBuilder.withLongOpt( "builder" ).hasArg().withDescription( "The id of the build strategy to use" ).create( BUILDER ) );
+ options.addOption( OptionBuilder.withLongOpt( "legacy-dependency-management" ).withDescription( "Use Maven 2 legacy dependency management behaviour. Can also be activated by using -Dmaven.legacyDependencyManagement=true" ).create( LEGACY_DEPENDENCY_MANAGEMENT ) );
// Adding this back in for compatibility with the verifier that hard codes this option.
options.addOption( OptionBuilder.withLongOpt( "no-plugin-registry" ).withDescription( "Ineffective, only kept for backward compatibility" ).create( "npr" ) );
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
----------------------------------------------------------------------
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 90ff927..ed71861 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
@@ -301,6 +301,7 @@ public class MavenCli
try
{
initialize( cliRequest );
+ legacy( cliRequest );
cli( cliRequest );
logging( cliRequest );
version( cliRequest );
@@ -311,7 +312,6 @@ public class MavenCli
toolchains( cliRequest );
populateRequest( cliRequest );
encryption( cliRequest );
- repository( cliRequest );
profiles( cliRequest );
return execute( cliRequest );
}
@@ -908,7 +908,7 @@ public class MavenCli
}
}
- private void repository( CliRequest cliRequest )
+ private void legacy( CliRequest cliRequest )
throws Exception
{
if ( cliRequest.commandLine.hasOption( CLIManager.LEGACY_LOCAL_REPOSITORY )
@@ -916,6 +916,11 @@ public class MavenCli
{
cliRequest.request.setUseLegacyLocalRepository( true );
}
+ if ( cliRequest.commandLine.hasOption( CLIManager.LEGACY_DEPENDENCY_MANAGEMENT )
+ || Boolean.getBoolean( "maven.legacyDependencyManagement" ) )
+ {
+ cliRequest.request.setLegacyDependencyManagementRequested( true );
+ }
}
private void profiles( final CliRequest request )
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
index 84a68f7..e9b36ba 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
@@ -73,6 +73,8 @@ public class DefaultModelBuildingRequest
private WorkspaceModelResolver workspaceResolver;
+ private boolean legacyDependencyManagementRequested = false;
+
/**
* Creates an empty request.
*/
@@ -408,4 +410,23 @@ public class DefaultModelBuildingRequest
return this;
}
+ /**
+ * @since 3.4.0
+ */
+ @Override
+ public boolean isLegacyDependencyManagementRequested()
+ {
+ return this.legacyDependencyManagementRequested;
+ }
+
+ /**
+ * @since 3.4.0
+ */
+ @Override
+ public ModelBuildingRequest setLegacyDependencyManagementRequested( final boolean value )
+ {
+ this.legacyDependencyManagementRequested = value;
+ return this;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
index c5c2cbf..1717081 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
@@ -282,4 +282,17 @@ class FilterModelBuildingRequest
return this;
}
-}
\ No newline at end of file
+ @Override
+ public boolean isLegacyDependencyManagementRequested()
+ {
+ return request.isLegacyDependencyManagementRequested();
+ }
+
+ @Override
+ public ModelBuildingRequest setLegacyDependencyManagementRequested( final boolean value )
+ {
+ this.request.setLegacyDependencyManagementRequested( value );
+ return this;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
index bc6d85d..c2c0caf 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
@@ -339,4 +339,14 @@ public interface ModelBuildingRequest
ModelBuildingRequest setWorkspaceModelResolver( WorkspaceModelResolver workspaceResolver );
+ /**
+ * @since 3.4.0
+ */
+ boolean isLegacyDependencyManagementRequested();
+
+ /**
+ * @since 3.4.0
+ */
+ ModelBuildingRequest setLegacyDependencyManagementRequested( boolean value );
+
}
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
----------------------------------------------------------------------
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java b/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
index 731cdd8..02f6bb6 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/management/DefaultDependencyManagementInjector.java
@@ -43,18 +43,29 @@ public class DefaultDependencyManagementInjector
implements DependencyManagementInjector
{
- private ManagementModelMerger merger = new ManagementModelMerger();
-
@Override
public void injectManagement( Model model, ModelBuildingRequest request, ModelProblemCollector problems )
{
- merger.mergeManagedDependencies( model );
+ new ManagementModelMerger( request.isLegacyDependencyManagementRequested() ).mergeManagedDependencies( model );
}
protected static class ManagementModelMerger
extends MavenModelMerger
{
+ private final boolean legacyDependencyManagementRequested;
+
+ ManagementModelMerger()
+ {
+ this( true );
+ }
+
+ ManagementModelMerger( final boolean legacyDependencyManagementRequested )
+ {
+ super();
+ this.legacyDependencyManagementRequested = legacyDependencyManagementRequested;
+ }
+
public void mergeManagedDependencies( Model model )
{
DependencyManagement dependencyManagement = model.getDependencyManagement();
@@ -82,6 +93,16 @@ public class DefaultDependencyManagementInjector
}
@Override
+ protected void mergeDependency_Optional( Dependency target, Dependency source, boolean sourceDominant,
+ Map<Object, Object> context )
+ {
+ if ( !this.legacyDependencyManagementRequested )
+ {
+ super.mergeDependency_Optional( target, source, sourceDominant, context );
+ }
+ }
+
+ @Override
protected void mergeDependency_Exclusions( Dependency target, Dependency source, boolean sourceDominant,
Map<Object, Object> context )
{
http://git-wip-us.apache.org/repos/asf/maven/blob/7e70c59e/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
----------------------------------------------------------------------
diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
index 284ee86..e494b1d 100644
--- a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
+++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java
@@ -62,7 +62,7 @@ public class ArtifactDescriptorReaderDelegate
for ( org.apache.maven.model.Dependency dependency : model.getDependencies() )
{
- result.addDependency( convert( dependency, stereotypes ) );
+ result.addDependency( convert( session, dependency, stereotypes ) );
}
DependencyManagement mngt = model.getDependencyManagement();
@@ -70,7 +70,7 @@ public class ArtifactDescriptorReaderDelegate
{
for ( org.apache.maven.model.Dependency dependency : mngt.getDependencies() )
{
- result.addManagedDependency( convert( dependency, stereotypes ) );
+ result.addManagedDependency( convert( session, dependency, stereotypes ) );
}
}
@@ -98,7 +98,8 @@ public class ArtifactDescriptorReaderDelegate
setArtifactProperties( result, model );
}
- private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes )
+ private Dependency convert( RepositorySystemSession session, org.apache.maven.model.Dependency dependency,
+ ArtifactTypeRegistry stereotypes )
{
ArtifactType stereotype = stereotypes.get( dependency.getType() );
if ( stereotype == null )
@@ -124,11 +125,13 @@ public class ArtifactDescriptorReaderDelegate
exclusions.add( convert( exclusion ) );
}
- Dependency result = new Dependency( artifact, dependency.getScope(),
- dependency.getOptional() != null
- ? dependency.isOptional()
- : null,
- exclusions );
+ final Dependency result =
+ session.getData().get( "maven.legacyDependencyManagement" ) != null
+ ? new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions )
+ : new Dependency( artifact, dependency.getScope(), dependency.getOptional() != null
+ ? dependency.isOptional()
+ : null,
+ exclusions );
return result;
}