You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/03/02 08:25:47 UTC

svn commit: r513641 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/loader/ core/src/test/java/org/apache/tuscany/core/loader/ spi/src/main/java/org/apache/tuscany/spi/util/stax/

Author: jmarino
Date: Thu Mar  1 23:25:45 2007
New Revision: 513641

URL: http://svn.apache.org/viewvc?view=rev&rev=513641
Log:
move methods from StaxUtil as they relate to model loading and are causing tangles

Added:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java   (with props)
Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/PropertyParsingTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=513641&r1=513640&r2=513641
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Thu Mar  1 23:25:45 2007
@@ -209,7 +209,7 @@
         } else {
             try {
                 DocumentBuilder documentBuilder = DOMHelper.newDocumentBuilder();
-                Document value = StaxUtil.createPropertyValue(reader, property.getXmlType(), documentBuilder);
+                Document value = PropertyUtils.createPropertyValue(reader, property.getXmlType(), documentBuilder);
                 propertyValue = new PropertyValue<Type>(name, value);
             } catch (ParserConfigurationException e) {
                 throw new LoaderException(e);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyLoader.java?view=diff&rev=513641&r1=513640&r2=513641
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyLoader.java Thu Mar  1 23:25:45 2007
@@ -36,7 +36,6 @@
 import org.apache.tuscany.spi.loader.LoaderRegistry;
 import org.apache.tuscany.spi.model.ModelObject;
 import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.util.stax.StaxUtil;
 
 /**
  * Loads a property from an XML-based assembly file
@@ -85,7 +84,7 @@
         }
         boolean many = Boolean.parseBoolean(reader.getAttributeValue(null, PROPERTY_MANY_ATTR));
         String required = reader.getAttributeValue(null, REQUIRED_ATTR);
-        Document value = StaxUtil.createPropertyValue(reader, xmlType, documentBuilder);
+        Document value = PropertyUtils.createPropertyValue(reader, xmlType, documentBuilder);
 
         Property<?> property = new Property();
         property.setRequired(Boolean.parseBoolean(required));

Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java?view=auto&rev=513641
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java Thu Mar  1 23:25:45 2007
@@ -0,0 +1,119 @@
+/*
+ * 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.
+ */
+package org.apache.tuscany.core.loader;
+
+import javax.xml.XMLConstants;
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public final class PropertyUtils {
+
+    private PropertyUtils() {
+    }
+
+    public static Document createPropertyValue(XMLStreamReader reader, QName type, DocumentBuilder builder)
+        throws XMLStreamException {
+        Document doc = builder.newDocument();
+
+        // root element has no namespace and local name "value"
+        Element root = doc.createElementNS(null, "value");
+        if (type != null) {
+            Attr xsi = doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:xsi");
+            xsi.setValue(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
+            root.setAttributeNodeNS(xsi);
+
+            String prefix = type.getPrefix();
+            if (prefix == null || prefix.length() == 0) {
+                prefix = "ns";
+            }
+            Attr typeXmlns = doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:" + prefix);
+            typeXmlns.setValue(type.getNamespaceURI());
+            root.setAttributeNodeNS(typeXmlns);
+
+            Attr xsiType = doc.createAttributeNS(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi:type");
+            xsiType.setValue(prefix + ":" + type.getLocalPart());
+            root.setAttributeNodeNS(xsiType);
+        }
+        doc.appendChild(root);
+
+        loadPropertyValue(reader, root);
+        return doc;
+    }
+
+    /**
+     * Load a property value specification from an StAX stream into a DOM Document. Only elements, text and attributes
+     * are processed; all comments and other whitespace are ignored.
+     *
+     * @param reader the stream to read from
+     * @param root   the DOM node to load
+     * @throws javax.xml.stream.XMLStreamException
+     *
+     */
+    public static void loadPropertyValue(XMLStreamReader reader, Node root) throws XMLStreamException {
+        Document document = root.getOwnerDocument();
+        Node current = root;
+        while (true) {
+            switch (reader.next()) {
+                case XMLStreamConstants.START_ELEMENT:
+                    QName name = reader.getName();
+                    Element child = document.createElementNS(name.getNamespaceURI(), name.getLocalPart());
+
+                    // add the attributes for this element
+                    int count = reader.getAttributeCount();
+                    for (int i = 0; i < count; i++) {
+                        String ns = reader.getAttributeNamespace(i);
+                        String localPart = reader.getAttributeLocalName(i);
+                        String value = reader.getAttributeValue(i);
+                        child.setAttributeNS(ns, localPart, value);
+                    }
+
+                    // push the new element and make it the current one
+                    current.appendChild(child);
+                    current = child;
+                    break;
+                case XMLStreamConstants.CDATA:
+                    current.appendChild(document.createCDATASection(reader.getText()));
+                    break;
+                case XMLStreamConstants.CHARACTERS:
+                    current.appendChild(document.createTextNode(reader.getText()));
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    // if we are back at the root then we are done
+                    if (current == root) {
+                        return;
+                    }
+
+                    // pop the element off the stack
+                    current = current.getParentNode();
+            }
+        }
+    }
+
+}

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/PropertyUtils.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java?view=diff&rev=513641&r1=513640&r2=513641
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ReferenceLoader.java Thu Mar  1 23:25:45 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.core.loader;
 
+import java.util.HashMap;
+import java.util.Map;
 import javax.xml.namespace.QName;
 import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
 import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
@@ -38,7 +40,6 @@
 import org.apache.tuscany.spi.model.Multiplicity;
 import org.apache.tuscany.spi.model.ReferenceDefinition;
 import org.apache.tuscany.spi.model.ServiceContract;
-import org.apache.tuscany.spi.util.stax.StaxUtil;
 
 /**
  * Loads a reference from an XML-based assembly file
@@ -47,6 +48,14 @@
  */
 public class ReferenceLoader extends LoaderExtension<ReferenceDefinition> {
     public static final QName REFERENCE = new QName(SCA_NS, "reference");
+    private static final Map<String, Multiplicity> MULTIPLICITY = new HashMap<String, Multiplicity>(4);
+
+    static {
+        MULTIPLICITY.put("0..1", Multiplicity.ZERO_ONE);
+        MULTIPLICITY.put("1..1", Multiplicity.ONE_ONE);
+        MULTIPLICITY.put("0..n", Multiplicity.ZERO_N);
+        MULTIPLICITY.put("1..n", Multiplicity.ONE_N);
+    }
 
     @Constructor
     public ReferenceLoader(@Reference LoaderRegistry registry) {
@@ -62,7 +71,7 @@
         assert REFERENCE.equals(reader.getName());
         String name = reader.getAttributeValue(null, "name");
         String multiplicityVal = reader.getAttributeValue(null, "multiplicity");
-        Multiplicity multiplicity = StaxUtil.multiplicity(multiplicityVal, Multiplicity.ONE_ONE);
+        Multiplicity multiplicity = multiplicity(multiplicityVal, Multiplicity.ONE_ONE);
         ReferenceDefinition referenceDefinition = new ReferenceDefinition();
         referenceDefinition.setMultiplicity(multiplicity);
         referenceDefinition.setUri(context.getComponentId().resolve('#' + name));
@@ -83,4 +92,16 @@
             }
         }
     }
+
+    /**
+     * Convert a "multiplicity" attribute to the equivalent enum value.
+     *
+     * @param multiplicity the attribute to convert
+     * @param def          the default value
+     * @return the enum equivalent
+     */
+    private static Multiplicity multiplicity(String multiplicity, Multiplicity def) {
+        return multiplicity == null ? def : MULTIPLICITY.get(multiplicity);
+    }
+
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/PropertyParsingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/PropertyParsingTestCase.java?view=diff&rev=513641&r1=513640&r2=513641
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/PropertyParsingTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/PropertyParsingTestCase.java Thu Mar  1 23:25:45 2007
@@ -19,19 +19,18 @@
 package org.apache.tuscany.core.loader;
 
 import java.io.StringReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamException;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.DocumentBuilder;
-
-import junit.framework.TestCase;
+import javax.xml.stream.XMLStreamReader;
 
-import org.apache.tuscany.spi.util.stax.StaxUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
+import junit.framework.TestCase;
+
 /**
  * @version $Rev$ $Date$
  */
@@ -47,7 +46,7 @@
             + "</property>";
 
         XMLStreamReader reader = getReader(xml);
-        StaxUtil.loadPropertyValue(reader, root);
+        PropertyUtils.loadPropertyValue(reader, root);
         NodeList childNodes = root.getChildNodes();
         assertEquals(2, childNodes.getLength());
 

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java?view=diff&rev=513641&r1=513640&r2=513641
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/util/stax/StaxUtil.java Thu Mar  1 23:25:45 2007
@@ -20,23 +20,12 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilder;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-import org.apache.tuscany.spi.model.Multiplicity;
-
 /**
  * Utility for stax operations.
  *
@@ -50,103 +39,7 @@
     private static final XMLInputFactory XML_FACTORY =
         XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", StaxUtil.class.getClassLoader());
 
-    private static final Map<String, Multiplicity> MULTIPLICITY = new HashMap<String, Multiplicity>(4);
-
-    static {
-        MULTIPLICITY.put("0..1", Multiplicity.ZERO_ONE);
-        MULTIPLICITY.put("1..1", Multiplicity.ONE_ONE);
-        MULTIPLICITY.put("0..n", Multiplicity.ZERO_N);
-        MULTIPLICITY.put("1..n", Multiplicity.ONE_N);
-    }
-
     private StaxUtil() {
-    }
-
-    /**
-     * Convert a "multiplicity" attribute to the equivalent enum value.
-     *
-     * @param multiplicity the attribute to convert
-     * @param def          the default value
-     * @return the enum equivalent
-     */
-    public static Multiplicity multiplicity(String multiplicity, Multiplicity def) {
-        return multiplicity == null ? def : MULTIPLICITY.get(multiplicity);
-    }
-
-    public static Document createPropertyValue(XMLStreamReader reader, QName type, DocumentBuilder builder)
-        throws XMLStreamException {
-        Document doc = builder.newDocument();
-
-        // root element has no namespace and local name "value"
-        Element root = doc.createElementNS(null, "value");
-        if (type != null) {
-            Attr xsi = doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:xsi");
-            xsi.setValue(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
-            root.setAttributeNodeNS(xsi);
-
-            String prefix = type.getPrefix();
-            if (prefix == null || prefix.length() == 0) {
-                prefix = "ns";
-            }
-            Attr typeXmlns = doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, "xmlns:" + prefix);
-            typeXmlns.setValue(type.getNamespaceURI());
-            root.setAttributeNodeNS(typeXmlns);
-
-            Attr xsiType = doc.createAttributeNS(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "xsi:type");
-            xsiType.setValue(prefix + ":" + type.getLocalPart());
-            root.setAttributeNodeNS(xsiType);
-        }
-        doc.appendChild(root);
-
-        loadPropertyValue(reader, root);
-        return doc;
-    }
-
-    /**
-     * Load a property value specification from an StAX stream into a DOM Document. Only elements, text and attributes
-     * are processed; all comments and other whitespace are ignored.
-     *
-     * @param reader the stream to read from
-     * @param root   the DOM node to load
-     */
-    public static void loadPropertyValue(XMLStreamReader reader, Node root) throws XMLStreamException {
-        Document document = root.getOwnerDocument();
-        Node current = root;
-        while (true) {
-            switch (reader.next()) {
-                case XMLStreamConstants.START_ELEMENT:
-                    QName name = reader.getName();
-                    Element child = document.createElementNS(name.getNamespaceURI(), name.getLocalPart());
-
-                    // add the attributes for this element
-                    int count = reader.getAttributeCount();
-                    for (int i = 0; i < count; i++) {
-                        String ns = reader.getAttributeNamespace(i);
-                        String localPart = reader.getAttributeLocalName(i);
-                        String value = reader.getAttributeValue(i);
-                        child.setAttributeNS(ns, localPart, value);
-                    }
-
-                    // push the new element and make it the current one
-                    current.appendChild(child);
-                    current = child;
-                    break;
-                case XMLStreamConstants.CDATA:
-                    current.appendChild(document.createCDATASection(reader.getText()));
-                    break;
-                case XMLStreamConstants.CHARACTERS:
-                    current.appendChild(document.createTextNode(reader.getText()));
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    // if we are back at the root then we are done
-                    if (current == root) {
-                        return;
-                    }
-
-                    // pop the element off the stack
-                    current = current.getParentNode();
-            }
-        }
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org