From 9ad8f390696d3aaa7273b2442abf878270c3ae61 Mon Sep 17 00:00:00 2001 From: antelder Date: Mon, 21 Feb 2011 13:51:58 +0000 Subject: TUSCANY-3834: Update so that exceptions during stop processing use the Monitor to log the exception git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1072965 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/core/assembly/CompositeActivatorImpl.java | 29 ++++++++++++++++------ .../src/main/resources/core-messages.properties | 22 ++++++++++++++++ .../embedded/impl/ReallySmallRuntimeBuilder.java | 6 ++++- .../embedded/impl/ReallySmallRuntimeBuilder.java | 6 ++++- .../tuscany/sca/node/impl/RuntimeBuilder.java | 6 ++++- 5 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 sca-java-1.x/trunk/modules/core/src/main/resources/core-messages.properties (limited to 'sca-java-1.x') diff --git a/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java b/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java index af3e6061a8..3f79a231ed 100644 --- a/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java +++ b/sca-java-1.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/CompositeActivatorImpl.java @@ -57,6 +57,10 @@ import org.apache.tuscany.sca.interfacedef.InterfaceContract; import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; import org.apache.tuscany.sca.invocation.MessageFactory; +import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.Problem; +import org.apache.tuscany.sca.monitor.Problem.Severity; +import org.apache.tuscany.sca.monitor.impl.ProblemImpl; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ImplementationProvider; import org.apache.tuscany.sca.provider.ImplementationProviderFactory; @@ -93,6 +97,7 @@ public class CompositeActivatorImpl implements CompositeActivator { private final ProxyFactory proxyFactory; private final JavaInterfaceFactory javaInterfaceFactory; private final ConversationManager conversationManager; + private Monitor monitor; private final ComponentContextHelper componentContextHelper; @@ -103,6 +108,7 @@ public class CompositeActivatorImpl implements CompositeActivator { * @param interfaceContractMapper * @param workScheduler * @param conversationManager TODO + * @param monitor * @param workContext * @param wirePostProcessorRegistry */ @@ -119,7 +125,7 @@ public class CompositeActivatorImpl implements CompositeActivator { ProviderFactoryExtensionPoint providerFactories, EndpointResolverFactoryExtensionPoint endpointResolverFactories, StAXArtifactProcessorExtensionPoint processors, - ConversationManager conversationManager) { + ConversationManager conversationManager, Monitor monitor) { this.assemblyFactory = assemblyFactory; this.messageFactory = messageFactory; this.interfaceContractMapper = interfaceContractMapper; @@ -132,6 +138,7 @@ public class CompositeActivatorImpl implements CompositeActivator { this.requestContextFactory = requestContextFactory; this.proxyFactory = proxyFactory; this.conversationManager = conversationManager; + this.monitor = monitor; this.componentContextHelper = new ComponentContextHelper(assemblyFactory, javaInterfaceFactory, processors); } @@ -652,7 +659,7 @@ public class CompositeActivatorImpl implements CompositeActivator { try { stop((Composite)implementation); } catch (Throwable e1) { - logger.log(Level.SEVERE, e1.getMessage(), e1); + error("StopException", implementation, e1); } rethrow(e); } @@ -707,7 +714,7 @@ public class CompositeActivatorImpl implements CompositeActivator { ((ScopeContainer)provider).stop(); } } catch (Throwable e) { - logger.log(Level.SEVERE, e.getMessage(), e); + error("StopException", provider, e); } } } @@ -748,7 +755,7 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } catch (Throwable ex){ - logger.log(Level.SEVERE, ex.getMessage(), ex); + error("StopException", bindingProvider, ex); } } } @@ -771,7 +778,7 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } catch (Throwable ex){ - logger.log(Level.SEVERE, ex.getMessage(), ex); + error("StopException", bindingProvider, ex); } } } @@ -788,7 +795,7 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } catch (Throwable ex){ - logger.log(Level.SEVERE, ex.getMessage(), ex); + error("StopException", endpointResolver, ex); } } } @@ -808,7 +815,7 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } catch (Throwable ex){ - logger.log(Level.SEVERE, ex.getMessage(), ex); + error("StopException", implementationProvider, ex); } } } @@ -820,7 +827,7 @@ public class CompositeActivatorImpl implements CompositeActivator { try { runtimeComponent.getScopeContainer().stop(); } catch (Throwable ex){ - logger.log(Level.SEVERE, ex.getMessage(), ex); + error("StopException", runtimeComponent, ex); } } } @@ -1175,4 +1182,10 @@ public class CompositeActivatorImpl implements CompositeActivator { return conversationManager; } + private void error(String message, Object model, Throwable e) { + if (monitor != null) { + Problem problem = new ProblemImpl(this.getClass().getName(), "core-messages", Severity.ERROR, model, message, (Exception)e); + monitor.problem(problem); + } + } } diff --git a/sca-java-1.x/trunk/modules/core/src/main/resources/core-messages.properties b/sca-java-1.x/trunk/modules/core/src/main/resources/core-messages.properties new file mode 100644 index 0000000000..5b92c78a08 --- /dev/null +++ b/sca-java-1.x/trunk/modules/core/src/main/resources/core-messages.properties @@ -0,0 +1,22 @@ +# +# +# 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. +# +# +StopException = Exception during stop processing: {0} + diff --git a/sca-java-1.x/trunk/modules/host-android/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java b/sca-java-1.x/trunk/modules/host-android/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java index 1111558c60..afe3482d4d 100644 --- a/sca-java-1.x/trunk/modules/host-android/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java +++ b/sca-java-1.x/trunk/modules/host-android/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java @@ -81,6 +81,7 @@ import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; @@ -130,11 +131,14 @@ public class ReallySmallRuntimeBuilder { UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); ConversationManager conversationManager = utilities.getUtility(ConversationManager.class); + MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); + Monitor monitor = monitorFactory.createMonitor(); + // Create the composite activator CompositeActivator compositeActivator = new CompositeActivatorImpl(assemblyFactory, messageFactory, javaInterfaceFactory, scaBindingFactory, mapper, scopeRegistry, workScheduler, wireProcessor, requestContextFactory, - proxyFactory, providerFactories, endpointResolverFactories, processors, conversationManager); + proxyFactory, providerFactories, endpointResolverFactories, processors, conversationManager, monitor); return compositeActivator; } diff --git a/sca-java-1.x/trunk/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java b/sca-java-1.x/trunk/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java index 0f5aedfd75..ce255cdcb5 100644 --- a/sca-java-1.x/trunk/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java +++ b/sca-java-1.x/trunk/modules/host-embedded/src/main/java/org/apache/tuscany/sca/host/embedded/impl/ReallySmallRuntimeBuilder.java @@ -81,6 +81,7 @@ import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; @@ -130,11 +131,14 @@ public class ReallySmallRuntimeBuilder { UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); ConversationManager conversationManager = utilities.getUtility(ConversationManager.class); + MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); + Monitor monitor = monitorFactory.createMonitor(); + // Create the composite activator CompositeActivator compositeActivator = new CompositeActivatorImpl(assemblyFactory, messageFactory, javaInterfaceFactory, scaBindingFactory, mapper, scopeRegistry, workScheduler, wireProcessor, requestContextFactory, - proxyFactory, providerFactories, endpointResolverFactories, processors, conversationManager); + proxyFactory, providerFactories, endpointResolverFactories, processors, conversationManager, monitor); return compositeActivator; } diff --git a/sca-java-1.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java b/sca-java-1.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java index f609e15c5c..e4875fa333 100644 --- a/sca-java-1.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java +++ b/sca-java-1.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/RuntimeBuilder.java @@ -79,6 +79,7 @@ import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper; import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.monitor.Monitor; +import org.apache.tuscany.sca.monitor.MonitorFactory; import org.apache.tuscany.sca.policy.IntentAttachPointTypeFactory; import org.apache.tuscany.sca.policy.PolicyFactory; import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint; @@ -128,12 +129,15 @@ public class RuntimeBuilder { UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); ConversationManager conversationManager = utilities.getUtility(ConversationManager.class); + MonitorFactory monitorFactory = utilities.getUtility(MonitorFactory.class); + Monitor monitor = monitorFactory.createMonitor(); + // Create the composite activator CompositeActivator compositeActivator = new CompositeActivatorImpl(assemblyFactory, messageFactory, javaInterfaceFactory, scaBindingFactory, mapper, scopeRegistry, workScheduler, wireProcessor, requestContextFactory, proxyFactory, providerFactories, endpointResolverFactories, processors, - conversationManager); + conversationManager, monitor); return compositeActivator; } -- cgit v1.2.3