Author: nicolas
Date: Thu Feb 28 00:16:40 2008
New Revision: 631887

URL: http://svn.apache.org/viewvc?rev=631887&view=rev
Log:
incomplete support for PlexusConfiguration based on spring-context nodes

Removed:
    
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/DomPlexusConfiguration.java
Modified:
    
maven/archiva/branches/springy/plexus-spring/src/main/java/org/codehaus/plexus/spring/PlexusNamespaceHandler.java

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=631887&r1=631886&r2=631887&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 00:16:40 2008
@@ -19,7 +19,9 @@
  * under the License.
  */
 
+import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.io.Writer;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -48,6 +50,9 @@
 import org.springframework.context.ApplicationContextException;
 import org.springframework.util.xml.DomUtils;
 import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 /**
  * A spring namespace handler to support plexus components creation and direct
@@ -127,7 +132,9 @@
                 }
                 else
                 {
-                    dependencies.put( name, new DomPlexusConfiguration( child 
) );
+                    StringWriter xml = new StringWriter();
+                    flatten( child, new PrintWriter( xml ) );
+                    dependencies.put( name, xml.toString() );
                 }
             }
 
@@ -148,9 +155,43 @@
         }
 
     }
-
-    public static String buildSpringId( String role, String roleHint )
+    /**
+     * @param childNodes
+     * @return
+     */
+    private void flatten( NodeList childNodes, PrintWriter out )
     {
-        return PlexusToSpringUtils.buildSpringId( role, roleHint );
+        for ( int i = 0; i < childNodes.getLength(); i++ )
+        {
+            Node node = childNodes.item( i );
+            if (node.getNodeType() == Node.ELEMENT_NODE )
+            {
+                flatten( (Element) node, out );
+            }
+        }
+    }
+    /**
+     * @param item
+     * @param out
+     */
+    private void flatten( Element el, PrintWriter out )
+    {
+        out.print( '<' );
+        out.print( el.getTagName() );
+        NamedNodeMap attributes = el.getAttributes();
+        for ( int i = 0; i < attributes.getLength(); i++ )
+        {
+            Node attribute = attributes.item( i );
+            out.print( " ");
+            out.print( attribute.getLocalName() );
+            out.print( "=\"" );
+            out.print( attribute.getTextContent() );
+            out.print( "\"" );
+        }
+        out.print( '>' );
+        flatten( el.getChildNodes(), out );
+        out.print( "</" );
+        out.print( el.getTagName() );
+        out.print( '>' );
     }
 }


Reply via email to