From 07b7dfd1a70ba222b899d9813f8c449dbf3b785f Mon Sep 17 00:00:00 2001 From: lresende Date: Wed, 11 Nov 2009 23:07:28 +0000 Subject: Moving 1.x branches git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835124 13f79535-47bb-0310-9956-ffa450edef68 --- .../databinding/jaxb/BeanXMLStreamReaderImpl.java | 312 --------------------- .../tuscany/sca/databinding/jaxb/JAXB2Node.java | 72 ----- .../tuscany/sca/databinding/jaxb/JAXB2SAX.java | 70 ----- .../tuscany/sca/databinding/jaxb/JAXB2String.java | 74 ----- .../sca/databinding/jaxb/JAXB2XMLStreamReader.java | 73 ----- .../sca/databinding/jaxb/JAXBContextHelper.java | 173 ------------ .../sca/databinding/jaxb/JAXBDataBinding.java | 116 -------- .../sca/databinding/jaxb/JAXBExceptionHandler.java | 107 ------- .../sca/databinding/jaxb/JAXBWrapperHandler.java | 175 ------------ .../jaxb/JAXWSJavaInterfaceProcessor.java | 117 -------- .../tuscany/sca/databinding/jaxb/Node2JAXB.java | 69 ----- .../tuscany/sca/databinding/jaxb/Reader2JAXB.java | 70 ----- .../tuscany/sca/databinding/jaxb/String2JAXB.java | 76 ----- .../sca/databinding/jaxb/XMLStreamReader2JAXB.java | 73 ----- .../org.apache.tuscany.sca.databinding.DataBinding | 19 -- ....apache.tuscany.sca.databinding.PullTransformer | 32 --- ...terfacedef.java.introspect.JavaInterfaceVisitor | 18 -- .../databinding/jaxb/JAXBDataBindingTestCase.java | 129 --------- .../jaxb/JAXBExceptionHandlerTestCase.java | 81 ------ .../tuscany/databinding/jaxb/JAXBTestCase.java | 163 ----------- .../jaxb/JAXBWrapperHandlerTestCase.java | 72 ----- .../jaxb/JAXWSJavaInterfaceProcessorTestCase.java | 102 ------- .../apache/tuscany/databinding/jaxb/MyBean.java | 158 ----------- .../tuscany/databinding/jaxb/MyInterface.java | 29 -- .../tuscany/databinding/jaxb/MyInterfaceImpl.java | 67 ----- .../tuscany/databinding/jaxb/POJOTestCase.java | 219 --------------- .../databinding/jaxb/fault/InvalidSymbolFault.java | 78 ------ .../jaxb/fault/InvalidSymbolFault_Exception.java | 64 ----- .../databinding-jaxb/src/test/resources/ipo.xsd | 163 ----------- 29 files changed, 2971 deletions(-) delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java delete mode 100755 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBExceptionHandler.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHandler.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXWSJavaInterfaceProcessor.java delete mode 100755 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java delete mode 100755 branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBDataBindingTestCase.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java delete mode 100755 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBTestCase.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandlerTestCase.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessorTestCase.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyBean.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterface.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterfaceImpl.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault.java delete mode 100644 branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault_Exception.java delete mode 100755 branches/sca-java-1.1/modules/databinding-jaxb/src/test/resources/ipo.xsd (limited to 'branches/sca-java-1.1/modules/databinding-jaxb/src') diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java deleted file mode 100644 index 518a15c0b5..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/BeanXMLStreamReaderImpl.java +++ /dev/null @@ -1,312 +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.jaxb; - -import java.lang.reflect.Array; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl; -import org.apache.tuscany.sca.databinding.xml.SimpleXmlNodeImpl; -import org.apache.tuscany.sca.databinding.xml.XmlNode; -import org.apache.tuscany.sca.databinding.xml.XmlTreeStreamReaderImpl; -import org.apache.tuscany.sca.interfacedef.util.TypeInfo; - -import com.sun.xml.bind.v2.model.annotation.RuntimeInlineAnnotationReader; -import com.sun.xml.bind.v2.model.core.Ref; -import com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder; -import com.sun.xml.bind.v2.model.runtime.RuntimeClassInfo; -import com.sun.xml.bind.v2.model.runtime.RuntimePropertyInfo; -import com.sun.xml.bind.v2.model.runtime.RuntimeTypeInfoSet; -import com.sun.xml.bind.v2.runtime.IllegalAnnotationsException; -import com.sun.xml.bind.v2.runtime.JAXBContextImpl; - -/** - * @version $Rev$ $Date$ - */ -public class BeanXMLStreamReaderImpl extends XmlTreeStreamReaderImpl { - private final static Comparator COMPARATOR = new Comparator() { - public int compare(Accessor o1, Accessor o2) { - return o1.getName().compareTo(o2.getName()); - } - }; - - private final static String XSI_PREFIX = "xsi"; - private final static String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance"; - - private final static XmlNode getXSIType(QName realType) { - QName xsiType = new QName(XSI_NS, "type", XSI_PREFIX); - String prefix = realType.getPrefix(); - String typeName = realType.getLocalPart(); - if (prefix != null && !prefix.equals("")) { - typeName = prefix + ":" + realType.getLocalPart(); - } - return new SimpleXmlNodeImpl(xsiType, XmlNode.Type.ATTRIBUTE); - } - - /** - * Represent a Map.Entry XML node - * @version $Rev$ $Date$ - */ - public static class MapEntryXmlNodeImpl extends SimpleXmlNodeImpl implements XmlNode { - private Map.Entry entry; - - public MapEntryXmlNodeImpl(Entry entry) { - super(new QName("", "entry"), entry); - this.entry = entry; - } - - public Iterator children() { - List nodes = new ArrayList(); - XmlNode key = new BeanXmlNodeImpl(new QName("", "key"), entry.getKey()); - XmlNode value = new BeanXmlNodeImpl(new QName("", "value"), entry.getValue()); - nodes.add(key); - nodes.add(value); - return nodes.iterator(); - } - } - - public static class BeanXmlNodeImpl extends SimpleXmlNodeImpl implements XmlNode { - private static final Object[] NULL = null; - private static final SimpleTypeMapperImpl MAPPER = new SimpleTypeMapperImpl(); - - public BeanXmlNodeImpl(Object bean) { - super(getName(bean == null ? null : bean.getClass()), bean); - } - - public BeanXmlNodeImpl(QName name, Object bean) { - super(name, bean); - } - - private static boolean isSimpleType(Class javaType) { - return SimpleTypeMapperImpl.getXMLType(javaType) != null; - } - - private static String getStringValue(Object o) { - if (o == null) { - return null; - } - TypeInfo info = SimpleTypeMapperImpl.getXMLType(o.getClass()); - if (info != null) { - return MAPPER.toXMLLiteral(info.getQName(), o, null); - } else { - return String.valueOf(o); - } - } - - public Iterator children() { - if (name == null) { - return null; - } - if (value == null) { - return super.children(); - } - if (isSimpleType(value.getClass())) { - XmlNode textNode = new BeanXmlNodeImpl(null, value); - return Arrays.asList(textNode).iterator(); - } - if (Map.class.isAssignableFrom(value.getClass())) { - List entries = new ArrayList(); - Map map = (Map)value; - if (map != null) { - for (Object e : map.entrySet()) { - Map.Entry entry = (Map.Entry)e; - entries.add(new MapEntryXmlNodeImpl(entry)); - } - } - return entries.iterator(); - } - try { - Map accessorMap = getAccessors(value); - List accessorList = new ArrayList(accessorMap.values()); - Collections.sort(accessorList, COMPARATOR); - - List props = new ArrayList(); - for (Accessor accessor : accessorList) { - Class pType = accessor.getType(); - - QName pName = new QName(name.getNamespaceURI(), accessor.getName()); - Object pValue = accessor.getValue(); - if (pType.isArray()) { - if (pValue != null) { - int i1 = Array.getLength(pValue); - for (int j = 0; j < i1; j++) { - Object o = Array.get(pValue, j); - props.add(new BeanXmlNodeImpl(pName, o)); - } - } else { - // TODO: How to handle null? - } - } else if (Collection.class.isAssignableFrom(pType)) { - Collection objList = (Collection)pValue; - if (objList != null && objList.size() > 0) { - for (Iterator j = objList.iterator(); j.hasNext();) { - Object o = j.next(); - props.add(new BeanXmlNodeImpl(pName, o)); - } - - } else { - // How to handle null - } - } else { - props.add(new BeanXmlNodeImpl(pName, pValue)); - } - } - return props.iterator(); - } catch (Exception e) { - throw new IllegalArgumentException(e); - } - } - - public QName getName() { - return name; - } - - public String getValue() { - return getStringValue(value); - } - - public static QName getName(Class cls) { - if (cls == null) { - return null; - } - Package pkg = cls.getPackage(); - if (pkg == null) { - return new QName("", cls.getSimpleName()); - } - StringBuffer ns = new StringBuffer("http://"); - String[] names = pkg.getName().split("\\."); - for (int i = names.length - 1; i >= 0; i--) { - ns.append(names[i]); - if (i != 0) { - ns.append('.'); - } - } - ns.append('/'); - return new QName(ns.toString(), cls.getSimpleName()); - } - - } - - public BeanXMLStreamReaderImpl(QName name, Object bean) { - super(getXmlNode(name, bean)); - } - - private static BeanXmlNodeImpl getXmlNode(QName name, Object bean) { - BeanXmlNodeImpl root = null; - if (name != null) { - root = new BeanXmlNodeImpl(name, bean); - } else { - root = new BeanXmlNodeImpl(bean); - } - return root; - } - - public static interface Accessor { - String getName(); - - Class getType(); - - Object getValue() throws Exception; - - void setValue(Object value) throws Exception; - } - - private static RuntimeTypeInfoSet create(Class... classes) throws Exception { - IllegalAnnotationsException.Builder errorListener = new IllegalAnnotationsException.Builder(); - RuntimeInlineAnnotationReader reader = new RuntimeInlineAnnotationReader(); - JAXBContextImpl context = - new JAXBContextImpl(classes, null, Collections. emptyMap(), null, false, reader, false, false); - RuntimeModelBuilder builder = - new RuntimeModelBuilder(context, reader, Collections. emptyMap(), null); - builder.setErrorHandler(errorListener); - for (Class c : classes) - builder.getTypeInfo(new Ref(c)); - - RuntimeTypeInfoSet r = builder.link(); - errorListener.check(); - return r; - } - - private static class JAXBAccessor implements Accessor { - private Object target; - private RuntimePropertyInfo prop; - - public JAXBAccessor(Object target, RuntimePropertyInfo field) { - super(); - this.target = target; - this.prop = field; - } - - public String getName() { - return prop.getName(); - } - - public Object getValue() throws Exception { - return prop.getAccessor().get(target); - } - - public void setValue(Object value) throws Exception { - prop.getAccessor().set(target, value); - } - - public Class getType() { - Type type = prop.getRawType(); - if (type instanceof Class) { - return (Class)type; - } else if (type instanceof ParameterizedType) { - ParameterizedType pType = (ParameterizedType)type; - type = pType.getRawType(); - if (type instanceof Class) { - return (Class)type; - } - } - return Object.class; - } - - } - - private static Map getAccessors(Object target) throws Exception { - if (target == null) { - return Collections.emptyMap(); - } - Map map = new HashMap(); - Class type = target.getClass(); - RuntimeTypeInfoSet set = create(type); - RuntimeClassInfo clsInfo = (RuntimeClassInfo)set.getTypeInfo(type); - for (RuntimePropertyInfo f : clsInfo.getProperties()) { - map.put(f.getName(), new JAXBAccessor(target, f)); - } - return map; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java deleted file mode 100755 index d1a64a782c..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2Node.java +++ /dev/null @@ -1,72 +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.jaxb; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.Marshaller; - -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.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.impl.DOMHelper; -import org.w3c.dom.Document; -import org.w3c.dom.Node; - -public class JAXB2Node extends BaseTransformer implements PullTransformer { - - public Node transform(Object source, TransformationContext tContext) { -// if (source == null) { -// return null; -// } - try { - JAXBContext context = JAXBContextHelper.createJAXBContext(tContext, true); - Marshaller marshaller = context.createMarshaller(); - // FIXME: The default Marshaller doesn't support - // marshaller.getNode() - Document document = DOMHelper.newDocument(); - JAXBElement jaxbElement = JAXBContextHelper.createJAXBElement(tContext.getSourceDataType(), source); - marshaller.marshal(jaxbElement, document); - return DOMHelper.adjustElementName(tContext, document.getDocumentElement()); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return Object.class; - } - - @Override - public Class getTargetType() { - return Node.class; - } - - @Override - public int getWeight() { - return 30; - } - - @Override - public String getSourceDataBinding() { - return JAXBDataBinding.NAME; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.java deleted file mode 100644 index 12f44b479e..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2SAX.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.jaxb; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.Marshaller; - -import org.apache.tuscany.sca.databinding.PushTransformer; -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.BaseTransformer; -import org.xml.sax.ContentHandler; - -/** - * @version $Rev$ $Date$ - */ -public class JAXB2SAX extends BaseTransformer implements - PushTransformer { - - @Override - protected Class getSourceType() { - return Object.class; - } - - @Override - protected Class getTargetType() { - return ContentHandler.class; - } - - /** - * @see org.apache.tuscany.sca.databinding.PushTransformer#transform(java.lang.Object, java.lang.Object, org.apache.tuscany.sca.databinding.TransformationContext) - */ - public void transform(Object source, ContentHandler target, TransformationContext tContext) { - try { - JAXBContext context = JAXBContextHelper.createJAXBContext(tContext, true); - Marshaller marshaller = context.createMarshaller(); - JAXBElement jaxbElement = JAXBContextHelper.createJAXBElement(tContext.getSourceDataType(), source); - marshaller.marshal(jaxbElement, target); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - public int getWeight() { - return 20; - } - - @Override - public String getSourceDataBinding() { - return JAXBDataBinding.NAME; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java deleted file mode 100644 index d34ee8b13c..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2String.java +++ /dev/null @@ -1,74 +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.jaxb; - -import java.io.StringWriter; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.Marshaller; -import javax.xml.transform.stream.StreamResult; - -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.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.xml.XMLStringDataBinding; - -public class JAXB2String extends BaseTransformer implements PullTransformer { - - public String transform(Object source, TransformationContext tContext) { - try { - JAXBContext context = JAXBContextHelper.createJAXBContext(tContext, true); - Marshaller marshaller = context.createMarshaller(); - StringWriter writer = new StringWriter(); - StreamResult result = new StreamResult(writer); - JAXBElement jaxbElement = JAXBContextHelper.createJAXBElement(tContext.getSourceDataType(), source); - marshaller.marshal(jaxbElement, result); - return writer.toString(); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return Object.class; - } - - @Override - public Class getTargetType() { - return String.class; - } - - @Override - public int getWeight() { - return 30; - } - - @Override - public String getSourceDataBinding() { - return JAXBDataBinding.NAME; - } - - @Override - public String getTargetDataBinding() { - return XMLStringDataBinding.NAME; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java deleted file mode 100644 index 8aaee84f80..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXB2XMLStreamReader.java +++ /dev/null @@ -1,73 +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.jaxb; - -import javax.xml.bind.JAXBElement; -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamReader; - -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.impl.BaseTransformer; - -public class JAXB2XMLStreamReader extends BaseTransformer implements - PullTransformer { - - public JAXB2XMLStreamReader() { - super(); - } - - public XMLStreamReader transform(Object source, TransformationContext context) { - if (source == null) { - return null; - } - try { - QName name = null; - Object bean = source; - JAXBElement element = JAXBContextHelper.createJAXBElement(context.getSourceDataType(), source); - name = element.getName(); - bean = element.getValue(); - BeanXMLStreamReaderImpl reader = new BeanXMLStreamReaderImpl(name, bean); - return reader; - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return Object.class; - } - - @Override - public Class getTargetType() { - return XMLStreamReader.class; - } - - @Override - public int getWeight() { - return 10; - } - - @Override - public String getTargetDataBinding() { - return JAXBDataBinding.NAME; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java deleted file mode 100644 index 968a26eb62..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBContextHelper.java +++ /dev/null @@ -1,173 +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.jaxb; - -import java.beans.Introspector; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.JAXBException; -import javax.xml.bind.annotation.XmlEnum; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSchema; -import javax.xml.bind.annotation.XmlType; -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.impl.SimpleTypeMapperImpl; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -public class JAXBContextHelper { - // TODO: Do we need to set them for source and target? - public static final String JAXB_CLASSES = "jaxb.classes"; - - public static final String JAXB_CONTEXT_PATH = "jaxb.contextPath"; - - private JAXBContextHelper() { - } - - public static JAXBContext createJAXBContext(TransformationContext tContext, boolean source) throws JAXBException { - if (tContext == null) - throw new TransformationException("JAXB context is not set for the transformation."); - - DataType dataType = source ? tContext.getSourceDataType() : tContext.getTargetDataType(); - // FIXME: We should check the context path or classes - // FIXME: What should we do if JAXB is an intermediate node? - - // String contextPath = null; - JAXBContext context = null; - Class cls = getJavaType(dataType); - - context = JAXBContext.newInstance(cls); - - if (context == null) { - throw new TransformationException("JAXB context is not set for the transformation."); - } - return context; - } - - @SuppressWarnings("unchecked") - public static JAXBElement createJAXBElement(DataType dataType, Object value) { - if (value instanceof JAXBElement) { - return (JAXBElement)value; - } else { - Class type = dataType.getPhysical(); - Object logical = dataType.getLogical(); - QName elementName = JAXBDataBinding.ROOT_ELEMENT; - if (logical instanceof XMLType) { - XMLType xmlType = (XMLType)logical; - QName element = xmlType.getElementName(); - if (element != null) { - elementName = element; - } else { - /** - * Set the declared type to Object.class so that xsi:type - * will be produced - */ - type = Object.class; - } - } else { - type = Object.class; - } - return new JAXBElement(elementName, type, value); - } - } - - @SuppressWarnings("unchecked") - public static Object createReturnValue(DataType dataType, Object value) { - Class cls = getJavaType(dataType); - if (cls == JAXBElement.class) { - return createJAXBElement(dataType, value); - } else { - if (value instanceof JAXBElement) { - return ((JAXBElement)value).getValue(); - } else { - return value; - } - } - } - - public static Class getJavaType(DataType dataType) { - if (dataType == null) { - return null; - } - Class type = dataType.getPhysical(); - if (JAXBElement.class.isAssignableFrom(type)) { - type = Object.class; - } - if (type == Object.class && dataType.getLogical() instanceof XMLType) { - XMLType xType = (XMLType)dataType.getLogical(); - Class javaType = SimpleTypeMapperImpl.getJavaType(xType.getTypeName()); - if (javaType != null) { - type = javaType; - } - } - return type; - } - - public static XMLType getXmlTypeName(Class javaType) { - String namespace = null; - String name = null; - Package pkg = javaType.getPackage(); - if (pkg != null) { - XmlSchema schema = pkg.getAnnotation(XmlSchema.class); - if (schema != null) { - namespace = schema.namespace(); - } - } - XmlType type = javaType.getAnnotation(XmlType.class); - if (type != null) { - String typeNamespace = type.namespace(); - String typeName = type.name(); - - if (typeNamespace.equals("##default") && typeName.equals("")) { - XmlRootElement rootElement = javaType.getAnnotation(XmlRootElement.class); - if (rootElement != null) { - namespace = rootElement.namespace(); - } else { - // FIXME: The namespace should be from the referencing - // property - namespace = null; - } - } else if (typeNamespace.equals("##default")) { - // namespace is from the package - } else { - namespace = typeNamespace; - } - - if (typeName.equals("##default")) { - name = Introspector.decapitalize(javaType.getSimpleName()); - } else { - name = typeName; - } - } else { - XmlEnum xmlEnum = javaType.getAnnotation(XmlEnum.class); - if (xmlEnum != null) { - name = Introspector.decapitalize(javaType.getSimpleName()); - } - } - if (name == null) { - return null; - } - return new XMLType(null, new QName(namespace, name)); - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java deleted file mode 100644 index 4e2c8d13dc..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBDataBinding.java +++ /dev/null @@ -1,116 +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.jaxb; - -import java.lang.annotation.Annotation; -import java.lang.reflect.ParameterizedType; -import java.lang.reflect.Type; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.databinding.ExceptionHandler; -import org.apache.tuscany.sca.databinding.impl.BaseDataBinding; -import org.apache.tuscany.sca.databinding.impl.DOMHelper; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.util.XMLType; -import org.w3c.dom.Document; - -/** - * JAXB DataBinding - */ -public class JAXBDataBinding extends BaseDataBinding { - public static final String NAME = JAXBElement.class.getName(); - public static final String[] ALIASES = new String[] {"jaxb"}; - - public static final String ROOT_NAMESPACE = "http://tuscany.apache.org/xmlns/sca/databinding/jaxb/1.0"; - public static final QName ROOT_ELEMENT = new QName(ROOT_NAMESPACE, "root"); - - public JAXBDataBinding() { - super(NAME, ALIASES, JAXBElement.class); - } - - @Override - public boolean introspect(DataType dataType, Annotation[] annotations) { - Object physical = dataType.getPhysical(); - if (!(physical instanceof Class)) { - return false; - } - Class javaType = (Class)physical; - if (JAXBElement.class.isAssignableFrom(javaType)) { - Type type = javaType.getGenericSuperclass(); - if (type instanceof ParameterizedType) { - ParameterizedType parameterizedType = ((ParameterizedType)type); - Type rawType = parameterizedType.getRawType(); - if (rawType == JAXBElement.class) { - Type actualType = parameterizedType.getActualTypeArguments()[0]; - if (actualType instanceof Class) { - XMLType xmlType = JAXBContextHelper.getXmlTypeName((Class)actualType); - dataType.setLogical(xmlType); - dataType.setDataBinding(getName()); - return true; - } - } - } - if (dataType.getLogical() == null) { - dataType.setLogical(XMLType.UNKNOWN); - } - dataType.setDataBinding(getName()); - return true; - } - - XMLType xmlType = JAXBContextHelper.getXmlTypeName(javaType); - if (xmlType == null) { - return false; - } - dataType.setLogical(xmlType); - dataType.setDataBinding(getName()); - return true; - } - - @SuppressWarnings("unchecked") - @Override - public Object copy(Object arg) { - try { - boolean isElement = false; - Class cls = arg.getClass(); - if (arg instanceof JAXBElement) { - isElement = true; - cls = ((JAXBElement)arg).getDeclaredType(); - } else { - arg = new JAXBElement(ROOT_ELEMENT, Object.class, arg); - } - JAXBContext context = JAXBContext.newInstance(cls); - Document doc = DOMHelper.newDocument(); - context.createMarshaller().marshal(arg, doc); - JAXBElement element = context.createUnmarshaller().unmarshal(doc, cls); - return isElement ? element : element.getValue(); - } catch (Exception e) { - throw new IllegalArgumentException(e); - } - } - - @Override - public ExceptionHandler getExceptionHandler() { - return new JAXBExceptionHandler(); - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBExceptionHandler.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBExceptionHandler.java deleted file mode 100644 index aa37031c04..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBExceptionHandler.java +++ /dev/null @@ -1,107 +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.jaxb; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; - -import javax.xml.namespace.QName; -import javax.xml.ws.WebFault; - -import org.apache.tuscany.sca.databinding.ExceptionHandler; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -/** - * JAXB implementation of ExceptionHandler - * - * @version $Rev$ $Date$ - */ -public class JAXBExceptionHandler implements ExceptionHandler { - private static final Class[] EMPTY_CLASS_ARRAY = new Class[0]; - - /** - *
    - *
  • WrapperException(String message, FaultBean faultInfo)
    - * A constructor where WrapperException is replaced with the name of the - * generated wrapper exception and FaultBean is replaced by the name of the - * generated fault bean. - *
  • WrapperException(String message, FaultBean faultInfo, Throwable - * cause)
    - * A constructor whereWrapperException is replaced with the name of the - * generated wrapper exception and FaultBean is replaced by the name of the - * generated fault bean. The last argument, cause, may be used to convey - * protocol specific fault information - *
- */ - public Exception createException(DataType exceptionType, String message, Object faultInfo, Throwable cause) { - Class exceptionClass = exceptionType.getPhysical(); - DataType faultBeanType = exceptionType.getLogical(); - Class faultBeanClass = faultBeanType.getPhysical(); - try { - Constructor constructor = - exceptionClass.getConstructor(new Class[] {String.class, faultBeanClass, Throwable.class}); - return (Exception)constructor.newInstance(new Object[] {message, faultInfo, cause}); - } catch (Throwable e) { - throw new IllegalArgumentException(e); - } - } - - public Object getFaultInfo(Exception exception) { - if (exception == null) { - return null; - } - try { - Method method = exception.getClass().getMethod("getFaultInfo", EMPTY_CLASS_ARRAY); - return method.invoke(exception, (Object[])null); - } catch (Throwable e) { - throw new IllegalArgumentException(e); - } - } - - public DataType getFaultType(DataType exDataType) { - Class exceptionType = exDataType.getPhysical(); - WebFault webFault = exceptionType.getAnnotation(WebFault.class); - if (webFault == null) { - return null; - } else { - QName element = new QName(webFault.targetNamespace(), webFault.name()); - // TODO: Need to determine the fault bean class - // String faultBean = webFault.faultBean(); - Class faultBeanClass = null; - try { - Method method = exceptionType.getMethod("getFaultInfo", EMPTY_CLASS_ARRAY); - faultBeanClass = method.getReturnType(); - } catch (NoSuchMethodException e) { - faultBeanClass = null; - } - // The logical type of a fault is the QName of the element that the - // only part in - // the fault message references - DataType faultType = - new DataTypeImpl(JAXBDataBinding.NAME, faultBeanClass, new XMLType(element, null)); - // faultType.setMetadata(ElementInfo.class.getName(), new - // ElementInfo(element, null)); - return faultType; - } - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHandler.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHandler.java deleted file mode 100644 index c3e97a4818..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXBWrapperHandler.java +++ /dev/null @@ -1,175 +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.jaxb; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.bind.JAXBElement; -import javax.xml.bind.annotation.XmlElementDecl; -import javax.xml.bind.annotation.XmlRegistry; -import javax.xml.bind.annotation.XmlType; -import javax.xml.namespace.QName; - -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.TransformationException; -import org.apache.tuscany.sca.databinding.WrapperHandler; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.ElementInfo; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -/** - * JAXB WrapperHandler implementation - */ -public class JAXBWrapperHandler implements WrapperHandler> { - - public JAXBElement create(ElementInfo element, TransformationContext context) { - try { - // FIXME: How do we map the global element to a factory? - String packageName = null; - String factoryClassName = packageName + ".ObjectFactory"; - ClassLoader classLoader = context != null ? context.getClassLoader() : null; - if (classLoader == null) { - //FIXME Understand why we need this, the classloader should be passed in - classLoader = Thread.currentThread().getContextClassLoader(); - } - Class factoryClass = Class.forName(factoryClassName, true, classLoader); - assert factoryClass.isAnnotationPresent(XmlRegistry.class); - Object factory = factoryClass.newInstance(); - QName elementName = element.getQName(); - Method method = null; - for (Method m : factoryClass.getMethods()) { - XmlElementDecl xmlElement = m.getAnnotation(XmlElementDecl.class); - QName name = new QName(xmlElement.namespace(), xmlElement.name()); - if (xmlElement != null && name.equals(elementName)) { - method = m; - break; - } - } - if (method != null) { - Class typeClass = method.getParameterTypes()[0]; - Object value = typeClass.newInstance(); - return (JAXBElement)method.invoke(factory, new Object[] {value}); - } else { - throw new TransformationException("ObjectFactory cannot be resolved."); - } - } catch (Exception e) { - throw new TransformationException(e); - } - } - - public void setChild(JAXBElement wrapper, int i, ElementInfo childElement, Object value) { - Object wrapperValue = wrapper.getValue(); - Class wrapperClass = wrapperValue.getClass(); - - XmlType xmlType = wrapperClass.getAnnotation(XmlType.class); - String[] properties = xmlType.propOrder(); - String property = properties[i]; - - try { - for (Method m : wrapperClass.getMethods()) { - if (m.getName().equals("set" + capitalize(property))) { - m.invoke(wrapperValue, new Object[] {value}); - return; - } - } - } catch (Throwable e) { - throw new TransformationException(e); - } - } - - private static String capitalize(String name) { - char first = Character.toUpperCase(name.charAt(0)); - return first + name.substring(1); - } - - /** - * @see org.apache.tuscany.sca.databinding.WrapperHandler#getChildren(java.lang.Object, List, TransformationContext) - */ - public List getChildren(JAXBElement wrapper, List childElements, TransformationContext context) { - Object wrapperValue = wrapper.getValue(); - Class wrapperClass = wrapperValue.getClass(); - - XmlType xmlType = wrapperClass.getAnnotation(XmlType.class); - String[] properties = xmlType.propOrder(); - List elements = new ArrayList(); - for (String p : properties) { - try { - Method method = wrapperClass.getMethod("get" + capitalize(p), (Class[])null); - Object value = method.invoke(wrapperValue, (Object[])null); - elements.add(value); - } catch (Throwable e) { - throw new TransformationException(e); - } - } - return elements; - } - - /** - * @see org.apache.tuscany.sca.databinding.WrapperHandler#getWrapperType(org.apache.tuscany.sca.interfacedef.util.ElementInfo, List, org.apache.tuscany.sca.databinding.TransformationContext) - */ - public DataType getWrapperType(ElementInfo element, List childElements, TransformationContext context) { - try { - // FIXME: How do we map the global element to a factory? - String packageName = null; - String factoryClassName = packageName + ".ObjectFactory"; - ClassLoader classLoader = context != null ? context.getClassLoader() : null; - if (classLoader == null) { - //FIXME Understand why we need this, the classloader should be passed in - classLoader = Thread.currentThread().getContextClassLoader(); - } - Class factoryClass = Class.forName(factoryClassName, true, classLoader); - assert factoryClass.isAnnotationPresent(XmlRegistry.class); - QName elementName = element.getQName(); - Method method = null; - for (Method m : factoryClass.getMethods()) { - XmlElementDecl xmlElement = m.getAnnotation(XmlElementDecl.class); - QName name = new QName(xmlElement.namespace(), xmlElement.name()); - if (xmlElement != null && name.equals(elementName)) { - method = m; - break; - } - } - if (method != null) { - Class typeClass = method.getParameterTypes()[0]; - DataType wrapperType = - new DataTypeImpl(JAXBDataBinding.NAME, typeClass, new XMLType(element)); - return wrapperType; - } - - return null; - } catch (Throwable e) { - return null; - } - } - - /** - * @see org.apache.tuscany.sca.databinding.WrapperHandler#isInstance(java.lang.Object, org.apache.tuscany.sca.interfacedef.util.ElementInfo, java.util.List, org.apache.tuscany.sca.databinding.TransformationContext) - */ - public boolean isInstance(Object wrapper, - ElementInfo element, - List childElements, - TransformationContext context) { - // TODO: Implement the logic - return true; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXWSJavaInterfaceProcessor.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXWSJavaInterfaceProcessor.java deleted file mode 100644 index b5ac3fb47f..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/JAXWSJavaInterfaceProcessor.java +++ /dev/null @@ -1,117 +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.jaxb; - -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; - -import javax.jws.WebMethod; -import javax.jws.WebService; - -import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.java.JavaInterface; -import org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor; - -/** - * The databinding annotation processor for java interfaces - * - * @version $Rev$ $Date$ - */ -public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor { - - public JAXWSJavaInterfaceProcessor() { - super(); - } - - public void visitInterface(JavaInterface contract) throws InvalidInterfaceException { - - Class clazz = contract.getJavaClass(); - WebService webService = clazz.getAnnotation(WebService.class); - String tns = ""; - if (webService != null) { - tns = webService.targetNamespace(); - // Mark SEI as Remotable - contract.setRemotable(true); - } - if (!contract.isRemotable()) { - return; - } - Map operations = new HashMap(); - for (Operation op : contract.getOperations()) { - operations.put(op.getName(), op); - } - for (Method method : clazz.getMethods()) { - Operation operation = operations.get(method.getName()); - - WebMethod webMethod = method.getAnnotation(WebMethod.class); - if (webMethod == null) { - return; - } - - /* - String operationName = getValue(webMethod.operationName(), operation.getName()); - - RequestWrapper requestWrapper = method.getAnnotation(RequestWrapper.class); - ResponseWrapper responseWrapper = method.getAnnotation(ResponseWrapper.class); - if (requestWrapper == null) { - return; - } - - String ns = getValue(requestWrapper.targetNamespace(), tns); - String name = getValue(requestWrapper.localName(), operationName); - QName inputWrapper = new QName(ns, name); - - ns = getValue(responseWrapper.targetNamespace(), tns); - name = getValue(responseWrapper.localName(), operationName + "Response"); - - QName outputWrapper = new QName(ns, name); - - List inputElements = new ArrayList(); - for (Annotation[] annotations : method.getParameterAnnotations()) { - for (Annotation annotation : annotations) { - if (annotation.annotationType() == WebParam.class) { - WebParam param = (WebParam)annotation; - inputElements.add(new ElementInfo(new QName(param.targetNamespace(), param.name()), null)); - break; - } - } - } - - List outputElements = new ArrayList(); - WebResult result = method.getAnnotation(WebResult.class); - outputElements.add(new ElementInfo(new QName(result.targetNamespace(), result.name()), null)); - - WrapperInfo wrapperInfo = - new WrapperInfo(JAXBDataBinding.NAME, new ElementInfo(inputWrapper, null), - new ElementInfo(outputWrapper, null), inputElements, outputElements); - operation.setWrapper(wrapperInfo); - */ - operation.setWrapperStyle(false); - operation.setDataBinding(JAXBDataBinding.NAME); - } - } - - private static String getValue(String value, String defaultValue) { - return "".equals(value) ? defaultValue : value; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.java deleted file mode 100755 index 05e420f1c6..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Node2JAXB.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.jaxb; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; - -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.impl.BaseTransformer; -import org.w3c.dom.Node; - -public class Node2JAXB extends BaseTransformer implements PullTransformer { - - public Node2JAXB() { - super(); - } - - public Object transform(Node source, TransformationContext context) { - if (source == null) - return null; - try { - JAXBContext jaxbContext = JAXBContextHelper.createJAXBContext(context, false); - Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - Object result = unmarshaller.unmarshal(source, JAXBContextHelper.getJavaType(context.getTargetDataType())); - return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return Node.class; - } - - @Override - public Class getTargetType() { - return Object.class; - } - - @Override - public int getWeight() { - return 30; - } - - @Override - public String getTargetDataBinding() { - return JAXBDataBinding.NAME; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.java deleted file mode 100644 index 61b3075539..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/Reader2JAXB.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.jaxb; - -import java.io.Reader; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; -import javax.xml.transform.stream.StreamSource; - -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.impl.BaseTransformer; - -public class Reader2JAXB extends BaseTransformer implements - PullTransformer { - - public Object transform(final Reader source, final TransformationContext context) { - if (source == null) { - return null; - } - try { - JAXBContext jaxbContext = JAXBContextHelper.createJAXBContext(context, false); - Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - StreamSource streamSource = new StreamSource(source); - Object result = unmarshaller.unmarshal(streamSource, JAXBContextHelper.getJavaType(context.getTargetDataType())); - return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return Reader.class; - } - - @Override - public Class getTargetType() { - return Object.class; - } - - @Override - public int getWeight() { - return 30; - } - - @Override - public String getTargetDataBinding() { - return JAXBDataBinding.NAME; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java deleted file mode 100644 index 79e8dc027f..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/String2JAXB.java +++ /dev/null @@ -1,76 +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.jaxb; - -import java.io.StringReader; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; -import javax.xml.transform.stream.StreamSource; - -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.impl.BaseTransformer; -import org.apache.tuscany.sca.databinding.xml.XMLStringDataBinding; - -public class String2JAXB extends BaseTransformer implements - PullTransformer { - - public Object transform(final String source, final TransformationContext context) { - if (source == null) { - return null; - } - try { - JAXBContext jaxbContext = JAXBContextHelper.createJAXBContext(context, false); - Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - StreamSource streamSource = new StreamSource(new StringReader(source)); - Object result = unmarshaller.unmarshal(streamSource, JAXBContextHelper.getJavaType(context.getTargetDataType())); - return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return String.class; - } - - @Override - public Class getTargetType() { - return Object.class; - } - - @Override - public int getWeight() { - return 30; - } - - @Override - public String getSourceDataBinding() { - return XMLStringDataBinding.NAME; - } - - @Override - public String getTargetDataBinding() { - return JAXBDataBinding.NAME; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java deleted file mode 100755 index ef3112eb22..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/java/org/apache/tuscany/sca/databinding/jaxb/XMLStreamReader2JAXB.java +++ /dev/null @@ -1,73 +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.jaxb; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.Unmarshaller; -import javax.xml.stream.XMLStreamReader; - -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.impl.BaseTransformer; - -public class XMLStreamReader2JAXB extends BaseTransformer implements - PullTransformer { - - public XMLStreamReader2JAXB() { - super(); - } - - public Object transform(XMLStreamReader source, TransformationContext context) { - if (source == null) { - return null; - } - try { - JAXBContext jaxbContext = JAXBContextHelper.createJAXBContext(context, false); - Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); - // FIXME: [rfeng] If the java type is Object.class, the unmarshalled result will be - // a DOM Node - Object result = unmarshaller.unmarshal(source, JAXBContextHelper.getJavaType(context.getTargetDataType())); - source.close(); - return JAXBContextHelper.createReturnValue(context.getTargetDataType(), result); - } catch (Exception e) { - throw new TransformationException(e); - } - } - - @Override - public Class getSourceType() { - return XMLStreamReader.class; - } - - @Override - public Class getTargetType() { - return Object.class; - } - - @Override - public int getWeight() { - return 10; - } - - @Override - public String getTargetDataBinding() { - return JAXBDataBinding.NAME; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding deleted file mode 100644 index 58d6123373..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.DataBinding +++ /dev/null @@ -1,19 +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.jaxb.JAXBDataBinding;type=javax.xml.bind.JAXBElement,name=jaxb diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer deleted file mode 100644 index 4e062e4c22..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.databinding.PullTransformer +++ /dev/null @@ -1,32 +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.jaxb.JAXB2Node;source=javax.xml.bind.JAXBElement,target=org.w3c.dom.Node,weight=500 -org.apache.tuscany.sca.databinding.jaxb.Node2JAXB;source=org.w3c.dom.Node,target=javax.xml.bind.JAXBElement,weight=500 -org.apache.tuscany.sca.databinding.jaxb.Reader2JAXB;source=java.io.Reader,target=javax.xml.bind.JAXBElement,weight=510 -org.apache.tuscany.sca.databinding.jaxb.XMLStreamReader2JAXB;source=javax.xml.stream.XMLStreamReader,target=javax.xml.bind.JAXBElement,weight=490 - -org.apache.tuscany.sca.databinding.jaxb.JAXB2Node;source=java:complexType,target=org.w3c.dom.Node,weight=90000 -org.apache.tuscany.sca.databinding.jaxb.Node2JAXB;source=org.w3c.dom.Node,target=java:complexType,weight=90000 - -org.apache.tuscany.sca.databinding.jaxb.Node2JAXB;source=org.w3c.dom.Node,target=java:simpleType,weight=90000 -org.apache.tuscany.sca.databinding.jaxb.JAXB2Node;source=java:simpleType,target=org.w3c.dom.Node,weight=90000 - -org.apache.tuscany.sca.databinding.jaxb.XMLStreamReader2JAXB;source=javax.xml.stream.XMLStreamReader,target=java:complexType,weight=90000 -org.apache.tuscany.sca.databinding.jaxb.XMLStreamReader2JAXB;source=javax.xml.stream.XMLStreamReader,target=java:simpleType,weight=90000 - diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor b/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor deleted file mode 100644 index 28ce24b63a..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/main/resources/META-INF/services/org.apache.tuscany.sca.interfacedef.java.introspect.JavaInterfaceVisitor +++ /dev/null @@ -1,18 +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. - -org.apache.tuscany.sca.databinding.jaxb.JAXWSJavaInterfaceProcessor diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBDataBindingTestCase.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBDataBindingTestCase.java deleted file mode 100644 index b121e2c99f..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBDataBindingTestCase.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.databinding.jaxb; - -import java.lang.annotation.Annotation; - -import javax.xml.bind.JAXBElement; -import javax.xml.namespace.QName; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -import com.example.ipo.jaxb.ObjectFactory; -import com.example.ipo.jaxb.PurchaseOrderType; -import com.example.ipo.jaxb.USAddress; -import com.example.ipo.jaxb.USState; - -/** - * - */ -public class JAXBDataBindingTestCase extends TestCase { - private JAXBDataBinding binding; - - /** - * @see junit.framework.TestCase#setUp() - */ - @Override - protected void setUp() throws Exception { - super.setUp(); - binding = new JAXBDataBinding(); - } - - /** - * Test method for - * {@link org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding#introspect(java.lang.Class, Annotation)}. - */ - public final void testIntrospect() { - DataType dataType = new DataTypeImpl(JAXBElement.class, null); - boolean yes = binding.introspect(dataType, null); - assertTrue(yes); - assertTrue(dataType.getDataBinding().equals(binding.getName())); - assertTrue(dataType.getPhysical() == JAXBElement.class && dataType.getLogical() == XMLType.UNKNOWN); - dataType = new DataTypeImpl(MockJAXBElement.class, null); - yes = binding.introspect(dataType, null); - assertTrue(yes); - assertEquals(MockJAXBElement.class, dataType.getPhysical()); - assertEquals(new QName("http://www.example.com/IPO", "PurchaseOrderType"), ((XMLType)dataType.getLogical()) - .getTypeName()); - dataType = new DataTypeImpl(USAddress.class, null); - yes = binding.introspect(dataType, null); - assertTrue(yes); - assertEquals(USAddress.class, dataType.getPhysical()); - assertEquals(new QName("http://www.example.com/IPO", "USAddress"), ((XMLType)dataType.getLogical()) - .getTypeName()); - dataType = new DataTypeImpl(USState.class, null); - yes = binding.introspect(dataType, null); - assertTrue(yes); - assertTrue(dataType.getDataBinding().equals(binding.getName())); - assertEquals(USState.class, dataType.getPhysical()); - assertEquals(new QName("http://www.example.com/IPO", "USState"), ((XMLType)dataType.getLogical()).getTypeName()); - - } - - private static class MockJAXBElement extends JAXBElement { - - private static final long serialVersionUID = -2767569071002707973L; - - /** - * @param elementName - * @param type - * @param value - */ - public MockJAXBElement(QName elementName, Class type, PurchaseOrderType value) { - super(elementName, type, value); - } - - } - - @SuppressWarnings("unchecked") - public void testCopy() { - ObjectFactory factory = new ObjectFactory(); - PurchaseOrderType poType = factory.createPurchaseOrderType(); - JAXBElement po = factory.createPurchaseOrder(poType); - JAXBElement copy = (JAXBElement)binding.copy(po); - assertEquals(new QName("http://www.example.com/IPO", "purchaseOrder"), copy.getName()); - } - - @SuppressWarnings("unchecked") - public void testCopyNonElement() { - ObjectFactory factory = new ObjectFactory(); - PurchaseOrderType poType = factory.createPurchaseOrderType(); - poType.setComment("Comment"); - PurchaseOrderType copy = (PurchaseOrderType)binding.copy(poType); - assertTrue(copy instanceof PurchaseOrderType); - assertEquals("Comment", (copy).getComment()); - } - - @SuppressWarnings("unchecked") - public void testCopyNonRoot() { - ObjectFactory factory = new ObjectFactory(); - USAddress address = factory.createUSAddress(); - address.setCity("San Jose"); - USAddress copy = (USAddress)binding.copy(address); - assertTrue(copy instanceof USAddress); - assertEquals("San Jose", (copy).getCity()); - - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java deleted file mode 100644 index 9cf40ee9a6..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBExceptionHandlerTestCase.java +++ /dev/null @@ -1,81 +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.databinding.jaxb; - -import javax.xml.namespace.QName; - -import junit.framework.TestCase; - -import org.apache.tuscany.databinding.jaxb.fault.InvalidSymbolFault; -import org.apache.tuscany.databinding.jaxb.fault.InvalidSymbolFault_Exception; -import org.apache.tuscany.sca.databinding.jaxb.JAXBDataBinding; -import org.apache.tuscany.sca.databinding.jaxb.JAXBExceptionHandler; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; - -/** - * Test case for JAXBExceptionHandler - */ -public class JAXBExceptionHandlerTestCase extends TestCase { - private static final QName ELEMENT = new QName("http://www.example.com/stock", "InvalidSymbolFault"); - private JAXBExceptionHandler handler; - - /** - * @see junit.framework.TestCase#setUp() - */ - @Override - protected void setUp() throws Exception { - super.setUp(); - this.handler = new JAXBExceptionHandler(); - } - - public void testGetFaultType() { - DataType exType = new DataTypeImpl(InvalidSymbolFault_Exception.class, XMLType.UNKNOWN); - DataType dataType = handler.getFaultType(exType); - assertEquals(InvalidSymbolFault.class, dataType.getPhysical()); - assertEquals(ELEMENT, ((XMLType) dataType.getLogical()).getElementName()); - assertEquals(JAXBDataBinding.NAME, dataType.getDataBinding()); - } - - public void testCreate() { - DataType execType = new DataTypeImpl(InvalidSymbolFault_Exception.class, XMLType.UNKNOWN); - DataType faultType = handler.getFaultType(execType); - InvalidSymbolFault fault = new InvalidSymbolFault(); - fault.setMessage("ABC"); - fault.setSymbol("IBM0"); - DataType exType = new DataTypeImpl(InvalidSymbolFault_Exception.class, faultType); - Exception ex = handler.createException(exType, "Invalid symbol", fault, null); - assertTrue(ex instanceof InvalidSymbolFault_Exception); - InvalidSymbolFault_Exception exception = (InvalidSymbolFault_Exception)ex; - assertEquals("Invalid symbol", exception.getMessage()); - assertSame(fault, exception.getFaultInfo()); - } - - public void testGetFaultInfo() { - InvalidSymbolFault fault = new InvalidSymbolFault(); - fault.setMessage("ABC"); - fault.setSymbol("IBM0"); - InvalidSymbolFault_Exception exception = new InvalidSymbolFault_Exception("Invalid symbol", fault); - Object faultInfo = handler.getFaultInfo(exception); - assertSame(fault, faultInfo); - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBTestCase.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBTestCase.java deleted file mode 100755 index 512e1c625f..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBTestCase.java +++ /dev/null @@ -1,163 +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.databinding.jaxb; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; - -import java.io.StringReader; - -import javax.xml.namespace.QName; - -import junit.framework.Assert; -import junit.framework.TestCase; - -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.jaxb.JAXB2Node; -import org.apache.tuscany.sca.databinding.jaxb.Node2JAXB; -import org.apache.tuscany.sca.databinding.jaxb.Reader2JAXB; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; -import org.w3c.dom.Node; - -import com.example.ipo.jaxb.ObjectFactory; -import com.example.ipo.jaxb.PurchaseOrderType; - -public class JAXBTestCase extends TestCase { - private static final String IPO_XML = - "" + "" - + " " - + " Helen Zoe" - + " 47 Eden Street" - + " Cambridge" - + " CB1 1JR" - + " " - + " " - + " Robert Smith" - + " 8 Oak Avenue" - + " Old Town" - + " PA" - + " 95819" - + " " - + " " - + " " - + " Lapis necklace" - + " 1" - + " 99.95" - + " Want this for the holidays" - + " 1999-12-05" - + " " - + " " - + ""; - - @Override - protected void setUp() throws Exception { - super.setUp(); - } - - public void testTransform() throws Exception { - Reader2JAXB t0 = new Reader2JAXB(); - - DataType targetDataType = new DataTypeImpl(PurchaseOrderType.class, null); - - TransformationContext tContext = createMock(TransformationContext.class); - expect(tContext.getTargetDataType()).andReturn(targetDataType).anyTimes(); - replay(tContext); - - Object object1 = t0.transform(new StringReader(IPO_XML), tContext); - - DataType sourceDataType = new DataTypeImpl(PurchaseOrderType.class, null); - - TransformationContext tContext1 = createMock(TransformationContext.class); - expect(tContext1.getSourceDataType()).andReturn(sourceDataType).anyTimes(); - expect(tContext1.getTargetDataType()).andReturn(null).anyTimes(); - replay(tContext1); - - JAXB2Node t1 = new JAXB2Node(); - Node node = t1.transform(object1, tContext1); - - Assert.assertNotNull(node); - - Node2JAXB t2 = new Node2JAXB(); - Object object2 = t2.transform(node, tContext); - Assert.assertNotNull(object2); - - } - - public void testTransform2() throws Exception { - Reader2JAXB t0 = new Reader2JAXB(); - - QName root = new QName("http://www.example.com/IPO", "purchaseOrder"); - DataType targetDataType = new DataTypeImpl(PurchaseOrderType.class, new XMLType(root, null)); - // targetDataType.setMetadata(JAXBContextHelper.JAXB_CONTEXT_PATH, contextPath); - - TransformationContext tContext = createMock(TransformationContext.class); - expect(tContext.getTargetDataType()).andReturn(targetDataType).anyTimes(); - replay(tContext); - - Object object1 = t0.transform(new StringReader(IPO_XML), tContext); - - DataType sourceDataType = new DataTypeImpl(PurchaseOrderType.class, new XMLType(root, null)); - // sourceDataType.setMetadata(JAXBContextHelper.JAXB_CONTEXT_PATH, contextPath); - - TransformationContext tContext1 = createMock(TransformationContext.class); - expect(tContext1.getSourceDataType()).andReturn(sourceDataType).anyTimes(); - expect(tContext1.getTargetDataType()).andReturn(null).anyTimes(); - replay(tContext1); - - JAXB2Node t1 = new JAXB2Node(); - Node node = t1.transform(object1, tContext1); - - Assert.assertNotNull(node); - - Node2JAXB t2 = new Node2JAXB(); - Object object2 = t2.transform(node, tContext); - Assert.assertNotNull(object2); - - } - - public void testTransform3() throws Exception { - - DataType sourceDataType = new DataTypeImpl(PurchaseOrderType.class, null); - - TransformationContext tContext1 = createMock(TransformationContext.class); - expect(tContext1.getSourceDataType()).andReturn(sourceDataType).anyTimes(); - expect(tContext1.getTargetDataType()).andReturn(null).anyTimes(); - replay(tContext1); - - JAXB2Node t1 = new JAXB2Node(); - PurchaseOrderType po = new ObjectFactory().createPurchaseOrderType(); - Node node = t1.transform(po, tContext1); - - Assert.assertNotNull(node); - - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandlerTestCase.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandlerTestCase.java deleted file mode 100644 index 563d6232b1..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXBWrapperHandlerTestCase.java +++ /dev/null @@ -1,72 +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.databinding.jaxb; - -import java.util.List; - -import javax.xml.bind.JAXBElement; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.databinding.jaxb.JAXBWrapperHandler; - -import com.example.ipo.jaxb.ObjectFactory; -import com.example.ipo.jaxb.PurchaseOrderType; - -/** - * Test case for JAXBExceptionHandler - */ -public class JAXBWrapperHandlerTestCase extends TestCase { - // private static final QName ELEMENT = new QName("http://www.example.com/IPO", "purchaseOrder"); - private JAXBWrapperHandler handler; - - /** - * @see junit.framework.TestCase#setUp() - */ - @Override - protected void setUp() throws Exception { - super.setUp(); - this.handler = new JAXBWrapperHandler(); - } - - public void testCreate() { - // ElementInfo element = new ElementInfo(ELEMENT, null); - // JAXBElement jaxbElement = handler.create(element, null); - } - - public void testSetChild() { - ObjectFactory factory = new ObjectFactory(); - PurchaseOrderType po = factory.createPurchaseOrderType(); - JAXBElement wrapper = factory.createPurchaseOrder(po); - handler.setChild(wrapper, 2, null, "Comment"); - } - - public void testGetChildren() { - ObjectFactory factory = new ObjectFactory(); - PurchaseOrderType po = factory.createPurchaseOrderType(); - po.setComment("Comment"); - JAXBElement wrapper = factory.createPurchaseOrder(po); - List children = handler.getChildren(wrapper, null, null); - assertNotNull(children); - assertEquals(4, children.size()); - assertEquals("Comment", children.get(2)); - assertNull(children.get(0)); - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessorTestCase.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessorTestCase.java deleted file mode 100644 index 83abdc29f5..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessorTestCase.java +++ /dev/null @@ -1,102 +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.databinding.jaxb; - -import javax.jws.WebService; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.databinding.jaxb.JAXWSJavaInterfaceProcessor; -import org.apache.tuscany.sca.interfacedef.impl.InterfaceImpl; -import org.apache.tuscany.sca.interfacedef.java.JavaInterface; - -/** - * - */ -public class JAXWSJavaInterfaceProcessorTestCase extends TestCase { - private JAXWSJavaInterfaceProcessor interfaceProcessor; - - /** - * @see junit.framework.TestCase#setUp() - */ - @Override - protected void setUp() throws Exception { - super.setUp(); - interfaceProcessor = new JAXWSJavaInterfaceProcessor(); - } - - /** - * Test method for - * {@link org.apache.tuscany.sca.databinding.jaxb.JAXWSJavaInterfaceProcessor#visitInterface(JavaInterface)}. - */ - public final void testProcessor() throws Exception { - JavaInterface contract = new MockJavaInterfaceImpl(); - contract.setJavaClass(WebServiceInterfaceWithoutAnnotation.class); - - interfaceProcessor.visitInterface(contract); - assertFalse(contract.isRemotable()); - - contract.setJavaClass(WebServiceInterfaceWithAnnotation.class); - interfaceProcessor.visitInterface(contract); - assertTrue(contract.isRemotable()); - } - - @WebService - private static interface WebServiceInterfaceWithAnnotation { - - } - - private static interface WebServiceInterfaceWithoutAnnotation { - - } - - private class MockJavaInterfaceImpl extends InterfaceImpl implements JavaInterface { - private Class javaClass; - - public Class getCallbackClass() { - // TODO Auto-generated method stub - return null; - } - - public Class getJavaClass() { - // TODO Auto-generated method stub - return javaClass; - } - - public String getName() { - // TODO Auto-generated method stub - return null; - } - - public void setCallbackClass(Class callbackClass) { - // TODO Auto-generated method stub - - } - - public void setJavaClass(Class javaClass) { - this.javaClass = javaClass; - } - - public void setName(String className) { - // TODO Auto-generated method stub - - } - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyBean.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyBean.java deleted file mode 100644 index 49fb38b1fa..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyBean.java +++ /dev/null @@ -1,158 +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.databinding.jaxb; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class MyBean { - private int age; - private String name; - private float[] rates = new float[] {1.0f, 2.0f}; - private List notes = new ArrayList(); - private Map map = new HashMap(); - private Object service; - private Object otherService; - private boolean good; - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getNotes() { - return notes; - } - - public void setNotes(List notes) { - this.notes = notes; - } - - public float[] getRates() { - return rates; - } - - public void setRates(float[] rates) { - this.rates = rates; - } - - public Map getMap() { - return map; - } - - public void setMap(Map map) { - this.map = map; - } - - public Object getService() { - return service; - } - - public void setService(Object service) { - this.service = service; - } - - public Object getOtherService() { - return otherService; - } - - public void setOtherService(Object otherService) { - this.otherService = otherService; - } - - public boolean isGood() { - return good; - } - - public void setGood(boolean good) { - this.good = good; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + age; - result = prime * result + (good ? 1231 : 1237); - result = prime * result + ((map == null) ? 0 : map.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + ((notes == null) ? 0 : notes.hashCode()); - result = prime * result + ((otherService == null) ? 0 : otherService.hashCode()); - result = prime * result + Arrays.hashCode(rates); - result = prime * result + ((service == null) ? 0 : service.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - final MyBean other = (MyBean)obj; - if (age != other.age) - return false; - if (good != other.good) - return false; - if (map == null) { - if (other.map != null) - return false; - } else if (!map.equals(other.map)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - if (notes == null) { - if (other.notes != null) - return false; - } else if (!notes.equals(other.notes)) - return false; - if (otherService == null) { - if (other.otherService != null) - return false; - } else if (!otherService.equals(other.otherService)) - return false; - if (!Arrays.equals(rates, other.rates)) - return false; - if (service == null) { - if (other.service != null) - return false; - } else if (!service.equals(other.service)) - return false; - return true; - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterface.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterface.java deleted file mode 100644 index 2fc561b577..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterface.java +++ /dev/null @@ -1,29 +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.databinding.jaxb; - -/** - * @version $Rev$ $Date$ - */ -public interface MyInterface { - public void setId(String id); - - public String getId(); -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterfaceImpl.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterfaceImpl.java deleted file mode 100644 index 928acb9f3c..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/MyInterfaceImpl.java +++ /dev/null @@ -1,67 +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.databinding.jaxb; - -/** - * @version $Rev$ $Date$ - */ -public class MyInterfaceImpl implements MyInterface { - private String id; - - /** - * @see org.apache.tuscany.databinding.jaxb.MyInterface#getId() - */ - public String getId() { - return id; - } - - /** - * @see org.apache.tuscany.databinding.jaxb.MyInterface#setId(java.lang.String) - */ - public void setId(String id) { - this.id = id; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - final MyInterfaceImpl other = (MyInterfaceImpl)obj; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java deleted file mode 100644 index 9758292aea..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/POJOTestCase.java +++ /dev/null @@ -1,219 +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.databinding.jaxb; - -import java.io.StringReader; -import java.io.StringWriter; -import java.lang.reflect.Type; -import java.util.Collection; -import java.util.Collections; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.namespace.QName; -import javax.xml.stream.XMLStreamReader; -import javax.xml.transform.stream.StreamSource; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.databinding.TransformationContext; -import org.apache.tuscany.sca.databinding.impl.TransformationContextImpl; -import org.apache.tuscany.sca.databinding.jaxb.JAXB2XMLStreamReader; - -import com.sun.xml.bind.v2.model.annotation.RuntimeInlineAnnotationReader; -import com.sun.xml.bind.v2.model.core.Ref; -import com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder; -import com.sun.xml.bind.v2.model.runtime.RuntimeClassInfo; -import com.sun.xml.bind.v2.model.runtime.RuntimePropertyInfo; -import com.sun.xml.bind.v2.model.runtime.RuntimeTypeInfoSet; -import com.sun.xml.bind.v2.runtime.IllegalAnnotationsException; -import com.sun.xml.bind.v2.runtime.JAXBContextImpl; - -public class POJOTestCase extends TestCase { - public void testPOJO() throws Exception { - JAXBContext context = JAXBContext.newInstance(MyBean.class, MyInterfaceImpl.class); - StringWriter writer = new StringWriter(); - MyBean bean = new MyBean(); - bean.setName("Test"); - bean.setAge(20); - bean.getNotes().add("1"); - bean.getNotes().add("2"); - bean.getMap().put("1", 1); - MyInterface service = new MyInterfaceImpl(); - service.setId("ID001"); - bean.setService(service); - bean.setOtherService(service); - JAXBElement element = new JAXBElement(new QName("http://ns1", "bean"), Object.class, bean); - context.createMarshaller().marshal(element, writer); - // System.out.println(writer.toString()); - - Object result = context.createUnmarshaller().unmarshal(new StringReader(writer.toString())); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertTrue(e2.getValue() instanceof MyBean); - MyBean newBean = (MyBean)e2.getValue(); - assertEquals(bean, newBean); - } - - public void testXMLStreamReader() throws Exception { - JAXBContext context = JAXBContext.newInstance(MyBean.class, MyInterfaceImpl.class); - - MyBean bean = new MyBean(); - bean.setName("Test"); - bean.setAge(20); - bean.getNotes().add("1"); - bean.getNotes().add("2"); - bean.getMap().put("1", 1); - MyInterface service = new MyInterfaceImpl(); - service.setId("ID001"); - bean.setService(service); - bean.setOtherService(service); - JAXBElement element = new JAXBElement(new QName("http://ns1", "bean"), Object.class, bean); - TransformationContext tContext = new TransformationContextImpl(); - XMLStreamReader reader = new JAXB2XMLStreamReader().transform(element, tContext); - -// XMLStreamReader2String t2 = new XMLStreamReader2String(); -// String xml = t2.transform(reader, null); - // System.out.println(xml); - Object result = context.createUnmarshaller().unmarshal(reader, MyBean.class); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertTrue(e2.getValue() instanceof MyBean); - MyBean newBean = (MyBean)e2.getValue(); - // FIXME :To be implemented - // assertEquals(bean, newBean); - } - - public void testString() throws Exception { - JAXBContext context = JAXBContext.newInstance(String.class); - StringWriter writer = new StringWriter(); - JAXBElement element = new JAXBElement(new QName("http://ns1", "bean"), Object.class, "ABC"); - context.createMarshaller().marshal(element, writer); - // System.out.println(writer.toString()); - - Object result = context.createUnmarshaller().unmarshal(new StringReader(writer.toString())); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertEquals("ABC", e2.getValue()); - } - - public void testNull() throws Exception { - JAXBContext context = JAXBContext.newInstance(String.class); - StringWriter writer = new StringWriter(); - JAXBElement element = new JAXBElement(new QName("http://ns1", "bean"), Object.class, null); - element.setNil(true); - context.createMarshaller().marshal(element, writer); - // System.out.println(writer.toString()); - StreamSource source = new StreamSource(new StringReader(writer.toString())); - Object result = context.createUnmarshaller().unmarshal(source, String.class); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertNull(e2.getValue()); - } - - public void testArray() throws Exception { - JAXBContext context = JAXBContext.newInstance(String[].class); - StringWriter writer = new StringWriter(); - JAXBElement element = - new JAXBElement(new QName("http://ns1", "bean"), Object.class, new String[] {"ABC", "123"}); - context.createMarshaller().marshal(element, writer); - // System.out.println(writer.toString()); - - Object result = context.createUnmarshaller().unmarshal(new StringReader(writer.toString())); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertTrue(e2.getValue() instanceof String[]); - } - - public void testByteArray() throws Exception { - JAXBContext context = JAXBContext.newInstance(byte[].class); - StringWriter writer = new StringWriter(); - JAXBElement element = - new JAXBElement(new QName("http://ns1", "bean"), Object.class, "ABC".getBytes()); - context.createMarshaller().marshal(element, writer); - String xml = writer.toString(); - assertTrue(xml.contains("QUJD")); - assertTrue(xml.contains("base64Binary")); - - Object result = context.createUnmarshaller().unmarshal(new StringReader(xml)); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertTrue(e2.getValue() instanceof byte[]); - } - - public void testPrimitive() throws Exception { - JAXBContext context = JAXBContext.newInstance(int.class); - StringWriter writer = new StringWriter(); - JAXBElement element = new JAXBElement(new QName("http://ns1", "bean"), Object.class, 1); - context.createMarshaller().marshal(element, writer); - // System.out.println(writer.toString()); - - Object result = context.createUnmarshaller().unmarshal(new StringReader(writer.toString())); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertEquals(1, e2.getValue()); - } - - /* - public void testException() throws Exception { - JAXBContext context = JAXBContext.newInstance(IllegalArgumentException.class); - StringWriter writer = new StringWriter(); - Exception e = new IllegalArgumentException("123"); - JAXBElement element = new JAXBElement(new QName("http://ns1", "bean"), Object.class, e); - context.createMarshaller().marshal(element, writer); - System.out.println(writer.toString()); - - Object result = context.createUnmarshaller().unmarshal(new StringReader(writer.toString())); - assertTrue(result instanceof JAXBElement); - JAXBElement e2 = (JAXBElement)result; - assertTrue(e2.getValue() instanceof Exception); - } - */ - - private static RuntimeTypeInfoSet create(Class... classes) throws Exception { - IllegalAnnotationsException.Builder errorListener = new IllegalAnnotationsException.Builder(); - RuntimeInlineAnnotationReader reader = new RuntimeInlineAnnotationReader(); - JAXBContextImpl context = - new JAXBContextImpl(classes, null, Collections. emptyMap(), null, false, reader, false, false); - RuntimeModelBuilder builder = - new RuntimeModelBuilder(context, reader, Collections. emptyMap(), null); - builder.setErrorHandler(errorListener); - for (Class c : classes) - builder.getTypeInfo(new Ref(c)); - - RuntimeTypeInfoSet r = builder.link(); - errorListener.check(); - return r; - } - - public void testReflection() throws Exception { - MyBean bean = new MyBean(); - RuntimeTypeInfoSet model = create(MyBean.class); - RuntimeClassInfo clsInfo = (RuntimeClassInfo)model.getTypeInfo(MyBean.class); - for (RuntimePropertyInfo p : clsInfo.getProperties()) { - // System.out.print(p.getName()); - // System.out.println(" " + p.isCollection()); - if (p.getName().equals("notes")) { - Collection c = (Collection)p.getAccessor().get(bean); - c.add("123"); - } - } - - } -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault.java deleted file mode 100644 index fd21d72337..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault.java +++ /dev/null @@ -1,78 +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.databinding.jaxb.fault; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -/** - *

- * Java class for anonymous complex type. - */ -@XmlAccessorType(XmlAccessType.FIELD) -@XmlType(name = "", propOrder = {"message", "symbol"}) -@XmlRootElement(name = "InvalidSymbolFault") -public class InvalidSymbolFault { - - @XmlElement(required = true) - protected String message; - @XmlElement(required = true) - protected String symbol; - - /** - * Gets the value of the message property. - * - * @return possible object is {@link String } - */ - public String getMessage() { - return message; - } - - /** - * Sets the value of the message property. - * - * @param value allowed object is {@link String } - */ - public void setMessage(String value) { - this.message = value; - } - - /** - * Gets the value of the symbol property. - * - * @return possible object is {@link String } - */ - public String getSymbol() { - return symbol; - } - - /** - * Sets the value of the symbol property. - * - * @param value allowed object is {@link String } - */ - public void setSymbol(String value) { - this.symbol = value; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault_Exception.java b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault_Exception.java deleted file mode 100644 index e78889aee0..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/java/org/apache/tuscany/databinding/jaxb/fault/InvalidSymbolFault_Exception.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.databinding.jaxb.fault; - -import javax.xml.ws.WebFault; - -/** - * This class was generated by the JAXWS SI. JAX-WS RI 2.1-02/02/2007 09:55 - * AM(vivekp)-FCS Generated source version: 2.1 - */ -@WebFault(name = "InvalidSymbolFault", targetNamespace = "http://www.example.com/stock") -public class InvalidSymbolFault_Exception extends Exception { - private static final long serialVersionUID = -4618497501663457633L; - - /** - * Java type that goes as soapenv:Fault detail element. - */ - private InvalidSymbolFault faultInfo; - - /** - * @param faultInfo - * @param message - */ - public InvalidSymbolFault_Exception(String message, InvalidSymbolFault faultInfo) { - super(message); - this.faultInfo = faultInfo; - } - - /** - * @param faultInfo - * @param message - * @param cause - */ - public InvalidSymbolFault_Exception(String message, InvalidSymbolFault faultInfo, Throwable cause) { - super(message, cause); - this.faultInfo = faultInfo; - } - - /** - * @return returns fault bean: - * org.apache.tuscany.sca.test.exceptions.impl.jaxb.InvalidSymbolFault - */ - public InvalidSymbolFault getFaultInfo() { - return faultInfo; - } - -} diff --git a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/resources/ipo.xsd b/branches/sca-java-1.1/modules/databinding-jaxb/src/test/resources/ipo.xsd deleted file mode 100755 index 49060636d1..0000000000 --- a/branches/sca-java-1.1/modules/databinding-jaxb/src/test/resources/ipo.xsd +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - International Purchase order schema for Example.com - Copyright 2000 Example.com. All rights reserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- cgit v1.2.3