diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2013-10-07 22:23:21 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2013-10-07 22:23:21 +0000 |
commit | 5963a2d3d6860fe57afc138f095bf2d2eb5a7b80 (patch) | |
tree | 018d3d8c637e265b8292d34e5f7c11ca8ce11b7d /sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom | |
parent | 132aa8a77685ec92bc90c03f987650d275a7b639 (diff) |
Official Tuscany 2.0.1 Release
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1530096 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom')
24 files changed, 0 insertions, 2237 deletions
diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/LICENSE b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/LICENSE deleted file mode 100644 index 8aa906c321..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/LICENSE +++ /dev/null @@ -1,205 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. - - - diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/META-INF/MANIFEST.MF b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/META-INF/MANIFEST.MF deleted file mode 100644 index 81274e19be..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/META-INF/MANIFEST.MF +++ /dev/null @@ -1,30 +0,0 @@ -Manifest-Version: 1.0
-Export-Package: org.apache.tuscany.sca.databinding.axiom;uses:="org.ap
- ache.tuscany.sca.databinding,org.apache.tuscany.sca.interfacedef.util
- ,org.apache.tuscany.sca.databinding.impl,org.apache.axiom.om.impl.bui
- lder,org.apache.tuscany.sca.interfacedef,org.apache.axiom.om,javax.xm
- l.namespace,javax.xml.stream,org.apache.tuscany.sca.interfacedef.impl
- ,org.apache.tuscany.sca.databinding.javabeans";version="2.0.0"
-SCA-Version: 1.1
-Bundle-Name: Apache Tuscany SCA Data Binding for Axiom
-Bundle-Vendor: The Apache Software Foundation
-Bundle-Version: 2.0.0
-Bundle-ManifestVersion: 2
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Description: Apache Tuscany SCA Data Binding for Axiom
-Import-Package: javax.xml.namespace,
- javax.xml.stream,
- org.apache.axiom.om,
- org.apache.axiom.om.impl.builder,
- org.apache.axiom.om.util;resolution:=optional,
- org.apache.tuscany.sca.databinding;version="2.0.0",
- org.apache.tuscany.sca.databinding.axiom;version="2.0.0",
- org.apache.tuscany.sca.databinding.impl;version="2.0.0",
- org.apache.tuscany.sca.databinding.javabeans;version="2.0.0",
- org.apache.tuscany.sca.interfacedef;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.impl;version="2.0.0",
- org.apache.tuscany.sca.interfacedef.util;version="1.4",
- org.apache.tuscany.sca.policy;version="2.0.0"
-Bundle-SymbolicName: org.apache.tuscany.sca.databinding.axiom
-Bundle-DocURL: http://www.apache.org/
-Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/NOTICE b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/NOTICE deleted file mode 100644 index 4dc9c94cd5..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/NOTICE +++ /dev/null @@ -1,6 +0,0 @@ -${pom.name} -Copyright (c) 2005 - 2013 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/pom.xml b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/pom.xml deleted file mode 100644 index b2caa94fbd..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/pom.xml +++ /dev/null @@ -1,100 +0,0 @@ -<?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> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-modules</artifactId> - <version>2.0.1</version> - <relativePath>../pom.xml</relativePath> - </parent> - <artifactId>tuscany-databinding-axiom</artifactId> - <name>Apache Tuscany SCA Data Binding for Axiom</name> - - <dependencies> - <dependency> - <groupId>org.apache.tuscany.sca</groupId> - <artifactId>tuscany-core-runtime-pom</artifactId> - <version>2.0.1</version> - <type>pom</type> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>org.apache.ws.commons.axiom</groupId> - <artifactId>axiom-api</artifactId> - <version>1.2.10</version> - <exclusions> - <exclusion> - <groupId>xerces</groupId> - <artifactId>xercesImpl</artifactId> - </exclusion> - <exclusion> - <groupId>stax</groupId> - <artifactId>stax-api</artifactId> - </exclusion> - <exclusion> - <groupId>xml-apis</groupId> - <artifactId>xml-apis</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-activation_1.1_spec</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-javamail_1.4_spec</artifactId> - </exclusion> - <exclusion> - <groupId>jaxen</groupId> - <artifactId>jaxen</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-stax-api_1.0_spec</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.ws.commons.axiom</groupId> - <artifactId>axiom-impl</artifactId> - <version>1.2.10</version> - <scope>runtime</scope> - <exclusions> - <exclusion> - <groupId>stax</groupId> - <artifactId>stax-api</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-activation_1.1_spec</artifactId> - </exclusion> - <exclusion> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-javamail_1.4_spec</artifactId> - </exclusion> - </exclusions> - </dependency> - - - </dependencies> - -</project> diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomDataBinding.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomDataBinding.java deleted file mode 100644 index 014a0f5223..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomDataBinding.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.databinding.BaseDataBinding; -import org.apache.tuscany.sca.databinding.WrapperHandler; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.Operation; - -/** - * DataBinding for AXIOM - * - * @version $Rev$ $Date$ - */ -public class AxiomDataBinding extends BaseDataBinding { - - public static final String NAME = OMElement.class.getName(); - - public AxiomDataBinding() { - super(NAME, OMElement.class); - } - - /** - * @see org.apache.tuscany.sca.databinding.impl.BaseDataBinding#getWrapperHandler() - */ - @Override - public WrapperHandler getWrapperHandler() { - return new OMElementWrapperHandler(); - } - - @Override - public Object copy(Object source, - DataType sourceDataType, - DataType targetDataType, - Operation sourceOperation, - Operation targetOperation) { - if ( OMElement.class.isAssignableFrom(source.getClass()) ) { - try { - OMElement sourceElement = (OMElement)source; - return sourceElement.cloneOMElement(); - } catch ( Exception e ) { - throw new IllegalArgumentException(e); - } - } - return super.copy(source, sourceDataType, targetDataType, sourceOperation, targetOperation); - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java deleted file mode 100644 index cd820ab4b4..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/AxiomHelper.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMDataSource; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.axiom.om.OMXMLParserWrapper; -import org.apache.axiom.om.impl.builder.StAXBuilder; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -/** - * Helper for AXIOM - * - * @version $Rev$ $Date$ - */ -public class AxiomHelper { - private static final String DEFAULT_PREFIX = "_ns_"; - - private AxiomHelper() { - } - - /** - * See http://issues.apache.org/jira/browse/WSCOMMONS-240 - * @param om - */ - public static void completeAndClose(OMElement om) { - // Get the builder associated with the om element - OMXMLParserWrapper builder = om.getBuilder(); - if (builder != null) { - if (builder instanceof StAXBuilder) { - ((StAXBuilder)builder).releaseParserOnClose(true); - } - OMElement document = builder.getDocumentElement(); - if (document != null) { - document.build(); - } - } - if (builder instanceof StAXBuilder) { - ((StAXBuilder)builder).close(); - } - } - - /** - * This method will close the builder immediately. Any subsequent Axiom objects won't - * be built or accessible. - */ - public static void closeImmediately(OMElement om) { - // Get the builder associated with the om element - OMXMLParserWrapper builder = om.getBuilder(); - if (builder != null) { - if (builder instanceof StAXBuilder) { - ((StAXBuilder)builder).releaseParserOnClose(true); - ((StAXBuilder)builder).close(); - } - // builder.close(); - } - } - - /** - * @param context - * @param element - */ - public static void adjustElementName(TransformationContext context, OMElement element) { - if (context != null) { - DataType dataType = context.getTargetDataType(); - Object logical = dataType == null ? null : dataType.getLogical(); - if (!(logical instanceof XMLType)) { - return; - } - XMLType xmlType = (XMLType)logical; - if (xmlType.isElement() && !xmlType.getElementName().equals(element.getQName())) { - // FIXME:: Throw exception or switch to the new Element? - OMFactory factory = OMAbstractFactory.getOMFactory(); - QName name = xmlType.getElementName(); - OMNamespace namespace = factory.createOMNamespace(name.getNamespaceURI(), name.getPrefix()); - element.setNamespace(namespace); - element.setLocalName(name.getLocalPart()); - } - } - } - - public static OMElement createOMElement(OMFactory factory, QName element) { - String localName = element.getLocalPart(); - OMNamespace ns = createOMNamespace(factory, element); - - return factory.createOMElement(localName, ns); - - } - - public static OMElement createOMElement(OMFactory factory, QName element, OMDataSource dataSource) { - String localName = element.getLocalPart(); - OMNamespace ns = createOMNamespace(factory, element); - - return factory.createOMElement(dataSource, localName, ns); - - } - - /** - * @param factory - * @param name - * @return - */ - public static OMNamespace createOMNamespace(OMFactory factory, QName name) { - String namespaceURI = name.getNamespaceURI(); - String prefix = name.getPrefix(); - - OMNamespace ns = null; - - // Qualified Element: we need an OMNamespace - if (prefix.length() == 0) { - // The prefix does not appear to be specified, let's create one - prefix = DEFAULT_PREFIX; - } - ns = factory.createOMNamespace(namespaceURI, prefix); - - return ns; - } -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Exception2OMElement.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Exception2OMElement.java deleted file mode 100644 index f44297edb7..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Exception2OMElement.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMAttribute; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.javabeans.Java2XMLMapperException; -import org.apache.tuscany.sca.databinding.javabeans.JavaBean2XMLTransformer; - -/** - * - * @version $Rev$ $Date$ - */ -public class Exception2OMElement extends JavaBean2XMLTransformer<OMElement> { - - public static final String GETCAUSE = "getCause"; - public static final String GETLOCALIZEDMESSAGE = "getLocalizedMessage"; - public static final String GETSTACKTRACE = "getStackTrace"; - public static final String GETCLASS = "getClass"; - - private OMFactory factory; - - public Exception2OMElement() { - super(); - factory = OMAbstractFactory.getOMFactory(); - } - - @Override - public OMElement transform(Object source, TransformationContext context) { - OMElement element = super.transform(source, context); - AxiomHelper.adjustElementName(context, element); - return element; - } - - @Override - protected boolean isMappedGetter(String methodName) { - if (GETCAUSE.equals(methodName) - || GETLOCALIZEDMESSAGE.equals(methodName) - || GETSTACKTRACE.equals(methodName) - || GETCLASS.equals(methodName)) { - return false; - } else { - return true; - } - } - - @Override - public void appendChild(OMElement parentElement, OMElement childElement) throws Java2XMLMapperException { - parentElement.addChild(childElement); - } - - @Override - public OMElement createElement(QName qName) throws Java2XMLMapperException { - return factory.createOMElement(qName); - } - - @Override - public void appendText(OMElement parentElement, String textData) throws Java2XMLMapperException { - if (textData == null) { - OMNamespace xsi = factory.createOMNamespace("http://www.w3.org/2001/XMLSchema-instance", "xsi"); - OMAttribute nil = factory.createOMAttribute("nil", xsi, "true"); - parentElement.addAttribute(nil); - } else { - factory.createOMText(parentElement, textData); - } - } - - @Override - public Class getTargetType() { - return OMElement.class; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java deleted file mode 100644 index cede1c4689..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Externalizable2OMElement.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import java.io.ByteArrayOutputStream; -import java.io.Externalizable; -import java.io.ObjectOutputStream; - -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.BaseTransformer; -import org.apache.tuscany.sca.databinding.impl.XSDDataTypeConverter.Base64Binary; - -/** - * - * @version $Rev$ $Date$ - */ -public class Externalizable2OMElement extends BaseTransformer<Externalizable, OMElement> implements - PullTransformer<Externalizable, OMElement> { - - @Override - protected Class<Externalizable> getSourceType() { - return Externalizable.class; - } - - @Override - protected Class<OMElement> getTargetType() { - return OMElement.class; - } - - public OMElement transform(Externalizable source, TransformationContext context) { - OMElement element = null; - - try { - ByteArrayOutputStream bos = new ByteArrayOutputStream(); - ObjectOutputStream out = new ObjectOutputStream(bos); - out.writeObject(source); - out.close(); - OMFactory factory = OMAbstractFactory.getOMFactory(); - OMNamespace ns = AxiomHelper.createOMNamespace(factory, new QName("http://callable")); - element = factory.createOMElement("reference",ns); - element.setText(Base64Binary.encode(bos.toByteArray())); - return element; - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public int getWeight() { - return 10; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Exception.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Exception.java deleted file mode 100644 index 947cd99a19..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Exception.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import java.util.Iterator; - -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMNode; -import org.apache.axiom.om.OMText; -import org.apache.tuscany.sca.databinding.javabeans.XML2JavaBeanTransformer; -import org.apache.tuscany.sca.databinding.javabeans.XML2JavaMapperException; - -/** - * Transformer to convert data from an OMElement to a Java Exception - * - * @version $Rev$ $Date$ - */ -public class OMElement2Exception extends XML2JavaBeanTransformer<OMElement> { - - @Override - public OMElement getRootElement(OMElement element) throws XML2JavaMapperException { - return element; - } - - @Override - public Iterator<OMElement> getChildElements(OMElement parent) throws XML2JavaMapperException { - return parent.getChildElements(); - } - - @Override - public String getElementName(OMElement element) throws XML2JavaMapperException { - return element.getLocalName(); - } - - @Override - public String getText(OMElement element) throws XML2JavaMapperException { - return element.getText(); - } - - @Override - public boolean isTextElement(OMElement element) throws XML2JavaMapperException { - return false; - } - - @Override - public boolean isTextOnly(OMElement element) throws XML2JavaMapperException { - OMNode firstChild = element.getFirstOMChild(); - return firstChild instanceof OMText && firstChild.getNextOMSibling() == null; - } - - @Override - public OMElement getFirstChildWithName(OMElement element, QName name) throws XML2JavaMapperException { - return element.getFirstChildWithName(name); - } - - @Override - public Class getSourceType() { - return OMElement.class; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java deleted file mode 100644 index f4bbea81cc..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Externalizable.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import java.io.ByteArrayInputStream; -import java.io.Externalizable; -import java.io.ObjectInputStream; - -import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.BaseTransformer; -import org.apache.tuscany.sca.databinding.impl.XSDDataTypeConverter.Base64Binary; - -/** - * Transformer to convert data from an OMElement to XML String - * - * @version $Rev$ $Date$ - */ -public class OMElement2Externalizable extends BaseTransformer<OMElement, Externalizable> implements PullTransformer<OMElement, Externalizable> { - // private XmlOptions options; - - public Externalizable transform(OMElement source, TransformationContext context) { - try { - String value = source.getText(); - ByteArrayInputStream bis = new ByteArrayInputStream(Base64Binary.decode(value)); - ObjectInputStream ois = new ObjectInputStream(bis); - Object obj = ois.readObject(); - ois.close(); - Externalizable aReference = (Externalizable) obj; - return aReference; - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - protected Class<OMElement> getSourceType() { - return OMElement.class; - } - - @Override - protected Class<Externalizable> getTargetType() { - return Externalizable.class; - } - - @Override - public int getWeight() { - return 10; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Object.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Object.java deleted file mode 100644 index ea40e61746..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2Object.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.databinding.impl.SimpleType2JavaTransformer; - -/** - * Transformer to convert data from a simple java Object to OMElement. - * - * @version $Rev$ $Date$ - */ -public class OMElement2Object extends SimpleType2JavaTransformer<OMElement> { - - /** - * @see org.apache.tuscany.sca.databinding.impl.SimpleType2JavaTransformer#close(java.lang.Object) - */ - @Override - protected void close(OMElement source) { - if (source != null) { - AxiomHelper.completeAndClose(source); - } - } - - @Override - protected String getText(OMElement source) { - return source.getText(); - } - - @Override - public Class getSourceType() { - return OMElement.class; - } -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2String.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2String.java deleted file mode 100644 index 0fc2cfa8a3..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2String.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import java.io.StringWriter; - -import javax.xml.stream.XMLStreamException; - -import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.BaseTransformer; - -/** - * Transformer to convert data from an OMElement to XML String - * - * @version $Rev$ $Date$ - */ -public class OMElement2String extends BaseTransformer<OMElement, String> implements PullTransformer<OMElement, String> { - // private XmlOptions options; - - public String transform(OMElement source, TransformationContext context) { - try { - StringWriter writer = new StringWriter(); - source.serialize(writer); - return writer.toString(); - } catch (XMLStreamException e) { - throw new TransformationException(e); - } - } - - @Override - protected Class<OMElement> getSourceType() { - return OMElement.class; - } - - @Override - protected Class<String> getTargetType() { - return String.class; - } - - @Override - public int getWeight() { - return 40; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2XMLStreamReader.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2XMLStreamReader.java deleted file mode 100644 index 4c7be59466..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElement2XMLStreamReader.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamReader; - -import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.BaseTransformer; - -/** - * - * @version $Rev$ $Date$ - */ -public class OMElement2XMLStreamReader extends BaseTransformer<OMElement, XMLStreamReader> implements - PullTransformer<OMElement, XMLStreamReader> { - - /* - * Reverting the behavior here in 2.x (though not in 1.x) to pass through the - * XMLStreamReader even in the case of an xsi:nil element. This appears to only - * be relied upon in 1.x by the XMLStreamReader2CallableReference transformer, and can - * be changed in 2.x without breaking anything. - * - * I'd preferto move the responsibility for handling xsi:nil to transformers such as - * XMLStreamReader2CallableReference. While for something like JAXB, xsi:nil would - * typically map to 'null', for something XML-centric like DOM I think it's more useful - * to transform to a DOM Element with xsi:nil="true". For now I'll leave this issue - * unaddressed in 2.x, where we'd have to adjust XMLStreamReader2CallableReference in - * order to make a change like this. - */ - public XMLStreamReader transform(OMElement source, TransformationContext context) { - return source != null ? source.getXMLStreamReader() : null; - } - - @Override - protected Class<OMElement> getSourceType() { - return OMElement.class; - } - - @Override - protected Class<XMLStreamReader> getTargetType() { - return XMLStreamReader.class; - } - - @Override - public int getWeight() { - return 10; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java deleted file mode 100644 index c2c2d8a313..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandler.java +++ /dev/null @@ -1,392 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.logging.Logger; - -import javax.xml.XMLConstants; -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMAttribute; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.tuscany.sca.databinding.WrapperHandler; -import org.apache.tuscany.sca.databinding.javabeans.JavaBeansDataBinding; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.ElementInfo; -import org.apache.tuscany.sca.interfacedef.util.TypeInfo; -import org.apache.tuscany.sca.interfacedef.util.WrapperInfo; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -/** - * OMElement wrapper handler implementation - * - * @version $Rev$ $Date$ - */ -public class OMElementWrapperHandler implements WrapperHandler<OMElement> { - private final static Logger logger = Logger.getLogger(OMElementWrapperHandler.class.getName()); - private OMFactory factory; - - public OMElementWrapperHandler() { - super(); - this.factory = OMAbstractFactory.getOMFactory(); - } - - public OMElement create(Operation operation, boolean input) { - WrapperInfo inputWrapperInfo = operation.getInputWrapper(); - WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); - - ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); - // Class<?> wrapperClass = input ? wrapperInfo.getInputWrapperClass() : wrapperInfo.getOutputWrapperClass(); - OMElement wrapper = AxiomHelper.createOMElement(factory, element.getQName()); - return wrapper; - } - - public void setChildren(OMElement wrapper, Object[] childObjects, Operation operation, boolean input) { - WrapperInfo inputWrapperInfo = operation.getInputWrapper(); - WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); - - List<ElementInfo> childElements = - input ? inputWrapperInfo.getChildElements() : outputWrapperInfo.getChildElements(); - - for (int i = 0; i < childElements.size(); i++) { - setChild(wrapper, i, childElements.get(i), childObjects[i]); - } - - } - - public void setChild(OMElement wrapper, int i, ElementInfo childElement, Object value) { - if (childElement.isMany()) { - Object[] elements = (Object[])value; - if (value != null) { - for (Object e : elements) { - addChild(wrapper, childElement, (OMElement)e); - } - } - } else { - OMElement element = (OMElement)value; - addChild(wrapper, childElement, element); - } - } - - private void addChild(OMElement wrapper, ElementInfo childElement, OMElement element) { - if (element == null) { - // Prefer xsi:nil="true" - if (childElement.isNillable()) { - OMElement e = wrapper.getOMFactory().createOMElement(childElement.getQName(), wrapper); - attachXSINil(e); - } - // else, we might have minOccurs="0", so don't add anything to the wrapper. - return; - } - QName elementName = childElement.getQName(); - // Make it a bit tolerating of element QName - if (!elementName.equals(element.getQName())) { - OMNamespace namespace = factory.createOMNamespace(elementName.getNamespaceURI(), elementName.getPrefix()); - element.setNamespace(namespace); - element.setLocalName(childElement.getQName().getLocalPart()); - } - wrapper.addChild(element); - } - - public List getChildren(OMElement wrapper, Operation operation, boolean input) { - WrapperInfo inputWrapperInfo = operation.getInputWrapper(); - WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); - - List<ElementInfo> childElements = input? inputWrapperInfo.getChildElements(): - outputWrapperInfo.getChildElements(); - - // Used in both the schema-valid and schema-invalid paths - List<List<OMElement>> groupedElements = getElements(wrapper); - - List<Object> children = null; - try { - children = getValidChildren(groupedElements, childElements); - } catch (InvalidChildException e) { - children = getInvalidChildren(groupedElements, childElements); - } - return children; - } - - private List<Object> getValidChildren(List<List<OMElement>> groupedElementList, List<ElementInfo> elementInfoList) throws InvalidChildException { - List<Object> elements = new ArrayList<Object>(); - - Iterator<List<OMElement>> groupedElementListIter = groupedElementList.iterator(); - List<OMElement> currentElemGroup = null; - QName currentPayloadElemQName = null; - int currentPayloadElemGroupSize = 0; - QName currentElementInfoQName = null; - - boolean first = true; - boolean lookAtNextElementGroup = true; - boolean matchedLastElementGroup = false; - for (ElementInfo currentElementInfo : elementInfoList) { - currentElementInfoQName = currentElementInfo.getQName(); - logger.fine("Iterating to next ElementInfo child with QName: " + currentElementInfoQName + - ". Control variables lookAtNextElementGroup = " + lookAtNextElementGroup + - ", matchedLastElementGroup = " + matchedLastElementGroup); - - if (first || lookAtNextElementGroup) { - first = false; - currentElemGroup = groupedElementListIter.next(); - matchedLastElementGroup = false; - currentPayloadElemGroupSize = currentElemGroup.size(); - if (currentPayloadElemGroupSize < 1) { - String logMsg = "Not sure how this would occur based on getElements() impl, " + - "but give the other routine a chance to happen to work."; - logger.fine(logMsg); - throw new InvalidChildException(logMsg); - } - currentPayloadElemQName = currentElemGroup.get(0).getQName(); - logger.fine("Iterating to next payload element group with QName: " + currentPayloadElemQName); - } - - if (currentElementInfoQName.equals(currentPayloadElemQName)) { - //A Match! - logger.fine("Matched payload to child ElementInfo for QName: " + currentElementInfoQName); - matchedLastElementGroup = true; - - if (currentElementInfo.isMany()) { - // Includes case where this is only a single element of a "many"-typed ElementInfo, - // which therefore gets wrapped in an array. - - logger.fine("ElementInfo 'isMany' = true, and group size = " + currentPayloadElemGroupSize); - // These elements are all "alike" each other in having the same element QName - Iterator<OMElement> likeElemIterator = currentElemGroup.iterator(); - List<OMElement> likeTypedElements = new ArrayList<OMElement>(); - while (likeElemIterator.hasNext()) { - OMElement child = likeElemIterator.next(); - attachXSIType(currentElementInfo, child); - likeTypedElements.add(child); - } - elements.add(likeTypedElements.toArray()); - } else { - if (currentPayloadElemGroupSize != 1) { - String logMsg = "Detected invalid data. Group size = " + currentPayloadElemGroupSize + " but 'isMany' = false"; - logger.fine(logMsg); - throw new InvalidChildException(logMsg); - } - logger.fine("Single element."); - OMElement child = currentElemGroup.get(0); - attachXSIType(currentElementInfo, child); - elements.add(child); - } - - // Advance to next group of payload elements - lookAtNextElementGroup = true; - } else { - // No Match! - logger.fine("Did not match payload QName: " + currentPayloadElemQName + - ", with child ElementInfo for QName: " + currentElementInfoQName); - - // For schema to be valid, we must have a minOccurs="0" child - if (currentElementInfo.isOmissible()) { - logger.fine("Child ElementInfo 'isOmissible' = true, so look at next ElementInfo."); - // We need to account for this child in the wrapper child list. Tempting to try - // to use an empty array instead of a null in case isMany=true, however without a more - // complete architecture for this sort of thing it's probably better NOT to introduce such - // nuanced behavior, and instead to keep it simpler for now, so as not to create dependencies - // on a specific null vs. empty mapping. - elements.add(null); - } else { - String logMsg = "Detected invalid data. Child ElementInfo 'isOmissible' = false."; - logger.fine(logMsg); - throw new InvalidChildException(logMsg); - } - - // Advance to next ElementInfo, staying on the same group of payload elements. - lookAtNextElementGroup = false; - } - } - - // We should fail the match and throw an exception if either: - // 1) We haven't matched the last payload element group - // 2) Though we may have matched the last one, there are more, but we are out of ElementInfo children. - if (!matchedLastElementGroup || groupedElementListIter.hasNext()) { - String logMsg = "Exhausted list of ElementInfo children without matching payload element group with QName: " + currentPayloadElemQName; - logger.fine(logMsg); - throw new InvalidChildException(logMsg); - } - - - return elements; - } - - - private List<Object> getInvalidChildren(List<List<OMElement>> groupedElementList, List<ElementInfo> childElements) { - List<Object> retVal = new ArrayList<Object>(); - - // if this is an operation without arguments then it seems that - // the groupedElementList can have a list with an empty list in it while - // the child elements list is empty. This leads to an IndexOutOfBounds when - // trying to de-reference childElements. So check for this now - if (childElements.size() == 0){ - return retVal; - } - - // Since not all the ElementInfo(s) will be represented, (if some elements don't appear as children - // of the wrapper payload, we need to loop through the schema - for (int index=0; index < groupedElementList.size(); index++) { - List<OMElement> elements = groupedElementList.get(index); - ElementInfo childElement = childElements.get(index); - if (!childElement.isMany()) { - Object next = elements.isEmpty() ? null : attachXSIType(childElement, elements.get(0)); - retVal.add(next); - } else { - Object[] array = elements.toArray(); - for (Object item : array) { - attachXSIType(childElement, (OMElement)item); - } - retVal.add(array); - } - } - - return retVal; - } - - - /** - * @see org.apache.tuscany.sca.databinding.WrapperHandler#getWrapperType(Operation, boolean) - */ - public DataType getWrapperType(Operation operation, boolean input) { - WrapperInfo inputWrapperInfo = operation.getInputWrapper(); - WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); - - ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); - - DataType<XMLType> wrapperType = - new DataTypeImpl<XMLType>(AxiomDataBinding.NAME, OMElement.class, new XMLType(element)); - return wrapperType; - } - - public boolean isInstance(Object wrapperObj, Operation operation, boolean input) { - WrapperInfo inputWrapperInfo = operation.getInputWrapper(); - WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); - - ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); - - // List<ElementInfo> childElements = - // input ? wrapperInfo.getInputChildElements() : wrapperInfo.getOutputChildElements(); - OMElement wrapper = (OMElement)wrapperObj; - if (!element.getQName().equals(wrapper.getQName())) { - return false; - } - return true; - /* - Set<QName> names = new HashSet<QName>(); - for (ElementInfo e : childElements) { - names.add(e.getQName()); - } - for (Iterator i = wrapper.getChildElements(); i.hasNext();) { - OMElement child = (OMElement)i.next(); - if (!names.contains(child.getQName())) { - return false; - } - } - return true; - */ - } - - private static final QName XSI_TYPE_QNAME = new QName("http://www.w3.org/2001/XMLSchema-instance", "type", "xsi"); - - private List<List<OMElement>> getElements(OMElement wrapper) { - List<List<OMElement>> elements = new ArrayList<List<OMElement>>(); - List<OMElement> current = new ArrayList<OMElement>(); - elements.add(current); - boolean first = true; - QName last = null; - - for (Iterator i = wrapper.getChildElements(); i.hasNext();) { - OMElement element = (OMElement)i.next(); - if (first || element.getQName().equals(last)) { - current.add(element); - last = element.getQName(); - } else { - current = new ArrayList<OMElement>(); - elements.add(current); - current.add(element); - last = element.getQName(); - } - first = false; - } - return elements; - } - - /** - * Create xis:type if required - * @param childElement - * @param element - * @return - */ - private OMElement attachXSIType(ElementInfo childElement, OMElement element) { - TypeInfo type = childElement.getType(); - if (type != null && type.getQName() != null) { - OMAttribute attr = element.getAttribute(XSI_TYPE_QNAME); - if (attr == null) { - String typeNS = type.getQName().getNamespaceURI(); - if (XMLConstants.W3C_XML_SCHEMA_NS_URI.equals(typeNS)) { - return element; - } - OMNamespace ns = element.getOMFactory().createOMNamespace(typeNS, "_typens_"); - element.declareNamespace(ns); - OMNamespace xsiNS = - element.getOMFactory().createOMNamespace(XSI_TYPE_QNAME.getNamespaceURI(), - XSI_TYPE_QNAME.getPrefix()); - element.declareNamespace(xsiNS); - attr = - element.getOMFactory().createOMAttribute("type", - xsiNS, - "_typens_:" + type.getQName().getLocalPart()); - element.addAttribute(attr); - } - } - return element; - } - - private void attachXSINil(OMElement element) { - OMNamespace xsiNS = - element.getOMFactory().createOMNamespace(XSI_TYPE_QNAME.getNamespaceURI(), XSI_TYPE_QNAME.getPrefix()); - element.declareNamespace(xsiNS); - OMAttribute attr = element.getOMFactory().createOMAttribute("nil", xsiNS, "true"); - element.addAttribute(attr); - } - - - private class InvalidChildException extends Exception { - - private static final long serialVersionUID = 4858608999124013014L; - - public InvalidChildException() { - super(); - } - - public InvalidChildException(String message) { - super(message); - } - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Object2OMElement.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Object2OMElement.java deleted file mode 100644 index 88d6b462c1..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/Object2OMElement.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import javax.xml.namespace.QName; - -import org.apache.axiom.om.OMAbstractFactory; -import org.apache.axiom.om.OMAttribute; -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.OMFactory; -import org.apache.axiom.om.OMNamespace; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.impl.Java2SimpleTypeTransformer; - -/** - * Transformer to convert data from an simple OMElement to Java Object - * - * @version $Rev$ $Date$ - */ -public class Object2OMElement extends Java2SimpleTypeTransformer<OMElement> { - - private OMFactory factory; - - public Object2OMElement() { - super(); - factory = OMAbstractFactory.getOMFactory(); - } - - @Override - protected OMElement createElement(QName element, String text, TransformationContext context) { - OMElement omElement = AxiomHelper.createOMElement(factory, element); - if (text == null) { - OMNamespace xsi = factory.createOMNamespace("http://www.w3.org/2001/XMLSchema-instance", "xsi"); - OMAttribute nil = factory.createOMAttribute("nil", xsi, "true"); - omElement.addAttribute(nil); - } else { - factory.createOMText(omElement, text); - } - return omElement; - } - - @Override - public Class getTargetType() { - return OMElement.class; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/String2OMElement.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/String2OMElement.java deleted file mode 100644 index af315b3c11..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/String2OMElement.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import java.io.ByteArrayInputStream; - -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.BaseTransformer; - -/** - * - * @version $Rev$ $Date$ - */ -public class String2OMElement extends BaseTransformer<String, OMElement> implements - PullTransformer<String, OMElement> { - - @SuppressWarnings("unchecked") - public OMElement transform(String source, TransformationContext context) { - try { - StAXOMBuilder builder = new StAXOMBuilder(new ByteArrayInputStream(source.getBytes("UTF-8"))); - OMElement element = builder.getDocumentElement(); - AxiomHelper.adjustElementName(context, element); - return element; - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - protected Class<OMElement> getTargetType() { - return OMElement.class; - } - - @Override - protected Class<String> getSourceType() { - return String.class; - } - - @Override - public int getWeight() { - return 40; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/XMLStreamReader2OMElement.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/XMLStreamReader2OMElement.java deleted file mode 100644 index 173a9ab384..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/java/org/apache/tuscany/sca/databinding/axiom/XMLStreamReader2OMElement.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import javax.xml.stream.XMLStreamReader; - -import org.apache.axiom.om.OMElement; -import org.apache.axiom.om.impl.builder.StAXOMBuilder; -import org.apache.tuscany.sca.databinding.PullTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.BaseTransformer; - -/** - * - * @version $Rev$ $Date$ - */ -public class XMLStreamReader2OMElement extends BaseTransformer<XMLStreamReader, OMElement> implements - PullTransformer<XMLStreamReader, OMElement> { - - public XMLStreamReader2OMElement() { - super(); - } - - public OMElement transform(XMLStreamReader source, TransformationContext context) { - if (source == null) { - return null; - } - try { - StAXOMBuilder builder = new StAXOMBuilder(source); - OMElement element = builder.getDocumentElement(); - AxiomHelper.adjustElementName(context, element); - return element; - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - protected Class<OMElement> getTargetType() { - return OMElement.class; - } - - @Override - protected Class<XMLStreamReader> getSourceType() { - return XMLStreamReader.class; - } - - @Override - public int getWeight() { - return 10; - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding deleted file mode 100644 index f2b874e0e8..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding +++ /dev/null @@ -1,21 +0,0 @@ -# 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. - -# implementation classes for the databindings -org.apache.tuscany.sca.databinding.axiom.AxiomDataBinding;name=org.apache.axiom.om.OMElement - -
diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer deleted file mode 100644 index 685b76000c..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer +++ /dev/null @@ -1,33 +0,0 @@ -# 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.
-
-# Implementation classes for the transformers
-# org.apache.tuscany.sca.databinding.axiom.CallableReference2OMElement;source=org.oasisopen.sca.CallableReference,target=org.apache.axiom.om.OMElement,weight=10
-# org.apache.tuscany.sca.databinding.axiom.OMElement2CallableReference;source=org.apache.axiom.om.OMElement,target=org.oasisopen.sca.CallableReference,weight=10
-org.apache.tuscany.sca.databinding.axiom.Externalizable2OMElement;source=java.io.Externalizable,target=org.apache.axiom.om.OMElement,weight=10
-org.apache.tuscany.sca.databinding.axiom.Externalizable2OMElement;source=org.oasisopen.sca.ServiceReference,target=org.apache.axiom.om.OMElement,weight=10
-org.apache.tuscany.sca.databinding.axiom.OMElement2Externalizable;source=org.apache.axiom.om.OMElement,target=java.io.Externalizable,weight=10
-org.apache.tuscany.sca.databinding.axiom.OMElement2Externalizable;source=org.apache.axiom.om.OMElement,target=org.oasisopen.sca.ServiceReference,weight=10
-org.apache.tuscany.sca.databinding.axiom.Exception2OMElement;source=java:exception,target=org.apache.axiom.om.OMElement,weight=10
-org.apache.tuscany.sca.databinding.axiom.OMElement2Exception;source=org.apache.axiom.om.OMElement,target=java:exception,weight=10
-# org.apache.tuscany.sca.databinding.axiom.Object2OMElement;source=java:simpleType,target=org.apache.axiom.om.OMElement,weight=80000
-# org.apache.tuscany.sca.databinding.axiom.OMElement2Object;source=org.apache.axiom.om.OMElement,target=java:simpleType,weight=80000
-org.apache.tuscany.sca.databinding.axiom.OMElement2String;source=org.apache.axiom.om.OMElement,target=java.lang.String,weight=80
-org.apache.tuscany.sca.databinding.axiom.OMElement2XMLStreamReader;source=org.apache.axiom.om.OMElement,target=javax.xml.stream.XMLStreamReader,weight=60
-org.apache.tuscany.sca.databinding.axiom.String2OMElement;source=java.lang.String,target=org.apache.axiom.om.OMElement,weight=80
-org.apache.tuscany.sca.databinding.axiom.XMLStreamReader2OMElement;source=javax.xml.stream.XMLStreamReader,target=org.apache.axiom.om.OMElement,weight=60
-
diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementTestCase.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementTestCase.java deleted file mode 100644 index 951a0483cb..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementTestCase.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * 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.sca.databinding.axiom; - -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamReader; - -import junit.framework.Assert; -import junit.framework.TestCase; - -import org.apache.axiom.om.OMAttribute; -import org.apache.axiom.om.OMElement; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl; -import org.apache.tuscany.sca.databinding.impl.TransformationContextImpl; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -/** - * - * @version $Rev$ $Date$ - */ -public class OMElementTestCase extends TestCase { - private static final String IPO_XML = - "<?xml version=\"1.0\"?>" + "<ipo:purchaseOrder" - + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" - + " xmlns:ipo=\"http://www.example.com/IPO\"" - + " xsi:schemaLocation=\"http://www.example.com/IPO ipo.xsd\"" - + " orderDate=\"1999-12-01\">" - + " <shipTo exportCode=\"1\" xsi:type=\"ipo:UKAddress\">" - + " <name>Helen Zoe</name>" - + " <street>47 Eden Street</street>" - + " <city>Cambridge</city>" - + " <postcode>CB1 1JR</postcode>" - + " </shipTo>" - + " <billTo xsi:type=\"ipo:USAddress\">" - + " <name>Robert Smith</name>" - + " <street>8 Oak Avenue</street>" - + " <city>Old Town</city>" - + " <state>PA</state>" - + " <zip>95819</zip>" - + " </billTo>" - + " <items>" - + " <item partNum=\"833-AA\">" - + " <productName>Lapis necklace</productName>" - + " <quantity>1</quantity>" - + " <USPrice>99.95</USPrice>" - + " <ipo:comment>Want this for the holidays</ipo:comment>" - + " <shipDate>1999-12-05</shipDate>" - + " </item>" - + " </items>" - + "</ipo:purchaseOrder>"; - - public final void testStringTransform() { - String2OMElement t1 = new String2OMElement(); - OMElement element = t1.transform(IPO_XML, null); - OMElement2String t2 = new OMElement2String(); - String xml = t2.transform(element, null); - Assert.assertNotNull(xml); - Assert.assertNotNull(xml.indexOf("<ipo:comment>") != -1); - } - - public final void testStringTransform2() { - String str = - "<p0:firstName xmlns:xml=\"http://www.w3.org/XML/1998/namespace\" " + "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " - + "xmlns:p0=\"http://helloworld\">Robert</p0:firstName>"; - String2OMElement t1 = new String2OMElement(); - OMElement element = t1.transform(str, null); - OMElement2String t2 = new OMElement2String(); - String xml = t2.transform(element, null); - Assert.assertNotNull(xml); - Assert.assertNotNull(xml.indexOf("<ipo:comment>") != -1); - } - - public final void testStAXTransform() { - String2OMElement t1 = new String2OMElement(); - OMElement element = t1.transform(IPO_XML, null); - - OMElement2XMLStreamReader t2 = new OMElement2XMLStreamReader(); - XMLStreamReader reader = t2.transform(element, null); - - XMLStreamReader2OMElement t3 = new XMLStreamReader2OMElement(); - OMElement element2 = t3.transform(reader, null); - - Assert.assertEquals(element2.getQName(), element.getQName()); - Assert.assertEquals(new QName("http://www.example.com/IPO", "purchaseOrder"), element2.getQName()); - } - - public final void testCopy() { - String2OMElement t1 = new String2OMElement(); - OMElement element = t1.transform(IPO_XML, null); - OMElement copy = (OMElement)new AxiomDataBinding().copy(element, null, null, null, null); - assertNotSame(element, copy); - assertEquals(new QName("http://www.example.com/IPO", "purchaseOrder"), copy.getQName()); - } - - private static final QName XSI_NIL = new QName("http://www.w3.org/2001/XMLSchema-instance", "nil", "xsi"); - - public final void testNil() { - Object2OMElement t1 = new Object2OMElement(); - TransformationContext context = new TransformationContextImpl(); - DataType<XMLType> dataType = - new DataTypeImpl<XMLType>(int.class, new XMLType(new QName("http://ns1", "nilElement"), - SimpleTypeMapperImpl.XSD_INT)); - context.setTargetDataType(dataType); - OMElement element = t1.transform(null, context); - OMAttribute attribute = element.getAttribute(XSI_NIL); - Assert.assertNotNull(attribute); - Assert.assertEquals("true", attribute.getAttributeValue()); - } - -} diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandlerTestCase.java b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandlerTestCase.java deleted file mode 100644 index fe42603108..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/java/org/apache/tuscany/sca/databinding/axiom/OMElementWrapperHandlerTestCase.java +++ /dev/null @@ -1,150 +0,0 @@ -/*
- * 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.sca.databinding.axiom;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.util.AXIOMUtil;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.interfacedef.impl.OperationImpl;
-import org.apache.tuscany.sca.interfacedef.util.ElementInfo;
-import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-
-/**
- * Test case for OMElementWrapperHandler
- *
- * @version $Rev$ $Date$
- */
-public class OMElementWrapperHandlerTestCase {
- private static final QName INPUT1 = new QName("http://ns1", "input1");
- private static final QName INPUT2 = new QName("http://ns2", "input2");
- private static final QName INPUT3 = new QName("http://ns3", "input3");
- private static final QName INPUT4 = new QName("http://ns4", "input4");
- private String WRAPPER_XML =
- "<?xml version=\"1.0\"?>" + "<wrapper"
- + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
- + " xmlns:ns1=\"http://ns1\""
- + " xmlns:ns2=\"http://ns2\""
- + " xmlns:ns3=\"http://ns3\""
- + " xmlns:ns4=\"http://ns4\">"
- + " <ns1:input1 xsi:type=\"ns1:Input1Type\">"
- // Eliminating whitespace within the quotes allows us to have a simple compare.
- + "input1ContentsA"
- + "</ns1:input1>"
- + " <ns1:input1 xsi:nil=\"true\"/>"
- + " <ns1:input1>"
- + "input1ContentsB"
- + "</ns1:input1>"
- + " <ns3:input3 xsi:type=\"ns3:Input3Type\">"
- + "input3ContentsA"
- + "</ns3:input3>"
- + " <ns4:input4>"
- + "input4ContentsA"
- + " </ns4:input4>"
- + " </wrapper>";
-
- private OMElementWrapperHandler handler;
- private Operation op;
-
- @Before
- public void setUp() throws Exception {
- this.handler = new OMElementWrapperHandler();
-
- List<ElementInfo> elements = new ArrayList<ElementInfo>();
- for (QName inQName : new QName[] { INPUT1, INPUT2, INPUT3, INPUT4 }) {
- ElementInfo e = new ElementInfo(inQName, null);
- e.setNillable(true);
- elements.add(e);
- }
- // INPUT1,4 are like maxOccurs="unbounded"
- elements.get(0).setMany(true);
- elements.get(3).setMany(true);
- // INPUT2 is like minOccurs="0", nillable="false"
- elements.get(1).setOmissible(true);
- elements.get(1).setNillable(false);
-
- WrapperInfo wrapperInfo = new WrapperInfo(AxiomDataBinding.NAME, null, elements);
- this.op = new OperationImpl();
- op.setInputWrapper(wrapperInfo);
- }
-
- @Test
- public void testGetChildren() {
- try {
- OMElement wrapperElem = AXIOMUtil.stringToOM(WRAPPER_XML);
- List children = handler.getChildren(wrapperElem, op, true);
- Assert.assertEquals(4, children.size());
- Object[] firstChild = (Object[])children.get(0);
- Assert.assertEquals(3, firstChild.length);
- Assert.assertEquals("input1ContentsB", ((OMElement)firstChild[2]).getText());
- Object secondChild = children.get(1);
- Assert.assertNull(secondChild);
- OMElement thirdChild = (OMElement)children.get(2);
- Assert.assertEquals("input3ContentsA", thirdChild.getText());
- Object[] fourthChild = (Object[])children.get(3);
- Assert.assertEquals(1, fourthChild.length);
- } catch (XMLStreamException e) {
- throw new RuntimeException(e);
- }
- }
-
- @Test
- public void testSetChildren() {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMElement wrapper = factory.createOMElement("wrapper", "myNamespace", "myns");
- OMElement[] in1 = new OMElement[2];
- in1[0] = factory.createOMElement(INPUT1);
- in1[1] = factory.createOMElement(INPUT1);
- OMElement in2 = null;
- OMElement in3 = factory.createOMElement(INPUT3);
- OMElement[] in4 = new OMElement[1];
- in4[0] = factory.createOMElement(INPUT4);
- Object[] parms = new Object[] {in1, in2, in3, in4};
-
- handler.setChildren(wrapper, parms, op, true);
-
- Iterator<OMElement> iter = (Iterator<OMElement>)wrapper.getChildElements();
- OMElement elem1 = iter.next();
- OMElement elem2 = iter.next();
- OMElement elem3 = iter.next();
- OMElement elem4 = iter.next();
- Assert.assertFalse(iter.hasNext());
-
- Assert.assertEquals(INPUT1, elem1.getQName());
- Assert.assertEquals(INPUT1, elem2.getQName());
- Assert.assertEquals(INPUT3, elem3.getQName());
- Assert.assertEquals(INPUT4, elem4.getQName());
- }
-
-}
-
diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/ipo.xml b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/ipo.xml deleted file mode 100644 index df901d183d..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/ipo.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0"?> -<!-- - * 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. ---> -<ipo:purchaseOrder - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:ipo="http://www.example.com/IPO" - xsi:schemaLocation="http://www.example.com/IPO ipo.xsd" - orderDate="1999-12-01"> - - <shipTo exportCode="1" xsi:type="ipo:UKAddress"> - <name>Helen Zoe</name> - <street>47 Eden Street</street> - <city>Cambridge</city> - <postcode>CB1 1JR</postcode> - </shipTo> - - <billTo xsi:type="ipo:USAddress"> - <name>Robert Smith</name> - <street>8 Oak Avenue</street> - <city>Old Town</city> - <state>PA</state> - <zip>95819</zip> - </billTo> - - <items> - <item partNum="833-AA"> - <productName>Lapis necklace</productName> - <quantity>1</quantity> - <USPrice>99.95</USPrice> - <ipo:comment>Want this for the holidays</ipo:comment> - <shipDate>1999-12-05</shipDate> - </item> - </items> -</ipo:purchaseOrder> - diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/ipo.xsd b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/ipo.xsd deleted file mode 100755 index af1e73172d..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/ipo.xsd +++ /dev/null @@ -1,137 +0,0 @@ -<!-- - * 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. ---> - -<schema targetNamespace="http://www.example.com/IPO" - xmlns="http://www.w3.org/2001/XMLSchema" - xmlns:ipo="http://www.example.com/IPO"> - - <annotation> - <documentation xml:lang="en"> - International Purchase order schema for Example.com - Copyright 2000 Example.com. All rights reserved. - </documentation> - </annotation> - - - <element name="purchaseOrder" type="ipo:PurchaseOrderType" /> - - <element name="comment" type="string" /> - - <complexType name="PurchaseOrderType"> - <sequence> - <element name="shipTo" type="ipo:Address" /> - <element name="billTo" type="ipo:Address" /> - <element ref="ipo:comment" minOccurs="0" /> - <element name="items" type="ipo:Items" /> - </sequence> - <attribute name="orderDate" type="date" /> - </complexType> - - <complexType name="Items"> - <sequence> - <element name="item" minOccurs="0" maxOccurs="unbounded"> - <complexType> - <sequence> - <element name="productName" type="string" /> - <element name="quantity"> - <simpleType> - <restriction base="positiveInteger"> - <maxExclusive value="100" /> - </restriction> - </simpleType> - </element> - <element name="USPrice" type="decimal" /> - <element ref="ipo:comment" minOccurs="0" /> - <element name="shipDate" type="date" - minOccurs="0" /> - </sequence> - <attribute name="partNum" type="ipo:SKU" - use="required" /> - </complexType> - </element> - </sequence> - </complexType> - - <simpleType name="SKU"> - <restriction base="string"> - <pattern value="\d{3}-[A-Z]{2}" /> - </restriction> - </simpleType> - - <complexType name="Address"> - <sequence> - <element name="name" type="string" /> - <element name="street" type="string" /> - <element name="city" type="string" /> - </sequence> - </complexType> - - <complexType name="USAddress"> - <complexContent> - <extension base="ipo:Address"> - <sequence> - <element name="state" type="ipo:USState" /> - <element name="zip" type="positiveInteger" /> - </sequence> - </extension> - </complexContent> - </complexType> - - <complexType name="UKAddress"> - <complexContent> - <extension base="ipo:Address"> - <sequence> - <element name="postcode" type="ipo:UKPostcode" /> - </sequence> - <attribute name="exportCode" type="positiveInteger" - fixed="1" /> - </extension> - </complexContent> - </complexType> - - <!-- other Address derivations for more countries --> - - <simpleType name="USState"> - <restriction base="string"> - <enumeration value="AK" /> - <enumeration value="AL" /> - <enumeration value="AR" /> - <enumeration value="CA" /> - <enumeration value="PA" /> - <!-- and so on ... --> - </restriction> - </simpleType> - - <simpleType name="Postcode"> - <restriction base="string"> - <length value="7" fixed="true" /> - </restriction> - </simpleType> - - - <simpleType name="UKPostcode"> - <restriction base="ipo:Postcode"> - <pattern value="[A-Z]{2}\d\s\d[A-Z]{2}" /> - </restriction> - </simpleType> - - - -</schema> - diff --git a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/order.wsdl b/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/order.wsdl deleted file mode 100644 index 913d9e4928..0000000000 --- a/sca-java-2.x/tags/2.0.1-RC1/modules/databinding-axiom/src/test/resources/order.wsdl +++ /dev/null @@ -1,76 +0,0 @@ -<?xml version="1.0"?> -<!-- - * 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. ---> -<definitions name="StockQuote" targetNamespace="http://example.com/order.wsdl" xmlns:tns="http://example.com/order.wsdl" - xmlns:xsd1="http://example.com/order.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns="http://schemas.xmlsoap.org/wsdl/"> - - <types> - <schema targetNamespace="http://example.com/order.xsd" xmlns="http://www.w3.org/2001/XMLSchema" - xmlns:ipo="http://www.example.com/IPO"> - <import namespace="http://www.example.com/IPO" schemaLocation="ipo.xsd"/> - <element name="checkOrderStatus"> - <complexType> - <sequence> - <element name="customerId" type="string" /> - <element name="order" type="ipo:PurchaseOrderType" /> - <element name="flag" type="int" /> - </sequence> - </complexType> - </element> - <element name="checkOrderStatusResponse"> - <complexType> - <sequence> - <element name="status" type="string" /> - </sequence> - </complexType> - </element> - <element name="note" type="string" /> - </schema> - </types> - - <message name="CheckOrderStatusInput1"> - <part name="body" element="xsd1:checkOrderStatus" /> - </message> - - <message name="CheckOrderStatusOutput1"> - <part name="body" element="xsd1:checkOrderStatusResponse" /> - </message> - - <message name="CheckOrderStatusInput2"> - <part name="p1" element="xsd1:checkOrderStatus" /> - <part name="p2" element="xsd1:note" /> - </message> - - <message name="CheckOrderStatusOutput2"> - <part name="p1" element="xsd1:checkOrderStatusResponse" /> - </message> - - <portType name="OrderPortType"> - <operation name="checkOrderStatus"> - <input message="tns:CheckOrderStatusInput1" /> - <output message="tns:CheckOrderStatusOutput1" /> - </operation> - <operation name="checkOrderStatus2"> - <input message="tns:CheckOrderStatusInput2" /> - <output message="tns:CheckOrderStatusOutput2" /> - </operation> - </portType> - -</definitions>
\ No newline at end of file |