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 2007/02/28 19:33:26 UTC
svn commit: r512896 - in /maven/components/trunk/maven-embedder/src:
main/java/org/apache/maven/embedder/MavenEmbedder.java site/apt/index.apt
test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java
Author: jvanzyl
Date: Wed Feb 28 10:33:25 2007
New Revision: 512896
URL: http://svn.apache.org/viewvc?view=rev&rev=512896
Log:
MNG-2778 Code and documentation for accessing the plexus container.
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
maven/components/trunk/maven-embedder/src/site/apt/index.apt
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java
Modified: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java?view=diff&rev=512896&r1=512895&r2=512896
==============================================================================
--- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java (original)
+++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java Wed Feb 28 10:33:25 2007
@@ -65,6 +65,7 @@
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.MutablePlexusContainer;
import org.codehaus.plexus.PlexusContainerException;
+import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.classworlds.realm.DuplicateRealmException;
@@ -618,8 +619,6 @@
{
settings = settingsBuilder.buildSettings( configuration.getUserSettingsFile(),
configuration.getGlobalSettingsFile() );
-
- System.out.println( "settings.getLocalRepository() = " + settings.getLocalRepository() );
}
catch ( Exception e )
{
@@ -904,5 +903,15 @@
{
loggerManager.setThresholds( oldThreshold );
}
+ }
+
+ /**
+ * Return the instance of the plexus container being used in the embedder.
+ *
+ * @return The plexus container used in the embedder.
+ */
+ public PlexusContainer getPlexusContainer()
+ {
+ return container;
}
}
Modified: maven/components/trunk/maven-embedder/src/site/apt/index.apt
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/site/apt/index.apt?view=diff&rev=512896&r1=512895&r2=512896
==============================================================================
--- maven/components/trunk/maven-embedder/src/site/apt/index.apt (original)
+++ maven/components/trunk/maven-embedder/src/site/apt/index.apt Wed Feb 28 10:33:25 2007
@@ -41,5 +41,12 @@
Also note that the user and global settings are merged, and the user settings are dominant.
-
+Accessing the Underlying Plexus Container
+
+ Though it is not recommended for general use, it is possible to get at the underlying Plexus Container instance if you
+ wish to lookup custom components. The Maven Embedder was specifically designed to be used for Maven and not a general
+ purpose use of Plexus. So if you use this method then you use it at your peril. You can access the Plexus Container
+ using the following:
+
+%{snippet|id=plexus-container|url=http://svn.apache.org/repos/asf/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java}
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java?view=diff&rev=512896&r1=512895&r2=512896
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderExampleTest.java Wed Feb 28 10:33:25 2007
@@ -5,6 +5,7 @@
import org.apache.maven.execution.MavenExecutionResult;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.PlexusContainer;
import java.io.File;
import java.util.Arrays;
@@ -97,4 +98,31 @@
}
// END SNIPPET: mimic-cli
}
+
+ public void testEmbedderExampleThatShowsAccessingThePlexusContainer()
+ throws Exception
+ {
+
+ // START SNIPPET: plexus-container
+ Configuration configuration = new DefaultConfiguration()
+ .setUserSettingsFile( MavenEmbedder.DEFAULT_USER_SETTINGS_FILE )
+ .setGlobalSettingsFile( MavenEmbedder.DEFAULT_GLOBAL_SETTINGS_FILE )
+ .setClassLoader( Thread.currentThread().getContextClassLoader() );
+
+ ConfigurationValidationResult validationResult = MavenEmbedder.validateConfiguration( configuration );
+
+ if ( validationResult.isValid() )
+ {
+ // If the configuration is valid then do your thang ...
+ }
+
+ MavenEmbedder embedder = new MavenEmbedder( configuration );
+
+ PlexusContainer container = embedder.getPlexusContainer();
+
+ // Do what you like with the container ...
+
+ // END SNIPPET: plexus-container
+ }
+
}