o protecting against null properties in the PPEE

o fixing some composition declarations in embedder component descriptor
o adding notes on classloader mechanism



git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@293598 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2005-10-04 13:15:58 +00:00
parent 0872b06142
commit e9ab07e51c
5 changed files with 35 additions and 8 deletions

View File

@ -278,7 +278,7 @@ public class PluginParameterExpressionEvaluator
value = project.getProperties().getProperty( expression );
}
if ( value == null )
if ( value == null && properties != null )
{
// We will attempt to get nab a system property as a way to specify a
// parameter to a plugins. My particular case here is allowing the surefire

View File

@ -13,7 +13,7 @@
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>RELEASE</version>
<version>2.0-beta-1</version>
<configuration>
<descriptor>src/main/assembly/dep.xml</descriptor>
</configuration>
@ -21,6 +21,11 @@
</plugins>
</build>
<dependencies>
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus-utils</artifactId>
<version>1.0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-container-default</artifactId>
@ -97,10 +102,6 @@
<artifactId>maven-core</artifactId>
<version>2.0-beta-3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus-utils</artifactId>
</dependency>
<dependency>
<groupId>plexus</groupId>
<artifactId>plexus-input-handler</artifactId>

View File

@ -627,9 +627,11 @@
<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>

View File

@ -70,7 +70,7 @@ public class MavenEmbedderTest
File pomFile = new File( targetDirectory, "pom.xml" );
MavenProject pom = maven.readProjectWithDependencies( pomFile );
MavenProject pom = maven.readProjectWithDependencies( pomFile );
EventMonitor eventMonitor = new DefaultEventMonitor( new PlexusLoggerAdapter( new MavenEmbedderConsoleLogger() ) );
@ -78,7 +78,7 @@ public class MavenEmbedderTest
Collections.singletonList( "package" ),
eventMonitor,
new ConsoleDownloadMonitor(),
null,
new Properties(),
targetDirectory );
File jar = new File( targetDirectory, "target/embedder-test-project-1.0-SNAPSHOT.jar" );

View File

@ -0,0 +1,24 @@
To add a bit of detail for a volunteer to submit as documentation... :)
m2/core/boot is what is in the java classpath (ie, just classworlds,
which constructs classloaders for the rest of the system)
the top level classloader contains plexus container and plexus utils
(see m2/core), and also has access to classworlds
the next classloader has the libraries in m2/lib (a bug in beta 1
incorporated commons-logging and -lang, sorry about that!) In general
these are just maven libraries. We hope to further separate these in
future to just be maven apis.
after that, each plugin has its own classloader, including its
dependencies, itself, and the libraries above. It *does not* contain
the project dependencies like in m1, but instead has access to a list
of JAR files in case they are needed.
In addition, a project can list "extensions". These are loaded into
the same place as m2/lib and so available to the maven core and all
plugins for the currnet project and subsequent projects (in future, we
plan to remove it from subsequent projects).
- Brett