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 [2/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...
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/JavaLoggingMonitorFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/JavaLoggingMonitorFactory.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/JavaLoggingMonitorFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/JavaLoggingMonitorFactory.java Sat Dec 16 12:32:16 2006
@@ -18,6 +18,8 @@
*/
package org.apache.tuscany.core.monitor;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.lang.ref.WeakReference;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
@@ -200,7 +202,7 @@
private final Map<String, Level> methodLevels;
private final ResourceBundle bundle;
private List<ExceptionFormatter> formatters = new ArrayList<ExceptionFormatter>();
- private ExceptionFormatter defaultFormatter = new DefaultExceptionFormatter();
+ private ExceptionFormatter defaultFormatter;
public LoggingHandler(Logger logger,
Map<String, Level> methodLevels,
@@ -238,11 +240,16 @@
break;
}
}
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
if (formatter != null) {
- formatter.write(logRecord, e);
+ formatter.write(pw, e);
} else {
- defaultFormatter.write(logRecord, e);
+ defaultFormatter.write(pw, e);
}
+ format(pw, e);
+ pw.close();
+ logRecord.setMessage(writer.toString());
break;
}
}
@@ -252,5 +259,63 @@
}
return null;
}
+
+ private void format(PrintWriter writer, Throwable throwable) {
+ writer.println(throwable.getClass().getName());
+ StackTraceElement[] trace = throwable.getStackTrace();
+ for (StackTraceElement aTrace : trace) {
+ writer.println("\tat " + aTrace);
+ }
+ Throwable ourCause = throwable.getCause();
+
+ if (ourCause != null) {
+ printStackTraceAsCause(writer, ourCause, trace);
+ }
+ }
+
+ private void printStackTraceAsCause(PrintWriter pw,
+ Throwable throwable,
+ StackTraceElement[] causedTrace) {
+
+ // Compute number of frames in common between this and caused
+ StackTraceElement[] trace = throwable.getStackTrace();
+ int m = trace.length - 1;
+ int n = causedTrace.length - 1;
+ while (m >= 0 && n >= 0 && trace[m].equals(causedTrace[n])) {
+ m--;
+ n--;
+ }
+ int framesInCommon = trace.length - 1 - m;
+
+ pw.println("Caused by: " + throwable.getClass().getName());
+
+ ExceptionFormatter formatter = null;
+ for (ExceptionFormatter candidate : formatters) {
+ if (candidate.canFormat(throwable.getClass())) {
+ formatter = candidate;
+ break;
+ }
+ }
+ if (formatter != null) {
+ formatter.write(pw, throwable);
+ } else {
+ defaultFormatter.write(pw, throwable);
+ }
+
+
+ for (int i = 0; i <= m; i++) {
+ pw.println("\tat " + trace[i]);
+ }
+ if (framesInCommon != 0) {
+ pw.println("\t... " + framesInCommon + " more");
+ }
+
+ // Recurse if we have a cause
+ Throwable ourCause = throwable.getCause();
+ if (ourCause != null) {
+ printStackTraceAsCause(pw, ourCause, trace);
+ }
+ }
+
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Sat Dec 16 12:32:16 2006
@@ -21,10 +21,12 @@
import java.net.URL;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.ComponentException;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.CompositeImplementation;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
import org.apache.tuscany.core.monitor.NullMonitorFactory;
@@ -109,7 +111,7 @@
String name,
URL systemScdl,
ClassLoader systemClassLoader)
- throws LoaderException {
+ throws LoaderException, BuilderException, ComponentException {
SystemCompositeImplementation impl = new SystemCompositeImplementation();
impl.setScdlLocation(systemScdl);
@@ -125,7 +127,7 @@
String name,
URL applicationScdl,
ClassLoader applicationClassLoader)
- throws LoaderException {
+ throws LoaderException, BuilderException, ComponentException {
CompositeImplementation impl = new CompositeImplementation();
impl.setScdlLocation(applicationScdl);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java Sat Dec 16 12:32:16 2006
@@ -27,10 +27,12 @@
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.ComponentException;
import org.apache.tuscany.spi.deployer.CompositeClassLoader;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.builder.BuilderException;
/**
* @version $Rev$ $Date$
@@ -101,13 +103,20 @@
// ClassLoader contextCL = Thread.currentThread().getContextClassLoader();
try {
// Thread.currentThread().setContextClassLoader(extensionCL);
- Component component = deployer.deploy(parent, definition);
- component.start();
+ Component component = null;
+ try {
+ component = deployer.deploy(parent, definition);
+ component.start();
+ } catch (BuilderException e) {
+ // FIXME JFM handle the exception
+ e.printStackTrace();
+ } catch (ComponentException e) {
+ // FIXME handle the exception
+ e.printStackTrace();
+ }
} catch (LoaderException e) {
// FIXME handle the exception
e.printStackTrace();
- } finally {
- // Thread.currentThread().setContextClassLoader(contextCL);
}
}
}
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,102 @@
+/*
+ * 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.wire;
+
+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.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
+
+import org.apache.tuscany.host.monitor.ExceptionFormatter;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+
+/**
+ * Formats {@link org.apache.tuscany.spi.wire.IncompatibleServiceContractException} for JDK logging
+ *
+ * @version $Rev$ $Date$
+ */
+public class IncompatibleServiceContractExceptionFormatter implements ExceptionFormatter {
+ private FormatterRegistry factory;
+
+ public IncompatibleServiceContractExceptionFormatter() {
+ }
+
+ public boolean canFormat(Class<?> type) {
+ return IncompatibleServiceContractException.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 IncompatibleServiceContractException;
+ IncompatibleServiceContractException e = (IncompatibleServiceContractException) exception;
+ e.appendBaseMessage(writer);
+ ServiceContract<?> source = e.getSource();
+ String sourceContractName = null;
+ if (source != null) {
+ sourceContractName = source.getInterfaceName();
+ }
+ Operation<?> sourceOperation = e.getSourceOperation();
+ String sourceOpName = null;
+ if (sourceOperation != null) {
+ sourceOpName = sourceOperation.getName();
+ }
+ if (sourceOpName == null) {
+ writer.write("\nSource Contract: " + sourceContractName);
+ } else {
+ writer.write("\nSource Contract: " + sourceContractName + "/" + sourceOpName);
+ }
+ ServiceContract<?> target = e.getTarget();
+ String targetContractName = null;
+ if (target != null) {
+ targetContractName = target.getInterfaceName();
+ }
+ Operation<?> targetOperation = e.getTargetOperation();
+ String targetOpName = null;
+ if (targetOperation != null) {
+ targetOpName = targetOperation.getName();
+ }
+ if (targetOpName == null) {
+ writer.write("\nTarget Contract: " + targetContractName + "\n");
+ } else {
+ writer.write("\nTarget Contract: " + targetContractName + "/" + targetOpName + "\n");
+
+ }
+ e.appendContextStack(writer);
+ return writer;
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatter.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/spi/deployer/DeploymentMonitor.java Sat Dec 16 12:32:16 2006
@@ -1,7 +1,6 @@
package org.apache.tuscany.spi.deployer;
-import org.apache.tuscany.spi.loader.LoaderException;
-
+import org.apache.tuscany.api.TuscanyException;
import org.apache.tuscany.api.annotation.LogLevel;
/**
@@ -16,6 +15,6 @@
void endDeployment();
@LogLevel("SEVERE")
- void deploymentError(LoaderException e);
+ void deploymentError(TuscanyException e);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/resources/org/apache/tuscany/core/formatters.scdl Sat Dec 16 12:32:16 2006
@@ -30,4 +30,14 @@
<system:implementation.system class="org.apache.tuscany.core.loader.LoaderExceptionFormatter"/>
</component>
+ <component name="IncompatibleServiceContractExceptionFormatter">
+ <system:implementation.system
+ class="org.apache.tuscany.core.wire.IncompatibleServiceContractExceptionFormatter"/>
+ </component>
+
+ <component name="WireExceptionExceptionFormatter">
+ <system:implementation.system
+ class="org.apache.tuscany.core.builder.WiringExceptionFormatter"/>
+ </component>
+
</composite>
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/BuilderRegistryTestCase.java Sat Dec 16 12:32:16 2006
@@ -39,7 +39,7 @@
private DeploymentContext deploymentContext;
private BuilderRegistryImpl registry;
- public void testRegistrationWithoutGenerics() {
+ public void testRegistrationWithoutGenerics() throws Exception {
RawBuilder builder = new RawBuilder();
registry.register(CompositeImplementation.class, builder);
CompositeImplementation implementation = new CompositeImplementation();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplTestCase.java Sat Dec 16 12:32:16 2006
@@ -29,6 +29,7 @@
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.idl.java.JavaServiceContract;
import org.apache.tuscany.spi.model.Operation;
@@ -56,7 +57,7 @@
private Interceptor headInterceptor;
private Interceptor tailInterceptor;
- public void testConnectReferenceWires() {
+ public void testConnectReferenceWires() throws Exception {
// create the inbound wire and chain
InboundInvocationChain inboundChain = EasyMock.createMock(InboundInvocationChain.class);
@@ -100,7 +101,7 @@
EasyMock.verify(outboundChain);
}
- public void testConnectServiceWires() {
+ public void testConnectServiceWires() throws Exception {
// create the inbound wire and chain for the target
InboundInvocationChain targetChain = EasyMock.createMock(InboundInvocationChain.class);
EasyMock.expect(targetChain.getOperation()).andReturn(operation).atLeastOnce();
@@ -266,7 +267,7 @@
EasyMock.verify(target);
}
- public void testConnectInboundAtomicComponentWires() {
+ public void testConnectInboundAtomicComponentWires() throws Exception {
// create the inbound wire and chain
InboundInvocationChain chain = EasyMock.createMock(InboundInvocationChain.class);
EasyMock.expect(chain.getOperation()).andReturn(operation).atLeastOnce();
@@ -301,7 +302,7 @@
EasyMock.verify(chain);
}
- public void testConnectTargetNotFound() {
+ public void testConnectTargetNotFound() throws Exception {
CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
EasyMock.expect(parent.getName()).andReturn("parent");
parent.getChild(EasyMock.isA(String.class));
@@ -312,6 +313,7 @@
EasyMock.expect(outboundWire.getTargetName()).andReturn(new QualifiedName("target/FooService")).anyTimes();
EasyMock.expect(outboundWire.getInvocationChains()).andReturn(null).anyTimes();
EasyMock.expect(outboundWire.getReferenceName()).andReturn("nothtere");
+ EasyMock.expect(outboundWire.getContainer()).andReturn(EasyMock.createNiceMock(SCAObject.class));
outboundWire.getTargetCallbackInvocationChains();
EasyMock.expectLastCall().andReturn(Collections.emptyMap());
EasyMock.replay(outboundWire);
@@ -330,14 +332,14 @@
try {
connector.connect(source);
fail();
- } catch (ReferenceTargetNotFoundException e) {
+ } catch (TargetServiceNotFoundException e) {
// expected
}
EasyMock.verify(source);
}
- public void testOutboundToInboundOptimization() {
+ public void testOutboundToInboundOptimization() throws Exception {
InboundWire inboundWire = EasyMock.createMock(InboundWire.class);
EasyMock.expect(inboundWire.getContainer()).andReturn(null);
inboundWire.getInvocationChains();
@@ -389,7 +391,7 @@
EasyMock.verify(inboundChain);
}
- public void testOutboundWireToInboundReferenceTarget() {
+ public void testOutboundWireToInboundReferenceTarget() throws Exception {
AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
EasyMock.expect(component.getName()).andReturn("foo");
EasyMock.replay(component);
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.builder;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class IllegalCallbackExceptionTestCase extends TestCase {
+
+ public void testInstantiation() throws Exception {
+ IllegalCallbackException e = new IllegalCallbackException("message",
+ "identifier",
+ "source name",
+ "ref name",
+ "target name",
+ "service name");
+ assertEquals("message", e.getMessage());
+ assertEquals("identifier", e.getIdentifier());
+ assertEquals("source name", e.getSourceName());
+ assertEquals("ref name", e.getReferenceName());
+ assertEquals("target name", e.getTargetName());
+ assertEquals("service name", e.getTargetServiceName());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IllegalCallbackExceptionTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.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 junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class IncompatibleInterfacesExceptionTestCase extends TestCase {
+
+ public void testInstantiation() throws Exception {
+ IncompatibleInterfacesException e = new IncompatibleInterfacesException("message",
+ "source name",
+ "ref name",
+ "target name",
+ "service name");
+ assertEquals("message", e.getMessage());
+ assertEquals("source name", e.getSourceName());
+ assertEquals("ref name", e.getReferenceName());
+ assertEquals("target name", e.getTargetName());
+ assertEquals("service name", e.getTargetServiceName());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/IncompatibleInterfacesExceptionTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.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 junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class InvalidTargetTypeExceptionTestCase extends TestCase {
+
+ public void testInstantiation() throws Exception {
+ InvalidTargetTypeException e = new InvalidTargetTypeException("message",
+ "source name",
+ "ref name",
+ "target name",
+ "service name");
+ assertEquals("message", e.getMessage());
+ assertEquals("source name", e.getSourceName());
+ assertEquals("ref name", e.getReferenceName());
+ assertEquals("target name", e.getTargetName());
+ assertEquals("service name", e.getTargetServiceName());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/InvalidTargetTypeExceptionTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.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 junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TargetServiceNotFoundExceptionTestCase extends TestCase {
+
+ public void testInstantiation() throws Exception {
+ TargetServiceNotFoundException e = new TargetServiceNotFoundException("message",
+ "source name",
+ "ref name",
+ "target name",
+ "service name");
+ assertEquals("message", e.getMessage());
+ assertEquals("source name", e.getSourceName());
+ assertEquals("ref name", e.getReferenceName());
+ assertEquals("target name", e.getTargetName());
+ assertEquals("service name", e.getTargetServiceName());
+
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/TargetServiceNotFoundExceptionTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.builder;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import org.apache.tuscany.spi.builder.WiringException;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class WiringExceptionFormatterTestCase extends TestCase {
+ WiringExceptionFormatter formatter = new WiringExceptionFormatter();
+
+ public void testFormat() throws Exception {
+ WiringException e = new MockWiringException("message",
+ "identifier",
+ "source name",
+ "ref name",
+ "target name",
+ "service name");
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ formatter.write(pw, e);
+ String buffer = writer.toString();
+ assertTrue(buffer.indexOf("message") >= 0);
+ assertTrue(buffer.indexOf("identifier") >= 0);
+ assertTrue(buffer.indexOf("source name") >= 0);
+ assertTrue(buffer.indexOf("ref name") >= 0);
+ assertTrue(buffer.indexOf("target name") >= 0);
+ assertTrue(buffer.indexOf("service name") >= 0);
+ }
+
+
+ public void testFormatNulls() throws Exception {
+ WiringException e = new MockWiringException("message",
+ "identifier",
+ "source name",
+ null,
+ "target name",
+ null);
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ formatter.write(pw, e);
+ String buffer = writer.toString();
+ assertTrue(buffer.indexOf("message") >= 0);
+ assertTrue(buffer.indexOf("identifier") >= 0);
+ assertTrue(buffer.indexOf("source name") >= 0);
+ assertTrue(buffer.indexOf("target name") >= 0);
+ }
+
+ private class MockWiringException extends WiringException {
+
+ public MockWiringException(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/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/WiringExceptionFormatterTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java Sat Dec 16 12:32:16 2006
@@ -108,7 +108,7 @@
assertEquals(1, included.getComponents().size());
}
- public void testBoot1Deployment() throws LoaderException {
+ public void testBoot1Deployment() throws Exception {
URL scdl = BootstrapDeployerTestCase.class.getResource("boot1.scdl");
implementation.setScdlLocation(scdl);
CompositeComponent parent = createNiceMock(CompositeComponent.class);
@@ -121,7 +121,7 @@
verify(parent);
}
- public void testBoot2Deployment() throws LoaderException {
+ public void testBoot2Deployment() throws Exception {
URL scdl = BootstrapDeployerTestCase.class.getResource("boot2.scdl");
implementation.setScdlLocation(scdl);
CompositeComponent parent = createNiceMock(CompositeComponent.class);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplBasicTestCase.java Sat Dec 16 12:32:16 2006
@@ -186,7 +186,7 @@
composite.onEvent(event);
}
- public void testPrepare() {
+ public void testPrepare() throws Exception {
CompositeComponent composite = new CompositeComponentImpl("parent", null, null, null);
composite.prepare();
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImplSystemWireTestCase.java Sat Dec 16 12:32:16 2006
@@ -25,10 +25,11 @@
import java.util.Map;
import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.PrepareException;
import org.apache.tuscany.spi.component.SystemAtomicComponent;
+import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.idl.java.JavaServiceContract;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.wire.InboundWire;
@@ -46,7 +47,7 @@
/**
* Verifies system services in a CompositeComponentImpl are wired during the parent composite's prepare callback
*/
- public void testSystemServiceWire() {
+ public void testSystemServiceWire() throws Exception {
InboundWire inbound = EasyMock.createMock(InboundWire.class);
EasyMock.expect(inbound.getServiceContract()).andReturn(new JavaServiceContract(Foo.class));
inbound.getInvocationChains();
@@ -114,7 +115,7 @@
/**
* Verifies an application component cannot be wired to a system service in the same composite
*/
- public void testSystemServiceIsolationWire() {
+ public void testSystemServiceIsolationWire() throws Exception {
InboundWire inbound = EasyMock.createMock(InboundWire.class);
EasyMock.replay(inbound);
@@ -122,6 +123,7 @@
services.add(Foo.class);
QualifiedName qName = new QualifiedName("target/bar");
OutboundWire outbound = EasyMock.createMock(OutboundWire.class);
+ EasyMock.expect(outbound.getContainer()).andReturn(EasyMock.createNiceMock(SCAObject.class));
EasyMock.expect(outbound.getReferenceName()).andReturn("foo");
EasyMock.expect(outbound.getTargetName()).andReturn(qName).atLeastOnce();
EasyMock.replay(outbound);
@@ -151,7 +153,7 @@
try {
parent.prepare();
fail();
- } catch (BuilderConfigException e) {
+ } catch (PrepareException e) {
//expected
}
EasyMock.verify(source);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/OutboundWireToJavaTestCase.java Sat Dec 16 12:32:16 2006
@@ -25,6 +25,7 @@
import java.util.concurrent.FutureTask;
import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.builder.WiringException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.WorkContext;
@@ -175,7 +176,7 @@
}
private OutboundWire getWire(ScopeContainer scope) throws NoSuchMethodException,
- InvalidServiceContractException {
+ InvalidServiceContractException, WiringException {
ConnectorImpl connector = new ConnectorImpl();
CompositeComponent parent = EasyMock.createMock(CompositeComponent.class);
PojoConfiguration configuration = new PojoConfiguration();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/LoaderExceptionFormatterTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/LoaderExceptionFormatterTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/LoaderExceptionFormatterTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/LoaderExceptionFormatterTestCase.java Sat Dec 16 12:32:16 2006
@@ -18,8 +18,8 @@
*/
package org.apache.tuscany.core.loader;
-import java.util.logging.Level;
-import java.util.logging.LogRecord;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import org.apache.tuscany.spi.loader.LoaderException;
@@ -32,11 +32,12 @@
public void testLog() {
LoaderExceptionFormatter formatter = new LoaderExceptionFormatter();
- LogRecord record = new LogRecord(Level.SEVERE, "message");
LoaderException e = new LoaderException("test");
- formatter.write(record, e);
- assertEquals(e, record.getThrown());
- assertTrue(!"message".equals(record.getMessage()));
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ formatter.write(pw, e);
+ pw.close();
+ assertTrue(!"message".equals(writer.toString()));
}
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,63 @@
+/*
+ * 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.monitor;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import junit.framework.TestCase;
+import org.apache.tuscany.api.TuscanyException;
+import org.apache.tuscany.api.TuscanyRuntimeException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class DefaultExceptionFormatterTestCase extends TestCase {
+ private DefaultExceptionFormatter formatter = new DefaultExceptionFormatter();
+
+ public void testTuscanyExceptionFormat() throws Exception {
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ TuscanyException e = new TuscanyException("somemessage") {
+ };
+ e.addContextName("somecontext");
+ formatter.write(pw, e);
+ assertTrue(writer.toString().indexOf("somemessage") >= 0);
+ assertTrue(writer.toString().indexOf("somecontext") >= 0);
+ }
+
+ public void testTuscanyRuntimeExceptionFormat() throws Exception {
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ TuscanyRuntimeException e = new TuscanyRuntimeException("somemessage") {
+ };
+ e.addContextName("somecontext");
+ formatter.write(pw, e);
+ assertTrue(writer.toString().indexOf("somemessage") >= 0);
+ assertTrue(writer.toString().indexOf("somecontext") >= 0);
+ }
+
+ public void testNormalExceptionFormat() throws Exception {
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ Exception e = new Exception();
+ formatter.write(pw, e); // just verify there are no errors since no formatting needs to be doen
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/DefaultExceptionFormatterTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/JavaLoggingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/JavaLoggingTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/JavaLoggingTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/monitor/JavaLoggingTestCase.java Sat Dec 16 12:32:16 2006
@@ -86,21 +86,6 @@
}
/**
- * Test a Throwable is logged when passed to an event.
- */
- public void testEventWithThrowable() {
- Exception e = new Exception();
- Monitor mon = factory.getMonitor(Monitor.class);
- mon.eventWithThrowable(e);
- assertEquals(1, HANDLER.logs.size());
- LogRecord record = HANDLER.logs.get(0);
- assertEquals(Level.WARNING, record.getLevel());
- assertEquals(LOGGER.getName(), record.getLoggerName());
- assertEquals(Monitor.class.getName() + "#eventWithThrowable", record.getMessage());
- assertSame(e, record.getThrown());
- }
-
- /**
* Test the argument is logged.
*/
public void testEventWithOneArg() {
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.core.wire;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class IncompatibleServiceContractExceptionFormatterTestCase extends TestCase {
+ IncompatibleServiceContractExceptionFormatter formatter = new IncompatibleServiceContractExceptionFormatter();
+
+ public void testFormat() throws Exception {
+ ServiceContract<Object> source = new ServiceContract<Object>() {
+ };
+ source.setInterfaceName("sourceInterface");
+ ServiceContract<Object> target = new ServiceContract<Object>() {
+ };
+ target.setInterfaceName("targetInterface");
+ Operation<Object> sourceOp = new Operation<Object>("sourceOp", null, null, null);
+ Operation<Object> targetOp = new Operation<Object>("targetOp", null, null, null);
+
+ IncompatibleServiceContractException e =
+ new IncompatibleServiceContractException("message", source, target, sourceOp, targetOp);
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ formatter.write(pw, e);
+ String buffer = writer.toString();
+ assertTrue(buffer.indexOf("message") >= 0);
+ assertTrue(buffer.indexOf("sourceInterface") >= 0);
+ assertTrue(buffer.indexOf("targetInterface") >= 0);
+ assertTrue(buffer.indexOf("sourceOp") >= 0);
+ assertTrue(buffer.indexOf("targetOp") >= 0);
+ }
+
+
+ public void testFormatNulls() throws Exception {
+ ServiceContract<Object> source = new ServiceContract<Object>() {
+ };
+ source.setInterfaceName("sourceInterface");
+ ServiceContract<Object> target = new ServiceContract<Object>() {
+ };
+ target.setInterfaceName("targetInterface");
+
+ IncompatibleServiceContractException e =
+ new IncompatibleServiceContractException("message", source, target);
+ StringWriter writer = new StringWriter();
+ PrintWriter pw = new PrintWriter(writer);
+ formatter.write(pw, e);
+ String buffer = writer.toString();
+ assertTrue(buffer.indexOf("message") >= 0);
+ assertTrue(buffer.indexOf("sourceInterface") >= 0);
+ assertTrue(buffer.indexOf("targetInterface") >= 0);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/IncompatibleServiceContractExceptionFormatterTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/ExceptionFormatter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/ExceptionFormatter.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/ExceptionFormatter.java (original)
+++ incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/ExceptionFormatter.java Sat Dec 16 12:32:16 2006
@@ -18,10 +18,10 @@
*/
package org.apache.tuscany.host.monitor;
-import java.util.logging.LogRecord;
+import java.io.PrintWriter;
/**
- * Formats exception data during a monitor event for JDK logging
+ * Formats exception data during a monitor event
*
* @version $Rev$ $Date$
*/
@@ -29,6 +29,6 @@
boolean canFormat(Class<?> type);
- LogRecord write(LogRecord record, Throwable exception);
+ PrintWriter write(PrintWriter writer, Throwable exception);
}
Modified: incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/FormatterRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/FormatterRegistry.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/FormatterRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/monitor/FormatterRegistry.java Sat Dec 16 12:32:16 2006
@@ -19,7 +19,7 @@
package org.apache.tuscany.host.monitor;
/**
- * A registry for JDK logging exception formatters
+ * A registry for exception formatters
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/BuilderException.java Sat Dec 16 12:32:16 2006
@@ -18,14 +18,14 @@
*/
package org.apache.tuscany.spi.builder;
-import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.api.TuscanyException;
/**
* The root exception for the builder package. Builder exceptions denote a non-recoverable failure.
*
* @version $Rev$ $Date$
*/
-public abstract class BuilderException extends CoreRuntimeException {
+public abstract class BuilderException extends TuscanyException {
public BuilderException() {
super();
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/ComponentBuilder.java Sat Dec 16 12:32:16 2006
@@ -32,5 +32,5 @@
public interface ComponentBuilder<I extends Implementation<?>> {
Component build(CompositeComponent parent,
ComponentDefinition<I> componentDefinition,
- DeploymentContext deploymentContext) throws BuilderConfigException;
+ DeploymentContext deploymentContext) throws BuilderException;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/Connector.java Sat Dec 16 12:32:16 2006
@@ -34,9 +34,9 @@
* chains.
*
* @param source the source, i.e. a <code>Service</code>, <code>Component</code>, or <code>Reference</code>
- * @throws BuilderConfigException
+ * @throws WiringException
*/
- void connect(SCAObject source) throws BuilderConfigException;
+ void connect(SCAObject source) throws WiringException;
/**
* Bridges the invocation chains associated with an inbound and outbound wire.
@@ -44,9 +44,9 @@
* @param inbound the wire to bridge from
* @param outbound the target wire
* @param optimizable if the bridge may be optimized
- * @throws BuilderConfigException
+ * @throws WiringException
*/
void connect(InboundWire inbound, OutboundWire outbound, boolean optimizable)
- throws BuilderConfigException;
+ throws WiringException;
}
Copied: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java (from r487433, incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java?view=diff&rev=487877&p1=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java&r1=487433&p2=incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingTargetException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java Sat Dec 16 12:32:16 2006
@@ -23,13 +23,13 @@
*
* @version $Rev$ $Date$
*/
-public class MissingTargetException extends BuilderConfigException {
+public class MissingWireTargetException extends WiringException {
- public MissingTargetException(String message) {
+ public MissingWireTargetException(String message) {
super(message);
}
- public MissingTargetException(String message, String identifier) {
+ public MissingWireTargetException(String message, String identifier) {
super(message, identifier);
}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/MissingWireTargetException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,120 @@
+/*
+ * 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.spi.builder;
+
+/**
+ * Denotes a general error raised during wiring
+ *
+ * @version $Rev$ $Date$
+ */
+public abstract class WiringException extends BuilderException {
+ private String sourceName;
+ private String referenceName;
+ private String targetName;
+ private String targetServiceName;
+
+ protected WiringException(String message) {
+ super(message);
+ }
+
+ protected WiringException(String message, String identifier) {
+ super(message, identifier);
+ }
+
+ protected WiringException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ protected WiringException(Throwable cause) {
+ super(cause);
+ }
+
+ /**
+ * Returns the source name for the wire
+ *
+ * @return the source name the source name for the wire
+ */
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ /**
+ * Sets the source name for the wire
+ *
+ * @param sourceName the source name for the wire
+ */
+ public void setSourceName(String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ /**
+ * Returns the target name for the wire
+ *
+ * @return the target name the source name for the wire
+ */
+ public String getTargetName() {
+ return targetName;
+ }
+
+ /**
+ * Sets the target name for the wire
+ *
+ * @param targetName the source name for the wire
+ */
+ public void setTargetName(String targetName) {
+ this.targetName = targetName;
+ }
+
+
+ /**
+ * Returns the source reference name for the wire
+ *
+ * @return the source reference name for the wire
+ */
+ public String getReferenceName() {
+ return referenceName;
+ }
+
+ /**
+ * Sets the source reference name for the wire
+ *
+ * @param referenceName the source reference name for the wire
+ */
+ public void setReferenceName(String referenceName) {
+ this.referenceName = referenceName;
+ }
+
+ /**
+ * Returns the target service name for the wire
+ *
+ * @return the target service name for the wire
+ */
+ public String getTargetServiceName() {
+ return targetServiceName;
+ }
+
+ /**
+ * Sets the target service name for the wire
+ *
+ * @param targetServiceName the target service name for the wire
+ */
+ public void setTargetServiceName(String targetServiceName) {
+ this.targetServiceName = targetServiceName;
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/WiringException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/AbstractSCAObject.java Sat Dec 16 12:32:16 2006
@@ -116,7 +116,7 @@
return listeners;
}
- public void prepare() {
+ public void prepare() throws PrepareException {
}
Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,50 @@
+/*
+ * 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.spi.component;
+
+import org.apache.tuscany.api.TuscanyException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public abstract class ComponentException extends TuscanyException {
+
+ protected ComponentException() {
+ }
+
+ protected ComponentException(String message) {
+ super(message);
+ }
+
+ protected ComponentException(String message, String identifier) {
+ super(message, identifier);
+ }
+
+ protected ComponentException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ protected ComponentException(String message, String identifier, Throwable cause) {
+ super(message, identifier, cause);
+ }
+
+ protected ComponentException(Throwable cause) {
+ super(cause);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ComponentRuntimeException.java Sat Dec 16 12:32:16 2006
@@ -25,7 +25,7 @@
*
* @version $Rev$ $Date$
*/
-public class ComponentRuntimeException extends CoreRuntimeException {
+public abstract class ComponentRuntimeException extends CoreRuntimeException {
public ComponentRuntimeException() {
super();
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java Sat Dec 16 12:32:16 2006
@@ -38,7 +38,7 @@
*
* @param context the context to add as a child
* @throws InvalidComponentTypeException
- */
+ */
void register(SCAObject context) throws InvalidComponentTypeException;
/**
@@ -54,6 +54,18 @@
throws ObjectRegistrationException;
/**
+ * Register a simple Java Object as a system component. This is primarily intended for use by bootstrap code to
+ * create the initial configuration components.
+ *
+ * @param name the name of the resulting component
+ * @param services the service interfaces the component should expose
+ * @param instance the Object that will become the component's implementation
+ * @throws ObjectRegistrationException
+ */
+ <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance)
+ throws ObjectRegistrationException;
+
+ /**
* Returns the child associated with a given name
*/
SCAObject getChild(String name);
@@ -125,7 +137,7 @@
<T> T locateSystemService(Class<T> serviceInterface, String serviceName);
/**
- * @param scopeContainer
+ * @param scopeContainer the scope container associated with the composite
*/
void setScopeContainer(ScopeContainer scopeContainer);
Added: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java?view=auto&rev=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java Sat Dec 16 12:32:16 2006
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.spi.component;
+
+/**
+ * Denotes an exception preparing a component
+ *
+ * @version $Rev$ $Date$
+ */
+public class PrepareException extends ComponentException {
+
+ public PrepareException(String message, String identifier) {
+ super(message, identifier);
+ }
+
+ public PrepareException(String message, String identifier, Throwable cause) {
+ super(message, identifier, cause);
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/PrepareException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/SCAObject.java Sat Dec 16 12:32:16 2006
@@ -62,7 +62,7 @@
* Called to signal that the composite should perform and required steps prior to registration with its parent such
* as wiring of its children
*/
- void prepare();
+ void prepare() throws PrepareException;
/**
* The extensions map contains other runtime context such as type systems for various databindings
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java Sat Dec 16 12:32:16 2006
@@ -18,7 +18,9 @@
*/
package org.apache.tuscany.spi.deployer;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.ComponentException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
@@ -41,6 +43,6 @@
* @return the newly deployed component
*/
<I extends Implementation<?>> Component deploy(CompositeComponent parent,
- ComponentDefinition<I> componentDefinition)
- throws LoaderException;
+ ComponentDefinition<I> componentDefinition)
+ throws LoaderException, BuilderException, ComponentException;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/BindingBuilderExtension.java Sat Dec 16 12:32:16 2006
@@ -23,6 +23,7 @@
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BindingBuilder;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.Reference;
@@ -61,14 +62,14 @@
}
public Service build(CompositeComponent parent,
- BoundServiceDefinition<B> boundServiceDefinition,
- DeploymentContext deploymentContext) {
+ BoundServiceDefinition<B> boundServiceDefinition,
+ DeploymentContext deploymentContext) throws BuilderException {
return null;
}
public Reference build(CompositeComponent parent,
BoundReferenceDefinition<B> boundReferenceDefinition,
- DeploymentContext deploymentContext) {
+ DeploymentContext deploymentContext) throws BuilderException {
return null;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java Sat Dec 16 12:32:16 2006
@@ -29,6 +29,7 @@
import org.apache.tuscany.spi.CoreRuntimeException;
import org.apache.tuscany.spi.builder.Connector;
+import org.apache.tuscany.spi.builder.WiringException;
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.AutowireResolutionException;
@@ -37,6 +38,7 @@
import org.apache.tuscany.spi.component.DuplicateNameException;
import org.apache.tuscany.spi.component.IllegalTargetException;
import org.apache.tuscany.spi.component.ObjectRegistrationException;
+import org.apache.tuscany.spi.component.PrepareException;
import org.apache.tuscany.spi.component.Reference;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.Service;
@@ -93,6 +95,11 @@
throw new UnsupportedOperationException();
}
+ public <S, I extends S> void registerJavaObject(String name, List<Class<?>> services, I instance)
+ throws ObjectRegistrationException {
+ throw new UnsupportedOperationException();
+ }
+
public Document getPropertyValue(String name) {
return propertyValues.get(name);
}
@@ -393,7 +400,7 @@
}
}
- public void prepare() {
+ public void prepare() throws PrepareException {
// Connect services and references first so that their wires are linked first
List<SCAObject> childList = new ArrayList<SCAObject>();
for (SCAObject child : systemChildren.values()) {
@@ -407,8 +414,14 @@
for (SCAObject child : childList) {
// connect all children
// TODO for composite wires, should delegate down
- connector.connect(child);
- child.prepare();
+ try {
+ connector.connect(child);
+ child.prepare();
+ } catch (PrepareException e) {
+ e.addContextName(getName());
+ } catch (WiringException e) {
+ throw new PrepareException("Error preparing composite", getName(), e);
+ }
}
// connect application artifacts
@@ -423,8 +436,14 @@
for (SCAObject child : childList) {
// connect all children
// TODO for composite wires, should delegate down
- connector.connect(child);
- child.prepare();
+ try {
+ connector.connect(child);
+ child.prepare();
+ } catch (PrepareException e) {
+ e.addContextName(getName());
+ } catch (WiringException e) {
+ throw new PrepareException("Error preparing composite", getName(), e);
+ }
}
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/IncompatibleServiceContractException.java Sat Dec 16 12:32:16 2006
@@ -19,15 +19,17 @@
package org.apache.tuscany.spi.wire;
-import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+
+import org.apache.tuscany.api.TuscanyException;
/**
* Denotes imcompatible service contracts for a wire
*
* @version $Rev$ $Date$
*/
-public class IncompatibleServiceContractException extends WireException {
+public class IncompatibleServiceContractException extends TuscanyException {
private static final long serialVersionUID = 5127478601823295587L;
private final ServiceContract<?> source;
private final ServiceContract<?> target;
@@ -35,7 +37,7 @@
private final Operation<?> targetOperation;
public IncompatibleServiceContractException(String message, ServiceContract<?> source, ServiceContract<?> target) {
- super(message, null);
+ super(message, (String) null);
this.source = source;
this.target = target;
this.sourceOperation = null;
@@ -47,7 +49,7 @@
ServiceContract<?> source,
ServiceContract<?> target,
Operation<?> sourceOperation, Operation<?> targetOperation) {
- super(message, null);
+ super(message, (String) null);
this.source = source;
this.target = target;
this.sourceOperation = sourceOperation;
@@ -61,7 +63,6 @@
public ServiceContract<?> getSource() {
return source;
}
-
public Operation<?> getSourceOperation() {
return sourceOperation;
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/component/AbstractSCAObjectTestCase.java Sat Dec 16 12:32:16 2006
@@ -84,7 +84,7 @@
}
- public void testToPrepare() {
+ public void testToPrepare() throws Exception {
SCAObject object = new TestSCAObject("foo", null);
object.prepare();
}
Modified: incubator/tuscany/java/sca/runtime/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java?view=diff&rev=487877&r1=487876&r2=487877
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java Sat Dec 16 12:32:16 2006
@@ -25,8 +25,10 @@
import org.apache.tuscany.spi.bootstrap.ComponentNames;
import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.ComponentException;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
@@ -93,6 +95,12 @@
context = new CompositeContextImpl(application);
} catch (LoaderException e) {
+ // FIXME do something with this
+ e.printStackTrace();
+ } catch (BuilderException e) {
+ // FIXME do something with this
+ e.printStackTrace();
+ } catch (ComponentException e) {
// FIXME do something with this
e.printStackTrace();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org