Author: jvanzyl
Date: Sat Sep 24 19:00:04 2005
New Revision: 291359
URL: http://svn.apache.org/viewcvs?rev=291359&view=rev
Log:
o very rough start at the embedding api
Added:
maven/components/trunk/maven-embedder/
maven/components/trunk/maven-embedder/notes.txt
maven/components/trunk/maven-embedder/pom.xml
maven/components/trunk/maven-embedder/src/
maven/components/trunk/maven-embedder/src/main/
maven/components/trunk/maven-embedder/src/main/java/
maven/components/trunk/maven-embedder/src/main/java/org/
maven/components/trunk/maven-embedder/src/main/java/org/apache/
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderException.java
maven/components/trunk/maven-embedder/src/main/resources/
maven/components/trunk/maven-embedder/src/main/resources/META-INF/
maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/
maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml
maven/components/trunk/maven-embedder/src/test/
maven/components/trunk/maven-embedder/src/test/java/
maven/components/trunk/maven-embedder/src/test/java/org/
maven/components/trunk/maven-embedder/src/test/java/org/apache/
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
maven/components/trunk/maven-embedder/src/test/resources/
maven/components/trunk/maven-embedder/src/test/resources/pom.xml
Added: maven/components/trunk/maven-embedder/notes.txt
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/notes.txt?rev=291359&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/notes.txt (added)
+++ maven/components/trunk/maven-embedder/notes.txt Sat Sep 24 19:00:04 2005
@@ -0,0 +1,4 @@
+<eu> -- parse xml to in-memory model
+<eu> -- run m2 (embedded): including running for downloading dependencies,
building, archetypes, etc.
+<eu> -- introspect available goals
+<eu> -- introspect available plugins (low priority)
Added: maven/components/trunk/maven-embedder/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/pom.xml?rev=291359&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/pom.xml (added)
+++ maven/components/trunk/maven-embedder/pom.xml Sat Sep 24 19:00:04 2005
@@ -0,0 +1,154 @@
+<project>
+ <parent>
+ <artifactId>maven</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-embedder</artifactId>
+ <name>Maven Embedder</name>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>RELEASE</version>
+ <configuration>
+ <descriptor>src/assemble/bin.xml</descriptor>
+ <finalName>maven-2.0-beta-1</finalName>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-settings</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <version>1.0-alpha-4</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <version>1.0-alpha-4</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.reporting</groupId>
+ <artifactId>maven-reporting-api</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-profile</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ <version>1.0-alpha-4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-registry</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-input-handler</artifactId>
+ <version>1.0-alpha-2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-descriptor</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-monitor</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh</artifactId>
+ <version>1.0-alpha-4</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>jsch</groupId>
+ <artifactId>jsch</artifactId>
+ <version>0.1.21</version>
+ </dependency>
+ </dependencies>
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-clover-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </reporting>
+ <distributionManagement>
+ <site>
+ <id>website</id>
+ <url>scp://minotaur.apache.org//www/maven.apache.org/m2</url>
+ </site>
+ </distributionManagement>
+</project>
Added:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?rev=291359&view=auto
==============================================================================
---
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
(added)
+++
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
Sat Sep 24 19:00:04 2005
@@ -0,0 +1,339 @@
+package org.apache.maven.embedder;
+
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * 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.
+ */
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.settings.MavenSettingsBuilder;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.RuntimeInfo;
+import org.codehaus.classworlds.ClassWorld;
+import org.codehaus.classworlds.DuplicateRealmException;
+import org.codehaus.plexus.PlexusContainerException;
+import
org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
+import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.embed.Embedder;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+
+/**
+ * Class intended to be used by clients who wish to embed Maven into their
applications
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
+ */
+public class MavenEmbedder
+{
+ // ----------------------------------------------------------------------
+ // Embedder
+ // ----------------------------------------------------------------------
+
+ private Embedder embedder;
+
+ // ----------------------------------------------------------------------
+ // Components
+ // ----------------------------------------------------------------------
+
+ private MavenProjectBuilder mavenProjectBuilder;
+
+ private ArtifactRepositoryFactory artifactRepositoryFactory;
+
+ private MavenSettingsBuilder settingsBuilder;
+
+ private MavenXpp3Reader modelReader;
+
+ private ProfileManager profileManager;
+
+ // ----------------------------------------------------------------------
+ // Configuration
+ // ----------------------------------------------------------------------
+
+ private Settings settings;
+
+ private ArtifactRepository localRepository;
+
+ private File localRepositoryDirectory;
+
+ private ClassLoader classLoader;
+
+ // ----------------------------------------------------------------------
+ // User options
+ // ----------------------------------------------------------------------
+
+ private boolean pluginUpdateOverride;
+
+ private boolean checkLatestPluginVersion;
+
+ private boolean interactiveMode;
+
+ private boolean usePluginRegistry;
+
+ private boolean offline;
+
+ private boolean updateSnapshots;
+
+ private String globalChecksumPolicy;
+
+ public void setPluginUpdateOverride( boolean pluginUpdateOverride )
+ {
+ this.pluginUpdateOverride = pluginUpdateOverride;
+ }
+
+ public void setCheckLatestPluginVersion( boolean checkLatestPluginVersion )
+ {
+ this.checkLatestPluginVersion = checkLatestPluginVersion;
+ }
+
+ public void setInteractiveMode( boolean interactiveMode )
+ {
+ this.interactiveMode = interactiveMode;
+ }
+
+ public void setUsePluginRegistry( boolean usePluginRegistry )
+ {
+ this.usePluginRegistry = usePluginRegistry;
+ }
+
+ public void setOffline( boolean offline )
+ {
+ this.offline = offline;
+ }
+
+ public void setUpdateSnapshots( boolean updateSnapshots )
+ {
+ this.updateSnapshots = updateSnapshots;
+ }
+
+ public void setGlobalChecksumPolicy( String globalChecksumPolicy )
+ {
+ this.globalChecksumPolicy = globalChecksumPolicy;
+ }
+
+ // ----------------------------------------------------------------------
+ // Accessors
+ // ----------------------------------------------------------------------
+
+ /**
+ * Set the classloader to use with the maven embedder.
+ *
+ * @param classLoader
+ */
+ public void setClassLoader( ClassLoader classLoader )
+ {
+ this.classLoader = classLoader;
+ }
+
+ public void setLocalRepositoryDirectory( File localRepositoryDirectory )
+ {
+ this.localRepositoryDirectory = localRepositoryDirectory;
+ }
+ // ----------------------------------------------------------------------
+ // Embedder Client Contract
+ // ----------------------------------------------------------------------
+
+ public Model readModel( File model )
+ throws XmlPullParserException, FileNotFoundException, IOException
+ {
+ return modelReader.read( new FileReader( model ) );
+ }
+
+ public MavenProject readProject( File mavenProject )
+ throws ProjectBuildingException
+ {
+ return mavenProjectBuilder.build( mavenProject, localRepository,
profileManager );
+ }
+
+ // ----------------------------------------------------------------------
+ // Internal utility code
+ // ----------------------------------------------------------------------
+
+ private ArtifactRepository createLocalRepository( Settings settings )
+ throws ComponentLookupException
+ {
+ ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout)
embedder.lookup( ArtifactRepositoryLayout.ROLE, "default" );
+
+ String url = settings.getLocalRepository();
+
+ if ( !url.startsWith( "file:" ) )
+ {
+ url = "file://" + url;
+ }
+
+ ArtifactRepository localRepository = new DefaultArtifactRepository(
"local", url, repositoryLayout );
+
+ boolean snapshotPolicySet = false;
+
+ if ( offline )
+ {
+ settings.setOffline( true );
+
+ snapshotPolicySet = true;
+ }
+
+ if ( !snapshotPolicySet && updateSnapshots )
+ {
+ artifactRepositoryFactory.setGlobalUpdatePolicy(
ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS );
+ }
+
+ artifactRepositoryFactory.setGlobalChecksumPolicy(
globalChecksumPolicy );
+
+ return localRepository;
+ }
+
+ private RuntimeInfo createRuntimeInfo( Settings settings )
+ {
+ RuntimeInfo runtimeInfo = new RuntimeInfo( settings );
+
+ if ( pluginUpdateOverride )
+ {
+ runtimeInfo.setPluginUpdateOverride( Boolean.TRUE );
+ }
+ else
+ {
+ runtimeInfo.setPluginUpdateOverride( Boolean.FALSE );
+ }
+
+ if ( checkLatestPluginVersion )
+ {
+ runtimeInfo.setCheckLatestPluginVersion( Boolean.TRUE );
+ }
+ else
+ {
+ runtimeInfo.setCheckLatestPluginVersion( Boolean.FALSE );
+ }
+
+ return runtimeInfo;
+ }
+
+ // ----------------------------------------------------------------------
+ // Lifecycle
+ // ----------------------------------------------------------------------
+
+ public void start()
+ throws MavenEmbedderException
+ {
+ if ( classLoader == null )
+ {
+ throw new IllegalStateException( "A classloader must be specified
using setClassLoader(ClassLoader)." );
+ }
+
+ embedder = new Embedder();
+
+ try
+ {
+ ClassWorld classWorld = new ClassWorld();
+
+ classWorld.newRealm( "plexus.core", classLoader );
+
+ embedder.start( classWorld );
+
+ //
----------------------------------------------------------------------
+ // Lookup each of the components we need to provide the desired
+ // client interface.
+ //
----------------------------------------------------------------------
+
+ modelReader = new MavenXpp3Reader();
+
+ profileManager = new DefaultProfileManager(
embedder.getContainer() );
+
+ mavenProjectBuilder = (MavenProjectBuilder) embedder.lookup(
MavenProjectBuilder.ROLE );
+
+ artifactRepositoryFactory = (ArtifactRepositoryFactory)
embedder.lookup( ArtifactRepositoryFactory.ROLE );
+
+ //
----------------------------------------------------------------------
+ // If an explicit local repository has not been set then we will
use the
+ // setting builder to use the maven defaults to help us find one.
+ //
----------------------------------------------------------------------
+
+ if ( localRepositoryDirectory == null )
+ {
+ settingsBuilder = (MavenSettingsBuilder) embedder.lookup(
MavenSettingsBuilder.ROLE );
+
+ try
+ {
+ settings = settingsBuilder.buildSettings();
+ }
+ catch ( IOException e )
+ {
+ throw new MavenEmbedderException( "Error creating
settings.", e );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new MavenEmbedderException( "Error creating
settings.", e );
+ }
+ }
+ else
+ {
+ settings = new Settings();
+
+ settings.setLocalRepository(
localRepositoryDirectory.getAbsolutePath() );
+ }
+
+ settings.setRuntimeInfo( createRuntimeInfo( settings ) );
+
+ settings.setOffline( offline );
+
+ settings.setUsePluginRegistry( usePluginRegistry );
+
+ settings.setInteractiveMode( interactiveMode );
+
+ localRepository = createLocalRepository( settings );
+ }
+ catch ( PlexusContainerException e )
+ {
+ throw new MavenEmbedderException( "Cannot start Plexus embedder.",
e );
+ }
+ catch ( DuplicateRealmException e )
+ {
+ throw new MavenEmbedderException( "Cannot create Classworld realm
for the embedder.", e );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new MavenEmbedderException( "Cannot lookup required
component.", e );
+ }
+ }
+
+ public void stop()
+ throws MavenEmbedderException
+ {
+ try
+ {
+ embedder.release( mavenProjectBuilder );
+
+ embedder.release( artifactRepositoryFactory );
+
+ embedder.release( settingsBuilder );
+ }
+ catch ( ComponentLifecycleException e )
+ {
+ throw new MavenEmbedderException( "Cannot stop the embedder.", e );
+ }
+ }
+}
Added:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderException.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderException.java?rev=291359&view=auto
==============================================================================
---
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderException.java
(added)
+++
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderException.java
Sat Sep 24 19:00:04 2005
@@ -0,0 +1,40 @@
+package org.apache.maven.embedder;
+
+/*
+* Copyright 2001-2005 The Apache Software Foundation.
+*
+* 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.
+*/
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
+ * @version $Id:$
+ */
+public class MavenEmbedderException
+ extends Exception
+{
+ public MavenEmbedderException( String message )
+ {
+ super( message );
+ }
+
+ public MavenEmbedderException( Throwable cause )
+ {
+ super( cause );
+ }
+
+ public MavenEmbedderException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+}
Added:
maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml?rev=291359&view=auto
==============================================================================
---
maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml
(added)
+++
maven/components/trunk/maven-embedder/src/main/resources/META-INF/plexus/components.xml
Sat Sep 24 19:00:04 2005
@@ -0,0 +1,376 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.apache.maven.plugin.PluginManager</role>
+
<implementation>org.apache.maven.plugin.DefaultPluginManager</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.project.path.PathTranslator</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.plugin.MavenPluginCollector</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.plugin.version.PluginVersionManager</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
+ </requirement>
+ <requirement>
+
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.plugin.PluginMappingManager</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.execution.RuntimeInformation</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.project.MavenProjectBuilder</role>
+ </requirement>
+ </requirements>
+ </component>
+
+ <component>
+ <role>org.apache.maven.extension.ExtensionManager</role>
+
<implementation>org.apache.maven.extension.DefaultExtensionManager</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.artifact.resolver.ArtifactResolver</role>
+ </requirement>
+ <requirement>
+
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
+ </requirement>
+ </requirements>
+ </component>
+
+ <component>
+ <role>org.apache.maven.plugin.PluginMappingManager</role>
+
<implementation>org.apache.maven.plugin.DefaultPluginMappingManager</implementation>
+ <requirements>
+ <requirement>
+
<role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role>
+ </requirement>
+ </requirements>
+ </component>
+
+ <!-- Duplicated from Maven core as it is used in the plugin manager -->
+ <component>
+ <role>org.apache.maven.project.path.PathTranslator</role>
+
<implementation>org.apache.maven.project.path.DefaultPathTranslator</implementation>
+ </component>
+ <!--
+ |
+ |
+ |
+ -->
+ <component>
+ <role>org.apache.maven.Maven</role>
+ <implementation>org.apache.maven.DefaultMaven</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.project.MavenProjectBuilder</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.lifecycle.LifecycleExecutor</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.usability.ErrorDiagnoser</role>
+ <field-name>errorDiagnosers</field-name>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.execution.RuntimeInformation</role>
+ </requirement>
+ </requirements>
+ </component>
+
+ <component>
+ <role>org.apache.maven.execution.RuntimeInformation</role>
+
<implementation>org.apache.maven.execution.DefaultRuntimeInformation</implementation>
+ </component>
+ <!--
+ |
+ |PluginConfigurationDiagnoser
+ |
+ -->
+ <component>
+ <role>org.apache.maven.usability.ErrorDiagnoser</role>
+ <role-hint>PluginConfigurationDiagnoser</role-hint>
+
<implementation>org.apache.maven.usability.PluginConfigurationDiagnoser</implementation>
+ </component>
+ <!--
+ |
+ |ArtifactResolverDiagnoser
+ |
+ -->
+ <component>
+ <role>org.apache.maven.usability.ErrorDiagnoser</role>
+ <role-hint>ArtifactResolverDiagnoser</role-hint>
+
<implementation>org.apache.maven.usability.ArtifactResolverDiagnoser</implementation>
+ </component>
+ <!--
+ |
+ |InvalidArtifactDiagnoser
+ |
+ -->
+ <component>
+ <role>org.apache.maven.usability.ErrorDiagnoser</role>
+ <role-hint>InvalidArtifactDiagnoser</role-hint>
+
<implementation>org.apache.maven.usability.InvalidArtifactDiagnoser</implementation>
+ </component>
+
+ <!--
+ |
+ | Lifecycle executor
+ |
+ -->
+ <component>
+ <role>org.apache.maven.lifecycle.LifecycleExecutor</role>
+
<implementation>org.apache.maven.lifecycle.DefaultLifecycleExecutor</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.plugin.PluginManager</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.extension.ExtensionManager</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.project.injection.ModelDefaultsInjector</role>
+ </requirement>
+ <requirement>
+
<role>org.apache.maven.artifact.handler.manager.ArtifactHandlerManager</role>
+ </requirement>
+ </requirements>
+ <configuration>
+ <!-- START SNIPPET: lifecyle -->
+ <phases>
+ <phase implementation="java.lang.String">validate</phase>
+ <phase implementation="java.lang.String">initialize</phase>
+ <phase implementation="java.lang.String">generate-sources</phase>
+ <phase implementation="java.lang.String">process-sources</phase>
+ <phase implementation="java.lang.String">generate-resources</phase>
+ <phase implementation="java.lang.String">process-resources</phase>
+ <phase implementation="java.lang.String">compile</phase>
+ <phase implementation="java.lang.String">process-classes</phase>
+ <phase
implementation="java.lang.String">generate-test-sources</phase>
+ <phase implementation="java.lang.String">process-test-sources</phase>
+ <phase
implementation="java.lang.String">generate-test-resources</phase>
+ <phase
implementation="java.lang.String">process-test-resources</phase>
+ <phase implementation="java.lang.String">test-compile</phase>
+ <phase implementation="java.lang.String">test</phase>
+ <phase implementation="java.lang.String">package</phase>
+ <phase implementation="java.lang.String">integration-test</phase>
+ <phase implementation="java.lang.String">verify</phase>
+ <phase implementation="java.lang.String">install</phase>
+ <phase implementation="java.lang.String">deploy</phase>
+ </phases>
+ <!-- END SNIPPET: lifecycle -->
+ <!-- START SNIPPET: default-reports -->
+ <defaultReports>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-project-info-reports-plugin</report>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-checkstyle-plugin</report>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-javadoc-plugin</report>
+ <!-- TODO: currently in mojo - should they be defaults any more?
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-changelog-plugin</report>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-surefire-report-plugin</report>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-jdepend-plugin</report>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-jxr-plugin</report>
+ <report
implementation="java.lang.String">org.apache.maven.plugins:maven-taglist-plugin</report>
+ -->
+ </defaultReports>
+ <!-- END SNIPPET: default-reports -->
+ <!-- START SNIPPET: default-lifecycle -->
+ <!-- NOT USED, ACCORDING TO CODE.
+ <defaultPhases>
+
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
+
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+ <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+ <package>
+ org.apache.maven.plugins:maven-jar-plugin:jar,
+ org.apache.maven.plugins:maven-source-plugin:jar
+ </package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </defaultPhases>
+ -->
+ <!-- END SNIPPET: default-lifecycle -->
+ </configuration>
+ </component>
+
+ <!-- TODO: issues with the lifecycle:
+ - manually configured lifecycles will not pick up any later additions to
the defaults where they are intended to extend defaults (have configuration
<includeDefaults/> ?)
+ -->
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>pom</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: pom-lifecycle -->
+ <phases>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: pom-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>jar</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: jar-lifecycle -->
+ <phases>
+
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
+
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+ <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+ <package>
+ org.apache.maven.plugins:maven-jar-plugin:jar
+ </package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: jar-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>maven-plugin</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: maven-plugin-lifecycle -->
+ <phases>
+
<generate-resources>org.apache.maven.plugins:maven-plugin-plugin:descriptor</generate-resources>
+
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
+
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+ <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+ <package>
+ org.apache.maven.plugins:maven-jar-plugin:jar,
+
org.apache.maven.plugins:maven-plugin-plugin:addPluginArtifactMetadata
+ </package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: maven-plugin-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>ejb</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: ejb-lifecycle -->
+ <phases>
+
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
+
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+ <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+ <package>
+ org.apache.maven.plugins:maven-ejb-plugin:ejb
+ </package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: ejb-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>war</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: war-lifecycle -->
+ <phases>
+
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
+
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+ <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+ <package>org.apache.maven.plugins:maven-war-plugin:war</package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: war-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>ear</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: ear-lifecycle -->
+ <phases>
+
<generate-resources>org.apache.maven.plugins:maven-ear-plugin:generate-application-xml</generate-resources>
+ <package>org.apache.maven.plugins:maven-ear-plugin:ear</package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: ear-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
+ <role-hint>rar</role-hint>
+
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
+ <configuration>
+ <!-- START SNIPPET: rar-lifecycle -->
+ <phases>
+
<process-resources>org.apache.maven.plugins:maven-resources-plugin:resources</process-resources>
+
<compile>org.apache.maven.plugins:maven-compiler-plugin:compile</compile>
+
<process-test-resources>org.apache.maven.plugins:maven-resources-plugin:testResources</process-test-resources>
+
<test-compile>org.apache.maven.plugins:maven-compiler-plugin:testCompile</test-compile>
+ <test>org.apache.maven.plugins:maven-surefire-plugin:test</test>
+ <package>
+ org.apache.maven.plugins:maven-jar-plugin:jar,
+ org.apache.maven.plugins:maven-rar-plugin:rar
+ </package>
+
<install>org.apache.maven.plugins:maven-install-plugin:install</install>
+ <deploy>org.apache.maven.plugins:maven-deploy-plugin:deploy</deploy>
+ </phases>
+ <!-- END SNIPPET: rar-lifecycle -->
+ </configuration>
+ </component>
+
+ <component>
+ <role>org.apache.maven.plugin.version.PluginVersionManager</role>
+ <role-hint>default</role-hint>
+
<implementation>org.apache.maven.plugin.version.DefaultPluginVersionManager</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ <requirements>
+ <requirement>
+
<role>org.apache.maven.artifact.metadata.ArtifactMetadataSource</role>
+ </requirement>
+ <requirement>
+
<role>org.apache.maven.plugin.registry.MavenPluginRegistryBuilder</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.artifact.factory.ArtifactFactory</role>
+ </requirement>
+ <requirement>
+ <role>org.codehaus.plexus.components.inputhandler.InputHandler</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.project.MavenProjectBuilder</role>
+ </requirement>
+ <requirement>
+ <role>org.apache.maven.execution.RuntimeInformation</role>
+ </requirement>
+ </requirements>
+ </component>
+ </components>
+</component-set>
Added:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=291359&view=auto
==============================================================================
---
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
(added)
+++
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
Sat Sep 24 19:00:04 2005
@@ -0,0 +1,70 @@
+package org.apache.maven.embedder;
+
+import junit.framework.TestCase;
+import org.apache.maven.model.Model;
+import org.apache.maven.project.MavenProject;
+
+import java.io.File;
+
+public class MavenEmbedderTest
+ extends TestCase
+{
+ private String basedir;
+
+ private MavenEmbedder maven;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ basedir = System.getProperty( "basedir" );
+ }
+
+ public void testMavenEmbedder()
+ throws Exception
+ {
+ ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
+
+ maven = new MavenEmbedder();
+
+ maven.setClassLoader( classLoader );
+
+ maven.start();
+
+ modelReadingTest();
+
+ projectReadingTest();
+
+ maven.stop();
+ }
+
+ protected void modelReadingTest()
+ throws Exception
+ {
+ //
----------------------------------------------------------------------
+ // Test model reading
+ //
----------------------------------------------------------------------
+
+ Model model = maven.readModel( getPomFile() );
+
+ assertEquals( "org.apache.maven", model.getGroupId() );
+ }
+
+ protected void projectReadingTest()
+ throws Exception
+ {
+ MavenProject project = maven.readProject( getPomFile() );
+
+ assertEquals( "org.apache.maven", project.getGroupId() );
+ }
+
+ // ----------------------------------------------------------------------
+ // Internal Utilities
+ // ----------------------------------------------------------------------
+
+ protected File getPomFile()
+ {
+ return new File( basedir, "src/test/resources/pom.xml" );
+ }
+}
Added: maven/components/trunk/maven-embedder/src/test/resources/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-embedder/src/test/resources/pom.xml?rev=291359&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/resources/pom.xml (added)
+++ maven/components/trunk/maven-embedder/src/test/resources/pom.xml Sat Sep 24
19:00:04 2005
@@ -0,0 +1,70 @@
+<project>
+ <parent>
+ <artifactId>maven</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <name>Maven Model</name>
+ <version>2.0-beta-2-SNAPSHOT</version>
+ <description>Maven Model</description>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>xpp3-writer</goal>
+ <goal>java</goal>
+ <goal>xpp3-reader</goal>
+ <goal>xsd</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <version>4.0.0</version>
+ <model>maven.mdo</model>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ </dependencies>
+ <profiles>
+ <profile>
+ <id>all-models</id>
+ <build>
+ <finalName>${pom.artifactId}-${pom.version}-all</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>v3</id>
+ <configuration>
+ <version>3.0.0</version>
+ <packageWithVersion>true</packageWithVersion>
+ </configuration>
+ <goals>
+ <goal>xpp3-writer</goal>
+ <goal>java</goal>
+ <goal>xpp3-reader</goal>
+ <goal>xsd</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]