diff options
Diffstat (limited to '')
9 files changed, 354 insertions, 0 deletions
diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/pom.xml b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/pom.xml new file mode 100644 index 0000000000..f2555c2673 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/pom.xml @@ -0,0 +1,51 @@ +<?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-samples</artifactId>
+ <version>2.0-Beta1-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <name>Apache Tuscany SCA Sample SCA Scopes Contribution</name>
+ <artifactId>sample-sca-scopes-contribution</artifactId>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-node-api</artifactId>
+ <version>2.0-Beta1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-node-impl</artifactId>
+ <version>2.0-Beta1-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>2.0-Beta1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/Client.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/Client.java new file mode 100644 index 0000000000..13f6e003f8 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/Client.java @@ -0,0 +1,25 @@ +/* + * 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 sample; + +public interface Client { + + void run(); + +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/ClientImpl.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/ClientImpl.java new file mode 100644 index 0000000000..3dbeeb0649 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/ClientImpl.java @@ -0,0 +1,54 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Reference; + +public class ClientImpl implements Client { + + private static final int TIMES = 5; + + @Reference + private CompositeService compositeService; + + @Reference + private StatelessService statelessService; + + public void setCompositeService(CompositeService compositeService) { + this.compositeService = compositeService; + } + + public void setStatelessService(StatelessService statelessService) { + this.statelessService = statelessService; + } + + @Override + public void run() { + System.out.println("Calling CompositeService " + TIMES + " times..."); + for (int i = 0 ; i < TIMES; i++) { + compositeService.hello(); + } + System.out.println("Calling StatelessService " + TIMES + " times..."); + for (int i = 0 ; i < TIMES; i++) { + statelessService.hello(); + } + } + + +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/CompositeService.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/CompositeService.java new file mode 100644 index 0000000000..60384cb73c --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/CompositeService.java @@ -0,0 +1,27 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface CompositeService { + + void hello(); + +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/CompositeServiceImpl.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/CompositeServiceImpl.java new file mode 100644 index 0000000000..f4587671c0 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/CompositeServiceImpl.java @@ -0,0 +1,38 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Scope; +import org.oasisopen.sca.annotation.Service; + +@Scope("COMPOSITE") +@Service(CompositeService.class) +public class CompositeServiceImpl implements CompositeService { + + public CompositeServiceImpl() { + super(); + System.out.println("Constructing CompositeServiceImpl instance."); + } + + @Override + public void hello() { + System.out.println("Saying hello to CompositeServiceImpl instance."); + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/Launcher.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/Launcher.java new file mode 100644 index 0000000000..8d00b6ef64 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/Launcher.java @@ -0,0 +1,56 @@ +/* + * 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 sample; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +public class Launcher { + + public static void main(String[] args) { + Node node = startRuntime(); + Client client = node.getService(Client.class, "Client"); + client.run(); + stopRuntime(node); + } + + /** + * Starts a Tuscany node with the predefined contribution. + * + * @return the running node + */ + private static Node startRuntime() { + String location = ContributionLocationHelper.getContributionLocation("scopes.composite"); + Node node = NodeFactory.newInstance().createNode("scopes.composite", new Contribution("c1", location)); + node.start(); + return node; + } + + /** + * Stops a Tuscany node. + * + * @param node the node to stop + */ + private static void stopRuntime(Node node) { + node.stop(); + } + +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/StatelessService.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/StatelessService.java new file mode 100644 index 0000000000..8474bc6ff3 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/StatelessService.java @@ -0,0 +1,28 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface StatelessService { + + void hello(); + +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/StatelessServiceImpl.java b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/StatelessServiceImpl.java new file mode 100644 index 0000000000..94d6339c3d --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/java/sample/StatelessServiceImpl.java @@ -0,0 +1,37 @@ +/* + * 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 sample; + +import org.oasisopen.sca.annotation.Scope; +import org.oasisopen.sca.annotation.Service; + +@Scope("STATELESS") +@Service(StatelessService.class) +public class StatelessServiceImpl implements StatelessService { + + public StatelessServiceImpl() { + super(); + System.out.println("Constructing StatelessServiceImpl instance."); + } + + @Override + public void hello() { + System.out.println("Saying hello to StatelessServiceImpl."); + } +} diff --git a/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/resources/scopes.composite b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/resources/scopes.composite new file mode 100644 index 0000000000..14937a1f34 --- /dev/null +++ b/sca-java-2.x/branches/2.0-Beta1/samples/getting-started/sca-scopes/src/main/resources/scopes.composite @@ -0,0 +1,38 @@ +<?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://Scopes" + name="Scopes"> + + <component name="Stateless"> + <implementation.java class="sample.StatelessServiceImpl"/> + </component> + + <component name="Composite"> + <implementation.java class="sample.CompositeServiceImpl"/> + </component> + + <component name="Client"> + <implementation.java class="sample.ClientImpl"/> + <reference name="statelessService" target="Stateless"/> + <reference name="compositeService" target="Composite"/> + </component> + +</composite> |