You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2009/05/06 01:31:09 UTC

svn commit: r772013 - in /maven/components/branches/MNG-2766: maven-model-builder/pom.xml maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java pom.xml

Author: bentmann
Date: Tue May  5 23:31:09 2009
New Revision: 772013

URL: http://svn.apache.org/viewvc?rev=772013&view=rev
Log:
o Migrated from StAX to XPP to have us focus on a single XML parser for now

Modified:
    maven/components/branches/MNG-2766/maven-model-builder/pom.xml
    maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
    maven/components/branches/MNG-2766/pom.xml

Modified: maven/components/branches/MNG-2766/maven-model-builder/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-model-builder/pom.xml?rev=772013&r1=772012&r2=772013&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-model-builder/pom.xml (original)
+++ maven/components/branches/MNG-2766/maven-model-builder/pom.xml Tue May  5 23:31:09 2009
@@ -38,14 +38,6 @@
       <artifactId>maven-model</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.codehaus.woodstox</groupId>
-      <artifactId>wstx-asl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>stax</groupId>
-      <artifactId>stax-api</artifactId>
-    </dependency>
-    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.4</version>

Modified: maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java?rev=772013&r1=772012&r2=772013&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java (original)
+++ maven/components/branches/MNG-2766/maven-model-builder/src/main/java/org/apache/maven/model/interpolator/DefaultInterpolator.java Tue May  5 23:31:09 2009
@@ -5,6 +5,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Reader;
 import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -20,11 +21,6 @@
 import java.util.Set;
 import java.util.Map.Entry;
 
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-
 import org.apache.maven.model.Build;
 import org.apache.maven.model.DomainModel;
 import org.apache.maven.model.Model;
@@ -32,7 +28,12 @@
 import org.apache.maven.model.Resource;
 import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
 import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.WriterFactory;
+import org.codehaus.plexus.util.xml.pull.MXParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParser;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 @Component(role = Interpolator.class)
 public class DefaultInterpolator
@@ -580,9 +581,6 @@
         }
 
         List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
-        XMLInputFactory xmlInputFactory = new com.ctc.wstx.stax.WstxInputFactory();
-        xmlInputFactory.setProperty( XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, Boolean.FALSE );
-        xmlInputFactory.setProperty( XMLInputFactory.IS_NAMESPACE_AWARE, Boolean.FALSE );
 
         Uri uri = new Uri( baseUri );
         String tagName = baseUri;
@@ -590,29 +588,28 @@
 
         int depth = 0;
         int depthOfTagValue = depth;
-        XMLStreamReader xmlStreamReader = null;
+        Reader reader = null;
         try
         {
-            xmlStreamReader = xmlInputFactory.createXMLStreamReader( inputStream );
+            reader = ReaderFactory.newXmlReader( inputStream );
+
+            XmlPullParser parser = new MXParser();
+            parser.setInput( reader );
 
             Map<String, String> attributes = new HashMap<String, String>();
-            for ( ;; xmlStreamReader.next() )
+            for ( int type = parser.getEventType();; type = parser.next() )
             {
-                int type = xmlStreamReader.getEventType();
                 switch ( type )
                 {
-
-                    case XMLStreamConstants.CDATA:
-                    case XMLStreamConstants.CHARACTERS:
+                    case XmlPullParser.TEXT:
                     {
                         if ( depth == depthOfTagValue )
                         {
-                            tagValue.append( xmlStreamReader.getTextCharacters(), xmlStreamReader.getTextStart(), xmlStreamReader.getTextLength() );
+                            tagValue.append( parser.getText() );
                         }
                         break;
                     }
-
-                    case XMLStreamConstants.START_ELEMENT:
+                    case XmlPullParser.START_TAG:
                     {
                         if ( !tagName.equals( baseUri ) )
                         {
@@ -633,39 +630,38 @@
                         }
 
                         depth++;
-                        tagName = uri.getUriFor( xmlStreamReader.getName().getLocalPart(), depth );
+                        tagName = uri.getUriFor( parser.getName(), depth );
                         if ( collections.contains( tagName + "#collection" ) )
                         {
                             tagName = tagName + "#collection";
-                            uri.addTag( xmlStreamReader.getName().getLocalPart() + "#collection" );
+                            uri.addTag( parser.getName() + "#collection" );
                         }
                         else if ( collections.contains( tagName + "#set" ) )
                         {
                             tagName = tagName + "#set";
-                            uri.addTag( xmlStreamReader.getName().getLocalPart() + "#set" );
+                            uri.addTag( parser.getName() + "#set" );
                         }
                         else
                         {
-                            uri.addTag( xmlStreamReader.getName().getLocalPart() );
+                            uri.addTag( parser.getName() );
                         }
                         tagValue.setLength( 0 );
                         depthOfTagValue = depth;
-                    }
-                    case XMLStreamConstants.ATTRIBUTE:
-                    {
-                        for ( int i = 0; i < xmlStreamReader.getAttributeCount(); i++ )
+
+                        for ( int i = 0; i < parser.getAttributeCount(); i++ )
                         {
 
-                            attributes.put( tagName + "#property/" + xmlStreamReader.getAttributeName( i ).getLocalPart(), xmlStreamReader.getAttributeValue( i ) );
+                            attributes.put( tagName + "#property/" + parser.getAttributeName( i ),
+                                            parser.getAttributeValue( i ) );
                         }
                         break;
                     }
-                    case XMLStreamConstants.END_ELEMENT:
+                    case XmlPullParser.END_TAG:
                     {
                         depth--;
                         break;
                     }
-                    case XMLStreamConstants.END_DOCUMENT:
+                    case XmlPullParser.END_DOCUMENT:
                     {
                         modelProperties.add( new ModelProperty( tagName, tagValue.toString().trim() ) );
                         if ( !attributes.isEmpty() )
@@ -674,38 +670,20 @@
                             {
                                 modelProperties.add( new ModelProperty( e.getKey(), e.getValue() ) );
                             }
-                            attributes.clear();
                         }
                         return modelProperties;
                     }
                 }
+
             }
         }
-        catch ( XMLStreamException e )
+        catch ( XmlPullParserException e )
         {
-            throw new IOException( ":" + e.toString() );
+            throw (IOException) new IOException( "Failed to parser POM:" + e.toString() ).initCause( e );
         }
         finally
         {
-            if ( xmlStreamReader != null )
-            {
-                try
-                {
-                    xmlStreamReader.close();
-                }
-                catch ( XMLStreamException e )
-                {
-                    e.printStackTrace();
-                }
-            }
-            try
-            {
-                inputStream.close();
-            }
-            catch ( IOException e )
-            {
-
-            }
+            IOUtil.close( reader );
         }
     }
 

Modified: maven/components/branches/MNG-2766/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/MNG-2766/pom.xml?rev=772013&r1=772012&r2=772013&view=diff
==============================================================================
--- maven/components/branches/MNG-2766/pom.xml (original)
+++ maven/components/branches/MNG-2766/pom.xml Tue May  5 23:31:09 2009
@@ -69,10 +69,8 @@
     <mercuryVersion>1.0-alpha-7-SNAPSHOT</mercuryVersion>
     <mercuryMp3Version>1.0-alpha-1</mercuryMp3Version>
     <securityDispatcherVersion>1.2</securityDispatcherVersion>
-    <woodstoxVersion>3.2.6</woodstoxVersion>
     <modelloVersion>1.0.1</modelloVersion>
     <jxpathVersion>1.3</jxpathVersion>
-    <staxVersion>1.0.1</staxVersion>
   </properties>
   <mailingLists>
     <mailingList>
@@ -324,22 +322,6 @@
         <artifactId>doxia-sink-api</artifactId>
         <version>${doxiaVersion}</version>
       </dependency>
-      <!--  Maven Shared -->
-      <dependency>
-        <groupId>org.sonatype.spice</groupId>
-        <artifactId>model-builder</artifactId>
-        <version>${modelBuilderVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.codehaus.woodstox</groupId>
-        <artifactId>wstx-asl</artifactId>
-        <version>${woodstoxVersion}</version>
-      </dependency>
-      <dependency>
-        <groupId>stax</groupId>
-        <artifactId>stax-api</artifactId>
-        <version>${staxVersion}</version>
-      </dependency>
       <!--  Commons -->
       <dependency>
         <groupId>commons-cli</groupId>