You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/12/19 06:11:04 UTC
svn commit: r488523 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/component/scope/
core/src/test/java/org/apache/tuscany/core/component/scope/
spi/src/main/java/org/apache/tuscany/spi/model/
Author: jmarino
Date: Mon Dec 18 21:11:03 2006
New Revision: 488523
URL: http://svn.apache.org/viewvc?view=rev&rev=488523
Log:
enable error monitoring in scope containers
Added:
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java (with props)
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ModuleScopeContainer.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/RequestScopeContainer.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java?view=diff&rev=488523&r1=488522&r2=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/HttpSessionScopeContainer.java Mon Dec 18 21:11:03 2006
@@ -65,12 +65,9 @@
try {
getInstance(entry.getKey(), key, true);
} catch (ObjectCreationException e) {
- // FIXME JFM
- e.printStackTrace();
+ monitor.eagerInitializationError(e);
} catch (TargetResolutionException e) {
- // FIXME JFM
- e.printStackTrace();
-
+ monitor.eagerInitializationError(e);
}
}
}
@@ -145,8 +142,7 @@
try {
iter.previous().stop();
} catch (TargetDestructionException e) {
- // JFM FIXME
- e.printStackTrace();
+ monitor.destructionError(e);
}
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ModuleScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ModuleScopeContainer.java?view=diff&rev=488523&r1=488522&r2=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ModuleScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ModuleScopeContainer.java Mon Dec 18 21:11:03 2006
@@ -67,10 +67,8 @@
try {
eagerInitComponents();
} catch (ObjectCreationException e) {
- // JFM
monitor.eagerInitializationError(e);
} catch (TargetResolutionException e) {
- // JFM FIXME
monitor.eagerInitializationError(e);
}
lifecycleState = RUNNING;
@@ -109,9 +107,7 @@
try {
iter.previous().stop();
} catch (TargetDestructionException e) {
- // JFM FIXME
monitor.destructionError(e);
- e.printStackTrace();
}
}
destroyQueue.clear();
@@ -127,7 +123,7 @@
throws TargetResolutionException {
checkInit();
InstanceWrapper ctx = instanceWrappers.get(component);
- assert ctx != null : "Component not registered with scope: " + component;
+ assert ctx != null;
if (ctx == EMPTY && !create) {
return null;
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/RequestScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/RequestScopeContainer.java?view=diff&rev=488523&r1=488522&r2=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/RequestScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/scope/RequestScopeContainer.java Mon Dec 18 21:11:03 2006
@@ -31,6 +31,7 @@
import org.apache.tuscany.spi.component.ScopeContainerMonitor;
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.core.component.event.RequestEnd;
import org.apache.tuscany.core.component.event.RequestStart;
@@ -62,8 +63,9 @@
try {
getInstance(entry.getKey());
} catch (TargetResolutionException e) {
- // FIXME JFM monitor
- e.printStackTrace();
+ monitor.eagerInitializationError(e);
+ } catch (ObjectCreationException e) {
+ monitor.eagerInitializationError(e);
}
}
}
@@ -128,8 +130,7 @@
try {
iter.previous().stop();
} catch (TargetDestructionException e) {
- // JFM FIXME
- e.printStackTrace();
+ monitor.destructionError(e);
}
}
}
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java?view=auto&rev=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java Mon Dec 18 21:11:03 2006
@@ -0,0 +1,92 @@
+/*
+ * 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.core.component.scope;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ScopeContainerMonitor;
+import org.apache.tuscany.spi.component.TargetDestructionException;
+import org.apache.tuscany.spi.event.RuntimeEventListener;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.component.WorkContextImpl;
+import org.apache.tuscany.core.component.event.HttpSessionEnd;
+import org.apache.tuscany.core.component.event.HttpSessionStart;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class HttpSessionScopeInitDestroyErrorTestCase extends TestCase {
+
+ public void testInitializeErrorMonitor() throws Exception {
+ ScopeContainerMonitor monitor;
+ monitor = EasyMock.createMock(ScopeContainerMonitor.class);
+ monitor.eagerInitializationError(EasyMock.isA(ObjectCreationException.class));
+ EasyMock.replay(monitor);
+ HttpSessionScopeContainer scope = new HttpSessionScopeContainer(new WorkContextImpl(), monitor);
+ scope.start();
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ component.addListener(EasyMock.isA(RuntimeEventListener.class));
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.expect(component.createInstance()).andThrow(new ObjectCreationException(""));
+ EasyMock.expect(component.isEagerInit()).andReturn(true);
+ List<Class<?>> services = new ArrayList<Class<?>>();
+ services.add(Object.class);
+ EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+ EasyMock.replay(component);
+ scope.register(component);
+ scope.onEvent(new HttpSessionStart(this, new Object()));
+ EasyMock.verify(monitor);
+ }
+
+ public void testDestroyErrorMonitor() throws Exception {
+ ScopeContainerMonitor monitor;
+ monitor = EasyMock.createMock(ScopeContainerMonitor.class);
+ monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
+ EasyMock.replay(monitor);
+ HttpSessionScopeContainer scope = new HttpSessionScopeContainer(new WorkContextImpl(), monitor);
+ scope.start();
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ component.addListener(EasyMock.isA(RuntimeEventListener.class));
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.expect(component.createInstance()).andReturn(new Object());
+ EasyMock.expect(component.isEagerInit()).andReturn(true);
+ List<Class<?>> services = new ArrayList<Class<?>>();
+ services.add(Object.class);
+ EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+ component.init(EasyMock.isA(Object.class));
+ component.destroy(EasyMock.isA(Object.class));
+ EasyMock.expectLastCall().andThrow(new TargetDestructionException("", ""));
+ EasyMock.replay(component);
+ scope.register(component);
+ Object id = new Object();
+ scope.onEvent(new HttpSessionStart(this, id));
+ scope.onEvent(new HttpSessionEnd(this, id));
+ EasyMock.verify(monitor);
+ }
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/HttpSessionScopeInitDestroyErrorTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java?view=auto&rev=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java Mon Dec 18 21:11:03 2006
@@ -0,0 +1,87 @@
+/*
+ * 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.core.component.scope;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ScopeContainerMonitor;
+import org.apache.tuscany.spi.component.TargetDestructionException;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.component.event.CompositeStart;
+import org.apache.tuscany.core.component.event.CompositeStop;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ModuleScopeInitDestroyErrorTestCase extends TestCase {
+
+ public void testInitializeErrorMonitor() throws Exception {
+ ScopeContainerMonitor monitor;
+ monitor = EasyMock.createMock(ScopeContainerMonitor.class);
+ monitor.eagerInitializationError(EasyMock.isA(ObjectCreationException.class));
+ EasyMock.replay(monitor);
+ ModuleScopeContainer scope = new ModuleScopeContainer(monitor);
+ scope.start();
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.expect(component.createInstance()).andThrow(new ObjectCreationException(""));
+ EasyMock.expect(component.getInitLevel()).andReturn(1);
+ List<Class<?>> services = new ArrayList<Class<?>>();
+ services.add(Object.class);
+ EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+ EasyMock.replay(component);
+ scope.register(component);
+ scope.onEvent(new CompositeStart(this, null));
+ EasyMock.verify(monitor);
+ }
+
+ public void testDestroyErrorMonitor() throws Exception {
+ ScopeContainerMonitor monitor;
+ monitor = EasyMock.createMock(ScopeContainerMonitor.class);
+ monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
+ EasyMock.replay(monitor);
+ ModuleScopeContainer scope = new ModuleScopeContainer(monitor);
+ scope.start();
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.expect(component.createInstance()).andReturn(new Object());
+ EasyMock.expect(component.getInitLevel()).andReturn(1);
+ List<Class<?>> services = new ArrayList<Class<?>>();
+ services.add(Object.class);
+ EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+ component.init(EasyMock.isA(Object.class));
+ component.destroy(EasyMock.isA(Object.class));
+ EasyMock.expectLastCall().andThrow(new TargetDestructionException("", ""));
+ EasyMock.replay(component);
+ scope.register(component);
+ scope.onEvent(new CompositeStart(this, null));
+ scope.onEvent(new CompositeStop(this, null));
+ EasyMock.verify(monitor);
+ }
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/ModuleScopeInitDestroyErrorTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java?view=auto&rev=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java Mon Dec 18 21:11:03 2006
@@ -0,0 +1,91 @@
+/*
+ * 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.core.component.scope;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ScopeContainerMonitor;
+import org.apache.tuscany.spi.component.TargetDestructionException;
+import org.apache.tuscany.spi.event.RuntimeEventListener;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.core.component.WorkContextImpl;
+import org.apache.tuscany.core.component.event.RequestEnd;
+import org.apache.tuscany.core.component.event.RequestStart;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class RequestScopeInitDestroyErrorTestCase extends TestCase {
+
+ public void testInitializeErrorMonitor() throws Exception {
+ ScopeContainerMonitor monitor;
+ monitor = EasyMock.createMock(ScopeContainerMonitor.class);
+ monitor.eagerInitializationError(EasyMock.isA(ObjectCreationException.class));
+ EasyMock.replay(monitor);
+ RequestScopeContainer scope = new RequestScopeContainer(new WorkContextImpl(), monitor);
+ scope.start();
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ component.addListener(EasyMock.isA(RuntimeEventListener.class));
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.expect(component.createInstance()).andThrow(new ObjectCreationException(""));
+ EasyMock.expect(component.isEagerInit()).andReturn(true);
+ List<Class<?>> services = new ArrayList<Class<?>>();
+ services.add(Object.class);
+ EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+ EasyMock.replay(component);
+ scope.register(component);
+ scope.onEvent(new RequestStart(this));
+ EasyMock.verify(monitor);
+ }
+
+ public void testDestroyErrorMonitor() throws Exception {
+ ScopeContainerMonitor monitor;
+ monitor = EasyMock.createMock(ScopeContainerMonitor.class);
+ monitor.destructionError(EasyMock.isA(TargetDestructionException.class));
+ EasyMock.replay(monitor);
+ RequestScopeContainer scope = new RequestScopeContainer(new WorkContextImpl(), monitor);
+ scope.start();
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ component.addListener(EasyMock.isA(RuntimeEventListener.class));
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.expect(component.createInstance()).andReturn(new Object());
+ EasyMock.expect(component.isEagerInit()).andReturn(true);
+ List<Class<?>> services = new ArrayList<Class<?>>();
+ services.add(Object.class);
+ EasyMock.expect(component.getServiceInterfaces()).andReturn(services);
+ component.init(EasyMock.isA(Object.class));
+ component.destroy(EasyMock.isA(Object.class));
+ EasyMock.expectLastCall().andThrow(new TargetDestructionException("", ""));
+ EasyMock.replay(component);
+ scope.register(component);
+ scope.onEvent(new RequestStart(this));
+ scope.onEvent(new RequestEnd(this));
+ EasyMock.verify(monitor);
+ }
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/RequestScopeInitDestroyErrorTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java?view=diff&rev=488523&r1=488522&r2=488523
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/Scope.java Mon Dec 18 21:11:03 2006
@@ -20,6 +20,8 @@
/**
* The default implementation scopes supported by assemblies.
+ *
+ * @version $Rev$ $Date$
*/
public class Scope {
public static final Scope STATELESS = new Scope("STATELESS");
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org