Author: ifedorenko
Date: Mon Nov 22 14:48:00 2010
New Revision: 1037741
URL: http://svn.apache.org/viewvc?rev=1037741&view=rev
Log:
MNG-4910 Use BeanConfigurator for configuration sub-elements
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationRequest.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationRequest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationRequest.java?rev=1037741&r1=1037740&r2=1037741&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationRequest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/BeanConfigurationRequest.java
Mon Nov 22 14:48:00 2010
@@ -52,6 +52,7 @@ public interface BeanConfigurationReques
/**
* Sets the configuration to unmarshal into the bean. The configuration
should be taken from
* {...@link
org.apache.maven.model.ConfigurationContainer#getConfiguration()} or a similar
source.
+ * Fully equivalent to {...@code setConfiguration(configuration, null)}.
*
* @param configuration The configuration to unmarshal, may be {...@code
null}.
* @return This request for chaining, never {...@code null}.
@@ -59,6 +60,27 @@ public interface BeanConfigurationReques
BeanConfigurationRequest setConfiguration( Object configuration );
/**
+ * Sets the configuration to unmarshal into the bean. The configuration
should be taken from
+ * {...@link
org.apache.maven.model.ConfigurationContainer#getConfiguration()} or a similar
source.
+ * If {...@code element} is not {...@code null}, child configuration
element with the specified name will
+ * be unmarshaled.
+ *
+ * @param configuration The configuration to unmarshal, may be {...@code
null}.
+ * @param element Configuration element name to unmarshal or {...@code
null} to unmarshal entire configuration.
+ * @return This request for chaining, never {...@code null}.
+ */
+ BeanConfigurationRequest setConfiguration( Object configuration, String
element );
+
+ /**
+ * Returns configuration element name or {...@code null}.
+ *
+ * @see {...@link #setConfiguration(Object, String)}
+ *
+ * @return Configuration element name or {...@code null}
+ */
+ String getConfigurationElement();
+
+ /**
* Gets the class loader from which to load any types referenced by the
configuration. If unset, the class loader of
* the bean class will be used.
*
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java?rev=1037741&r1=1037740&r2=1037741&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/DefaultBeanConfigurationRequest.java
Mon Nov 22 14:48:00 2010
@@ -39,6 +39,8 @@ public class DefaultBeanConfigurationReq
private Object configuration;
+ private String configurationElement;
+
private ClassLoader classLoader;
private BeanConfigurationValuePreprocessor valuePreprocessor;
@@ -61,9 +63,20 @@ public class DefaultBeanConfigurationReq
return configuration;
}
+ public String getConfigurationElement()
+ {
+ return configurationElement;
+ }
+
public DefaultBeanConfigurationRequest setConfiguration( Object
configuration )
{
+ return setConfiguration( configuration, null );
+ }
+
+ public DefaultBeanConfigurationRequest setConfiguration( Object
configuration, String element )
+ {
this.configuration = configuration;
+ this.configurationElement = element;
return this;
}
Modified:
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java?rev=1037741&r1=1037740&r2=1037741&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
(original)
+++
maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/configuration/internal/DefaultBeanConfigurator.java
Mon Nov 22 14:48:00 2010
@@ -84,6 +84,11 @@ public class DefaultBeanConfigurator
+ configuration.getClass().getName() + ")" );
}
+ if ( request.getConfigurationElement() != null )
+ {
+ plexusConfig = plexusConfig.getChild(
request.getConfigurationElement() );
+ }
+
ClassLoader classLoader = request.getClassLoader();
if ( classLoader == null )
{
Modified:
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java
URL:
http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java?rev=1037741&r1=1037740&r2=1037741&view=diff
==============================================================================
---
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java
(original)
+++
maven/maven-3/trunk/maven-core/src/test/java/org/apache/maven/configuration/DefaultBeanConfiguratorTest.java
Mon Nov 22 14:48:00 2010
@@ -123,6 +123,21 @@ public class DefaultBeanConfiguratorTest
assertEquals( new File( "base/test" ).getAbsoluteFile(), bean.file );
}
+ public void testChildConfigurationElement()
+ throws BeanConfigurationException
+ {
+ SomeBean bean = new SomeBean();
+
+ Xpp3Dom config = toConfig( "<wrapper><file>test</file></wrapper>" );
+
+ DefaultBeanConfigurationRequest request = new
DefaultBeanConfigurationRequest();
+ request.setBean( bean ).setConfiguration( config, "wrapper" );
+
+ configurator.configureBean( request );
+
+ assertEquals( new File( "test" ), bean.file );
+ }
+
static class SomeBean
{