You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jv...@apache.org on 2005/10/04 05:31:51 UTC
svn commit: r293504 - in /maven/components/trunk:
maven-core/src/main/java/org/apache/maven/
maven-core/src/main/java/org/apache/maven/cli/
maven-core/src/main/java/org/apache/maven/execution/
maven-core/src/main/java/org/apache/maven/plugin/ maven-cor...
Author: jvanzyl
Date: Mon Oct 3 20:31:35 2005
New Revision: 293504
URL: http://svn.apache.org/viewcvs?rev=293504&view=rev
Log:
o A change that eliminates the use of System.properties from the core in an
attempt to move toward true embeddability.
- System properties are still populated in the CLI to make sure that the
system property profile activator functions and the settings are dealt with
correctly. I will look at each of those shortly but this is a first step.
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/DefaultMaven.java Mon Oct 3 20:31:35 2005
@@ -487,8 +487,14 @@
protected MavenSession createSession( MavenExecutionRequest request, ReactorManager rpm )
{
- return new MavenSession( container, request.getSettings(), request.getLocalRepository(),
- request.getEventDispatcher(), rpm, request.getGoals(), request.getBaseDirectory() );
+ return new MavenSession( container,
+ request.getSettings(),
+ request.getLocalRepository(),
+ request.getEventDispatcher(),
+ rpm,
+ request.getGoals(),
+ request.getBaseDirectory(),
+ request.getExecutionProperties() );
}
/**
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java Mon Oct 3 20:31:35 2005
@@ -100,8 +100,6 @@
return 1;
}
- initializeSystemProperties( commandLine );
-
boolean debug = commandLine.hasOption( CLIManager.DEBUG );
boolean showErrors = debug || commandLine.hasOption( CLIManager.ERRORS );
@@ -147,6 +145,13 @@
return 1;
}
+ // ----------------------------------------------------------------------
+ // The execution properties need to be created before the settings
+ // are constructed.
+ // ----------------------------------------------------------------------
+
+ Properties executionProperties = getExecutionProperties( commandLine );
+
Settings settings = null;
try
@@ -204,7 +209,12 @@
}
}
- request = createRequest( commandLine, settings, eventDispatcher, loggerManager, profileManager );
+ request = createRequest( commandLine,
+ settings,
+ eventDispatcher,
+ loggerManager,
+ profileManager,
+ executionProperties );
setProjectFileOptions( commandLine, request );
@@ -347,9 +357,12 @@
}
}
- private static MavenExecutionRequest createRequest( CommandLine commandLine, Settings settings,
- EventDispatcher eventDispatcher, LoggerManager loggerManager,
- ProfileManager profileManager )
+ private static MavenExecutionRequest createRequest( CommandLine commandLine,
+ Settings settings,
+ EventDispatcher eventDispatcher,
+ LoggerManager loggerManager,
+ ProfileManager profileManager,
+ Properties executionProperties )
throws ComponentLookupException
{
MavenExecutionRequest request;
@@ -357,11 +370,18 @@
ArtifactRepository localRepository = createLocalRepository( embedder, settings, commandLine );
File userDir = new File( System.getProperty( "user.dir" ) );
- request = new DefaultMavenExecutionRequest( localRepository, settings, eventDispatcher,
- commandLine.getArgList(), userDir.getPath(), profileManager );
+
+ request = new DefaultMavenExecutionRequest( localRepository,
+ settings,
+ eventDispatcher,
+ commandLine.getArgList(),
+ userDir.getPath(),
+ profileManager,
+ executionProperties );
// TODO [BP]: do we set one per mojo? where to do it?
Logger logger = loggerManager.getLoggerForComponent( Mojo.ROLE );
+
if ( logger != null )
{
request.addEventMonitor( new DefaultEventMonitor( logger ) );
@@ -490,8 +510,10 @@
// System properties handling
// ----------------------------------------------------------------------
- private static void initializeSystemProperties( CommandLine commandLine )
+ private static Properties getExecutionProperties( CommandLine commandLine )
{
+ Properties executionProperties = new Properties();
+
// ----------------------------------------------------------------------
// Options that are set on the command line become system properties
// and therefore are set in the session properties. System properties
@@ -501,14 +523,17 @@
if ( commandLine.hasOption( CLIManager.SET_SYSTEM_PROPERTY ) )
{
String[] defStrs = commandLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY );
+
for ( int i = 0; i < defStrs.length; ++i )
{
- setCliProperty( defStrs[i] );
+ setCliProperty( defStrs[i], executionProperties );
}
}
+
+ return executionProperties;
}
- private static void setCliProperty( String property )
+ private static void setCliProperty( String property, Properties executionProperties )
{
String name;
@@ -528,6 +553,13 @@
value = property.substring( i + 1 ).trim();
}
+
+ executionProperties.setProperty( name, value );
+
+ // ----------------------------------------------------------------------
+ // I'm leaving the setting of system properties here as not to break
+ // the SystemPropertyProfileActivator. This won't harm embedding. jvz.
+ // ----------------------------------------------------------------------
System.setProperty( name, value );
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/DefaultMavenExecutionRequest.java Mon Oct 3 20:31:35 2005
@@ -23,6 +23,7 @@
import org.apache.maven.settings.Settings;
import java.util.List;
+import java.util.Properties;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -56,9 +57,15 @@
private final ProfileManager globalProfileManager;
- public DefaultMavenExecutionRequest( ArtifactRepository localRepository, Settings settings,
- EventDispatcher eventDispatcher, List goals, String baseDirectory,
- ProfileManager globalProfileManager )
+ private final Properties executionProperties;
+
+ public DefaultMavenExecutionRequest( ArtifactRepository localRepository,
+ Settings settings,
+ EventDispatcher eventDispatcher,
+ List goals,
+ String baseDirectory,
+ ProfileManager globalProfileManager,
+ Properties executionProperties )
{
this.localRepository = localRepository;
@@ -69,8 +76,10 @@
this.eventDispatcher = eventDispatcher;
this.baseDirectory = baseDirectory;
-
+
this.globalProfileManager = globalProfileManager;
+
+ this.executionProperties = executionProperties;
}
public Settings getSettings()
@@ -103,6 +112,11 @@
return goals;
}
+ public Properties getExecutionProperties()
+ {
+ return executionProperties;
+ }
+
// ----------------------------------------------------------------------
// Putting the session here but it can probably be folded right in here.
// ----------------------------------------------------------------------
@@ -156,7 +170,7 @@
{
return failureBehavior;
}
-
+
public ProfileManager getGlobalProfileManager()
{
return globalProfileManager;
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java Mon Oct 3 20:31:35 2005
@@ -23,6 +23,7 @@
import org.apache.maven.settings.Settings;
import java.util.List;
+import java.util.Properties;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -49,18 +50,20 @@
void setRecursive( boolean recursive );
boolean isRecursive();
-
+
void setReactorActive( boolean reactorActive );
-
+
boolean isReactorActive();
-
+
void setPomFile( String pomFile );
-
+
String getPomFile();
void setFailureBehavior( String failureBehavior );
-
+
String getFailureBehavior();
ProfileManager getGlobalProfileManager();
+
+ Properties getExecutionProperties();
}
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java Mon Oct 3 20:31:35 2005
@@ -26,6 +26,7 @@
import java.util.List;
import java.util.Map;
+import java.util.Properties;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
@@ -50,9 +51,16 @@
private boolean usingPOMsFromFilesystem;
- public MavenSession( PlexusContainer container, Settings settings, ArtifactRepository localRepository,
- EventDispatcher eventDispatcher, ReactorManager reactorManager, List goals,
- String executionRootDir )
+ private final Properties executionProperties;
+
+ public MavenSession( PlexusContainer container,
+ Settings settings,
+ ArtifactRepository localRepository,
+ EventDispatcher eventDispatcher,
+ ReactorManager reactorManager,
+ List goals,
+ String executionRootDir,
+ Properties executionProperties )
{
this.container = container;
@@ -67,6 +75,8 @@
this.goals = goals;
this.executionRootDir = executionRootDir;
+
+ this.executionProperties = executionProperties;
}
public Map getPluginContext( PluginDescriptor pluginDescriptor, MavenProject project )
@@ -87,6 +97,11 @@
public List getGoals()
{
return goals;
+ }
+
+ public Properties getExecutionProperties()
+ {
+ return executionProperties;
}
// ----------------------------------------------------------------------
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Mon Oct 3 20:31:35 2005
@@ -85,6 +85,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.Properties;
public class DefaultPluginManager
extends AbstractLogEnabled
@@ -505,7 +506,10 @@
return pluginContainer;
}
- private Mojo getConfiguredMojo( MavenSession session, Xpp3Dom dom, MavenProject project, boolean report,
+ private Mojo getConfiguredMojo( MavenSession session,
+ Xpp3Dom dom,
+ MavenProject project,
+ boolean report,
MojoExecution mojoExecution )
throws ComponentLookupException, PluginConfigurationException, PluginManagerException
{
@@ -558,7 +562,8 @@
ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator( session, mojoExecution,
pathTranslator, getLogger(),
- project );
+ project,
+ session.getExecutionProperties() );
PlexusConfiguration extractedMojoConfiguration = extractMojoConfiguration( mergedConfiguration,
mojoDescriptor );
@@ -1041,8 +1046,8 @@
catch ( ComponentLookupException e )
{
throw new PluginConfigurationException(mojoDescriptor.getPluginDescriptor(),
- "Unable to retrieve component configurator for plugin configuration",
- e );
+ "Unable to retrieve component configurator for plugin configuration",
+ e );
}
finally
{
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java Mon Oct 3 20:31:35 2005
@@ -29,6 +29,7 @@
import java.io.File;
import java.util.HashMap;
import java.util.Map;
+import java.util.Properties;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -65,24 +66,31 @@
private final MojoExecution mojoExecution;
private final MavenProject project;
-
+
private final String basedir;
- public PluginParameterExpressionEvaluator( MavenSession context, MojoExecution mojoExecution,
- PathTranslator pathTranslator, Logger logger, MavenProject project )
+ private final Properties properties;
+
+ public PluginParameterExpressionEvaluator( MavenSession context,
+ MojoExecution mojoExecution,
+ PathTranslator pathTranslator,
+ Logger logger,
+ MavenProject project,
+ Properties properties )
{
this.context = context;
this.mojoExecution = mojoExecution;
this.pathTranslator = pathTranslator;
this.logger = logger;
this.project = project;
-
+ this.properties = properties;
+
String basedir = null;
-
+
if ( project != null )
{
File projectFile = project.getFile();
-
+
// this should always be the case for non-super POM instances...
if ( projectFile != null )
{
@@ -94,7 +102,7 @@
{
basedir = System.getProperty( "user.dir" );
}
-
+
this.basedir = basedir;
}
@@ -277,7 +285,7 @@
// plugin to run a single test so I want to specify that class on the cli
// as a parameter.
- value = System.getProperty( expression );
+ value = properties.getProperty( expression );
}
}
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java Mon Oct 3 20:31:35 2005
@@ -62,7 +62,7 @@
MavenProject project = new MavenProject( model );
project.setFile( new File( "pom.xml" ).getCanonicalFile() );
- ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( project, null );
+ ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( project, null, new Properties() );
Object value = expressionEvaluator.evaluate( "${project.build.directory}/classes" );
String actual = new File( value.toString() ).getCanonicalPath();
@@ -84,7 +84,7 @@
MavenProject project = new MavenProject( model );
- ExpressionEvaluator ee = createExpressionEvaluator( project, null );
+ ExpressionEvaluator ee = createExpressionEvaluator( project, null, new Properties() );
Object value = ee.evaluate( "${" + key + "}" );
@@ -94,7 +94,7 @@
public void testBasedirExtractionWithMissingProject()
throws Exception
{
- ExpressionEvaluator ee = createExpressionEvaluator( null, null );
+ ExpressionEvaluator ee = createExpressionEvaluator( null, null, new Properties() );
Object value = ee.evaluate( "${basedir}" );
@@ -106,12 +106,14 @@
{
String sysprop = "PPEET_sysprop1";
- if ( System.getProperty( sysprop ) == null )
+ Properties executionProperties = new Properties();
+
+ if ( executionProperties.getProperty( sysprop ) == null )
{
- System.setProperty( sysprop, "value" );
+ executionProperties.setProperty( sysprop, "value" );
}
- ExpressionEvaluator ee = createExpressionEvaluator( null, null );
+ ExpressionEvaluator ee = createExpressionEvaluator( null, null, executionProperties );
Object value = ee.evaluate( "${" + sysprop + "}" );
@@ -123,12 +125,14 @@
{
String sysprop = "PPEET.sysprop2";
- if ( System.getProperty( sysprop ) == null )
+ Properties executionProperties = new Properties();
+
+ if ( executionProperties.getProperty( sysprop ) == null )
{
- System.setProperty( sysprop, "value" );
+ executionProperties.setProperty( sysprop, "value" );
}
- ExpressionEvaluator ee = createExpressionEvaluator( null, null );
+ ExpressionEvaluator ee = createExpressionEvaluator( null, null, executionProperties );
Object value = ee.evaluate( "${" + sysprop + "}" );
@@ -139,13 +143,13 @@
throws CycleDetectedException
{
return new MavenSession( container, new Settings(), repo, new DefaultEventDispatcher(),
- new ReactorManager( Collections.EMPTY_LIST ), Collections.EMPTY_LIST, "." );
+ new ReactorManager( Collections.EMPTY_LIST ), Collections.EMPTY_LIST, ".", new Properties() );
}
public void testLocalRepositoryExtraction()
throws Exception
{
- ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( createDefaultProject(), null );
+ ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( createDefaultProject(), null, new Properties() );
Object value = expressionEvaluator.evaluate( "${localRepository}" );
assertEquals( "local", ( (DefaultArtifactRepository) value ).getId() );
@@ -161,7 +165,7 @@
Model model = new Model();
model.setBuild( build );
- ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( new MavenProject( model ), null );
+ ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( new MavenProject( model ), null, new Properties() );
Object value = expressionEvaluator.evaluate( "${project.build.directory}/${project.build.finalName}" );
@@ -177,7 +181,7 @@
pd.setArtifacts( Collections.singletonList( artifact ) );
- ExpressionEvaluator ee = createExpressionEvaluator( createDefaultProject(), pd );
+ ExpressionEvaluator ee = createExpressionEvaluator( createDefaultProject(), pd, new Properties() );
Object value = ee.evaluate( "${plugin.artifacts}" );
@@ -197,7 +201,7 @@
return new MavenProject( new Model() );
}
- private ExpressionEvaluator createExpressionEvaluator( MavenProject project, PluginDescriptor pluginDescriptor )
+ private ExpressionEvaluator createExpressionEvaluator( MavenProject project, PluginDescriptor pluginDescriptor, Properties executionProperties )
throws Exception
{
ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE,
@@ -214,7 +218,7 @@
MojoExecution mojoExecution = new MojoExecution( mojo );
- return new PluginParameterExpressionEvaluator( session, mojoExecution, null, container.getLogger(), project );
+ return new PluginParameterExpressionEvaluator( session, mojoExecution, null, container.getLogger(), project, executionProperties );
}
protected Artifact createArtifact( String groupId, String artifactId, String version )
Modified: 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=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- 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 Mon Oct 3 20:31:35 2005
@@ -400,7 +400,8 @@
eventDispatcher,
rm,
goals,
- executionRootDirectory.getAbsolutePath() );
+ executionRootDirectory.getAbsolutePath(),
+ properties);
session.setUsingPOMsFromFilesystem( true );
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java?rev=293504&r1=293503&r2=293504&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/activation/OperatingSystemProfileActivator.java Mon Oct 3 20:31:35 2005
@@ -1,5 +1,21 @@
package org.apache.maven.profiles.activation;
+/*
+ * 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.model.Activation;
import org.apache.maven.model.ActivationOS;
import org.apache.maven.model.Profile;
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org