You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2011/08/25 22:03:57 UTC
svn commit: r1161723 [1/3] - in /maven/sandbox/trunk/mae: ./
mae-boms/mae-library-bom/ mae-booter/
mae-booter/src/main/java/org/apache/maven/mae/boot/embed/
mae-booter/src/test/java/org/apache/maven/mae/internal/container/
mae-booter/src/test/java/org/...
Author: jdcasey
Date: Thu Aug 25 20:03:54 2011
New Revision: 1161723
URL: http://svn.apache.org/viewvc?rev=1161723&view=rev
Log:
move back to using hacked mae-container plexus variant, to avoid the need to maintain all of sisu with component selectors...which isn't all that useful for MAE, really
Added:
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/pom.xml (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphException.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphLoader.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphNode.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphRootNode.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DependencyGraph.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/ArtifactOnlyDependencyNode.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DefaultDepGraphLoader.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DependencyGraphResolver.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DisconnectedDepNode.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/FlexibleScopeDependencySelector.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/collect/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/collect/BareBonesDependencyCollector.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/collect/DepGraphCache.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/collect/SlimDepGraph.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/collect/SlimDependencyEdge.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/collect/SlimDependencyNode.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/session/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/session/DepGraphProjectToolsSession.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/lib/
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/lib/DependencyGrapherLibrary.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/test/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/pom.xml (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/DirectedGraph.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/DirectionalEdge.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/GraphManager.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/SimpleDirectedGraph.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/output/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/output/EdgePrinter.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/output/GraphPrinter.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/output/VertexPrinter.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/traverse/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/traverse/CompoundGraphVisitor.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/traverse/GraphVisitor.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/main/java/org/apache/maven/mae/graph/traverse/GraphWalker.java (with props)
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/org/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/org/apache/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/org/apache/maven/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/org/apache/maven/mae/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/org/apache/maven/mae/graph/
maven/sandbox/trunk/mae/mae-components/mae-graph-support/src/test/java/org/apache/maven/mae/graph/SimpleDirectedGraphTest.java (with props)
Removed:
maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/ComponentSelectionModule.java
maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/InstanceModule.java
Modified:
maven/sandbox/trunk/mae/mae-boms/mae-library-bom/pom.xml
maven/sandbox/trunk/mae/mae-booter/pom.xml
maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java
maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java
maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/MAEApplicationTest.java
maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/fixture/MapOwner.java
maven/sandbox/trunk/mae/mae-components/mae-project-tools/pom.xml
maven/sandbox/trunk/mae/mae-components/pom.xml
maven/sandbox/trunk/mae/mae-container/pom.xml
maven/sandbox/trunk/mae/pom.xml
Modified: maven/sandbox/trunk/mae/mae-boms/mae-library-bom/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-boms/mae-library-bom/pom.xml?rev=1161723&r1=1161722&r2=1161723&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-boms/mae-library-bom/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-boms/mae-library-bom/pom.xml Thu Aug 25 20:03:54 2011
@@ -123,10 +123,14 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.5</version>
+ </dependency>
+ <dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
- <version>2.0</version>
- <scope>provided</scope>
+ <version>2.0.1</version>
</dependency>
<!-- /END infra requirements -->
Modified: maven/sandbox/trunk/mae/mae-booter/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/pom.xml?rev=1161723&r1=1161722&r2=1161723&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/pom.xml (original)
+++ maven/sandbox/trunk/mae/mae-booter/pom.xml Thu Aug 25 20:03:54 2011
@@ -44,7 +44,6 @@
<dependency>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-inject-plexus</artifactId>
- <version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.maven.mae</groupId>
@@ -79,6 +78,17 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven.mae</groupId>
+ <artifactId>mae-container</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-all</artifactId>
+ <version>1.1</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java?rev=1161723&r1=1161722&r2=1161723&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedder.java Thu Aug 25 20:03:54 2011
@@ -53,6 +53,7 @@ import org.apache.maven.mae.conf.mgmt.Lo
import org.apache.maven.mae.conf.mgmt.MAEManagementException;
import org.apache.maven.mae.conf.mgmt.MAEManagementView;
import org.apache.maven.mae.internal.container.ComponentKey;
+import org.apache.maven.mae.internal.container.MAEContainer;
import org.apache.maven.project.MavenProject;
import org.apache.maven.properties.internal.EnvironmentUtils;
import org.apache.maven.settings.Settings;
@@ -63,7 +64,6 @@ import org.apache.maven.settings.buildin
import org.apache.maven.settings.building.SettingsBuildingResult;
import org.apache.maven.settings.building.SettingsProblem;
import org.codehaus.plexus.PlexusConstants;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
@@ -76,6 +76,8 @@ import org.sonatype.plexus.components.se
import org.sonatype.plexus.components.sec.dispatcher.SecUtil;
import org.sonatype.plexus.components.sec.dispatcher.model.SettingsSecurity;
+import com.google.inject.Injector;
+
/**
* The core of the embeddable Maven environment. This class is used as the main interface to the embedded Maven
* environment for the application developer. The only other interface is component-instance injection, available
@@ -99,7 +101,7 @@ public class MAEEmbedder
private final boolean showVersion;
- private final PlexusContainer container;
+ private final MAEContainer container;
private final MAEConfiguration embConfiguration;
@@ -117,11 +119,13 @@ public class MAEEmbedder
private boolean stopped = false;
- MAEEmbedder( final Maven maven, final MAEConfiguration embConfiguration, final PlexusContainer container,
- final SettingsBuilder settingsBuilder, final MavenExecutionRequestPopulator executionRequestPopulator,
- final DefaultSecDispatcher securityDispatcher, final MAEServiceManager serviceManager,
- final List<MAELibraryLoader> libraryLoaders, final PrintStream standardOut, final Logger logger,
- final boolean shouldShowErrors, final boolean showVersion )
+ MAEEmbedder( final Maven maven, final MAEConfiguration embConfiguration,
+ final MAEContainer container, final SettingsBuilder settingsBuilder,
+ final MavenExecutionRequestPopulator executionRequestPopulator,
+ final DefaultSecDispatcher securityDispatcher,
+ final MAEServiceManager serviceManager,
+ final List<MAELibraryLoader> libraryLoaders, final PrintStream standardOut,
+ final Logger logger, final boolean shouldShowErrors, final boolean showVersion )
{
this.maven = maven;
this.embConfiguration = embConfiguration;
@@ -138,25 +142,23 @@ public class MAEEmbedder
this.showVersion = showVersion;
}
- // public synchronized Injector injector()
- // throws MAEEmbeddingException
- // {
- // printInfo( null );
- // return container.getInjector();
- // }
-
- // /**
- // * Wire a series of externally managed objects with components from the Maven environment,
- // * according to component annotations in those instances.
- // */
- // public synchronized Map<Object, Throwable> wire( final Object... instances )
- // throws MAEEmbeddingException
- // {
- // checkStopped();
- //
- // printInfo( null );
- // return container.extrudeDependencies( instances );
- // }
+ public synchronized Injector injector()
+ throws MAEEmbeddingException
+ {
+ return container.getInjector();
+ }
+
+ /**
+ * Wire a series of externally managed objects with components from the Maven environment, according to component
+ * annotations in those instances.
+ */
+ public synchronized Map<Object, Throwable> wire( final Object... instances )
+ throws MAEEmbeddingException
+ {
+ checkStopped();
+
+ return container.extrudeDependencies( instances );
+ }
protected void checkStopped()
{
@@ -227,14 +229,17 @@ public class MAEEmbedder
{
final DefaultPlexusCipher cipher = new DefaultPlexusCipher();
- final String result = cipher.encryptAndDecorate( passwd, DefaultSecDispatcher.SYSTEM_PROPERTY_SEC_LOCATION );
+ final String result =
+ cipher.encryptAndDecorate( passwd,
+ DefaultSecDispatcher.SYSTEM_PROPERTY_SEC_LOCATION );
logger.info( result );
return result;
}
catch ( final PlexusCipherException e )
{
- throw new MAEEmbeddingException( "Failed to encrypt master password: {0}", e, e.getMessage() );
+ throw new MAEEmbeddingException( "Failed to encrypt master password: {0}", e,
+ e.getMessage() );
}
}
@@ -257,7 +262,9 @@ public class MAEEmbedder
configurationFile = System.getProperty( "user.home" ) + configurationFile.substring( 1 );
}
- final String file = System.getProperty( DefaultSecDispatcher.SYSTEM_PROPERTY_SEC_LOCATION, configurationFile );
+ final String file =
+ System.getProperty( DefaultSecDispatcher.SYSTEM_PROPERTY_SEC_LOCATION,
+ configurationFile );
String master = null;
@@ -271,7 +278,9 @@ public class MAEEmbedder
if ( master == null )
{
- throw new IllegalStateException( "Master password is not set in the setting security file: " + file );
+ throw new IllegalStateException(
+ "Master password is not set in the setting security file: "
+ + file );
}
final DefaultPlexusCipher cipher = new DefaultPlexusCipher();
@@ -300,15 +309,18 @@ public class MAEEmbedder
for ( final MAELibrary library : embConfiguration.getLibraries() )
{
- final Set<ComponentKey<?>> components = library.getManagementComponents( LoadOnStart.class );
+ final Set<ComponentKey<?>> components =
+ library.getManagementComponents( LoadOnStart.class );
if ( components != null && !components.isEmpty() )
{
- final MAEManagementView mgmtView = new EmbedderManagementView( container, embConfiguration );
+ final MAEManagementView mgmtView =
+ new EmbedderManagementView( container, embConfiguration );
for ( final ComponentKey<?> key : components )
{
try
{
- final LoadOnStart los = (LoadOnStart) container.lookup( key.getRole(), key.getHint() );
+ final LoadOnStart los =
+ (LoadOnStart) container.lookup( key.getRole(), key.getHint() );
los.executionStarting( mgmtView );
}
catch ( final ComponentLookupException e )
@@ -336,15 +348,18 @@ public class MAEEmbedder
stopped = true;
for ( final MAELibrary library : embConfiguration.getLibraries() )
{
- final Set<ComponentKey<?>> components = library.getManagementComponents( LoadOnFinish.class );
+ final Set<ComponentKey<?>> components =
+ library.getManagementComponents( LoadOnFinish.class );
if ( components != null && !components.isEmpty() )
{
- final MAEManagementView mgmtView = new EmbedderManagementView( container, embConfiguration );
+ final MAEManagementView mgmtView =
+ new EmbedderManagementView( container, embConfiguration );
for ( final ComponentKey<?> key : components )
{
try
{
- final LoadOnFinish lof = (LoadOnFinish) container.lookup( key.getRole(), key.getHint() );
+ final LoadOnFinish lof =
+ (LoadOnFinish) container.lookup( key.getRole(), key.getHint() );
lof.executionFinished( mgmtView );
}
catch ( final ComponentLookupException e )
@@ -399,11 +414,13 @@ public class MAEEmbedder
{
checkStopped();
- String localRepoProperty = request.getUserProperties().getProperty( MAEMain.LOCAL_REPO_PROPERTY );
+ String localRepoProperty =
+ request.getUserProperties().getProperty( MAEMain.LOCAL_REPO_PROPERTY );
if ( localRepoProperty == null )
{
- localRepoProperty = request.getSystemProperties().getProperty( MAEMain.LOCAL_REPO_PROPERTY );
+ localRepoProperty =
+ request.getSystemProperties().getProperty( MAEMain.LOCAL_REPO_PROPERTY );
}
if ( localRepoProperty != null )
@@ -435,8 +452,7 @@ public class MAEEmbedder
container.lookup( LoggerManager.class ).setThresholds( request.getLoggingLevel() );
}
catch ( ComponentLookupException e )
- {
- }
+ {}
// final Configurator log4jConfigurator = new Configurator()
// {
@@ -501,7 +517,8 @@ public class MAEEmbedder
{
throw new MAEEmbeddingException(
"Failed to build settings; {0}\nGlobal settings: {1}\nUser settings: {2}",
- e, e.getMessage(), request.getGlobalSettingsFile(),
+ e, e.getMessage(),
+ request.getGlobalSettingsFile(),
request.getUserSettingsFile() );
}
@@ -510,11 +527,13 @@ public class MAEEmbedder
try
{
- executionRequestPopulator.populateFromSettings( request.asMavenExecutionRequest(), settings );
+ executionRequestPopulator.populateFromSettings( request.asMavenExecutionRequest(),
+ settings );
}
catch ( final MavenExecutionRequestPopulationException e )
{
- throw new MAEEmbeddingException( "Failed to populate request from settings; {0}", e, e.getMessage() );
+ throw new MAEEmbeddingException( "Failed to populate request from settings; {0}", e,
+ e.getMessage() );
}
if ( !settingsResult.getProblems().isEmpty() && logger.isWarnEnabled() )
@@ -535,8 +554,8 @@ public class MAEEmbedder
* Print information about the {@link MAELibrary} instances loaded into this environment to the {@link PrintStream}
* parameter.
*/
- public static void showInfo( final MAEConfiguration config, final List<MAELibraryLoader> loaders,
- final PrintStream standardOut )
+ public static void showInfo( final MAEConfiguration config,
+ final List<MAELibraryLoader> loaders, final PrintStream standardOut )
throws IOException
{
if ( infoShown )
@@ -551,7 +570,8 @@ public class MAEEmbedder
final Collection<MAELibrary> libraries = loadLibraries( config, loaders );
for ( final MAELibrary ext : libraries )
{
- standardOut.println( "+" + ext.getLabel() + " (Log handle: '" + ext.getLogHandle() + "')" );
+ standardOut.println( "+" + ext.getLabel() + " (Log handle: '" + ext.getLogHandle()
+ + "')" );
}
standardOut.println();
@@ -565,7 +585,8 @@ public class MAEEmbedder
* Print the information about {@link MAELibrary} instances loaded, along with version information about this Maven
* environment in general, to the provided {@link PrintStream} parameter.
*/
- public static void showVersion( final MAEConfiguration config, final List<MAELibraryLoader> loaders,
+ public static void showVersion( final MAEConfiguration config,
+ final List<MAELibraryLoader> loaders,
final PrintStream standardOut )
throws IOException
{
@@ -615,7 +636,8 @@ public class MAEEmbedder
* Print error output from a Maven execution request, in the familiar format, to the {@link Logger} instance used by
* this embedder.
*/
- public int formatErrorOutput( final MAEExecutionRequest request, final MavenExecutionResult result )
+ public int formatErrorOutput( final MAEExecutionRequest request,
+ final MavenExecutionResult result )
{
if ( result.hasExceptions() )
{
@@ -660,7 +682,8 @@ public class MAEEmbedder
}
}
- if ( project != null && !project.equals( result.getTopologicallySortedProjects().get( 0 ) ) )
+ if ( project != null
+ && !project.equals( result.getTopologicallySortedProjects().get( 0 ) ) )
{
logger.error( "" );
logger.error( "After correcting the problems, you can resume the build with the command" );
@@ -684,7 +707,8 @@ public class MAEEmbedder
}
}
- protected void logSummary( final ExceptionSummary summary, final Map<String, String> references, String indent,
+ protected void logSummary( final ExceptionSummary summary,
+ final Map<String, String> references, String indent,
final boolean showErrors )
{
String referenceKey = "";
@@ -734,11 +758,11 @@ public class MAEEmbedder
implements MAEManagementView
{
- private final PlexusContainer container;
+ private final MAEContainer container;
private final MAEConfiguration configuration;
- EmbedderManagementView( final PlexusContainer container, final MAEConfiguration configuration )
+ EmbedderManagementView( final MAEContainer container, final MAEConfiguration configuration )
{
this.container = container;
this.configuration = configuration;
@@ -772,7 +796,8 @@ public class MAEEmbedder
{
throw new MAEManagementException(
"Failed to lookup component for managed component.\nRole: %s\nHint: %s\nReason: %s",
- e, role, PlexusConstants.PLEXUS_DEFAULT_HINT, e.getMessage() );
+ e, role, PlexusConstants.PLEXUS_DEFAULT_HINT,
+ e.getMessage() );
}
}
Modified: maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java?rev=1161723&r1=1161722&r2=1161723&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/main/java/org/apache/maven/mae/boot/embed/MAEEmbedderBuilder.java Thu Aug 25 20:03:54 2011
@@ -51,13 +51,12 @@ import org.apache.maven.mae.conf.loader.
import org.apache.maven.mae.internal.container.ComponentKey;
import org.apache.maven.mae.internal.container.ComponentSelector;
import org.apache.maven.mae.internal.container.InstanceRegistry;
+import org.apache.maven.mae.internal.container.MAEContainer;
import org.apache.maven.mae.internal.container.VirtualInstance;
import org.apache.maven.model.building.ModelProcessor;
import org.apache.maven.settings.building.SettingsBuilder;
import org.codehaus.plexus.ContainerConfiguration;
import org.codehaus.plexus.DefaultContainerConfiguration;
-import org.codehaus.plexus.DefaultPlexusContainer;
-import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
import org.codehaus.plexus.classworlds.ClassWorld;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -65,8 +64,6 @@ import org.codehaus.plexus.logging.Logge
import org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher;
import org.sonatype.plexus.components.sec.dispatcher.SecDispatcher;
-import com.google.inject.Module;
-
public class MAEEmbedderBuilder
{
@@ -108,7 +105,7 @@ public class MAEEmbedderBuilder
private ModelProcessor modelProcessor;
- private PlexusContainer container;
+ private MAEContainer container;
private MavenExecutionRequestPopulator executionRequestPopulator;
@@ -148,7 +145,8 @@ public class MAEEmbedderBuilder
private List<MAELibraryLoader> libraryLoaders;
- private final VirtualInstance<MAEEmbedder> embedderVirtual = new VirtualInstance<MAEEmbedder>( MAEEmbedder.class );
+ private final VirtualInstance<MAEEmbedder> embedderVirtual =
+ new VirtualInstance<MAEEmbedder>( MAEEmbedder.class );
public synchronized MAEEmbedderBuilder withSettingsBuilder( final SettingsBuilder settingsBuilder )
{
@@ -229,7 +227,8 @@ public class MAEEmbedderBuilder
return this;
}
- public synchronized MAEEmbedderBuilder withCoreClassLoader( final ClassLoader root, final Object... constituents )
+ public synchronized MAEEmbedderBuilder withCoreClassLoader( final ClassLoader root,
+ final Object... constituents )
throws MalformedURLException
{
if ( constituents != null && constituents.length > 0 )
@@ -269,8 +268,9 @@ public class MAEEmbedderBuilder
final URL resource = cloader.getResource( fname );
if ( resource == null )
{
- throw new IllegalStateException( "Class doesn't appear in its own classloader! ["
- + object.getClass().getName() + "]" );
+ throw new IllegalStateException(
+ "Class doesn't appear in its own classloader! ["
+ + object.getClass().getName() + "]" );
}
String path = resource.toExternalForm();
@@ -400,8 +400,8 @@ public class MAEEmbedderBuilder
}
catch ( final ComponentLookupException e )
{
- throw new MAEEmbeddingException( "Failed to lookup component: %s. Reason: %s", e, cls.getName(),
- e.getMessage() );
+ throw new MAEEmbeddingException( "Failed to lookup component: %s. Reason: %s", e,
+ cls.getName(), e.getMessage() );
}
}
@@ -414,12 +414,13 @@ public class MAEEmbedderBuilder
}
catch ( final ComponentLookupException e )
{
- throw new MAEEmbeddingException( "Failed to lookup component: {0} with hint: {1}. Reason: {2}", e,
- cls.getName(), hint, e.getMessage() );
+ throw new MAEEmbeddingException(
+ "Failed to lookup component: {0} with hint: {1}. Reason: {2}",
+ e, cls.getName(), hint, e.getMessage() );
}
}
- public synchronized MAEEmbedderBuilder withContainer( final PlexusContainer container )
+ public synchronized MAEEmbedderBuilder withContainer( final MAEContainer container )
{
this.container = container;
resetContainer();
@@ -463,7 +464,7 @@ public class MAEEmbedderBuilder
}
}
- public synchronized PlexusContainer container()
+ public synchronized MAEContainer container()
throws MAEEmbeddingException
{
// Need to switch to using: org.codehaus.plexus.MutablePlexusContainer.addPlexusInjector(List<PlexusBeanModule>,
@@ -475,16 +476,15 @@ public class MAEEmbedderBuilder
final InstanceRegistry reg = new InstanceRegistry( instanceRegistry() );
reg.addVirtual( new ComponentKey<MAEEmbedder>( MAEEmbedder.class ), embedderVirtual );
- Module[] mods = { new ComponentSelectionModule( selector() ), new InstanceModule( reg ) };
-
- DefaultPlexusContainer c;
+ MAEContainer c;
try
{
- c = new DefaultPlexusContainer( cc, mods );
+ c = new MAEContainer( cc, selector(), reg );
}
catch ( final PlexusContainerException e )
{
- throw new MAEEmbeddingException( "Failed to initialize component container: {0}", e, e.getMessage() );
+ throw new MAEEmbeddingException( "Failed to initialize component container: {0}",
+ e, e.getMessage() );
}
c.setLoggerManager( new MavenLoggerManager( logger ) );
@@ -519,7 +519,8 @@ public class MAEEmbedderBuilder
{
for ( final String logHandle : debugLogHandles )
{
- final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger( logHandle );
+ final org.apache.log4j.Logger logger =
+ org.apache.log4j.Logger.getLogger( logHandle );
logger.setLevel( Level.DEBUG );
}
@@ -546,7 +547,8 @@ public class MAEEmbedderBuilder
config.withLibraries( libraries );
if ( debugLogHandles != null
- && Arrays.binarySearch( debugLogHandles, MAEConfiguration.STANDARD_LOG_HANDLE_CORE ) > -1 )
+ && Arrays.binarySearch( debugLogHandles,
+ MAEConfiguration.STANDARD_LOG_HANDLE_CORE ) > -1 )
{
MAEEmbedder.showInfo( config, loaders, standardOut() );
}
@@ -630,7 +632,9 @@ public class MAEEmbedderBuilder
{
if ( libraryLoaders == null )
{
- libraryLoaders = new ArrayList<MAELibraryLoader>( Collections.singletonList( new ServiceLibraryLoader() ) );
+ libraryLoaders =
+ new ArrayList<MAELibraryLoader>(
+ Collections.singletonList( new ServiceLibraryLoader() ) );
}
return libraryLoaders;
@@ -796,8 +800,7 @@ public class MAEEmbedderBuilder
withStandardOut( newOut );
}
catch ( final FileNotFoundException e )
- {
- }
+ {}
}
logger();
@@ -807,9 +810,10 @@ public class MAEEmbedderBuilder
throws MAEEmbeddingException
{
final MAEEmbedder embedder =
- new MAEEmbedder( maven(), configuration(), container(), settingsBuilder(), executionRequestPopulator(),
- securityDispatcher(), serviceManager(), libraryLoaders(), standardOut(), logger(),
- shouldShowErrors(), showVersion() );
+ new MAEEmbedder( maven(), configuration(), container(), settingsBuilder(),
+ executionRequestPopulator(), securityDispatcher(), serviceManager(),
+ libraryLoaders(), standardOut(), logger(), shouldShowErrors(),
+ showVersion() );
embedderVirtual.setInstance( embedder );
Modified: maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/MAEApplicationTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/MAEApplicationTest.java?rev=1161723&r1=1161722&r2=1161723&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/MAEApplicationTest.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/MAEApplicationTest.java Thu Aug 25 20:03:54 2011
@@ -19,21 +19,28 @@
package org.apache.maven.mae.internal.container;
+import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
+import java.util.Map;
+
import org.apache.maven.mae.MAEException;
import org.apache.maven.mae.app.AbstractMAEApplication;
import org.apache.maven.mae.boot.embed.MAEEmbedderBuilder;
import org.apache.maven.mae.internal.container.fixture.ContainerOwner;
import org.apache.maven.mae.internal.container.fixture.DefaultSingletonOwner;
+import org.apache.maven.mae.internal.container.fixture.InitializedUsingRequirement;
+import org.apache.maven.mae.internal.container.fixture.MapOwner;
import org.apache.maven.mae.internal.container.fixture.NonSimplePart;
import org.apache.maven.mae.internal.container.fixture.Part;
import org.apache.maven.mae.internal.container.fixture.SimplePart;
import org.apache.maven.mae.internal.container.fixture.SingletonLiteralOwner;
import org.apache.maven.mae.internal.container.fixture.SingletonOwner;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.DefaultContainerConfiguration;
import org.junit.Test;
public class MAEApplicationTest
@@ -74,21 +81,23 @@ public class MAEApplicationTest
owner.container, notNullValue() );
}
- // @Test
- // public void mappedRequirementContainsNoLiteralIds()
- // throws Throwable
- // {
- // final ContainerConfiguration config = new DefaultContainerConfiguration().setClassPathScanning( "ON" );
- //
- // final MAEContainer container = new MAEContainer( config, new ComponentSelector(), new InstanceRegistry() );
- //
- // final MapOwner mapOwner = container.lookup( MapOwner.class );
- // final Map<String, Child> members = mapOwner.members();
- //
- // System.out.println( members );
- //
- // assertNull( members.get( "simple" + ComponentKey.LITERAL_SUFFIX ) );
- // }
+ @Test
+ public void mappedRequirementContainsNoLiteralIds()
+ throws Throwable
+ {
+ final ContainerConfiguration config =
+ new DefaultContainerConfiguration().setClassPathScanning( "ON" );
+
+ final MAEContainer container =
+ new MAEContainer( config, new ComponentSelector(), new InstanceRegistry() );
+
+ final MapOwner mapOwner = container.lookup( MapOwner.class );
+ final Map<String, Part> members = mapOwner.members();
+
+ assertThat( members.size(), equalTo( 2 ) );
+
+ assertThat( members.get( "simple" + ComponentKey.LITERAL_SUFFIX ), nullValue() );
+ }
@Test
public void singletonImpliedRequirementOnComponentWithImpliedHint()
@@ -123,7 +132,8 @@ public class MAEApplicationTest
throws Throwable
{
ContainerOwner owner = new ContainerOwner();
- new TestApplication().withInstance( owner ).withComponentSelection( new ComponentKey<Part>( Part.class,
+ new TestApplication().withInstance( owner ).withComponentSelection( new ComponentKey<Part>(
+ Part.class,
"simple" ),
"non-simple" ).load();
@@ -140,7 +150,8 @@ public class MAEApplicationTest
throws Throwable
{
ContainerOwner owner = new ContainerOwner();
- new TestApplication().withInstance( owner ).withComponentSelection( new ComponentKey<Part>( Part.class,
+ new TestApplication().withInstance( owner ).withComponentSelection( new ComponentKey<Part>(
+ Part.class,
"simple" ),
"non-simple" ).load();
@@ -152,17 +163,18 @@ public class MAEApplicationTest
assertThat( single.singletonLiteral(), instanceOf( SimplePart.class ) );
}
- //
- // @Test
- // public void initializableUsingRequirement()
- // throws Throwable
- // {
- // final ContainerConfiguration config = new DefaultContainerConfiguration().setClassPathScanning( "ON" );
- //
- // final MAEContainer container = new MAEContainer( config, new ComponentSelector(), new InstanceRegistry() );
- //
- // container.lookup( InitializedUsingRequirement.class );
- // }
+ @Test
+ public void initializableUsingRequirement()
+ throws Throwable
+ {
+ final ContainerConfiguration config =
+ new DefaultContainerConfiguration().setClassPathScanning( "ON" );
+
+ final MAEContainer container =
+ new MAEContainer( config, new ComponentSelector(), new InstanceRegistry() );
+
+ container.lookup( InitializedUsingRequirement.class );
+ }
private static final class TestApplication
extends AbstractMAEApplication
Modified: maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/fixture/MapOwner.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/fixture/MapOwner.java?rev=1161723&r1=1161722&r2=1161723&view=diff
==============================================================================
--- maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/fixture/MapOwner.java (original)
+++ maven/sandbox/trunk/mae/mae-booter/src/test/java/org/apache/maven/mae/internal/container/fixture/MapOwner.java Thu Aug 25 20:03:54 2011
@@ -19,19 +19,19 @@
package org.apache.maven.mae.internal.container.fixture;
+import java.util.Map;
+
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
-import java.util.Map;
-
@Component( role = MapOwner.class )
public class MapOwner
{
- @Requirement( role = SimplePart.class )
- private Map<String, SimplePart> members;
+ @Requirement( role = Part.class )
+ private Map<String, Part> members;
- public Map<String, SimplePart> members()
+ public Map<String, Part> members()
{
return members;
}
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/pom.xml?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/pom.xml (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/pom.xml Thu Aug 25 20:03:54 2011
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+ Copyright 2010 Red Hat, Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.maven.mae.components</groupId>
+ <artifactId>mae-components</artifactId>
+ <version>1.0-alpha-1-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>mae-dependency-grapher</artifactId>
+ <name>Maven App Engine: Dependency-Graphing Tools</name>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.mae</groupId>
+ <artifactId>mae-booter</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.aether</groupId>
+ <artifactId>aether-connector-wagon</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-aether-provider</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.mae.components</groupId>
+ <artifactId>mae-graph-support</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.mae.components</groupId>
+ <artifactId>mae-project-tools</artifactId>
+ <version>${maeVersion}</version>
+ </dependency>
+ </dependencies>
+</project>
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphException.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphException.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphException.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphException.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph;
+
+import org.apache.maven.mae.MAEException;
+
+public class DepGraphException
+ extends MAEException
+{
+
+ private static final long serialVersionUID = 1L;
+
+ public DepGraphException( final String message, final Object... params )
+ {
+ super( message, params );
+ }
+
+ public DepGraphException( final String message, final Throwable cause, final Object... params )
+ {
+ super( message, cause, params );
+ }
+
+ public DepGraphException( final String message, final Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public DepGraphException( final String message )
+ {
+ super( message );
+ }
+
+}
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphException.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphLoader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphLoader.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphLoader.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphLoader.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph;
+
+import java.io.File;
+
+import org.apache.maven.mae.MAEException;
+import org.apache.maven.mae.project.session.ProjectToolsSession;
+
+public interface DepGraphLoader
+{
+
+ DependencyGraph loadProjectDependencyGraph( final File rootPom,
+ final ProjectToolsSession session,
+ final boolean includeModuleProjects )
+ throws MAEException;
+
+ DependencyGraph resolveProjectDependencies( final File rootPom,
+ final ProjectToolsSession session,
+ final boolean includeModuleProjects )
+ throws MAEException;
+
+}
\ No newline at end of file
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphLoader.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphNode.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphNode.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphNode.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphNode.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,255 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.mae.depgraph.impl.ArtifactOnlyDependencyNode;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.graph.DependencyNode;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.resolution.ArtifactResult;
+
+public class DepGraphNode
+ implements Iterable<Throwable>
+{
+
+ private Artifact latestArtifact;
+
+ private ArtifactResult latestResult;
+
+ private final LinkedHashSet<RemoteRepository> remoteRepositories =
+ new LinkedHashSet<RemoteRepository>();
+
+ private String key;
+
+ private final boolean preResolved;
+
+ private final Set<Throwable> errors = new HashSet<Throwable>();
+
+ private DependencyNode latestDependencyNode;
+
+ public DepGraphNode( final DependencyNode node )
+ {
+ this( node, null, false );
+ }
+
+ protected DepGraphNode( final DependencyNode node, final String key, final boolean preResolved )
+ {
+ merge( node );
+
+ if ( key == null )
+ {
+ if ( latestArtifact != null )
+ {
+ this.key = key( latestArtifact );
+ }
+ else
+ {
+ throw new NullPointerException(
+ "Cannot calculate node key. DependencyNode parameter does not contain a valid artifact!" );
+ }
+ }
+ else
+ {
+ this.key = key;
+ }
+
+ this.preResolved = preResolved;
+ }
+
+ public DepGraphNode( final Artifact artifact, final boolean preResolved )
+ {
+ key = key( artifact );
+ latestArtifact = artifact;
+ this.preResolved = preResolved;
+ }
+
+ static String key( final Artifact a )
+ {
+ return ArtifactUtils.key( a.getGroupId(), a.getArtifactId(), a.getBaseVersion() );
+ }
+
+ public boolean isPreResolved()
+ {
+ return preResolved;
+ }
+
+ public synchronized void merge( final DependencyNode node )
+ {
+ latestDependencyNode = node;
+
+ if ( node.getRepositories() != null )
+ {
+ remoteRepositories.addAll( node.getRepositories() );
+ }
+
+ if ( latestArtifact == null && node.getDependency() != null
+ && node.getDependency().getArtifact() != null )
+ {
+ latestArtifact = node.getDependency().getArtifact();
+ }
+ }
+
+ public synchronized void merge( final ArtifactResult result )
+ {
+ if ( result.getArtifact() != null && result.getArtifact().getFile() != null )
+ {
+ result.getExceptions().clear();
+ }
+
+ latestResult = result;
+ }
+
+ public DependencyNode getLatestDependencyNode()
+ {
+ return latestDependencyNode;
+ }
+
+ public ArtifactResult getLatestResult()
+ {
+ return latestResult;
+ }
+
+ public Artifact getLatestArtifact()
+ {
+ return latestArtifact;
+ }
+
+ public LinkedHashSet<RemoteRepository> getRemoteRepositories()
+ {
+ return remoteRepositories;
+ }
+
+ public String getKey()
+ {
+ return key;
+ }
+
+ public synchronized boolean hasErrors()
+ {
+ return !errors.isEmpty();
+ }
+
+ private String renderErrors()
+ {
+ final StringBuilder sb = new StringBuilder();
+
+ sb.append( "Failed to resolve: " ).append( getKey() );
+ sb.append( "\n\n" ).append( errors.size() ).append( " Resolution errors:\n" );
+
+ for ( final Throwable error : errors )
+ {
+ final StringWriter sWriter = new StringWriter();
+ error.printStackTrace( new PrintWriter( sWriter ) );
+
+ sb.append( "\n\n" ).append( sWriter.toString() );
+ }
+
+ return sb.toString();
+ }
+
+ @Override
+ public Iterator<Throwable> iterator()
+ {
+ return getErrors().iterator();
+ }
+
+ public List<Throwable> getErrors()
+ {
+ return new ArrayList<Throwable>( errors );
+ }
+
+ public void logErrors( final PrintWriter writer )
+ {
+ writer.println( renderErrors() );
+ }
+
+ @Override
+ public String toString()
+ {
+ final StringBuilder builder = new StringBuilder();
+ builder.append( "DependencyTrackingState (\n latestArtifact=" );
+ builder.append( latestArtifact );
+ builder.append( "\n latestResult=" );
+ builder.append( latestResult );
+ builder.append( "\n projectId=" );
+ builder.append( key );
+ builder.append( "\n)" );
+ return builder.toString();
+ }
+
+ public void removeLatestResult()
+ {
+ latestResult = null;
+ }
+
+ public void merge( final Artifact child )
+ {
+ merge( new ArtifactOnlyDependencyNode( child ) );
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ( ( key == null ) ? 0 : key.hashCode() );
+ return result;
+ }
+
+ @Override
+ public boolean equals( final Object obj )
+ {
+ if ( this == obj )
+ {
+ return true;
+ }
+ if ( obj == null )
+ {
+ return false;
+ }
+ if ( getClass() != obj.getClass() )
+ {
+ return false;
+ }
+ final DepGraphNode other = (DepGraphNode) obj;
+ if ( key == null )
+ {
+ if ( other.key != null )
+ {
+ return false;
+ }
+ }
+ else if ( !key.equals( other.key ) )
+ {
+ return false;
+ }
+ return true;
+ }
+}
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphNode.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphRootNode.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphRootNode.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphRootNode.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphRootNode.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph;
+
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.project.MavenProject;
+import org.sonatype.aether.graph.DependencyNode;
+
+public class DepGraphRootNode
+ extends DepGraphNode
+{
+
+ private final MavenProject project;
+
+ public DepGraphRootNode( final DependencyNode node, final MavenProject project )
+ {
+ super( node, ArtifactUtils.key( project.getGroupId(), project.getArtifactId(),
+ project.getVersion() ), true );
+ this.project = project;
+ }
+
+ public MavenProject getProject()
+ {
+ return project;
+ }
+
+}
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DepGraphRootNode.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DependencyGraph.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DependencyGraph.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DependencyGraph.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DependencyGraph.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,217 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.maven.mae.graph.DirectedGraph;
+import org.apache.maven.mae.graph.DirectionalEdge;
+import org.apache.maven.mae.graph.SimpleDirectedGraph;
+import org.apache.maven.project.MavenProject;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.graph.DependencyNode;
+import org.sonatype.aether.resolution.ArtifactResult;
+
+public class DependencyGraph
+ implements Iterable<DepGraphNode>
+{
+
+ private final Set<DepGraphRootNode> roots = new LinkedHashSet<DepGraphRootNode>();
+
+ private final DepGraph graph = new DepGraph();
+
+ public DepGraphRootNode addRoot( final DependencyNode root )
+ {
+ return addRoot( root, null );
+ }
+
+ public DepGraphRootNode addRoot( final DependencyNode root, final MavenProject project )
+ {
+ final DepGraphRootNode newRoot = new DepGraphRootNode( root, project );
+ final DepGraphRootNode rootNode = (DepGraphRootNode) findOrAdd( newRoot );
+
+ if ( rootNode != newRoot )
+ {
+ rootNode.merge( root );
+ }
+
+ roots.add( rootNode );
+
+ return rootNode;
+ }
+
+ public DepGraphNode addNodeResult( final Artifact artifact, final ArtifactResult result )
+ {
+ final DepGraphNode node = findOrAdd( new DepGraphNode( artifact, false ) );
+ node.merge( result );
+
+ return node;
+ }
+
+ private DepGraphNode findOrAdd( final DepGraphNode node )
+ {
+ DepGraphNode result = find( node );
+
+ if ( result == null )
+ {
+ graph.addVertex( node );
+ result = node;
+ }
+
+ return result;
+ }
+
+ private DepGraphNode find( final DepGraphNode node )
+ {
+ final List<DepGraphNode> nodes = new ArrayList<DepGraphNode>( graph.vertices() );
+ final int idx = nodes.indexOf( node );
+ if ( idx > -1 )
+ {
+ return nodes.get( idx );
+ }
+
+ return null;
+ }
+
+ public DepGraphNode[] addDependency( final DepGraphNode parentNode, final DependencyNode child )
+ {
+ final DepGraphNode newChildNode = new DepGraphNode( child );
+ final DepGraphNode childNode = findOrAdd( newChildNode );
+
+ // if we're reusing an existing node, merge the new info from the child.
+ if ( childNode != newChildNode )
+ {
+ childNode.merge( child );
+ }
+
+ if ( parentNode != null )
+ {
+ graph.connect( parentNode, childNode );
+ }
+
+ return new DepGraphNode[] { parentNode, childNode };
+ }
+
+ /**
+ * Add a dependency edge between the nodes representing the two given {@link DependencyNode} instances.
+ *
+ * @param parent The parent, which has the dependency on the child.
+ * @param child The child, which is depended upon by the parent.
+ * @return An array of graph nodes, with the parent node in index 0, and the child node in index 1. <br/>
+ * <b>NOTE:</b> If the parent parameter is null, the node at index 0 will be null as well.
+ */
+ public DepGraphNode[] addDependency( final DependencyNode parent, final DependencyNode child )
+ {
+ DepGraphNode parentNode = null;
+ if ( parent != null )
+ {
+ parentNode = findOrAdd( new DepGraphNode( parent ) );
+ }
+
+ return addDependency( parentNode, child );
+ }
+
+ public DepGraphNode[] addDependency( final Artifact parent, final Artifact child,
+ final boolean parentPreResolved,
+ final boolean childPreResolved )
+ {
+ final DepGraphNode from = findOrAdd( new DepGraphNode( parent, parentPreResolved ) );
+
+ final DepGraphNode newTo = new DepGraphNode( child, childPreResolved );
+ final DepGraphNode to = findOrAdd( newTo );
+
+ // if we're reusing an existing node, merge the new info from the child.
+ if ( to != newTo )
+ {
+ to.merge( child );
+ }
+
+ graph.connect( from, to );
+
+ return new DepGraphNode[] { from, to };
+ }
+
+ public Set<DepGraphRootNode> getRoots()
+ {
+ return new LinkedHashSet<DepGraphRootNode>( roots );
+ }
+
+ @Override
+ public Iterator<DepGraphNode> iterator()
+ {
+ return new LinkedHashSet<DepGraphNode>( graph.vertices() ).iterator();
+ }
+
+ public int size()
+ {
+ return graph.vertices().size();
+ }
+
+ public DirectedGraph<DepGraphNode, DirectionalEdge<DepGraphNode>> getGraph()
+ {
+ return graph;
+ }
+
+ public boolean contains( final DependencyNode dep )
+ {
+ return find( new DepGraphNode( dep ) ) != null;
+ }
+
+ private static final class DepGraph
+ extends SimpleDirectedGraph<DepGraphNode>
+ {
+
+ public void addVertex( final DepGraphNode node )
+ {
+ getNakedGraph().addVertex( node );
+ }
+
+ public Collection<? extends DepGraphNode> vertices()
+ {
+ return getNakedGraph().getVertices();
+ }
+
+ }
+
+ public static DependencyGraph constructFromRoot( final DependencyNode rootNode,
+ final MavenProject rootProject )
+ {
+ final DependencyGraph graph = new DependencyGraph();
+ graph.addRoot( rootNode, rootProject );
+ constructChildren( graph, rootNode );
+
+ return graph;
+ }
+
+ private static void constructChildren( final DependencyGraph graph, final DependencyNode node )
+ {
+ for ( final DependencyNode child : node.getChildren() )
+ {
+ graph.addDependency( node, child );
+ constructChildren( graph, child );
+ }
+ }
+
+}
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/DependencyGraph.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/ArtifactOnlyDependencyNode.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/ArtifactOnlyDependencyNode.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/ArtifactOnlyDependencyNode.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/ArtifactOnlyDependencyNode.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph.impl;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.graph.Dependency;
+import org.sonatype.aether.graph.DependencyNode;
+import org.sonatype.aether.graph.DependencyVisitor;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.version.Version;
+import org.sonatype.aether.version.VersionConstraint;
+
+public final class ArtifactOnlyDependencyNode
+ implements DependencyNode
+{
+
+ private final Dependency dep;
+
+ private String preVersion;
+
+ private String preScope;
+
+ private final Map<Object, Object> data = new LinkedHashMap<Object, Object>();
+
+ private String requestContext = "project";
+
+ public ArtifactOnlyDependencyNode( final Artifact artifact )
+ {
+ dep = new Dependency( artifact, null );
+ }
+
+ @Override
+ public List<DependencyNode> getChildren()
+ {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public Dependency getDependency()
+ {
+ return dep;
+ }
+
+ @Override
+ public synchronized void setArtifact( final Artifact artifact )
+ {
+ if ( artifact == null )
+ {
+ return;
+ }
+ else if ( preVersion == null )
+ {
+ preVersion = dep.getArtifact().getVersion();
+ }
+
+ dep.setArtifact( artifact );
+ }
+
+ @Override
+ public List<Artifact> getRelocations()
+ {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public Collection<Artifact> getAliases()
+ {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public VersionConstraint getVersionConstraint()
+ {
+ return null;
+ }
+
+ @Override
+ public Version getVersion()
+ {
+ return null;
+ }
+
+ @Override
+ public synchronized void setScope( final String scope )
+ {
+ if ( scope == null )
+ {
+ return;
+ }
+
+ if ( preScope == null )
+ {
+ preScope = dep.getScope();
+ }
+
+ dep.setScope( scope );
+ }
+
+ @Override
+ public synchronized String getPremanagedVersion()
+ {
+ return preVersion == null ? dep.getArtifact().getVersion() : preVersion;
+ }
+
+ @Override
+ public synchronized String getPremanagedScope()
+ {
+ return preScope == null ? dep.getScope() : preScope;
+ }
+
+ @Override
+ public List<RemoteRepository> getRepositories()
+ {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public String getRequestContext()
+ {
+ return requestContext;
+ }
+
+ @Override
+ public void setRequestContext( final String requestContext )
+ {
+ this.requestContext = requestContext;
+ }
+
+ @Override
+ public Map<Object, Object> getData()
+ {
+ return data;
+ }
+
+ @Override
+ public void setData( final Object key, final Object value )
+ {
+ data.put( key, value );
+ }
+
+ @Override
+ public boolean accept( final DependencyVisitor visitor )
+ {
+ return false;
+ }
+
+}
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/ArtifactOnlyDependencyNode.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DefaultDepGraphLoader.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DefaultDepGraphLoader.java?rev=1161723&view=auto
==============================================================================
--- maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DefaultDepGraphLoader.java (added)
+++ maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DefaultDepGraphLoader.java Thu Aug 25 20:03:54 2011
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.maven.mae.depgraph.impl;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.maven.mae.MAEException;
+import org.apache.maven.mae.depgraph.DepGraphLoader;
+import org.apache.maven.mae.depgraph.DependencyGraph;
+import org.apache.maven.mae.project.ProjectLoader;
+import org.apache.maven.mae.project.session.ProjectToolsSession;
+import org.apache.maven.mae.project.session.SessionInitializer;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.sonatype.aether.RepositorySystemSession;
+
+@Component( role = DepGraphLoader.class )
+public class DefaultDepGraphLoader
+ implements DepGraphLoader
+{
+
+ @SuppressWarnings( "unused" )
+ private static final Logger LOGGER = Logger.getLogger( DefaultDepGraphLoader.class );
+
+ @Requirement
+ private DependencyGraphResolver dependencyGraphResolver;
+
+ @Requirement
+ private SessionInitializer sessionInitializer;
+
+ @Requirement
+ private ProjectLoader projectLoader;
+
+ @Override
+ public DependencyGraph loadProjectDependencyGraph( final File rootPom,
+ final ProjectToolsSession session,
+ final boolean includeModuleProjects )
+ throws MAEException
+ {
+ sessionInitializer.initializeSessionComponents( session );
+
+ List<MavenProject> projects;
+ if ( includeModuleProjects )
+ {
+ projects =
+ projectLoader.buildReactorProjectInstances( session, includeModuleProjects, rootPom );
+ }
+ else
+ {
+ projects =
+ Collections.singletonList( projectLoader.buildProjectInstance( rootPom, session ) );
+ }
+
+ final DependencyGraph depGraph =
+ dependencyGraphResolver.accumulateGraph( projects,
+ session.getRepositorySystemSession(), session );
+ session.setState( depGraph );
+
+ return depGraph;
+ }
+
+ @Override
+ public DependencyGraph resolveProjectDependencies( final File rootPom,
+ final ProjectToolsSession session,
+ final boolean includeModuleProjects )
+ throws MAEException
+ {
+ sessionInitializer.initializeSessionComponents( session );
+
+ List<MavenProject> projects;
+ if ( includeModuleProjects )
+ {
+ projects =
+ projectLoader.buildReactorProjectInstances( session, includeModuleProjects, rootPom );
+ }
+ else
+ {
+ projects =
+ Collections.singletonList( projectLoader.buildProjectInstance( rootPom, session ) );
+ }
+
+ final RepositorySystemSession rss = session.getRepositorySystemSession();
+ final DependencyGraph depGraph =
+ dependencyGraphResolver.accumulateGraph( projects, rss, session );
+ dependencyGraphResolver.resolveGraph( depGraph, projects, rss, session );
+
+ session.setState( depGraph );
+
+ return depGraph;
+ }
+
+}
Propchange: maven/sandbox/trunk/mae/mae-components/mae-dependency-grapher/src/main/java/org/apache/maven/mae/depgraph/impl/DefaultDepGraphLoader.java
------------------------------------------------------------------------------
svn:eol-style = native