You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2009/05/07 17:20:33 UTC
svn commit: r772675 -
/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Author: jvanzyl
Date: Thu May 7 15:20:32 2009
New Revision: 772675
URL: http://svn.apache.org/viewvc?rev=772675&view=rev
Log:
o restore the functionality that m2eclipse needs to read projects with dependencies
Modified:
maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Modified: maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=772675&r1=772674&r2=772675&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/branches/MNG-2766/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Thu May 7 15:20:32 2009
@@ -71,6 +71,7 @@
*
* @author Jason van Zyl
*/
+//TODO: just turn this into a component
public class MavenEmbedder
{
public static final String userHome = System.getProperty( "user.home" );
@@ -303,6 +304,13 @@
* can be populated. For example, a list of libraries that are used by an Eclipse, Netbeans, or
* IntelliJ project.
*/
+
+ // currently in m2eclipse each project is read read a single project for dependencies
+ // Project
+ // Exceptions
+ // explicit for exceptions where coordinate are involved.
+ // m2eclipse is not using the topological sorting at all because it keeps track itself.
+
public MavenExecutionResult readProjectWithDependencies( MavenExecutionRequest request )
{
MavenExecutionResult result = new DefaultMavenExecutionResult();
@@ -310,70 +318,26 @@
try
{
request = populator.populateDefaults( request, configuration );
-
- readProject( request.getPom(), request );
}
catch ( MavenEmbedderException e )
{
return result.addException( e );
}
- catch ( ProjectBuildingException e )
- {
- return result.addException( e );
- }
- catch ( MissingModuleException e )
- {
- return result.addException( e );
- }
-
- //TODO: need to check for circularity problems here even though this is purely downloading and for IDEs they will take care of circularity problems.
-
- /*
- ReactorManager reactorManager = maven.createReactorManager( request, result );
- if ( result.hasExceptions() )
+ try
{
- return result;
- }
- */
+ MavenProjectBuildingResult projectBuildingResult = mavenProjectBuilder.buildProjectWithDependencies( request.getPom(), request.getProjectBuildingConfiguration() );
+
+ result.setProject( projectBuildingResult.getProject() );
- MavenProjectBuildingResult projectBuildingResult;
+ result.setArtifactResolutionResult( projectBuildingResult.getArtifactResolutionResult() );
- try
- {
- projectBuildingResult = mavenProjectBuilder.buildProjectWithDependencies( request.getPom(), request.getProjectBuildingConfiguration() );
+ return result;
}
catch ( ProjectBuildingException e )
{
return result.addException( e );
}
-
- /*
- if ( reactorManager.hasMultipleProjects() )
- {
- result.setProject( projectBuildingResult.getProject() );
-
- result.setTopologicallySortedProjects( reactorManager.getSortedProjects() );
- }
- else
- {
- result.setProject( projectBuildingResult.getProject() );
-
- result.setTopologicallySortedProjects( Arrays.asList( new MavenProject[]{ projectBuildingResult.getProject()} ) );
- }
- */
-
- result.setArtifactResolutionResult( projectBuildingResult.getArtifactResolutionResult() );
-
- // From this I could produce something that would help IDE integrators create importers:
- // - topo sorted list of projects
- // - binary dependencies
- // - source dependencies (projects in the reactor)
- //
- // We could create a layer approach here. As to do anything you must resolve a projects artifacts,
- // and with that set you could then subsequently execute goals for each of those project.
-
- return result;
}
// ----------------------------------------------------------------------