You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by fr...@apache.org on 2007/05/15 02:35:16 UTC

svn commit: r538028 [1/15] - in /incubator/tuscany/java/sdo: ./ impl/ lib/ lib/src/ lib/src/main/ lib/src/main/java/ lib/src/main/java/org/ lib/src/main/java/org/apache/ lib/src/main/java/org/apache/tuscany/ lib/src/main/java/org/apache/tuscany/sdo/ li...

Author: frankb
Date: Mon May 14 17:35:11 2007
New Revision: 538028

URL: http://svn.apache.org/viewvc?view=rev&rev=538028
Log:
More restructuring for TUSCANY-1283

Added:
    incubator/tuscany/java/sdo/lib/
    incubator/tuscany/java/sdo/lib/pom.xml
    incubator/tuscany/java/sdo/lib/src/
    incubator/tuscany/java/sdo/lib/src/main/
    incubator/tuscany/java/sdo/lib/src/main/java/
    incubator/tuscany/java/sdo/lib/src/main/java/org/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.java
    incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.java
    incubator/tuscany/java/sdo/lib/src/main/resources/
    incubator/tuscany/java/sdo/lib/src/main/resources/META-INF/
    incubator/tuscany/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF
    incubator/tuscany/java/sdo/lib/target/
    incubator/tuscany/java/sdo/lib/target/classes/
    incubator/tuscany/java/sdo/lib/target/classes/META-INF/
    incubator/tuscany/java/sdo/lib/target/classes/META-INF/MANIFEST.MF
    incubator/tuscany/java/sdo/lib/target/classes/org/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper$MetaDataBuilder.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper$XMLOptions.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOUtil.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/XMLStreamHelper.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase$ResolvableImpl.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.class   (with props)
    incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.class   (with props)
    incubator/tuscany/java/sdo/lib/target/dependency-maven-plugin-markers/
    incubator/tuscany/java/sdo/lib/target/dependency-maven-plugin-markers/commonj-sdo-api-r2.1-jar-javadoc-1.0-incubating-SNAPSHOT.marker
    incubator/tuscany/java/sdo/lib/target/exported-pom.xml
    incubator/tuscany/java/sdo/lib/target/javadoc/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/META-INF/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/META-INF/MANIFEST.MF
    incubator/tuscany/java/sdo/lib/target/javadoc/api/allclasses-frame.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/allclasses-noframe.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/ChangeSummary.Setting.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/ChangeSummary.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/DataGraph.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/DataObject.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/Property.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/Sequence.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/Type.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/ChangeSummary.Setting.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/ChangeSummary.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/DataGraph.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/DataObject.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/Property.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/Sequence.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/class-use/Type.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/CopyHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/DataFactory.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/DataHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/EqualityHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/HelperContext.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/TypeHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/XMLDocument.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/XMLHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/XSDHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/CopyHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/DataFactory.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/DataHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/EqualityHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/HelperContext.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/TypeHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/XMLDocument.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/XMLHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/class-use/XSDHelper.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/package-frame.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/package-summary.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/package-tree.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/helper/package-use.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/ExternalizableDelegator.Resolvable.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/ExternalizableDelegator.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/HelperProvider.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/NoHelperProviderException.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/class-use/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/class-use/ExternalizableDelegator.Resolvable.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/class-use/ExternalizableDelegator.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/class-use/HelperProvider.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/class-use/NoHelperProviderException.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/package-frame.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/package-summary.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/package-tree.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/impl/package-use.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/package-frame.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/package-summary.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/package-tree.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/commonj/sdo/package-use.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/constant-values.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/deprecated-list.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/files
    incubator/tuscany/java/sdo/lib/target/javadoc/api/help-doc.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/index-all.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/index.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/options
    incubator/tuscany/java/sdo/lib/target/javadoc/api/overview-frame.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/overview-summary.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/overview-tree.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/package-list
    incubator/tuscany/java/sdo/lib/target/javadoc/api/resources/
    incubator/tuscany/java/sdo/lib/target/javadoc/api/resources/inherit.gif   (with props)
    incubator/tuscany/java/sdo/lib/target/javadoc/api/serialized-form.html
    incubator/tuscany/java/sdo/lib/target/javadoc/api/stylesheet.css
    incubator/tuscany/java/sdo/lib/target/tuscany-sdo-lib-1.0-incubating-SNAPSHOT.jar   (with props)
Modified:
    incubator/tuscany/java/sdo/impl/pom.xml
    incubator/tuscany/java/sdo/pom.xml

Modified: incubator/tuscany/java/sdo/impl/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/pom.xml?view=diff&rev=538028&r1=538027&r2=538028
==============================================================================
--- incubator/tuscany/java/sdo/impl/pom.xml (original)
+++ incubator/tuscany/java/sdo/impl/pom.xml Mon May 14 17:35:11 2007
@@ -38,8 +38,10 @@
 
     <dependencies>
         <dependency>
-            <groupId>commonj</groupId>
-            <artifactId>sdo-api-r${specVersion}</artifactId>
+            <groupId>org.apache.tuscany.sdo</groupId>
+            <artifactId>tuscany-sdo-lib</artifactId>
+            <version>${pom.version}</version>
+            <scope>compile</scope>
         </dependency>
 
         <dependency>

Added: incubator/tuscany/java/sdo/lib/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/pom.xml?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/pom.xml (added)
+++ incubator/tuscany/java/sdo/lib/pom.xml Mon May 14 17:35:11 2007
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<project>
+    <parent>
+        <groupId>org.apache.tuscany.sdo</groupId>
+        <artifactId>tuscany-sdo</artifactId>
+        <version>1.0-incubating-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>tuscany-sdo-lib</artifactId>
+    <name>Tuscany SDO Library</name>
+    <description>Tuscany SDO implementation library.</description>
+
+    <repositories>
+        <repository>
+ 	      <id>codehaus</id>
+ 	      <name>Codehaus maven repository</name>
+ 	      <url>http://repository.codehaus.org/</url>
+ 	    </repository>
+    </repositories>
+
+    <dependencies>
+        <dependency>
+            <groupId>commonj</groupId>
+            <artifactId>sdo-api-r${specVersion}</artifactId>
+        </dependency>
+
+        <!-- dependencies for optional StAX functions -->
+        <dependency>
+            <groupId>stax</groupId>
+            <artifactId>stax-api</artifactId>
+            <version>1.0.1</version>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
+                    </archive>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <!-- <overview>${basedir}/src/main/java/org/apache/tuscany/sdo/overview.html</overview>   -->
+                    <version>2.0</version>
+                    <source>1.4</source>
+                </configuration>
+                <!-- <executions>
+                    <execution>
+                        <id>package</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>  -->
+            </plugin>
+
+        </plugins>
+    </build>
+</project>

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOHelper.java Mon May 14 17:35:11 2007
@@ -0,0 +1,376 @@
+/**
+ *
+ *  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.sdo.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.api.XMLStreamHelper;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XSDHelper;
+
+/**
+ * This interface provides helper functions which are not included in the SDO specification itself.
+ * Use of the functions in this interface is recommended, instead of resorting to low-level 
+ * implementation-specific APIs.
+ */
+public interface SDOHelper
+{
+  /**
+   * Create a non-extensible HelperContext to provide access to a consistent set of Helpers which make use
+   * of a new TypeHelper instance to provide scope for type definitions.
+   * @return the new HelperContext
+   * @see #createHelperContext(boolean)
+   */
+  public HelperContext createHelperContext();
+
+  /**
+   * Create a HelperContext to provide access to a consistent set of Helpers which make use of a new
+   * TypeHelper instance to provide scope for type definitions.
+   * @param extensibleNamespaces true if the contents of a namespaces should be incrementally modifiable over time
+   * @return the new HelperContext
+   */
+  public HelperContext createHelperContext(boolean extensibleNamespaces);
+
+  /**
+   * Creates an instance of a data type from the specified string.
+   * @param dataType a Type, for which isDataType() returns true, to instantiate.
+   * @param literal the string value of the dataType.
+   * @return an instance of the dataType.
+   * @see #convertToString(Type, Object)
+   */
+  public Object createFromString(Type dataType, String literal);
+
+  /**
+   * Converts an instance of a data type to a string literal representation.
+   * @param dataType the Type, for which isDataType() returns true, of the value to convert.
+   * @param value a value of the dataType.
+   * @return the string literal representation of the value.
+   * @see #createFromString(Type, String)
+   */
+  public String convertToString(Type dataType, Object value);
+
+  /**
+   * Create a DataObject wrapper for an instance of the specified dataType.
+   * This method is typically used to create a root object that can be passed to the XMLHelper.save() 
+   * method when the root element to be serialized is an XMLSchema simpleType.
+   * @param dataType a Type for which isDataType() returns true.
+   * @param value the instance value.
+   * @return a DataObject wrapper for the specified value.
+   */
+  public DataObject createDataTypeWrapper(Type dataType, Object value);
+
+  /**
+   * Get the SDO built-in type corresponding to the specified XSD type in the XML Schema
+   * namespace ("http://www.w3.org/2001/XMLSchema").
+   * @param xsdType a type name in the XML Schema namespace.
+   * @return the SDO built-in Type corresponding to the specified XSD type.
+   */
+  public Type getXSDSDOType(String xsdType);
+
+  /**
+   * Gets the Sequence corresponding to the specified substitutable Property of the specified DataObject.
+   * @param dataObject the data object.
+   * @param head a substitution group head property.
+   * @return the Sequence corresponding to the specified substitutable Property of the specified DataObject or
+   *         null if the specified Property isn't a substitution head.
+   */
+  public Sequence getSubstitutionValues(DataObject dataObject, Property head);
+
+  /**
+   * Get the SDO built-in type corresponding to the specified Java instanceClass.
+   * @param javaClass the Java instanceClass of the type.
+   * @return the SDO built-in Type corresponding to the specified instanceClass.
+   */
+  public Type getJavaSDOType(Class javaClass);
+
+  /**
+   * Return whether at least one value is required for a valid instance of the specified property.
+   * @param the property in question.
+   * @return true if the property is required.
+   */
+  public boolean isRequired(Property property);
+
+  /**
+   * Return the upper bound of the specified property or -1 if unbounded.
+   * @param the property in question.
+   * @return the upper bound.
+   */
+  public int getUpperBound(Property property);
+
+  /**
+   * Returns whether the Property is many-valued given the specified context.
+   * @param property The Property in question
+   * @param context The context to check whether the specified Property is many-valued
+   * @return true if the Property is many-valued given the specified context.
+   */
+  public boolean isMany(Property property, DataObject context);
+
+  /**
+   * Create an empty data graph.
+   * @return the new data graph instance.
+   */
+  public DataGraph createDataGraph();
+
+  /**
+   * Set the root object of a data graph.
+   * @param dataGraph the data graph in which to set the root object.
+   * @param rootObject the root object.
+   */
+  public void setRootObject(DataGraph dataGraph, DataObject rootObject);
+
+  /**
+   * Load a serialized data graph from the specified insputStream.
+   * 
+   * @param inputStream the inputStream of the data graph.
+   * @param options loader control options, or null.
+   * @param scope the TypeHelper in which to register deserialized Types and to find Types when
+   *              creating DataObject instances, or null for default TypeHelper.
+   * @return the de-serialized data graph.
+   * @throws IOException
+   */
+  public DataGraph loadDataGraph(InputStream inputStream, Map options, TypeHelper scope) throws IOException;
+
+  /**
+   * Serialize the specified data graph to the specified outputStream.
+   * @param dataGraph the data graph to save.
+   * @param outputStream the outputStream for the data graph.
+   * @param options serializer control options, or null.
+   * @throws IOException
+   */
+  public void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException;
+
+  /**
+   * Registers the specified {@link Type type}(s) to be serialized along with
+   * the {@link DataObject data object}(s) in the graph. For example, the list of types returned from 
+   * {@link TypeHelper#define} can be registered with this method, allowing deserialization of
+   * instances of a dynamically defined model.
+   * @param dataGraph the DataGraph in which to register the specified type(s).
+   * @param types a list containing the type(s) to be registered (TBD or null to automatically register all 
+   * types used by the objects in the DataGraph).
+   */
+  public void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/types);
+
+  /**
+   * Create a new cross scope CopyHelper.
+   * @param targetScope the TypeHelper containing the Types to use to create the copy objects.
+   * @return the new CopyHelper.
+   */
+  public CopyHelper createCrossScopeCopyHelper(TypeHelper targetScope);
+
+  /**
+   * Create a new XMLStreamHelper, with visibility to types in the specified TypeHelper scope.
+   * @param scope the TypeHelper to use for locating types.
+   * @return the new XMLStreamHelper.
+   */
+  public XMLStreamHelper createXMLStreamHelper(TypeHelper scope);
+  
+  /**
+   * Create a new ObjectInputStream in the specifice HelperContext scope.
+   * @param inputStream the inputStream with which to create the ObjectInputStream.
+   * @param helperContext the HelperContext scope.
+   * @return the new ObjectInputStream.
+   */
+  public ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException;
+
+  /**
+   * Create a new ObjectOutputStream in the specifice HelperContext scope.
+   * @param outputStream the outputStream with which to create the ObjectOutputStream.
+   * @param helperContext the HelperContext scope.
+   * @return the new ObjectOutputStream.
+   */
+  public ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException;
+
+  /**
+   * Gets all of the types associated with a uri.
+   * @param scope the TypeHelper to use for locating types.
+   * @param uri the URI of the Types
+   * @return a List containing instances of Type, null if uri is not found.
+   */
+  public List getTypes(TypeHelper scope, String uri);
+
+  /**
+   * Gets the open content subset of the specified DataObject's instance properties.
+   * @param dataObject the DataObject instance
+   * @return a List containing any open content properties of the DataObject
+   */
+  public List getOpenContentProperties(DataObject dataObject);
+
+  /**
+   * Return true if the specified type is a special DocumentRoot Type.
+   * @param type the Type in question
+   * @return a List containing the open content properties
+   */
+  public boolean isDocumentRoot(Type type);
+  
+  /**
+   * Gets a MetaDataBuilder which can be used to programatically create SDO Types and Properties.
+   * @return a MetaDataBuilder instance
+   */
+  public MetaDataBuilder getMetaDataBuilder();
+
+  /**
+   * This interface provides methods which can be used to programatically create SDO Types and Properties.
+   * It provides a lower level and more efficient API then the DataObject-based one of TypeHelper.define().
+   */
+  public interface MetaDataBuilder
+  {
+    /**
+     * Create a Type in the specified TypeHelper scope.
+     * @return the new Type.
+     */
+    public Type createType(TypeHelper scope, String uri, String name, boolean isDataType);
+
+    /**
+     * Add a baseType to the specified type.
+     */
+    public void addBaseType(Type type, Type baseType);
+
+    /**
+     * Add an aliasName to the specified type.
+     */
+    public void addAliasName(Type type, String aliasName);
+
+    /**
+     * Set the isOpen value of the specified type.
+     */
+    public void setOpen(Type type, boolean isOpen);
+
+    /**
+     * Set the isSequenced value of the specified type.
+     */
+    public void setSequenced(Type type, boolean isSequenced);
+
+    /**
+     * Set the isAbstract value of the specified type.
+     */
+    public void setAbstract(Type type, boolean isAbstract);
+
+    /**
+     * Set the isAbstract value of the specified type.
+     */
+    public void setJavaClassName(Type type, String javaClassName);
+
+    /**
+     * Create a new property in the specified containingType.
+     */
+    public Property createProperty(Type containingType, String name, Type propertyType);
+
+    /**
+     * Create a new open content property in the specified TypeHelper scope.
+     */
+    public Property createOpenContentProperty(TypeHelper scope, String uri, String name, Type type);
+
+    /**
+     * Add an aliasName to the specified property.
+     */
+    public void addAliasName(Property property, String aliasName);
+
+    /**
+     * Set the isMany value of the specified property.
+     */
+    public void setMany(Property property, boolean isMany);
+
+    /**
+     * Set the isContainment value of the specified property.
+     */
+    public void setContainment(Property property, boolean isContainment);
+
+    /**
+     * Set the default value of the specified property.
+     */
+    public void setDefault(Property property, String defaultValue);
+
+    /**
+     * Set the isReadOnly value of the specified property.
+     */
+    public void setReadOnly(Property property, boolean isReadOnly);
+
+    /**
+     * Set the opposite value of the specified property.
+     */
+    public void setOpposite(Property property, Property opposite);
+
+    /**
+     * Add an instance property to the specified type.
+     */
+    public void addTypeInstanceProperty(Type definedType, Property instanceProperty, Object value);
+
+    /**
+     * Add anf instance property to the specified property.
+     */
+    public void addPropertyInstanceProperty(Property definedProperty, Property instanceProperty, Object value);
+  }
+
+  /**
+   * This interface contains options that can be passed to the XMLHelper load() and save() methods.
+   */
+  public interface XMLOptions
+  {
+    /**
+     * Line Break String such as "\n", "\r\n", "\r" and "", absence/null is the default (line.separator System Property)
+     */
+    final String XML_SAVE_LINE_BREAK = "LineBreak";
+
+    /**
+     * Indent String such as "\t", "", etc. absence/null is the default ("  ")
+     */
+    final String XML_SAVE_INDENT = "indent";
+
+    /**
+     * Margin String such as " ", "\t\t", etc. Absence/null/"" is the default (no margin)
+     */
+    final String XML_SAVE_MARGIN = "margin";
+
+    /**
+     * Attribute formatting that exceeds the specified width as Integer will cause a line break so that formatting will continue indented on the next line
+     */
+    final String XML_SAVE_LINE_WIDTH = "LINE_WIDTH";
+
+    /**
+     * Boolean to save a doctype declaration 
+     */
+    final String XML_SAVE_DOCTYPE = "SAVE_DOCTYPE";
+
+    /**
+     * Boolean to process the schemaLocation/noNamespaceSchemaLocation attributes occurring in the instance document to {@link XSDHelper#define convert XSD(s) to Types} 
+     */
+    final String XML_LOAD_SCHEMA = "ProcessSchemaLocations";
+
+    /**
+     * To tolerate malformed elements and attributes (default unless set by System property XML.load.form.lax). 0 not to.  
+     */
+    final String XML_LOAD_LAX_FORM = "load malform";
+  }
+
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/SDOUtil.java Mon May 14 17:35:11 2007
@@ -0,0 +1,377 @@
+/**
+ *
+ *  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.sdo.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.rtlib.helper.HelperProviderBase;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+import commonj.sdo.Sequence;
+import commonj.sdo.Type;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.HelperContext;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.impl.HelperProvider;
+
+/**
+ * This class provides convenient static utility functions for calling the default SDOHelper.
+ */
+public final class SDOUtil
+{
+  protected static SDOHelper defaultSDOHelper = ((HelperProviderBase)HelperProvider.INSTANCE).sdoHelper();
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataTypeWrapper(Type, Object)}.
+   */
+  public static DataObject createDataTypeWrapper(Type dataType, Object value)
+  {
+    return defaultSDOHelper.createDataTypeWrapper(dataType, value);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createFromString(Type, String)}.
+   */
+  public static Object createFromString(Type dataType, String literal)
+  {
+    return defaultSDOHelper.createFromString(dataType, literal);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#convertToString(Type, Object)}.
+   */
+  public static String convertToString(Type dataType, Object value)
+  {
+    return defaultSDOHelper.convertToString(dataType, value);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getXSDSDOType(String)}.
+   */
+  public static Type getXSDSDOType(String xsdType)
+  {    
+    return defaultSDOHelper.getXSDSDOType(xsdType);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getSubstitutionValues(DataObject, Property)}.
+   */
+  public static Sequence getSubstitutionValues(DataObject dataObject, Property head)
+  {
+    return defaultSDOHelper.getSubstitutionValues(dataObject, head);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getJavaSDOType(Class)}.
+   */
+  public static Type getJavaSDOType(Class javaClass)
+  {    
+    return defaultSDOHelper.getJavaSDOType(javaClass);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isRequired(Property)}.
+   */
+  public static boolean isRequired(Property property)
+  {
+    return defaultSDOHelper.isRequired(property);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getUpperBound(Property)}.
+   */
+  public static int getUpperBound(Property property)
+  {
+    return defaultSDOHelper.getUpperBound(property);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isMany(Property, DataObject)}.
+   */
+  public static boolean isMany(Property property, DataObject context) 
+  {
+    return defaultSDOHelper.isMany(property, context);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createDataGraph}.
+   */
+  public static DataGraph createDataGraph()
+  {
+    return defaultSDOHelper.createDataGraph();
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#setRootObject(DataGraph, DataObject)}.
+   */
+  public static void setRootObject(DataGraph dataGraph, DataObject rootObject)
+  {
+    defaultSDOHelper.setRootObject(dataGraph, rootObject);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, TypeHelper)}.
+   */
+  public static DataGraph loadDataGraph(InputStream inputStream, Map options) throws IOException
+  {
+    return defaultSDOHelper.loadDataGraph(inputStream, options, null);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#loadDataGraph(InputStream, Map, TypeHelper)}.
+   */
+  public static DataGraph loadDataGraph(InputStream inputStream, Map options, TypeHelper scope) throws IOException
+  {
+    return defaultSDOHelper.loadDataGraph(inputStream, options, scope);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#saveDataGraph(DataGraph, OutputStream, Map)}.
+   */
+  public static void saveDataGraph(DataGraph dataGraph, OutputStream outputStream, Map options) throws IOException
+  {
+    defaultSDOHelper.saveDataGraph(dataGraph, outputStream, options);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#registerDataGraphTypes(DataGraph, List)}.
+   */
+  public static void registerDataGraphTypes(DataGraph dataGraph, List/*Type*/ types)
+  {
+    defaultSDOHelper.registerDataGraphTypes(dataGraph, types);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext(boolean)}.
+   */
+  public static HelperContext createHelperContext(boolean extensibleNamespaces)
+  {
+    return defaultSDOHelper.createHelperContext(extensibleNamespaces);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createHelperContext}.
+   */
+  public static HelperContext createHelperContext()
+  {
+    return defaultSDOHelper.createHelperContext();
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createCrossScopeCopyHelper(TypeHelper)}.
+   */
+  public static CopyHelper createCrossScopeCopyHelper(TypeHelper targetScope) 
+  {
+    return defaultSDOHelper.createCrossScopeCopyHelper(targetScope); 
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createXMLStreamHelper(TypeHelper)}.
+   */
+  public static XMLStreamHelper createXMLStreamHelper(TypeHelper scope)
+  {
+    return defaultSDOHelper.createXMLStreamHelper(scope);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectInputStream(InputStream, HelperContext)}.
+   */
+  public static ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
+  {
+    return defaultSDOHelper.createObjectInputStream(inputStream, helperContext);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#createObjectOutputStream(OutputStream, HelperContext)}.
+   */
+  public static ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
+  {
+    return defaultSDOHelper.createObjectOutputStream(outputStream, helperContext);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getTypes(TypeHelper, String)}.
+   */
+  public static List getTypes(TypeHelper scope, String uri) {
+
+    return defaultSDOHelper.getTypes(scope, uri);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#getOpenContentProperties(DataObject)}.
+   */
+  public static List getOpenContentProperties(DataObject dataObject)
+  {
+    return defaultSDOHelper.getOpenContentProperties(dataObject);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper#isDocumentRoot(Type)}.
+   */
+  public static boolean isDocumentRoot(Type type)
+  {
+    return defaultSDOHelper.isDocumentRoot(type);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createType(TypeHelper, String, String, boolean)}.
+   */
+  public static Type createType(TypeHelper scope, String uri, String name, boolean isDataType)
+  {
+    return defaultSDOHelper.getMetaDataBuilder().createType(scope, uri, name, isDataType);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addBaseType(Type, Type)}.
+   */
+  public static void addBaseType(Type type, Type baseType)
+  {
+    defaultSDOHelper.getMetaDataBuilder().addBaseType(type, baseType);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Type, String)}.
+   */
+  public static void addAliasName(Type type, String aliasName)
+  {
+    defaultSDOHelper.getMetaDataBuilder().addAliasName(type, aliasName);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpen(Type, boolean)}.
+   */
+  public static void setOpen(Type type, boolean isOpen)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setOpen(type, isOpen);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setSequenced(Type, boolean)}.
+   */
+  public static void setSequenced(Type type, boolean isSequenced)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setSequenced(type, isSequenced);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setAbstract(Type, boolean)}.
+   */
+  public static void setAbstract(Type type, boolean isAbstract)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setAbstract(type, isAbstract);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setJavaClassName(Type, String)}.
+   */
+  public static void setJavaClassName(Type type, String javaClassName)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setJavaClassName(type, javaClassName);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createProperty(Type, String, Type)}.
+   */
+  public static Property createProperty(Type containingType, String name, Type propertyType)
+  {
+    return defaultSDOHelper.getMetaDataBuilder().createProperty(containingType, name, propertyType);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#createOpenContentProperty(TypeHelper, String, String, Type)}.
+   */
+  public static Property createOpenContentProperty(TypeHelper scope, String uri, String name, Type type)
+  {
+    return defaultSDOHelper.getMetaDataBuilder().createOpenContentProperty(scope, uri, name, type);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addAliasName(Property, String)}.
+   */
+  public static void addAliasName(Property property, String aliasName)
+  {
+    defaultSDOHelper.getMetaDataBuilder().addAliasName(property, aliasName);
+  }
+ 
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setMany(Property, boolean)}.
+   */
+  public static void setMany(Property property, boolean isMany)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setMany(property, isMany);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setContainment(Property, boolean)}.
+   */
+  public static void setContainment(Property property, boolean isContainment)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setContainment(property, isContainment);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setDefault(Property, String)}.
+   */
+  public static void setDefault(Property property, String defaultValue)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setDefault(property, defaultValue);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setReadOnly(Property, boolean)}.
+   */
+  public static void setReadOnly(Property property, boolean isReadOnly)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setReadOnly(property, isReadOnly);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#setOpposite(Property, Property)}.
+   */
+  public static void setOpposite(Property property, Property opposite)
+  {
+    defaultSDOHelper.getMetaDataBuilder().setOpposite(property, opposite);
+  }
+  
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addTypeInstanceProperty(Type, Property, Object)}.
+   */
+  public static void addTypeInstanceProperty(Type definedType, Property property, Object value)
+  {
+    defaultSDOHelper.getMetaDataBuilder().addTypeInstanceProperty(definedType, property, value);
+  }
+
+  /**
+   * @see {@link org.apache.tuscany.sdo.api.SDOHelper.MetaDataBuilder#addPropertyInstanceProperty(Property, Property, Object)}.
+   */
+  public static void addPropertyInstanceProperty(Property definedProperty, Property property, Object value)
+  {
+    defaultSDOHelper.getMetaDataBuilder().addPropertyInstanceProperty(definedProperty, property, value);
+  }
+  
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/api/XMLStreamHelper.java Mon May 14 17:35:11 2007
@@ -0,0 +1,113 @@
+/**
+ *
+ *  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.sdo.api;
+
+import java.util.Map;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLDocument;
+
+/**
+ * Helper interface for reading and writing SDO DataObjects from XML streams (StAX).
+ *
+ * @version $Rev: 503913 $ $Date: 2007-02-05 17:53:34 -0500 (Mon, 05 Feb 2007) $
+ */
+public interface XMLStreamHelper
+{
+  /**
+   * Creates and returns an XMLDocument from an XML input stream.
+   * The reader must be positioned on a START_DOCUMENT event.
+   *
+   * @param reader the stream to read
+   * @return an XMLDocument created from the stream
+   * @throws XMLStreamException    if there was a problem reading the stream
+   * @throws IllegalStateException if the reader is not positioned on a START_DOCUMENT event
+   */
+  XMLDocument load(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
+
+  /**
+   * Save a XMLDocument to an XML stream.
+   *
+   * @param document the document to be written
+   * @param writer   the stream to write to
+   * @throws XMLStreamException if there was a problem writing to the stream
+   */
+  void save(XMLDocument document, XMLStreamWriter writer) throws XMLStreamException;
+
+  /**
+   * Creates and returns a XMLStreamReader that can be used to read an XMLDocument as a XML event stream.
+   * The reader will be positioned on a START_DOCUMENT event.
+   *
+   * @param document the XMLDocument to be read
+   * @return an XMLStreamReader that can be used to read the document
+   */
+  XMLStreamReader createXMLStreamReader(XMLDocument document) throws XMLStreamException;
+
+  /**
+   * Create a DataObject from an element in a XML stream.
+   * The reader must be positioned on a START_ELEMENT event.
+   *
+   * @param reader the stream to read
+   * @return a DataObject created from the element in the stream
+   * @throws XMLStreamException    if there was a problem reading the stream
+   * @throws IllegalStateException if the reader is not positioned on a START_ELEMENT event
+   */
+  DataObject loadObject(XMLStreamReader reader) throws XMLStreamException, IllegalStateException;
+
+  /**
+   * Default Type to load DataObject if the element is unqualified/local without xsi:type
+   * or the qualified/global element or xsi:type fail to resolve.
+   * Can be null.
+   */
+  String OPTION_DEFAULT_ROOT_TYPE = "default root type";
+
+  /**
+   * Create a DataObject from an element in a XML stream.
+   * The reader must be positioned on a START_ELEMENT event.
+   *
+   * @param reader the stream to read
+   * @param options {@link OPTION_DEFAULT_ROOT_TYPE}; can be null or empty
+   * @return a DataObject created from the element in the stream
+   * @throws XMLStreamException    if there was a problem reading the stream
+   * @throws IllegalStateException if the reader is not positioned on a START_ELEMENT event
+   */
+  DataObject loadObject(XMLStreamReader reader, Map options) throws XMLStreamException, IllegalStateException;
+
+  /**
+   * Save a DataObject to an XML stream.
+   *
+   * @param sdo    the DataObject to be written
+   * @param writer the stream to write to
+   * @throws XMLStreamException if there was a problem writing to the stream
+   */
+  void saveObject(DataObject sdo, XMLStreamWriter writer) throws XMLStreamException;
+
+  /**
+   * Creates and returns a XMLStreamReader that can be used to read a DataObject as a XML event stream.
+   * The reader will be positioned on a START_ELEMENT event.
+   *
+   * @param sdo the DataObject to be read
+   * @return an XMLStreamReader that can be used to read the DataObject
+   */
+  XMLStreamReader createXMLStreamReader(DataObject sdo);
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.java Mon May 14 17:35:11 2007
@@ -0,0 +1,238 @@
+/**
+ *
+ *  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.sdo.rtlib.helper;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.NotSerializableException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+import java.io.ObjectStreamException;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
+
+import org.apache.tuscany.sdo.api.SDOHelper;
+import org.apache.tuscany.sdo.rtlib.util.DataObjectUtil;
+import org.apache.tuscany.sdo.rtlib.util.SDOObjectInputStream;
+
+import commonj.sdo.DataGraph;
+import commonj.sdo.DataObject;
+import commonj.sdo.helper.CopyHelper;
+import commonj.sdo.helper.DataFactory;
+import commonj.sdo.helper.DataHelper;
+import commonj.sdo.helper.EqualityHelper;
+import commonj.sdo.helper.TypeHelper;
+import commonj.sdo.helper.XMLDocument;
+import commonj.sdo.helper.XMLHelper;
+import commonj.sdo.helper.XSDHelper;
+import commonj.sdo.impl.HelperProvider;
+import commonj.sdo.impl.ExternalizableDelegator.Resolvable;
+
+
+/**
+ * Create and manage all the default helpers
+ */
+public abstract class HelperProviderBase extends HelperProvider
+{
+  protected CopyHelper copyHelper;
+
+  protected DataFactory dataFactory;
+
+  protected DataHelper dataHelper;
+
+  protected EqualityHelper equalityHelper;
+
+  protected TypeHelper typeHelper;
+
+  protected XMLHelper xmlHelper;
+
+  protected XSDHelper xsdHelper;
+  
+  protected SDOHelper sdoHelper; // Tuscany extension APIs
+
+  /**
+   * Subclasses must implement this method to initialize the above Helper instance variables
+   */
+  protected abstract void createDefaultHelpers();
+  
+  public HelperProviderBase()
+  {
+    createDefaultHelpers();
+  }
+  
+  public SDOHelper sdoHelper()
+  {
+    return sdoHelper;
+  }
+
+  public CopyHelper copyHelper()
+  {
+    return copyHelper;
+  }
+
+  public DataFactory dataFactory()
+  {
+    return dataFactory;
+  }
+
+  public DataHelper dataHelper()
+  {
+    return dataHelper;
+  }
+
+  public EqualityHelper equalityHelper()
+  {
+    return equalityHelper;
+  }
+
+  public TypeHelper typeHelper()
+  {
+    return typeHelper;
+  }
+
+  public XMLHelper xmlHelper()
+  {
+    return xmlHelper;
+  }
+
+  public XSDHelper xsdHelper()
+  {
+    return xsdHelper;
+  }
+
+  public Resolvable resolvable()
+  {
+    return new ResolvableImpl();
+  }
+
+  public Resolvable resolvable(Object target)
+  {
+    return new ResolvableImpl(target);
+  }
+
+  protected class ResolvableImpl implements Resolvable
+  {
+    protected Object target;
+    
+    public ResolvableImpl(Object target) { this.target = target; }
+    
+    public ResolvableImpl() { this.target = null; }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+      if (target instanceof DataObject)
+      {
+        writeDataObject((DataObject)target, out);
+      }
+      else
+      {
+        throw new NotSerializableException(); // should never happen
+      }
+    }
+
+    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
+    {
+      target = readDataObject(in);
+    }
+
+    public Object readResolve() throws ObjectStreamException
+    {
+      return target;
+    }
+    
+    protected void writeDataObject(DataObject dataObject, ObjectOutput objectOutput) throws IOException
+    {
+      DataGraph dataGraph = dataObject.getDataGraph();
+      if (dataGraph != null)
+      {
+        objectOutput.writeByte(0);
+        objectOutput.writeUTF(DataObjectUtil.getXPath(dataObject));
+        objectOutput.writeObject(dataGraph);
+      }
+      else if (dataObject.getContainer() != null)
+      {
+        objectOutput.writeByte(0);
+        objectOutput.writeUTF(DataObjectUtil.getXPath(dataObject));
+        objectOutput.writeObject(dataObject.getRootObject());
+      }
+      else
+      {
+        // Root object
+        objectOutput.writeByte(1);
+
+        ByteArrayOutputStream compressedByteArrayOutputStream = new ByteArrayOutputStream();
+        GZIPOutputStream gzipOutputStream = new GZIPOutputStream(compressedByteArrayOutputStream);
+        XMLHelper xmlHelperLocal = xmlHelper;
+        if(objectOutput instanceof SDOObjectInputStream)
+        {
+            xmlHelperLocal = ((SDOObjectInputStream)objectOutput).getHelperContext().getXMLHelper();
+        }
+        xmlHelperLocal.save(dataObject, "commonj.sdo", "dataObject", gzipOutputStream);
+        gzipOutputStream.close(); // Flush the contents
+
+        byte[] byteArray = compressedByteArrayOutputStream.toByteArray();
+        objectOutput.writeInt(byteArray.length);
+        objectOutput.write(byteArray);
+      }
+    }
+
+    protected DataObject readDataObject(ObjectInput objectInput) throws IOException, ClassNotFoundException
+    {
+      boolean isRoot = objectInput.readByte() == 1;
+      if (isRoot)
+      {
+        // Root object: [rootXML] = length + XML contents
+        int length = objectInput.readInt();
+        byte[] compressedBytes = new byte [length];
+
+        int index = 0;
+        int bytesRead;
+        while (index < length) {
+            if ((bytesRead = objectInput.read(compressedBytes, index, length-index)) == -1) {
+                break;
+            }
+            index += bytesRead;
+        }
+        
+        GZIPInputStream gzipInputStream = new GZIPInputStream(new ByteArrayInputStream(compressedBytes));
+        XMLHelper xmlHelperLocal = xmlHelper;
+        if (objectInput instanceof SDOObjectInputStream)
+        {
+            xmlHelperLocal = ((SDOObjectInputStream)objectInput).getHelperContext().getXMLHelper();
+        }
+        XMLDocument doc = xmlHelperLocal.load(gzipInputStream);
+        gzipInputStream.close();
+
+        return doc.getRootObject();
+      }
+      else
+      {
+        // Non root object: [path] [root]
+        String xpath = objectInput.readUTF();
+        Object object = objectInput.readObject();
+        
+        DataObject root = object instanceof DataGraph ? ((DataGraph)object).getRootObject() : (DataObject)object;
+        return xpath.equals("") ? root : root.getDataObject(xpath);
+      }
+    }
+  }
+  
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.java Mon May 14 17:35:11 2007
@@ -0,0 +1,141 @@
+/**
+ *
+ *  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.sdo.rtlib.helper;
+
+/**
+ * Base class for an implementation of the SDOHelper and SDOHelper.MetaDataBuilder interfaces.
+ */
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.sdo.api.SDOHelper;
+import org.apache.tuscany.sdo.rtlib.util.SDOObjectInputStream;
+import org.apache.tuscany.sdo.rtlib.util.SDOObjectOutputStream;
+
+import commonj.sdo.helper.HelperContext;
+
+public abstract class SDOHelperBase implements SDOHelper, SDOHelper.MetaDataBuilder
+{
+  public HelperContext createHelperContext()
+  {
+    return createHelperContext(false);
+  }
+  
+  public ObjectInputStream createObjectInputStream(InputStream inputStream, HelperContext helperContext) throws IOException
+  {
+    return new SDOObjectInputStream(inputStream, helperContext);
+  }
+  
+  public ObjectOutputStream createObjectOutputStream(OutputStream outputStream, HelperContext helperContext) throws IOException
+  {
+    return new SDOObjectOutputStream(outputStream, helperContext);
+  }
+  
+  public MetaDataBuilder getMetaDataBuilder()
+  {
+    return this;
+  }
+  
+  //Java instance class to SDO mappings (section 8.1 of the SDO spec)
+  protected static Map javaToSdoMappings = new HashMap();
+  static {
+    javaToSdoMappings.put(boolean.class, "Boolean");
+    javaToSdoMappings.put(byte.class, "Byte");
+    javaToSdoMappings.put(char.class, "Character");
+    javaToSdoMappings.put(Date.class, "Date");
+    javaToSdoMappings.put(BigDecimal.class, "Decimal");
+    javaToSdoMappings.put(double.class, "Double");
+    javaToSdoMappings.put(float.class, "Float");
+    javaToSdoMappings.put(int.class, "Int");
+    javaToSdoMappings.put(BigInteger.class, "Integer");
+    javaToSdoMappings.put(long.class, "Long");
+    javaToSdoMappings.put(Object.class, "Object");
+    javaToSdoMappings.put(short.class, "Short");
+    javaToSdoMappings.put(String.class, "String");
+    javaToSdoMappings.put(Boolean.class, "BooleanObject");
+    javaToSdoMappings.put(Byte.class, "ByteObject");
+    javaToSdoMappings.put(Character.class, "CharacterObject");
+    javaToSdoMappings.put(Double.class, "DoubleObject");
+    javaToSdoMappings.put(Float.class, "FloatObject");
+    javaToSdoMappings.put(Integer.class, "IntObject");
+    javaToSdoMappings.put(Long.class, "LongObject");
+    javaToSdoMappings.put(Short.class, "ShortObject");
+  }
+
+  //XSD to SDO mappings (section 9.4 of the SDO spec)
+  protected static Map xsdToSdoMappings = new HashMap();
+  static {
+    xsdToSdoMappings.put("anySimpleType", "Object");
+    xsdToSdoMappings.put("anyType", "DataObject");
+    xsdToSdoMappings.put("anyURI", "URI");
+    xsdToSdoMappings.put("base64Binary", "Bytes");
+    xsdToSdoMappings.put("boolean", "Boolean");
+    xsdToSdoMappings.put("byte", "Byte");
+    xsdToSdoMappings.put("date", "YearMonthDay");
+    xsdToSdoMappings.put("dateTime", "DateTime");
+    xsdToSdoMappings.put("decimal", "Decimal");
+    xsdToSdoMappings.put("double", "Double");
+    xsdToSdoMappings.put("duration", "Duration");
+    xsdToSdoMappings.put("ENTITIES", "Strings");
+    xsdToSdoMappings.put("ENTITY", "String");
+    xsdToSdoMappings.put("float", "Float");
+    xsdToSdoMappings.put("gDay", "Day");
+    xsdToSdoMappings.put("gMonth", "Month");
+    xsdToSdoMappings.put("gMonthDay", "MonthDay");
+    xsdToSdoMappings.put("gYear", "Year");
+    xsdToSdoMappings.put("gYearMonth", "YearMonth");
+    xsdToSdoMappings.put("hexBinary", "Bytes");
+    xsdToSdoMappings.put("ID","String");
+    xsdToSdoMappings.put("IDREF","String");
+    xsdToSdoMappings.put("IDREFS","Strings");
+    xsdToSdoMappings.put("int","Int");
+    xsdToSdoMappings.put("integer","Integer");
+    xsdToSdoMappings.put("language","String");
+    xsdToSdoMappings.put("long","Long");
+    xsdToSdoMappings.put("Name","String");
+    xsdToSdoMappings.put("NCName","String");
+    xsdToSdoMappings.put("negativeInteger","Integer");
+    xsdToSdoMappings.put("NMTOKEN","String");
+    xsdToSdoMappings.put("NMTOKENS","Strings");
+    xsdToSdoMappings.put("nonNegativeInteger","Integer");
+    xsdToSdoMappings.put("nonPositiveInteger","Integer");
+    xsdToSdoMappings.put("normalizedString","String");
+    xsdToSdoMappings.put("NOTATION","String");
+    xsdToSdoMappings.put("positiveInteger","Integer");
+    xsdToSdoMappings.put("QName","URI");
+    xsdToSdoMappings.put("short","Short");
+    xsdToSdoMappings.put("string","String");
+    xsdToSdoMappings.put("time","Time");
+    xsdToSdoMappings.put("token","String");
+    xsdToSdoMappings.put("unsignedByte","Short");
+    xsdToSdoMappings.put("unsignedInt","Long");
+    xsdToSdoMappings.put("unsignedLong","Integer");
+    xsdToSdoMappings.put("unsignedShort","Int");
+  }
+  
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.java Mon May 14 17:35:11 2007
@@ -0,0 +1,60 @@
+/**
+ *
+ *  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.sdo.rtlib.util;
+
+import java.util.List;
+
+import org.apache.tuscany.sdo.api.SDOUtil;
+
+import commonj.sdo.DataObject;
+import commonj.sdo.Property;
+
+
+public final class DataObjectUtil 
+{
+	protected static StringBuffer getXPath(DataObject dataObject, StringBuffer path, DataObject root) {
+		DataObject container = dataObject.getContainer();
+		if (container == null)
+			return path;
+
+		if (container == root) {
+			throw new IllegalStateException(
+					"There is a cycle in the containment hierarchy of " + root);
+		}
+
+		boolean first = path.length() == 0;
+		Property property = dataObject.getContainmentProperty();
+		if (SDOUtil.isMany(property, dataObject)) {
+			List list = container.getList(property);
+			int pos = list.indexOf(dataObject);
+			path.insert(0, property.getName() + "." + pos + (first ? "" : "/"));
+		} else {
+			path.insert(0, property.getName() + (first ? "" : "/"));
+		}
+
+		return getXPath(container, path, root);
+	}
+
+	public static String getXPath(DataObject dataObject) {
+		StringBuffer path = getXPath(dataObject, new StringBuffer(), dataObject);
+		return path.toString();
+	}
+
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.java Mon May 14 17:35:11 2007
@@ -0,0 +1,49 @@
+/**
+ *
+ *  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.sdo.rtlib.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+
+import commonj.sdo.helper.HelperContext;
+
+/**
+ * This subclass of ObjectInputStream provides a place to store the scope in which
+ * it was created.
+ */
+public class SDOObjectInputStream extends ObjectInputStream {
+    
+    private HelperContext helperContext;
+    
+    public SDOObjectInputStream(InputStream in, HelperContext helperContext) throws IOException{
+        super(in);
+        this.helperContext = helperContext;
+    }
+
+    public HelperContext getHelperContext() {
+        return helperContext;
+    }
+
+    public void setHelperContext(HelperContext helperContext) {
+        this.helperContext = helperContext;
+    }
+    
+}

Added: incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.java?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.java (added)
+++ incubator/tuscany/java/sdo/lib/src/main/java/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.java Mon May 14 17:35:11 2007
@@ -0,0 +1,49 @@
+/**
+ *
+ *  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.sdo.rtlib.util;
+
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+
+import commonj.sdo.helper.HelperContext;
+
+/**
+ * This subclass of ObjectOutputStream provides a place to store the scope in which
+ * it was created.
+ */
+public class SDOObjectOutputStream extends ObjectOutputStream {
+    
+    private HelperContext helperContext;
+    
+    public SDOObjectOutputStream(OutputStream os, HelperContext helperContext) throws IOException{
+        super(os);
+        this.helperContext = helperContext;
+    }
+
+    public HelperContext getHelperContext() {
+        return helperContext;
+    }
+
+    public void setHelperContext(HelperContext helperContext) {
+        this.helperContext = helperContext;
+    }
+    
+}

Added: incubator/tuscany/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF (added)
+++ incubator/tuscany/java/sdo/lib/src/main/resources/META-INF/MANIFEST.MF Mon May 14 17:35:11 2007
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Extension-Name: tuscany-sdo-lib
+Specification-Title: Tuscany SDO Implementation Library
+Specification-Vendor: Apache Software Foundation
+Implementation-Vendor: Apache Software Foundation
+Implementation-Vendor-Id: org.apache
+Implementation-Title: tuscany-sdo-lib
+Implementation-Version: incubating-M3
+Bundle-ManifestVersion: 2
+Bundle-Name: Tuscany SDO Implementation Library
+Bundle-SymbolicName: org.apache.tuscany.sdo.lib
+Bundle-Version: 1.0.0
+Bundle-Vendor: Apache Software Foundation
+Require-Bundle: org.apache.tuscany.sdo.spec;visibility:=reexport
+Export-Package: org.apache.tuscany.sdo.api,
+ org.apache.tuscany.sdo.rtlib

Added: incubator/tuscany/java/sdo/lib/target/classes/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/META-INF/MANIFEST.MF?view=auto&rev=538028
==============================================================================
--- incubator/tuscany/java/sdo/lib/target/classes/META-INF/MANIFEST.MF (added)
+++ incubator/tuscany/java/sdo/lib/target/classes/META-INF/MANIFEST.MF Mon May 14 17:35:11 2007
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Extension-Name: tuscany-sdo-lib
+Specification-Title: Tuscany SDO Implementation Library
+Specification-Vendor: Apache Software Foundation
+Implementation-Vendor: Apache Software Foundation
+Implementation-Vendor-Id: org.apache
+Implementation-Title: tuscany-sdo-lib
+Implementation-Version: incubating-M3
+Bundle-ManifestVersion: 2
+Bundle-Name: Tuscany SDO Implementation Library
+Bundle-SymbolicName: org.apache.tuscany.sdo.lib
+Bundle-Version: 1.0.0
+Bundle-Vendor: Apache Software Foundation
+Require-Bundle: org.apache.tuscany.sdo.spec;visibility:=reexport
+Export-Package: org.apache.tuscany.sdo.api,
+ org.apache.tuscany.sdo.rtlib

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper$MetaDataBuilder.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper%24MetaDataBuilder.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper$MetaDataBuilder.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper$XMLOptions.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper%24XMLOptions.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper$XMLOptions.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOHelper.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOUtil.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOUtil.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/SDOUtil.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/XMLStreamHelper.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/XMLStreamHelper.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/api/XMLStreamHelper.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase$ResolvableImpl.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase%24ResolvableImpl.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase$ResolvableImpl.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/HelperProviderBase.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/helper/SDOHelperBase.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/DataObjectUtil.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectInputStream.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.class
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.class?view=auto&rev=538028
==============================================================================
Binary file - no diff available.

Propchange: incubator/tuscany/java/sdo/lib/target/classes/org/apache/tuscany/sdo/rtlib/util/SDOObjectOutputStream.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/tuscany/java/sdo/lib/target/dependency-maven-plugin-markers/commonj-sdo-api-r2.1-jar-javadoc-1.0-incubating-SNAPSHOT.marker
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/lib/target/dependency-maven-plugin-markers/commonj-sdo-api-r2.1-jar-javadoc-1.0-incubating-SNAPSHOT.marker?view=auto&rev=538028
==============================================================================
    (empty)



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