diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-12 00:43:48 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-12 00:43:48 +0000 |
commit | 9425990f532b1152c2d73db96c0f07ef5216a3d1 (patch) | |
tree | a8986fc31f96eb02484a0ae9d1c14cfa788e30ac /sca-java-2.x/contrib/itest/databindings/jaxb-top-down | |
parent | 40523f9c6cb1f7a785c2dbd2466dc410ae6ddf66 (diff) |
Moving 2.x contribs
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835178 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/contrib/itest/databindings/jaxb-top-down')
23 files changed, 6840 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/pom.xml b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/pom.xml new file mode 100644 index 0000000000..4e3fcfbe5c --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/pom.xml @@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<project> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-databindings</artifactId> + <version>2.0-SNAPSHOT</version> + </parent> + + <modelVersion>4.0.0</modelVersion> + + <artifactId>itest-databindings-jaxb-top-down</artifactId> + <version>2.0-SNAPSHOT</version> + <packaging>jar</packaging> + <name>Apache Tuscany SCA Databinding Integration Tests - JAXB Top Down</name> + + <repositories> + <repository> + <snapshots> + <enabled>true</enabled> + </snapshots> + <id>java.net</id> + <name>java.net Maven 1.x Repository</name> + <url>http://download.java.net/maven/1</url> + <layout>legacy</layout> + </repository> + <repository> + <id>java.net2</id> + <name>java.net Maven 2.x Repository</name> + <url>http://download.java.net/maven/2</url> + </repository> + </repositories> + + <pluginRepositories> + <pluginRepository> + <id>java.net2</id> + <name>java.net Maven 2.x Repository</name> + <url>http://download.java.net/maven/2</url> + </pluginRepository> + </pluginRepositories> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-jaxb</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-sdo</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-databinding-axiom</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-databindings-common</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <!-- dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-embedded</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency--> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-interface-java-xml</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-jetty</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>javax.xml.bind</groupId> + <artifactId>jaxb-api</artifactId> + <version>2.1</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>com.sun.xml.ws</groupId> + <artifactId>jaxws-rt</artifactId> + <version>2.1.3</version> + </dependency> + <!-- Added by Simon Nash --> + <dependency> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>3.1</version> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.12</version> + <scope>provided</scope> + </dependency> + <!-- End of addition --> + + + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <argLine>-Djava.endorsed.dirs=target/endorsed</argLine> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>copy</id> + <phase>generate-sources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>javax.xml.ws</groupId> + <artifactId>jaxws-api</artifactId> + <version>2.1</version> + <type>jar</type> + </artifactItem> + <artifactItem> + <groupId>javax.xml.bind</groupId> + <artifactId>jaxb-api</artifactId> + <version>2.1</version> + <type>jar</type> + </artifactItem> + </artifactItems> + <outputDirectory>${project.build.directory}/endorsed</outputDirectory> + <overWriteReleases>false</overWriteReleases> + <overWriteSnapshots>true</overWriteSnapshots> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloService.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloService.java new file mode 100644 index 0000000000..ab2d9630eb --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloService.java @@ -0,0 +1,42 @@ +/* + * 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.itest.databindings.jaxb; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The interface for HelloService. + * + * @version $Rev$ $Date$ + */ +@Remotable +public interface HelloService { + String getGreetings(String name); + String[] getGreetingsArray(String[] names); + List<String> getGreetingsList(List<String> names); + ArrayList<String> getGreetingsArrayList(ArrayList<String> names); + Map<String, String> getGreetingsMap(Map<String, String> namesMap); + HashMap<String, String> getGreetingsHashMap(HashMap<String, String> namesMap); + String getGreetingsVarArgs(String... names); +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceClient.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceClient.java new file mode 100644 index 0000000000..7bd95cec95 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/HelloServiceClient.java @@ -0,0 +1,41 @@ +/* + * 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.itest.databindings.jaxb; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * The interface for HelloServiceClient. + * + * @version $Rev$ $Date$ + */ +public interface HelloServiceClient { + String getGreetingsForward(String name); + String[] getGreetingsArrayForward(String[] names); + List<String> getGreetingsListForward(List<String> names); + ArrayList<String> getGreetingsArrayListForward(ArrayList<String> names); + Map<String, String> getGreetingsMapForward(Map<String, String> namesMap); + HashMap<String, String> getGreetingsHashMapForward(HashMap<String, String> namesMap); + String getGreetingsVarArgsForward(String... names); +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java new file mode 100644 index 0000000000..ac6c8d5a60 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesService.java @@ -0,0 +1,51 @@ +/* + * 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.itest.databindings.jaxb; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The interface for PrimitivesService. + * + * @version $Rev$ $Date$ + */ +@Remotable +public interface PrimitivesService { + boolean negateBoolean(boolean flag); + boolean[] negateBooleanArray(boolean[] flags); + boolean[] identityBooleanArray(boolean[] flags); + byte negateByte(byte b); + byte[] negateByteArray(byte[] ba); + byte[] identityByteArray(byte[] ba); + short negateShort(short s); + short[] negateShortArray(short[] s); + short[] identityShortArray(short[] sa); + int negateInt(int s); + int[] negateIntArray(int[] s); + int[] identityIntArray(int[] ia); + long negateLong(long l); + long[] negateLongArray(long[] la); + long[] identityLongArray(long[] la); + float negateFloat(float f); + float[] negateFloatArray(float[] fa); + float[] identityFloatArray(float[] fa); + double negateDouble(double d); + double[] negateDoubleArray(double[] da); + double[] identityDoubleArray(double[] da); +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java new file mode 100644 index 0000000000..3a5a81bae4 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/PrimitivesServiceClient.java @@ -0,0 +1,50 @@ +/* + * 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.itest.databindings.jaxb; + + +/** + * The interface for PrimitivesServiceClient. + * + * @version $Rev$ $Date$ + */ +public interface PrimitivesServiceClient { + boolean negateBooleanForward(boolean flag); + boolean[] negateBooleanArrayForward(boolean[] flags); + boolean passByValueBooleanArray(); + byte negateByteForward(byte b); + byte[] negateByteArrayForward(byte[] ba); + boolean passByValueByteArray(); + short negateShortForward(short s); + short[] negateShortArrayForward(short[] sa); + boolean passByValueShortArray(); + int negateIntForward(int i); + int[] negateIntArrayForward(int[] ia); + boolean passByValueIntArray(); + long negateLongForward(long l); + long[] negateLongArrayForward(long[] la); + boolean passByValueLongArray(); + float negateFloatForward(float f); + float[] negateFloatArrayForward(float[] fa); + boolean passByValueFloatArray(); + double negateDoubleForward(double d); + double[] negateDoubleArrayForward(double[] da); + boolean passByValueDoubleArray(); +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesService.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesService.java new file mode 100644 index 0000000000..1f3b7ec633 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesService.java @@ -0,0 +1,84 @@ +/* + * 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.itest.databindings.jaxb; + +import java.awt.Image; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.URI; +import java.util.Calendar; +import java.util.Date; +import java.util.UUID; + +import javax.activation.DataHandler; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.oasisopen.sca.annotation.Remotable; + + + +/** + * The interface for StandardTypesService. + * + * @version $Rev$ $Date$ + */ +@Remotable +public interface StandardTypesService { + BigInteger getNewBigInteger(BigInteger bi); + BigInteger[] getNewBigIntegerArray(BigInteger[] bia); + + BigDecimal getNewBigDecimal(BigDecimal bd); + BigDecimal[] getNewBigDecimalArray(BigDecimal[] bda); + + Calendar getNewCalendar(Calendar c); + Calendar[] getNewCalendarArray(Calendar[] ca); + + Date getNewDate(Date d); + Date[] getNewDateArray(Date[] da); + + QName getNewQName(QName qname); + QName[] getNewQNameArray(QName[] qnames); + + URI getNewURI(URI uri); + URI[] getNewURIArray(URI[] uris); + + XMLGregorianCalendar getNewXMLGregorianCalendar(XMLGregorianCalendar xgcal); + XMLGregorianCalendar[] getNewXMLGregorianCalendarArray(XMLGregorianCalendar[] xgcal); + + Duration getNewDuration(Duration d); + Duration[] getNewDurationArray(Duration[] da); + + Object getNewObject(Object obj); + Object[] getNewObjectArray(Object[] objs); + + Image getNewImage(Image img); + Image[] getNewImageArray(Image[] imgs); + + DataHandler getNewDataHandler(DataHandler dh); + DataHandler[] getNewDataHandlerArray(DataHandler[] dha); + + Source getNewSource(Source src); + Source[] getNewSourceArray(Source[] srcs); + + UUID getNewUUID(UUID uuid); + UUID[] getNewUUIDArray(UUID[] uuids); +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesServiceClient.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesServiceClient.java new file mode 100644 index 0000000000..0c073cd054 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesServiceClient.java @@ -0,0 +1,81 @@ +/* + * 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.itest.databindings.jaxb; + +import java.awt.Image; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.URI; +import java.util.Calendar; +import java.util.Date; +import java.util.UUID; + +import javax.activation.DataHandler; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + + +/** + * The interface for StandardTypesServiceClient. + * + * @version $Rev$ $Date$ + */ +public interface StandardTypesServiceClient { + BigInteger getNewBigIntegerForward(BigInteger bi); + BigInteger[] getNewBigIntegerArrayForward(BigInteger[] bia); + + BigDecimal getNewBigDecimalForward(BigDecimal bd); + BigDecimal[] getNewBigDecimalArrayForward(BigDecimal[] bda); + + Calendar getNewCalendarForward(Calendar c); + Calendar[] getNewCalendarArrayForward(Calendar[] ca); + + Date getNewDateForward(Date d); + Date[] getNewDateArrayForward(Date[] da); + + QName getNewQNameForward(QName qname); + QName[] getNewQNameArrayForward(QName[] qnames); + + URI getNewURIForward(URI uri); + URI[] getNewURIArrayForward(URI[] uris); + + XMLGregorianCalendar getNewXMLGregorianCalendarForward(XMLGregorianCalendar xgcal); + XMLGregorianCalendar[] getNewXMLGregorianCalendarArrayForward(XMLGregorianCalendar[] xgcals); + + Duration getNewDurationForward(Duration d); + Duration[] getNewDurationArrayForward(Duration[] da); + + Object getNewObjectForward(Object obj); + Object[] getNewObjectArrayForward(Object[] objs); + + Image getNewImageForward(Image img); + Image[] getNewImageArrayForward(Image[] imgs); + + DataHandler getNewDataHandlerForward(DataHandler dh); + DataHandler[] getNewDataHandlerArrayForward(DataHandler[] dha); + + Source getNewSourceForward(Source src); + Source[] getNewSourceArrayForward(Source[] srcs); + + UUID getNewUUIDForward(UUID uuid); + UUID[] getNewUUIDArrayForward(UUID[] uuids); +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceClientImpl.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceClientImpl.java new file mode 100644 index 0000000000..61449c8981 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceClientImpl.java @@ -0,0 +1,73 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.tuscany.sca.itest.databindings.jaxb.HelloService; +import org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceClient; +import org.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.Service; + +/** + * An implementation of HelloServiceClient. + * The client forwards the request to the service component and returns the response from the service component. + */ +@Service(HelloServiceClient.class) +public class HelloServiceClientImpl { + + private HelloService service; + + @Reference + public void setHelloService(HelloService service) { + this.service = service; + } + + public String getGreetingsForward(String name) { + return service.getGreetings(name); + } + + public String[] getGreetingsArrayForward(String[] names) { + return service.getGreetingsArray(names); + } + + public List<String> getGreetingsListForward(List<String> names) { + return service.getGreetingsList(names); + } + + public Map<String, String> getGreetingsMapForward(Map<String, String> namesMap) { + return service.getGreetingsMap(namesMap); + } + + public ArrayList<String> getGreetingsArrayListForward(ArrayList<String> names) { + return service.getGreetingsArrayList(names); + } + + public HashMap<String, String> getGreetingsHashMapForward(HashMap<String, String> namesMap) { + return service.getGreetingsHashMap(namesMap); + } + + public String getGreetingsVarArgsForward(String... names) { + return service.getGreetingsVarArgs(names[0], names[1], names[2]); + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceImpl.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceImpl.java new file mode 100644 index 0000000000..c0868f0146 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/HelloServiceImpl.java @@ -0,0 +1,86 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.tuscany.sca.itest.databindings.jaxb.HelloService; +import org.oasisopen.sca.annotation.Service; + +/** + * An implementation of HelloService. + * + * @version $Rev$ $Date$ + */ +@Service(interfaces = {HelloService.class}) +public class HelloServiceImpl implements HelloService { + public String getGreetings(String name) { + return "Hello " + name; + } + + public String[] getGreetingsArray(String[] names) { + String[] resps = new String[names.length]; + for (int i = 0; i < names.length; ++i) { + resps[i] = "Hello " + names[i]; + } + return resps; + } + + public List<String> getGreetingsList(List<String> names) { + List<String> resps = new ArrayList<String>(); + for (int i = 0; i < names.size(); ++i) { + resps.add("Hello " + names.get(i)); + } + return resps; + } + + public ArrayList<String> getGreetingsArrayList(ArrayList<String> names) { + ArrayList<String> resps = new ArrayList<String>(); + for (int i = 0; i < names.size(); ++i) { + resps.add("Hello " + names.get(i)); + } + return resps; + } + + public Map<String, String> getGreetingsMap(Map<String, String> namesMap) { + for (Map.Entry<String, String> entry : namesMap.entrySet()) { + entry.setValue("Hello " + entry.getKey()); + } + return namesMap; + } + + public HashMap<String, String> getGreetingsHashMap(HashMap<String, String> namesMap) { + for (Map.Entry<String, String> entry : namesMap.entrySet()) { + entry.setValue("Hello " + entry.getKey()); + } + return namesMap; + } + + public String getGreetingsVarArgs(String... names) { + String resp = "Hello"; + for(int i = 0; i < names.length; ++i) { + resp += (" "+names[i]); + } + return resp; + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java new file mode 100644 index 0000000000..e55d2527f4 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceClientImpl.java @@ -0,0 +1,139 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService; +import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesServiceClient; +import org.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.Service; + +/** + * An implementation of PrimitivesServiceClient. + * The client forwards the request to the service component and returns the response from the service component. + * + * @version $Rev$ $Date$ + */ +@Service(PrimitivesServiceClient.class) +public class PrimitivesServiceClientImpl { + + private PrimitivesService service; + + @Reference + public void setPrimitivesService(PrimitivesService service) { + this.service = service; + } + public boolean negateBooleanForward(boolean flag) { + return service.negateBoolean(flag); + } + + public boolean[] negateBooleanArrayForward(boolean[] flags) { + return service.negateBooleanArray(flags); + } + + public boolean passByValueBooleanArray() { + boolean[] req = new boolean[2]; + boolean[] resp = service.identityBooleanArray(req); + return req != resp; + } + + public byte negateByteForward(byte b) { + return service.negateByte(b); + } + + public byte[] negateByteArrayForward(byte[] ba) { + return service.negateByteArray(ba); + } + + public boolean passByValueByteArray() { + byte[] req = new byte[2]; + byte[] resp = service.identityByteArray(req); + return req != resp; + } + + public short negateShortForward(short s) { + return service.negateShort(s); + } + + public short[] negateShortArrayForward(short[] s) { + return service.negateShortArray(s); + } + + public boolean passByValueShortArray() { + short[] req = new short[2]; + short[] resp = service.identityShortArray(req); + return req != resp; + } + + public int negateIntForward(int i) { + return service.negateInt(i); + } + + public int[] negateIntArrayForward(int[] ia) { + return service.negateIntArray(ia); + } + + public boolean passByValueIntArray() { + int[] req = new int[2]; + int[] resp = service.identityIntArray(req); + return req != resp; + } + + public long negateLongForward(long l) { + return service.negateLong(l); + } + + public long[] negateLongArrayForward(long[] la) { + return service.negateLongArray(la); + } + + public boolean passByValueLongArray() { + long[] req = new long[2]; + long[] resp = service.identityLongArray(req); + return req != resp; + } + + public float negateFloatForward(float f) { + return service.negateFloat(f); + } + + public float[] negateFloatArrayForward(float[] fa) { + return service.negateFloatArray(fa); + } + + public boolean passByValueFloatArray() { + float[] req = new float[2]; + float[] resp = service.identityFloatArray(req); + return req != resp; + } + + public double negateDoubleForward(double d) { + return service.negateDouble(d); + } + + public double[] negateDoubleArrayForward(double[] da) { + return service.negateDoubleArray(da); + } + + public boolean passByValueDoubleArray() { + double[] req = new double[2]; + double[] resp = service.identityDoubleArray(req); + return req != resp; + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java new file mode 100644 index 0000000000..72ff27b85e --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/PrimitivesServiceImpl.java @@ -0,0 +1,151 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService; +import org.oasisopen.sca.annotation.Service; + +/** + * An implementation of PrimitivesService. + * + * @version $Rev$ $Date$ + */ +@Service(interfaces={PrimitivesService.class}) +public class PrimitivesServiceImpl implements PrimitivesService { + + public boolean negateBoolean(boolean flag) { + return !flag; + } + + public boolean[] negateBooleanArray(boolean[] flags) { + boolean[] resp = new boolean[flags.length]; + + for(int i = 0; i < flags.length; ++i) { + resp[i] = !flags[i]; + } + return resp; + } + + public boolean[] identityBooleanArray(boolean[] flags) { + return flags; + } + + public byte negateByte(byte b) { + return (byte)-b; + } + + public byte[] negateByteArray(byte[] ba) { + byte[] resp = new byte[ba.length]; + + for(int i = 0; i < ba.length; ++i) { + resp[i] = (byte)-ba[i]; + } + return resp; + } + + public byte[] identityByteArray(byte[] ba) { + return ba; + } + + public short negateShort(short s) { + return (short)-s; + } + + public short[] negateShortArray(short[] s) { + short[] resp = new short[s.length]; + + for(int i = 0; i < s.length; ++i) { + resp[i] = (short)-s[i]; + } + return resp; + } + + public short[] identityShortArray(short[] sa) { + return sa; + } + + public int negateInt(int i) { + return -i; + } + + public int[] negateIntArray(int[] ia) { + int[] resp = new int[ia.length]; + + for(int i = 0; i < ia.length; ++i) { + resp[i] = -ia[i]; + } + return resp; + } + + public int[] identityIntArray(int[] ia) { + return ia; + } + + public long negateLong(long l) { + return -l; + } + + public long[] negateLongArray(long[] la) { + long[] resp = new long[la.length]; + + for(int i = 0; i < la.length; ++i) { + resp[i] = -la[i]; + } + return resp; + } + + public long[] identityLongArray(long[] la) { + return la; + } + + public float negateFloat(float f) { + return -f; + } + + public float[] negateFloatArray(float[] fa) { + float[] resp = new float[fa.length]; + + for(int i = 0; i < fa.length; ++i) { + resp[i] = -fa[i]; + } + return resp; + } + + public float[] identityFloatArray(float[] fa) { + return fa; + } + + public double negateDouble(double d) { + return -d; + } + + public double[] negateDoubleArray(double[] da) { + double[] resp = new double[da.length]; + + for(int i = 0; i < da.length; ++i) { + resp[i] = -da[i]; + } + return resp; + } + + public double[] identityDoubleArray(double[] da) { + return da; + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceClientImpl.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceClientImpl.java new file mode 100644 index 0000000000..b3d3c3eb3a --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceClientImpl.java @@ -0,0 +1,159 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import java.awt.Image; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.URI; +import java.util.Calendar; +import java.util.Date; +import java.util.UUID; + +import javax.activation.DataHandler; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService; +import org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesServiceClient; +import org.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.Service; + +/** + * An implementation of StandardTypesServiceClient. + * The client forwards the request to the service component and returns the response from the service component. + * + * @version $Rev$ $Date$ + */ +@Service(StandardTypesServiceClient.class) +public class StandardTypesServiceClientImpl implements StandardTypesServiceClient{ + + private StandardTypesService service; + + @Reference + public void setStandardTypesService(StandardTypesService service) { + this.service = service; + } + + public BigInteger getNewBigIntegerForward(BigInteger bi) { + return service.getNewBigInteger(bi); + } + + public BigInteger[] getNewBigIntegerArrayForward(BigInteger[] bia) { + return service.getNewBigIntegerArray(bia); + } + + public BigDecimal getNewBigDecimalForward(BigDecimal bd) { + return service.getNewBigDecimal(bd); + } + + public BigDecimal[] getNewBigDecimalArrayForward(BigDecimal[] bda) { + return service.getNewBigDecimalArray(bda); + } + public Calendar getNewCalendarForward(Calendar c) { + return service.getNewCalendar(c); + } + public Calendar[] getNewCalendarArrayForward(Calendar[] ca) { + return service.getNewCalendarArray(ca); + } + + public Date getNewDateForward(Date d) { + return service.getNewDate(d); + } + + public Date[] getNewDateArrayForward(Date[] da) { + return service.getNewDateArray(da); + } + + public QName getNewQNameForward(QName qname) { + return service.getNewQName(qname); + } + + public QName[] getNewQNameArrayForward(QName[] qnames) { + return service.getNewQNameArray(qnames); + } + + public URI getNewURIForward(URI uri) { + return service.getNewURI(uri); + } + + public URI[] getNewURIArrayForward(URI[] uris) { + return service.getNewURIArray(uris); + } + + public XMLGregorianCalendar getNewXMLGregorianCalendarForward(XMLGregorianCalendar xgcal) { + return service.getNewXMLGregorianCalendar(xgcal); + } + + public XMLGregorianCalendar[] getNewXMLGregorianCalendarArrayForward(XMLGregorianCalendar[] xgcals) { + return service.getNewXMLGregorianCalendarArray(xgcals); + } + + public Duration getNewDurationForward(Duration d) { + return service.getNewDuration(d); + } + + public Duration[] getNewDurationArrayForward(Duration[] da) { + return service.getNewDurationArray(da); + } + + public Object getNewObjectForward(Object obj) { + return service.getNewObject(obj); + } + + public Object[] getNewObjectArrayForward(Object[] objs) { + return service.getNewObjectArray(objs); + } + + public Image getNewImageForward(Image img) { + return service.getNewImage(img); + } + + public Image[] getNewImageArrayForward(Image[] imgs) { + return service.getNewImageArray(imgs); + } + + public DataHandler getNewDataHandlerForward(DataHandler dh) { + return service.getNewDataHandler(dh); + } + + public DataHandler[] getNewDataHandlerArrayForward(DataHandler[] dha) { + return service.getNewDataHandlerArray(dha); + } + + + public Source getNewSourceForward(Source src) { + return service.getNewSource(src); + } + + public Source[] getNewSourceArrayForward(Source[] srcs) { + return service.getNewSourceArray(srcs); + } + + public UUID getNewUUIDForward(UUID uuid) { + return service.getNewUUID(uuid); + } + + public UUID[] getNewUUIDArrayForward(UUID[] uuids) { + return service.getNewUUIDArray(uuids); + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java new file mode 100644 index 0000000000..b58d04a04c --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java @@ -0,0 +1,207 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import java.awt.Image; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.URI; +import java.util.Calendar; +import java.util.Date; +import java.util.UUID; + +import javax.activation.DataHandler; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; +import javax.xml.namespace.QName; +import javax.xml.transform.Source; + +import org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService; +import org.oasisopen.sca.annotation.Service; + +/** + * An implementation of StandardTypesService. + * + * @version $Rev$ $Date$ + */ +@Service(interfaces={StandardTypesService.class}) +public class StandardTypesServiceImpl implements StandardTypesService { + public BigInteger getNewBigInteger(BigInteger bi) { + return bi.negate(); + } + + public BigInteger[] getNewBigIntegerArray(BigInteger[] bia) { + BigInteger[] resp = new BigInteger[bia.length]; + for(int i = 0; i < bia.length; ++i) { + resp[i] = bia[i].negate(); + } + return resp; + } + + public BigDecimal getNewBigDecimal(BigDecimal bd) { + return bd.negate(); + } + + public BigDecimal[] getNewBigDecimalArray(BigDecimal[] bda) { + BigDecimal[] resp = new BigDecimal[bda.length]; + for(int i = 0; i < bda.length; ++i) { + resp[i] = bda[i].negate(); + } + return resp; + } + + public Calendar getNewCalendar(Calendar c) { + Calendar resp = (Calendar)c.clone(); + resp.add(Calendar.DAY_OF_MONTH, 5); + return resp; + } + + public Calendar[] getNewCalendarArray(Calendar[] ca) { + Calendar[] resp = new Calendar[ca.length]; + for(int i = 0; i < ca.length; ++i) { + resp[i] = getNewCalendar(ca[i]); + } + return resp; + } + + public Date getNewDate(Date d) { + return new Date(d.getTime() + 5*24*60*60*1000); + } + + public Date[] getNewDateArray(Date[] da) { + Date[] resp = new Date[da.length]; + for(int i = 0; i < da.length; ++i) { + resp[i] = getNewDate(da[i]); + } + return resp; + } + + public QName getNewQName(QName qname) { + return new QName(qname.getNamespaceURI()+"q", qname.getLocalPart()+"q", qname.getPrefix()+"q"); + + } + + public QName[] getNewQNameArray(QName[] qnames) { + QName[] resp = new QName[qnames.length]; + for(int i = 0; i < qnames.length; ++i) { + resp[i] = getNewQName(qnames[i]); + } + return resp; + } + + public URI getNewURI(URI uri) { + return uri.resolve("uri"); + } + + public URI[] getNewURIArray(URI[] uris) { + URI[] resp = new URI[uris.length]; + for(int i = 0; i < uris.length; ++i) { + resp[i] = getNewURI(uris[i]); + } + return resp; + } + + public XMLGregorianCalendar getNewXMLGregorianCalendar(XMLGregorianCalendar xgcal) { + xgcal = (XMLGregorianCalendar)xgcal.clone(); + xgcal.setDay(xgcal.getDay()+5); + return xgcal; + } + + public XMLGregorianCalendar[] getNewXMLGregorianCalendarArray(XMLGregorianCalendar[] xgcals) { + XMLGregorianCalendar[] resp = new XMLGregorianCalendar[xgcals.length]; + for(int i = 0; i < xgcals.length; ++i) { + resp[i] = getNewXMLGregorianCalendar(xgcals[i]); + } + return resp; + } + + public Duration getNewDuration(Duration d) { + return d.negate(); + } + + public Duration[] getNewDurationArray(Duration[] da) { + Duration[] resp = new Duration[da.length]; + for(int i = 0; i < da.length; ++i) { + resp[i] = da[i].negate(); + } + return resp; + } + + public Object getNewObject(Object obj) { + return StandardTypesTransformer.getNewObject(obj); + } + + public Object[] getNewObjectArray(Object[] objs) { + Object[] resp = new Object[objs.length]; + for(int i = 0; i < objs.length; ++i) { + resp[i] = getNewObject(objs[i]); + } + return resp; + } + + public Image getNewImage(Image img) { + return StandardTypesTransformer.getNewImage(img); + } + + public Image[] getNewImageArray(Image[] imgs) { + Image[] resp = new Image[imgs.length]; + for(int i = 0; i < imgs.length; ++i) { + resp[i] = getNewImage(imgs[i]); + } + return resp; + } + + public DataHandler getNewDataHandler(DataHandler dh) { + // FIXME: transform the input + return dh; + } + + public DataHandler[] getNewDataHandlerArray(DataHandler[] dha) { + DataHandler[] resp = new DataHandler[dha.length]; + for(int i = 0; i < dha.length; ++i) { + resp[i] = dha[i]; + } + return resp; + } + + public Source getNewSource(Source src) { + return StandardTypesTransformer.getNewSource(src); + } + + public Source[] getNewSourceArray(Source[] srcs) { + Source[] resp = new Source[srcs.length]; + for(int i = 0; i < srcs.length; ++i) { + resp[i] = getNewSource(srcs[i]); + } + return resp; + } + + public UUID getNewUUID(UUID uuid) { + return UUID.fromString(uuid.toString()+"AAA"); + } + + public UUID[] getNewUUIDArray(UUID[] uuids) { + UUID[] resp = new UUID[uuids.length]; + for(int i = 0; i < uuids.length; ++i) { + resp[i] = getNewUUID(uuids[i]); + } + return resp; + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java new file mode 100644 index 0000000000..9d851455da --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java @@ -0,0 +1,142 @@ +/* + * 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.itest.databindings.jaxb.impl; + +import java.awt.Image; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.CharArrayReader; +import java.io.CharArrayWriter; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; + +import javax.xml.transform.Source; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamSource; + +import org.xml.sax.InputSource; + +/** + * StandardTypesTransformer class that provide for transforming input provided to StandardTypesService methods. + * + * @version $Rev$ $Date$ + */ +public class StandardTypesTransformer { + + public static Object getNewObject(Object obj) { + if(obj instanceof String) { + return "Hello "+obj; + } else if(obj instanceof Integer) { + return new Integer(-((Integer)obj).intValue()); + } else if(obj instanceof Double) { + return new Double(-((Double)obj).doubleValue()); + } + + return obj; + } + + /** + * Returns a copy of the source object if the input is DOMSource, SAXSource or StreamSource. + * Returns the input object as is for other types. + */ + public static Source getNewSource(Source src) { + Source ret = null; + if(src instanceof DOMSource) { + DOMSource dsrc = (DOMSource)src; + ret = new DOMSource(dsrc.getNode() != null ? dsrc.getNode().cloneNode(true) : null); + } else if(src instanceof SAXSource) { + SAXSource ssrc = (SAXSource)src; + if(ssrc.getInputSource().getByteStream() != null) { + InputStream inp = ssrc.getInputSource().getByteStream(); + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + int b; + try { + while((b = inp.read()) != -1) { + bout.write(b); + } + } catch (IOException ignored) { + } + try { bout.close();} catch (IOException ignored) {} + try { inp.reset();} catch (IOException ignored) {} + ret = new SAXSource(new InputSource(new ByteArrayInputStream(bout.toByteArray()))); + } else if(ssrc.getInputSource().getCharacterStream() != null) { + Reader rdr = ssrc.getInputSource().getCharacterStream(); + CharArrayWriter caw = new CharArrayWriter(); + try { + int c; + while((c = rdr.read()) != -1) { + caw.append((char)c); + } + } catch (IOException ignored) { + } + caw.close(); + try{ rdr.reset();} catch(IOException ignored) {} + ret = new SAXSource(new InputSource(new CharArrayReader(caw.toCharArray()))); + } else { + ret = new SAXSource(); + } + } else if(src instanceof StreamSource) { + StreamSource ssrc = (StreamSource)src; + if(ssrc.getInputStream() != null) { + InputStream inp = ssrc.getInputStream(); + ByteArrayOutputStream bout = new ByteArrayOutputStream(); + int b; + try { + while((b = inp.read()) != -1) { + bout.write(b); + } + } catch (IOException ignored) { + } + try { bout.close();} catch (IOException ignored) {} + try { inp.reset();} catch (IOException ignored) {} + ret = new StreamSource(new ByteArrayInputStream(bout.toByteArray())); + } else if(ssrc.getReader() != null) { + Reader rdr = ssrc.getReader(); + CharArrayWriter caw = new CharArrayWriter(); + try { + int c; + while((c = rdr.read()) != -1) { + caw.append((char)c); + } + } catch (IOException ignored) { + } + caw.close(); + try{ rdr.reset();} catch(IOException ignored) {} + ret = new StreamSource(new CharArrayReader(caw.toCharArray())); + } else { + ret = new StreamSource(); + } + } + + if(ret != null) { + ret.setSystemId(src.getSystemId()); + } else { + ret = src; + } + return ret; + } + + public static Image getNewImage(Image arg) { + arg.getGraphics().drawOval(2, 2, 7, 7); + return arg; + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/hello-service.wsdl b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/hello-service.wsdl new file mode 100644 index 0000000000..926e4154aa --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/hello-service.wsdl @@ -0,0 +1,371 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<wsdl:definitions name="HelloService" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:tns="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xs:schema targetNamespace="http://util.java/" + version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="arrayList"> + <xs:complexContent> + <xs:extension base="abstractList"> + <xs:sequence /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType abstract="true" name="abstractList"> + <xs:complexContent> + <xs:extension base="abstractCollection"> + <xs:sequence /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType abstract="true" name="abstractCollection"> + <xs:sequence /> + </xs:complexType> + <xs:complexType name="hashMap"> + <xs:complexContent> + <xs:extension base="abstractMap"> + <xs:sequence /> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType abstract="true" name="abstractMap"> + <xs:sequence /> + </xs:complexType> + </xs:schema> + <xs:schema targetNamespace="http://jaxb.dev.java.net/array" + version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType final="#all" name="stringArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:schema> + <xs:schema attributeFormDefault="qualified" + elementFormDefault="unqualified" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:ns0="http://util.java/" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="getGreetings"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsList"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsListResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsArrayList"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="ns0:arrayList" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsArrayListResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="ns0:arrayList" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsMap"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsMapResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsHashMap"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="ns0:hashMap" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsHashMapResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="ns0:hashMap" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsVarArgs"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getGreetingsVarArgsResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:schema> + </wsdl:types> + <wsdl:message name="getGreetings"> + <wsdl:part name="getGreetings" element="tns:getGreetings"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsResponse"> + <wsdl:part name="getGreetingsResponse" + element="tns:getGreetingsResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsArray"> + <wsdl:part name="getGreetingsArray" + element="tns:getGreetingsArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsArrayResponse"> + <wsdl:part name="getGreetingsArrayResponse" + element="tns:getGreetingsArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsList"> + <wsdl:part name="getGreetingsList" + element="tns:getGreetingsList"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsListResponse"> + <wsdl:part name="getGreetingsListResponse" + element="tns:getGreetingsListResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsArrayList"> + <wsdl:part name="getGreetingsArrayList" + element="tns:getGreetingsArrayList"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsArrayListResponse"> + <wsdl:part name="getGreetingsArrayListResponse" + element="tns:getGreetingsArrayListResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsMap"> + <wsdl:part name="getGreetingsMap" + element="tns:getGreetingsMap"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsMapResponse"> + <wsdl:part name="getGreetingsMapResponse" + element="tns:getGreetingsMapResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsHashMap"> + <wsdl:part name="getGreetingsHashMap" + element="tns:getGreetingsHashMap"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsHashMapResponse"> + <wsdl:part name="getGreetingsHashMapResponse" + element="tns:getGreetingsHashMapResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsVarArgs"> + <wsdl:part name="getGreetingsVarArgs" + element="tns:getGreetingsVarArgs"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getGreetingsVarArgsResponse"> + <wsdl:part name="getGreetingsVarArgsResponse" + element="tns:getGreetingsVarArgsResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:portType name="HelloService"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetings"></wsdl:input> + <wsdl:output message="tns:getGreetingsResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsArray"> + <wsdl:input message="tns:getGreetingsArray"></wsdl:input> + <wsdl:output message="tns:getGreetingsArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsList"> + <wsdl:input message="tns:getGreetingsList"></wsdl:input> + <wsdl:output message="tns:getGreetingsListResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsArrayList"> + <wsdl:input message="tns:getGreetingsArrayList"> + </wsdl:input> + <wsdl:output message="tns:getGreetingsArrayListResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsMap"> + <wsdl:input message="tns:getGreetingsMap"> + </wsdl:input> + <wsdl:output message="tns:getGreetingsMapResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsHashMap"> + <wsdl:input message="tns:getGreetingsHashMap"></wsdl:input> + <wsdl:output message="tns:getGreetingsHashMapResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsVarArgs"> + <wsdl:input message="tns:getGreetingsVarArgs"> + </wsdl:input> + <wsdl:output message="tns:getGreetingsVarArgsResponse"> + </wsdl:output> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="HelloServiceBinding" type="tns:HelloService"> + <soap11:binding style="document" + transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="getGreetings"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsList"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsArrayList"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsMap"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsHashMap"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getGreetingsVarArgs"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="HelloServiceService"> + <wsdl:port name="HelloServicePort" + binding="tns:HelloServiceBinding"> + <soap11:address location="http://localhost:8085/hs-ep" /> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/helloservice.composite b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/helloservice.composite new file mode 100644 index 0000000000..63151f6a2d --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/helloservice.composite @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + name="HelloService"> + + <!-- Clients to test the service --> + <!-- A HelloServiceClient component that uses WS binding to invoke HelloService service. + The service component uses interface.wsdl on the service element. + This client component uses interface.wsdl on the reference element. --> + <component name="HelloServiceClientW2WComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloServiceClientImpl" /> + <reference name="helloService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(HelloService)"/> + <binding.ws uri="http://localhost:8085/hs-ep-w"/> + </reference> + </component> + + <!-- A HelloServiceClient component that uses WS binding to invoke HelloService service. + The service component uses interface.wsdl on the service element. + This client component uses interface.java on the reference element. --> + <component name="HelloServiceClientJ2WComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloServiceClientImpl" /> + <reference name="helloService"> + <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.HelloService"/> + <binding.ws uri="http://localhost:8085/hs-ep-w"/> + </reference> + </component> + + <!-- A HelloServiceClient component that uses WS binding to invoke HelloService service. + The service component uses interface.wsdl on the service element. + This client component uses interface.java on the reference element. --> + <component name="HelloServiceClientW2JComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloServiceClientImpl" /> + <reference name="helloService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(HelloService)"/> + <binding.ws uri="http://localhost:8085/hs-ep-j"/> + </reference> + </component> + + <!-- Components used to implement the services --> + <!-- A HelloService component that uses interface.wsdl --> + <component name="HelloServiceWSDLComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloServiceImpl"/> + <service name="HelloService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(HelloService)"/> + <binding.ws uri="http://localhost:8085/hs-ep-w"/> + </service> + </component> + + <!-- A HelloService component that uses interface.java --> + <component name="HelloServiceJavaComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.HelloServiceImpl"/> + <service name="HelloService"> + <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.HelloService"/> + <binding.ws uri="http://localhost:8085/hs-ep-j"/> + </service> + </component> +</composite> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/primitives-service.wsdl b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/primitives-service.wsdl new file mode 100644 index 0000000000..f366783e5e --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/primitives-service.wsdl @@ -0,0 +1,927 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<wsdl:definitions name="PrimitivesService" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:tns="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xs:schema targetNamespace="http://jaxb.dev.java.net/array" + version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType final="#all" name="shortArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:short" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="intArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:int" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="floatArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:float" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="doubleArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:double" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="longArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:long" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="booleanArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:schema> + <xs:schema attributeFormDefault="qualified" + elementFormDefault="unqualified" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="negateLongArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:long" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityByteArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateDoubleArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:double" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityFloatArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:float" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateLong"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:long" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityIntArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:int" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateIntResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:int" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateLongArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:long" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateInt"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:int" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateFloatArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:float" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityDoubleArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:double" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateDouble"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:double" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityByteArray"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateByte"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:byte" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityLongArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:long" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateDoubleResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:double" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityFloatArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:float" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateFloat"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:float" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateShortArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:short" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateByteArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateLongResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:long" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateShortArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:short" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateFloatArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:float" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateBoolean"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateShort"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + type="xs:short" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateByteArray"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityBooleanArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityShortArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:short" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateBooleanResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateFloatResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:float" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityBooleanArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateBooleanArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateDoubleArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:double" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityDoubleArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:double" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateIntArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:int" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityIntArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:int" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateByteResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:byte" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateBooleanArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:boolean" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateShortResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + type="xs:short" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="negateIntArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:int" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityShortArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:short" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="identityLongArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:long" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:schema> + </wsdl:types> + + <wsdl:message name="negateLongArrayResponse"> + <wsdl:part name="negateLongArrayResponse" + element="tns:negateLongArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityByteArrayResponse"> + <wsdl:part name="identityByteArrayResponse" + element="tns:identityByteArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateDoubleArray"> + <wsdl:part name="negateDoubleArray" + element="tns:negateDoubleArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityFloatArray"> + <wsdl:part name="identityFloatArray" + element="tns:identityFloatArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateLong"> + <wsdl:part name="negateLong" element="tns:negateLong"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityIntArray"> + <wsdl:part name="identityIntArray" + element="tns:identityIntArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateIntResponse"> + <wsdl:part name="negateIntResponse" + element="tns:negateIntResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateLongArray"> + <wsdl:part name="negateLongArray" + element="tns:negateLongArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateInt"> + <wsdl:part name="negateInt" element="tns:negateInt"></wsdl:part> + </wsdl:message> + + <wsdl:message name="negateFloatArrayResponse"> + <wsdl:part name="negateFloatArrayResponse" + element="tns:negateFloatArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityDoubleArrayResponse"> + <wsdl:part name="identityDoubleArrayResponse" + element="tns:identityDoubleArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateDouble"> + <wsdl:part name="negateDouble" element="tns:negateDouble"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityByteArray"> + <wsdl:part name="identityByteArray" + element="tns:identityByteArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateByte"> + <wsdl:part name="negateByte" element="tns:negateByte"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityLongArrayResponse"> + <wsdl:part name="identityLongArrayResponse" + element="tns:identityLongArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateDoubleResponse"> + <wsdl:part name="negateDoubleResponse" + element="tns:negateDoubleResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityFloatArrayResponse"> + <wsdl:part name="identityFloatArrayResponse" + element="tns:identityFloatArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateFloat"> + <wsdl:part name="negateFloat" element="tns:negateFloat"> + </wsdl:part> + </wsdl:message> + + <wsdl:message name="negateShortArrayResponse"> + <wsdl:part name="negateShortArrayResponse" + element="tns:negateShortArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateByteArrayResponse"> + <wsdl:part name="negateByteArrayResponse" + element="tns:negateByteArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateLongResponse"> + <wsdl:part name="negateLongResponse" + element="tns:negateLongResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateShortArray"> + <wsdl:part name="negateShortArray" + element="tns:negateShortArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateFloatArray"> + <wsdl:part name="negateFloatArray" + element="tns:negateFloatArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateBoolean"> + <wsdl:part name="negateBoolean" element="tns:negateBoolean"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateShort"> + <wsdl:part name="negateShort" element="tns:negateShort"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateByteArray"> + <wsdl:part name="negateByteArray" + element="tns:negateByteArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityBooleanArray"> + <wsdl:part name="identityBooleanArray" + element="tns:identityBooleanArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityShortArrayResponse"> + <wsdl:part name="identityShortArrayResponse" + element="tns:identityShortArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateBooleanResponse"> + <wsdl:part name="negateBooleanResponse" + element="tns:negateBooleanResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateFloatResponse"> + <wsdl:part name="negateFloatResponse" + element="tns:negateFloatResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityBooleanArrayResponse"> + <wsdl:part name="identityBooleanArrayResponse" + element="tns:identityBooleanArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateBooleanArray"> + <wsdl:part name="negateBooleanArray" + element="tns:negateBooleanArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateDoubleArrayResponse"> + <wsdl:part name="negateDoubleArrayResponse" + element="tns:negateDoubleArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityDoubleArray"> + <wsdl:part name="identityDoubleArray" + element="tns:identityDoubleArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateIntArrayResponse"> + <wsdl:part name="negateIntArrayResponse" + element="tns:negateIntArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityIntArrayResponse"> + <wsdl:part name="identityIntArrayResponse" + element="tns:identityIntArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateByteResponse"> + <wsdl:part name="negateByteResponse" + element="tns:negateByteResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateBooleanArrayResponse"> + <wsdl:part name="negateBooleanArrayResponse" + element="tns:negateBooleanArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateShortResponse"> + <wsdl:part name="negateShortResponse" + element="tns:negateShortResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="negateIntArray"> + <wsdl:part name="negateIntArray" element="tns:negateIntArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityShortArray"> + <wsdl:part name="identityShortArray" + element="tns:identityShortArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="identityLongArray"> + <wsdl:part name="identityLongArray" + element="tns:identityLongArray"> + </wsdl:part> + </wsdl:message> + <wsdl:portType name="PrimitivesService"> + <wsdl:operation name="negateBoolean"> + <wsdl:input message="tns:negateBoolean"> + </wsdl:input> + <wsdl:output message="tns:negateBooleanResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateBooleanArray"> + <wsdl:input message="tns:negateBooleanArray"></wsdl:input> + <wsdl:output message="tns:negateBooleanArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityBooleanArray"> + <wsdl:input message="tns:identityBooleanArray"></wsdl:input> + <wsdl:output message="tns:identityBooleanArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateByte"> + <wsdl:input message="tns:negateByte"> + </wsdl:input> + <wsdl:output message="tns:negateByteResponse"></wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateByteArray"> + <wsdl:input message="tns:negateByteArray"></wsdl:input> + <wsdl:output message="tns:negateByteArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityByteArray"> + <wsdl:input message="tns:identityByteArray"></wsdl:input> + <wsdl:output message="tns:identityByteArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateShort"> + <wsdl:input message="tns:negateShort"> + </wsdl:input> + <wsdl:output message="tns:negateShortResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateShortArray"> + <wsdl:input message="tns:negateShortArray"></wsdl:input> + <wsdl:output message="tns:negateShortArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityShortArray"> + <wsdl:input message="tns:identityShortArray"></wsdl:input> + <wsdl:output message="tns:identityShortArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateInt"> + <wsdl:input message="tns:negateInt"> + </wsdl:input> + <wsdl:output message="tns:negateIntResponse"></wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateIntArray"> + <wsdl:input message="tns:negateIntArray"></wsdl:input> + <wsdl:output message="tns:negateIntArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityIntArray"> + <wsdl:input message="tns:identityIntArray"></wsdl:input> + <wsdl:output message="tns:identityIntArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateLong"> + <wsdl:input message="tns:negateLong"> + </wsdl:input> + <wsdl:output message="tns:negateLongResponse"></wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateLongArray"> + <wsdl:input message="tns:negateLongArray"></wsdl:input> + <wsdl:output message="tns:negateLongArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityLongArray"> + <wsdl:input message="tns:identityLongArray"></wsdl:input> + <wsdl:output message="tns:identityLongArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateFloat"> + <wsdl:input message="tns:negateFloat"> + </wsdl:input> + <wsdl:output message="tns:negateFloatResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateFloatArray"> + <wsdl:input message="tns:negateFloatArray"></wsdl:input> + <wsdl:output message="tns:negateFloatArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityFloatArray"> + <wsdl:input message="tns:identityFloatArray"></wsdl:input> + <wsdl:output message="tns:identityFloatArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateDouble"> + <wsdl:input message="tns:negateDouble"> + </wsdl:input> + <wsdl:output message="tns:negateDoubleResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateDoubleArray"> + <wsdl:input message="tns:negateDoubleArray"></wsdl:input> + <wsdl:output message="tns:negateDoubleArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityDoubleArray"> + <wsdl:input message="tns:identityDoubleArray"></wsdl:input> + <wsdl:output message="tns:identityDoubleArrayResponse"> + </wsdl:output> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="PrimitivesServiceBinding" + type="tns:PrimitivesService"> + <soap11:binding style="document" + transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="negateBoolean"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateBooleanArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityBooleanArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateByte"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateByteArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityByteArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateShort"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateShortArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityShortArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateInt"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateIntArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityIntArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateLong"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateLongArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityLongArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateFloat"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateFloatArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityFloatArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateDouble"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="negateDoubleArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="identityDoubleArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="PrimitivesServiceService"> + <wsdl:port name="PrimitivesServicePort" + binding="tns:PrimitivesServiceBinding"> + <soap11:address location="http://localhost:8085/ps-ep" /> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/primitivesservice.composite b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/primitivesservice.composite new file mode 100644 index 0000000000..85ca6d0789 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/primitivesservice.composite @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance" + name="PrimitivesService"> + + <!-- Clients to test the service --> + <!-- A PrimitivesServiceClient component that uses WS binding to invoke PrimitivesService. + The service component uses interface.wsdl on the service element. + This client component uses interface.wsdl on the reference element. --> + <component name="PrimitivesServiceClientW2WComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceClientImpl" /> + <reference name="primitivesService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(PrimitivesService)"/> + <binding.ws uri="http://localhost:8085/ps-ep-w"/> + </reference> + </component> + + <!-- A PrimitivesServiceClient component that uses WS binding to invoke PrimitivesService. + The service component uses interface.wsdl on the service element. + This client component uses interface.java on the reference element. --> + <component name="PrimitivesServiceClientJ2WComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceClientImpl" /> + <reference name="primitivesService"> + <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService"/> + <binding.ws uri="http://localhost:8085/ps-ep-w"/> + </reference> + </component> + + <!-- A PrimitivesServiceClient component that uses WS binding to invoke PrimitivesService. + The service component uses interface.java on the service element. + This client component uses interface.wsdl on the reference element. --> + <component name="PrimitivesServiceClientW2JComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceClientImpl" /> + <reference name="primitivesService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(PrimitivesService)"/> + <binding.ws uri="http://localhost:8085/ps-ep-j"/> + </reference> + </component> + + <!-- Components used to implement the services --> + <!-- A PrimitivesService component that uses interface.java --> + <component name="PrimitivesServiceJavaComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceImpl"/> + <service name="PrimitivesService"> + <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesService"/> + <binding.ws uri="http://localhost:8085/ps-ep-j"/> + </service> + </component> + + <!-- A PrimitivesService component that uses interface.wsdl --> + <component name="PrimitivesServiceWSDLComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.PrimitivesServiceImpl"/> + <service name="PrimitivesService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(PrimitivesService)"/> + <binding.ws uri="http://localhost:8085/ps-ep-w"/> + </service> + </component> +</composite> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/standard-types-service.composite b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/standard-types-service.composite new file mode 100644 index 0000000000..4788df78e0 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/standard-types-service.composite @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance" + name="StandardTypesService"> + + <!-- Clients to test the service --> + <!-- A StandardTypesServiceClient component that uses WS binding to invoke StandardTypesService. + The service component uses interface.wsdl on the service element. + This client component uses interface.wsdl on the reference element. --> + <component name="StandardTypesServiceClientW2WComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceClientImpl" /> + <reference name="standardTypesService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(StandardTypesService)"/> + <binding.ws uri="http://localhost:8085/sts-ep-w"/> + </reference> + </component> + + <!-- A StandardTypesServiceClient component that uses WS binding to invoke StandardTypesService. + The service component uses interface.wsdl on the service element. + This client component uses interface.java on the reference element. --> + <component name="StandardTypesServiceClientJ2WComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceClientImpl" /> + <reference name="standardTypesService"> + <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService"/> + <binding.ws uri="http://localhost:8085/sts-ep-w"/> + </reference> + </component> + + <!-- A StandardTypesServiceClient component that uses WS binding to invoke StandardTypesService. + The service component uses interface.java on the service element. + This client component uses interface.wsdl on the reference element. --> + <component name="StandardTypesServiceClientW2JComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceClientImpl" /> + <reference name="standardTypesService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(StandardTypesService)"/> + <binding.ws uri="http://localhost:8085/sts-ep-j"/> + </reference> + </component> + + <!-- Components used to implement the services --> + <!-- A StandardTypesService component. --> + <component name="StandardTypesServiceJavaComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceImpl"/> + <service name="StandardTypesService"> + <interface.java interface="org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesService"/> + <binding.ws uri="http://localhost:8085/sts-ep-j"/> + </service> + </component> + + <!-- A StandardTypesService component. --> + <component name="StandardTypesServiceWSDLComponent"> + <implementation.java class="org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesServiceImpl"/> + <service name="StandardTypesService"> + <interface.wsdl interface="http://jaxb.databindings.itest.sca.tuscany.apache.org/#wsdl.interface(StandardTypesService)"/> + <binding.ws uri="http://localhost:8085/sts-ep-w"/> + </service> + </component> +</composite> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/standard-types-service.wsdl b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/standard-types-service.wsdl new file mode 100644 index 0000000000..5bfd1ea277 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/main/resources/wsdl/wrapped/standard-types-service.wsdl @@ -0,0 +1,1155 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> + +<!-- $Rev$ $Date$ --> + +<wsdl:definitions name="StandardTypesService" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:tns="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> + <wsdl:types> + <xs:schema targetNamespace="http://jaxb.dev.java.net/array" + version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType final="#all" name="anyTypeArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="base64BinaryArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:schema> + <xs:schema targetNamespace="http://jaxb.dev.java.net/array" + version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType final="#all" name="dateTimeArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="durationArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:duration" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="integerArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="anySimpleTypeArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:anySimpleType" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="QNameArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:QName" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="decimalArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:decimal" /> + </xs:sequence> + </xs:complexType> + + <xs:complexType final="#all" name="base64BinaryArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + <xs:complexType final="#all" name="stringArray"> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="item" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:schema> + <xs:schema attributeFormDefault="qualified" + elementFormDefault="unqualified" + targetNamespace="http://jaxb.databindings.itest.sca.tuscany.apache.org/" + xmlns:ns0="http://activation.javax/" + xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="getNewBigDecimalArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:decimal" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewImageArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigDecimal"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:decimal" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewURIArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewObjectArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDataHandler"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDateResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigInteger"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDateArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigIntegerArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewQNameArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:QName" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewURIResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewUUIDArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewCalendarArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewXMLGregorianCalendarArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:anySimpleType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewCalendarResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewCalendar"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewCalendarArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewImageArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewObjectResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDurationArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:duration" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element + name="getNewXMLGregorianCalendarArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:anySimpleType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewSource"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewObjectArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewUUIDResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigIntegerResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewQNameArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:QName" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewUUIDArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigDecimalResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:decimal" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDateArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewURIArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDurationArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:duration" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewObject"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:anyType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDataHandlerResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewQName"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:QName" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDate"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:dateTime" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewUUID"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewXMLGregorianCalendarResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:anySimpleType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigIntegerArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:integer" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewSourceArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewImage"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewSourceArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewXMLGregorianCalendar"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:anySimpleType" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewQNameResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:QName" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDataHandlerArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewBigDecimalArrayResponse"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="return" nillable="true" type="xs:decimal" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDuration"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:duration" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDataHandlerArray"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" minOccurs="0" + name="arg0" nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewImageResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewSourceResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:base64Binary" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewDurationResponse"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="return" + nillable="true" type="xs:duration" /> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="getNewURI"> + <xs:complexType> + <xs:sequence> + <xs:element minOccurs="0" name="arg0" + nillable="true" type="xs:string" /> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:schema> + </wsdl:types> + <wsdl:message name="getNewBigDecimalArray"> + <wsdl:part name="getNewBigDecimalArray" + element="tns:getNewBigDecimalArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewImageArrayResponse"> + + <wsdl:part name="getNewImageArrayResponse" + element="tns:getNewImageArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigDecimal"> + <wsdl:part name="getNewBigDecimal" + element="tns:getNewBigDecimal"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewURIArray"> + <wsdl:part name="getNewURIArray" element="tns:getNewURIArray"> + + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewObjectArray"> + <wsdl:part name="getNewObjectArray" + element="tns:getNewObjectArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDataHandler"> + <wsdl:part name="getNewDataHandler" + element="tns:getNewDataHandler"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDateResponse"> + <wsdl:part name="getNewDateResponse" + element="tns:getNewDateResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigInteger"> + <wsdl:part name="getNewBigInteger" + element="tns:getNewBigInteger"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDateArrayResponse"> + <wsdl:part name="getNewDateArrayResponse" + element="tns:getNewDateArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigIntegerArray"> + <wsdl:part name="getNewBigIntegerArray" + element="tns:getNewBigIntegerArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewQNameArrayResponse"> + <wsdl:part name="getNewQNameArrayResponse" + element="tns:getNewQNameArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewURIResponse"> + <wsdl:part name="getNewURIResponse" + element="tns:getNewURIResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewUUIDArrayResponse"> + <wsdl:part name="getNewUUIDArrayResponse" + element="tns:getNewUUIDArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewCalendarArrayResponse"> + <wsdl:part name="getNewCalendarArrayResponse" + element="tns:getNewCalendarArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewXMLGregorianCalendarArray"> + <wsdl:part name="getNewXMLGregorianCalendarArray" + element="tns:getNewXMLGregorianCalendarArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewCalendarResponse"> + <wsdl:part name="getNewCalendarResponse" + element="tns:getNewCalendarResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewCalendar"> + <wsdl:part name="getNewCalendar" element="tns:getNewCalendar"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewCalendarArray"> + <wsdl:part name="getNewCalendarArray" + element="tns:getNewCalendarArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewImageArray"> + <wsdl:part name="getNewImageArray" + element="tns:getNewImageArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewObjectResponse"> + <wsdl:part name="getNewObjectResponse" + element="tns:getNewObjectResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDurationArray"> + <wsdl:part name="getNewDurationArray" + element="tns:getNewDurationArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewXMLGregorianCalendarArrayResponse"> + <wsdl:part name="getNewXMLGregorianCalendarArrayResponse" + element="tns:getNewXMLGregorianCalendarArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewSource"> + <wsdl:part name="getNewSource" element="tns:getNewSource"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewObjectArrayResponse"> + <wsdl:part name="getNewObjectArrayResponse" + element="tns:getNewObjectArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewUUIDResponse"> + <wsdl:part name="getNewUUIDResponse" + element="tns:getNewUUIDResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigIntegerResponse"> + <wsdl:part name="getNewBigIntegerResponse" + element="tns:getNewBigIntegerResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewQNameArray"> + <wsdl:part name="getNewQNameArray" + element="tns:getNewQNameArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewUUIDArray"> + <wsdl:part name="getNewUUIDArray" + element="tns:getNewUUIDArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigDecimalResponse"> + <wsdl:part name="getNewBigDecimalResponse" + element="tns:getNewBigDecimalResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDateArray"> + <wsdl:part name="getNewDateArray" + element="tns:getNewDateArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewURIArrayResponse"> + <wsdl:part name="getNewURIArrayResponse" + element="tns:getNewURIArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDurationArrayResponse"> + <wsdl:part name="getNewDurationArrayResponse" + element="tns:getNewDurationArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewObject"> + <wsdl:part name="getNewObject" element="tns:getNewObject"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDataHandlerResponse"> + <wsdl:part name="getNewDataHandlerResponse" + element="tns:getNewDataHandlerResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewQName"> + <wsdl:part name="getNewQName" element="tns:getNewQName"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDate"> + <wsdl:part name="getNewDate" element="tns:getNewDate"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewUUID"> + <wsdl:part name="getNewUUID" element="tns:getNewUUID"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewXMLGregorianCalendarResponse"> + <wsdl:part name="getNewXMLGregorianCalendarResponse" + element="tns:getNewXMLGregorianCalendarResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigIntegerArrayResponse"> + <wsdl:part name="getNewBigIntegerArrayResponse" + element="tns:getNewBigIntegerArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewSourceArray"> + <wsdl:part name="getNewSourceArray" + element="tns:getNewSourceArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewImage"> + <wsdl:part name="getNewImage" element="tns:getNewImage"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewSourceArrayResponse"> + <wsdl:part name="getNewSourceArrayResponse" + element="tns:getNewSourceArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewXMLGregorianCalendar"> + <wsdl:part name="getNewXMLGregorianCalendar" + element="tns:getNewXMLGregorianCalendar"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewQNameResponse"> + <wsdl:part name="getNewQNameResponse" + element="tns:getNewQNameResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDataHandlerArrayResponse"> + <wsdl:part name="getNewDataHandlerArrayResponse" + element="tns:getNewDataHandlerArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewBigDecimalArrayResponse"> + <wsdl:part name="getNewBigDecimalArrayResponse" + element="tns:getNewBigDecimalArrayResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDuration"> + <wsdl:part name="getNewDuration" element="tns:getNewDuration"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDataHandlerArray"> + <wsdl:part name="getNewDataHandlerArray" + element="tns:getNewDataHandlerArray"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewImageResponse"> + <wsdl:part name="getNewImageResponse" + element="tns:getNewImageResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewSourceResponse"> + <wsdl:part name="getNewSourceResponse" + element="tns:getNewSourceResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewDurationResponse"> + <wsdl:part name="getNewDurationResponse" + element="tns:getNewDurationResponse"> + </wsdl:part> + </wsdl:message> + <wsdl:message name="getNewURI"> + <wsdl:part name="getNewURI" element="tns:getNewURI"></wsdl:part> + </wsdl:message> + <wsdl:portType name="StandardTypesService"> + <wsdl:operation name="getNewObject"> + <wsdl:input message="tns:getNewObject"></wsdl:input> + <wsdl:output message="tns:getNewObjectResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewImage"> + <wsdl:input message="tns:getNewImage"></wsdl:input> + <wsdl:output message="tns:getNewImageResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewSource"> + <wsdl:input message="tns:getNewSource"></wsdl:input> + <wsdl:output message="tns:getNewSourceResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigInteger"> + <wsdl:input message="tns:getNewBigInteger"></wsdl:input> + <wsdl:output message="tns:getNewBigIntegerResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigIntegerArray"> + <wsdl:input message="tns:getNewBigIntegerArray"> + </wsdl:input> + <wsdl:output message="tns:getNewBigIntegerArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigDecimal"> + <wsdl:input message="tns:getNewBigDecimal"></wsdl:input> + <wsdl:output message="tns:getNewBigDecimalResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigDecimalArray"> + <wsdl:input message="tns:getNewBigDecimalArray"> + </wsdl:input> + <wsdl:output message="tns:getNewBigDecimalArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewCalendar"> + <wsdl:input message="tns:getNewCalendar"></wsdl:input> + <wsdl:output message="tns:getNewCalendarResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewCalendarArray"> + <wsdl:input message="tns:getNewCalendarArray"></wsdl:input> + <wsdl:output message="tns:getNewCalendarArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDate"> + <wsdl:input message="tns:getNewDate"></wsdl:input> + <wsdl:output message="tns:getNewDateResponse"></wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDateArray"> + <wsdl:input message="tns:getNewDateArray"></wsdl:input> + <wsdl:output message="tns:getNewDateArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewQName"> + <wsdl:input message="tns:getNewQName"></wsdl:input> + <wsdl:output message="tns:getNewQNameResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewQNameArray"> + <wsdl:input message="tns:getNewQNameArray"></wsdl:input> + <wsdl:output message="tns:getNewQNameArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewURI"> + <wsdl:input message="tns:getNewURI"></wsdl:input> + <wsdl:output message="tns:getNewURIResponse"></wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewURIArray"> + <wsdl:input message="tns:getNewURIArray"></wsdl:input> + <wsdl:output message="tns:getNewURIArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewXMLGregorianCalendar"> + <wsdl:input message="tns:getNewXMLGregorianCalendar"> + </wsdl:input> + <wsdl:output + message="tns:getNewXMLGregorianCalendarResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewXMLGregorianCalendarArray"> + <wsdl:input message="tns:getNewXMLGregorianCalendarArray"> + </wsdl:input> + <wsdl:output + message="tns:getNewXMLGregorianCalendarArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDuration"> + <wsdl:input message="tns:getNewDuration"></wsdl:input> + <wsdl:output message="tns:getNewDurationResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDurationArray"> + <wsdl:input message="tns:getNewDurationArray"></wsdl:input> + <wsdl:output message="tns:getNewDurationArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewObjectArray"> + <wsdl:input message="tns:getNewObjectArray"></wsdl:input> + <wsdl:output message="tns:getNewObjectArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewImageArray"> + <wsdl:input message="tns:getNewImageArray"></wsdl:input> + <wsdl:output message="tns:getNewImageArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDataHandler"> + <wsdl:input message="tns:getNewDataHandler"></wsdl:input> + <wsdl:output message="tns:getNewDataHandlerResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDataHandlerArray"> + <wsdl:input message="tns:getNewDataHandlerArray"> + </wsdl:input> + <wsdl:output message="tns:getNewDataHandlerArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewSourceArray"> + <wsdl:input message="tns:getNewSourceArray"></wsdl:input> + <wsdl:output message="tns:getNewSourceArrayResponse"> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewUUID"> + <wsdl:input message="tns:getNewUUID"></wsdl:input> + <wsdl:output message="tns:getNewUUIDResponse"></wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewUUIDArray"> + <wsdl:input message="tns:getNewUUIDArray"></wsdl:input> + <wsdl:output message="tns:getNewUUIDArrayResponse"> + </wsdl:output> + </wsdl:operation> + + </wsdl:portType> + <wsdl:binding name="StandardTypesServiceBinding" + type="tns:StandardTypesService"> + <soap11:binding style="document" + transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="getNewObject"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewImage"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewSource"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigInteger"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigIntegerArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigDecimal"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewBigDecimalArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewCalendar"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewCalendarArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDate"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDateArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewQName"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewQNameArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewURI"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewURIArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewXMLGregorianCalendar"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewXMLGregorianCalendarArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDuration"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDurationArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewObjectArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewImageArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDataHandler"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewDataHandlerArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewSourceArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewUUID"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + <wsdl:operation name="getNewUUIDArray"> + <soap11:operation /> + <wsdl:input> + <soap11:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap11:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="StandardTypesServiceService"> + <wsdl:port name="StandardTypesServicePort" + binding="tns:StandardTypesServiceBinding"> + <soap11:address location="http://localhost:8085/sts-ep"/> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/DatabindingTestCase.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/DatabindingTestCase.java new file mode 100644 index 0000000000..35f69608e7 --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/DatabindingTestCase.java @@ -0,0 +1,349 @@ +/* + * 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.itest.databindings.jaxb.topdown; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import junit.framework.Assert; + +import org.apache.tuscany.sca.itest.databindings.jaxb.HelloServiceClient; +import org.apache.tuscany.sca.node.Client; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * @version $Rev$ $Date$ + */ +public class DatabindingTestCase { + + private static Client client; + private static Node node; + + /** + * Runs once before running the tests + */ + @BeforeClass + public static void setUp() throws Exception { + try { + NodeFactory nodeFactory = NodeFactory.newInstance(); + node = nodeFactory.createSCANodeFromClassLoader("wsdl/wrapped/helloservice.composite", null); + node.start(); + client = (Client)node; + }catch(Throwable e) { + e.printStackTrace(); + } + }catch(Throwable e) { + e.printStackTrace(); + } + } + + /** + * Runs once after running the tests + */ + @AfterClass + public static void tearDown() { + node.stop(); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetings. + */ + @Test + public void testW2W() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTest(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsArray. + */ + @Test + public void testW2WArray() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTestArray(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsList. + */ + @Test + public void testW2WList() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTestList(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsArrayList. + */ + @Test + public void testW2WArrayList() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTestArrayList(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsMap. + */ + @Test + public void testW2WMap() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTestMap(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsHashMap. + */ + @Test + public void testW2WHashMap() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTestHashMap(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsVarArgs. + */ + @Test + public void testW2WVarArgs() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2WComponent"); + performTestVarArgs(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetings. + */ + @Test + public void testJ2W() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTest(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsArray. + */ + @Test + public void testJ2WArray() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTestArray(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsList. + */ + @Test + public void testJ2WList() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTestList(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsArrayList. + */ + @Test + public void testJ2WArrayList() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTestArrayList(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsMap. + */ + @Test + public void testJ2WMap() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTestMap(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsHashMap. + */ + @Test + public void testJ2WHashMap() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTestHashMap(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsVarArgs. + */ + @Test + public void testJ2WVarArgs() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientJ2WComponent"); + performTestVarArgs(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetings. + */ + @Test + public void testW2J() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTest(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsArray. + */ + @Test + public void testW2JArray() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTestArray(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsList. + */ + @Test + public void testW2JList() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTestList(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsArrayList. + */ + @Test + public void testW2JArrayList() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTestArrayList(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsMap. + */ + @Test + public void testW2JMap() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTestMap(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsHashMap. + */ + @Test + public void testW2JHashMap() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTestHashMap(helloServiceClient); + } + + /** + * Invokes the HelloService service using WS binding. + * Service method invoked is getGreetingsVarArgs. + */ + @Test + public void testW2JVarArgs() throws Exception { + HelloServiceClient helloServiceClient = client.getService(HelloServiceClient.class, "HelloServiceClientW2JComponent"); + performTestVarArgs(helloServiceClient); + } + + private void performTest(HelloServiceClient helloServiceClient) { + String name = "Pandu"; + String resp = helloServiceClient.getGreetingsForward(name); + Assert.assertEquals("Hello "+name, resp); + } + + private void performTestArray(HelloServiceClient helloServiceClient) { + String[] names = {"Me", "Pandu"}; + String[] resps = helloServiceClient.getGreetingsArrayForward(names); + for(int i = 0; i < names.length; ++i) { + Assert.assertEquals("Hello "+names[i], resps[i]); + } + } + + private void performTestList(HelloServiceClient helloServiceClient) { + List<String> namesList = new ArrayList<String>(); + namesList.add("Me"); + namesList.add("Pandu"); + namesList.add("Chinnipandu"); + List<String> respList = helloServiceClient.getGreetingsListForward(namesList); + Assert.assertEquals(namesList.size(), respList.size()); + for(int i = 0; i < namesList.size(); ++i) { + Assert.assertEquals("Hello "+namesList.get(i), respList.get(i)); + } + } + + private void performTestArrayList(HelloServiceClient helloServiceClient) { + ArrayList<String> namesList = new ArrayList<String>(); + namesList.add("Me"); + namesList.add("Pandu"); + namesList.add("Chinnipandu"); + ArrayList<String> respList = helloServiceClient.getGreetingsArrayListForward(namesList); + Assert.assertEquals(namesList.size(), respList.size()); + for(int i = 0; i < namesList.size(); ++i) { + Assert.assertEquals("Hello "+namesList.get(i), respList.get(i)); + } + } + + private void performTestMap(HelloServiceClient helloServiceClient) { + Map<String, String> namesMap = new HashMap<String, String>(); + namesMap.put("Me", null); + namesMap.put("Pandu", null); + namesMap.put("Chinnipandu", null); + Map<String, String> respMap = helloServiceClient.getGreetingsMapForward(namesMap); + Assert.assertEquals(namesMap.keySet().size(), respMap.keySet().size()); + for(Map.Entry<String, String> entry: namesMap.entrySet()) { + Assert.assertEquals("Hello "+entry.getKey(), respMap.get(entry.getKey())); + } + } + + private void performTestHashMap(HelloServiceClient helloServiceClient) { + HashMap<String, String> namesMap = new HashMap<String, String>(); + namesMap.put("Me", null); + namesMap.put("Pandu", null); + namesMap.put("Chinnipandu", null); + Map<String, String> respMap = helloServiceClient.getGreetingsHashMapForward(namesMap); + Assert.assertEquals(namesMap.keySet().size(), respMap.keySet().size()); + for(Map.Entry<String, String> entry: namesMap.entrySet()) { + Assert.assertEquals("Hello "+entry.getKey(), respMap.get(entry.getKey())); + } + } + + private void performTestVarArgs(HelloServiceClient helloServiceClient) { + String[] names = { "Me", "You", "Pandu" }; // Do not change the array size from 3. + String expected = "Hello Me You Pandu"; + String actual = helloServiceClient.getGreetingsVarArgsForward(names[0], names[1], names[2]); + Assert.assertEquals(expected, actual); + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/PrimitivesDatabindingTestCase.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/PrimitivesDatabindingTestCase.java new file mode 100644 index 0000000000..4a292a8b7a --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/PrimitivesDatabindingTestCase.java @@ -0,0 +1,848 @@ +/* + * 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.itest.databindings.jaxb.topdown; + +import junit.framework.Assert; + +import org.apache.tuscany.sca.itest.databindings.jaxb.PrimitivesServiceClient; +import org.apache.tuscany.sca.node.Client; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * @version $Rev$ $Date$ + */ +public class PrimitivesDatabindingTestCase { + + private static Client domain; + private static Node node; + + /** + * Runs before each test method + */ + @BeforeClass + public static void setUp() throws Exception { + NodeFactory nodeFactory = NodeFactory.newInstance(); + node = nodeFactory.createSCANodeFromClassLoader("wsdl/wrapped/primitivesservice.composite", null); + node.start(); + domain = (Client)node; + } + + /** + * Runs after each test method + */ + @AfterClass + public static void tearDown() { + node.stop(); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateBoolean. + */ + @Test + public void testW2WNegateBoolean() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateBoolean(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateBooleanArray. + */ + @Test + public void testW2WNegateBooleanArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateBooleanArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for boolean array. + */ + @Test + public void testW2WPassByValueBooleanArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueBooleanArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateByte. + */ + @Test + public void testW2WNegateByte() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateByte(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateByteArray. + */ + @Test + public void testW2WNegateByteArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateByteArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for byte array. + */ + @Test + public void testW2WPassByValueByteArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueByteArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateShort. + */ + @Test + public void testW2WNegateShort() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateShort(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateShortArray. + */ + @Test + public void testW2WNegateShortArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateShortArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for short array. + */ + @Test + public void testW2WPassByValueShortArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueShortArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateInt. + */ + @Test + public void testW2WNegateInt() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateInt(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateIntArray. + */ + @Test + public void testW2WNegateIntArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateIntArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for int array. + */ + @Test + public void testW2WPassByValueIntArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueIntArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateLong. + */ + @Test + public void testW2WNegateLong() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateLong(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateLongArray. + */ + @Test + public void testW2WNegateLongArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateLongArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for long array. + */ + @Test + public void testW2WPassByValueLongArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueLongArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateFloat. + */ + @Test + public void testW2WNegateFloat() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateFloat(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateFloatArray. + */ + @Test + public void testW2WNegateFloatArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateFloatArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for float array. + */ + @Test + public void testW2WPassByValueFloatArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueFloatArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateDouble. + */ + @Test + public void testW2WNegateDouble() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateDouble(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateDoubleArray. + */ + @Test + public void testW2WNegateDoubleArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + performTestNegateDoubleArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for double array. + */ + @Test + public void testW2WPassByValueDoubleArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueDoubleArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateBoolean. + */ + @Test + public void testJ2WNegateBoolean() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateBoolean(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateBooleanArray. + */ + @Test + public void testJ2WNegateBooleanArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateBooleanArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for boolean array. + */ + @Test + public void testJ2WPassByValueBooleanArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueBooleanArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateByte. + */ + @Test + public void testJ2WNegateByte() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateByte(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateByteArray. + */ + @Test + public void testJ2WNegateByteArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateByteArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for byte array. + */ + @Test + public void testJ2WPassByValueByteArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueByteArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateShort. + */ + @Test + public void testJ2WNegateShort() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateShort(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateShortArray. + */ + @Test + public void testJ2WNegateShortArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateShortArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for short array. + */ + @Test + public void testJ2WPassByValueShortArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueShortArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateInt. + */ + @Test + public void testJ2WNegateInt() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateInt(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateIntArray. + */ + @Test + public void testJ2WNegateIntArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateIntArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for int array. + */ + @Test + public void testJ2WPassByValueIntArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueIntArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateLong. + */ + @Test + public void testJ2WNegateLong() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateLong(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateLongArray. + */ + @Test + public void testJ2WNegateLongArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateLongArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for long array. + */ + @Test + public void testJ2WPassByValueLongArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueLongArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateFloat. + */ + @Test + public void testJ2WNegateFloat() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateFloat(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateFloatArray. + */ + @Test + public void testJ2WNegateFloatArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateFloatArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for float array. + */ + @Test + public void testJ2WPassByValueFloatArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueFloatArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateDouble. + */ + @Test + public void testJ2WNegateDouble() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateDouble(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateDoubleArray. + */ + @Test + public void testJ2WNegateDoubleArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + performTestNegateDoubleArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for double array. + */ + @Test + public void testJ2WPassByValueDoubleArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientJ2WComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueDoubleArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateBoolean. + */ + @Test + public void testW2JNegateBoolean() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateBoolean(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateBooleanArray. + */ + @Test + public void testW2JNegateBooleanArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateBooleanArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for boolean array. + */ + @Test + public void testW2JPassByValueBooleanArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueBooleanArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateByte. + */ + @Test + public void testW2JNegateByte() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateByte(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateByteArray. + */ + @Test + public void testW2JNegateByteArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateByteArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for byte array. + */ + @Test + public void testW2JPassByValueByteArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueByteArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateShort. + */ + @Test + public void testW2JNegateShort() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateShort(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateShortArray. + */ + @Test + public void testW2JNegateShortArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateShortArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for short array. + */ + @Test + public void testW2JPassByValueShortArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueShortArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateInt. + */ + @Test + public void testW2JNegateInt() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateInt(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateIntArray. + */ + @Test + public void testW2JNegateIntArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateIntArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for int array. + */ + @Test + public void testW2JPassByValueIntArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueIntArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateLong. + */ + @Test + public void testW2JNegateLong() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateLong(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateLongArray. + */ + @Test + public void testW2JNegateLongArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateLongArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for long array. + */ + @Test + public void testW2JPassByValueLongArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueLongArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateFloat. + */ + @Test + public void testW2JNegateFloat() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateFloat(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateFloatArray. + */ + @Test + public void testW2JNegateFloatArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateFloatArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for float array. + */ + @Test + public void testW2JPassByValueFloatArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueFloatArray()); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateDouble. + */ + @Test + public void testW2JNegateDouble() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateDouble(primitivesServiceClient); + } + + /** + * Invokes the PrimitivesService service using WS binding. + * Service method invoked is negateDoubleArray. + */ + @Test + public void testW2JNegateDoubleArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + performTestNegateDoubleArray(primitivesServiceClient); + } + + /** + * Test the pass-by-value semantics of a remotable service with WS binding. + * Test for double array. + */ + @Test + public void testW2JPassByValueDoubleArray() throws Exception { + PrimitivesServiceClient primitivesServiceClient = domain.getService(PrimitivesServiceClient.class, "PrimitivesServiceClientW2JComponent"); + Assert.assertTrue(primitivesServiceClient.passByValueDoubleArray()); + } + + private void performTestNegateBoolean(PrimitivesServiceClient primitivesServiceClient) { + Assert.assertTrue(primitivesServiceClient.negateBooleanForward(false)); + Assert.assertFalse(primitivesServiceClient.negateBooleanForward(true)); + } + + private void performTestNegateBooleanArray(PrimitivesServiceClient primitivesServiceClient) { + boolean flags[] = new boolean[2]; + flags[0] = false; + flags[1] = true; + boolean[] respFlags = primitivesServiceClient.negateBooleanArrayForward(flags); + Assert.assertEquals(flags.length, respFlags.length); + for(int i = 0; i < flags.length; ++i) { + Assert.assertEquals(!flags[i], respFlags[i]); + } + } + + private void performTestNegateByte(PrimitivesServiceClient primitivesServiceClient) { + byte[] ba = new byte[3]; + ba[0] = -1; + ba[1] = 0; + ba[2] = 1; + + for(int i = 0; i < ba.length; ++i) { + Assert.assertEquals((byte)-ba[i], primitivesServiceClient.negateByteForward(ba[i])); + } + } + + private void performTestNegateByteArray(PrimitivesServiceClient primitivesServiceClient) { + byte[] ba = new byte[3]; + ba[0] = -1; + ba[1] = 0; + ba[2] = 1; + + byte[] r = primitivesServiceClient.negateByteArrayForward(ba); + Assert.assertEquals(ba.length, r.length); + for(int i = 0; i < ba.length; ++i) { + Assert.assertEquals((byte)-ba[i], r[i]); + } + } + + private void performTestNegateShort(PrimitivesServiceClient primitivesServiceClient) { + short[] s = new short[3]; + s[0] = -1; + s[1] = 0; + s[2] = 1; + + for(int i = 0; i < s.length; ++i) { + Assert.assertEquals((short)-s[i], primitivesServiceClient.negateShortForward(s[i])); + } + } + + private void performTestNegateShortArray(PrimitivesServiceClient primitivesServiceClient) { + short[] s = new short[3]; + s[0] = -1; + s[1] = 0; + s[2] = 1; + + short[] r = primitivesServiceClient.negateShortArrayForward(s); + Assert.assertEquals(s.length, r.length); + for(int i = 0; i < s.length; ++i) { + Assert.assertEquals((short)-s[i], r[i]); + } + } + + private void performTestNegateInt(PrimitivesServiceClient primitivesServiceClient) { + int[] ia = new int[3]; + ia[0] = -1; + ia[1] = 0; + ia[2] = 1; + + for(int i = 0; i < ia.length; ++i) { + Assert.assertEquals(-ia[i], primitivesServiceClient.negateIntForward(ia[i])); + } + } + + private void performTestNegateIntArray(PrimitivesServiceClient primitivesServiceClient) { + int[] ia = new int[3]; + ia[0] = -1; + ia[1] = 0; + ia[2] = 1; + + int[] r = primitivesServiceClient.negateIntArrayForward(ia); + Assert.assertEquals(ia.length, r.length); + for(int i = 0; i < ia.length; ++i) { + Assert.assertEquals(-ia[i], r[i]); + } + } + + private void performTestNegateLong(PrimitivesServiceClient primitivesServiceClient) { + long[] la = new long[3]; + la[0] = -1; + la[1] = 0; + la[2] = 1; + + for(int i = 0; i < la.length; ++i) { + Assert.assertEquals(-la[i], primitivesServiceClient.negateLongForward(la[i])); + } + } + + private void performTestNegateLongArray(PrimitivesServiceClient primitivesServiceClient) { + long[] la = new long[3]; + la[0] = -1; + la[1] = 0; + la[2] = 1; + + long[] r = primitivesServiceClient.negateLongArrayForward(la); + Assert.assertEquals(la.length, r.length); + for(int i = 0; i < la.length; ++i) { + Assert.assertEquals(-la[i], r[i]); + } + } + + private void performTestNegateFloat(PrimitivesServiceClient primitivesServiceClient) { + float[] fa = new float[3]; + fa[0] = -1; + fa[1] = 0; + fa[2] = 1; + + for(int i = 0; i < fa.length; ++i) { + Assert.assertEquals(-fa[i], primitivesServiceClient.negateFloatForward(fa[i])); + } + } + + private void performTestNegateFloatArray(PrimitivesServiceClient primitivesServiceClient) { + float[] ia = new float[3]; + ia[0] = -1; + ia[1] = 0; + ia[2] = 1; + + float[] r = primitivesServiceClient.negateFloatArrayForward(ia); + Assert.assertEquals(ia.length, r.length); + for(int i = 0; i < ia.length; ++i) { + Assert.assertEquals(-ia[i], r[i]); + } + } + + private void performTestNegateDouble(PrimitivesServiceClient primitivesServiceClient) { + double[] da = new double[3]; + da[0] = -1; + da[1] = 0; + da[2] = 1; + + for(int i = 0; i < da.length; ++i) { + Assert.assertEquals(-da[i], primitivesServiceClient.negateDoubleForward(da[i])); + } + } + + private void performTestNegateDoubleArray(PrimitivesServiceClient primitivesServiceClient) { + double[] da = new double[3]; + da[0] = -1; + da[1] = 0; + da[2] = 1; + + double[] r = primitivesServiceClient.negateDoubleArrayForward(da); + Assert.assertEquals(da.length, r.length); + for(int i = 0; i < da.length; ++i) { + Assert.assertEquals(-da[i], r[i]); + } + } +} diff --git a/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/StandardTypesDatabindingTestCase.java b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/StandardTypesDatabindingTestCase.java new file mode 100644 index 0000000000..263b2f81eb --- /dev/null +++ b/sca-java-2.x/contrib/itest/databindings/jaxb-top-down/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/topdown/StandardTypesDatabindingTestCase.java @@ -0,0 +1,1450 @@ +/* + * 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.itest.databindings.jaxb.topdown; + +import java.awt.Image; +import java.awt.image.BufferedImage; +import java.awt.image.PixelGrabber; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.io.StringWriter; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.net.URI; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.TimeZone; +import java.util.UUID; + +import javax.activation.DataHandler; +import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.Duration; +import javax.xml.datatype.XMLGregorianCalendar; +import javax.xml.namespace.QName; +import javax.xml.transform.Result; +import javax.xml.transform.Source; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.sax.SAXSource; +import javax.xml.transform.stream.StreamResult; +import javax.xml.transform.stream.StreamSource; + +import junit.framework.Assert; + +import org.apache.axiom.attachments.ByteArrayDataSource; +import org.apache.tuscany.sca.databinding.xml.String2Node; +import org.apache.tuscany.sca.itest.databindings.jaxb.StandardTypesServiceClient; +import org.apache.tuscany.sca.itest.databindings.jaxb.impl.StandardTypesTransformer; +import org.apache.tuscany.sca.node.Client; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import org.xml.sax.InputSource; + +/** + * @version $Rev$ $Date$ + */ +public class StandardTypesDatabindingTestCase { + + private static Client domain; + private static Node node; + + /** + * Runs once before the tests + */ + @BeforeClass + public static void setUp() throws Exception { + NodeFactory nodeFactory = NodeFactory.newInstance(); + node = nodeFactory.createSCANodeFromClassLoader("wsdl/wrapped/standard-types-service.composite", null); + node.start(); + domain = (Client)node; + } + + /** + * Runs once after the tests + */ + @AfterClass + public static void tearDown() { + node.stop(); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigInteger. + */ + @Test + public void testW2WNewBigInteger() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewBigInteger(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigIntegerArray. + */ + @Test + public void testW2WNewBigIntegerArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewBigIntegerArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigDecimal. + */ + @Test + public void testW2WNewBigDecimal() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewBigDecimal(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigDecimalArray. + */ + @Test + public void testW2WNewBigDecimalArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewBigDecimalArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewCalendar. + */ + @Test + public void testW2WNewCalendar() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewCalendar(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewCalendarArray. + */ + @Test + public void testW2WNewCalendarArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewCalendarArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDate. + */ + @Test + public void testW2WNewDate() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewDate(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDateArray. + */ + @Test + public void testW2WNewDateArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewDateArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewQName. + */ + @Test + public void testW2WNewQName() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewQName(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewQNameArray. + */ + @Test + public void testW2WNewQNameArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewQNameArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewURI. + */ + @Test + public void testW2WNewURI() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewURI(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewURIArray. + */ + @Test + public void testW2WNewURIArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewURIArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewXMLGregorianCalendar. + */ + @Test + public void testW2WNewXMLGregorianCalendar() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewXMLGregorianCalendar(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewXMLGregorianCalendarArray. + */ + @Test + public void testW2WNewXMLGregorianCalendarArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewXMLGregorianCalendarArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDuration. + */ + @Test + public void testW2WNewDuration() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewDuration(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDurationArray. + */ + @Test + public void testW2WNewDurationArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewDurationArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewObject. + */ + @Test + public void testW2WNewObject() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewObject(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewObjectArray. + */ + @Test + public void testW2WNewObjectArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewObjectArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewImage. + */ + @Test + public void testW2WNewImage() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewImage(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewImageArray. + */ + @Test + public void testW2WNewImageArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewImageArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDataHandler. + */ + @Test + @Ignore("TUSCANY-2451") + public void testW2WNewDataHandler() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewDataHandler(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDataHandlerArray. + */ + @Test + @Ignore("TUSCANY-2451") + public void testW2WNewDataHandlerArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewDataHandlerArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewSource. + */ + @Test + //@Ignore("junit.framework.ComparisonFailure: null expected:<... encoding=\"UTF-8\"?><[a>A</a]>> but was:<... encoding=\"UTF-8\"?><[return xmlns=\"http://jaxb.databindings.itest.sca.tuscany.apache.org/\">A</return]>>") + public void testW2WNewSource() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewSource(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewSourceArray. + */ + @Test + @Ignore("TUSCANY-2452") + public void testW2WNewSourceArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewSourceArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewUUID. + */ + @Test + public void testW2WNewUUID() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewUUID(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewUUIDArray. + */ + @Test + public void testW2WNewUUIDArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2WComponent"); + performTestNewUUIDArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigInteger. + */ + @Test + public void testJ2WNewBigInteger() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewBigInteger(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigIntegerArray. + */ + @Test + public void testJ2WNewBigIntegerArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewBigIntegerArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigDecimal. + */ + @Test + public void testJ2WNewBigDecimal() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewBigDecimal(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigDecimalArray. + */ + @Test + public void testJ2WNewBigDecimalArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewBigDecimalArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewCalendar. + */ + @Test + public void testJ2WNewCalendar() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewCalendar(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewCalendarArray. + */ + @Test + public void testJ2WNewCalendarArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewCalendarArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDate. + */ + @Test + public void testJ2WNewDate() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewDate(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDateArray. + */ + @Test + public void testJ2WNewDateArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewDateArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewQName. + */ + @Test + public void testJ2WNewQName() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewQName(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewQNameArray. + */ + @Test + public void testJ2WNewQNameArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewQNameArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewURI. + */ + @Test + public void testJ2WNewURI() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewURI(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewURIArray. + */ + @Test + public void testJ2WNewURIArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewURIArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewXMLGregorianCalendar. + */ + @Test + public void testJ2WNewXMLGregorianCalendar() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewXMLGregorianCalendar(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewXMLGregorianCalendarArray. + */ + @Test + public void testJ2WNewXMLGregorianCalendarArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewXMLGregorianCalendarArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDuration. + */ + @Test + public void testJ2WNewDuration() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewDuration(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDurationArray. + */ + @Test + public void testJ2WNewDurationArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewDurationArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewObject. + */ + @Test + public void testJ2WNewObject() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewObject(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewObjectArray. + */ + @Test + public void testJ2WNewObjectArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewObjectArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewImage. + */ + @Test + public void testJ2WNewImage() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewImage(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewImageArray. + */ + @Test + public void testJ2WNewImageArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewImageArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDataHandler. + */ + @Test + @Ignore("TUSCANY-2451") + public void testJ2WNewDataHandler() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewDataHandler(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDataHandlerArray. + */ + @Test + @Ignore("TUSCANY-2451") + public void testJ2WNewDataHandlerArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewDataHandlerArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewSource. + */ + @Test + //@Ignore("junit.framework.ComparisonFailure: null expected:<... encoding=\"UTF-8\"?><[a>A</a]>> but was:<... encoding=\"UTF-8\"?><[return xmlns=\"http://jaxb.databindings.itest.sca.tuscany.apache.org/\">A</return]>>") + public void testJ2WNewSource() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewSource(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewSourceArray. + */ + @Test + @Ignore("TUSCANY-2452") + public void testJ2WNewSourceArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewSourceArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewUUID. + */ + @Test + public void testJ2WNewUUID() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewUUID(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewUUIDArray. + */ + @Test + public void testJ2WNewUUIDArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientJ2WComponent"); + performTestNewUUIDArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigInteger. + */ + @Test + public void testW2JNewBigInteger() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewBigInteger(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigIntegerArray. + */ + @Test + public void testW2JNewBigIntegerArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewBigIntegerArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigDecimal. + */ + @Test + public void testW2JNewBigDecimal() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewBigDecimal(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewBigDecimalArray. + */ + @Test + public void testW2JNewBigDecimalArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewBigDecimalArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewCalendar. + */ + @Test + public void testW2JNewCalendar() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewCalendar(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewCalendarArray. + */ + @Test + public void testW2JNewCalendarArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewCalendarArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDate. + */ + @Test + public void testW2JNewDate() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewDate(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDateArray. + */ + @Test + public void testW2JNewDateArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewDateArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewQName. + */ + @Test + public void testW2JNewQName() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewQName(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewQNameArray. + */ + @Test + public void testW2JNewQNameArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewQNameArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewURI. + */ + @Test + public void testW2JNewURI() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewURI(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewURIArray. + */ + @Test + public void testW2JNewURIArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewURIArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewXMLGregorianCalendar. + */ + @Test + public void testW2JNewXMLGregorianCalendar() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewXMLGregorianCalendar(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewXMLGregorianCalendarArray. + */ + @Test + public void testW2JNewXMLGregorianCalendarArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewXMLGregorianCalendarArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDuration. + */ + @Test + public void testW2JNewDuration() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewDuration(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDurationArray. + */ + @Test + public void testW2JNewDurationArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewDurationArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewObject. + */ + @Test + public void testW2JNewObject() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewObject(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewObjectArray. + */ + @Test + public void testW2JNewObjectArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewObjectArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewImage. + */ + @Test + public void testW2JNewImage() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewImage(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewImageArray. + */ + @Test + public void testW2JNewImageArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewImageArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDataHandler. + */ + @Test + @Ignore("TUSCANY-2451") + public void testW2JNewDataHandler() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewDataHandler(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewDataHandlerArray. + */ + @Test + @Ignore("TUSCANY-2451") + public void testW2JNewDataHandlerArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewDataHandlerArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewSource. + */ + @Test + //@Ignore("junit.framework.ComparisonFailure: null expected:<... encoding=\"UTF-8\"?><[a>A</a]>> but was:<... encoding=\"UTF-8\"?><[return xmlns=\"http://jaxb.databindings.itest.sca.tuscany.apache.org/\">A</return]>>") + public void testW2JNewSource() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewSource(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewSourceArray. + */ + @Test + @Ignore("TUSCANY-2452") + public void testW2JNewSourceArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewSourceArray(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewUUID. + */ + @Test + public void testW2JNewUUID() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewUUID(serviceClient); + } + + /** + * Invokes the StandardTypesService service using WS binding. + * Service method invoked is getNewUUIDArray. + */ + @Test + public void testW2JNewUUIDArray() throws Exception { + StandardTypesServiceClient serviceClient = + domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientW2JComponent"); + performTestNewUUIDArray(serviceClient); + } + + private void performTestNewBigInteger(StandardTypesServiceClient serviceClient) { + BigInteger bi = new BigInteger("1234567890123456789012345678901234"); + BigInteger expected = bi.negate(); + BigInteger actual = serviceClient.getNewBigIntegerForward(bi); + Assert.assertEquals(expected, actual); + } + + private void performTestNewBigIntegerArray(StandardTypesServiceClient serviceClient) { + BigInteger[] bia = new BigInteger[2]; + bia[0] = new BigInteger("1234567890123456789012345678901234"); + bia[1] = new BigInteger("-98765432109876543210987654321"); + BigInteger[] actual = serviceClient.getNewBigIntegerArrayForward(bia); + Assert.assertEquals(bia.length, actual.length); + for (int i = 0; i < bia.length; ++i) { + Assert.assertEquals(bia[i].negate(), actual[i]); + } + } + + private void performTestNewBigDecimal(StandardTypesServiceClient serviceClient) { + BigDecimal bd = new BigDecimal("12345678901234567890.12345678901234"); + BigDecimal expected = bd.negate(); + BigDecimal actual = serviceClient.getNewBigDecimalForward(bd); + Assert.assertEquals(expected, actual); + } + + private void performTestNewBigDecimalArray(StandardTypesServiceClient serviceClient) { + BigDecimal[] bda = new BigDecimal[2]; + bda[0] = new BigDecimal("1234567890123456.789012345678901234"); + bda[1] = new BigDecimal("-987654321098765.43210987654321"); + BigDecimal[] actual = serviceClient.getNewBigDecimalArrayForward(bda); + Assert.assertEquals(bda.length, actual.length); + for (int i = 0; i < bda.length; ++i) { + Assert.assertEquals(bda[i].negate(), actual[i]); + } + } + + private void performTestNewCalendar(StandardTypesServiceClient serviceClient) { + Calendar[] ca = new Calendar[3]; + String[] tz = {"GMT+05:30", "GMT+00:00", "GMT-05:00"}; + for (int i = 0; i < ca.length; ++i) { + ca[i] = Calendar.getInstance(TimeZone.getTimeZone(tz[i])); + ca[i].set(Calendar.DAY_OF_MONTH, i + 1); + } + for (int i = 0; i < ca.length; ++i) { + Calendar actual = serviceClient.getNewCalendarForward(ca[i]); + ca[i].add(Calendar.DAY_OF_MONTH, 5); + if (actual instanceof GregorianCalendar && ca[i] instanceof GregorianCalendar) { + // FIXME: Is this a problem? + // The instance returned by service method invoked over binding.ws seems to have a gregorianCutover + // different from the instance passed. Adjust the gregorianCutover as per the input instance. + ((GregorianCalendar)actual).setGregorianChange(((GregorianCalendar)ca[i]).getGregorianChange()); + } + Assert.assertEquals(ca[i], actual); + } + } + + private void performTestNewCalendarArray(StandardTypesServiceClient serviceClient) { + Calendar[] ca = new Calendar[3]; + String[] tz = {"GMT+05:30", "GMT+00:00", "GMT-05:00"}; + for (int i = 0; i < ca.length; ++i) { + ca[i] = Calendar.getInstance(TimeZone.getTimeZone(tz[i])); + ca[i].set(Calendar.DAY_OF_MONTH, i + 1); + } + Calendar[] actual = serviceClient.getNewCalendarArrayForward(ca); + Assert.assertEquals(ca.length, actual.length); + for (int i = 0; i < ca.length; ++i) { + ca[i].add(Calendar.DAY_OF_MONTH, 5); + if (actual[i] instanceof GregorianCalendar && ca[i] instanceof GregorianCalendar) { + // FIXME: Is this a problem? + // The instance returned by service method invoked over binding.ws seems to have a gregorianCutover + // different from the instance passed. Adjust the gregorianCutover as per the input instance. + ((GregorianCalendar)actual[i]).setGregorianChange(((GregorianCalendar)ca[i]).getGregorianChange()); + } + Assert.assertEquals(ca[i], actual[i]); + } + } + + private void performTestNewDate(StandardTypesServiceClient serviceClient) { + Date d = new Date(); + Date expected = new Date(d.getTime() + 5 * 24 * 60 * 60 * 1000); + Date actual = serviceClient.getNewDateForward(d); + Assert.assertEquals(expected, actual); + } + + private void performTestNewDateArray(StandardTypesServiceClient serviceClient) { + Date[] d = new Date[2]; + Date[] expected = new Date[d.length]; + for (int i = 0; i < d.length; ++i) { + d[i] = new Date(); + d[i].setTime(d[i].getTime() + i * 24 * 60 * 60 * 1000); + expected[i] = new Date(d[i].getTime() + 5 * 24 * 60 * 60 * 1000); + } + Date[] actual = serviceClient.getNewDateArrayForward(d); + Assert.assertEquals(expected.length, actual.length); + for (int i = 0; i < expected.length; ++i) { + Assert.assertEquals(expected[i], actual[i]); + } + } + + private void performTestNewQName(StandardTypesServiceClient serviceClient) { + QName[] qnames = new QName[3]; + qnames[0] = new QName("localPart"); + qnames[1] = new QName("namespaceUri", "localPart"); + qnames[2] = new QName("namespaceUri", "localPart", "prefix"); + QName[] expected = new QName[qnames.length]; + for (int i = 0; i < qnames.length; ++i) { + expected[i] = + new QName(qnames[i].getNamespaceURI() + "q", qnames[i].getLocalPart() + "q", + qnames[i].getPrefix() + "q"); + } + for (int i = 0; i < qnames.length; ++i) { + QName actual = serviceClient.getNewQNameForward(qnames[i]); + Assert.assertEquals(expected[i], actual); + } + } + + private void performTestNewQNameArray(StandardTypesServiceClient serviceClient) { + QName[] qnames = new QName[4]; + qnames[0] = new QName("localPart"); + qnames[1] = new QName("namespaceUri", "localPart"); + qnames[2] = new QName("namespaceUri", "localPart", "prefix"); + qnames[3] = new QName("localPart2"); + QName[] expected = new QName[qnames.length]; + for (int i = 0; i < qnames.length; ++i) { + expected[i] = + new QName(qnames[i].getNamespaceURI() + "q", qnames[i].getLocalPart() + "q", + qnames[i].getPrefix() + "q"); + } + QName[] actual = serviceClient.getNewQNameArrayForward(qnames); + Assert.assertEquals(expected.length, actual.length); + for (int i = 0; i < qnames.length; ++i) { + Assert.assertEquals(expected[i], actual[i]); + } + } + + private void performTestNewURI(StandardTypesServiceClient serviceClient) { + URI[] uris = new URI[4]; + uris[0] = URI.create("a/b/c"); + uris[1] = URI.create("http://abc/"); + uris[2] = URI.create("ftp://a/b"); + uris[3] = URI.create("http://abc/").resolve("xyz"); + + for (int i = 0; i < uris.length; ++i) { + URI expected = uris[i].resolve("uri"); + URI actual = serviceClient.getNewURIForward(uris[i]); + Assert.assertEquals(expected, actual); + } + } + + private void performTestNewURIArray(StandardTypesServiceClient serviceClient) { + URI[] uris = new URI[4]; + uris[0] = URI.create("a/b/c"); + // [rfeng] We need to have a trialign / to avoid the resolving problem + // FIXME: [vamsi] This is actually a data transformation problem. The array being returned from the service method is + // not making to the caller intact. + uris[1] = URI.create("http://abc/"); + uris[2] = URI.create("ftp://a/b"); + uris[3] = URI.create("http://abc/").resolve("xyz"); + + URI[] expected = new URI[uris.length]; + for (int i = 0; i < uris.length; ++i) { + expected[i] = uris[i].resolve("uri"); + } + + URI[] actual = serviceClient.getNewURIArrayForward(uris); + Assert.assertEquals(expected.length, actual.length); + for (int i = 0; i < uris.length; ++i) { + Assert.assertEquals(expected[i], actual[i]); + } + } + + private void performTestNewXMLGregorianCalendar(StandardTypesServiceClient serviceClient) + throws DatatypeConfigurationException { + DatatypeFactory df = DatatypeFactory.newInstance(); + XMLGregorianCalendar[] xgcals = new XMLGregorianCalendar[3]; + xgcals[0] = df.newXMLGregorianCalendar(new GregorianCalendar(1974, GregorianCalendar.APRIL, 19)); + xgcals[1] = df.newXMLGregorianCalendar(new GregorianCalendar(1978, GregorianCalendar.OCTOBER, 13)); + xgcals[2] = df.newXMLGregorianCalendar(new GregorianCalendar(2006, GregorianCalendar.JUNE, 16)); + + for (int i = 0; i < xgcals.length; ++i) { + XMLGregorianCalendar actual = serviceClient.getNewXMLGregorianCalendarForward(xgcals[i]); + xgcals[i].setDay(xgcals[i].getDay() + 5); + Assert.assertEquals(xgcals[i], actual); + } + } + + private void performTestNewXMLGregorianCalendarArray(StandardTypesServiceClient serviceClient) + throws DatatypeConfigurationException { + DatatypeFactory df = DatatypeFactory.newInstance(); + XMLGregorianCalendar[] xgcals = new XMLGregorianCalendar[3]; + xgcals[0] = df.newXMLGregorianCalendar(new GregorianCalendar(1974, GregorianCalendar.APRIL, 19)); + xgcals[1] = df.newXMLGregorianCalendar(new GregorianCalendar(1978, GregorianCalendar.OCTOBER, 13)); + xgcals[2] = df.newXMLGregorianCalendar(new GregorianCalendar(2006, GregorianCalendar.JUNE, 16)); + + XMLGregorianCalendar[] actual = serviceClient.getNewXMLGregorianCalendarArrayForward(xgcals); + Assert.assertEquals(xgcals.length, actual.length); + for (int i = 0; i < xgcals.length; ++i) { + xgcals[i].setDay(xgcals[i].getDay() + 5); + Assert.assertEquals(xgcals[i], actual[i]); + } + } + + private void performTestNewDuration(StandardTypesServiceClient serviceClient) throws DatatypeConfigurationException { + DatatypeFactory df = DatatypeFactory.newInstance(); + Duration[] da = new Duration[3]; + da[0] = df.newDuration(1000000000000L); + da[1] = df.newDurationDayTime(1000000000000L); + da[2] = df.newDurationYearMonth(true, 1, 3); + + for (int i = 0; i < da.length; ++i) { + Assert.assertEquals(da[i].negate(), serviceClient.getNewDurationForward(da[i])); + } + } + + private void performTestNewObject(StandardTypesServiceClient serviceClient) { + Object[] objs = new Object[5]; + objs[0] = "Hello"; + objs[1] = 10; + objs[2] = null; + objs[3] = -1.0; + objs[4] = null; + + for (int i = 0; i < objs.length; ++i) { + Object expected = StandardTypesTransformer.getNewObject(objs[i]); + Object actual = serviceClient.getNewObjectForward(objs[i]); + Assert.assertEquals(expected, actual); + } + } + + private void performTestNewObjectArray(StandardTypesServiceClient serviceClient) { + Object[] objs = new Object[5]; + objs[0] = "Hello"; + objs[1] = 10; + objs[2] = null; + objs[3] = -1.0; + objs[4] = null; + + Object[] actual = serviceClient.getNewObjectArrayForward(objs); + Assert.assertEquals(objs.length, actual.length); + for (int i = 0; i < objs.length; ++i) { + Object expected = StandardTypesTransformer.getNewObject(objs[i]); + Assert.assertEquals(expected, actual[i]); + } + } + + private void performTestNewImage(StandardTypesServiceClient serviceClient) throws InterruptedException { + // Create some images to test with. + Image[] imgs = new Image[3]; + imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR); + imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); + imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); + imgs[0].getGraphics().drawLine(1, 1, 8, 8); + imgs[1].getGraphics().drawLine(8, 1, 1, 8); + imgs[2].getGraphics().drawLine(1, 8, 8, 1); + + Image[] copy = imgs; + // Create the same images once again as the StandardTypesTransformer may manipulate the image passed. + imgs = new Image[3]; + imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR); + imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); + imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); + imgs[0].getGraphics().drawLine(1, 1, 8, 8); + imgs[1].getGraphics().drawLine(8, 1, 1, 8); + imgs[2].getGraphics().drawLine(1, 8, 8, 1); + + // Make sure the images and copies are equal using ImageInfo + for(int i = 0; i < imgs.length; ++i) { + Assert.assertEquals(new ImageInfo(imgs[i]), new ImageInfo(copy[i])); + } + + for (int i = 0; i < imgs.length; ++i) { + Image actual = serviceClient.getNewImageForward(imgs[i]); + Image expected = StandardTypesTransformer.getNewImage(copy[i]); + // Compare using ImageInfo + Assert.assertEquals(new ImageInfo(expected), new ImageInfo(actual)); + } + } + + private void performTestNewImageArray(StandardTypesServiceClient serviceClient) throws InterruptedException { + // Create some images to test with. + Image[] imgs = new Image[3]; + imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR); + imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); + imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); + imgs[0].getGraphics().drawLine(1, 1, 8, 8); + imgs[1].getGraphics().drawLine(8, 1, 1, 8); + imgs[2].getGraphics().drawLine(1, 8, 8, 1); + + Image[] copy = imgs; + // Create the same images once again as the StandardTypesTransformer may manipulate the image passed. + imgs = new Image[3]; + imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR); + imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); + imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB); + imgs[0].getGraphics().drawLine(1, 1, 8, 8); + imgs[1].getGraphics().drawLine(8, 1, 1, 8); + imgs[2].getGraphics().drawLine(1, 8, 8, 1); + + // Make sure the images and copies are equal using ImageInfo + for(int i = 0; i < imgs.length; ++i) { + Assert.assertEquals(new ImageInfo(imgs[i]), new ImageInfo(copy[i])); + } + + Image[] actual = serviceClient.getNewImageArrayForward(imgs); + Assert.assertEquals(imgs.length, actual.length); + for (int i = 0; i < imgs.length; ++i) { + Image expected = StandardTypesTransformer.getNewImage(copy[i]); + // Compare using ImageInfo + Assert.assertEquals(new ImageInfo(expected), new ImageInfo(actual[i])); + } + } + + private void performTestNewDurationArray(StandardTypesServiceClient serviceClient) + throws DatatypeConfigurationException { + DatatypeFactory df = DatatypeFactory.newInstance(); + Duration[] da = new Duration[3]; + da[0] = df.newDuration(1000000000000L); + da[1] = df.newDurationDayTime(1000000000000L); + da[2] = df.newDurationYearMonth(true, 1, 3); + + Duration[] actual = serviceClient.getNewDurationArrayForward(da); + Assert.assertEquals(da.length, actual.length); + for (int i = 0; i < da.length; ++i) { + Assert.assertEquals(da[i].negate(), actual[i]); + } + } + + private void performTestNewDataHandler(StandardTypesServiceClient serviceClient) throws IOException { + DataHandler[] dha = new DataHandler[3]; + dha[0] = new DataHandler("Some data", "text/plain"); + dha[1] = new DataHandler(this.getClass().getClassLoader().getResource("standard-types-service.composite")); + dha[2] = new DataHandler(new ByteArrayDataSource("Some data2".getBytes())); + + for (int i = 0; i < dha.length; ++i) { + DataHandler actual = serviceClient.getNewDataHandlerForward(dha[i]); + // Note: The DataHandler returned may use a different type of DataSource. + // Compare the data content instead of using equals(). + Assert.assertTrue(compare(dha[i], actual)); + } + } + + private void performTestNewDataHandlerArray(StandardTypesServiceClient serviceClient) throws IOException { + DataHandler[] dha = new DataHandler[3]; + dha[0] = new DataHandler("Some data", "text/plain"); + dha[1] = new DataHandler(this.getClass().getClassLoader().getResource("standard-types-service.composite")); + dha[2] = new DataHandler(new ByteArrayDataSource("Some data2".getBytes())); + + DataHandler[] actual = serviceClient.getNewDataHandlerArrayForward(dha); + Assert.assertEquals(dha.length, actual.length); + for (int i = 0; i < dha.length; ++i) { + // Note: The DataHandler returned may use a different type of DataSource. + // Compare the data content instead of using equals(). + Assert.assertTrue(compare(dha[i], actual[i])); + } + } + + private void performTestNewSource(StandardTypesServiceClient serviceClient) throws Exception { + String xml = "<a>A<b>B</b><c>C</c></a>"; + Source[] srcs = new Source[3]; + srcs[0] = new DOMSource(new String2Node().transform(xml, null)); + srcs[1] = new SAXSource(new InputSource(new StringReader(xml))); + srcs[2] = new StreamSource(new StringReader(xml)); + + for (int i = 0; i < srcs.length; ++i) { + Source expected = StandardTypesTransformer.getNewSource(srcs[i]); + Source actual = serviceClient.getNewSourceForward(srcs[i]); + // [rfeng] The data may come back as a different source + Assert.assertEquals(sourceToString(expected), sourceToString(actual)); + } + } + + private void performTestNewSourceArray(StandardTypesServiceClient serviceClient) throws Exception { + String xml = "<a>A<b>B</b><c>C</c></a>"; + Source[] srcs = new Source[3]; + srcs[0] = new DOMSource(new String2Node().transform(xml, null)); + srcs[1] = new SAXSource(new InputSource(new StringReader(xml))); + srcs[2] = new StreamSource(new StringReader(xml)); + + Source[] actual = serviceClient.getNewSourceArrayForward(srcs); + Source[] expected = new Source[srcs.length]; + for(int i = 0; i < srcs.length; ++i) { + expected[i] = StandardTypesTransformer.getNewSource(srcs[i]); + } + Assert.assertEquals(srcs.length, actual.length); + for (int i = 0; i < srcs.length; ++i) { + // [rfeng] The data may come back as a different source + Assert.assertEquals(sourceToString(expected[i]), sourceToString(actual[i])); + } + + } + + private void performTestNewUUID(StandardTypesServiceClient serviceClient) { + UUID[] uuids = new UUID[3]; + uuids[0] = UUID.nameUUIDFromBytes("ABCDEFGHJKLMNOPQRSTUVWXYZ".getBytes()); + uuids[1] = UUID.nameUUIDFromBytes("abcdefghjklmnopqrstuvwxyz".getBytes()); + uuids[2] = UUID.randomUUID(); + + for (int i = 0; i < uuids.length; ++i) { + UUID expected = UUID.fromString(uuids[i].toString() + "AAA"); + UUID actual = serviceClient.getNewUUIDForward(uuids[i]); + Assert.assertEquals(expected, actual); + } + } + + private void performTestNewUUIDArray(StandardTypesServiceClient serviceClient) { + UUID[] uuids = new UUID[3]; + uuids[0] = UUID.nameUUIDFromBytes("ABCDEFGHJKLMNOPQRSTUVWXYZ".getBytes()); + uuids[1] = UUID.nameUUIDFromBytes("abcdefghjklmnopqrstuvwxyz".getBytes()); + uuids[2] = UUID.randomUUID(); + + UUID[] actual = serviceClient.getNewUUIDArrayForward(uuids); + for (int i = 0; i < uuids.length; ++i) { + UUID expected = UUID.fromString(uuids[i].toString() + "AAA"); + Assert.assertEquals(expected, actual[i]); + } + } + + /** + * This method compares two DataHandlers. + * @return true if the data in the two handlers is the same. + */ + private boolean compare(DataHandler dh1, DataHandler dh2) throws IOException { + InputStream inp1 = dh1.getInputStream(); + InputStream inp2 = dh2.getInputStream(); + for(;;) { + int i1 = inp1.read(); + int i2 = inp2.read(); + if(i1 == -1 && i2 == -1) { + return true; + } else if(i1 != -1 && i2 != -1) { + if(i1 != i2) { + return false; + } + } else { + return false; + } + } + } + + /** + * This method returns the content of a source object as String. + */ + private String sourceToString(Source s) throws Exception { + StringWriter sw = new StringWriter(); + Result r = new StreamResult(sw); + TransformerFactory.newInstance().newTransformer().transform(s, r); + sw.close(); + return sw.toString(); + } + + /** + * This class initializes with the width, height and pixel data of a java.awt.Image object. + */ + private static class ImageInfo { + private int h, w, pixels[]; + public ImageInfo(Image img) throws InterruptedException { + w = img.getWidth(null); + h = img.getHeight(null); + pixels = new int[w*h]; + PixelGrabber pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w); + pg.grabPixels(); + } + + public boolean equals(Object that) { + if(that == null) { + return false; + } else if(!(that instanceof ImageInfo)) { + return false; + } + + ImageInfo that1 = (ImageInfo)that; + if(w != that1.w || h != that1.h || pixels == null || that1.pixels == null || pixels.length != that1.pixels.length) { + return false; + } + for(int i = 0; i < pixels.length; ++i) { + if(pixels[i] != that1.pixels[i]) { + return false; + } + } + return true; + } + + public String toString() { + return this.getClass().getSimpleName()+"[w = "+w+", h = "+h+", pixels = "+pixels+"]"; + } + } +} |