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( '>' );
}
}