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