diff options
Diffstat (limited to '')
8 files changed, 338 insertions, 0 deletions
diff --git a/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/Helloworld.java b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/Helloworld.java new file mode 100644 index 0000000000..a5320a6492 --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldCallback.java b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldCallback.java new file mode 100644 index 0000000000..c37c2f57a2 --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegate.java b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegate.java new file mode 100644 index 0000000000..0d56e440cd --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegateImpl.java b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldDelegateImpl.java new file mode 100644 index 0000000000..aa7217eb2a --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldImpl.java b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/java/org/apache/tuscany/sca/test/HelloworldImpl.java new file mode 100644 index 0000000000..8107bcf42b --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/main/resources/HelloworldDelegate.composite b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/resources/HelloworldDelegate.composite new file mode 100644 index 0000000000..1593c1dc23 --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/main/resources/META-INF/sca-contribution.xml b/tags/java/sca/1.5/itest/callback-composite-scope/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..65b9ca501f --- /dev/null +++ b/tags/java/sca/1.5/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/tags/java/sca/1.5/itest/callback-composite-scope/src/test/java/org/apache/tuscany/sca/test/CallbackTestCase.java b/tags/java/sca/1.5/itest/callback-composite-scope/src/test/java/org/apache/tuscany/sca/test/CallbackTestCase.java new file mode 100644 index 0000000000..bd967099dc --- /dev/null +++ b/tags/java/sca/1.5/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(); + } + + +} |