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/06/20 22:11:02 UTC
svn commit: r191552 - in /maven/components/trunk: maven-core-it/
maven-core-it/it0028/ maven-core-it/it0028/src/
maven-core-it/it0028/src/main/ maven-core-it/it0028/src/main/java/
maven-core-it/it0028/src/main/java/org/ maven-core-it/it0028/src/main/ja...
Author: jdcasey
Date: Mon Jun 20 13:11:01 2005
New Revision: 191552
URL: http://svn.apache.org/viewcvs?rev=191552&view=rev
Log:
Resolving: MNG-496
o Adding extraction of mojo-specific configuration from the merged config for the plugin
o Warning at the DEBUG log-level for unused plugin configuration during the extraction process above
o Added integration test it0028 to test with unused plugin configuration present.
Added:
maven/components/trunk/maven-core-it/it0028/
maven/components/trunk/maven-core-it/it0028/expected-results.txt (with props)
maven/components/trunk/maven-core-it/it0028/goals.txt (with props)
maven/components/trunk/maven-core-it/it0028/pom.xml (with props)
maven/components/trunk/maven-core-it/it0028/src/
maven/components/trunk/maven-core-it/it0028/src/main/
maven/components/trunk/maven-core-it/it0028/src/main/java/
maven/components/trunk/maven-core-it/it0028/src/main/java/org/
maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/
maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/
maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/
maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/Person.java (with props)
maven/components/trunk/maven-core-it/it0028/src/test/
maven/components/trunk/maven-core-it/it0028/src/test/java/
maven/components/trunk/maven-core-it/it0028/src/test/java/org/
maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/
maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/
maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/
maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/PersonTest.java (with props)
Modified:
maven/components/trunk/maven-core-it/README.txt
maven/components/trunk/maven-core-it/integration-tests.txt
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
Modified: maven/components/trunk/maven-core-it/README.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/README.txt?rev=191552&r1=191551&r2=191552&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/README.txt (original)
+++ maven/components/trunk/maven-core-it/README.txt Mon Jun 20 13:11:01 2005
@@ -84,6 +84,10 @@
it0026: Test merging of global- and user-level settings.xml files.
it0027: Test @execute with a custom lifecycle, including configuration
+
+it0028: Test that unused configuration parameters from the POM don't cause the
+ mojo to fail...they will show up as warnings in the -X output instead.
+
-------------------------------------------------------------------------------
- generated sources
Modified: maven/components/trunk/maven-core-it/integration-tests.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/integration-tests.txt?rev=191552&r1=191551&r2=191552&view=diff
==============================================================================
--- maven/components/trunk/maven-core-it/integration-tests.txt (original)
+++ maven/components/trunk/maven-core-it/integration-tests.txt Mon Jun 20 13:11:01 2005
@@ -1,3 +1,4 @@
+it0028
#Cannot find core-it:fork...
#it0027
it0026
Added: maven/components/trunk/maven-core-it/it0028/expected-results.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0028/expected-results.txt?rev=191552&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0028/expected-results.txt (added)
+++ maven/components/trunk/maven-core-it/it0028/expected-results.txt Mon Jun 20 13:11:01 2005
@@ -0,0 +1 @@
+target/classes/org/apache/maven/it0001/Person.class
Propchange: maven/components/trunk/maven-core-it/it0028/expected-results.txt
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author"
Added: maven/components/trunk/maven-core-it/it0028/goals.txt
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0028/goals.txt?rev=191552&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0028/goals.txt (added)
+++ maven/components/trunk/maven-core-it/it0028/goals.txt Mon Jun 20 13:11:01 2005
@@ -0,0 +1 @@
+test
Propchange: maven/components/trunk/maven-core-it/it0028/goals.txt
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author"
Added: maven/components/trunk/maven-core-it/it0028/pom.xml
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0028/pom.xml?rev=191552&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0028/pom.xml (added)
+++ maven/components/trunk/maven-core-it/it0028/pom.xml Mon Jun 20 13:11:01 2005
@@ -0,0 +1,29 @@
+<model>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core-it0028</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <type>jar</type>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ <unused>something</unused>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</model>
Propchange: maven/components/trunk/maven-core-it/it0028/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author"
Propchange: maven/components/trunk/maven-core-it/it0028/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/Person.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/Person.java?rev=191552&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/Person.java (added)
+++ maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/Person.java Mon Jun 20 13:11:01 2005
@@ -0,0 +1,18 @@
+package org.apache.maven.it0001;
+
+public class Person
+{
+ private String name;
+
+ public void setName( String name )
+ {
+ this.name = name;
+
+ assert true;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+}
Propchange: maven/components/trunk/maven-core-it/it0028/src/main/java/org/apache/maven/it0001/Person.java
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author"
Added: maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/PersonTest.java
URL: http://svn.apache.org/viewcvs/maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/PersonTest.java?rev=191552&view=auto
==============================================================================
--- maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/PersonTest.java (added)
+++ maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/PersonTest.java Mon Jun 20 13:11:01 2005
@@ -0,0 +1,16 @@
+package org.apache.maven.it0001;
+
+import junit.framework.TestCase;
+
+public class PersonTest
+ extends TestCase
+{
+ public void testPerson()
+ {
+ Person person = new Person();
+
+ person.setName( "foo" );
+
+ assertEquals( "foo", person.getName() );
+ }
+}
Propchange: maven/components/trunk/maven-core-it/it0028/src/test/java/org/apache/maven/it0001/PersonTest.java
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author"
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=191552&r1=191551&r2=191552&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 Jun 20 13:11:01 2005
@@ -551,12 +551,41 @@
pathTranslator, getLogger(),
project );
- checkRequiredParameters( mojoDescriptor, mergedConfiguration, expressionEvaluator, plugin );
+ PlexusConfiguration extractedMojoConfiguration = extractMojoConfiguration( mergedConfiguration, mojoDescriptor );
- populatePluginFields( plugin, mojoDescriptor, mergedConfiguration, pluginContainer, expressionEvaluator );
+ checkRequiredParameters( mojoDescriptor, extractedMojoConfiguration, expressionEvaluator, plugin );
+
+ populatePluginFields( plugin, mojoDescriptor, extractedMojoConfiguration, pluginContainer, expressionEvaluator );
return plugin;
}
+ private PlexusConfiguration extractMojoConfiguration( PlexusConfiguration mergedConfiguration, MojoDescriptor mojoDescriptor )
+ {
+ Map parameterMap = mojoDescriptor.getParameterMap();
+
+ PlexusConfiguration[] mergedChildren = mergedConfiguration.getChildren();
+
+ XmlPlexusConfiguration extractedConfiguration = new XmlPlexusConfiguration( "configuration" );
+
+ for ( int i = 0; i < mergedChildren.length; i++ )
+ {
+ PlexusConfiguration child = mergedChildren[i];
+
+ if ( parameterMap.containsKey( child.getName() ) )
+ {
+ extractedConfiguration.addChild( DefaultPluginManager.copyConfiguration( child ) );
+ }
+ else
+ {
+ // TODO: I defy anyone to find these messages in the '-X' output! Do we need a new log level?
+ // ideally, this would be elevated above the true debug output, but below the default INFO level...
+ getLogger().debug( "*** WARNING: Configuration \'" + child.getName() + "\' is not used in goal \'" + mojoDescriptor.getFullGoalName() + "; this may indicate a typo... ***");
+ }
+ }
+
+ return extractedConfiguration;
+ }
+
private void checkRequiredParameters( MojoDescriptor goal, PlexusConfiguration configuration,
ExpressionEvaluator expressionEvaluator, Mojo plugin )
throws PluginConfigurationException
@@ -758,6 +787,8 @@
String configuratorId = mojoDescriptor.getComponentConfigurator();
// TODO: should this be known to the component factory instead? And if so, should configuration be part of lookup?
+ // [jc]: I don't think we can be that strict with the configurator. It makes some measure of sense that
+ // people may want different configurators for their java mojos...
if ( StringUtils.isNotEmpty( configuratorId ) )
{
configurator = (ComponentConfigurator) pluginContainer.lookup( ComponentConfigurator.ROLE,
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org