Author: nicolas
Date: Wed Feb 27 08:53:16 2008
New Revision: 631642
URL: http://svn.apache.org/viewvc?rev=631642&view=rev
Log:
add partial support for PlexusConfiguration in XML
Added:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
(with props)
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.java
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContext.java
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java
maven/archiva/branches/springy/plexus-spring/src/main/resources/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.xsl
Added:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java?rev=631642&view=auto
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
(added)
+++
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
Wed Feb 27 08:53:16 2008
@@ -0,0 +1,176 @@
+package org.codehaus.plexus.spring;
+
+/*
+ * 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.
+ */
+
+import org.codehaus.plexus.configuration.PlexusConfiguration;
+import org.codehaus.plexus.configuration.PlexusConfigurationException;
+import org.w3c.dom.Element;
+
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Nicolas De Loof</a>
+ */
+public class DomPlexusConfiguration
+ implements PlexusConfiguration
+{
+ private Element root;
+
+ private String name;
+
+ /**
+ *
+ */
+ public DomPlexusConfiguration( String name, Element root )
+ {
+ this.name = name;
+ this.root = root;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#addChild(org.codehaus.plexus.configuration.PlexusConfiguration)
+ */
+ public void addChild( PlexusConfiguration configuration )
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getAttribute(java.lang.String)
+ */
+ public String getAttribute( String paramName )
+ throws PlexusConfigurationException
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getAttribute(java.lang.String,
java.lang.String)
+ */
+ public String getAttribute( String name, String defaultValue )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getAttributeNames()
+ */
+ public String[] getAttributeNames()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getChild(java.lang.String)
+ */
+ public PlexusConfiguration getChild( String child )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see org.codehaus.plexus.configuration.PlexusConfiguration#getChild(int)
+ */
+ public PlexusConfiguration getChild( int i )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getChild(java.lang.String,
boolean)
+ */
+ public PlexusConfiguration getChild( String child, boolean createChild )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getChildCount()
+ */
+ public int getChildCount()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see org.codehaus.plexus.configuration.PlexusConfiguration#getChildren()
+ */
+ public PlexusConfiguration[] getChildren()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getChildren(java.lang.String)
+ */
+ public PlexusConfiguration[] getChildren( String name )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see org.codehaus.plexus.configuration.PlexusConfiguration#getName()
+ */
+ public String getName()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see org.codehaus.plexus.configuration.PlexusConfiguration#getValue()
+ */
+ public String getValue()
+ throws PlexusConfigurationException
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ * @see
org.codehaus.plexus.configuration.PlexusConfiguration#getValue(java.lang.String)
+ */
+ public String getValue( String defaultValue )
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+}
Propchange:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.java?rev=631642&r1=631641&r2=631642&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.java
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.java
Wed Feb 27 08:53:16 2008
@@ -49,7 +49,7 @@
public void registerBeanDefinitions( Document doc, XmlReaderContext
readerContext )
{
doc = convertPlexusDescriptorToSpringBeans( doc );
- if ( Boolean.getBoolean( "plexus-spring.debug" ) )
+ if ( true )
{
try
{
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContext.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContext.java?rev=631642&r1=631641&r2=631642&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContext.java
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusClassPathXmlApplicationContext.java
Wed Feb 27 08:53:16 2008
@@ -45,6 +45,9 @@
super( path, clazz );
}
+
+
+
public PlexusClassPathXmlApplicationContext( String configLocation )
throws BeansException
{
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=631642&r1=631641&r2=631642&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
Wed Feb 27 08:53:16 2008
@@ -19,13 +19,26 @@
* under the License.
*/
+import java.io.StringWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.dom4j.io.DOMReader;
+import org.dom4j.io.SAXReader;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.beans.factory.config.RuntimeBeanReference;
+import
org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
+import org.springframework.beans.factory.parsing.Problem;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
@@ -108,8 +121,14 @@
{
Element child = (Element) iterator.next();
String name = child.getAttribute( "name" );
- String value = child.getAttribute( "value" );
- dependencies.put( name, value );
+ if ( child.getChildNodes().getLength() == 1 )
+ {
+ dependencies.put( name, child.getTextContent() );
+ }
+ else
+ {
+ dependencies.put( name, new DomPlexusConfiguration( name,
child ) );
+ }
}
builder.addPropertyValue( "requirements", dependencies );
Modified:
maven/archiva/branches/springy/plexus-spring/src/main/resources/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.xsl
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/springy/plexus-spring/src/main/resources/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.xsl?rev=631642&r1=631641&r2=631642&view=diff
==============================================================================
---
maven/archiva/branches/springy/plexus-spring/src/main/resources/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.xsl
(original)
+++
maven/archiva/branches/springy/plexus-spring/src/main/resources/org/codehaus/plexus/spring/PlexusBeanDefinitionDocumentReader.xsl
Wed Feb 27 08:53:16 2008
@@ -22,23 +22,23 @@
version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:plexus="http://plexus.codehaus.org/spring">
-<xsl:output method="xml"/>
+<xsl:output method="xml" cdata-section-elements="configuration"/>
<!--
Convert a plexus descriptor to a spring XML context with help of the custom
<plexus: namespace
to handle IoC containers incompatibilities.
-->
-<xsl:template match="/component-set">
-<beans xmlns="http://www.springframework.org/schema/beans"
+<xsl:template match="/component-set" >
+<spring:beans xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:plexus="http://plexus.codehaus.org/spring"
+ xmlns="http://plexus.codehaus.org/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://plexus.codehaus.org/spring
http://plexus.codehaus.org/schemas/spring-1.0.xsd"
default-lazy-init="true">
<xsl:for-each select="components/component">
- <plexus:component>
+ <component>
<xsl:attribute name="role">
<xsl:value-of select="role" />
</xsl:attribute>
@@ -56,7 +56,7 @@
</xsl:attribute>
</xsl:if>
<xsl:for-each select="requirements/requirement">
- <plexus:requirement>
+ <requirement>
<xsl:attribute name="field-name">
<xsl:value-of select="field-name" />
</xsl:attribute>
@@ -68,22 +68,20 @@
<xsl:value-of select="role-hint" />
</xsl:attribute>
</xsl:if>
- </plexus:requirement>
+ </requirement>
</xsl:for-each>
<xsl:for-each select="configuration/*">
- <plexus:configuration>
+ <configuration>
<xsl:attribute name="name">
<xsl:value-of select="name(.)" />
</xsl:attribute>
- <xsl:attribute name="value">
- <xsl:value-of select="." />
- </xsl:attribute>
- </plexus:configuration>
+ <xsl:copy-of select="child::node()" />
+ </configuration>
</xsl:for-each>
- </plexus:component>
+ </component>
</xsl:for-each>
-</beans>
+</spring:beans>
</xsl:template>
</xsl:stylesheet>