summaryrefslogtreecommitdiffstats
path: root/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java')
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/AService.java29
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/BService.java40
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/CService.java40
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/DService.java43
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/FService.java43
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/GService.java35
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/HService.java36
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/IService.java48
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java33
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java33
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java41
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java33
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java33
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java41
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/AServiceImpl.java32
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/BServiceImpl.java112
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/CServiceImpl.java114
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/DServiceImpl.java116
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/FServiceImpl.java116
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/GServiceImpl.java75
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/HServiceImpl.java86
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/IServiceImpl.java135
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java78
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java80
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java83
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java81
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java85
-rw-r--r--tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java83
28 files changed, 1804 insertions, 0 deletions
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/AService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/AService.java
new file mode 100644
index 0000000000..b7cf3fba71
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/AService.java
@@ -0,0 +1,29 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+
+/**
+ * Simple Service
+ */
+public interface AService {
+
+ public String getName();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/BService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/BService.java
new file mode 100644
index 0000000000..7da9d29424
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/BService.java
@@ -0,0 +1,40 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+/**
+ * Simple Service
+ */
+public interface BService {
+
+ public String getName();
+
+ public boolean isInitReady();
+
+ public String getCurrentState();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/CService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/CService.java
new file mode 100644
index 0000000000..208c6a78b0
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/CService.java
@@ -0,0 +1,40 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+/**
+ * Simple Service
+ */
+public interface CService {
+
+ public String getName();
+
+ public boolean isInitReady();
+
+ public String getCurrentState();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/DService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/DService.java
new file mode 100644
index 0000000000..d4cedcc979
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/DService.java
@@ -0,0 +1,43 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface DService {
+
+ public String getName();
+
+ public boolean isInitReady();
+
+ public String getCurrentState();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/FService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/FService.java
new file mode 100644
index 0000000000..7844ba7b62
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/FService.java
@@ -0,0 +1,43 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface FService {
+
+ public String getName();
+
+ public boolean isInitReady();
+
+ public String getCurrentState();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/GService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/GService.java
new file mode 100644
index 0000000000..7a047414dc
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/GService.java
@@ -0,0 +1,35 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface GService {
+
+ public String getName();
+
+ public int getInitCalledCounter();
+
+ public int getDestroyCalledCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/HService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/HService.java
new file mode 100644
index 0000000000..555cdd5be0
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/HService.java
@@ -0,0 +1,36 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface HService {
+
+ public String getName();
+
+ public String test();
+
+ public String testCounters(int n);
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/IService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/IService.java
new file mode 100644
index 0000000000..79e20a3879
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/IService.java
@@ -0,0 +1,48 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Conversational;
+import org.osoa.sca.annotations.EndsConversation;
+
+/**
+ * Simple Service
+ */
+@Conversational
+public interface IService {
+
+ public String getName();
+
+ public boolean isInitReady();
+
+ public String getCurrentState();
+
+ public String getConversationId();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+ @EndsConversation
+ public void endConversation();
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java
new file mode 100644
index 0000000000..95813f0e32
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java
@@ -0,0 +1,33 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface JService {
+
+ public String getName();
+
+ public String getFailedReason();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java
new file mode 100644
index 0000000000..b4c95965ff
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java
@@ -0,0 +1,33 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface KService {
+
+ public String getName();
+
+ public String callL1();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java
new file mode 100644
index 0000000000..5c0fc12fa3
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java
@@ -0,0 +1,41 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface LService {
+
+ public String getName();
+
+ public String getCurrentState();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java
new file mode 100644
index 0000000000..ab6a3f946a
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java
@@ -0,0 +1,33 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface MService {
+
+ public String getName();
+
+ public String getFailedReason();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java
new file mode 100644
index 0000000000..c544bf6e02
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java
@@ -0,0 +1,33 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface NService {
+
+ public String getName();
+
+ public String callO1(int nthTime);
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java
new file mode 100644
index 0000000000..0104030f2e
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java
@@ -0,0 +1,41 @@
+/*
+ * 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.vtest.javaapi.annotations.scope;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service
+ */
+@Remotable
+public interface OService {
+
+ public String getName();
+
+ public String getCurrentState();
+
+ public String setCurrentState(String currentState);
+
+ public int getDestroyCalledCounter();
+
+ public int getInitCalledCounter();
+
+ public int getInstanceCounter();
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/AServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/AServiceImpl.java
new file mode 100644
index 0000000000..9c17b06b16
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/AServiceImpl.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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.osoa.sca.annotations.Service;
+
+@Service(AService.class)
+public class AServiceImpl implements AService {
+
+ public String getName() {
+ return "AService";
+ }
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/BServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/BServiceImpl.java
new file mode 100644
index 0000000000..2a8bd80e9a
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/BServiceImpl.java
@@ -0,0 +1,112 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.BService;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Destroy;
+
+@Service(BService.class)
+public class BServiceImpl implements BService {
+
+ private static int instanceCounter = 0;
+
+ private static int initCalledCounter = 0;
+
+ private static int destroyCalledCounter = 0;
+
+ public AService a1;
+
+ public String p1;
+
+ private int currentInstanceId = 0;
+
+ public String currentState = null;
+
+ private boolean isInitReady = false;
+
+ public BServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ isInitReady = false;
+ }
+
+ @Reference
+ public void setA1(AService a1) {
+ this.a1 = a1;
+ }
+
+ @Property
+ public void setP1(String p1) {
+ this.p1 = p1;
+ }
+
+ @Init
+ public void initBService() throws Exception {
+ initCalledCounter++;
+ if (p1.equals("p1") && a1.getName().equals("AService"))
+ isInitReady = true;
+ }
+
+ @Destroy
+ public void destroyBService() {
+ destroyCalledCounter++;
+ }
+
+ public String getName() {
+ return "BService" + currentInstanceId;
+ }
+
+ public AService getA1() {
+ return a1;
+ }
+
+ public String getP1() {
+ return p1;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = currentState;
+ return this.currentState;
+ }
+
+ public boolean isInitReady() {
+ return isInitReady;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/CServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/CServiceImpl.java
new file mode 100644
index 0000000000..c99f5f5e74
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/CServiceImpl.java
@@ -0,0 +1,114 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.CService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(CService.class)
+@Scope("STATELESS")
+public class CServiceImpl implements CService {
+
+ public static int instanceCounter = 0;
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ public AService a1;
+
+ public String p1;
+
+ public int currentInstanceId = 0;
+
+ public String currentState = null;
+
+ public boolean isInitReady = false;
+
+ public CServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ isInitReady = false;
+ }
+
+ @Reference
+ public void setA1(AService a1) {
+ this.a1 = a1;
+ }
+
+ @Property
+ public void setP1(String p1) {
+ this.p1 = p1;
+ }
+
+ @Init
+ public void initCService() throws Exception {
+ initCalledCounter++;
+ if (p1.equals("p1") && a1.getName().equals("AService"))
+ isInitReady = true;
+ }
+
+ @Destroy
+ public void destroyCService() {
+ destroyCalledCounter++;
+ }
+
+ public String getName() {
+ return "CService" + currentInstanceId;
+ }
+
+ public AService getA1() {
+ return a1;
+ }
+
+ public String getP1() {
+ return p1;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = currentState;
+ return this.currentState;
+ }
+
+ public boolean isInitReady() {
+ return isInitReady;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/DServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/DServiceImpl.java
new file mode 100644
index 0000000000..cc41994106
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/DServiceImpl.java
@@ -0,0 +1,116 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.DService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(DService.class)
+@Scope("REQUEST")
+public class DServiceImpl implements DService {
+
+ public static int instanceCounter = 0;
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ public AService a1;
+
+ public String p1;
+
+ public int currentInstanceId = 0;
+
+ public String currentState = null;
+
+ public boolean isInitReady = false;
+
+ public DServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ isInitReady = false;
+ }
+
+ @Reference
+ public void setA1(AService a1) {
+ this.a1 = a1;
+ }
+
+ @Property
+ public void setP1(String p1) {
+ this.p1 = p1;
+ }
+
+ @Init
+ public void initDService() throws Exception {
+ initCalledCounter++;
+ if (p1.equals("p1") && a1.getName().equals("AService"))
+ isInitReady = true;
+ System.out.println("DService" + currentInstanceId + "->initDService");
+ }
+
+ @Destroy
+ public void destroyDService() {
+ destroyCalledCounter++;
+ System.out.println("DService" + currentInstanceId + "->destroyDService");
+ }
+
+ public String getName() {
+ return "DService" + currentInstanceId;
+ }
+
+ public AService getA1() {
+ return a1;
+ }
+
+ public String getP1() {
+ return p1;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = "DService" + currentInstanceId + "-" + currentState;
+ return this.currentState;
+ }
+
+ public boolean isInitReady() {
+ return isInitReady;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/FServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/FServiceImpl.java
new file mode 100644
index 0000000000..4fb7386484
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/FServiceImpl.java
@@ -0,0 +1,116 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.FService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(FService.class)
+@Scope("COMPOSITE")
+public class FServiceImpl implements FService {
+
+ public static int instanceCounter = 0;
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ public AService a1;
+
+ public String p1;
+
+ public int currentInstanceId = 0;
+
+ public String currentState = null;
+
+ public boolean isInitReady = false;
+
+ public FServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ isInitReady = false;
+ }
+
+ @Reference
+ public void setA1(AService a1) {
+ this.a1 = a1;
+ }
+
+ @Property
+ public void setP1(String p1) {
+ this.p1 = p1;
+ }
+
+ @Init
+ public void initFService() throws Exception {
+ initCalledCounter++;
+ if (p1.equals("p1") && a1.getName().equals("AService"))
+ isInitReady = true;
+ System.out.println("FService" + currentInstanceId + "->initFService");
+ }
+
+ @Destroy
+ public void destroyFService() {
+ destroyCalledCounter++;
+ System.out.println("FService" + currentInstanceId + "->destroyFService");
+ }
+
+ public String getName() {
+ return "FService" + currentInstanceId;
+ }
+
+ public AService getA1() {
+ return a1;
+ }
+
+ public String getP1() {
+ return p1;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = "FService" + currentInstanceId + "-" + currentState;
+ return this.currentState;
+ }
+
+ public boolean isInitReady() {
+ return isInitReady;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/GServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/GServiceImpl.java
new file mode 100644
index 0000000000..994469cb3a
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/GServiceImpl.java
@@ -0,0 +1,75 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.GService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.EagerInit;
+
+@Scope("COMPOSITE")
+@EagerInit
+public class GServiceImpl implements GService {
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ public AService a1;
+
+ public String p1;
+
+ @Init
+ public void initGService() throws Exception {
+ initCalledCounter++;
+ System.out.println("GService->initGService");
+ }
+
+ @Destroy
+ public void destroyGService() {
+ destroyCalledCounter++;
+ System.out.println("GService->destroyGService");
+ }
+
+ @Reference
+ public void setA1(AService a1) {
+ this.a1 = a1;
+ }
+
+ @Property
+ public void setP1(String p1) {
+ this.p1 = p1;
+ }
+
+ public String getName() {
+ return "GService";
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/HServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/HServiceImpl.java
new file mode 100644
index 0000000000..2fa610def7
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/HServiceImpl.java
@@ -0,0 +1,86 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.IService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.HService;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+@Service(HService.class)
+public class HServiceImpl implements HService {
+
+ @Reference
+ public IService i1;
+
+ public String getName() {
+ return "HService";
+ }
+
+ public String test() {
+
+ String serviceName = i1.getName();
+ String conversationIdBefore = i1.getConversationId();
+
+ for (int i = 0; i < 10; i++) {
+ String newState = "state-" + i;
+ i1.setCurrentState(newState);
+ String currentState = i1.getCurrentState();
+ if (currentState == null || !currentState.equals(serviceName + "-" + newState)) {
+ i1.endConversation();
+ return "CurrentStateLost - " + currentState;
+ }
+ }
+
+ boolean isInitReady = i1.isInitReady();
+
+ String conversationIdAfter = i1.getConversationId();
+
+ i1.endConversation();
+
+ if (!isInitReady)
+ return "InitNotReady";
+
+ if (!conversationIdBefore.equals(conversationIdAfter))
+ return "DifferentConversationId";
+
+ return "None";
+ }
+
+ public String testCounters(int n) {
+ int instanceCounter = i1.getInstanceCounter();
+ int initCalledCounter = i1.getInitCalledCounter();
+ int destroyCalledCounter = i1.getDestroyCalledCounter();
+
+ System.out.println("instanceCounter=" + instanceCounter);
+ System.out.println("initCalledCounter=" + initCalledCounter);
+ System.out.println("destroyCalledCounter=" + destroyCalledCounter);
+
+ if (instanceCounter != n + 1)
+ return "IncorrectInstanceCounter";
+ if (initCalledCounter != n + 1)
+ return "IncorrectInitCalledCounter";
+ if (destroyCalledCounter != n)
+ return "IncorrectDestroyCalledCounter";
+
+ return "None";
+ }
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/IServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/IServiceImpl.java
new file mode 100644
index 0000000000..9f6019a1fd
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/IServiceImpl.java
@@ -0,0 +1,135 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.AService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.IService;
+import org.osoa.sca.annotations.ConversationID;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(IService.class)
+@Scope("CONVERSATION")
+public class IServiceImpl implements IService {
+
+ public static int instanceCounter = 0;
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ @ConversationID
+ protected String conversationId;
+
+ public int currentInstanceId = 0;
+
+ public AService a1;
+
+ public String p1;
+
+ public String currentState = null;
+
+ public boolean isInitReady = false;
+
+ public IServiceImpl() {
+ synchronized (IServiceImpl.class) {
+ currentInstanceId = ++instanceCounter;
+ }
+ isInitReady = false;
+ }
+
+ @Reference
+ public void setA1(AService a1) {
+ this.a1 = a1;
+ }
+
+ @Property
+ public void setP1(String p1) {
+ this.p1 = p1;
+ }
+
+ @Init
+ public void initIService() throws Exception {
+ synchronized (IServiceImpl.class) {
+ initCalledCounter++;
+ }
+ if (p1.equals("p1") && a1.getName().equals("AService"))
+ isInitReady = true;
+ System.out.println("IService" + currentInstanceId + "->initIService");
+ }
+
+ @Destroy
+ public void destroyIService() {
+ synchronized (IServiceImpl.class) {
+ destroyCalledCounter++;
+ }
+ System.out.println("IService" + currentInstanceId + "->destroyIService");
+ }
+
+ public void endConversation() {
+ System.out.println("IService" + currentInstanceId + "->endConversation");
+ }
+
+ public String getName() {
+ return "IService" + currentInstanceId;
+ }
+
+ public AService getA1() {
+ return a1;
+ }
+
+ public String getP1() {
+ return p1;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String getConversationId() {
+ return conversationId;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = "IService" + currentInstanceId + "-" + currentState;
+ return this.currentState;
+ }
+
+ public boolean isInitReady() {
+ return isInitReady;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java
new file mode 100644
index 0000000000..a5851598a0
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java
@@ -0,0 +1,78 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.KService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.JService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(JService.class)
+@Scope("COMPOSITE")
+public class JServiceImpl implements JService {
+
+ @Reference
+ public KService k1;
+
+ public static String failedReason = "";
+
+ public static Timer aTimer = null;
+
+ @Init
+ public void initJService() throws Exception {
+ aTimer = new Timer();
+ aTimer.schedule(new JTimerTask(), 1000);
+ System.out.println("JService->initJService");
+ }
+
+ @Destroy
+ public void destroyJService() {
+ aTimer.cancel();
+ System.out.println("JService->destroyJService");
+ }
+
+ public String getName() {
+ return "JService";
+ }
+
+ public String getFailedReason() {
+ return failedReason;
+ }
+
+ private class JTimerTask extends TimerTask {
+
+ public boolean cancel() {
+ return true;
+ }
+
+ public void run() {
+ String result = k1.callL1();
+ if (!result.equals("None"))
+ failedReason = failedReason + ";" + result;
+ }
+
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java
new file mode 100644
index 0000000000..7088562c57
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java
@@ -0,0 +1,80 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.KService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.LService;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(KService.class)
+@Scope("STATELESS")
+public class KServiceImpl implements KService {
+
+ public static int instanceCounter = 0;
+
+ public String previousL1Name = null;
+
+ public int currentInstanceId = 0;
+
+ @Reference
+ public LService l1;
+
+ public KServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ }
+
+
+ public String getName() {
+ return "KService"+currentInstanceId;
+ }
+
+ public String callL1() {
+
+ for (int i = 1; i < 11; i++) {
+ System.out.println(getName() + " calls LService " + i + (i == 1 ? "st time:" : (i == 2 ? "nd time:" : (i == 3 ? "rd time:" : "th time"))));
+
+ String serviceName = l1.getName();
+ for (int j = 0; j < 10; j++) {
+ String newState = "state-" + j;
+ l1.setCurrentState(newState);
+ String currentState = l1.getCurrentState();
+ if (!currentState.equals(serviceName + "-" + newState)) {
+ return "CurrentStateLost - " + currentState;
+ }
+ }
+
+ System.out.print(" Name=" + serviceName);
+ System.out.print(", #Instance=" + l1.getInstanceCounter());
+ System.out.print(", #InitCalled=" + l1.getInitCalledCounter());
+ System.out.println(", #DestroyCalled=" + l1.getDestroyCalledCounter());
+
+ if (previousL1Name == null) {
+ previousL1Name = serviceName;
+ } else {
+ if (!previousL1Name.equals(serviceName))
+ return "DifferentLServiceInstance";
+ }
+ }
+ return "None";
+ }
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java
new file mode 100644
index 0000000000..274e0570d9
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java
@@ -0,0 +1,83 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.LService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(LService.class)
+@Scope("REQUEST")
+public class LServiceImpl implements LService {
+
+ public static int instanceCounter = 0;
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ public int currentInstanceId = 0;
+
+ public String currentState = null;
+
+ public LServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ }
+
+ @Init
+ public void initLService() throws Exception {
+ initCalledCounter++;
+ System.out.println("LService" + currentInstanceId + "->initLService");
+ }
+
+ @Destroy
+ public void destroyLService() {
+ destroyCalledCounter++;
+ System.out.println("LService" + currentInstanceId + "->destroyLService");
+ }
+
+ public String getName() {
+ return "LService" + currentInstanceId;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = "LService" + currentInstanceId + "-" + currentState;
+ return this.currentState;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java
new file mode 100644
index 0000000000..681b0b3776
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java
@@ -0,0 +1,81 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.MService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.NService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(MService.class)
+@Scope("COMPOSITE")
+public class MServiceImpl implements MService {
+
+ @Reference
+ public NService n1;
+
+ public static String failedReason = "";
+
+ public static Timer aTimer = null;
+
+ public static int counter = 0;
+
+ @Init
+ public void initMService() throws Exception {
+ aTimer = new Timer();
+ aTimer.schedule(new MTimerTask(), 1000, 1000);
+ System.out.println("MService->initMService");
+ }
+
+ @Destroy
+ public void destroyMService() {
+ aTimer.cancel();
+ System.out.println("MService->destroyMService");
+ }
+
+ public String getName() {
+ return "MService";
+ }
+
+ public String getFailedReason() {
+ return failedReason;
+ }
+
+ private class MTimerTask extends TimerTask {
+
+ public boolean cancel() {
+ return true;
+ }
+
+ public void run() {
+ counter++;
+ String result = n1.callO1(counter);
+ if (!result.equals("None"))
+ failedReason = failedReason + ";" + result;
+ }
+
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java
new file mode 100644
index 0000000000..98b94a33c7
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java
@@ -0,0 +1,85 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.NService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.OService;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(NService.class)
+@Scope("STATELESS")
+public class NServiceImpl implements NService {
+
+ public static int instanceCounter = 0;
+
+ public String previousL1Name = null;
+
+ public int currentInstanceId = 0;
+
+ @Reference
+ public OService o1;
+
+ public NServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ }
+
+
+ public String getName() {
+ return "NService"+currentInstanceId;
+ }
+
+ public String callO1(int nthTime) {
+
+ for (int i = 1; i < 11; i++) {
+ System.out.println(getName() + " calls OService " + i + (i == 1 ? "st time:" : (i == 2 ? "nd time:" : (i == 3 ? "rd time:" : "th time"))));
+
+ String serviceName = o1.getName();
+ for (int j = 0; j < 10; j++) {
+ String newState = "state-" + j;
+ o1.setCurrentState(newState);
+ String currentState = o1.getCurrentState();
+ if (!currentState.equals(serviceName + "-" + newState)) {
+ return "CurrentStateLost - " + currentState;
+ }
+ }
+
+ System.out.print(" Name=" + serviceName);
+ System.out.print(", #Instance=" + o1.getInstanceCounter());
+ System.out.print(", #InitCalled=" + o1.getInitCalledCounter());
+ System.out.println(", #DestroyCalled=" + o1.getDestroyCalledCounter());
+
+ if (previousL1Name == null) {
+ previousL1Name = serviceName;
+ } else {
+ if (!previousL1Name.equals(serviceName))
+ return "DifferentOServiceInstance";
+ }
+
+ }
+
+ if (o1.getInstanceCounter() < nthTime) {
+ return "SharedSameInstance";
+ }
+
+ return "None";
+ }
+}
diff --git a/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java
new file mode 100644
index 0000000000..8cf39a072c
--- /dev/null
+++ b/tags/java/sca/1.5.1/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java
@@ -0,0 +1,83 @@
+/*
+ * 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.vtest.javaapi.annotations.scope.impl;
+
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.OService;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Service;
+import org.osoa.sca.annotations.Scope;
+
+@Service(OService.class)
+@Scope("REQUEST")
+public class OServiceImpl implements OService {
+
+ public static int instanceCounter = 0;
+
+ public static int initCalledCounter = 0;
+
+ public static int destroyCalledCounter = 0;
+
+ public int currentInstanceId = 0;
+
+ public String currentState = null;
+
+ public OServiceImpl() {
+ currentInstanceId = ++instanceCounter;
+ }
+
+ @Init
+ public void initOService() throws Exception {
+ initCalledCounter++;
+ System.out.println("OService" + currentInstanceId + "->initOService");
+ }
+
+ @Destroy
+ public void destroyOService() {
+ destroyCalledCounter++;
+ System.out.println("OService" + currentInstanceId + "->destroyOService");
+ }
+
+ public String getName() {
+ return "OService" + currentInstanceId;
+ }
+
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ public String setCurrentState(String currentState) {
+ this.currentState = "OService" + currentInstanceId + "-" + currentState;
+ return this.currentState;
+ }
+
+ public int getDestroyCalledCounter() {
+ return destroyCalledCounter;
+ }
+
+ public int getInitCalledCounter() {
+ return initCalledCounter;
+ }
+
+ public int getInstanceCounter() {
+ return instanceCounter;
+ }
+
+}