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 2007/02/21 05:42:56 UTC
svn commit: r509890 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/builder/
core/src/main/java/org/apache/tuscany/core/component/
core/src/main/java/org/apache/tuscany/core/implementation/
core/src/main/java/org/apa...
Author: jmarino
Date: Tue Feb 20 20:42:55 2007
New Revision: 509890
URL: http://svn.apache.org/viewvc?view=rev&rev=509890
Log:
cleanup conversations and callbacks
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java (with props)
Modified:
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/component/ComponentManagerImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/WorkContextImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.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/NullMonitorFactory.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.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/wire/NonBlockingInterceptor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerNonBlockingInvocationTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/WireToScopedJavaTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/MonitorFactory.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
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=509890&r1=509889&r2=509890
==============================================================================
--- 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 Tue Feb 20 20:42:55 2007
@@ -367,7 +367,6 @@
wire.addInvocationChain(operation, chain);
}
- wire.setCallbackReferenceName(contract.getCallbackName());
for (Operation<?> operation : contract.getCallbackOperations().values()) {
InvocationChain chain = new InvocationChainImpl(operation);
if (operation.isNonBlocking()) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java Tue Feb 20 20:42:55 2007
@@ -75,7 +75,7 @@
register(component);
if (resolver != null) {
for (ServiceContract contract : component.getServiceContracts()) {
- resolver.addPrimordialUri(contract, uri);
+ resolver.addHostUri(contract, uri);
}
}
}
@@ -87,7 +87,7 @@
register(component);
if (resolver != null) {
for (ServiceContract contract : component.getServiceContracts()) {
- resolver.addPrimordialUri(contract, uri);
+ resolver.addHostUri(contract, uri);
}
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/WorkContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/WorkContextImpl.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/WorkContextImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/WorkContextImpl.java Tue Feb 20 20:42:55 2007
@@ -18,12 +18,12 @@
*/
package org.apache.tuscany.core.component;
+import java.net.URI;
import java.util.ArrayList;
import java.util.IdentityHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.net.URI;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -52,7 +52,7 @@
super();
}
- public Object getCurrentCorrelationId() {
+ public Object getCorrelationId() {
Map<Object, Object> map = workContext.get();
if (map == null) {
return null;
@@ -60,9 +60,9 @@
return map.get(CORRELATION_ID);
}
- public void setCurrentCorrelationId(Object correlationId) {
+ public void setCorrelationId(Object id) {
Map<Object, Object> map = getWorkContextMap();
- map.put(CORRELATION_ID, correlationId);
+ map.put(CORRELATION_ID, id);
}
public AtomicComponent getCurrentAtomicComponent() {
@@ -79,7 +79,7 @@
}
@SuppressWarnings("unchecked")
- public LinkedList<URI> getCurrentCallbackUris() {
+ public LinkedList<URI> getCallbackUris() {
Map<Object, Object> map = workContext.get();
if (map == null) {
return null;
@@ -87,7 +87,7 @@
return (LinkedList<URI>) map.get(CALLBACK_URIS);
}
- public void setCurrentCallbackUris(LinkedList<URI> uris) {
+ public void setCallbackUris(LinkedList<URI> uris) {
Map<Object, Object> map = getWorkContextMap();
map.put(CALLBACK_URIS, uris);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java Tue Feb 20 20:42:55 2007
@@ -217,12 +217,12 @@
public void attachCallbackWire(Wire wire) {
assert wire.getSourceUri().getFragment() != null;
- String referenceName = wire.getCallbackReferenceName();
- assert callbackSites.get(referenceName) != null;
- List<Wire> wireList = callBackwires.get(referenceName);
+ String callbackName = wire.getSourceContract().getCallbackName();
+ assert callbackSites.get(callbackName) != null;
+ List<Wire> wireList = callBackwires.get(callbackName);
if (wireList == null) {
wireList = new ArrayList<Wire>();
- callBackwires.put(referenceName, wireList);
+ callBackwires.put(callbackName, wireList);
}
wireList.add(wire);
}
@@ -232,7 +232,7 @@
for (Map.Entry<String, Member> entry : callbackSites.entrySet()) {
List<Wire> wires = callBackwires.get(entry.getKey());
if (wires == null) {
- // this can happen when there are no clients wires to a component that has a callback
+ // this can happen when there are no client wires to a component that has a callback
continue;
}
Member member = entry.getValue();
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java Tue Feb 20 20:42:55 2007
@@ -21,6 +21,7 @@
import java.lang.reflect.Method;
import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import static org.apache.tuscany.spi.idl.java.JavaIDLUtils.findMethod;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -41,7 +42,8 @@
super(configuration);
}
- public TargetInvoker createTargetInvoker(String targetName, Operation operation) {
+ public TargetInvoker createTargetInvoker(String targetName, Operation operation)
+ throws TargetInvokerCreationException {
Method[] methods;
Class callbackClass = null;
if (operation.isCallback()) {
@@ -52,6 +54,9 @@
methods = implementationClass.getMethods();
}
Method method = findMethod(operation, methods);
+ if (method == null) {
+ throw new TargetMethodNotFoundException(operation);
+ }
return new JavaTargetInvoker(method, this, callbackClass, workContext, monitor);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Tue Feb 20 20:42:55 2007
@@ -41,8 +41,8 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.PropertyValue;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
import org.apache.tuscany.core.implementation.PojoComponentContextFactory;
+import org.apache.tuscany.core.implementation.PojoConfiguration;
import org.apache.tuscany.core.injection.MethodEventInvoker;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.injection.ResourceObjectFactory;
@@ -127,6 +127,8 @@
}
configuration.setMonitor(monitor);
configuration.setName(definition.getUri());
+ handleCallbackSites(componentType, configuration);
+
JavaAtomicComponent component = new JavaAtomicComponent(configuration);
// handle properties
@@ -135,8 +137,6 @@
// handle resources
handleResources(componentType, component);
- handleCallbackSites(componentType, configuration);
-
// FIXME JFM this should be refactored to be by operation
component.setAllowsPassByReference(componentType.isAllowsPassByReference());
@@ -152,9 +152,10 @@
PojoConfiguration configuration) {
for (JavaMappedService service : componentType.getServices().values()) {
// setup callback injection sites
- if (service.getCallbackReferenceName() != null) {
+ String name = service.getServiceContract().getCallbackName();
+ if (name != null) {
// Only if there is a callback reference in the service
- configuration.addCallbackSite(service.getCallbackReferenceName(), service.getCallbackMember());
+ configuration.addCallbackSite(name, service.getCallbackMember());
}
}
}
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java?view=auto&rev=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java Tue Feb 20 20:42:55 2007
@@ -0,0 +1,38 @@
+/*
+ * 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.implementation.java;
+
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.model.Operation;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TargetMethodNotFoundException extends TargetInvokerCreationException {
+ private Operation operation;
+
+ public TargetMethodNotFoundException(Operation operation) {
+ super("Target method not found for operation");
+ this.operation = operation;
+ }
+
+ public Operation getOperation() {
+ return operation;
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/TargetMethodNotFoundException.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/processor/ServiceProcessor.java Tue Feb 20 20:42:55 2007
@@ -63,7 +63,7 @@
// scan intefaces for remotable
Set<Class> interfaces = getAllInterfaces(clazz);
for (Class<?> interfaze : interfaces) {
- if (interfaze.getAnnotation(Remotable.class) != null) {
+ if (interfaze.isAnnotationPresent(Remotable.class) || interfaze.isAnnotationPresent(Callback.class)) {
JavaMappedService service;
try {
service = implService.createService(interfaze);
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=509890&r1=509889&r2=509890
==============================================================================
--- 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 Tue Feb 20 20:42:55 2007
@@ -40,7 +40,7 @@
e.appendBaseMessage(writer);
if (e.getLine() != LoaderException.UNDEFINED) {
writer.write("\nLine: " + e.getLine() + "\n");
- writer.write("Column: " + e.getColumn());
+ writer.write("Column: " + e.getColumn() + "\n");
} else {
writer.write("\n");
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/NullMonitorFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/NullMonitorFactory.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/NullMonitorFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/monitor/NullMonitorFactory.java Tue Feb 20 20:42:55 2007
@@ -26,6 +26,7 @@
import org.osoa.sca.annotations.EagerInit;
import org.apache.tuscany.host.MonitorFactory;
+import org.apache.tuscany.host.monitor.ExceptionFormatter;
/**
* Implementation of a {@link MonitorFactory} that produces implementations that simply return.
@@ -34,8 +35,9 @@
*/
@EagerInit
public class NullMonitorFactory implements MonitorFactory {
+
/**
- * Singleton wire hander that does nothing.
+ * Singleton hander that does nothing.
*/
private static final InvocationHandler NULL_MONITOR = new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args) {
@@ -54,5 +56,13 @@
*/
return monitorInterface.cast(
Proxy.newProxyInstance(monitorInterface.getClassLoader(), new Class<?>[]{monitorInterface}, NULL_MONITOR));
+ }
+
+ public void register(ExceptionFormatter formatter) {
+
+ }
+
+ public void unregister(ExceptionFormatter formatter) {
+
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java Tue Feb 20 20:42:55 2007
@@ -45,10 +45,10 @@
ComponentDefinition<? extends Implementation<?>> definition) throws ResolutionException;
/**
- * Adds the uri of a primordial system service that can be an autowire target
+ * Adds the uri of a host system service that can be an autowire target
*
* @param contract the service contract of the system service
* @param uri the component uri
*/
- void addPrimordialUri(ServiceContract contract, URI uri);
+ void addHostUri(ServiceContract contract, URI uri);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java Tue Feb 20 20:42:55 2007
@@ -38,7 +38,7 @@
* @version $Rev$ $Date$
*/
public class DefaultAutowireResolver implements AutowireResolver {
- private Map<ServiceContract, URI> primordialAutowire = new HashMap<ServiceContract, URI>();
+ private Map<ServiceContract, URI> hostAutowire = new HashMap<ServiceContract, URI>();
@SuppressWarnings({"unchecked"})
@@ -82,8 +82,8 @@
}
}
- public void addPrimordialUri(ServiceContract contract, URI uri) {
- primordialAutowire.put(contract, uri);
+ public void addHostUri(ServiceContract contract, URI uri) {
+ hostAutowire.put(contract, uri);
}
/**
@@ -144,7 +144,7 @@
private URI resolvePrimordial(ServiceContract contract) {
Class<?> requiredClass = contract.getInterfaceClass();
- for (Map.Entry<ServiceContract, URI> entry : primordialAutowire.entrySet()) {
+ for (Map.Entry<ServiceContract, URI> entry : hostAutowire.entrySet()) {
if (requiredClass.isAssignableFrom(entry.getKey().getInterfaceClass())) {
return entry.getValue();
}
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=509890&r1=509889&r2=509890
==============================================================================
--- 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 Tue Feb 20 20:42:55 2007
@@ -58,6 +58,7 @@
import org.apache.tuscany.core.resolver.DefaultAutowireResolver;
import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.host.RuntimeInfo;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
import org.apache.tuscany.host.management.ManagementService;
import org.apache.tuscany.host.runtime.InitializationException;
import org.apache.tuscany.host.runtime.TuscanyRuntime;
@@ -226,7 +227,10 @@
protected void registerBaselineSystemComponents() throws InitializationException {
registerSystemComponent(RUNTIME_INFO_URI, runtimeInfoType, runtimeInfo);
- registerSystemComponent(MONITOR_URI, MonitorFactory.class, getMonitorFactory());
+ List<Class<?>> monitorServices = new ArrayList<Class<?>>();
+ monitorServices.add(MonitorFactory.class);
+ monitorServices.add(FormatterRegistry.class);
+ registerSystemComponent(MONITOR_URI, monitorServices, getMonitorFactory());
// register the component manager with itself so it can be autowired
registerSystemComponent(COMPONENT_MGR_URI, ComponentManager.class, componentManager);
registerSystemComponent(AUTOWIRE_RESOLVER_URI, AutowireResolver.class, resolver);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/NonBlockingInterceptor.java Tue Feb 20 20:42:55 2007
@@ -62,7 +62,7 @@
try {
workScheduler.scheduleWork(new Runnable() {
public void run() {
- workContext.setCurrentCorrelationId(null);
+ workContext.setCorrelationId(null);
// if we got a conversation id, transfer it to new thread
if (conversationID != null) {
workContext.setIdentifier(Scope.CONVERSATION, conversationID);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java Tue Feb 20 20:42:55 2007
@@ -39,7 +39,6 @@
public class WireImpl implements Wire {
private URI sourceUri;
private URI targetUri;
- private String callbackReferenceName;
private QName bindingType;
private ServiceContract sourceContract;
private ServiceContract targetContract;
@@ -77,14 +76,6 @@
public void setTargetUri(URI targetUri) {
this.targetUri = targetUri;
- }
-
- public String getCallbackReferenceName() {
- return callbackReferenceName;
- }
-
- public void setCallbackReferenceName(String name) {
- this.callbackReferenceName = name;
}
public QName getBindingType() {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKCallbackInvocationHandler.java Tue Feb 20 20:42:55 2007
@@ -93,9 +93,7 @@
return hashCode();
// TODO beter hash algorithm
}
- Object correlationId = context.getCurrentCorrelationId();
- context.setCurrentCorrelationId(null);
- LinkedList<URI> callbackUris = context.getCurrentCallbackUris();
+ LinkedList<URI> callbackUris = context.getCallbackUris();
assert callbackUris != null;
URI targetAddress = callbackUris.getLast();
assert targetAddress != null;
@@ -105,7 +103,8 @@
Operation operation = findOperation(method, chains.keySet());
InvocationChain chain = chains.get(operation);
TargetInvoker invoker = chain.getTargetInvoker();
-
+ Object correlationId = context.getCorrelationId();
+ context.setCorrelationId(null);
try {
return invoke(chain, invoker, args, correlationId, callbackUris);
} catch (InvocationTargetException e) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandler.java Tue Feb 20 20:42:55 2007
@@ -57,6 +57,17 @@
implements WireInvocationHandler, InvocationHandler, Externalizable, SCAExternalizable {
private static final long serialVersionUID = -6155278451964527325L;
+ // the wire this handler fronts
+ private transient Wire wire;
+ // the name of the source reference the wire is attached to, used during deserialization
+ private String referenceName;
+ // the interface the reference proxy implements
+ private Class<?> proxyInterface;
+ private transient WorkContext workContext;
+ // if the associated wire has a callback
+ private transient boolean callback;
+ // if the associated wire is conversational
+ private transient boolean conversational;
/*
* an association of an operation to chain holder. The holder contains an invocation chain
* and a local clone of the master TargetInvoker. TargetInvokers will be cloned by the handler and placed in the
@@ -65,19 +76,6 @@
* is not cacheable, the master associated with the wire chains will be used.
*/
private transient Map<Method, ChainHolder> chains;
- private transient WorkContext workContext;
- //private transient URI fromAddress;
- //private transient boolean wireContainerIsAtomicComponent;
- private transient boolean contractHasCallback;
- //private transient boolean callbackIsImplemented;
- //private transient String callbackClassName;
- private transient boolean contractIsRemotable;
- private transient boolean contractIsConversational;
- private transient String convIdForRemotableTarget;
- private transient String convIdFromThread;
- private transient Wire wire;
- private String referenceName;
- private Class<?> interfaze;
/**
* Constructor used for deserialization only
@@ -88,7 +86,7 @@
public JDKInvocationHandler(Class<?> interfaze, Wire wire, WorkContext workContext)
throws NoMethodForOperationException {
this.workContext = workContext;
- this.interfaze = interfaze;
+ this.proxyInterface = interfaze;
this.wire = wire;
init(interfaze, wire, null);
}
@@ -99,7 +97,7 @@
WorkContext workContext)
throws NoMethodForOperationException {
this.workContext = workContext;
- this.interfaze = interfaze;
+ this.proxyInterface = interfaze;
init(interfaze, wire, mapping);
}
@@ -119,64 +117,39 @@
}
throw new TargetInvocationException("Operation not configured", method.getName());
}
+ TargetInvoker invoker = getInvoker(holder);
InvocationChain chain = holder.getChain();
- TargetInvoker invoker;
- if (holder.getCachedInvoker() == null) {
- assert chain != null;
- if (chain.getTargetInvoker() == null) {
- String name = chain.getOperation().getName();
- throw new TargetInvocationException("No target invoker configured for operation", name);
- }
- if (chain.getTargetInvoker().isCacheable()) {
- // clone and store the invoker locally
- holder.setCachedInvoker((TargetInvoker) chain.getTargetInvoker().clone());
- invoker = holder.getCachedInvoker();
- } else {
- invoker = chain.getTargetInvoker();
- }
- } else {
- assert chain != null;
- invoker = chain.getTargetInvoker();
- }
// JFM commonting out temporarily
// if (wireContainerIsAtomicComponent && contractHasCallback && !callbackIsImplemented) {
// throw new NoRegisteredCallbackException("Instance is does not implement callback: "
// + callbackClassName);
// }
- if (contractIsConversational) {
- // Check for a conv id on thread and remember it
- convIdFromThread = (String) workContext.getIdentifier(Scope.CONVERSATION);
- if (contractIsRemotable) {
- if (convIdForRemotableTarget == null) {
- convIdForRemotableTarget = createConversationID();
- }
- // Always use the conv id for this target
- workContext.setIdentifier(Scope.CONVERSATION, convIdForRemotableTarget);
- } else if (convIdFromThread == null) {
- String newConvId = createConversationID();
- workContext.setIdentifier(Scope.CONVERSATION, newConvId);
+ if (conversational) {
+ Object id = workContext.getIdentifier(Scope.CONVERSATION);
+ if (id == null) {
+ String convIdFromThread = createConversationID();
+ workContext.setIdentifier(Scope.CONVERSATION, convIdFromThread);
}
}
LinkedList<URI> list = null;
- if (contractHasCallback) {
- list = workContext.getCurrentCallbackUris();
+ if (callback) {
+ // set up callback address
+ list = workContext.getCallbackUris();
if (list == null) {
list = new LinkedList<URI>();
- workContext.setCurrentCallbackUris(list);
+ workContext.setCallbackUris(list);
}
list.add(wire.getSourceUri());
}
-
+ // send the invocation down the wire
Object result = invoke(chain, invoker, args, null, list);
- if (contractIsConversational && contractIsRemotable) {
- // Make sure we restore the remembered conv id to continue propagating
- workContext.setIdentifier(Scope.CONVERSATION, convIdFromThread);
- }
- if (contractHasCallback) {
- list = workContext.getCurrentCallbackUris();
+
+ if (callback) {
+ list = workContext.getCallbackUris();
if (list != null) {
+ // pop last address
list.removeLast();
}
}
@@ -193,12 +166,12 @@
public void writeExternal(ObjectOutput out) throws IOException {
out.writeObject(referenceName);
- out.writeObject(interfaze);
+ out.writeObject(proxyInterface);
}
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
referenceName = (String) in.readObject();
- interfaze = (Class<?>) in.readObject();
+ proxyInterface = (Class<?>) in.readObject();
}
public void reactivate() throws ReactivationException {
@@ -213,19 +186,26 @@
// TODO handle multiplicity
Wire wire = wires.get(0);
try {
- init(interfaze, wire, null);
+ init(proxyInterface, wire, null);
} catch (NoMethodForOperationException e) {
throw new ReactivationException(e);
}
}
+ /**
+ * Reinitializes the proxy handler
+ *
+ * @param interfaze the interface the proxy implements
+ * @param wire the wire fronted by the proxy
+ * @param mapping a mapping from proxy interface methods to invocation chain holders
+ * @throws NoMethodForOperationException
+ */
private void init(Class<?> interfaze, Wire wire, Map<Method, ChainHolder> mapping)
throws NoMethodForOperationException {
ServiceContract contract = wire.getSourceContract();
this.referenceName = wire.getSourceUri().getFragment();
- this.contractIsConversational = contract.isConversational();
- this.contractIsRemotable = contract.isRemotable();
- this.contractHasCallback = contract.getCallbackClass() != null;
+ this.conversational = contract.isConversational();
+ this.callback = contract.getCallbackClass() != null;
// FIXME JFM this should not be dependent on PojoAtomicComponent
// JFM commenting out as this should not be specific to pojo types
// this.wireContainerIsAtomicComponent = scaObject instanceof PojoAtomicComponent;
@@ -242,10 +222,42 @@
}
}
- // TODO Temporary fix to return a string with a UUID
+ /**
+ * Returns the cached or a new target invoker to associate with the invocation
+ *
+ * @param holder the chain holder
+ * @return the target invoker
+ * @throws TargetInvocationException
+ * @throws CloneNotSupportedException
+ */
+ private TargetInvoker getInvoker(ChainHolder holder) throws TargetInvocationException, CloneNotSupportedException {
+ InvocationChain chain = holder.getChain();
+ if (holder.getCachedInvoker() == null) {
+ assert chain != null;
+ if (chain.getTargetInvoker() == null) {
+ String name = chain.getOperation().getName();
+ throw new TargetInvocationException("No target invoker configured for operation", name);
+ }
+ if (chain.getTargetInvoker().isCacheable()) {
+ // clone and store the invoker locally
+ holder.setCachedInvoker((TargetInvoker) chain.getTargetInvoker().clone());
+ return holder.getCachedInvoker();
+ } else {
+ return chain.getTargetInvoker();
+ }
+ } else {
+ assert chain != null;
+ return chain.getTargetInvoker();
+ }
+ }
+
+ /**
+ * Creates a new conversational id
+ *
+ * @return the conversational id
+ */
private String createConversationID() {
return UUID.randomUUID().toString();
}
-
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/component/scope/WorkContextTestCase.java Tue Feb 20 20:42:55 2007
@@ -107,23 +107,23 @@
public void testSetGetCorrelationId() {
WorkContext context = new WorkContextImpl();
- context.setCurrentCorrelationId("msg-005");
- assertEquals(context.getCurrentCorrelationId(), "msg-005");
- context.setCurrentCorrelationId(null);
- assertNull(context.getCurrentCorrelationId());
+ context.setCorrelationId("msg-005");
+ assertEquals(context.getCorrelationId(), "msg-005");
+ context.setCorrelationId(null);
+ assertNull(context.getCorrelationId());
}
public void testSetGetCorrelationIdInNewThread() throws InterruptedException {
WorkContext context = new WorkContextImpl();
- context.setCurrentCorrelationId("msg-005");
- assertEquals(context.getCurrentCorrelationId(), "msg-005");
+ context.setCorrelationId("msg-005");
+ assertEquals(context.getCorrelationId(), "msg-005");
context.setIdentifier("TX", "002");
ChildThread t = new ChildThread(context);
t.start();
t.join();
assertTrue(t.passed);
- context.setCurrentCorrelationId(null);
- assertNull(context.getCurrentCorrelationId());
+ context.setCorrelationId(null);
+ assertNull(context.getCorrelationId());
}
public void testCurrentAtomicComponentDoesNotPropagateToChildThread() throws InterruptedException {
@@ -161,7 +161,7 @@
@Override
public void run() {
try {
- assertNull(context.getCurrentCorrelationId());
+ assertNull(context.getCorrelationId());
assertEquals("002", context.getIdentifier("TX"));
} catch (AssertionError e) {
passed = false;
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerNonBlockingInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerNonBlockingInvocationTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerNonBlockingInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerNonBlockingInvocationTestCase.java Tue Feb 20 20:42:55 2007
@@ -68,7 +68,7 @@
msg.setMessageId(id);
WorkContext context = EasyMock.createMock(WorkContext.class);
- context.setCurrentCorrelationId(id);
+ context.setCorrelationId(id);
EasyMock.replay(context);
Method method = AsyncTarget.class.getMethod("invoke");
method.setAccessible(true);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/WireToScopedJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/WireToScopedJavaTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/WireToScopedJavaTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/WireToScopedJavaTestCase.java Tue Feb 20 20:42:55 2007
@@ -25,6 +25,7 @@
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.idl.InvalidServiceContractException;
import org.apache.tuscany.spi.idl.java.JavaInterfaceProcessorRegistry;
import org.apache.tuscany.spi.idl.java.JavaServiceContract;
@@ -184,7 +185,7 @@
}
private static <T> Wire createWire(String targetName, Class<T> interfaze, JavaAtomicComponent target)
- throws InvalidServiceContractException {
+ throws InvalidServiceContractException, TargetInvokerCreationException {
Wire wire = new WireImpl();
JavaServiceContract contract = new JavaServiceContract(interfaze);
contract.setConversational(false);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/processor/ServiceProcessorTestCase.java Tue Feb 20 20:42:55 2007
@@ -60,6 +60,14 @@
assertEquals(0, type.getServices().size());
}
+ /**
+ * Verifies a service with a callback annotation is recognized
+ */
+ public void testMultipleWithCallbackAnnotation() throws Exception {
+ processor.visitClass(null, FooMultipleWithCalback.class, type, null);
+ assertEquals(1, type.getServices().size());
+ }
+
public void testRemotableNoService() throws Exception {
processor.visitClass(null, FooRemotableNoService.class, type, null);
assertEquals(1, type.getServices().size());
@@ -100,6 +108,9 @@
private interface Bar {
}
+ private interface Bar2 {
+ }
+
@Remotable
private interface BazRemotable {
}
@@ -114,7 +125,11 @@
}
- private class FooMultipleNoService implements Baz, Bar {
+ private class FooMultipleNoService implements Bar, Bar2 {
+
+ }
+
+ private class FooMultipleWithCalback implements Baz, Bar {
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/NonBlockingInterceptorTestCase.java Tue Feb 20 20:42:55 2007
@@ -54,7 +54,7 @@
WorkContext context = createMock(WorkContext.class);
String convID = "convID";
EasyMock.expect(context.getIdentifier(Scope.CONVERSATION)).andReturn(convID);
- context.setCurrentCorrelationId(null);
+ context.setCorrelationId(null);
context.setIdentifier(Scope.CONVERSATION, convID);
EasyMock.replay(context);
Message msg = new MessageImpl();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/wire/jdk/JDKInvocationHandlerTestCase.java Tue Feb 20 20:42:55 2007
@@ -97,15 +97,11 @@
wc.setIdentifier(Scope.CONVERSATION, convID);
invoker.setCurrentConversationID(convID);
- contract.setRemotable(true);
- invoker.setRemotableTest(true);
JDKInvocationHandler handler = new JDKInvocationHandler(Foo.class, wire, wc);
handler.invoke(Foo.class.getMethod("test", String.class), new Object[]{"bar"});
String currentConvID = (String) wc.getIdentifier(Scope.CONVERSATION);
assertSame(convID, currentConvID);
- contract.setRemotable(false);
- invoker.setRemotableTest(false);
JDKInvocationHandler handler2 = new JDKInvocationHandler(Foo.class, wire, wc);
handler2.invoke(Foo.class.getMethod("test", String.class), new Object[]{"bar"});
currentConvID = (String) wc.getIdentifier(Scope.CONVERSATION);
@@ -120,7 +116,6 @@
private WorkContext wc;
private String currentConversationID;
- private boolean remotableTest;
public MockInvoker(WorkContext wc) {
this.wc = wc;
@@ -130,18 +125,10 @@
currentConversationID = id;
}
- public void setRemotableTest(boolean remotableTest) {
- this.remotableTest = remotableTest;
- }
-
public Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException {
assertEquals("bar", Array.get(payload, 0));
String convID = (String) wc.getIdentifier(Scope.CONVERSATION);
- if (remotableTest) {
- assertNotSame(convID, currentConversationID);
- } else {
- assertSame(convID, currentConversationID);
- }
+ assertSame(convID, currentConversationID);
return "response";
}
Modified: incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/MonitorFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/MonitorFactory.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/MonitorFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/host-api/src/main/java/org/apache/tuscany/host/MonitorFactory.java Tue Feb 20 20:42:55 2007
@@ -20,18 +20,20 @@
import java.util.Map;
+import org.apache.tuscany.host.monitor.FormatterRegistry;
+
/**
* A MonitorFactory creates implementations of components' monitor interfaces that interface with a its monitoring
* scheme. For example, a implementation may create versions that emit appropriate logging events or which send
* notifications to a management API.
- *
- * MonitorFactory implementations must provide a no-arg constructor and implement the {@link #initialize} method
- * to perform configuration of instances created using that constructor. Additional constructors may be defined;
- * typically their implementations delegate to {@link #initialize}.
+ * <p/>
+ * MonitorFactory implementations must provide a no-arg constructor and implement the {@link #initialize} method to
+ * perform configuration of instances created using that constructor. Additional constructors may be defined; typically
+ * their implementations delegate to {@link #initialize}.
*
* @version $Rev$ $Date$
*/
-public interface MonitorFactory {
+public interface MonitorFactory extends FormatterRegistry {
/**
* Initializes MonitorFactory instances with implementation-specific configuration properties.
*
@@ -39,6 +41,7 @@
* @throws IllegalArgumentException if the instance can't be configured using the supplied properties
*/
void initialize(Map<String, Object> configProperties);
+
/**
* Return a monitor for a component's monitor interface.
*
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/WorkContext.java Tue Feb 20 20:42:55 2007
@@ -28,26 +28,25 @@
*/
public interface WorkContext {
- Object getCurrentCorrelationId();
+ /**
+ * Returns the unique key for the given identifier associated with the current request
+ */
+ Object getIdentifier(Object type);
- void setCurrentCorrelationId(Object correlationId);
+ /**
+ * Sets the unique key for the given identifier associated with the current request
+ */
+ void setIdentifier(Object type, Object identifier);
/**
- * Returns the current atomic component as a request is processed or null if it is not being tracked. Note that the
- * current atomic component is typically only tracked during persistence operations involving implementation
- * instances
- *
- * @return the current atomic component as a request is processed or null
+ * Clears the unique key for the given identifier associated with the current request
*/
- AtomicComponent getCurrentAtomicComponent();
+ void clearIdentifier(Object type);
/**
- * Sets the current atomic component that is handling processing of a request. Note that in most cases it will not
- * be necessary to track this in the rumtime
- *
- * @param component the current atomic component
+ * Clears all identifiers associated with the current request
*/
- void setCurrentAtomicComponent(AtomicComponent component);
+ void clearIdentifiers();
/**
* Returns an ordered list of callback URIs for the current context. Ordering is based on the sequence of service
@@ -55,45 +54,55 @@
*
* @return the current list of callback URIs
*/
- LinkedList<URI> getCurrentCallbackUris();
+ LinkedList<URI> getCallbackUris();
/**
* Sets an ordered list of callback URIs for the current context. Ordering is based on the sequence of service
* invocations for collocated components
- *
- * @return the current list of callback URIs
*/
- void setCurrentCallbackUris(LinkedList<URI> uris);
+ void setCallbackUris(LinkedList<URI> uris);
/**
- * Returns the composite where a remote request came in
+ * Returns the correlation id for the current invocation or null if not available. Transports may use correlation
+ * ids for message routing.
+ *
+ * @return the correlation id for the current invocation or null
*/
- CompositeComponent getRemoteComponent();
+ Object getCorrelationId();
/**
- * Sets the composite where a remote request came in
+ * Sets the correlation id for the current invocation. Transports may use correlation ids for message routing.
+ *
+ * @param id the correlation id
*/
- void setRemoteComponent(CompositeComponent component);
+ void setCorrelationId(Object id);
/**
- * Returns the unique key for the given identifier associated with the current request
+ * Returns the composite where a remote request came in
*/
- Object getIdentifier(Object type);
+ CompositeComponent getRemoteComponent();
/**
- * Sets the unique key for the given identifier associated with the current request
+ * Sets the composite where a remote request came in
*/
- void setIdentifier(Object type, Object identifier);
+ void setRemoteComponent(CompositeComponent component);
/**
- * Clears the unique key for the given identifier associated with the current request
+ * Returns the current atomic component as a request is processed or null if it is not being tracked. Note that the
+ * current atomic component is typically only tracked during persistence operations involving implementation
+ * instances
+ *
+ * @return the current atomic component as a request is processed or null
*/
- void clearIdentifier(Object type);
+ AtomicComponent getCurrentAtomicComponent();
/**
- * Clears all identifiers associated with the current request
+ * Sets the current atomic component that is handling processing of a request. Note that in most cases it will not
+ * be necessary to track this in the rumtime
+ *
+ * @param component the current atomic component
*/
- void clearIdentifiers();
+ void setCurrentAtomicComponent(AtomicComponent component);
/**
* Removes and returns the name of the last remotable service to handle the current request
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/TargetInvokerExtension.java Tue Feb 20 20:42:55 2007
@@ -52,11 +52,11 @@
try {
Object messageId = msg.getMessageId();
if (messageId != null) {
- workContext.setCurrentCorrelationId(messageId);
+ workContext.setCorrelationId(messageId);
}
LinkedList<URI> callbackRoutingChain = msg.getCallbackUris();
if (callbackRoutingChain != null) {
- workContext.setCurrentCallbackUris(callbackRoutingChain);
+ workContext.setCallbackUris(callbackRoutingChain);
}
Object resp = invokeTarget(msg.getBody(), msg.getConversationSequence());
msg.setBody(resp);
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Message.java Tue Feb 20 20:42:55 2007
@@ -49,17 +49,18 @@
TargetInvoker getTargetInvoker();
/**
- * @deprecated
+ * Adds a URI to the ordered list of callback URIs. Callback URIs are used to resolve the correct wire for a
+ * callback.
*/
void pushCallbackUri(URI uri);
/**
- * Returns the ordered list of callback URIs
+ * Returns the ordered list of callback URIs. Callback URIs are used to resolve the correct wire for a callback.
*/
LinkedList<URI> getCallbackUris();
/**
- * Sets the ordered list of callback URIs
+ * Sets the ordered list of callback URIs. Callback URIs are used to resolve the correct wire for a callback.
*/
void setCallbackUris(LinkedList<URI> uris);
@@ -74,19 +75,20 @@
void setMessageId(Object messageId);
/**
- * Returns the correlation id of the message
+ * Returns the correlation id of the message or null if one is not available. Correlation ids are used by transports
+ * for message routing.
*/
Object getCorrelationId();
/**
- * Sets the correlation id of the message
+ * Sets the correlation id of the message. Correlation ids are used by transports for message routing.
*/
void setCorrelationId(Object correlationId);
/**
- * Test if the message represents a fault/exception
+ * Determines if the message represents a fault/exception
*
- * @return true if the message body is a fault object, false is the body is a normal payload
+ * @return true if the message body is a fault object, false if the body is a normal payload
*/
boolean isFault();
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/MessageImpl.java Tue Feb 20 20:42:55 2007
@@ -59,7 +59,7 @@
if (callbackUris == null) {
callbackUris = new LinkedList<URI>();
}
- callbackUris.addFirst(uri);
+ callbackUris.add(uri);
}
public LinkedList<URI> getCallbackUris() {
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java Tue Feb 20 20:42:55 2007
@@ -64,20 +64,6 @@
void setTargetUri(URI uri);
/**
- * Returns the callback reference name for the wire
- *
- * @return the callback reference name for the wire
- */
- String getCallbackReferenceName();
-
- /**
- * Sets the callback reference name for the wire
- *
- * @param name callback reference name for the wire
- */
- void setCallbackReferenceName(String name);
-
- /**
* Returns the wire binding type
*
* @return the wire binding type
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionSequenceTestCase.java Tue Feb 20 20:42:55 2007
@@ -42,7 +42,7 @@
EasyMock.replay(wire);
WorkContext context;
context = EasyMock.createMock(WorkContext.class);
- context.setCurrentCallbackUris(EasyMock.isA(LinkedList.class));
+ context.setCallbackUris(EasyMock.isA(LinkedList.class));
EasyMock.replay(context);
ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class);
Target target = EasyMock.createMock(Target.class);
@@ -66,7 +66,7 @@
EasyMock.replay(wire);
WorkContext context;
context = EasyMock.createMock(WorkContext.class);
- context.setCurrentCallbackUris(EasyMock.isA(LinkedList.class));
+ context.setCallbackUris(EasyMock.isA(LinkedList.class));
EasyMock.replay(context);
ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class);
Target target = EasyMock.createMock(Target.class);
@@ -90,7 +90,7 @@
EasyMock.replay(wire);
WorkContext context;
context = EasyMock.createMock(WorkContext.class);
- context.setCurrentCallbackUris(EasyMock.isA(LinkedList.class));
+ context.setCallbackUris(EasyMock.isA(LinkedList.class));
EasyMock.replay(context);
ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class);
Target target = EasyMock.createMock(Target.class);
@@ -114,7 +114,7 @@
EasyMock.replay(wire);
WorkContext context;
context = EasyMock.createMock(WorkContext.class);
- context.setCurrentCallbackUris(EasyMock.isA(LinkedList.class));
+ context.setCallbackUris(EasyMock.isA(LinkedList.class));
EasyMock.replay(context);
ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class);
Target target = EasyMock.createMock(Target.class);
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java?view=diff&rev=509890&r1=509889&r2=509890
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/TargetInvokerExtensionTestCase.java Tue Feb 20 20:42:55 2007
@@ -42,7 +42,7 @@
EasyMock.replay(wire);
WorkContext context;
context = EasyMock.createMock(WorkContext.class);
- context.setCurrentCallbackUris(EasyMock.isA(LinkedList.class));
+ context.setCallbackUris(EasyMock.isA(LinkedList.class));
EasyMock.replay(context);
ExecutionMonitor monitor = EasyMock.createNiceMock(ExecutionMonitor.class);
Target target = EasyMock.createMock(Target.class);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org