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>


Reply via email to