You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by kw...@apache.org on 2008/04/22 23:43:21 UTC

svn commit: r650667 - in /incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src: main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/ main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/ main/resources/ test/jav...

Author: kwilliams
Date: Tue Apr 22 14:43:17 2008
New Revision: 650667

URL: http://svn.apache.org/viewvc?rev=650667&view=rev
Log:
Applying Gilbert's patch for TUSCANY-2257

Added:
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java   (with props)
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java   (with props)
Modified:
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/resources/scope.composite
    incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/ScopeAnnotationTestCase.java

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java Tue Apr 22 14:43:17 2008
@@ -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();
+    
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/JService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java Tue Apr 22 14:43:17 2008
@@ -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();
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/KService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java Tue Apr 22 14:43:17 2008
@@ -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();
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/LService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java Tue Apr 22 14:43:17 2008
@@ -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();
+    
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/MService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java Tue Apr 22 14:43:17 2008
@@ -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);
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/NService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java Tue Apr 22 14:43:17 2008
@@ -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();
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/OService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java Tue Apr 22 14:43:17 2008
@@ -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;
+		}
+		
+	}
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/JServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java Tue Apr 22 14:43:17 2008
@@ -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";
+    }
+
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/KServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java Tue Apr 22 14:43:17 2008
@@ -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;
+	}
+	
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/LServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java Tue Apr 22 14:43:17 2008
@@ -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;
+		}
+		
+	}
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/MServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java Tue Apr 22 14:43:17 2008
@@ -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";
+    }
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/NServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java?rev=650667&view=auto
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java (added)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java Tue Apr 22 14:43:17 2008
@@ -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;
+	}
+	
+}

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/impl/OServiceImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/resources/scope.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/resources/scope.composite?rev=650667&r1=650666&r2=650667&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/resources/scope.composite (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/main/resources/scope.composite Tue Apr 22 14:43:17 2008
@@ -73,4 +73,38 @@
 		<property name="p1">p1</property>	
 	</component>
 	
+	<component name="JComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.scope.impl.JServiceImpl" />
+		<reference name="k1" target="KComponent"/>
+	</component>
+	
+	<component name="KComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.scope.impl.KServiceImpl" />
+		<reference name="l1" target="LComponent"/>
+	</component>
+	
+	<component name="LComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.scope.impl.LServiceImpl" />
+	</component>
+
+	<component name="MComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.scope.impl.MServiceImpl" />
+		<reference name="n1" target="NComponent"/>
+	</component>
+
+	<component name="NComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.scope.impl.NServiceImpl" />
+		<reference name="o1" target="OComponent"/>
+	</component>
+	
+	<component name="OComponent">
+		<implementation.java
+			class="org.apache.tuscany.sca.vtest.javaapi.annotations.scope.impl.OServiceImpl" />
+	</component>
+	
 </composite>

Modified: incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/ScopeAnnotationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/ScopeAnnotationTestCase.java?rev=650667&r1=650666&r2=650667&view=diff
==============================================================================
--- incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/ScopeAnnotationTestCase.java (original)
+++ incubator/tuscany/java/sca/vtest/java-api/annotations/scope/src/test/java/org/apache/tuscany/sca/vtest/javaapi/annotations/scope/ScopeAnnotationTestCase.java Tue Apr 22 14:43:17 2008
@@ -29,6 +29,11 @@
 import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.FService;
 import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.GService;
 import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.HService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.JService;
+import org.apache.tuscany.sca.vtest.javaapi.annotations.scope.MService;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -51,6 +56,25 @@
     protected static int numFThread = 5;
     protected static int numHThread = 5;
 	
+    @BeforeClass
+    public static void init() throws Exception {
+        try {
+            System.out.println("Setting up");
+            domain = SCADomain.newInstance(compositeName);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+
+    @AfterClass
+    public static void destroy() throws Exception {
+
+        System.out.println("Cleaning up");
+        if (domain != null)
+            domain.close();
+
+    }
+    
     /**
      * Line 259:<br>
      * <li>STATELESS</li>
@@ -71,12 +95,12 @@
      */
     @Test
     public void atScope1() throws Exception {
-        System.out.println("atScope1 - Setting up");
-        domain = SCADomain.newInstance(compositeName);
+        System.out.println("atScope1");
         BThread b1 = new BThread("ThreadB1");
         BThread b2 = new BThread("ThreadB2");
         CThread c1 = new CThread("ThreadC1");
         CThread c2 = new CThread("ThreadC2");
+        
         b1.start();
         b2.start();
         c1.start();
@@ -85,14 +109,13 @@
         b2.join();
         c1.join();
         c2.join();
-        System.out.println("atScope1 - Cleaning up");
-        if (domain != null)
-            domain.close();
+        
+        System.out.println("");
+
         Assert.assertEquals("None", b1.failedReason);
         Assert.assertEquals("None", b2.failedReason);
         Assert.assertEquals("None", c1.failedReason);
         Assert.assertEquals("None", c2.failedReason);
-        System.out.println("");
     }
     
     /**
@@ -106,21 +129,10 @@
      * During that time, all service requests will be delegated to the same
      * implementation instance of a request-scoped component.<br>
      * <p>
-     * Lines 290 to 293:<br>
-     * There are times when a local request scoped service is called without
-     * there being a remotable service earlier in the call stack, such as when
-     * a local service is called from a non-SCA entity. In these cases, a
-     * remote request is always considered to be present, but the lifetime of
-     * the request is implementation dependent. For example, a timer event
-     * could be treated as a remote request..<br>
-     * <p>
-     * @TODO - Need to find out how to test lines 290 to 293
-     *       - Need to find out when destroy method be called
      */
     @Test
     public void atScope2() throws Exception {
-        System.out.println("atScope2 - Setting up");
-        domain = SCADomain.newInstance(compositeName);
+        System.out.println("atScope2");
         ArrayList<DThread> d = new ArrayList<DThread>();
         for (int i = 0; i < numDThread; i++)
         	d.add(new DThread("ThreadD"+i));
@@ -128,12 +140,9 @@
         	d.get(i).start();
         for (int i = 0; i < numDThread; i++)
         	d.get(i).join();
-        System.out.println("atScope2 - Cleaning up");
-        if (domain != null)
-            domain.close();
+        System.out.println("");
         for (int i = 0; i < numDThread; i++)
         	Assert.assertEquals("None", d.get(i).failedReason);
-        System.out.println("");
     }
     
     /**
@@ -152,8 +161,7 @@
      */
     @Test
     public void atScope3() throws Exception {
-        System.out.println("atScope3 - Setting up");
-        domain = SCADomain.newInstance(compositeName);
+        System.out.println("atScope3");
         FService fService = domain.getService(FService.class, "FComponent");
         String serviceName = fService.getName();
         boolean isInitReady   = fService.isInitReady();
@@ -171,15 +179,13 @@
         
         int instanceCounter   = fService.getInstanceCounter();
         int initCalledCounter = fService.getInitCalledCounter();
+        int destroyCalledCounter = fService.getDestroyCalledCounter();
+        System.out.println("");
         
-        System.out.println("atScope3 - Cleaning up");
-        if (domain != null)
-            domain.close();
-        	
         Assert.assertTrue(isInitReady);
         Assert.assertEquals(1, instanceCounter);
         Assert.assertEquals(1, initCalledCounter);
-        System.out.println("");
+        Assert.assertEquals(0, destroyCalledCounter);
     }
     
     /**
@@ -192,24 +198,23 @@
      * Section 1.8.9 "@EagerInit"<br>
      * <p>
      * GService is defined as eager initialization. It will be initialized
-     * when everytime calls SCADomain.newInstance(compositeName), so the 
-     * initCalledCounter is greater than 1.
+     * when calls SCADomain.newInstance(compositeName), so the 
+     * initCalledCounter is 1.
      */
     @Test
     public void atScope4() throws Exception {
-        System.out.println("atScope4 - Setting up");
-        domain = SCADomain.newInstance(compositeName);
+        System.out.println("atScope4");
+
         GService gService = domain.getService(GService.class, "GComponent");
         int initCalledCounter    = gService.getInitCalledCounter();
         int destroyCalledCounter = gService.getDestroyCalledCounter();
         
-        System.out.println("atScope4 - Cleaning up");
-        if (domain != null)
-            domain.close();
-        
-        Assert.assertTrue(initCalledCounter > 1);
-        Assert.assertTrue(destroyCalledCounter > 1);
+        System.out.println("initCalledCounter="+ initCalledCounter);
+        System.out.println("destroyCalledCounter="+ destroyCalledCounter);
         System.out.println("");
+
+        Assert.assertEquals(1, initCalledCounter);
+        Assert.assertEquals(0, destroyCalledCounter);
     }
     
     /**
@@ -229,8 +234,8 @@
      */
     @Test
     public void atScope5() throws Exception {
-        System.out.println("atScope5 - Setting up");
-        domain = SCADomain.newInstance(compositeName);
+        System.out.println("atScope5");
+
         ArrayList<HThread> g = new ArrayList<HThread>();
         for (int i = 0; i < numHThread; i++)
         	g.add(new HThread("ThreadH"+i));
@@ -241,18 +246,61 @@
         
         HService hService = domain.getService(HService.class, "HComponent");
         String failedReason = hService.testCounters(numHThread);
+        System.out.println("");
 
-        System.out.println("atScope5 - Cleaning up");
-        if (domain != null)
-            domain.close();
-        
         for (int i = 0; i < numHThread; i++)
         	Assert.assertEquals("None", g.get(i).failedReason);
         Assert.assertEquals("None", failedReason);
+    }
+
+    /** Lines 290 to 293:<br>
+    * There are times when a local request scoped service is called without
+    * there being a remotable service earlier in the call stack, such as when
+    * a local service is called from a non-SCA entity. In these cases, a
+    * remote request is always considered to be present, but the lifetime of
+    * the request is implementation dependent. For example, a timer event
+    * could be treated as a remote request..<br>
+    * <p>
+    * When the composite runs, composite scope service JService kicks off a
+    * timer by the @Init method.  When the timer expires, JService invokes a
+    * method that calls an operation on the reference to a stateless scope
+    * sevice KService. KService calls a request scope service LService
+    * multiple times. The results of the calls to LService should be set up to
+    * differ depending on whether the same instance is called each time -
+    * without the interface being declared Conversational.<br>
+    * <p>
+    */
+    @Test
+    public void atScope6() throws Exception {
+        System.out.println("atScope6");
 
+        JService jService = domain.getService(JService.class, "JComponent");
+		jService.getName();
+		Thread.sleep(2000);
+		String failedReason = jService.getFailedReason();
         System.out.println("");
+
+        Assert.assertEquals("", failedReason);
     }
+    
+    /**
+     * Same as atScope6 but the timer triggers KService multiple times.<br>
+     */
+    @Test
+    @Ignore
+    // JIRA T-2256
+    public void atScope7() throws Exception {
+        System.out.println("atScope7");
+
+        MService mService = domain.getService(MService.class, "MComponent");
+        mService.getName();
+		Thread.sleep(6000);
+		String failedReason = mService.getFailedReason();
+        System.out.println("");
 
+        Assert.assertEquals("", failedReason);
+    }
+    
     private  class BThread extends Thread {
     	private String name = null;
     	public String failedReason = "Unknown";
@@ -435,4 +483,5 @@
     }
 
 }
+