diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src')
8 files changed, 303 insertions, 0 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/Client.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/ClientImpl.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/CompositeService.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/CompositeServiceImpl.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/Launcher.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/StatelessService.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/java/sample/StatelessServiceImpl.java b/sca-java-2.x/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/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/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/resources/scopes.composite b/sca-java-2.x/tags/2.0-Beta1-RC2/samples/getting-started/sca-scopes/src/main/resources/scopes.composite new file mode 100644 index 0000000000..14937a1f34 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta1-RC2/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> |