diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-04-14 17:59:45 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-04-14 17:59:45 +0000 |
commit | 6c10a8b2c5a75f579cb55fc936d84f8953c493d0 (patch) | |
tree | 81a586c4a216cd81e023cf6473394218263978e6 /sandbox | |
parent | 0d52378df16bd134b6942654e86436ee1fc35372 (diff) |
Add some more parts to the simple banking sample
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@934063 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox')
20 files changed, 621 insertions, 46 deletions
diff --git a/sandbox/slaws/bank-challenge/bank-contribution/pom.xml b/sandbox/slaws/bank-challenge/bank-contribution/pom.xml index a4bdc9a4f1..2ee8455d1e 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/pom.xml +++ b/sandbox/slaws/bank-challenge/bank-contribution/pom.xml @@ -25,9 +25,9 @@ <version>2.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> - <artifactId>sandbox-bank-challenge</artifactId> - <name>Apache Tuscany SCA Sandbox Bank Challenge</name> - <packaging>war</packaging> + <artifactId>sandbox-bank-contribution</artifactId> + <name>Apache Tuscany SCA Sandbox Bank Contribution</name> + <packaging>jar</packaging> <dependencies> @@ -77,48 +77,16 @@ <version>4.8.1</version> <scope>test</scope> </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>sandbox-common-contribution</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> </dependencies> <build> <finalName>${artifactId}</finalName> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.4</version> - <executions> - <execution> - <id>add-source</id> - <phase>generate-sources</phase> - <goals> - <goal>add-resource</goal> - </goals> - <configuration> - <resources> - <resource> - <directory>src/wsimportout</directory> - </resource> - <resource> - <directory>src/wsgenout</directory> - </resource> - </resources> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.2</version> - <configuration> - <archive> - <manifest> - <mainClass>calculator.CalculatorClient</mainClass> - </manifest> - </archive> - </configuration> - </plugin> - </plugins> </build> </project> diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/impl/BankServiceImpl.java b/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/impl/BankServiceImpl.java index 9b49f39ef1..a4e7ee8de2 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/impl/BankServiceImpl.java +++ b/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/impl/BankServiceImpl.java @@ -27,6 +27,7 @@ import org.oasisopen.sca.annotation.Scope; import org.oasisopen.sca.annotation.Service; import bank.BankService; +import bank.ChallengeControl; import bank.Statement; import bank.StockHolding; import bank.StockQuote; @@ -34,9 +35,9 @@ import bank.StockQuote; /** * An implementation of the Bank service. */ -@Service(BankService.class) +@Service({BankService.class, ChallengeControl.class}) @Scope("COMPOSITE") -public class BankServiceImpl implements BankService { +public class BankServiceImpl implements BankService, ChallengeControl { protected int initialCredit = 1000; protected int overdrawnCost = 1; @@ -72,7 +73,7 @@ public class BankServiceImpl implements BankService { } } - // public interface + // BankService service implementation public String createAccount(String customerName) { for (Statement statement : accounts){ @@ -168,6 +169,26 @@ public class BankServiceImpl implements BankService { return stockQuote; } + // ChallengeControl service implmentation + + public void start() { + + } + + public void increment() { + + } + + public void stop() { + System.out.println("Customer report"); + System.out.println("==============="); + + for(Statement account : accounts){ + System.out.println("\n"); + System.out.println(account); + } + } + // private functions private void updateStockPrices(){ diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/Bank.composite b/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/Bank.composite index 60919c0bfe..e774169dc2 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/Bank.composite +++ b/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/Bank.composite @@ -26,6 +26,8 @@ <implementation.java class="bank.impl.BankServiceImpl"/> <service name="BankService"> </service> + <service name="ChallengeControl"> + </service> </component> </composite> diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/META-INF/sca-contribution.xml b/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/META-INF/sca-contribution.xml index 1bc342a9af..1c475cae94 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/META-INF/sca-contribution.xml +++ b/sandbox/slaws/bank-challenge/bank-contribution/src/main/resources/META-INF/sca-contribution.xml @@ -20,4 +20,5 @@ <contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:sample="http://banking-challenge"> <deployable composite="sample:Bank"/> + <import.java package="bank"/> </contribution>
\ No newline at end of file diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/test/java/test/BankTestCase.java b/sandbox/slaws/bank-challenge/bank-contribution/src/test/java/test/BankTestCase.java index cbfa6f815f..c3c2f1391e 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/test/java/test/BankTestCase.java +++ b/sandbox/slaws/bank-challenge/bank-contribution/src/test/java/test/BankTestCase.java @@ -38,8 +38,9 @@ public class BankTestCase{ @BeforeClass public static void setUpBeforeClass() throws Exception { - node = NodeFactory.newInstance().createNode((String)null, new String[] {"target/classes"}).start(); - bankService = node.getService(BankService.class, "BankServiceComponent"); + node = NodeFactory.newInstance().createNode((String)null, new String[] {"target/classes"}); + node.start(); + bankService = node.getService(BankService.class, "BankServiceComponent/BankService"); } @AfterClass diff --git a/sandbox/slaws/bank-challenge/client-sl-contribution/pom.xml b/sandbox/slaws/bank-challenge/client-sl-contribution/pom.xml new file mode 100644 index 0000000000..7b46a138cb --- /dev/null +++ b/sandbox/slaws/bank-challenge/client-sl-contribution/pom.xml @@ -0,0 +1,92 @@ +<?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-sca</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>sandbox-bank-client-sl-contribution</artifactId> + <name>Apache Tuscany SCA Sandbox Bank Client SL Contribution</name> + <packaging>jar</packaging> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-webapp</artifactId> + <version>1.5.1</version> + <type>war</type> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.1</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>sandbox-common-contribution</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + <finalName>${artifactId}</finalName> + </build> +</project> diff --git a/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java new file mode 100644 index 0000000000..ab8b4de1b4 --- /dev/null +++ b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java @@ -0,0 +1,75 @@ +/* + * 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 client.impl; + +import java.util.List; + +import org.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.Scope; +import org.oasisopen.sca.annotation.Service; + +import bank.BankService; +import bank.ChallengeControl; +import bank.Statement; +import bank.StockHolding; +import bank.StockQuote; + +/** + * An implementation of the Bank service. + */ +@Service(ChallengeControl.class) +@Scope("COMPOSITE") +public class ClientImpl implements ChallengeControl { + + @Reference + protected BankService bankService; + + private String customerName = "SL"; + private String accountID; + + public ClientImpl(){ + } + + public void start() { + System.out.println("Starting bank client for " + customerName); + accountID = bankService.createAccount(customerName); + System.out.println("Account ID for " + customerName + " = " + accountID); + } + + public void increment() { + System.out.println("Increment " + customerName); + + List<StockQuote> stockQuotes = bankService.getAllStockQuotes(accountID); + + for (StockQuote stock : stockQuotes){ + bankService.buyEquity(accountID, stock.getStockCode(), 1); + } + + System.out.println("My statement " + bankService.getStatement(accountID)); + } + + public void stop() { + System.out.println("Stopping bank client for " + customerName); + Statement statement = bankService.getStatement(accountID); + + for (StockHolding holding : statement.getStockHolding()){ + bankService.sellEquity(accountID, holding.getStockCode(), holding.getNumberHeld()); + } + } +} diff --git a/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/resources/Client.composite b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/resources/Client.composite new file mode 100644 index 0000000000..0d1ce9223a --- /dev/null +++ b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/resources/Client.composite @@ -0,0 +1,30 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://banking-challenge" + xmlns:sample="http://banking-challenge" + name="ClientSL"> + + <component name="ClientComponentSL"> + <implementation.java class="client.impl.ClientImpl"/> + <reference name="bankService" target="BankServiceComponent"/> + </component> + +</composite> diff --git a/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/resources/META-INF/sca-contribution.xml b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..4906cd95b5 --- /dev/null +++ b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ +<?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. +--> +<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sample="http://banking-challenge"> + <deployable composite="sample:ClientSL"/> + <import.java package="bank"/> +</contribution>
\ No newline at end of file diff --git a/sandbox/slaws/bank-challenge/client-sl-contribution/src/test/java/test/BankClientTestCase.java b/sandbox/slaws/bank-challenge/client-sl-contribution/src/test/java/test/BankClientTestCase.java new file mode 100644 index 0000000000..a6cec45ec4 --- /dev/null +++ b/sandbox/slaws/bank-challenge/client-sl-contribution/src/test/java/test/BankClientTestCase.java @@ -0,0 +1,61 @@ +/* + * 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 test; + +import static org.junit.Assert.assertEquals; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import bank.ChallengeControl; + +/** + * Test the Bank service component. + */ +public class BankClientTestCase{ + private static Node node; + private static ChallengeControl bankClient; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + node = NodeFactory.newInstance().createNode(new Contribution("Common", "../common-contribution/target/classes"), + new Contribution("Bank", "../bank-contribution/target/classes"), + new Contribution("SLClient", "../client-sl-contribution/target/classes")); + node.start(); + bankClient = node.getService(ChallengeControl.class, "ClientComponentSL"); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + node.stop(); + } + + @Test + public void testClient() throws Exception { + System.out.println("Start client"); + bankClient.start(); + bankClient.increment(); + System.out.println("Stop client"); + bankClient.stop(); + } +} diff --git a/sandbox/slaws/bank-challenge/common-contribution/pom.xml b/sandbox/slaws/bank-challenge/common-contribution/pom.xml new file mode 100644 index 0000000000..8c8f8b9704 --- /dev/null +++ b/sandbox/slaws/bank-challenge/common-contribution/pom.xml @@ -0,0 +1,86 @@ +<?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-sca</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>sandbox-common-contribution</artifactId> + <name>Apache Tuscany SCA Sandbox Common Contribution</name> + <packaging>jar</packaging> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-webapp</artifactId> + <version>1.5.1</version> + <type>war</type> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.1</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <finalName>${artifactId}</finalName> + </build> +</project> diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/BankService.java b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/BankService.java index bc13dfd21d..bc13dfd21d 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/BankService.java +++ b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/BankService.java diff --git a/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/ChallengeControl.java b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/ChallengeControl.java new file mode 100644 index 0000000000..c03f9a2c9c --- /dev/null +++ b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/ChallengeControl.java @@ -0,0 +1,32 @@ +/* + * 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 bank; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The Bank service interface. + */ +@Remotable +public interface ChallengeControl { + + void start(); + void increment(); + void stop(); +} diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/Statement.java b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/Statement.java index 97439736e1..97439736e1 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/Statement.java +++ b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/Statement.java diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockHolding.java b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/StockHolding.java index 8bd0afd2be..8bd0afd2be 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockHolding.java +++ b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/StockHolding.java diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockQuote.java b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/StockQuote.java index 3bec8019b7..3bec8019b7 100644 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockQuote.java +++ b/sandbox/slaws/bank-challenge/common-contribution/src/main/java/bank/StockQuote.java diff --git a/sandbox/slaws/bank-challenge/common-contribution/src/main/resources/META-INF/sca-contribution.xml b/sandbox/slaws/bank-challenge/common-contribution/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..d96d586130 --- /dev/null +++ b/sandbox/slaws/bank-challenge/common-contribution/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?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. +--> +<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sample="http://banking-challenge"> + <export.java package="bank"/> +</contribution>
\ No newline at end of file diff --git a/sandbox/slaws/bank-challenge/launcher/pom.xml b/sandbox/slaws/bank-challenge/launcher/pom.xml new file mode 100644 index 0000000000..1aa5f0ae1f --- /dev/null +++ b/sandbox/slaws/bank-challenge/launcher/pom.xml @@ -0,0 +1,92 @@ +<?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-sca</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>sandbox-bank-challenge-launcher</artifactId> + <name>Apache Tuscany SCA Sandbox Bank Challenge Launcher</name> + <packaging>war</packaging> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-api</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-node-impl</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-webapp</artifactId> + <version>1.5.1</version> + <type>war</type> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.1</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>sandbox-common-contribution</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + <finalName>${artifactId}</finalName> + </build> +</project> diff --git a/sandbox/slaws/bank-challenge/launcher/src/main/java/launch/BankChallengeLauncher.java b/sandbox/slaws/bank-challenge/launcher/src/main/java/launch/BankChallengeLauncher.java new file mode 100644 index 0000000000..c643b64814 --- /dev/null +++ b/sandbox/slaws/bank-challenge/launcher/src/main/java/launch/BankChallengeLauncher.java @@ -0,0 +1,66 @@ +/* + * 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 launch; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +import bank.ChallengeControl; + +public class BankChallengeLauncher { + + public static void main(String[] args) throws Exception { + Node node = NodeFactory.newInstance().createNode(new Contribution("Bank", "../bank-contribution/target/classes"), + new Contribution("Common", "../common-contribution/target/classes"), + new Contribution("SLClient", "../client-sl-contribution/target/classes")); + node.start(); + + List<ChallengeControl> bankClients = new ArrayList<ChallengeControl>(); + + bankClients.add(node.getService(ChallengeControl.class, "ClientComponentSL")); + + // start all clients + Iterator<ChallengeControl> bankClientsIterator = bankClients.iterator(); + while(bankClientsIterator.hasNext()){ + bankClientsIterator.next().start(); + } + + for(int i=0; i<10; i++){ + // increment all clients + bankClientsIterator = bankClients.iterator(); + while(bankClientsIterator.hasNext()){ + bankClientsIterator.next().increment(); + } + } + + // stop all clients + bankClientsIterator = bankClients.iterator(); + while(bankClientsIterator.hasNext()){ + bankClientsIterator.next().stop(); + } + + node.stop(); + } +} diff --git a/sandbox/slaws/bank-challenge/pom.xml b/sandbox/slaws/bank-challenge/pom.xml index ffe45c0d26..55b0e89d62 100644 --- a/sandbox/slaws/bank-challenge/pom.xml +++ b/sandbox/slaws/bank-challenge/pom.xml @@ -43,6 +43,7 @@ <activeByDefault>true</activeByDefault> </activation> <modules> + <module>common-contribution</module> <module>bank-contribution</module> <module>client-sl-contribution</module> <module>launcher</module> |