You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jd...@apache.org on 2005/09/08 17:09:05 UTC
svn commit: r279572 - in /maven/components/trunk:
maven-core/src/main/java/org/apache/maven/plugin/ maven-model/
maven-project/src/main/java/org/apache/maven/project/
maven-project/src/main/java/org/apache/maven/project/inheritance/
maven-project/src/m...
Author: jdcasey
Date: Thu Sep 8 08:08:57 2005
New Revision: 279572
URL: http://svn.apache.org/viewcvs?rev=279572&view=rev
Log:
Adding POM-level properties.
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
maven/components/trunk/maven-model/maven.mdo
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
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=279572&r1=279571&r2=279572&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 Thu Sep 8 08:08:57 2005
@@ -238,9 +238,9 @@
// Check properties that have been injected via profiles before we default over to
// system properties.
- if ( project.getProfileProperties() != null )
+ if ( project.getProperties() != null )
{
- value = project.getProfileProperties().getProperty( expression );
+ value = project.getProperties().getProperty( expression );
}
if ( value == null )
Modified: maven/components/trunk/maven-model/maven.mdo
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-model/maven.mdo?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-model/maven.mdo (original)
+++ maven/components/trunk/maven-model/maven.mdo Thu Sep 8 08:08:57 2005
@@ -682,6 +682,18 @@
<type>DistributionManagement</type>
</association>
</field>
+ <field>
+ <name>properties</name>
+ <version>4.0.0</version>
+ <description><![CDATA[
+ Properties used to fill in plugin configuration
+ ]]></description>
+ <type>Properties</type>
+ <association xml.mapStyle="inline">
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
</fields>
</class>
<!-- @todo: is any of this too CVS specific? Investigate other SCMs -->
@@ -2561,18 +2573,6 @@
<description><![CDATA[Information required to build the project.]]></description>
<association>
<type>BuildBase</type>
- </association>
- </field>
- <field>
- <name>properties</name>
- <version>4.0.0</version>
- <description><![CDATA[
- Properties used to fill in plugin configuration when this profile is active
- ]]></description>
- <type>Properties</type>
- <association xml.mapStyle="inline">
- <type>String</type>
- <multiplicity>*</multiplicity>
</association>
</field>
</fields>
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Thu Sep 8 08:08:57 2005
@@ -85,7 +85,6 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Properties;
import java.util.Set;
/**
@@ -433,16 +432,12 @@
List activeProfiles;
- Properties profileProperties = new Properties();
-
superProjectProfileManager.addProfiles( superModel.getProfiles() );
- activeProfiles = injectActiveProfiles( superProjectProfileManager, superModel, profileProperties );
+ activeProfiles = injectActiveProfiles( superProjectProfileManager, superModel );
MavenProject superProject = new MavenProject( superModel );
- superProject.addProfileProperties( profileProperties );
-
superProject.setActiveProfiles( activeProfiles );
//noinspection CollectionDeclaredAsConcreteClass
@@ -558,13 +553,6 @@
modelCache.put( key, model );
}
- Properties profileProperties = project.getProfileProperties();
-
- if ( profileProperties == null )
- {
- profileProperties = new Properties();
- }
-
List activeProfiles = project.getActiveProfiles();
if ( activeProfiles == null )
@@ -572,7 +560,7 @@
activeProfiles = new ArrayList();
}
- List injectedProfiles = injectActiveProfiles( profileMgr, model, profileProperties );
+ List injectedProfiles = injectActiveProfiles( profileMgr, model );
activeProfiles.addAll( injectedProfiles );
@@ -610,10 +598,6 @@
project.setActiveProfiles( activeProfiles );
- project.addProfileProperties( profileProperties );
-
- project.assembleProfilePropertiesInheritance();
-
// TODO: maybe not strictly correct, while we should enfore that packaging has a type handler of the same id, we don't
Artifact projectArtifact = artifactFactory.createBuildArtifact( project.getGroupId(), project.getArtifactId(),
project.getVersion(), project.getPackaging() );
@@ -692,15 +676,13 @@
List activeProfiles;
- Properties profileProperties = new Properties();
-
try
{
profileManager.addProfiles( model.getProfiles() );
loadProjectExternalProfiles( profileManager, projectDir );
- activeProfiles = injectActiveProfiles( profileManager, model, profileProperties );
+ activeProfiles = injectActiveProfiles( profileManager, model );
}
catch ( ProfileActivationException e )
{
@@ -709,8 +691,6 @@
MavenProject project = new MavenProject( model );
- project.addProfileProperties( profileProperties );
-
project.setActiveProfiles( activeProfiles );
lineage.addFirst( project );
@@ -819,7 +799,7 @@
return project;
}
- private List injectActiveProfiles( ProfileManager profileManager, Model model, Properties profileProperties )
+ private List injectActiveProfiles( ProfileManager profileManager, Model model )
throws ProjectBuildingException
{
List activeProfiles;
@@ -840,8 +820,6 @@
Profile profile = (Profile) it.next();
profileInjector.inject( profile, model );
-
- profileProperties.putAll( profile.getProperties() );
}
}
else
@@ -1106,15 +1084,11 @@
List activeProfiles;
- Properties profileProperties = new Properties();
-
profileManager.addProfiles( superModel.getProfiles() );
- activeProfiles = injectActiveProfiles( profileManager, superModel, profileProperties );
+ activeProfiles = injectActiveProfiles( profileManager, superModel );
MavenProject project = new MavenProject( superModel );
-
- project.addProfileProperties( profileProperties );
project.setActiveProfiles( activeProfiles );
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/MavenProject.java Thu Sep 8 08:08:57 2005
@@ -61,7 +61,6 @@
import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import java.util.Stack;
/**
* The concern of the project is provide runtime values based on the model. <p/>
@@ -92,8 +91,6 @@
private List remoteArtifactRepositories;
- private Properties profileProperties = new Properties();
-
private List collectedProjects = Collections.EMPTY_LIST;
private List attachedArtifacts;
@@ -174,8 +171,6 @@
this.testCompileSourceRoots = new ArrayList( project.testCompileSourceRoots );
this.scriptSourceRoots = new ArrayList( project.scriptSourceRoots );
- this.profileProperties = new Properties( project.profileProperties );
-
this.model = ModelUtils.cloneModel( project.model );
if ( project.originalModel != null )
@@ -603,6 +598,97 @@
return list;
}
+ public List getSystemClasspathElements()
+ throws DependencyResolutionRequiredException
+ {
+ List list = new ArrayList( getArtifacts().size() );
+
+ list.add( getBuild().getOutputDirectory() );
+
+ for ( Iterator i = getArtifacts().iterator(); i.hasNext(); )
+ {
+ Artifact a = (Artifact) i.next();
+
+ if ( isAddedToClasspath( a ) )
+ {
+ // TODO: let the scope handler deal with this
+ if ( Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+ {
+ String refId = getProjectReferenceId( a.getGroupId(), a.getArtifactId() );
+ MavenProject project = (MavenProject) projectReferences.get( refId );
+ if ( project != null )
+ {
+ list.add( project.getBuild().getOutputDirectory() );
+ }
+ else
+ {
+ File file = a.getFile();
+ if ( file == null )
+ {
+ throw new DependencyResolutionRequiredException( a );
+ }
+ list.add( file.getPath() );
+ }
+ }
+ }
+ }
+ return list;
+ }
+
+ public List getSystemArtifacts()
+ {
+ List list = new ArrayList( getArtifacts().size() );
+
+ for ( Iterator i = getArtifacts().iterator(); i.hasNext(); )
+ {
+ Artifact a = (Artifact) i.next();
+
+ // TODO: classpath check doesn't belong here - that's the other method
+ if ( isAddedToClasspath( a ) )
+ {
+ // TODO: let the scope handler deal with this
+ if ( Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+ {
+ list.add( a );
+ }
+ }
+ }
+ return list;
+ }
+
+ public List getSystemDependencies()
+ {
+ Set artifacts = getArtifacts();
+
+ if ( artifacts == null || artifacts.isEmpty() )
+ {
+ return Collections.EMPTY_LIST;
+ }
+
+ List list = new ArrayList( artifacts.size() );
+
+ for ( Iterator i = getArtifacts().iterator(); i.hasNext(); )
+ {
+ Artifact a = (Artifact) i.next();
+
+ // TODO: let the scope handler deal with this
+ if ( Artifact.SCOPE_SYSTEM.equals( a.getScope() ) )
+ {
+ Dependency dependency = new Dependency();
+
+ dependency.setArtifactId( a.getArtifactId() );
+ dependency.setGroupId( a.getGroupId() );
+ dependency.setVersion( a.getVersion() );
+ dependency.setScope( a.getScope() );
+ dependency.setType( a.getType() );
+ dependency.setClassifier( a.getClassifier() );
+
+ list.add( dependency );
+ }
+ }
+ return list;
+ }
+
private static boolean isAddedToClasspath( Artifact artifact )
{
String type = artifact.getType();
@@ -1071,14 +1157,20 @@
return model.getPluginRepositories();
}
+ /**
+ * @deprecated use getProperties() instead
+ */
public Properties getProfileProperties()
{
- return profileProperties;
+ return getProperties();
}
+ /**
+ * @deprecated should add properties to the model instead
+ */
public void addProfileProperties( Properties profileConfiguration )
{
- this.profileProperties.putAll( profileConfiguration );
+ getProperties().putAll( profileConfiguration );
}
public void setActiveProfiles( List activeProfiles )
@@ -1328,35 +1420,13 @@
return groupId + ":" + artifactId;
}
- public void assembleProfilePropertiesInheritance()
+ public void attachArtifact( String type, String classifier, File file )
{
- Stack propertyStack = new Stack();
-
- MavenProject current = this;
- while ( current != null )
- {
- Properties toAdd = current.profileProperties;
-
- if ( toAdd != null && !toAdd.isEmpty() )
- {
- propertyStack.push( toAdd );
- }
-
- current = current.getParent();
- }
-
- Properties newProfilesProperties = new Properties();
-
- while ( !propertyStack.isEmpty() )
- {
- newProfilesProperties.putAll( (Properties) propertyStack.pop() );
- }
-
- this.profileProperties = newProfilesProperties;
}
- public void attachArtifact( String type, String classifier, File file )
+ public Properties getProperties()
{
+ return getModel().getProperties();
}
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Thu Sep 8 08:08:57 2005
@@ -34,6 +34,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.TreeMap;
public final class ModelUtils
@@ -465,10 +466,12 @@
newModel.setParent( cloneParent( model.getParent() ) );
newModel.setVersion( model.getVersion() );
newModel.setArtifactId( model.getArtifactId() );
+ newModel.setProperties( new Properties( model.getProperties() ) );
newModel.setGroupId( model.getGroupId() );
newModel.setPackaging( model.getPackaging() );
newModel.setModules( cloneModules( model.getModules() ) );
assembler.copyModel( newModel, model );
+
return newModel;
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java Thu Sep 8 08:08:57 2005
@@ -35,6 +35,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.TreeMap;
/**
@@ -172,6 +173,12 @@
assembleDependencyManagementInheritance( child, parent );
assembleDistributionManagementInheritance( child, parent );
+
+ Properties props = new Properties();
+ props.putAll( parent.getProperties() );
+ props.putAll( child.getProperties() );
+
+ child.setProperties( props );
}
private void assembleDistributionManagementInheritance( Model child, Model parent )
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/injection/DefaultProfileInjector.java Thu Sep 8 08:08:57 2005
@@ -24,6 +24,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.TreeMap;
/**
@@ -61,6 +62,12 @@
injectDistributionManagement( profile, model );
injectBuild( profile, model );
+
+ Properties props = new Properties();
+ props.putAll( model.getProperties() );
+ props.putAll( profile.getProperties() );
+
+ model.setProperties( props );
}
private void injectBuild( Profile profile, Model model )
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java?rev=279572&r1=279571&r2=279572&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java Thu Sep 8 08:08:57 2005
@@ -104,6 +104,11 @@
{
value = ReflectionValueExtractor.evaluate( realExpr, model );
}
+
+ if ( value == null )
+ {
+ value = model.getProperties().getProperty( realExpr );
+ }
}
catch ( Exception e )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org