summaryrefslogtreecommitdiffstats
path: root/java/sca/samples/simple-bigbank-spring/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/account/AccountServiceImpl.java3
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/server/BigBankServer.java99
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/resources/BigBank.composite9
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/resources/CheckingsAccount.composite33
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/resources/StockAccount.composite2
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/Account-spring-context.xml28
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/CheckingsAccount/META-INF/spring/CheckingsAccount-context.xml33
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/StockAccount/META-INF/MANIFEST.MF4
-rw-r--r--java/sca/samples/simple-bigbank-spring/src/test/java/bigbank/BigBankTestCase.java27
9 files changed, 130 insertions, 108 deletions
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/account/AccountServiceImpl.java b/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/account/AccountServiceImpl.java
index b294a11668..ce41006fa6 100644
--- a/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/account/AccountServiceImpl.java
+++ b/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/account/AccountServiceImpl.java
@@ -21,6 +21,8 @@ package bigbank.account;
import java.util.ArrayList;
import java.util.List;
+import org.osoa.sca.annotations.Service;
+
import bigbank.account.checking.CheckingAccountDetails;
import bigbank.account.checking.CheckingAccountService;
import bigbank.account.savings.SavingsAccountDetails;
@@ -33,6 +35,7 @@ import bigbank.calculator.CalculatorService;
/**
* Account service implementation
*/
+@Service(AccountService.class)
public class AccountServiceImpl implements AccountService {
private SavingsAccountService savingsAccountService;
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/server/BigBankServer.java b/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/server/BigBankServer.java
new file mode 100644
index 0000000000..281d829275
--- /dev/null
+++ b/java/sca/samples/simple-bigbank-spring/src/main/java/bigbank/server/BigBankServer.java
@@ -0,0 +1,99 @@
+/*
+ * 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.server;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.contribution.Contribution;
+import org.apache.tuscany.sca.contribution.service.ContributionService;
+import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
+
+/**
+ * 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 Spring SCA BigBank server...");
+ ClassLoader cl = BigBankServer.class.getClassLoader();
+ EmbeddedSCADomain domain = new EmbeddedSCADomain(cl, "http://localhost");
+
+ //Start the domain
+ domain.start();
+
+ // Contribute the SCA contribution
+ ContributionService contributionService = domain.getContributionService();
+
+ URL bigbankContribUrl = getContributionURL(BigBankServer.class);
+ Contribution bigbankContribution = contributionService.contribute("http://bigbank", bigbankContribUrl, false);
+ for (Composite deployable : bigbankContribution.getDeployables()) {
+ domain.getDomainComposite().getIncludes().add(deployable);
+ domain.buildComposite(deployable);
+ }
+
+ //Start Components from composite
+ for (Composite deployable : bigbankContribution.getDeployables()) {
+ domain.getCompositeActivator().activate(deployable);
+ domain.getCompositeActivator().start(deployable);
+ }
+
+ if (timeout < 0) {
+ System.out.println("Press Enter to Exit...");
+ System.in.read();
+ } else {
+ Thread.sleep(timeout);
+ }
+
+ contributionService.remove("http://bigbank");
+
+ // Stop Components from composite
+ for (Composite deployable : bigbankContribution.getDeployables()) {
+ domain.getCompositeActivator().stop(deployable);
+ domain.getCompositeActivator().deactivate(deployable);
+ }
+
+ domain.stop();
+
+ domain.close();
+
+ System.out.println("Bye");
+ }
+
+ private static URL getContributionURL(Class<?> cls) throws MalformedURLException {
+ String flag = "/" + cls.getName().replace('.', '/') + ".class";
+ URL url = cls.getResource(flag);
+ String root = url.toExternalForm();
+ root = root.substring(0, root.length() - flag.length() + 1);
+ if (root.startsWith("jar:") && root.endsWith("!/")) {
+ root = root.substring(4, root.length() - 2);
+ }
+ url = new URL(root);
+ return url;
+ }
+
+}
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/resources/BigBank.composite b/java/sca/samples/simple-bigbank-spring/src/main/resources/BigBank.composite
index dc05d9fd1d..a7624235d8 100644
--- a/java/sca/samples/simple-bigbank-spring/src/main/resources/BigBank.composite
+++ b/java/sca/samples/simple-bigbank-spring/src/main/resources/BigBank.composite
@@ -30,10 +30,13 @@
<component name="AccountServiceComponent">
<implementation.spring location="spring-context/Account-spring-context.xml"/>
+
+ <service name="AccountService">
+ <interface.java interface="bigbank.account.AccountService"/>
+ </service>
<reference name="savingsAccountService" target="SavingsAccountServiceComponent"/>
- <!--reference name="checkingAccountService" target="CheckingAccountServiceComponent"/-->
<reference name="checkingAccountService">
<interface.java interface="bigbank.account.checking.CheckingAccountService"/>
<binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
@@ -60,10 +63,6 @@
<implementation.composite name="bbsv:SavingsAccountDept"/>
</component>
- <!--component name="CheckingAccountServiceComponent">
- <implementation.composite name="bbck:CheckingsAccountDept"/>
- </component-->
-
<component name="StockAccountServiceComponent">
<implementation.composite name="bbst:StockAccountDept"/>
</component>
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/resources/CheckingsAccount.composite b/java/sca/samples/simple-bigbank-spring/src/main/resources/CheckingsAccount.composite
deleted file mode 100644
index e0be7584e3..0000000000
--- a/java/sca/samples/simple-bigbank-spring/src/main/resources/CheckingsAccount.composite
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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/checkings"
- xmlns:bbck="http://bigbank/checkings"
- xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:bba="http://bigbankAccount"
- name="CheckingsAccountDept">
-
- <service name="CheckingAccountService" promote="CheckingAccountServiceComponent"/>
-
- <component name="CheckingAccountServiceComponent">
- <implementation.spring location="spring-context/CheckingsAccount/META-INF/spring/CheckingsAccount-context.xml"/>
- </component>
-
-</composite>
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/resources/StockAccount.composite b/java/sca/samples/simple-bigbank-spring/src/main/resources/StockAccount.composite
index caa849e0fd..97dff499ba 100644
--- a/java/sca/samples/simple-bigbank-spring/src/main/resources/StockAccount.composite
+++ b/java/sca/samples/simple-bigbank-spring/src/main/resources/StockAccount.composite
@@ -26,7 +26,7 @@
<service name="StockAccountService" promote="StockAccountServiceComponent"/>
<component name="StockAccountServiceComponent">
- <implementation.spring location="spring-context/StockAccount/META-INF/spring/StockAccount-context.xml"/>
+ <implementation.spring location="spring-context/StockAccount"/>
</component>
</composite>
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/Account-spring-context.xml b/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/Account-spring-context.xml
index d59d03f611..071092138d 100644
--- a/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/Account-spring-context.xml
+++ b/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/Account-spring-context.xml
@@ -24,26 +24,30 @@
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/sca http://www.springframework.org/schema/sca/spring-sca.xsd">
- <sca:service name="AccountService"
- type="bigbank.account.AccountService" target="AccountServiceBean"/>
-
- <bean id="AccountServiceBean" class="bigbank.account.AccountServiceImpl">
- <property name="savingsAccountService" ref="savingsAccountService"/>
- <property name="checkingAccountService" ref="checkingAccountService"/>
- <property name="stockAccountService" ref="stockAccountService"/>
+ <!-- <sca:service name="AccountService"
+ type="bigbank.account.AccountService" target="AccountServiceBean"/> -->
+
+ <bean id="AccountServiceBean" class="bigbank.account.AccountServiceImpl">
<property name="calculatorService" ref="calculatorService"/>
- <property name="stockQuoteService" ref="stockQuoteService"/>
+ <property name="stockQuoteService" ref="stockQuoteService"/>
+ <property name="checkingAccountService" ref="checkingAccountService"/>
+
+ <!-- Here are some implicit references & properties - a property with a ref not satisifed
+ * within the Spring application context.
+ -->
+ <property name="savingsAccountService" ref="savingsAccountService"/>
+ <property name="stockAccountService" ref="stockAccountService"/>
<property name="currency" value="EURO"/>
</bean>
-
- <sca:reference name="savingsAccountService" type="bigbank.account.savings.SavingsAccountService"/>
<sca:reference name="checkingAccountService" type="bigbank.account.checking.CheckingAccountService"/>
- <sca:reference name="stockAccountService" type="bigbank.account.stock.StockAccountService"/>
-
<sca:reference name="calculatorService" type="bigbank.calculator.CalculatorService"/>
<sca:reference name="stockQuoteService" type="bigbank.stockquote.StockQuoteService"/>
+
+ <!-- <sca:reference name="savingsAccountServiceRef" type="bigbank.account.savings.SavingsAccountService"/>-->
+
+ <!-- <sca:reference name="stockAccountServiceRef" type="bigbank.account.stock.StockAccountService"/>-->
</beans>
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/CheckingsAccount/META-INF/spring/CheckingsAccount-context.xml b/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/CheckingsAccount/META-INF/spring/CheckingsAccount-context.xml
deleted file mode 100644
index 7c1780b448..0000000000
--- a/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/CheckingsAccount/META-INF/spring/CheckingsAccount-context.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:sca="http://www.springframework.org/schema/sca"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/sca http://www.springframework.org/schema/sca/spring-sca.xsd">
-
- <sca:service name="CheckingAccountService"
- type="bigbank.account.checking.CheckingAccountService" target="CheckingAccountServiceBean"/>
-
- <bean id="CheckingAccountServiceBean" class="bigbank.account.checking.CheckingAccountServiceImpl">
- </bean>
-
-</beans> \ No newline at end of file
diff --git a/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/StockAccount/META-INF/MANIFEST.MF b/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/StockAccount/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..32fa070ffb
--- /dev/null
+++ b/java/sca/samples/simple-bigbank-spring/src/main/resources/spring-context/StockAccount/META-INF/MANIFEST.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Spring-Context: META-INF/spring/StockAccount-context.xml
+
+
diff --git a/java/sca/samples/simple-bigbank-spring/src/test/java/bigbank/BigBankTestCase.java b/java/sca/samples/simple-bigbank-spring/src/test/java/bigbank/BigBankTestCase.java
index f0a7b06813..d82e383e46 100644
--- a/java/sca/samples/simple-bigbank-spring/src/test/java/bigbank/BigBankTestCase.java
+++ b/java/sca/samples/simple-bigbank-spring/src/test/java/bigbank/BigBankTestCase.java
@@ -20,9 +20,7 @@ package bigbank;
import junit.framework.TestCase;
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-
-import bigbank.account.AccountService;
+import bigbank.server.BigBankServer;
/**
* Tests out the big bank service
@@ -30,26 +28,7 @@ import bigbank.account.AccountService;
*/
public class BigBankTestCase extends TestCase {
- private SCADomain scaDomain;
- AccountService accountService;
-
- @Override
- protected void setUp() throws Exception {
- scaDomain = SCADomain.newInstance("BigBank.composite");
- accountService = scaDomain.getService(AccountService.class, "AccountServiceComponent");
- }
-
- @Override
- protected void tearDown() throws Exception {
- scaDomain.close();
- }
-
- public void test() throws Exception {
-// try {
-// System.out.println("Account summary: " + accountService.getAccountReport("Customer_01") );
-// }
-// catch (Exception e) {
-//
-// }
+ public void testServer() throws Exception {
+ BigBankServer.main(new String[] {"1000"});
}
}