summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/itest/callback-composite-scope/src
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-13 01:42:27 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-11-13 01:42:27 +0000
commit3c7c4a749baafcf375f4785a7668d3a25c9063e3 (patch)
treea66b8b031c5dc6c7744f44b44b6bcd371bd0b8df /sca-java-1.x/trunk/itest/callback-composite-scope/src
parenteb03ff672236cddf65533f39b83ddd5e2984a2bb (diff)
Moving 1.x trunk
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835700 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x/trunk/itest/callback-composite-scope/src')
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/Helloworld.java34
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldCallback.java32
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegate.java32
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegateImpl.java60
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldImpl.java46
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/HelloworldDelegate.composite42
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/META-INF/sca-contribution.xml26
-rw-r--r--sca-java-1.x/trunk/itest/callback-composite-scope/src/test/java/org/apache/tuscany/sca/test/CallbackTestCase.java66
8 files changed, 338 insertions, 0 deletions
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/Helloworld.java b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/Helloworld.java
new file mode 100644
index 0000000000..a5320a6492
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/Helloworld.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 org.apache.tuscany.sca.test;
+
+import org.osoa.sca.annotations.Callback;
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Remotable
+@Callback(HelloworldCallback.class)
+public interface Helloworld {
+
+ String sayHello(String name);
+
+}
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldCallback.java b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldCallback.java
new file mode 100644
index 0000000000..c37c2f57a2
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldCallback.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 org.apache.tuscany.sca.test;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Remotable
+public interface HelloworldCallback {
+
+ String whoIs(String name);
+
+}
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegate.java b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegate.java
new file mode 100644
index 0000000000..0d56e440cd
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegate.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 org.apache.tuscany.sca.test;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Remotable
+public interface HelloworldDelegate {
+
+ String sayHello(String name);
+
+}
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegateImpl.java b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegateImpl.java
new file mode 100644
index 0000000000..aa7217eb2a
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegateImpl.java
@@ -0,0 +1,60 @@
+/*
+ * 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 org.apache.tuscany.sca.test;
+
+import org.osoa.sca.annotations.ComponentName;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * A HelloworldDelegate implementation. The service method invocation is delegated to a Helloworld service
+ * reference injected into this component.
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("COMPOSITE")
+@Service(interfaces = {HelloworldDelegate.class, HelloworldCallback.class})
+public class HelloworldDelegateImpl implements HelloworldDelegate, HelloworldCallback {
+
+ @ComponentName
+ protected String componentName;
+
+ @Reference
+ public Helloworld helloworld;
+
+ @Property
+ public String salutation;
+
+ public String sayHello(String name) {
+ System.out.println(componentName+": HelloworldDelegateImpl("+this+").sayHello: " + name);
+ return helloworld.sayHello(name);
+ }
+
+ public String whoIs(String name) {
+ System.out.println(componentName+": HelloworldDelegateImpl("+this+").whoIs: " + name);
+ if(!"world".equalsIgnoreCase(name)) {
+ return salutation;
+ } else {
+ return "";
+ }
+ }
+}
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldImpl.java b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldImpl.java
new file mode 100644
index 0000000000..8107bcf42b
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldImpl.java
@@ -0,0 +1,46 @@
+/*
+ * 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 org.apache.tuscany.sca.test;
+
+import org.osoa.sca.annotations.Callback;
+import org.osoa.sca.annotations.ComponentName;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Service(Helloworld.class)
+@Scope("COMPOSITE")
+public class HelloworldImpl implements Helloworld {
+
+ @ComponentName
+ protected String componentName;
+
+ @Callback
+ public HelloworldCallback helloworldCallback;
+
+ public String sayHello(String name) {
+ System.out.println(componentName+": HelloworldImpl("+this+").sayHello: " + name);
+ String msg = "Hello " + helloworldCallback.whoIs(name) + " " + name;
+ System.out.println("Msg: "+msg);
+ return msg;
+ }
+}
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/HelloworldDelegate.composite b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/HelloworldDelegate.composite
new file mode 100644
index 0000000000..1593c1dc23
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/HelloworldDelegate.composite
@@ -0,0 +1,42 @@
+<?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.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://callback"
+ name="HelloworldDelegate">
+
+ <component name="HelloworldXComponent">
+ <implementation.java class="org.apache.tuscany.sca.test.HelloworldImpl"/>
+ </component>
+
+ <component name="HelloworldDelegateComponent">
+ <implementation.java class="org.apache.tuscany.sca.test.HelloworldDelegateImpl"/>
+ <reference name="helloworld" target="HelloworldXComponent"/>
+ <property name="salutation">Monsieur</property>
+ </component>
+
+ <component name="HelloworldDelegateComponent2">
+ <implementation.java class="org.apache.tuscany.sca.test.HelloworldDelegateImpl"/>
+ <reference name="helloworld" target="HelloworldXComponent"/>
+ <property name="salutation">Mr.</property>
+ </component>
+</composite>
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/META-INF/sca-contribution.xml
new file mode 100644
index 0000000000..65b9ca501f
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/main/resources/META-INF/sca-contribution.xml
@@ -0,0 +1,26 @@
+<?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.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://callback"
+ xmlns:t="http://callback">
+ <deployable composite="t:HelloworldDelegate" />
+</contribution>
diff --git a/sca-java-1.x/trunk/itest/callback-composite-scope/src/test/java/org/apache/tuscany/sca/test/CallbackTestCase.java b/sca-java-1.x/trunk/itest/callback-composite-scope/src/test/java/org/apache/tuscany/sca/test/CallbackTestCase.java
new file mode 100644
index 0000000000..bd967099dc
--- /dev/null
+++ b/sca-java-1.x/trunk/itest/callback-composite-scope/src/test/java/org/apache/tuscany/sca/test/CallbackTestCase.java
@@ -0,0 +1,66 @@
+/*
+ * 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 org.apache.tuscany.sca.test;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CallbackTestCase {
+
+ private static SCADomain domain;
+ private HelloworldDelegate client;
+ private HelloworldDelegate client2;
+ private HelloworldCallback callback;
+ private HelloworldCallback callback2;
+
+ @Test
+ @Ignore("TUSCANY-2823")
+ public void testCallbacks() {
+ String name = "John";
+ Assert.assertEquals("Hello "+callback.whoIs(name) + " " + name, client.sayHello(name));
+ Assert.assertEquals("Hello "+callback2.whoIs(name) + " " + name, client2.sayHello(name));
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ if( domain == null ) {
+ domain = SCADomain.newInstance("HelloworldDelegate.composite");
+ }
+
+ client = domain.getService(HelloworldDelegate.class, "HelloworldDelegateComponent/HelloworldDelegate");
+ callback = domain.getService(HelloworldCallback.class, "HelloworldDelegateComponent/HelloworldCallback");
+ client2 = domain.getService(HelloworldDelegate.class, "HelloworldDelegateComponent2/HelloworldDelegate");
+ callback2 = domain.getService(HelloworldCallback.class, "HelloworldDelegateComponent2/HelloworldCallback");
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ domain.close();
+ }
+
+
+}