diff options
Diffstat (limited to 'branches/sca-java-1.0/demos/bigbank-account/src/main')
17 files changed, 929 insertions, 0 deletions
diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/AccountService.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/AccountService.java new file mode 100644 index 0000000000..2cb8027874 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/AccountService.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 bigbank.account; + +import org.osoa.sca.annotations.Remotable; + +/** + * @version $$Rev$$ $$Date$$ + */ + +@Remotable +public interface AccountService { + + public double getAccountReport(String customerID); + +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/AccountServiceImpl.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/AccountServiceImpl.java new file mode 100644 index 0000000000..4f1afee204 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/AccountServiceImpl.java @@ -0,0 +1,85 @@ +/* + * 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; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import stockquote.StockQuoteService; +import bigbank.accountdata.AccountDataService; +import bigbank.accountdata.CheckingAccount; +import bigbank.accountdata.SavingsAccount; +import bigbank.accountdata.StockAccount; +import calculator.CalculatorService; + +/** + * @version $$Rev$$ $$Date$$ + */ + +@Service(AccountService.class) +public class AccountServiceImpl implements AccountService { + + @Reference + protected AccountDataService accountDataService; + + @Reference + protected StockQuoteService stockQuoteService; + + @Reference + protected CalculatorService calculatorService; + + @Property + protected String currency; + + public double getAccountReport(String customerID) { + + // Get the checking, savings and stock accounts from the AccountData + // service component + CheckingAccount checking = accountDataService.getCheckingAccount(customerID); + System.out.println("Checking account: " + checking); + + SavingsAccount savings = accountDataService.getSavingsAccount(customerID); + System.out.println("Savings account: " + savings); + + StockAccount stock = accountDataService.getStockAccount(customerID); + System.out.println("Stock account: " + stock); + + // Get the stock price in USD + double price = stockQuoteService.getQuote(stock.getSymbol()); + System.out.println("Stock price for " + stock.getSymbol() + ": " + price); + + // Convert to the configured currency + if (currency.equals("EURO")) { + + // Use our fancy calculator service to convert to the target currency + price = calculatorService.multiply(price, 0.70); + + System.out.println("Converted to " + currency + ": " + price); + } + + // Calculate the value of the stock account + double stockValue = price * stock.getQuantity(); + + // Calculate the total balance of all accounts and return it + double balance = checking.getBalance() + savings.getBalance() + stockValue; + + return balance; + } +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/feed/AccountFeedImpl.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/feed/AccountFeedImpl.java new file mode 100644 index 0000000000..c17e9ada20 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/account/feed/AccountFeedImpl.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.feed; + +import java.util.Collections; + +import org.apache.tuscany.sca.binding.feed.collection.Collection; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import bigbank.account.AccountService; + +import com.sun.syndication.feed.atom.Content; +import com.sun.syndication.feed.atom.Entry; +import com.sun.syndication.feed.atom.Feed; +import com.sun.syndication.feed.atom.Link; + +/** + * @version $$Rev$$ $$Date$$ + */ + +@Service(Collection.class) +public class AccountFeedImpl implements Collection { + + @Reference + protected AccountService accountService; + + @SuppressWarnings("unchecked") + public com.sun.syndication.feed.atom.Feed getFeed() { + + // Create a new Feed + Feed feed = new Feed(); + feed.setId("accounts"); + feed.setTitle("Account Report Feed"); + Content subtitle = new Content(); + subtitle.setValue("This is a sample feed"); + feed.setSubtitle(subtitle); + Link link = new Link(); + link.setHref("http://incubator.apache.org/tuscany"); + feed.getAlternateLinks().add(link); + + // Add the Account report entry + Entry entry = get("1234"); + feed.getEntries().add(entry); + + return feed; + } + + public void delete(String id) { + } + + public Entry get(String id) { + + // Get the account report for the specified customer ID + double balance = accountService.getAccountReport(id); + String value = Double.toString(balance); + + Entry entry = new Entry(); + entry.setId("account-" + id); + entry.setTitle("Account Report Entry"); + Content summary = new Content(); + summary.setType(Content.HTML); + summary.setValue("This is your account report: <b>" + value + "</b>"); + entry.setSummary(summary); + Content content = new Content(); + content.setValue(value); + entry.setContents(Collections.singletonList(content)); + return entry; + } + + public Entry post(Entry entry) { + return null; + } + + public Entry put(String id, Entry entry) { + return null; + } + +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/AccountDataService.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/AccountDataService.java new file mode 100644 index 0000000000..02f4d0e7b6 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/AccountDataService.java @@ -0,0 +1,33 @@ +/* + * 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.accountdata; + +/** + * @version $$Rev$$ $$Date$$ + */ + +public interface AccountDataService { + + public CheckingAccount getCheckingAccount(String customerID); + + public SavingsAccount getSavingsAccount(String customerID); + + public StockAccount getStockAccount(String customerID); + +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/AccountDataServiceImpl.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/AccountDataServiceImpl.java new file mode 100644 index 0000000000..2e1290aa5f --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/AccountDataServiceImpl.java @@ -0,0 +1,57 @@ +/* + * 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.accountdata; + +import org.osoa.sca.annotations.Service; + +/** + * @version $$Rev$$ $$Date$$ + */ + +@Service(AccountDataService.class) +public class AccountDataServiceImpl implements AccountDataService { + + public CheckingAccount getCheckingAccount(String customerID) { + + CheckingAccount checkingAccount = new CheckingAccount(); + checkingAccount.setAccountNumber("CHA_" + customerID); + checkingAccount.setBalance(500.0f); + + return checkingAccount; + } + + public SavingsAccount getSavingsAccount(String customerID) { + + SavingsAccount savingsAccount = new SavingsAccount(); + savingsAccount.setAccountNumber("SAA_" + customerID); + savingsAccount.setBalance(1500.0f); + + return savingsAccount; + } + + public StockAccount getStockAccount(String customerID) { + + StockAccount stockAccount = new StockAccount(); + stockAccount.setAccountNumber("STA_" + customerID); + stockAccount.setSymbol("IBM"); + stockAccount.setQuantity(100); + + return stockAccount; + } +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/CheckingAccount.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/CheckingAccount.java new file mode 100644 index 0000000000..c53d8b4576 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/CheckingAccount.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package bigbank.accountdata; + +/** + * @version $$Rev$$ $$Date: 2007-04-09 12:03:34 -0700 (Mon, 09 Apr + * 2007) $$ + */ + +public class CheckingAccount { + private String accountNumber; + private double balance; + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String n) { + this.accountNumber = n; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double b) { + this.balance = b; + } + + @Override + public String toString() { + return accountNumber + ", balance:" + balance; + } +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/SavingsAccount.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/SavingsAccount.java new file mode 100644 index 0000000000..f4c7442f30 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/SavingsAccount.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package bigbank.accountdata; + +/** + * @version $$Rev$$ $$Date: 2007-04-09 12:03:34 -0700 (Mon, 09 Apr + * 2007) $$ + */ + +public class SavingsAccount { + private String accountNumber; + private double balance; + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String n) { + this.accountNumber = n; + } + + public double getBalance() { + return balance; + } + + public void setBalance(double b) { + this.balance = b; + } + + @Override + public String toString() { + return accountNumber + ", balance:" + balance; + } +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/StockAccount.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/StockAccount.java new file mode 100644 index 0000000000..c28e0b59a7 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/accountdata/StockAccount.java @@ -0,0 +1,59 @@ +/* + * 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.accountdata; + +/** + * @version $$Rev$$ $$Date: 2007-04-09 12:03:34 -0700 (Mon, 09 Apr + * 2007) $$ + */ + +public class StockAccount { + private String accountNumber; + private String symbol; + private int quantity; + + public String getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(String n) { + this.accountNumber = n; + } + + public double getQuantity() { + return quantity; + } + + public void setQuantity(int a) { + this.quantity = a; + } + + public String getSymbol() { + return symbol; + } + + public void setSymbol(String s) { + this.symbol = s; + } + + @Override + public String toString() { + return accountNumber + ", symbol:" + symbol + ", quantity:" + quantity; + } +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/client/BigBankClient.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/client/BigBankClient.java new file mode 100644 index 0000000000..a7fa5ecc22 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/client/BigBankClient.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package bigbank.client; + +import org.apache.tuscany.sca.host.embedded.SCADomain; + +import bigbank.account.AccountService; + +/** + * This client program shows how to create an SCA runtime, start it, + * and locate and invoke a SCA component + */ +public class BigBankClient { + + public static void main(String[] args) throws Exception { + + SCADomain domain = SCADomain.newInstance("BigBank.composite"); + + AccountService accountService = domain.getService(AccountService.class, "AccountServiceComponent"); + + String customerID = "1234"; + + System.out.println("Calling account service for customer: " + customerID); + System.out.println(); + double balance = accountService.getAccountReport(customerID); + + System.out.println(); + System.out.println("Balance: " + balance); + + domain.close(); + } + +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/demo/BigBankServer.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/demo/BigBankServer.java new file mode 100644 index 0000000000..89b6aeadc4 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/bigbank/demo/BigBankServer.java @@ -0,0 +1,51 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package bigbank.demo; + +import org.apache.tuscany.sca.host.embedded.SCADomain; + +/** + * This client program shows how to create an SCA runtime, start it, + * and locate and invoke a SCA component + */ +public class BigBankServer { + + public static void main(String[] args) throws Exception { + long timeout = -1L; + if (args.length > 0) { + timeout = Long.parseLong(args[0]); + } + System.out.println("Starting the Sample SCA BigBank server..."); + + SCADomain domain = SCADomain.newInstance("BigBank.composite"); + + if (timeout < 0) { + System.out.println("Press Enter to Exit..."); + System.in.read(); + } else { + Thread.sleep(timeout); + } + + domain.close(); + + System.out.println("Bye"); + } + +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/calculator/CalculatorService.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/calculator/CalculatorService.java new file mode 100644 index 0000000000..c89043276e --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/calculator/CalculatorService.java @@ -0,0 +1,34 @@ +/* + * 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 calculator; + +/** + * The Calculator service interface. + */ +public interface CalculatorService { + + double add(double n1, double n2); + + double subtract(double n1, double n2); + + double multiply(double n1, double n2); + + double divide(double n1, double n2); + +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/java/stockquote/StockQuoteService.java b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/stockquote/StockQuoteService.java new file mode 100644 index 0000000000..749b8ee2f4 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/java/stockquote/StockQuoteService.java @@ -0,0 +1,29 @@ +/* + * 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 stockquote; + +import org.osoa.sca.annotations.Remotable; + +/** + * This is the business interface of the StockQuote service. + */ +@Remotable +public interface StockQuoteService { + public double getQuote(String symbol); +} diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/AccountData.composite b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/AccountData.composite new file mode 100644 index 0000000000..c254ca95a8 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/AccountData.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://bigbank" + xmlns:bb="http://bigbank" + name="AccountData"> + + <service name="AccountDataService" promote="AccountDataServiceComponent"> + <interface.java interface="bigbank.accountdata.AccountDataService"/> + </service> + + <component name="AccountDataServiceComponent"> + <implementation.java class="bigbank.accountdata.AccountDataServiceImpl"/> + </component> + +</composite> diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/BigBank.composite b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/BigBank.composite new file mode 100644 index 0000000000..9caaf43787 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/BigBank.composite @@ -0,0 +1,66 @@ +<?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:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" + targetNamespace="http://bigbank" + xmlns:bb="http://bigbank" + name="BigBank"> + + <component name="AccountServiceComponent"> + <implementation.java class="bigbank.account.AccountServiceImpl"/> + + <service name="AccountService"> + <tuscany:binding.jsonrpc uri="/AccountJSONService"/> + <binding.ws wsdlElement="http://bigbank#wsdl.port(AccountService/AccountServiceSoap)"/> + <binding.sca/> + </service> + + <reference name="accountDataService" target="AccountDataServiceComponent"/> + <reference name="calculatorService"> + <tuscany:binding.rmi host="localhost" port="8099" serviceName="CalculatorRMIService"/> + </reference> + <reference name="stockQuoteService"> + <binding.ws uri="http://localhost:8081/services/StockQuoteWebService"/> + </reference> + + <property name="currency">EURO</property> + </component> + + <component name="AccountFeedComponent"> + <implementation.java class="bigbank.account.feed.AccountFeedImpl"/> + <service name="Collection"> + <tuscany:binding.rss uri="/rss"/> + <tuscany:binding.atom uri="/atom"/> + </service> + <reference name="accountService" target="AccountServiceComponent"/> + </component> + + <component name="AccountDataServiceComponent"> + <implementation.composite name="bb:AccountData"/> + </component> + + <component name="WebResourceComponent"> + <tuscany:implementation.resource location="web"/> + <service name="Resource"> + <tuscany:binding.http uri="/"/> + </service> + </component> + +</composite> diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/web/AccountJSON.html b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/web/AccountJSON.html new file mode 100644 index 0000000000..1609bf4b43 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/web/AccountJSON.html @@ -0,0 +1,92 @@ +<html> +<!-- + * 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. + --> +<head> +<title>Tuscany JSON-RPC BigBank Client</TITLE> + +<script type="text/javascript"> + var djConfig = {isDebug: true,debugContainerId: "dojoDebug" }; + djConfig.usePlainJson=true ; + //djConfig.debugAtAllCosts = true; + </script> +<script type="text/javascript" src="dojo/dojo/dojo.js"> + </script> +<script type="text/javascript" src="dojo/dijit/dijit.js"> + </script> + +<script type="text/javascript"> + dojo.require("dijit.form.Button"); + dojo.require("dojo.rpc.JsonService"); + </script> + +<link rel="stylesheet" type="text/css" href="style.css" /> +</head> + +<body> + +<table> + <tr> + <th colspan="2">Tuscany JSON-RPC BigBank Client</th> + </tr> + <tr> + <td colspan="2"> + <p>This example uses the <a href="http://dojotoolkit.org/">Dojo + Toolkit</a> to create a JavaScript object <code>accountService</code> for + the service at <b>http://localhost:8080/AccountJSONService</b> using <a + href="http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book9">Dojo's + RPC classes</a> and providing them with <a href="AccountJSONService?smd">http://localhost:8080/AccountJSONService?smd</a> + for <a href="http://dojo.jot.com/SMD">Simple Method Description + (SMD)</a> input.</p> + <p>It then creates a Dojo button that will envoke the <code>getAccountReport</code> + method of the <code>accountService</code> object.</p> + </tr> + <tr> + <td>Request</td> + <td>Response</td> + </tr> + <tr> + <td><br> + <button id="myaccount" dojoType="dijit.form.Button" + onClick='accountService.getAccountReport("Dojo1234").addCallback(contentCallBack);'>getAccountReport("Dojo1234")</button> + <br> + </td> + <td> + <div id="ReturnedContent">None Yet.</div> + </td> + </tr> + <tr> + <td colspan="2"> + <div id="dojoDebug">Dojo Debug:</div> + </td> + </tr> +</table> + +<script type="text/javascript"> + + function contentCallBack(result) { + var handlerNode = document.getElementById("ReturnedContent"); + handlerNode.innerHTML = "<p>" + result + "</p>" ; + } + + var accountService = new dojo.rpc.JsonService("AccountJSONService?smd"); + + </script> + +</body> +</html> diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/web/style.css b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/web/style.css new file mode 100644 index 0000000000..1071583264 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/web/style.css @@ -0,0 +1,22 @@ +/* + * 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. + */ +* { font-family: arial; } + +table, th, td { border: 2px solid blue; border-collapse: collapse; } +th { color: white; background-color: blue; } diff --git a/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/wsdl/AccountService.wsdl b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/wsdl/AccountService.wsdl new file mode 100644 index 0000000000..ac4d987a57 --- /dev/null +++ b/branches/sca-java-1.0/demos/bigbank-account/src/main/resources/wsdl/AccountService.wsdl @@ -0,0 +1,91 @@ +<?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:tns="http://bigbank" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://bigbank" + name="AccountService"> + + <wsdl:types> + <xsd:schema + targetNamespace="http://bigbank" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:element name="getAccountReport"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="customerID" type="xsd:string" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="getAccountReportResponse"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="balance" type="xsd:double" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + </xsd:schema> + </wsdl:types> + + <wsdl:message name="getAccountReportRequest"> + <wsdl:part element="tns:getAccountReport" + name="getAccountReportRequest" /> + </wsdl:message> + + <wsdl:message name="getAccountReportResponse"> + <wsdl:part element="tns:getAccountReportResponse" + name="getAccountReportResponse" /> + </wsdl:message> + + <wsdl:portType name="AccountService"> + <wsdl:operation name="getAccountReport"> + <wsdl:input message="tns:getAccountReportRequest" /> + <wsdl:output message="tns:getAccountReportResponse" /> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="AccountServiceSoap" type="tns:AccountService"> + <soap:binding style="document" + transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="getAccountReport"> + <soap:operation + soapAction="" /> + <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="tns:AccountServiceSoap" + name="AccountServiceSoap"> + <soap:address + location="http://localhost:8082/services/AccountWebService" /> + </wsdl:port> + </wsdl:service> +</wsdl:definitions> |