diff options
Diffstat (limited to 'sandbox/slaws/bank-challenge/bank-contribution')
9 files changed, 39 insertions, 339 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/BankService.java b/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/BankService.java deleted file mode 100644 index bc13dfd21d..0000000000 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/BankService.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package bank; - -import java.util.List; - -import org.oasisopen.sca.annotation.Remotable; - -/** - * The Bank service interface. - */ -@Remotable -public interface BankService { - - String createAccount(String customerName); - - Statement getStatement(String accountID); - - void buyEquity(String accountID, String equityCode, int number); - void sellEquity(String accountID, String equityCode, int number); - - StockQuote getStockQuote(String accountID, String equityCode); - List<StockQuote> getAllStockQuotes(String accountID); -} diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/Statement.java b/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/Statement.java deleted file mode 100644 index 97439736e1..0000000000 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/Statement.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package bank; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; - - -/** - * A stock quote - */ -public class Statement implements Serializable { - - private String customerName; - private String accountID; - private long cashBalance; - private List<StockHolding> stockHoldings; - private List<String> transactions = new ArrayList<String>(); - - public Statement(){ - if (this.stockHoldings == null){ - this.stockHoldings = new ArrayList<StockHolding>(); - } - } - - public Statement(String customerName, String accountID, long cashBalance, List<StockHolding> stockHoldings){ - this.customerName = customerName; - this.accountID = accountID; - this.cashBalance = cashBalance; - this.stockHoldings = stockHoldings; - - if (this.accountID == null){ - this.accountID = UUID.randomUUID().toString(); - } - - if (this.stockHoldings == null){ - this.stockHoldings = new ArrayList<StockHolding>(); - } - } - - public String getCustomerName() { - return customerName; - } - - public String getAccountID() { - return accountID; - } - - public long getCashBalance() { - return cashBalance; - } - - public void creditCashBalance(long credit, String reason) { - this.cashBalance += credit; - transactions.add("credit " + credit + " : " + reason); - } - - public void debitCashBalance(long debit, String reason) { - this.cashBalance -= debit; - transactions.add("debit " + debit + " : " + reason); - } - - public List<StockHolding> getStockHolding() { - return stockHoldings; - } - - public void creditStockHolding(StockHolding stock){ - stockHoldings.add(stock); - debitCashBalance(stock.getPrice() * stock.getNumberHeld(), - "bought " + stock.getNumberHeld() + " of " + stock.getStockCode() + " at " + stock.getPrice()); - } - - public void debitStockHolding(StockHolding stock){ - int numberToSell = stock.getNumberHeld(); - int numberSold = 0; - List<StockHolding> toRemove = new ArrayList<StockHolding>(); - - for (StockHolding stockHolding : stockHoldings){ - if (stockHolding.getStockCode().equals(stock.getStockCode())){ - if (stockHolding.getNumberHeld() > numberToSell){ - stockHolding.setNumberHeld(stockHolding.getNumberHeld() - numberToSell); - numberSold += numberToSell; - numberToSell = 0; - break; - } else { - numberSold += stockHolding.getNumberHeld(); - numberToSell -= stockHolding.getNumberHeld(); - stockHolding.setNumberHeld(0); - toRemove.add(stockHolding); - } - } - } - - stockHoldings.removeAll(toRemove); - - creditCashBalance(stock.getPrice() * numberSold, - "sold " + numberSold + " of " + stock.getStockCode() + " at " + stock.getPrice()); - } - - public List<String> getTransactions() { - return transactions; - } - - @Override - public String toString() { - String returnString = - "customer name = " + customerName + - "\naccount Id = " + accountID + - "\nbalance = " + cashBalance + - "\nequities = \n"; - - for (StockHolding stock : stockHoldings){ - returnString += " stock " + stock.getStockCode() + " number held = " + stock.getNumberHeld() + "\n"; - } - - returnString += - "transactions = \n"; - - for(String transaction : transactions){ - returnString += " " + transaction + "\n"; - } - - return returnString; - } -} diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockHolding.java b/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockHolding.java deleted file mode 100644 index 8bd0afd2be..0000000000 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockHolding.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package bank; - -import java.io.Serializable; - -/** - * A stock quote - */ -public class StockHolding implements Serializable { - - private String stockCode; - private int numberHeld; - private long price; - - public StockHolding(String stockCode, int numberHeld, long price){ - this.stockCode = stockCode; - this.numberHeld = numberHeld; - this.price = price; - } - - public String getStockCode() { - return stockCode; - } - - public int getNumberHeld() { - return numberHeld; - } - - public void setNumberHeld(int numberHeld) { - this.numberHeld = numberHeld; - } - - public long getPrice() { - return price; - } - - @Override - public String toString() { - return stockCode + " - number=" + numberHeld + " - price=" + price; - } -} diff --git a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockQuote.java b/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockQuote.java deleted file mode 100644 index 3bec8019b7..0000000000 --- a/sandbox/slaws/bank-challenge/bank-contribution/src/main/java/bank/StockQuote.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package bank; - -import java.io.Serializable; - -/** - * A stock quote - */ -public class StockQuote implements Serializable { - - private String stockCode; - private long stockQuote; - - public StockQuote(String stockCode, long stockQuote){ - this.stockCode = stockCode; - this.stockQuote = stockQuote; - } - - public String getStockCode() { - return stockCode; - } - - public long getStockQuote() { - return stockQuote; - } - - public void setStockQuote(long stockQuote) { - this.stockQuote = stockQuote; - } - - @Override - public String toString() { - return stockCode + " - " + stockQuote; - } -} 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 |