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/16 21:32:20 UTC
svn commit: r487877 [1/3] - in /incubator/tuscany/java/sca:
kernel/api/src/main/java/org/apache/tuscany/api/
kernel/api/src/test/java/org/apache/tuscany/api/
kernel/core/src/main/java/org/apache/tuscany/core/builder/
kernel/core/src/main/java/org/apach...
Author: jmarino
Date: Sat Dec 16 12:32:16 2006
New Revision: 487877
URL: http://svn.apache.org/viewvc?view=rev&rev=487877
Log:
refactor builder exceptions, making them checked and introducing stronger typing; introduce recursive exception formatting so nested builder exception data is displayed
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java (contents, props changed)
- copied, changed from r487433, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java (contents, props changed)
- copied, changed from r487433, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ReferenceTargetNotFoundException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java (with props)
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java (contents, props changed)
- copied, changed from r487433, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentInitException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java (contents, props changed)
- copied, changed from r487433, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java (with props)
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java (with props)
Removed:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderNotFoundException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ReferenceTargetNotFoundException.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentInitException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/InvalidTargetTypeException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/PostProcessingException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/WireException.java
Modified:
incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java
incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyRuntimeException.java
incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyExceptionTestCase.java
incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyRuntimeExceptionTestCase.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderExceptionFormatter.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/JavaLoggingMonitorFactory.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java
incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/LoaderExceptionFormatterTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/JavaLoggingTestCase.java
incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/ExceptionFormatter.java
incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/FormatterRegistry.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java
incubator/tuscany/java/sca/runtime/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
incubator/tuscany/java/sca/services/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2Service.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixReference.java
incubator/tuscany/java/sca/services/bindings/binding.celtix/src/main/java/org/apache/tuscany/binding/celtix/CeltixService.java
incubator/tuscany/java/sca/services/containers/container.script/src/test/java/org/apache/tuscany/container/script/ScriptComponentBuilderTestCase.java
incubator/tuscany/java/sca/services/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/impl/SpringCompositeBuilder.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringTestUtils.java
incubator/tuscany/java/sca/services/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/impl/ServiceInvocationTestCase.java
incubator/tuscany/java/sca/services/persistence/datasource/src/test/java/org/apache/tuscany/persistence/datasource/DataSourceBuilderTestCase.java
incubator/tuscany/java/sca/test/src/main/java/org/apache/tuscany/test/SCATestCase.java
Modified: incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java (original)
+++ incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyException.java Sat Dec 16 12:32:16 2006
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.io.PrintWriter;
/**
* The root checked exception for the Tuscany runtime.
@@ -134,29 +135,29 @@
return identifier;
}
- public StringBuilder appendBaseMessage(StringBuilder b) {
+ public PrintWriter appendBaseMessage(PrintWriter writer) {
if (identifier == null && contextStack == null) {
if (super.getMessage() == null) {
- return b;
+ return writer;
}
- return b.append(super.getMessage());
+ return writer.append(super.getMessage());
}
if (super.getMessage() != null) {
- b.append(super.getMessage());
+ writer.append(super.getMessage());
}
if (identifier != null) {
- b.append(" [").append(identifier).append(']');
+ writer.append(" [").append(identifier).append(']');
}
- return b;
+ return writer;
}
- public StringBuilder appendContextStack(StringBuilder b) {
+ public PrintWriter appendContextStack(PrintWriter writer) {
if (contextStack != null) {
- b.append("Context stack trace: ");
+ writer.append("\nContext stack trace: ");
for (int i = contextStack.size() - 1; i >= 0; i--) {
- b.append('[').append(contextStack.get(i)).append(']');
+ writer.append('[').append(contextStack.get(i)).append(']');
}
}
- return b;
+ return writer;
}
}
Modified: incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyRuntimeException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyRuntimeException.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyRuntimeException.java (original)
+++ incubator/tuscany/java/sca/kernel/api/src/main/java/org/apache/tuscany/api/TuscanyRuntimeException.java Sat Dec 16 12:32:16 2006
@@ -20,6 +20,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.io.PrintWriter;
/**
* The root unchecked exception for the Tuscany runtime.
@@ -137,30 +138,30 @@
return identifier;
}
- public StringBuilder appendBaseMessage(StringBuilder b) {
+ public PrintWriter appendBaseMessage(PrintWriter writer) {
if (identifier == null && contextStack == null) {
if (super.getMessage() == null) {
- return b;
+ return writer;
}
- return b.append(super.getMessage());
+ return writer.append(super.getMessage());
}
if (super.getMessage() != null) {
- b.append(super.getMessage());
+ writer.append(super.getMessage());
}
if (identifier != null) {
- b.append(" [").append(identifier).append(']');
+ writer.append(" [").append(identifier).append(']');
}
- return b;
+ return writer;
}
- public StringBuilder appendContextStack(StringBuilder b) {
+ public PrintWriter appendContextStack(PrintWriter writer) {
if (contextStack != null) {
- b.append("Context stack trace: ");
+ writer.append("Context stack trace: ");
for (int i = contextStack.size() - 1; i >= 0; i--) {
- b.append('[').append(contextStack.get(i)).append(']');
+ writer.append('[').append(contextStack.get(i)).append(']');
}
}
- return b;
+ return writer;
}
}
Modified: incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyExceptionTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyExceptionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyExceptionTestCase.java Sat Dec 16 12:32:16 2006
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.api;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -51,14 +53,18 @@
public void testAppendBaseMessage() {
TuscanyException ex = new DummyException(MESSAGE, IDENTIFIER);
- StringBuilder b = new StringBuilder();
- assertEquals("Message [IDENTIFIER]", ex.appendBaseMessage(b).toString());
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ ex.appendBaseMessage(pw);
+ assertEquals("Message [IDENTIFIER]", writer.toString());
}
public void testAppendBaseMessageNoIdentifier() {
TuscanyException ex = new DummyException(MESSAGE);
- StringBuilder b = new StringBuilder();
- assertEquals("Message", ex.appendBaseMessage(b).toString());
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ ex.appendBaseMessage(pw);
+ assertEquals("Message", writer.toString());
}
public void testThrowableConstructor() {
@@ -92,8 +98,10 @@
TuscanyException ex = new DummyException(MESSAGE);
ex.addContextName(CONTEXT1);
ex.addContextName(CONTEXT2);
- StringBuilder b = new StringBuilder();
- assertEquals("Context stack trace: [CONTEXT2][CONTEXT1]", ex.appendContextStack(b).toString());
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ ex.appendContextStack(pw);
+ assertEquals("\nContext stack trace: [CONTEXT2][CONTEXT1]", writer.toString());
}
public void testAddContext() throws Exception {
Modified: incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyRuntimeExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyRuntimeExceptionTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyRuntimeExceptionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/api/src/test/java/org/apache/tuscany/api/TuscanyRuntimeExceptionTestCase.java Sat Dec 16 12:32:16 2006
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.api;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -85,20 +87,26 @@
TuscanyRuntimeException ex = new DummyException(MESSAGE);
ex.addContextName(CONTEXT1);
ex.addContextName(CONTEXT2);
- StringBuilder b = new StringBuilder();
- assertEquals("Context stack trace: [CONTEXT2][CONTEXT1]", ex.appendContextStack(b).toString());
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ ex.appendContextStack(pw);
+ assertEquals("Context stack trace: [CONTEXT2][CONTEXT1]", writer.toString());
}
public void testAppendBaseMessage() {
TuscanyRuntimeException ex = new DummyException(MESSAGE, IDENTIFIER);
- StringBuilder b = new StringBuilder();
- assertEquals("Message [IDENTIFIER]", ex.appendBaseMessage(b).toString());
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ ex.appendBaseMessage(pw);
+ assertEquals("Message [IDENTIFIER]", writer.toString());
}
public void testAppendBaseMessageNoIdentifier() {
TuscanyRuntimeException ex = new DummyException(MESSAGE);
- StringBuilder b = new StringBuilder();
- assertEquals("Message", ex.appendBaseMessage(b).toString());
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ ex.appendBaseMessage(pw);
+ assertEquals("Message", writer.toString());
}
public static class DummyException extends TuscanyRuntimeException {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/BuilderRegistryImpl.java Sat Dec 16 12:32:16 2006
@@ -29,9 +29,9 @@
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BindingBuilder;
import org.apache.tuscany.spi.builder.BindlessBuilder;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.ComponentBuilder;
-import org.apache.tuscany.spi.builder.NoRegisteredBuilderException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
@@ -60,7 +60,6 @@
*/
@Scope("MODULE")
public class BuilderRegistryImpl implements BuilderRegistry {
-
protected WireService wireService;
protected ScopeRegistry scopeRegistry;
@@ -130,49 +129,69 @@
@SuppressWarnings("unchecked")
public <I extends Implementation<?>> Component build(CompositeComponent parent,
ComponentDefinition<I> componentDefinition,
- DeploymentContext deploymentContext) {
+ DeploymentContext deploymentContext) throws BuilderException {
Class<?> implClass = componentDefinition.getImplementation().getClass();
ComponentBuilder<I> componentBuilder = (ComponentBuilder<I>) componentBuilders.get(implClass);
- if (componentBuilder == null) {
- String name = implClass.getName();
- throw new BuilderNotFoundException("No builder registered for implementation", name);
- }
+ try {
+ if (componentBuilder == null) {
+ String name = implClass.getName();
+ throw new NoRegisteredBuilderException("No builder registered for implementation", name);
+ }
- Component component = componentBuilder.build(parent, componentDefinition, deploymentContext);
- ComponentType<?, ?, ?> componentType = componentDefinition.getImplementation().getComponentType();
- assert componentType != null : "Component type must be set";
- // create wires for the component
- if (wireService != null && !(component instanceof SystemAtomicComponent)) {
- wireService.createWires(component, componentDefinition);
+ Component component = componentBuilder.build(parent, componentDefinition, deploymentContext);
+ ComponentType<?, ?, ?> componentType = componentDefinition.getImplementation().getComponentType();
+ assert componentType != null : "Component type must be set";
+ // create wires for the component
+ if (wireService != null && !(component instanceof SystemAtomicComponent)) {
+ wireService.createWires(component, componentDefinition);
+ }
+ return component;
+ } catch (BuilderException e) {
+ e.addContextName(componentDefinition.getName());
+ e.addContextName(parent.getName());
+ throw e;
}
- return component;
}
@SuppressWarnings("unchecked")
public <B extends Binding> SCAObject build(CompositeComponent parent,
BoundServiceDefinition<B> boundServiceDefinition,
- DeploymentContext deploymentContext) {
+ DeploymentContext deploymentContext) throws BuilderException {
Class<?> bindingClass = boundServiceDefinition.getBinding().getClass();
BindingBuilder<B> bindingBuilder = (BindingBuilder<B>) bindingBuilders.get(bindingClass);
- if (bindingBuilder == null) {
- throw new NoRegisteredBuilderException(bindingClass.getName());
- }
- SCAObject object = bindingBuilder.build(parent, boundServiceDefinition, deploymentContext);
- if (wireService != null && !(object instanceof SystemService)) {
- String path = boundServiceDefinition.getTarget().getPath();
- ServiceContract<?> contract = boundServiceDefinition.getServiceContract();
- wireService.createWires((Service) object, path, contract);
+ try {
+ if (bindingBuilder == null) {
+ throw new NoRegisteredBuilderException("No builder registered for type", bindingClass.getName());
+ }
+ SCAObject object = bindingBuilder.build(parent, boundServiceDefinition, deploymentContext);
+ if (wireService != null && !(object instanceof SystemService)) {
+ String path = boundServiceDefinition.getTarget().getPath();
+ ServiceContract<?> contract = boundServiceDefinition.getServiceContract();
+ wireService.createWires((Service) object, path, contract);
+ }
+ return object;
+ } catch (BuilderException e) {
+ e.addContextName(boundServiceDefinition.getName());
+ e.addContextName(parent.getName());
+ throw e;
}
- return object;
+
}
@SuppressWarnings("unchecked")
public <B extends Binding> SCAObject build(CompositeComponent parent,
BoundReferenceDefinition<B> boundReferenceDefinition,
- DeploymentContext deploymentContext) {
+ DeploymentContext deploymentContext) throws BuilderException {
Class<B> bindingClass = (Class<B>) boundReferenceDefinition.getBinding().getClass();
BindingBuilder<B> bindingBuilder = (BindingBuilder<B>) bindingBuilders.get(bindingClass);
- SCAObject object = bindingBuilder.build(parent, boundReferenceDefinition, deploymentContext);
+ SCAObject object = null;
+ try {
+ object = bindingBuilder.build(parent, boundReferenceDefinition, deploymentContext);
+ } catch (BuilderException e) {
+ e.addContextName(boundReferenceDefinition.getName());
+ e.addContextName(parent.getName());
+ throw e;
+ }
// create wires for the component
if (wireService != null) {
wireService.createWires((Reference) object, boundReferenceDefinition.getServiceContract());
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Sat Dec 16 12:32:16 2006
@@ -25,8 +25,8 @@
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.annotation.Autowire;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.builder.Connector;
+import org.apache.tuscany.spi.builder.WiringException;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -80,7 +80,7 @@
this.workContext = workContext;
}
- public void connect(SCAObject source) {
+ public void connect(SCAObject source) throws WiringException {
CompositeComponent parent = source.getParent();
if (source instanceof AtomicComponent) {
AtomicComponent sourceComponent = (AtomicComponent) source;
@@ -98,7 +98,7 @@
target = parent.getChild(outboundWire.getTargetName().getPartName());
}
connect(sourceComponent, outboundWire, target);
- } catch (BuilderConfigException e) {
+ } catch (WiringException e) {
e.addContextName(source.getName());
e.addContextName(parent.getName());
throw e;
@@ -148,10 +148,10 @@
OutboundWire outboundWire = service.getOutboundWire();
// For a composite reference only, since its outbound wire comes from its parent composite,
// the corresponding target would not lie in its parent but rather in its parent's parent
- if (source instanceof CompositeReference) {
- parent = parent.getParent();
- assert parent != null : "Parent of parent was null";
- }
+// if (source instanceof CompositeReference) {
+// parent = parent.getParent();
+// assert parent != null : "Parent of parent was null";
+// }
SCAObject target;
if (service.isSystem()) {
target = parent.getSystemChild(outboundWire.getTargetName().getPartName());
@@ -169,7 +169,7 @@
}
public void connect(InboundWire sourceWire, OutboundWire targetWire, boolean optimizable)
- throws BuilderConfigException {
+ throws WiringException {
Map<Operation<?>, OutboundInvocationChain> targetChains = targetWire.getInvocationChains();
// perform optimization, if possible
if (optimizable && sourceWire.getInvocationChains().isEmpty() && targetChains.isEmpty()) {
@@ -184,9 +184,16 @@
// match wire chains
OutboundInvocationChain outboundChain = targetChains.get(inboundChain.getOperation());
if (outboundChain == null) {
- // FIXME JFM
+ // FIXME JFM -------
String serviceName = sourceWire.getServiceName();
- throw new BuilderConfigException("Incompatible source and target interfaces", serviceName);
+ String sourceName = sourceWire.getContainer().getName();
+ String refName = targetWire.getReferenceName();
+ String targetName = targetWire.getContainer().getName();
+ throw new IncompatibleInterfacesException("Incompatible source and target interfaces",
+ sourceName,
+ refName,
+ targetName,
+ serviceName);
}
connect(inboundChain, outboundChain);
}
@@ -203,7 +210,8 @@
* @param targetWire the target wire to connect to
* @param optimizable true if the wire connection can be optimized
*/
- public void connect(OutboundWire sourceWire, InboundWire targetWire, boolean optimizable) {
+ public void connect(OutboundWire sourceWire, InboundWire targetWire, boolean optimizable)
+ throws IncompatibleInterfacesException, IllegalCallbackException {
SCAObject source = sourceWire.getContainer();
SCAObject target = targetWire.getContainer();
ServiceContract contract = sourceWire.getServiceContract();
@@ -224,15 +232,30 @@
Operation<?> operation = outboundChain.getOperation();
InboundInvocationChain inboundChain = targetChains.get(operation);
if (inboundChain == null) {
- String name = sourceWire.getReferenceName();
- // FIXME JFM
- throw new BuilderConfigException("Incompatible source and target interfaces for reference", name);
+ String sourceName = sourceWire.getContainer().getName();
+ String refName = sourceWire.getReferenceName();
+ String targetName = targetWire.getContainer().getName();
+ String serviceName = targetWire.getServiceName();
+ throw new IncompatibleInterfacesException("Incompatible interfaces",
+ sourceName,
+ refName,
+ targetName,
+ serviceName);
}
Operation<?> inboundOperation = inboundChain.getOperation();
boolean isOneWayOperation = operation.isNonBlocking();
boolean operationHasCallback = contract.getCallbackName() != null;
if (isOneWayOperation && operationHasCallback) {
- throw new BuilderConfigException("Operation cannot be marked one-way and have a callback");
+ String sourceName = sourceWire.getContainer().getName();
+ String refName = sourceWire.getReferenceName();
+ String targetName = targetWire.getContainer().getName();
+ String serviceName = targetWire.getServiceName();
+ throw new IllegalCallbackException("Operation cannot be marked one-way and have a callback",
+ inboundOperation.getName(),
+ sourceName,
+ refName,
+ targetName,
+ serviceName);
}
TargetInvoker invoker = null;
if (target instanceof Component) {
@@ -274,11 +297,17 @@
for (InboundInvocationChain inboundChain : sourceWire.getTargetCallbackInvocationChains().values()) {
Operation<?> operation = inboundChain.getOperation();
if (sourceCallbackChains != null && sourceCallbackChains.get(operation) != null) {
- String name = operation.getName();
- // FIXME JFM
+ String opName = operation.getName();
+ String sourceName = sourceWire.getContainer().getName();
String refName = sourceWire.getReferenceName();
- throw new BuilderConfigException("Source callback chain should not exist for operation [" + name + "]",
- refName);
+ String targetName = targetWire.getContainer().getName();
+ String serviceName = targetWire.getServiceName();
+ throw new IllegalCallbackException("Source callback chain should not exist for operation",
+ opName,
+ sourceName,
+ refName,
+ targetName,
+ serviceName);
}
Operation targetOp =
@@ -320,10 +349,7 @@
TargetInvoker invoker,
boolean nonBlocking) {
Interceptor head = targetChain.getHeadInterceptor();
- if (head == null) {
- String name = targetChain.getOperation().getName();
- throw new BuilderConfigException("No interceptor for operation", name);
- }
+ assert head != null;
if (nonBlocking) {
sourceChain.setTargetInterceptor(new NonBlockingBridgingInterceptor(scheduler, workContext, head));
} else {
@@ -350,19 +376,22 @@
* <code>AtomicComponent</code>s contained in the composite, or <code>References</code> of the composite.
*
* @param sourceWire
- * @throws BuilderConfigException
+ * @throws WiringException
*/
- private void connect(SCAObject source, OutboundWire sourceWire, SCAObject target) throws BuilderConfigException {
- assert sourceWire.getTargetName() != null : "Wire target name was null";
+ private void connect(SCAObject source, OutboundWire sourceWire, SCAObject target) throws WiringException {
+ assert sourceWire.getTargetName() != null;
QualifiedName targetName = sourceWire.getTargetName();
if (target instanceof AtomicComponent) {
AtomicComponent targetComponent = (AtomicComponent) target;
InboundWire targetWire = targetComponent.getInboundWire(targetName.getPortName());
if (targetWire == null) {
- String refName = sourceWire.getReferenceName();
- // FIXME JFM
- throw new BuilderConfigException("No target service for reference " + refName,
+ String sourceName = sourceWire.getContainer().getName();
+ String sourceReference = sourceWire.getReferenceName();
+ throw new TargetServiceNotFoundException("Target service not found",
+ sourceName,
+ sourceReference,
+ targetName.getPartName(),
targetName.getPortName());
}
checkIfWireable(sourceWire, targetWire);
@@ -411,34 +440,66 @@
}
}
if (targetWire == null) {
- throw new BuilderConfigException("No target composite service in composite");
+ String sourceName = sourceWire.getContainer().getName();
+ String sourceReference = sourceWire.getReferenceName();
+ throw new TargetServiceNotFoundException("Target service not found",
+ sourceName,
+ sourceReference,
+ targetName.getPartName(),
+ targetName.getPortName());
}
boolean optimizable = isOptimizable(source.getScope(), target.getScope());
connect(sourceWire, targetWire, optimizable);
} else if (target == null) {
- String name = sourceWire.getReferenceName();
- throw new ReferenceTargetNotFoundException(name, targetName.getQualifiedName());
+ String sourceName = sourceWire.getContainer().getName();
+ String sourceReference = sourceWire.getReferenceName();
+ throw new TargetServiceNotFoundException("Target service not found",
+ sourceName,
+ sourceReference,
+ targetName.getPartName(),
+ targetName.getPortName());
} else {
- String name = sourceWire.getReferenceName();
- // FIXME JFM
- throw new BuilderConfigException("Invalid target type for reference " + name,
- targetName.getQualifiedName());
+ String sourceName = sourceWire.getContainer().getName();
+ String sourceReference = sourceWire.getReferenceName();
+ throw new InvalidTargetTypeException("Invalid target type",
+ sourceName,
+ sourceReference,
+ targetName.getPartName(),
+ targetName.getPortName());
}
}
- private void checkIfWireable(OutboundWire sourceWire, InboundWire targetWire) {
+ private void checkIfWireable(OutboundWire sourceWire, InboundWire targetWire)
+ throws IncompatibleInterfacesException {
if (wireService == null) {
Class<?> sourceInterface = sourceWire.getServiceContract().getInterfaceClass();
Class<?> targetInterface = targetWire.getServiceContract().getInterfaceClass();
if (!sourceInterface.isAssignableFrom(targetInterface)) {
- throw new BuilderConfigException("Incompatible source and target interfaces");
+ String sourceName = sourceWire.getContainer().getName();
+ String refName = sourceWire.getReferenceName();
+ String targetName = targetWire.getContainer().getName();
+ String serviceName = targetWire.getServiceName();
+ throw new IncompatibleInterfacesException("Incompatible interfaces",
+ sourceName,
+ refName,
+ targetName,
+ serviceName);
}
} else {
try {
- wireService.checkCompatibility(sourceWire.getServiceContract(), targetWire
- .getServiceContract(), false);
+ ServiceContract sourceContract = sourceWire.getServiceContract();
+ ServiceContract targetContract = targetWire.getServiceContract();
+ wireService.checkCompatibility(sourceContract, targetContract, false);
} catch (IncompatibleServiceContractException e) {
- throw new BuilderConfigException("Incompatible source and target interfaces", e);
+ String sourceName = sourceWire.getContainer().getName();
+ String refName = sourceWire.getReferenceName();
+ String targetName = targetWire.getContainer().getName();
+ String serviceName = targetWire.getServiceName();
+ throw new IncompatibleInterfacesException("Incompatible interfaces",
+ sourceName,
+ refName,
+ targetName,
+ serviceName, e);
}
}
}
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,42 @@
+/*
+ * 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.builder;
+
+import org.apache.tuscany.spi.builder.WiringException;
+
+/**
+ * Denotes an illegal callback
+ *
+ * @version $Rev$ $Date$
+ */
+public class IllegalCallbackException extends WiringException {
+
+ public IllegalCallbackException(String message,
+ String identifier,
+ String sourceName,
+ String referenceName,
+ String targetName,
+ String serviceName) {
+ super(message, identifier);
+ setSourceName(sourceName);
+ setReferenceName(referenceName);
+ setTargetName(targetName);
+ setTargetServiceName(serviceName);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IllegalCallbackException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,54 @@
+/*
+ * 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.builder;
+
+import org.apache.tuscany.spi.builder.WiringException;
+
+/**
+ * Denotes an attempt to wire incompatible interfaces
+ *
+ * @version $Rev$ $Date$
+ */
+public class IncompatibleInterfacesException extends WiringException {
+
+
+ public IncompatibleInterfacesException(String message,
+ String sourceName,
+ String referenceName,
+ String targetName,
+ String targetServiceName) {
+ super(message);
+ setSourceName(sourceName);
+ setReferenceName(referenceName);
+ setTargetName(targetName);
+ setTargetServiceName(targetServiceName);
+ }
+
+ public IncompatibleInterfacesException(String message, String sourceName,
+ String referenceName,
+ String targetName,
+ String serviceName,
+ Throwable cause) {
+ super(message, cause);
+ setSourceName(sourceName);
+ setReferenceName(referenceName);
+ setTargetName(targetName);
+ setTargetServiceName(serviceName);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/IncompatibleInterfacesException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java Sat Dec 16 12:32:16 2006
@@ -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.core.builder;
+
+import org.apache.tuscany.spi.builder.WiringException;
+
+/**
+ * Denotes an invalid target service for a wire
+ *
+ * @version $Rev$ $Date$
+ */
+public class InvalidTargetTypeException extends WiringException {
+
+ public InvalidTargetTypeException(String message,
+ String sourceName,
+ String referenceName,
+ String targetName,
+ String serviceName) {
+ super(message);
+ setSourceName(sourceName);
+ setReferenceName(referenceName);
+ setTargetName(targetName);
+ setTargetServiceName(serviceName);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/InvalidTargetTypeException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java (from r487433, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java?view=diff&rev=487877&p1=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java&r1=487433&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/NoRegisteredBuilderException.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java Sat Dec 16 12:32:16 2006
@@ -16,7 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.spi.builder;
+package org.apache.tuscany.core.builder;
+
+import org.apache.tuscany.spi.builder.BuilderException;
/**
* Raised when a builder cannot be found for a SCDL entry type
@@ -24,18 +26,13 @@
* @version $Rev$ $Date$
*/
public class NoRegisteredBuilderException extends BuilderException {
- public NoRegisteredBuilderException() {
+
+ public NoRegisteredBuilderException(String message, String identifier) {
+ super(message, identifier);
}
public NoRegisteredBuilderException(String message) {
super(message);
}
- public NoRegisteredBuilderException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public NoRegisteredBuilderException(Throwable cause) {
- super(cause);
- }
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/NoRegisteredBuilderException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java (from r487433, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ReferenceTargetNotFoundException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java?view=diff&rev=487877&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ReferenceTargetNotFoundException.java&r1=487433&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ReferenceTargetNotFoundException.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java Sat Dec 16 12:32:16 2006
@@ -18,22 +18,25 @@
*/
package org.apache.tuscany.core.builder;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.builder.WiringException;
/**
* Indicates the target service of a reference was not found
*
* @version $Rev$ $Date$
*/
-public class ReferenceTargetNotFoundException extends BuilderConfigException {
+public class TargetServiceNotFoundException extends WiringException {
- public ReferenceTargetNotFoundException(String message) {
+ public TargetServiceNotFoundException(String message,
+ String sourceName,
+ String referenceName,
+ String targetName,
+ String serviceName) {
super(message);
+ setSourceName(sourceName);
+ setReferenceName(referenceName);
+ setTargetName(targetName);
+ setTargetServiceName(serviceName);
}
-
- public ReferenceTargetNotFoundException(String message, String identifier) {
- super(message, identifier);
- }
-
}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/TargetServiceNotFoundException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,79 @@
+/*
+ * 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.builder;
+
+import java.io.PrintWriter;
+
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+
+import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.builder.WiringException;
+
+import org.apache.tuscany.host.monitor.ExceptionFormatter;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+
+/**
+ * Formats {@link WiringException}s
+ *
+ * @version $Rev$ $Date$
+ */
+public class WiringExceptionFormatter implements ExceptionFormatter {
+ private FormatterRegistry factory;
+
+ public WiringExceptionFormatter() {
+ }
+
+ public boolean canFormat(Class<?> type) {
+ return WiringException.class.isAssignableFrom(type);
+ }
+
+ @Autowire(required = false)
+ public void setRegistry(FormatterRegistry factory) {
+ this.factory = factory;
+ }
+
+ @Init(eager = true)
+ public void init() {
+ factory.register(this);
+ }
+
+ @Destroy
+ public void destroy() {
+ factory.unregister(this);
+ }
+
+ public PrintWriter write(PrintWriter writer, Throwable exception) {
+ assert exception instanceof WiringException;
+ WiringException e = (WiringException) exception;
+ e.appendBaseMessage(writer);
+ if (e.getReferenceName() != null) {
+ writer.write("\nSource : " + e.getSourceName() + "/" + e.getReferenceName());
+ } else {
+ writer.write("\nSource : " + e.getSourceName());
+ }
+ if (e.getTargetServiceName() != null) {
+ writer.write("\nTarget : " + e.getTargetName() + "/" + e.getTargetServiceName());
+ } else {
+ writer.write("\nTarget : " + e.getTargetName());
+ }
+ e.appendContextStack(writer).append("\n");
+ return writer;
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/WiringExceptionFormatter.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Sat Dec 16 12:32:16 2006
@@ -22,9 +22,11 @@
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.Builder;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.PrepareException;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.deployer.Deployer;
@@ -68,17 +70,11 @@
}
public <I extends Implementation<?>> Component deploy(CompositeComponent parent,
- ComponentDefinition<I> componentDefinition)
- throws LoaderException {
+ ComponentDefinition<I> componentDefinition)
+ throws LoaderException, BuilderException, PrepareException {
ScopeContainer moduleScope = new ModuleScopeContainer();
DeploymentContext deploymentContext = new RootDeploymentContext(null, xmlFactory, moduleScope, null);
- try {
- load(parent, componentDefinition, deploymentContext);
- } catch (LoaderException e) {
- e.addContextName(componentDefinition.getName());
- e.addContextName(parent.getName());
- throw e;
- }
+ load(parent, componentDefinition, deploymentContext);
Component component = (Component) build(parent, componentDefinition, deploymentContext);
if (component instanceof CompositeComponent) {
CompositeComponent composite = (CompositeComponent) component;
@@ -111,8 +107,9 @@
* @return the new runtime context
*/
protected <I extends Implementation<?>> SCAObject build(CompositeComponent parent,
- ComponentDefinition<I> componentDefinition,
- DeploymentContext deploymentContext) {
+ ComponentDefinition<I> componentDefinition,
+ DeploymentContext deploymentContext)
+ throws BuilderException {
return builder.build(parent, componentDefinition, deploymentContext);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/AbstractCompositeComponent.java Sat Dec 16 12:32:16 2006
@@ -18,6 +18,7 @@
*/
package org.apache.tuscany.core.implementation.composite;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
@@ -35,7 +36,6 @@
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.core.component.ComponentInitException;
import org.apache.tuscany.core.component.event.CompositeStart;
import org.apache.tuscany.core.component.event.CompositeStop;
import org.apache.tuscany.core.implementation.system.component.SystemSingletonAtomicComponent;
@@ -63,7 +63,7 @@
/**
* @param name the name of the SCA composite
* @param parent the SCA composite parent
- * @param connector
+ * @param connector the connector for fusing wires
* @param propertyValues the values of this composite's Properties
*/
public AbstractCompositeComponent(String name,
@@ -82,6 +82,11 @@
public <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance)
throws ObjectRegistrationException {
register(new SystemSingletonAtomicComponent<S, I>(name, this, service, instance));
+ }
+
+ public <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance)
+ throws ObjectRegistrationException {
+ register(new SystemSingletonAtomicComponent<S, I>(name, this, services, instance));
}
public void start() {
Copied: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java (from r487433, incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentInitException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java?view=diff&rev=487877&p1=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentInitException.java&r1=487433&p2=incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentInitException.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java Sat Dec 16 12:32:16 2006
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.tuscany.core.component;
+package org.apache.tuscany.core.implementation.composite;
import org.apache.tuscany.spi.component.ComponentRuntimeException;
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/ComponentInitException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeBuilder.java Sat Dec 16 12:32:16 2006
@@ -21,7 +21,7 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -46,7 +46,7 @@
public Component build(CompositeComponent parent,
ComponentDefinition<CompositeImplementation> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderConfigException {
+ DeploymentContext deploymentContext) throws BuilderException {
CompositeImplementation implementation = componentDefinition.getImplementation();
CompositeComponentType<?, ?, ?> componentType = implementation.getComponentType();
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemBindingBuilder.java Sat Dec 16 12:32:16 2006
@@ -22,8 +22,8 @@
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BindingBuilder;
-import org.apache.tuscany.spi.builder.InvalidTargetTypeException;
-import org.apache.tuscany.spi.builder.MissingTargetException;
+import org.apache.tuscany.spi.builder.MissingWireTargetException;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.SystemAtomicComponent;
@@ -44,6 +44,7 @@
import org.apache.tuscany.core.implementation.system.wire.SystemOutboundAutowire;
import org.apache.tuscany.core.implementation.system.wire.SystemOutboundWire;
import org.apache.tuscany.core.implementation.system.wire.SystemOutboundWireImpl;
+import org.apache.tuscany.core.builder.InvalidTargetTypeException;
/**
* Creates {@link SystemService}s and {@link org.apache.tuscany.core.implementation.system.component.SystemReference}s
@@ -56,18 +57,23 @@
public SystemService build(CompositeComponent parent,
BoundServiceDefinition<SystemBinding> definition,
- DeploymentContext deploymentContext) {
+ DeploymentContext deploymentContext) throws BuilderException {
URI uri = definition.getTarget();
if (uri == null) {
- throw new MissingTargetException("Target URI not specified", definition.getName());
+ throw new MissingWireTargetException("Target URI not specified", definition.getName());
}
QualifiedName targetName = new QualifiedName(uri.getPath());
- SCAObject target = parent.getSystemChild(targetName.getPartName());
+ String targetComponentName = targetName.getPartName();
+ SCAObject target = parent.getSystemChild(targetComponentName);
if (target == null) {
- throw new MissingTargetException(targetName.toString());
+ throw new MissingWireTargetException(targetName.toString());
} else if (!(target instanceof SystemAtomicComponent)) {
- throw new InvalidTargetTypeException(targetName.toString());
+ throw new InvalidTargetTypeException("Target must be a system component",
+ definition.getName(),
+ null,
+ targetName.getPartName(),
+ null);
}
SystemAtomicComponent atomicComponent = (SystemAtomicComponent) target;
Class<?> interfaze = definition.getServiceContract().getInterfaceClass();
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemCompositeBuilder.java Sat Dec 16 12:32:16 2006
@@ -21,7 +21,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.builder.Connector;
@@ -57,7 +56,7 @@
@SuppressWarnings("unchecked")
public Component build(CompositeComponent parent,
ComponentDefinition<SystemCompositeImplementation> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderConfigException {
+ DeploymentContext deploymentContext) throws BuilderException {
SystemCompositeImplementation impl = componentDefinition.getImplementation();
CompositeComponentType<?, ?, ?> componentType = impl.getComponentType();
// create lists of all components and services in this composite
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemSingletonAtomicComponent.java Sat Dec 16 12:32:16 2006
@@ -26,8 +26,8 @@
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.wire.InboundWire;
@@ -50,6 +50,16 @@
this.instance = instance;
serviceInterfaces = new ArrayList<Class<?>>(1);
serviceInterfaces.add(interfaze);
+ }
+
+
+ public SystemSingletonAtomicComponent(String name,
+ CompositeComponent parent,
+ List<Class<?>> serviceInterfaces,
+ T instance) {
+ super(name, parent);
+ this.instance = instance;
+ this.serviceInterfaces = serviceInterfaces;
}
public List<Class<?>> getServiceInterfaces() {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/launcher/LauncherImpl.java Sat Dec 16 12:32:16 2006
@@ -20,7 +20,8 @@
import java.io.File;
import java.net.URL;
-
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.stream.XMLInputFactory;
import org.osoa.sca.CompositeContext;
@@ -40,6 +41,7 @@
import org.apache.tuscany.host.Launcher;
import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.host.RuntimeInfo;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
/**
* Basic launcher implementation.
@@ -50,7 +52,7 @@
/**
* A conventional META-INF based location for the system SCDL.
*
- * @see #bootRuntime(URL, MonitorFactory)
+ * @see #bootRuntime(URL,MonitorFactory)
*/
public static final String METAINF_SYSTEM_SCDL_PATH = "META-INF/tuscany/system.scdl";
@@ -87,7 +89,14 @@
parent.registerJavaObject("RuntimeInfo", RuntimeInfo.class, runtimeInfo);
// register the monitor factory
- parent.registerJavaObject("MonitorFactory", MonitorFactory.class, monitor);
+ if (monitor instanceof FormatterRegistry) {
+ List<Class<?>> interfazes = new ArrayList<Class<?>>(2);
+ interfazes.add(MonitorFactory.class);
+ interfazes.add(FormatterRegistry.class);
+ parent.registerJavaObject("MonitorFactory", interfazes, monitor);
+ } else {
+ parent.registerJavaObject("MonitorFactory", MonitorFactory.class, monitor);
+ }
parent.start();
// create a ComponentDefinition to represent the component we are going to deploy
SystemCompositeImplementation moduleImplementation = new SystemCompositeImplementation();
@@ -96,10 +105,13 @@
ComponentDefinition<SystemCompositeImplementation> definition =
new ComponentDefinition<SystemCompositeImplementation>(
ComponentNames.TUSCANY_SYSTEM, moduleImplementation);
-
- // deploy the component into the runtime under the system parent
- composite = (CompositeComponent) bootDeployer.deploy(parent, definition);
-
+ try {
+ // deploy the component into the runtime under the system parent
+ composite = (CompositeComponent) bootDeployer.deploy(parent, definition);
+ } catch (TuscanyException e) {
+ e.addContextName(definition.getName());
+ throw e;
+ }
// start the system
composite.start();
@@ -167,7 +179,6 @@
* @param appScdl URL to the SCDL defining the application
* @return a CompositeComponent for the newly booted application
* @throws LoaderException
- * @see METAINF_APPLICATION_SCDL_PATH
*/
@Deprecated
public CompositeComponent bootApplication(String name, URL appScdl) throws TuscanyException {
@@ -192,8 +203,12 @@
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
-
- return (CompositeComponent) deployer.deploy(parent, moduleDefinition);
+ try {
+ return (CompositeComponent) deployer.deploy(parent, moduleDefinition);
+ } catch (TuscanyException e) {
+ e.addContextName(moduleDefinition.getName());
+ throw e;
+ }
} finally {
Thread.currentThread().setContextClassLoader(ccl);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Sat Dec 16 12:32:16 2006
@@ -215,7 +215,7 @@
Implementation<?> impl = componentDefinition.getImplementation();
ComponentType<?, ?, ?> componentType = impl.getComponentType();
if (!componentType.getReferences().containsKey(name)) {
- throw new UndefinedReferenceException("name");
+ throw new UndefinedReferenceException(name);
}
ReferenceTarget referenceTarget = new ReferenceTarget();
referenceTarget.setReferenceName(name);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderExceptionFormatter.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderExceptionFormatter.java Sat Dec 16 12:32:16 2006
@@ -1,6 +1,6 @@
package org.apache.tuscany.core.loader;
-import java.util.logging.LogRecord;
+import java.io.PrintWriter;
import org.osoa.sca.annotations.Destroy;
import org.osoa.sca.annotations.Init;
@@ -8,7 +8,6 @@
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.host.monitor.ExceptionFormatter;
import org.apache.tuscany.host.monitor.FormatterRegistry;
@@ -18,7 +17,7 @@
* @version $Rev$ $Date$
*/
public class LoaderExceptionFormatter implements ExceptionFormatter {
- private MonitorFactory factory;
+ private FormatterRegistry factory;
public LoaderExceptionFormatter() {
}
@@ -27,41 +26,32 @@
return LoaderException.class.isAssignableFrom(type);
}
- @Autowire(required = false)
- public void setRegistry(MonitorFactory factory) {
+ @Autowire
+ public void setRegistry(FormatterRegistry factory) {
this.factory = factory;
}
@Init(eager = true)
public void init() {
- if (factory instanceof FormatterRegistry) {
- ((FormatterRegistry) factory).register(this);
- }
+ factory.register(this);
}
@Destroy
public void destroy() {
- if (factory instanceof FormatterRegistry) {
- ((FormatterRegistry) factory).unregister(this);
- }
+ factory.unregister(this);
}
- public LogRecord write(LogRecord record, Throwable exception) {
+ public PrintWriter write(PrintWriter writer, Throwable exception) {
assert exception instanceof LoaderException;
LoaderException e = (LoaderException) exception;
- StringBuilder b = new StringBuilder(256);
- e.appendBaseMessage(b);
+ e.appendBaseMessage(writer);
if (e.getLine() != LoaderException.UNDEFINED) {
- b.append("\n").append("Line: ").append(e.getLine()).append("\n");
- b.append("Column: ").append(e.getColumn()).append("\n");
+ writer.write("\nLine: " + e.getLine() + "\n");
+ writer.write("Column: " + e.getColumn());
} else {
- b.append("\n");
- }
- e.appendContextStack(b);
- if (b.length() >= 1) {
- record.setMessage(b.toString());
+ writer.write("\n");
}
- record.setThrown(exception);
- return record;
+ e.appendContextStack(writer).append("\n");
+ return writer;
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatter.java Sat Dec 16 12:32:16 2006
@@ -18,7 +18,7 @@
*/
package org.apache.tuscany.core.monitor;
-import java.util.logging.LogRecord;
+import java.io.PrintWriter;
import org.apache.tuscany.api.TuscanyException;
import org.apache.tuscany.api.TuscanyRuntimeException;
@@ -31,29 +31,24 @@
*/
public class DefaultExceptionFormatter implements ExceptionFormatter {
+ public DefaultExceptionFormatter() {
+ }
+
public boolean canFormat(Class<?> type) {
return Throwable.class.isAssignableFrom(type);
}
- public LogRecord write(LogRecord record, Throwable exception) {
+ public PrintWriter write(PrintWriter writer, Throwable exception) {
if (exception instanceof TuscanyException) {
TuscanyException e = (TuscanyException) exception;
- StringBuilder b = new StringBuilder(256);
- e.appendContextStack(e.appendBaseMessage(b));
- if (b.length() >= 1) {
- record.setMessage(b.toString());
- }
+ e.appendContextStack(e.appendBaseMessage(writer));
} else if (exception instanceof TuscanyRuntimeException) {
TuscanyRuntimeException e = (TuscanyRuntimeException) exception;
- StringBuilder b = new StringBuilder(256);
- e.appendContextStack(e.appendBaseMessage(b));
- if (b.length() >= 1) {
- record.setMessage(b.toString());
- }
- } else {
- record.setThrown(exception);
+ e.appendContextStack(e.appendBaseMessage(writer));
}
- record.setThrown(exception);
- return record;
+ writer.append("\n");
+ return writer;
}
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org