summaryrefslogtreecommitdiffstats
path: root/java/sca-contrib/itest/wsdlless
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca-contrib/itest/wsdlless')
-rw-r--r--java/sca-contrib/itest/wsdlless/pom.xml202
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataService.java95
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataServiceImpl.java91
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountServiceClientImpl.java77
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2aImpl.java77
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2bImpl.java77
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3aImpl.java77
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3bImpl.java77
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/CustomerIdService.java98
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldImpl.java44
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldService.java31
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldServiceComponent.java47
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2aImpl.java43
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2bImpl.java42
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3aImpl.java42
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3bImpl.java43
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/service/AnObject.java62
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/service/MoreComplexObject.java53
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/service/SomeService.java31
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/java/service/SomeServiceImpl.java42
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/resources/SDOWSDLTest.composite321
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/resources/WSDLTest.composite350
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/resources/some.composite33
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/AccountService.wsdl453
-rw-r--r--java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/helloworld.wsdl131
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/SDOWSDLTestCase.java173
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/WSDLTestCase.java150
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/SomeComponentTestCase.java83
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/AnObject.java100
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObject.java79
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObjectResponse.java79
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingString.java79
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingStringResponse.java79
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/MoreComplexObject.java126
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/ObjectFactory.java141
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeService.java65
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeServiceService.java81
-rw-r--r--java/sca-contrib/itest/wsdlless/src/test/java/service/generated/package-info.java21
38 files changed, 3895 insertions, 0 deletions
diff --git a/java/sca-contrib/itest/wsdlless/pom.xml b/java/sca-contrib/itest/wsdlless/pom.xml
new file mode 100644
index 0000000000..7630651bc6
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/pom.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-itest</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>itest-wsdlless</artifactId>
+ <name>Apache Tuscany SCA WSDLless Support Integration Tests</name>
+
+ <repositories>
+ <repository>
+ <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>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </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-wsdl</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </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-sdo</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-databinding-axiom</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</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>org.apache.tuscany.sdo</groupId>
+ <artifactId>tuscany-sdo-impl</artifactId>
+ <version>1.1.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-rt</artifactId>
+ <version>2.1.4</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <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.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.1</version>
+ <type>jar</type>
+ </artifactItem>
+ <artifactItem>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>jaxws-api</artifactId>
+ <version>2.1</version>
+ <type>jar</type>
+ </artifactItem>
+ <!--
+ <artifactItem>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-rt</artifactId>
+ <version>2.1.4</version>
+ <type>jar</type>
+ </artifactItem>
+ -->
+ </artifactItems>
+ <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <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.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.0</version>
+ <executions>
+ <execution>
+ <id>add-source</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>target/sdo-source</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.tuscany.sdo</groupId>
+ <artifactId>tuscany-sdo-plugin</artifactId>
+ <version>1.1.1</version>
+ <executions>
+ <execution>
+ <id>generate-sdo</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <schemaFile>${basedir}/src/main/resources/wsdl/AccountService.wsdl</schemaFile>
+ <javaPackage>com.bigbank.account</javaPackage>
+ <prefix>Account</prefix>
+ <noNotification>true</noNotification>
+ <noContainer>true</noContainer>
+ <noUnsettable>true</noUnsettable>
+ </configuration>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataService.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataService.java
new file mode 100644
index 0000000000..e2c884ec74
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataService.java
@@ -0,0 +1,95 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import javax.jws.WebService;
+import javax.xml.ws.ResponseWrapper;
+import org.oasisopen.sca.annotation.AllowsPassByReference;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@AllowsPassByReference
+@WebService(targetNamespace="http://www.bigbank.com/account")
+public interface AccountDataService {
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param0*
+ * @param param1*
+ * @param param2
+ */
+ public com.bigbank.account.StockSummary purchaseStock(int param0, com.bigbank.account.StockSummary parm1);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param4
+ */
+ public com.bigbank.account.CustomerProfileData getCustomerProfile(java.lang.String param4);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param6*
+ * @param param7
+ */
+ public float deposit(java.lang.String param6, float param7);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param9*
+ * @param param10*
+ * @param param11
+ */
+ public com.bigbank.account.CustomerProfileData createAccount(com.bigbank.account.CustomerProfileData param9, boolean param10, boolean param11);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param13*
+ * @param param14
+ */
+ @ResponseWrapper(localName="purchaseStockResponse")
+ public com.bigbank.account.StockSummary sellStock(int param13, int param14);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param16*
+ * @param param17
+ */
+ public float withdraw(java.lang.String param16, float param17);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param19
+ */
+ public com.bigbank.account.AccountReport getAccountReport(int param19);
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param0
+ */
+ public com.bigbank.account.AccountLog getAccountLog(int param0);
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataServiceImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataServiceImpl.java
new file mode 100644
index 0000000000..c23a281b6f
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountDataServiceImpl.java
@@ -0,0 +1,91 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import org.oasisopen.sca.annotation.Service;
+
+import com.bigbank.account.AccountFactory;
+import com.bigbank.account.AccountLog;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.AccountSummary;
+import com.bigbank.account.CustomerProfileData;
+import com.bigbank.account.StockSummary;
+
+@Service(AccountDataService.class)
+public class AccountDataServiceImpl implements AccountDataService {
+
+ public CustomerProfileData getCustomerProfile(String logonID) {
+
+ return null;
+ }
+
+ public AccountReport getAccountReport(int customerID) {
+
+ AccountReport report =AccountFactory.INSTANCE.createAccountReport();
+ AccountSummary summary1 = AccountFactory.INSTANCE.createAccountSummary();
+ summary1.setAccountNumber("123");
+ summary1.setAccountType("checking");
+ summary1.setBalance(1000.0f);
+ report.getAccountSummaries().add(summary1);
+ AccountSummary summary2 = AccountFactory.INSTANCE.createAccountSummary();
+ summary2.setAccountNumber("456");
+ summary2.setAccountType("savings");
+ summary2.setBalance(2000.0f);
+ report.getAccountSummaries().add(summary2);
+
+ return report;
+ }
+
+ public CustomerProfileData createAccount(CustomerProfileData customerProfile, boolean createSavings, boolean createCheckings)
+ {
+ CustomerProfileData data = AccountFactory.INSTANCE.createCustomerProfileData();
+ data.setLoginID(customerProfile.getLoginID());
+ data.setAddress(customerProfile.getAddress());
+ data.setEmail(customerProfile.getEmail());
+ data.setFirstName(customerProfile.getFirstName());
+ data.setId(customerProfile.getId());
+ data.setLastName(customerProfile.getLastName());
+ data.setPassword(customerProfile.getPassword());
+ return data;
+ }
+
+ public float deposit(String param6, float param7) {
+
+ return 0;
+ }
+
+ public StockSummary purchaseStock(int param0, StockSummary stock) {
+
+ return null;
+ }
+
+ public StockSummary sellStock(int param13, int param14) {
+
+ return null;
+ }
+
+ public float withdraw(String param16, float param17) {
+
+ return 0;
+ }
+
+ public AccountLog getAccountLog(final int customerID) {
+ throw new IllegalStateException("This method should not be called");
+ }
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountServiceClientImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountServiceClientImpl.java
new file mode 100644
index 0000000000..591e9d04d3
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/AccountServiceClientImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import org.oasisopen.sca.annotation.Reference;
+
+import com.bigbank.account.AccountLog;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.CustomerProfileData;
+import com.bigbank.account.StockSummary;
+
+public class AccountServiceClientImpl implements AccountDataService {
+
+ AccountDataService accountService;
+
+ @Reference
+ public void setAccountService(AccountDataService accountService) {
+ this.accountService = accountService;
+ }
+
+ public CustomerProfileData createAccount(CustomerProfileData param9, boolean param10, boolean param11) {
+ return accountService.createAccount(param9, param10, param11);
+ }
+
+ public float deposit(String param6, float param7) {
+
+ return 0;
+ }
+
+ public AccountLog getAccountLog(int param0) {
+
+ return null;
+ }
+
+ public AccountReport getAccountReport(int param19) {
+
+ return accountService.getAccountReport(param19);
+ }
+
+ public CustomerProfileData getCustomerProfile(String param4) {
+
+ return null;
+ }
+
+ public StockSummary purchaseStock(int param0, StockSummary parm1) {
+
+ return null;
+ }
+
+ public StockSummary sellStock(int param13, int param14) {
+
+ return null;
+ }
+
+ public float withdraw(String param16, float param17) {
+
+ return 0;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2aImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2aImpl.java
new file mode 100644
index 0000000000..196dd2a5ba
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2aImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import org.oasisopen.sca.annotation.Reference;
+
+import com.bigbank.account.AccountLog;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.CustomerProfileData;
+import com.bigbank.account.StockSummary;
+
+public class Component2aImpl implements AccountDataService {
+
+ AccountDataService accountService;
+
+ @Reference
+ public void setAccountService(AccountDataService accountService) {
+ this.accountService = accountService;
+ }
+
+ public CustomerProfileData createAccount(CustomerProfileData param9, boolean param10, boolean param11) {
+ return accountService.createAccount(param9, param10, param11);
+ }
+
+ public float deposit(String param6, float param7) {
+
+ return 0;
+ }
+
+ public AccountLog getAccountLog(int param0) {
+
+ return null;
+ }
+
+ public AccountReport getAccountReport(int param19) {
+
+ return accountService.getAccountReport(param19);
+ }
+
+ public CustomerProfileData getCustomerProfile(String param4) {
+
+ return null;
+ }
+
+ public StockSummary purchaseStock(int param0, StockSummary parm1) {
+
+ return null;
+ }
+
+ public StockSummary sellStock(int param13, int param14) {
+
+ return null;
+ }
+
+ public float withdraw(String param16, float param17) {
+
+ return 0;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2bImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2bImpl.java
new file mode 100644
index 0000000000..00b70807a9
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component2bImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import org.oasisopen.sca.annotation.Reference;
+
+import com.bigbank.account.AccountLog;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.CustomerProfileData;
+import com.bigbank.account.StockSummary;
+
+public class Component2bImpl implements AccountDataService {
+
+ AccountDataService accountService;
+
+ @Reference
+ public void setAccountService(AccountDataService accountService) {
+ this.accountService = accountService;
+ }
+
+ public CustomerProfileData createAccount(CustomerProfileData param9, boolean param10, boolean param11) {
+ return accountService.createAccount(param9, param10, param11);
+ }
+
+ public float deposit(String param6, float param7) {
+
+ return 0;
+ }
+
+ public AccountLog getAccountLog(int param0) {
+
+ return null;
+ }
+
+ public AccountReport getAccountReport(int param19) {
+
+ return accountService.getAccountReport(param19);
+ }
+
+ public CustomerProfileData getCustomerProfile(String param4) {
+
+ return null;
+ }
+
+ public StockSummary purchaseStock(int param0, StockSummary parm1) {
+
+ return null;
+ }
+
+ public StockSummary sellStock(int param13, int param14) {
+
+ return null;
+ }
+
+ public float withdraw(String param16, float param17) {
+
+ return 0;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3aImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3aImpl.java
new file mode 100644
index 0000000000..f74be92d8a
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3aImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import org.oasisopen.sca.annotation.Reference;
+
+import com.bigbank.account.AccountLog;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.CustomerProfileData;
+import com.bigbank.account.StockSummary;
+
+public class Component3aImpl implements AccountDataService {
+
+ AccountDataService accountService;
+
+ @Reference
+ public void setAccountService(AccountDataService accountService) {
+ this.accountService = accountService;
+ }
+
+ public CustomerProfileData createAccount(CustomerProfileData param9, boolean param10, boolean param11) {
+ return accountService.createAccount(param9, param10, param11);
+ }
+
+ public float deposit(String param6, float param7) {
+
+ return 0;
+ }
+
+ public AccountLog getAccountLog(int param0) {
+
+ return null;
+ }
+
+ public AccountReport getAccountReport(int param19) {
+
+ return accountService.getAccountReport(param19);
+ }
+
+ public CustomerProfileData getCustomerProfile(String param4) {
+
+ return null;
+ }
+
+ public StockSummary purchaseStock(int param0, StockSummary parm1) {
+
+ return null;
+ }
+
+ public StockSummary sellStock(int param13, int param14) {
+
+ return null;
+ }
+
+ public float withdraw(String param16, float param17) {
+
+ return 0;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3bImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3bImpl.java
new file mode 100644
index 0000000000..1acfea21a3
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/Component3bImpl.java
@@ -0,0 +1,77 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import org.oasisopen.sca.annotation.Reference;
+
+import com.bigbank.account.AccountLog;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.CustomerProfileData;
+import com.bigbank.account.StockSummary;
+
+public class Component3bImpl implements AccountDataService {
+
+ AccountDataService accountService;
+
+ @Reference
+ public void setAccountService(AccountDataService accountService) {
+ this.accountService = accountService;
+ }
+
+ public CustomerProfileData createAccount(CustomerProfileData param9, boolean param10, boolean param11) {
+ return accountService.createAccount(param9, param10, param11);
+ }
+
+ public float deposit(String param6, float param7) {
+
+ return 0;
+ }
+
+ public AccountLog getAccountLog(int param0) {
+
+ return null;
+ }
+
+ public AccountReport getAccountReport(int param19) {
+
+ return accountService.getAccountReport(param19);
+ }
+
+ public CustomerProfileData getCustomerProfile(String param4) {
+
+ return null;
+ }
+
+ public StockSummary purchaseStock(int param0, StockSummary parm1) {
+
+ return null;
+ }
+
+ public StockSummary sellStock(int param13, int param14) {
+
+ return null;
+ }
+
+ public float withdraw(String param16, float param17) {
+
+ return 0;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/CustomerIdService.java b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/CustomerIdService.java
new file mode 100644
index 0000000000..e747eb041f
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/bigbank/account/services/accountdata/CustomerIdService.java
@@ -0,0 +1,98 @@
+/*
+ * 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 bigbank.account.services.accountdata;
+
+import java.rmi.RemoteException;
+
+/**
+ * This interface allows access to a customer's id from the data service.
+ */
+public interface CustomerIdService {
+
+ /*
+ * Return -1 if purchaseLotNumber not found
+ */
+ public int getCustomerIdByPurchaseLotNumber(int purchaseLotNumber) throws RemoteException;
+
+ /*
+ * Return -1 if account not found
+ */
+ public int getCustomerIdByAccount(String account) throws RemoteException;
+
+ // TODO (isilval) Fix this !!!
+ // Apparently, configuration can't deal with extends so I am adding the contents of AccountDataService here
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param0*
+ * @param param1*
+ * @param param2
+ */
+ public com.bigbank.account.StockSummary purchaseStock(int param0, com.bigbank.account.StockSummary parm1) throws java.rmi.RemoteException;
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param4
+ */
+ public com.bigbank.account.CustomerProfileData getCustomerProfile(java.lang.String param4) throws java.rmi.RemoteException;
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param6*
+ * @param param7
+ */
+ public float deposit(java.lang.String param6, float param7) throws java.rmi.RemoteException;
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param9*
+ * @param param10*
+ * @param param11
+ */
+ public com.bigbank.account.CustomerProfileData createAccount(com.bigbank.account.CustomerProfileData param9, boolean param10, boolean param11)
+ throws java.rmi.RemoteException;
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param13*
+ * @param param14
+ */
+ public com.bigbank.account.StockSummary sellStock(int param13, int param14) throws java.rmi.RemoteException;
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param16*
+ * @param param17
+ */
+ public float withdraw(java.lang.String param16, float param17) throws java.rmi.RemoteException;
+
+ /**
+ * Auto generated method signatures
+ *
+ * @param param19
+ */
+ public com.bigbank.account.AccountReport getAccountReport(int param19) throws java.rmi.RemoteException;
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldImpl.java
new file mode 100644
index 0000000000..78882aa1d0
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldImpl.java
@@ -0,0 +1,44 @@
+/*
+ * 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 helloworld;
+
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * This class implements the HelloWorld service.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldImpl implements HelloWorldService {
+
+ public String getGreetings(String name) {
+ return "Hi " + name;
+ }
+
+ public String[] getMultipleGreetings(String[] names) {
+ if(names==null) {
+ return null;
+ }
+ String[] greetings = new String[names.length];
+ for(int i=0; i<names.length;i++) {
+ greetings[i] = "Hi "+names[i];
+ }
+ return greetings;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldService.java b/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldService.java
new file mode 100644
index 0000000000..6892c99e13
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldService.java
@@ -0,0 +1,31 @@
+/*
+ * 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 helloworld;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * This is the business interface of the HelloWorld greetings service.
+ */
+@Remotable
+public interface HelloWorldService {
+
+ public String getGreetings(String name);
+ public String[] getMultipleGreetings(String[] names);
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldServiceComponent.java b/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldServiceComponent.java
new file mode 100644
index 0000000000..062275833e
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/helloworld/HelloWorldServiceComponent.java
@@ -0,0 +1,47 @@
+/*
+ * 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 helloworld;
+
+import org.oasisopen.sca.annotation.Scope;
+
+/**
+ * This client program shows how to create an SCA runtime, start it,
+ * locate the HelloWorld service and invoke it.
+ */
+@Scope("COMPOSITE")
+public class HelloWorldServiceComponent implements HelloWorldService {
+
+ HelloWorldService helloWorldService;
+
+ public String getGreetings(String name) {
+ return helloWorldService.getGreetings(name);
+ }
+
+ public HelloWorldService getHelloWorldService() {
+ return helloWorldService;
+ }
+
+ public void setHelloWorldService(HelloWorldService helloWorldService) {
+ this.helloWorldService = helloWorldService;
+ }
+
+ public String[] getMultipleGreetings(String[] names) {
+ return helloWorldService.getMultipleGreetings(names);
+ }
+} \ No newline at end of file
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2aImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2aImpl.java
new file mode 100644
index 0000000000..74e2ae5d0d
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2aImpl.java
@@ -0,0 +1,43 @@
+/*
+ * 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;
+
+import helloworld.HelloWorldService;
+
+import org.oasisopen.sca.annotation.Reference;
+
+public class Component2aImpl implements HelloWorldService {
+
+ private HelloWorldService comp;
+
+ @Reference
+ public void setComp(HelloWorldService comp) {
+ this.comp = comp;
+ }
+ public String getGreetings(String s) {
+ return comp.getGreetings(s);
+ }
+
+ public String[] getMultipleGreetings(String[] names) {
+ return comp.getMultipleGreetings(names);
+ }
+
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2bImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2bImpl.java
new file mode 100644
index 0000000000..84bacd658d
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component2bImpl.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;
+
+import helloworld.HelloWorldService;
+
+import org.oasisopen.sca.annotation.Reference;
+
+public class Component2bImpl implements HelloWorldService {
+
+ private HelloWorldService comp;
+
+ @Reference
+ public void setComp(HelloWorldService comp) {
+ this.comp = comp;
+ }
+
+ public String getGreetings(String s) {
+ return comp.getGreetings(s);
+ }
+ public String[] getMultipleGreetings(String[] names) {
+ return comp.getMultipleGreetings(names);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3aImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3aImpl.java
new file mode 100644
index 0000000000..eed10cde7c
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3aImpl.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;
+
+import helloworld.HelloWorldService;
+
+import org.oasisopen.sca.annotation.Reference;
+
+public class Component3aImpl implements HelloWorldService {
+
+ private HelloWorldService comp;
+
+ @Reference
+ public void setComp(HelloWorldService comp) {
+ this.comp = comp;
+ }
+
+ public String getGreetings(String s) {
+ return comp.getGreetings(s);
+ }
+ public String[] getMultipleGreetings(String[] names) {
+ return comp.getMultipleGreetings(names);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3bImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3bImpl.java
new file mode 100644
index 0000000000..3a79f52575
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/org/apache/tuscany/sca/itest/Component3bImpl.java
@@ -0,0 +1,43 @@
+/*
+ * 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;
+
+import helloworld.HelloWorldService;
+
+import org.oasisopen.sca.annotation.Reference;
+
+public class Component3bImpl implements HelloWorldService {
+
+ private HelloWorldService comp;
+
+ @Reference
+ public void setComp(HelloWorldService comp) {
+ this.comp = comp;
+ }
+
+ public String getGreetings(String s) {
+ return comp.getGreetings(s);
+ }
+
+ public String[] getMultipleGreetings(String[] names) {
+ return comp.getMultipleGreetings(names);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/service/AnObject.java b/java/sca-contrib/itest/wsdlless/src/main/java/service/AnObject.java
new file mode 100644
index 0000000000..65ba52f356
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/service/AnObject.java
@@ -0,0 +1,62 @@
+/*
+ * 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 service;
+
+public class AnObject {
+
+ private String someRetValue;
+ private Integer someOtherRetValue;
+
+ public AnObject() {
+ }
+
+ public AnObject(String someRetValue, Integer someOtherRetValue) {
+ this.someRetValue = someRetValue;
+ this.someOtherRetValue = someOtherRetValue;
+ }
+
+ /**
+ * @return the someOtherRetValue
+ */
+ public Integer getSomeOtherRetValue() {
+ return someOtherRetValue;
+ }
+
+ /**
+ * @param someOtherRetValue the someOtherRetValue to set
+ */
+ public void setSomeOtherRetValue(Integer someOtherRetValue) {
+ this.someOtherRetValue = someOtherRetValue;
+ }
+
+ /**
+ * @return the someRetValue
+ */
+ public String getSomeRetValue() {
+ return someRetValue;
+ }
+
+ /**
+ * @param someRetValue the someRetValue to set
+ */
+ public void setSomeRetValue(String someRetValue) {
+ this.someRetValue = someRetValue;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/service/MoreComplexObject.java b/java/sca-contrib/itest/wsdlless/src/main/java/service/MoreComplexObject.java
new file mode 100644
index 0000000000..69eba6701d
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/service/MoreComplexObject.java
@@ -0,0 +1,53 @@
+/*
+ * 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 service;
+
+import java.io.Serializable;
+
+public class MoreComplexObject implements Serializable {
+ private static final long serialVersionUID = 43242314234123L;
+ private String stringParam;
+ private Integer intParam;
+ private String stringParam2;
+
+ public String getStringParam() {
+ return stringParam;
+ }
+
+ public void setStringParam(String stringParam) {
+ this.stringParam = stringParam;
+ }
+
+ public Integer getIntParam() {
+ return intParam;
+ }
+
+ public void setIntParam(Integer intParam) {
+ this.intParam = intParam;
+ }
+
+ public String getStringParam2() {
+ return stringParam2;
+ }
+
+ public void setStringParam2(String stringParam2) {
+ this.stringParam2 = stringParam2;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/service/SomeService.java b/java/sca-contrib/itest/wsdlless/src/main/java/service/SomeService.java
new file mode 100644
index 0000000000..2283f8095f
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/service/SomeService.java
@@ -0,0 +1,31 @@
+/*
+ * 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 service;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface SomeService {
+
+ public AnObject getUsingString(String stringParam);
+
+ public AnObject getUsingMoreComplexObject(MoreComplexObject moreComplexParam);
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/java/service/SomeServiceImpl.java b/java/sca-contrib/itest/wsdlless/src/main/java/service/SomeServiceImpl.java
new file mode 100644
index 0000000000..728799c131
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/java/service/SomeServiceImpl.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 service;
+
+import org.oasisopen.sca.annotation.Service;
+
+@Service(SomeService.class)
+public class SomeServiceImpl implements SomeService {
+
+ public AnObject getUsingString(String stringParam) {
+ System.out.println("Param value:" + stringParam);
+
+ return getAnObject(stringParam);
+ }
+
+ private AnObject getAnObject(String stringParam) {
+ return new AnObject(stringParam + "123", 123);
+ }
+
+ public AnObject getUsingMoreComplexObject(MoreComplexObject moreComplexParam) {
+ System.out.println("Param value:" + moreComplexParam.getStringParam());
+
+ return getAnObject(moreComplexParam.getStringParam());
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/main/resources/SDOWSDLTest.composite b/java/sca-contrib/itest/wsdlless/src/main/resources/SDOWSDLTest.composite
new file mode 100644
index 0000000000..16d3806318
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/resources/SDOWSDLTest.composite
@@ -0,0 +1,321 @@
+<?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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance" name="SDOWSDLTest">
+
+ <service name="AccountService1a2a3a4a" promote="Component2a3a4a">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3a4a"/>
+ </service>
+ <service name="AccountService1a2a3a4b" promote="Component2a3a4b">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3a4b"/>
+ </service>
+ <service name="AccountService1a2a3b4a" promote="Component2a3b4a">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3b4a"/>
+ </service>
+ <service name="AccountService1a2a3b4b" promote="Component2a3b4b">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3b4b"/>
+ </service>
+ <service name="AccountService1a2b3a4a" promote="Component2b3a4a">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3a4a"/>
+ </service>
+ <service name="AccountService1a2b3a4b" promote="Component2b3a4b">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3a4b"/>
+ </service>
+ <service name="AccountService1a2b3b4a" promote="Component2b3b4a">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3b4a"/>
+ </service>
+ <service name="AccountService1a2b3b4b" promote="Component2b3b4b">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3b4b"/>
+ </service>
+ <service name="AccountService1b2a3a4a" promote="Component2a3a4a">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3a4a"/>
+ </service>
+ <service name="AccountService1b2a3a4b" promote="Component2a3a4b">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3a4b"/>
+ </service>
+ <service name="AccountService1b2a3b4a" promote="Component2a3b4a">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3b4a"/>
+ </service>
+ <service name="AccountService1b2a3b4b" promote="Component2a3b4b">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3b4b"/>
+ </service>
+ <service name="AccountService1b2b3a4a" promote="Component2b3a4a">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3a4a"/>
+ </service>
+ <service name="AccountService1b2b3a4b" promote="Component2b3a4b">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3a4b"/>
+ </service>
+ <service name="AccountService1b2b3b4a" promote="Component2b3b4a">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3b4a"/>
+ </service>
+ <service name="AccountService1b2b3b4b" promote="Component2b3b4b">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3b4b"/>
+ </service>
+
+ <component name="Component2a3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.Component2aImpl" />
+ <reference name="accountService" target="Component3a4a"/>
+ </component>
+ <component name="Component2a3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.Component2aImpl" />
+ <reference name="accountService" target="Component3a4b"/>
+ </component>
+ <component name="Component2a3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.Component2aImpl" />
+ <reference name="accountService" target="Component3b4a"/>
+ </component>
+ <component name="Component2a3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.Component2aImpl" />
+ <reference name="accountService" target="Component3b4b"/>
+ </component>
+
+ <component name="Component2b3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.Component2bImpl" />
+ <reference name="accountService" target="Component3a4a"/>
+ </component>
+ <component name="Component2b3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.Component2bImpl" />
+ <reference name="accountService" target="Component3a4b"/>
+ </component>
+ <component name="Component2b3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.Component2bImpl" />
+ <reference name="accountService" target="Component3b4a"/>
+ </component>
+ <component name="Component2b3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.Component2bImpl" />
+ <reference name="accountService" target="Component3b4b"/>
+ </component>
+
+ <component name="Component3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.Component3aImpl" />
+ </component>
+ <reference name="Component3a4aRef" promote="Component3a4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService" />
+ </reference>
+
+ <component name="Component3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.Component3aImpl" />
+ </component>
+ <reference name="Component3a4bRef" promote="Component3a4b/accountService">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService" />
+ </reference>
+
+ <component name="Component3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.Component3bImpl" />
+ </component>
+ <reference name="Component3b4aRef" promote="Component3b4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService" />
+ </reference>
+
+ <component name="Component3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.Component3bImpl" />
+ </component>
+ <reference name="Component3b4bRef" promote="Component3b4b/accountService">
+ <interface.wsdl interface="http://www.bigbank.com/account#wsdl.interface(AccountService)"/>
+ <binding.ws uri="http://localhost:8085/AccountService" />
+ </reference>
+
+ <!-- target service -->
+
+ <service name="AccountService" promote="AccountServiceComponent">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService"/>
+ </service>
+
+ <component name="AccountServiceComponent">
+ <implementation.java class="bigbank.account.services.accountdata.AccountDataServiceImpl" />
+ </component>
+
+ <!-- test client -->
+
+ <component name="AccountServiceClient">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="AccountServiceRef" promote="AccountServiceClient/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/services/AccountService"/>
+ </reference>
+
+ <!-- clients -->
+
+ <component name="Client1a2a3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2a3a4a" promote="Client1a2a3a4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3a4a" />
+ </reference>
+
+ <component name="Client1a2a3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl"/>
+ </component>
+
+ <reference name="ClientRef1a2a3a4b" promote="Client1a2a3a4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3a4b" />
+ </reference>
+
+ <component name="Client1a2a3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2a3b4a" promote="Client1a2a3b4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3b4a" />
+ </reference>
+
+ <component name="Client1a2a3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2a3b4b" promote="Client1a2a3b4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2a3b4b" />
+ </reference>
+
+ <component name="Client1a2b3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2b3a4a" promote="Client1a2b3a4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3a4a" />
+ </reference>
+
+ <component name="Client1a2b3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2b3a4b" promote="Client1a2b3a4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3a4b" />
+ </reference>
+
+ <component name="Client1a2b3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2b3b4a" promote="Client1a2b3b4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3b4a" />
+ </reference>
+
+ <component name="Client1a2b3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1a2b3b4b" promote="Client1a2b3b4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1a2b3b4b" />
+ </reference>
+
+ <component name="Client1b2a3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2a3a4a" promote="Client1b2a3a4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3a4a" />
+ </reference>
+
+ <component name="Client1b2a3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2a3a4b" promote="Client1b2a3a4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3a4b" />
+ </reference>
+
+ <component name="Client1b2a3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2a3b4a" promote="Client1b2a3b4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3b4a" />
+ </reference>
+
+ <component name="Client1b2a3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2a3b4b" promote="Client1b2a3b4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2a3b4b" />
+ </reference>
+
+ <component name="Client1b2b3a4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2b3a4a" promote="Client1b2b3a4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3a4a" />
+ </reference>
+
+ <component name="Client1b2b3a4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2b3a4b" promote="Client1b2b3a4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3a4b" />
+ </reference>
+
+ <component name="Client1b2b3b4a">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2b3b4a" promote="Client1b2b3b4a/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3b4a" />
+ </reference>
+
+ <component name="Client1b2b3b4b">
+ <implementation.java class="bigbank.account.services.accountdata.AccountServiceClientImpl" />
+ </component>
+
+ <reference name="ClientRef1b2b3b4b" promote="Client1b2b3b4b/accountService">
+ <interface.java interface="bigbank.account.services.accountdata.AccountDataService" />
+ <binding.ws uri="http://localhost:8085/AccountService1b2b3b4b" />
+ </reference>
+
+</composite>
diff --git a/java/sca-contrib/itest/wsdlless/src/main/resources/WSDLTest.composite b/java/sca-contrib/itest/wsdlless/src/main/resources/WSDLTest.composite
new file mode 100644
index 0000000000..e69cdbc282
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/resources/WSDLTest.composite
@@ -0,0 +1,350 @@
+<?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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ name="WSDLTest">
+
+ <service name="HelloWorldService1a2a3a4a" promote="Component2a3a4a" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3a4a"/>
+ </service>
+ <service name="HelloWorldService1a2a3a4b" promote="Component2a3a4b" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3a4b"/>
+ </service>
+ <service name="HelloWorldService1a2a3b4a" promote="Component2a3b4a" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3b4a"/>
+ </service>
+ <service name="HelloWorldService1a2a3b4b" promote="Component2a3b4b" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3b4b"/>
+ </service>
+ <service name="HelloWorldService1a2b3a4a" promote="Component2b3a4a" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3a4a"/>
+ </service>
+ <service name="HelloWorldService1a2b3a4b" promote="Component2b3a4b" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3a4b"/>
+ </service>
+ <service name="HelloWorldService1a2b3b4a" promote="Component2b3b4a" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3b4a"/>
+ </service>
+ <service name="HelloWorldService1a2b3b4b" promote="Component2b3b4b" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3b4b"/>
+ </service>
+
+ <service name="HelloWorldService1b2a3a4a" promote="Component2a3a4a" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3a4a"/>
+ </service>
+ <service name="HelloWorldService1b2a3a4b" promote="Component2a3a4b" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3a4b"/>
+ </service>
+ <service name="HelloWorldService1b2a3b4a" promote="Component2a3b4a" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3b4a"/>
+ </service>
+ <service name="HelloWorldService1b2a3b4b" promote="Component2a3b4b" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3b4b"/>
+ </service>
+ <service name="HelloWorldService1b2b3a4a" promote="Component2b3a4a" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3a4a"/>
+ </service>
+ <service name="HelloWorldService1b2b3a4b" promote="Component2b3a4b" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3a4b"/>
+ </service>
+ <service name="HelloWorldService1b2b3b4a" promote="Component2b3b4a" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3b4a"/>
+ </service>
+ <service name="HelloWorldService1b2b3b4b" promote="Component2b3b4b" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3b4b"/>
+ </service>
+
+ <component name="Component2a3a4a">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2aImpl"/>
+ <reference name="comp" target="Component3a4a" />
+ </component>
+ <component name="Component2a3a4b">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2aImpl"/>
+ <reference name="comp" target="Component3a4b" />
+ </component>
+ <component name="Component2a3b4a">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2aImpl"/>
+ <reference name="comp" target="Component3b4a" />
+ </component>
+ <component name="Component2a3b4b">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2aImpl"/>
+ <reference name="comp" target="Component3b4b" />
+ </component>
+
+ <component name="Component2b3a4a">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2bImpl"/>
+ <reference name="comp" target="Component3a4a" />
+ </component>
+ <component name="Component2b3a4b">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2bImpl"/>
+ <reference name="comp" target="Component3a4b" />
+ </component>
+ <component name="Component2b3b4a">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2bImpl"/>
+ <reference name="comp" target="Component3b4a" />
+ </component>
+ <component name="Component2b3b4b">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component2bImpl"/>
+ <reference name="comp" target="Component3b4b" />
+ </component>
+
+ <component name="Component3a4a">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component3aImpl"/>
+ <reference name="comp" />
+ </component>
+ <reference name="Component3a4aRef" promote="Component3a4a/comp" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldWebService" />
+ </reference>
+
+ <component name="Component3a4b">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component3aImpl"/>
+ <reference name="comp" />
+ </component>
+ <reference name="Component3a4bRef" promote="Component3a4b/comp" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldWebService" />
+ </reference>
+
+ <component name="Component3b4a">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component3bImpl"/>
+ <reference name="comp" />
+ </component>
+ <reference name="Component3b4aRef" promote="Component3b4a/comp" >
+ <interface.java interface="helloworld.HelloWorldService" />
+ <binding.ws uri="http://localhost:8085/HelloWorldWebService" />
+ </reference>
+
+ <component name="Component3b4b">
+ <implementation.java class="org.apache.tuscany.sca.itest.Component3bImpl"/>
+ <reference name="comp" />
+ </component>
+ <reference name="Component3b4bRef" promote="Component3b4b/comp" >
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldWebService" />
+ </reference>
+
+
+<!-- the servive -->
+
+ <service name="HelloWorldWebService" promote="HelloWorldServiceComponent" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldWebService"/>
+ </service>
+
+ <component name="HelloWorldServiceComponent">
+ <implementation.java class="helloworld.HelloWorldImpl" />
+ </component>
+
+<!-- the clients -->
+
+ <component name="Client1a2a3a4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2a3a4a" promote="Client1a2a3a4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3a4a" />
+ </reference>
+
+ <component name="Client1a2a3a4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2a3a4b" promote="Client1a2a3a4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3a4b" />
+ </reference>
+
+ <component name="Client1a2a3b4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2a3b4a" promote="Client1a2a3b4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3b4a" />
+ </reference>
+
+ <component name="Client1a2a3b4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2a3b4b" promote="Client1a2a3b4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2a3b4b" />
+ </reference>
+
+ <component name="Client1a2b3a4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2b3a4a" promote="Client1a2b3a4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3a4a" />
+ </reference>
+
+ <component name="Client1a2b3a4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2b3a4b" promote="Client1a2b3a4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3a4b" />
+ </reference>
+
+ <component name="Client1a2b3b4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2b3b4a" promote="Client1a2b3b4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3b4a" />
+ </reference>
+
+ <component name="Client1a2b3b4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1a2b3b4b" promote="Client1a2b3b4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1a2b3b4b" />
+ </reference>
+
+ <component name="Client1b2a3a4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2a3a4a" promote="Client1b2a3a4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3a4a" />
+ </reference>
+
+ <component name="Client1b2a3a4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2a3a4b" promote="Client1b2a3a4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3a4b" />
+ </reference>
+
+ <component name="Client1b2a3b4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2a3b4a" promote="Client1b2a3b4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3b4a" />
+ </reference>
+
+ <component name="Client1b2a3b4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2a3b4b" promote="Client1b2a3b4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2a3b4b" />
+ </reference>
+
+ <component name="Client1b2b3a4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2b3a4a" promote="Client1b2b3a4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3a4a" />
+ </reference>
+
+ <component name="Client1b2b3a4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2b3a4b" promote="Client1b2b3a4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)"/>
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3a4b" />
+ </reference>
+
+ <component name="Client1b2b3b4a">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2b3b4a" promote="Client1b2b3b4a/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3b4a" />
+ </reference>
+
+ <component name="Client1b2b3b4b">
+ <implementation.java class="helloworld.HelloWorldServiceComponent"/>
+ <reference name="helloWorldService" />
+ </component>
+
+ <reference name="ClientRef1b2b3b4b" promote="Client1b2b3b4b/helloWorldService" >
+ <!-- interface.java interface="helloworld.HelloWorldService" / -->
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService1b2b3b4b" />
+ </reference>
+
+</composite>
diff --git a/java/sca-contrib/itest/wsdlless/src/main/resources/some.composite b/java/sca-contrib/itest/wsdlless/src/main/resources/some.composite
new file mode 100644
index 0000000000..1b099239d1
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/resources/some.composite
@@ -0,0 +1,33 @@
+<?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.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://test" xmlns:test="http://test"
+ name="some">
+ <service name="SomeServices" promote="SomeServicesComponent">
+ <binding.ws uri="http://localhost:8085/SomeServices" />
+ </service>
+
+ <component name="SomeServicesComponent">
+ <implementation.java class="service.SomeServiceImpl" />
+ <service name="SomeService">
+ <interface.java interface="service.SomeService" />
+ </service>
+ </component>
+
+</composite>
diff --git a/java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/AccountService.wsdl b/java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/AccountService.wsdl
new file mode 100644
index 0000000000..73f9ed4bfc
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/AccountService.wsdl
@@ -0,0 +1,453 @@
+<?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.
+-->
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:account="http://www.bigbank.com/account"
+ targetNamespace="http://www.bigbank.com/account"
+ name="AccountService">
+
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://www.bigbank.com/account"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:account="http://www.bigbank.com/account">
+
+ <xsd:element name="getAccountReport">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerID"
+ type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getAccountReportResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="accountReport"
+ type="account:AccountReport" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="AccountReport">
+ <xsd:sequence>
+ <xsd:element name="accountSummaries"
+ type="account:AccountSummary" maxOccurs="unbounded" />
+ <xsd:element name="stockSummaries"
+ type="account:StockSummary" maxOccurs="unbounded" />
+
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="AccountSummary">
+ <xsd:attribute name="accountNumber" type="xsd:string" />
+ <xsd:attribute name="accountType" type="xsd:string" />
+ <xsd:attribute name="balance" type="xsd:float" />
+ </xsd:complexType>
+
+ <xsd:complexType name="StockSummary">
+ <!-- xsd:attribute name="id" type="xsd:int" / -->
+ <xsd:attribute name="purchaseLotNumber" type="xsd:int" />
+ <!-- unique id for this purchase -->
+ <xsd:attribute name="symbol" type="xsd:string" />
+ <xsd:attribute name="quantity" type="xsd:int" />
+ <xsd:attribute name="purchaseDate" type="xsd:dateTime" />
+ <xsd:attribute name="purchasePrice" type="xsd:float" />
+ <xsd:attribute name="currentPrice" type="xsd:float" />
+ <xsd:attribute name="company" type="xsd:string" />
+ <xsd:attribute name="highPrice" type="xsd:float" />
+ <xsd:attribute name="lowPrice" type="xsd:float" />
+
+ </xsd:complexType>
+
+ <!-- Profile in data base -->
+ <xsd:element name="getCustomerProfile">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="loginID" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="CustomerProfileData">
+ <xsd:sequence>
+ <xsd:element name="firstName" type="xsd:string" />
+ <xsd:element name="lastName" type="xsd:string" />
+ <xsd:element name="address" type="xsd:string" />
+ <xsd:element name="email" type="xsd:string" />
+ <xsd:element name="loginID" type="xsd:string" />
+ <xsd:element name="password" type="xsd:string" />
+ <xsd:element name="id" type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="getCustomerProfileResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerProfile"
+ type="account:CustomerProfileData" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="withdraw">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="accountNumber"
+ type="xsd:string" />
+ <xsd:element name="amount" type="xsd:float" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="withdrawResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="balance" type="xsd:float" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="deposit">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="accountNumber"
+ type="xsd:string" />
+ <xsd:element name="amount" type="xsd:float" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="depositResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="balance" type="xsd:float" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="purchaseStock">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="id" type="xsd:int" />
+ <xsd:element name="stock" type="account:StockSummary" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="purchaseStockResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="purchaseSummary"
+ type="account:StockSummary" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+
+
+ <xsd:element name="sellStock">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="purchaseLotNumber"
+ type="xsd:int" /><!-- unique id for this purchase -->
+ <xsd:element name="quantity" type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="createAccount">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerProfile"
+ type="account:CustomerProfileData" />
+ <xsd:element name="createSavings"
+ type="xsd:boolean" />
+ <xsd:element name="createCheckings"
+ type="xsd:boolean" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="createAccountResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerProfile"
+ type="account:CustomerProfileData" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ </xsd:element>
+
+ <xsd:element name="getAccountLog">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerID"
+ type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getAccountLogResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="accountLog"
+ type="account:AccountLog" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="AccountLog">
+ <xsd:sequence>
+ <xsd:element name="accountLogEntries"
+ type="account:AccountLogEntry" maxOccurs="unbounded" />
+ <xsd:element name="stockLogEntries"
+ type="account:StockLogEntry" maxOccurs="unbounded" />
+
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="AccountLogEntry">
+ <xsd:attribute name="logSeqNo" type="xsd:int" />
+ <xsd:attribute name="id" type="xsd:int" />
+ <xsd:attribute name="accountNumber" type="xsd:string" />
+ <xsd:attribute name="actionType" type="xsd:string" />
+ <xsd:attribute name="amount" type="xsd:float" />
+ </xsd:complexType>
+
+ <xsd:complexType name="StockLogEntry">
+ <xsd:attribute name="logSeqNo" type="xsd:int" />
+ <xsd:attribute name="id" type="xsd:int" />
+ <xsd:attribute name="symbol" type="xsd:string" />
+ <xsd:attribute name="quantity" type="xsd:int" />
+ <xsd:attribute name="actionType" type="xsd:string" />
+ <xsd:attribute name="purchaseLotNumber" type="xsd:int" />
+ </xsd:complexType>
+
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getAccountReportRequest">
+ <wsdl:part element="account:getAccountReport"
+ name="getAccountReportRequest" />
+ </wsdl:message>
+ <wsdl:message name="getAccountReportResponse">
+ <wsdl:part element="account:getAccountReportResponse"
+ name="getAccountReportResponse" />
+ </wsdl:message>
+
+ <wsdl:message name="getCustomerProfileRequest">
+ <wsdl:part element="account:getCustomerProfile"
+ name="getCustomerProfile" />
+ </wsdl:message>
+ <wsdl:message name="getCustomerProfileResponse">
+ <wsdl:part element="account:getCustomerProfileResponse"
+ name="getCustomerProfileResponse" />
+ </wsdl:message>
+
+ <wsdl:message name="withdrawRequest">
+ <wsdl:part element="account:withdraw" name="withdrawRequest" />
+ </wsdl:message>
+
+ <wsdl:message name="withdrawResponse">
+ <wsdl:part element="account:withdrawResponse"
+ name="withdrawResponse" />
+ </wsdl:message>
+
+ <wsdl:message name="depositRequest">
+ <wsdl:part element="account:deposit" name="depositRequest" />
+ </wsdl:message>
+
+ <wsdl:message name="depositResponse">
+ <wsdl:part element="account:depositResponse"
+ name="depositResponse" />
+ </wsdl:message>
+
+ <wsdl:message name="purchaseStockRequest">
+ <wsdl:part element="account:purchaseStock"
+ name="purchaseStockRequest" />
+ </wsdl:message>
+
+ <wsdl:message name="purchaseStockResponse">
+ <wsdl:part element="account:purchaseStockResponse"
+ name="purchaseStockResponse" />
+ </wsdl:message>
+
+ <wsdl:message name="sellStockRequest">
+ <wsdl:part element="account:sellStock" name="sellStockRequest" />
+ </wsdl:message>
+
+ <wsdl:message name="createAccountRequest">
+ <wsdl:part element="account:createAccount" name="createAccountRequest" />
+ </wsdl:message>
+
+ <wsdl:message name="createAccountResponse">
+ <wsdl:part element="account:createAccountResponse" name="createAccountResponse" />
+ </wsdl:message>
+
+ <wsdl:message name="getAccountLogRequest">
+ <wsdl:part element="account:getAccountLog"
+ name="getAccountLogRequest" />
+ </wsdl:message>
+
+ <wsdl:message name="getAccountLogResponse">
+ <wsdl:part element="account:getAccountLogResponse"
+ name="getAccountLogResponse" />
+ </wsdl:message>
+
+ <wsdl:portType name="AccountService">
+ <wsdl:operation name="getAccountReport">
+ <wsdl:input message="account:getAccountReportRequest" />
+ <wsdl:output message="account:getAccountReportResponse" />
+ </wsdl:operation>
+
+ <wsdl:operation name="getCustomerProfile">
+ <wsdl:input message="account:getCustomerProfileRequest" />
+ <wsdl:output message="account:getCustomerProfileResponse" />
+ </wsdl:operation>
+
+ <wsdl:operation name="withdraw">
+ <wsdl:input message="account:withdrawRequest" />
+ <wsdl:output message="account:withdrawResponse" />
+ </wsdl:operation>
+
+ <wsdl:operation name="deposit">
+ <wsdl:input message="account:depositRequest" />
+ <wsdl:output message="account:depositResponse" />
+ </wsdl:operation>
+
+ <wsdl:operation name="purchaseStock">
+ <wsdl:input message="account:purchaseStockRequest" />
+ <wsdl:output message="account:purchaseStockResponse" />
+ </wsdl:operation>
+
+ <wsdl:operation name="sellStock">
+ <wsdl:input message="account:sellStockRequest" />
+ <wsdl:output message="account:purchaseStockResponse" />
+ </wsdl:operation>
+
+
+ <wsdl:operation name="createAccount">
+ <wsdl:input message="account:createAccountRequest" />
+ <wsdl:output message="account:createAccountResponse" />
+ </wsdl:operation>
+
+ <wsdl:operation name="getAccountLog">
+ <wsdl:input message="account:getAccountLogRequest" />
+ <wsdl:output message="account:getAccountLogResponse" />
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+
+
+ <wsdl:binding name="AccountServiceSOAP" type="account:AccountService">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getAccountReport">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/getAccountReport" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getCustomerProfile">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/getCustomerProfile" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="withdraw">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/withdraw" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="deposit">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/deposit" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="purchaseStock">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/purchaseStock" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="sellStock">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/sellStock" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="createAccount">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/createAccount" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="getAccountLog">
+ <soap:operation
+ soapAction="http://www.bigbank.com/account/getAccountLog" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+
+ </wsdl:binding>
+ <wsdl:service name="AccountService">
+ <wsdl:port binding="account:AccountServiceSOAP"
+ name="AccountServiceSOAP">
+ <soap:address
+ location="http://localhost:8085/services/AccountService" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/helloworld.wsdl b/java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/helloworld.wsdl
new file mode 100644
index 0000000000..bc6fe0e89a
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/main/resources/wsdl/helloworld.wsdl
@@ -0,0 +1,131 @@
+<?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.
+-->
+<wsdl:definitions targetNamespace="http://helloworld"
+ xmlns:tns="http://helloworld"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="helloworld">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified"
+ targetNamespace="http://helloworld"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <element name="getGreetings">
+ <complexType>
+ <sequence>
+ <element name="name" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getGreetingsResponse">
+ <complexType>
+ <sequence>
+ <element name="getGreetingsReturn"
+ type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getMultipleGreetings">
+ <complexType>
+ <sequence>
+ <element name="name" type="xsd:string"
+ maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getMultipleGreetingsResponse">
+ <complexType>
+ <sequence>
+ <element name="getGreetingsReturn"
+ type="xsd:string" maxOccurs="unbounded" />
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="getGreetingsRequest">
+ <wsdl:part element="tns:getGreetings" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:message name="getGreetingsResponse">
+ <wsdl:part element="tns:getGreetingsResponse" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:message name="getMultipleGreetingsRequest">
+ <wsdl:part element="tns:getMultipleGreetings" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:message name="getMultipleGreetingsResponse">
+ <wsdl:part element="tns:getMultipleGreetingsResponse"
+ name="parameters" />
+ </wsdl:message>
+
+ <wsdl:portType name="HelloWorld">
+ <wsdl:operation name="getGreetings">
+ <wsdl:input message="tns:getGreetingsRequest"
+ name="getGreetingsRequest" />
+ <wsdl:output message="tns:getGreetingsResponse"
+ name="getGreetingsResponse" />
+ </wsdl:operation>
+ <wsdl:operation name="getMultipleGreetings">
+ <wsdl:input message="tns:getMultipleGreetingsRequest"
+ name="getMultipleGreetingsRequest" />
+ <wsdl:output message="tns:getMultipleGreetingsResponse"
+ name="getMultipleGreetingsResponse" />
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
+ <wsdlsoap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getGreetings">
+ <wsdlsoap:operation soapAction="" />
+ <wsdl:input name="getGreetingsRequest">
+ <wsdlsoap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="getGreetingsResponse">
+ <wsdlsoap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getMultipleGreetings">
+ <wsdlsoap:operation soapAction="" />
+ <wsdl:input name="getMultipleGreetingsRequest">
+ <wsdlsoap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="getMultipleGreetingsResponse">
+ <wsdlsoap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="HelloWorldService">
+ <wsdl:port binding="tns:HelloWorldSoapBinding"
+ name="HelloWorldSoapPort">
+ <wsdlsoap:address location="" />
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/SDOWSDLTestCase.java b/java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/SDOWSDLTestCase.java
new file mode 100644
index 0000000000..33f541b21b
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/SDOWSDLTestCase.java
@@ -0,0 +1,173 @@
+/*
+ * 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;
+
+import static junit.framework.Assert.assertEquals;
+
+import java.rmi.RemoteException;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import bigbank.account.services.accountdata.AccountDataService;
+
+import com.bigbank.account.AccountFactory;
+import com.bigbank.account.AccountReport;
+import com.bigbank.account.AccountSummary;
+import com.bigbank.account.CustomerProfileData;
+
+/**
+ * Tests all the combinations of wiring services, components, and references
+ * which use either interface.java or interface.wsdl.
+ *
+ * The tests use a service (1) wired to a components (2) wired to another
+ * component (3) wired to a reference (4). Each of those uses either
+ * interface.java (a) or interface.wsdl (b). This results in 16 different
+ * combinations 1a2a3a4a thru 1b2b3b4b.
+ */
+public class SDOWSDLTestCase {
+
+ private static SCADomain domain;
+
+ @Test
+ public void testClient1a2a3a4a() throws RemoteException {
+ doit("Client1a2a3a4a");
+ }
+
+ @Test
+ public void testClient1a2a3a4b() throws RemoteException {
+ doit("Client1a2a3a4b");
+ }
+
+ @Test
+ public void testClient1a2a3b4a() throws RemoteException {
+ doit("Client1a2a3b4a");
+ }
+
+ @Test
+ public void testClient1a2a3b4b() throws RemoteException {
+ doit("Client1a2a3b4b");
+ }
+
+ @Test
+ public void testClient1a2b3a4a() throws RemoteException {
+ doit("Client1a2b3a4a");
+ }
+
+ @Test
+ public void testClient1a2b3a4b() throws RemoteException {
+ doit("Client1a2b3a4b");
+ }
+
+ @Test
+ public void testClient1a2b3b4a() throws RemoteException {
+ doit("Client1a2b3b4a");
+ }
+
+ @Test
+ public void testClient1a2b3b4b() throws RemoteException {
+ doit("Client1a2b3b4b");
+ }
+
+ @Test
+ public void testClient1b2a3a4a() throws RemoteException {
+ doit("Client1b2a3a4a");
+ }
+
+ @Test
+ public void testClient1b2a3a4b() throws RemoteException {
+ doit("Client1b2a3a4b");
+ }
+
+ @Test
+ public void testClient1b2a3b4a() throws RemoteException {
+ doit("Client1b2a3b4a");
+ }
+
+ @Test
+ public void testClient1b2a3b4b() throws RemoteException {
+ doit("Client1b2a3b4b");
+ }
+
+ @Test
+ public void testClient1b2b3a4a() throws RemoteException {
+ doit("Client1b2b3a4a");
+ }
+
+ @Test
+ public void testClient1b2b3a4b() throws RemoteException {
+ doit("Client1b2b3a4b");
+ }
+
+ @Test
+ public void testClient1b2b3b4a() throws RemoteException {
+ doit("Client1b2b3b4a");
+ }
+
+ @Test
+ public void testClient1b2b3b4b() throws RemoteException {
+ doit("Client1b2b3b4b");
+ }
+
+ private void doit(String compName) throws RemoteException {
+ AccountDataService client = domain.getService(AccountDataService.class, compName);
+ CustomerProfileData dataIn = AccountFactory.INSTANCE.createCustomerProfileData();
+ dataIn.setAddress("home");
+ dataIn.setEmail("petra@home");
+ dataIn.setFirstName("petra");
+ dataIn.setId(1);
+ dataIn.setLastName("A");
+ dataIn.setLoginID("petra");
+ dataIn.setPassword("ant");
+
+ CustomerProfileData dataOut = client.createAccount(dataIn , false, false);
+
+ assertEquals(dataIn.getAddress(), dataOut.getAddress());
+ assertEquals(dataIn.getEmail(), dataOut.getEmail());
+ assertEquals(dataIn.getFirstName(), dataOut.getFirstName());
+ assertEquals(dataIn.getId(), dataOut.getId());
+ assertEquals(dataIn.getLastName(), dataOut.getLastName());
+ assertEquals(dataIn.getLoginID(), dataOut.getLoginID());
+ assertEquals(dataIn.getPassword(), dataOut.getPassword());
+
+ AccountReport report = client.getAccountReport(12345);
+ AccountSummary summary1 = (AccountSummary)report.getAccountSummaries().get(0);
+ assertEquals(summary1.getAccountType(), "checking");
+ AccountSummary summary2 = (AccountSummary)report.getAccountSummaries().get(1);
+ assertEquals(summary2.getBalance(), 2000.f);
+ }
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ try {
+ domain = SCADomain.newInstance("SDOWSDLTest.composite");
+ }catch(Throwable e) {
+ e.printStackTrace();
+ }
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ domain.close();
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/WSDLTestCase.java b/java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/WSDLTestCase.java
new file mode 100644
index 0000000000..82bf7ce650
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/org/apache/tuscany/sca/itest/WSDLTestCase.java
@@ -0,0 +1,150 @@
+/*
+ * 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;
+
+import static junit.framework.Assert.assertEquals;
+import helloworld.HelloWorldService;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Tests all the combinations of wiring services, components, and references
+ * which use either interface.java or interface.wsdl. The tests use a service
+ * (1) wired to a components (2) wired to another component (3) wired to a
+ * reference (4). Each of those uses either interface.java (a) or interface.wsdl
+ * (b). This results in 16 different combinations 1a2a3a4a thru 1b2b3b4b.
+ */
+public class WSDLTestCase {
+
+ private static SCADomain domain;
+
+ @Test
+ public void testClient1a2a3a4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2a3a4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ String[] greetings = client.getMultipleGreetings(new String[] {"John", "Smith"});
+ assertEquals(2, greetings.length);
+ assertEquals("Hi John", greetings[0]);
+ assertEquals("Hi Smith", greetings[1]);
+ }
+
+ @Test
+ public void testClient1a2a3a4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2a3a4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1a2a3b4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2a3b4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1a2a3b4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2a3b4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1a2b3a4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2b3a4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1a2b3a4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2b3a4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1a2b3b4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2b3b4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1a2b3b4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1a2b3b4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2a3a4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2a3a4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2a3a4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2a3a4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2a3b4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2a3b4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2a3b4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2a3b4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2b3a4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2b3a4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2b3a4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2b3a4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2b3b4a() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2b3b4a");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @Test
+ public void testClient1b2b3b4b() {
+ HelloWorldService client = domain.getService(HelloWorldService.class, "Client1b2b3b4b");
+ assertEquals("Hi petra", client.getGreetings("petra"));
+ }
+
+ @BeforeClass
+ public static void init() throws Throwable {
+ domain = SCADomain.newInstance("WSDLTest.composite");
+ }
+
+ @AfterClass
+ public static void destroy() throws Exception {
+ domain.close();
+ }
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/SomeComponentTestCase.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/SomeComponentTestCase.java
new file mode 100644
index 0000000000..7c62287c57
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/SomeComponentTestCase.java
@@ -0,0 +1,83 @@
+/*
+ * 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 service;
+
+import static org.junit.Assert.assertEquals;
+
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import service.generated.SomeServiceService;
+
+/**
+ * @author pxk3
+ *
+ */
+public class SomeComponentTestCase {
+ private static SCADomain scaDomain;
+ private static SomeService someService;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ scaDomain = SCADomain.newInstance("some.composite");
+ someService = scaDomain.getService(SomeService.class, "SomeServicesComponent");
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ scaDomain.close();
+ }
+
+ @Test
+ public void testGetUsingMoreComplexObject() throws Exception {
+ String stringParam = "ABC";
+ URL url = new URL("http://localhost:8085/SomeServices?wsdl");
+ QName serviceQName = new QName("http://service/", "SomeServiceService");
+ SomeServiceService service = new SomeServiceService(url, serviceQName);
+ service.generated.SomeService proxy = service.getSomeServicePort();
+ service.generated.AnObject obj = proxy.getUsingString(stringParam);
+ assertEquals(stringParam + "123", obj.getSomeRetValue());
+
+ service.generated.MoreComplexObject obj2 = new service.generated.MoreComplexObject();
+ obj2.setStringParam(stringParam);
+ obj2.setStringParam2("2");
+ obj2.setIntParam(new Integer(0));
+
+ obj = proxy.getUsingMoreComplexObject(obj2);
+ assertEquals(stringParam + "123", obj.getSomeRetValue());
+ }
+
+ @Test
+ public void testLocal() {
+ String stringParam = "1234";
+ MoreComplexObject moreComplexParam = new MoreComplexObject();
+ moreComplexParam.setStringParam(stringParam);
+
+ AnObject anObject = someService.getUsingMoreComplexObject(moreComplexParam);
+
+ assertEquals(stringParam + "123", anObject.getSomeRetValue());
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/AnObject.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/AnObject.java
new file mode 100644
index 0000000000..effeb3c701
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/AnObject.java
@@ -0,0 +1,100 @@
+/*
+ * 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 service.generated;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>Java class for anObject complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="anObject">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="someOtherRetValue" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ * &lt;element name="someRetValue" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "anObject", namespace = "", propOrder = {"someOtherRetValue", "someRetValue"})
+public class AnObject {
+
+ protected Integer someOtherRetValue;
+ protected String someRetValue;
+
+ /**
+ * Gets the value of the someOtherRetValue property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public Integer getSomeOtherRetValue() {
+ return someOtherRetValue;
+ }
+
+ /**
+ * Sets the value of the someOtherRetValue property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setSomeOtherRetValue(Integer value) {
+ this.someOtherRetValue = value;
+ }
+
+ /**
+ * Gets the value of the someRetValue property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getSomeRetValue() {
+ return someRetValue;
+ }
+
+ /**
+ * Sets the value of the someRetValue property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setSomeRetValue(String value) {
+ this.someRetValue = value;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObject.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObject.java
new file mode 100644
index 0000000000..284e961788
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObject.java
@@ -0,0 +1,79 @@
+/*
+ * 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 service.generated;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="arg0" type="{}moreComplexObject" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {"arg0"})
+@XmlRootElement(name = "getUsingMoreComplexObject", namespace = "http://service/")
+public class GetUsingMoreComplexObject {
+
+ @XmlElementRef(name = "arg0", type = JAXBElement.class)
+ protected JAXBElement<MoreComplexObject> arg0;
+
+ /**
+ * Gets the value of the arg0 property.
+ *
+ * @return
+ * possible object is
+ * {@link JAXBElement }{@code <}{@link MoreComplexObject }{@code >}
+ *
+ */
+ public JAXBElement<MoreComplexObject> getArg0() {
+ return arg0;
+ }
+
+ /**
+ * Sets the value of the arg0 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link JAXBElement }{@code <}{@link MoreComplexObject }{@code >}
+ *
+ */
+ public void setArg0(JAXBElement<MoreComplexObject> value) {
+ this.arg0 = ((JAXBElement<MoreComplexObject>)value);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObjectResponse.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObjectResponse.java
new file mode 100644
index 0000000000..4113aa1a0a
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingMoreComplexObjectResponse.java
@@ -0,0 +1,79 @@
+/*
+ * 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 service.generated;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="return" type="{}anObject" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {"_return"})
+@XmlRootElement(name = "getUsingMoreComplexObjectResponse", namespace = "http://service/")
+public class GetUsingMoreComplexObjectResponse {
+
+ @XmlElementRef(name = "return", type = JAXBElement.class)
+ protected JAXBElement<AnObject> _return;
+
+ /**
+ * Gets the value of the return property.
+ *
+ * @return
+ * possible object is
+ * {@link JAXBElement }{@code <}{@link AnObject }{@code >}
+ *
+ */
+ public JAXBElement<AnObject> getReturn() {
+ return _return;
+ }
+
+ /**
+ * Sets the value of the return property.
+ *
+ * @param value
+ * allowed object is
+ * {@link JAXBElement }{@code <}{@link AnObject }{@code >}
+ *
+ */
+ public void setReturn(JAXBElement<AnObject> value) {
+ this._return = ((JAXBElement<AnObject>)value);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingString.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingString.java
new file mode 100644
index 0000000000..532b948b47
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingString.java
@@ -0,0 +1,79 @@
+/*
+ * 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 service.generated;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {"arg0"})
+@XmlRootElement(name = "getUsingString", namespace = "http://service/")
+public class GetUsingString {
+
+ @XmlElementRef(name = "arg0", type = JAXBElement.class)
+ protected JAXBElement<String> arg0;
+
+ /**
+ * Gets the value of the arg0 property.
+ *
+ * @return
+ * possible object is
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ *
+ */
+ public JAXBElement<String> getArg0() {
+ return arg0;
+ }
+
+ /**
+ * Sets the value of the arg0 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link JAXBElement }{@code <}{@link String }{@code >}
+ *
+ */
+ public void setArg0(JAXBElement<String> value) {
+ this.arg0 = ((JAXBElement<String>)value);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingStringResponse.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingStringResponse.java
new file mode 100644
index 0000000000..82bfb2d2aa
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/GetUsingStringResponse.java
@@ -0,0 +1,79 @@
+/*
+ * 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 service.generated;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="return" type="{}anObject" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {"_return"})
+@XmlRootElement(name = "getUsingStringResponse", namespace = "http://service/")
+public class GetUsingStringResponse {
+
+ @XmlElementRef(name = "return", type = JAXBElement.class)
+ protected JAXBElement<AnObject> _return;
+
+ /**
+ * Gets the value of the return property.
+ *
+ * @return
+ * possible object is
+ * {@link JAXBElement }{@code <}{@link AnObject }{@code >}
+ *
+ */
+ public JAXBElement<AnObject> getReturn() {
+ return _return;
+ }
+
+ /**
+ * Sets the value of the return property.
+ *
+ * @param value
+ * allowed object is
+ * {@link JAXBElement }{@code <}{@link AnObject }{@code >}
+ *
+ */
+ public void setReturn(JAXBElement<AnObject> value) {
+ this._return = ((JAXBElement<AnObject>)value);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/MoreComplexObject.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/MoreComplexObject.java
new file mode 100644
index 0000000000..61c7c6cb19
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/MoreComplexObject.java
@@ -0,0 +1,126 @@
+/*
+ * 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 service.generated;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p>Java class for moreComplexObject complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="moreComplexObject">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="intParam" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ * &lt;element name="stringParam" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="stringParam2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "moreComplexObject", namespace = "", propOrder = {"intParam", "stringParam", "stringParam2"})
+public class MoreComplexObject {
+
+ protected Integer intParam;
+ protected String stringParam;
+ protected String stringParam2;
+
+ /**
+ * Gets the value of the intParam property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public Integer getIntParam() {
+ return intParam;
+ }
+
+ /**
+ * Sets the value of the intParam property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setIntParam(Integer value) {
+ this.intParam = value;
+ }
+
+ /**
+ * Gets the value of the stringParam property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStringParam() {
+ return stringParam;
+ }
+
+ /**
+ * Sets the value of the stringParam property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStringParam(String value) {
+ this.stringParam = value;
+ }
+
+ /**
+ * Gets the value of the stringParam2 property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStringParam2() {
+ return stringParam2;
+ }
+
+ /**
+ * Sets the value of the stringParam2 property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStringParam2(String value) {
+ this.stringParam2 = value;
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/ObjectFactory.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/ObjectFactory.java
new file mode 100644
index 0000000000..1ba0c497d9
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/ObjectFactory.java
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package service.generated;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the service.jaxws package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _GetUsingMoreComplexObjectArg0_QNAME = new QName("", "arg0");
+ private final static QName _GetUsingStringResponseReturn_QNAME = new QName("", "return");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: service.jaxws
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link AnObject }
+ *
+ */
+ public AnObject createAnObject() {
+ return new AnObject();
+ }
+
+ /**
+ * Create an instance of {@link GetUsingStringResponse }
+ *
+ */
+ public GetUsingStringResponse createGetUsingStringResponse() {
+ return new GetUsingStringResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetUsingMoreComplexObjectResponse }
+ *
+ */
+ public GetUsingMoreComplexObjectResponse createGetUsingMoreComplexObjectResponse() {
+ return new GetUsingMoreComplexObjectResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetUsingString }
+ *
+ */
+ public GetUsingString createGetUsingString() {
+ return new GetUsingString();
+ }
+
+ /**
+ * Create an instance of {@link GetUsingMoreComplexObject }
+ *
+ */
+ public GetUsingMoreComplexObject createGetUsingMoreComplexObject() {
+ return new GetUsingMoreComplexObject();
+ }
+
+ /**
+ * Create an instance of {@link MoreComplexObject }
+ *
+ */
+ public MoreComplexObject createMoreComplexObject() {
+ return new MoreComplexObject();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link MoreComplexObject }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "arg0", scope = GetUsingMoreComplexObject.class)
+ public JAXBElement<MoreComplexObject> createGetUsingMoreComplexObjectArg0(MoreComplexObject value) {
+ return new JAXBElement<MoreComplexObject>(_GetUsingMoreComplexObjectArg0_QNAME, MoreComplexObject.class,
+ GetUsingMoreComplexObject.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link AnObject }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "return", scope = GetUsingStringResponse.class)
+ public JAXBElement<AnObject> createGetUsingStringResponseReturn(AnObject value) {
+ return new JAXBElement<AnObject>(_GetUsingStringResponseReturn_QNAME, AnObject.class,
+ GetUsingStringResponse.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link AnObject }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "return", scope = GetUsingMoreComplexObjectResponse.class)
+ public JAXBElement<AnObject> createGetUsingMoreComplexObjectResponseReturn(AnObject value) {
+ return new JAXBElement<AnObject>(_GetUsingStringResponseReturn_QNAME, AnObject.class,
+ GetUsingMoreComplexObjectResponse.class, value);
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "", name = "arg0", scope = GetUsingString.class)
+ public JAXBElement<String> createGetUsingStringArg0(String value) {
+ return new JAXBElement<String>(_GetUsingMoreComplexObjectArg0_QNAME, String.class, GetUsingString.class, value);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeService.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeService.java
new file mode 100644
index 0000000000..4a584a8da2
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeService.java
@@ -0,0 +1,65 @@
+/*
+ * 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 service.generated;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1 in JDK 6
+ * Generated source version: 2.1
+ *
+ */
+@WebService(name = "SomeService", targetNamespace = "http://service/")
+@XmlSeeAlso( {ObjectFactory.class})
+public interface SomeService {
+
+ /**
+ *
+ * @param arg0
+ * @return
+ * returns service.generated.AnObject
+ */
+ @WebMethod
+ @WebResult(targetNamespace = "")
+ @RequestWrapper(localName = "getUsingMoreComplexObject", targetNamespace = "http://service/", className = "service.generated.GetUsingMoreComplexObject")
+ @ResponseWrapper(localName = "getUsingMoreComplexObjectResponse", targetNamespace = "http://service/", className = "service.generated.GetUsingMoreComplexObjectResponse")
+ public AnObject getUsingMoreComplexObject(@WebParam(name = "arg0", targetNamespace = "")
+ MoreComplexObject arg0);
+
+ /**
+ *
+ * @param arg0
+ * @return
+ * returns service.generated.AnObject
+ */
+ @WebMethod
+ @WebResult(targetNamespace = "")
+ @RequestWrapper(localName = "getUsingString", targetNamespace = "http://service/", className = "service.generated.GetUsingString")
+ @ResponseWrapper(localName = "getUsingStringResponse", targetNamespace = "http://service/", className = "service.generated.GetUsingStringResponse")
+ public AnObject getUsingString(@WebParam(name = "arg0", targetNamespace = "")
+ String arg0);
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeServiceService.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeServiceService.java
new file mode 100644
index 0000000000..44c2b67256
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/SomeServiceService.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 service.generated;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+import javax.xml.ws.WebServiceFeature;
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.1 in JDK 6
+ * Generated source version: 2.1
+ *
+ */
+@WebServiceClient(name = "SomeServiceService", targetNamespace = "http://service/", wsdlLocation = "file:/C:/Tuscany/java/sca/itest/wsdlless/src/main/resources/some.wsdl")
+public class SomeServiceService extends Service {
+
+ private final static URL SOMESERVICESERVICE_WSDL_LOCATION;
+
+ static {
+ URL url = null;
+ try {
+ url = new URL("file:/C:/Tuscany/java/sca/itest/wsdlless/src/main/resources/some.wsdl");
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ SOMESERVICESERVICE_WSDL_LOCATION = url;
+ }
+
+ public SomeServiceService(URL wsdlLocation, QName serviceName) {
+ super(wsdlLocation, serviceName);
+ }
+
+ public SomeServiceService() {
+ super(SOMESERVICESERVICE_WSDL_LOCATION, new QName("http://service/", "SomeServiceService"));
+ }
+
+ /**
+ *
+ * @return
+ * returns SomeService
+ */
+ @WebEndpoint(name = "SomeServicePort")
+ public SomeService getSomeServicePort() {
+ return (SomeService)super.getPort(new QName("http://service/", "SomeServicePort"), SomeService.class);
+ }
+
+ /**
+ *
+ * @param features
+ * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
+ * @return
+ * returns SomeService
+ */
+ @WebEndpoint(name = "SomeServicePort")
+ public SomeService getSomeServicePort(WebServiceFeature... features) {
+ return (SomeService)super.getPort(new QName("http://service/", "SomeServicePort"), SomeService.class, features);
+ }
+
+}
diff --git a/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/package-info.java b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/package-info.java
new file mode 100644
index 0000000000..d7b3fef82e
--- /dev/null
+++ b/java/sca-contrib/itest/wsdlless/src/test/java/service/generated/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://service/")
+package service.generated;
+