You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/02 01:57:20 UTC

svn commit: r534278 - in /incubator/tuscany/java/sca/modules: assembly/src/main/java/org/apache/tuscany/assembly/util/ core-spring/src/main/java/org/apache/tuscany/core/spring/assembly/impl/ core/src/main/java/org/apache/tuscany/core/deployer/ implemen...

Author: jsdelfino
Date: Tue May  1 16:57:19 2007
New Revision: 534278

URL: http://svn.apache.org/viewvc?view=rev&rev=534278
Log:
Added logic to create self references.

Modified:
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java
    incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/core/spring/assembly/impl/BeanComponentImpl.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java?view=diff&rev=534278&r1=534277&r2=534278
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/assembly/util/CompositeUtil.java Tue May  1 16:57:19 2007
@@ -462,6 +462,9 @@
             reconcileServices(component, services, componentServices, problems);
             reconcileReferences(component, references, componentReferences, problems);
             reconcileProperties(component, properties, componentProperties, problems);
+            
+            // Create self references to the component's services
+            createSelfReferences(component);
         }
     }
     
@@ -1002,23 +1005,24 @@
     }
     
     /**
-     * For all the services, create a corresponding self-reference
+     * For all the services, create a corresponding self-reference.
+     * 
      * @param component
      */
     private void createSelfReferences(Component component) {
-        for (Service service : component.getImplementation().getServices()) {
-            ComponentReference ref = assemblyFactory.createComponentReference();
-            ref.setName("$self$." + service.getName());
-            ref.getBindings().addAll(service.getBindings());
+        for (ComponentService service : component.getServices()) {
+            ComponentReference componentReference = assemblyFactory.createComponentReference();
+            componentReference.setName("$self$." + service.getName());
+            componentReference.getBindings().addAll(service.getBindings());
             ComponentService componentService = assemblyFactory.createComponentService();
             componentService.setName(component.getName() + "/" + service.getName());
             componentService.setUnresolved(true);
-            ref.getTargets().add(componentService);
-            ref.getPolicySets().addAll(service.getPolicySets());
-            ref.getRequiredIntents().addAll(service.getRequiredIntents());
-            ref.setInterfaceContract(service.getInterfaceContract());
-            ref.setMultiplicity(Multiplicity.ONE_ONE);
-            component.getImplementation().getReferences().add(ref);
+            componentReference.getTargets().add(componentService);
+            componentReference.getPolicySets().addAll(service.getPolicySets());
+            componentReference.getRequiredIntents().addAll(service.getRequiredIntents());
+            componentReference.setInterfaceContract(service.getInterfaceContract());
+            componentReference.setMultiplicity(Multiplicity.ONE_ONE);
+            component.getReferences().add(componentReference);
         }
     }
     

Modified: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/core/spring/assembly/impl/BeanComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/core/spring/assembly/impl/BeanComponentImpl.java?view=diff&rev=534278&r1=534277&r2=534278
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/core/spring/assembly/impl/BeanComponentImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/core/spring/assembly/impl/BeanComponentImpl.java Tue May  1 16:57:19 2007
@@ -131,10 +131,11 @@
 		public boolean add(ComponentReference reference) {
 			
 			// Add corresponding bean property value
+                    if (!reference.getName().startsWith("$self$.")) {
 			BeanReferenceImpl beanReference = new BeanReferenceImpl(reference);
 			getPropertyValues().addPropertyValue(reference.getName(), beanReference);
-
-			return super.add(reference);
+                    }
+                    return super.add(reference);
 		}
 	};
 	

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=534278&r1=534277&r2=534278
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Tue May  1 16:57:19 2007
@@ -274,6 +274,10 @@
             } else {
                 List<ComponentService> services = componentReference.getTargets();
                 for (ComponentService service : services) {
+                    if (service.getBinding(SCABinding.class) == null) {
+                        continue;
+                        
+                    }
                     org.apache.tuscany.assembly.Component targetCompoent = service.getBinding(SCABinding.class)
                         .getComponent();
                     Component target = componentManager.getSCAObject(Component.class, targetCompoent);

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java?view=diff&rev=534278&r1=534277&r2=534278
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/PojoAtomicComponent.java Tue May  1 16:57:19 2007
@@ -31,7 +31,6 @@
 
 import org.apache.tuscany.assembly.ComponentProperty;
 import org.apache.tuscany.assembly.Multiplicity;
-import org.apache.tuscany.assembly.Property;
 import org.apache.tuscany.assembly.Reference;
 import org.apache.tuscany.core.component.ComponentContextImpl;
 import org.apache.tuscany.core.component.ComponentContextProvider;
@@ -160,7 +159,9 @@
             configuration.getInjectionSites().add(element);
         }
 
-        configuration.setObjectFactory(element, createWireFactory(element.getType(), wire));
+        if (element != null) {
+            configuration.setObjectFactory(element, createWireFactory(element.getType(), wire));
+        }
 
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org