Author: nicolas
Date: Thu Feb 28 05:14:18 2008
New Revision: 631954
URL: http://svn.apache.org/viewvc?rev=631954&view=rev
Log:
fix support for PlexucConfiguration injection
Added:
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
(with props)
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
(with props)
Modified:
maven/archiva/branches/springy/plexus-spring/pom.xml
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusInSpringTestCase.java
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusToSpringUtils.java
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContextTest.java
Modified: maven/archiva/branches/springy/plexus-spring/pom.xml
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/pom.xml?rev=631954&r1=631953&r2=631954&view=diff
==============================================================================
--- maven/archiva/branches/springy/plexus-spring/pom.xml (original)
+++ maven/archiva/branches/springy/plexus-spring/pom.xml Thu Feb 28 05:14:18
2008
@@ -50,11 +50,9 @@
<version>1.0-alpha-22</version>
</dependency>
<dependency>
- <!-- only required to debug XSLT result -->
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
- <optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusInSpringTestCase.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusInSpringTestCase.java?rev=631954&r1=631953&r2=631954&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusInSpringTestCase.java
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusInSpringTestCase.java
Thu Feb 28 05:14:18 2008
@@ -36,14 +36,11 @@
public class PlexusInSpringTestCase
extends TestCase
{
- private static String basedir;
-
private ConfigurableApplicationContext applicationContext;
protected void setUp()
throws Exception
{
- basedir = getBasedir();
applicationContext =
new PlexusClassPathXmlApplicationContext( new String[] {
"classpath*:META-INF/plexus/components.xml",
@@ -79,18 +76,7 @@
public static String getBasedir()
{
- if ( basedir != null )
- {
- return basedir;
- }
-
- basedir = System.getProperty( "basedir" );
- if ( basedir == null )
- {
- basedir = new File( "" ).getAbsolutePath();
- }
-
- return basedir;
+ return PlexusToSpringUtils.getBasedir();
}
public String getTestConfiguration()
@@ -128,7 +114,7 @@
public static File getTestFile( String path )
{
- return new File( getBasedir(), path );
+ return new File( PlexusToSpringUtils.getBasedir(), path );
}
public static File getTestFile( String basedir,
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java?rev=631954&r1=631953&r2=631954&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java
Thu Feb 28 05:14:18 2008
@@ -35,6 +35,7 @@
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+import org.apache.commons.lang.StringUtils;
import org.dom4j.io.DOMReader;
import org.dom4j.io.SAXReader;
import org.springframework.beans.factory.BeanDefinitionStoreException;
@@ -126,16 +127,21 @@
{
Element child = (Element) iterator.next();
String name = child.getAttribute( "name" );
+ String value;
if ( child.getChildNodes().getLength() == 1 )
{
- dependencies.put( name, child.getTextContent() );
+ value = child.getTextContent();
}
else
{
StringWriter xml = new StringWriter();
- flatten( child, new PrintWriter( xml ) );
- dependencies.put( name, xml.toString() );
+ xml.write( '<' + name + '>' );
+ flatten( child.getChildNodes(), new PrintWriter( xml ) );
+ xml.write( "</" + name + '>' );
+ value = xml.toString();
}
+ value = StringUtils.replace( value, "${basedir}",
PlexusToSpringUtils.getBasedir() );
+ dependencies.put( name, value );
}
builder.addPropertyValue( "requirements", dependencies );
@@ -187,6 +193,11 @@
out.print( "=\"" );
out.print( attribute.getTextContent() );
out.print( "\"" );
+ }
+ if (el.getChildNodes().getLength() == 0)
+ {
+ out.print( "/>" );
+ return;
}
out.print( '>' );
flatten( el.getChildNodes(), out );
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusToSpringUtils.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusToSpringUtils.java?rev=631954&r1=631953&r2=631954&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusToSpringUtils.java
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusToSpringUtils.java
Thu Feb 28 05:14:18 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -140,5 +141,23 @@
public static List LookupList( String role, ListableBeanFactory
beanFactory )
{
return new ArrayList( PlexusToSpringUtils.lookupMap( role, beanFactory
).values() );
+ }
+
+ private static String basedir;
+
+ public static String getBasedir()
+ {
+ if ( basedir != null )
+ {
+ return basedir;
+ }
+
+ basedir = System.getProperty( "basedir" );
+ if ( basedir == null )
+ {
+ basedir = new File( "" ).getAbsolutePath();
+ }
+
+ return basedir;
}
}
Added:
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java?rev=631954&view=auto
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
(added)
+++
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
Thu Feb 28 05:14:18 2008
@@ -0,0 +1,43 @@
+package org.codehaus.plexus.spring;
+
+import java.util.List;
+import java.util.Map;
+
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+/**
+ * A typical plexus component implementation
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Nicolas De Loof</a>
+ */
+public class ConfigPlexusBean
+{
+ private PlexusConfiguration config;
+
+ public PlexusConfiguration getConfig()
+ {
+ return config;
+ }
+
+
+
+}
Propchange:
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange:
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/ConfigPlexusBean.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContextTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContextTest.java?rev=631954&r1=631953&r2=631954&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContextTest.java
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/test/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContextTest.java
Thu Feb 28 05:14:18 2008
@@ -88,4 +88,14 @@
assertEquals( 2, plexusBean.getBeansList().size() );
}
+ public void testInjectPlexusConfiguration()
+ throws Exception
+ {
+ ConfigurableApplicationContext applicationContext =
+ new PlexusClassPathXmlApplicationContext( new String[] {
+ "testInjectPlexusConfiguration.xml" } );
+ ConfigPlexusBean plexusBean = (ConfigPlexusBean)
applicationContext.getBean( "plexusBean" );
+ assertEquals( "expected", plexusBean.getConfig().getChild( "xml"
).getAttribute( "test" ) );
+ }
+
}
Added:
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml?rev=631954&view=auto
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
(added)
+++
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
Thu Feb 28 05:14:18 2008
@@ -0,0 +1,13 @@
+<component-set>
+ <components>
+ <component>
+ <role>org.codehaus.plexus.spring.PlexusBean</role>
+
<implementation>org.codehaus.plexus.spring.ConfigPlexusBean</implementation>
+ <configuration>
+ <config>
+ <xml test="expected"/>
+ </config>
+ </configuration>
+ </component>
+ </components>
+</component-set>
Propchange:
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange:
maven/archiva/branches/springy/plexus-spring/src/test/resources/testInjectPlexusConfiguration.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml