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 2008/05/22 01:07:10 UTC

svn commit: r658926 - in /incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl: BaseWireBuilderImpl.java EndpointBuilderImpl.java

Author: jsdelfino
Date: Wed May 21 16:07:09 2008
New Revision: 658926

URL: http://svn.apache.org/viewvc?rev=658926&view=rev
Log:
Fixed NPE with non-hierarchical URLs like the ones used with EJB bindings. Fixed NPE when wiring to services of a component of type implementation:composite when the composite is not fully resolved.

Modified:
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java
    incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java?rev=658926&r1=658925&r2=658926&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/BaseWireBuilderImpl.java Wed May 21 16:07:09 2008
@@ -518,22 +518,23 @@
                 // user might have put a local target name in the uri so get
                 // the path part and see if it refers to a target we know about
                 // - if it does the reference binding will be matched with a service binding
-                // - if it doesn't it is assumed to be an external reference 
-                uri = URI.create(uri).getPath();
-                
-                if (uri.startsWith("/")) {
-                    uri = uri.substring(1);
-                }
-                                               
-                // Resolve the target component and service
-                ComponentService targetComponentService = componentServices.get(uri);
-                Component targetComponent;
-                
-                int s = uri.indexOf('/');
-                if (s == -1) {
-                    targetComponent = components.get(uri);
-                } else {
-                    targetComponent = components.get(uri.substring(0, s));
+                // - if it doesn't it is assumed to be an external reference
+                Component targetComponent = null;
+                ComponentService targetComponentService = null;
+                String path = URI.create(uri).getPath();
+                if (path != null) {
+                    if (path.startsWith("/")) {
+                        path = path.substring(1);
+                    }
+                                                   
+                    // Resolve the target component and service
+                    targetComponentService = componentServices.get(path);
+                    int s = path.indexOf('/');
+                    if (s == -1) {
+                        targetComponent = components.get(path);
+                    } else {
+                        targetComponent = components.get(path.substring(0, s));
+                    }
                 }
 
                 // if the path of the binding URI matches a component in the 

Modified: incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java?rev=658926&r1=658925&r2=658926&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java (original)
+++ incubator/tuscany/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/impl/EndpointBuilderImpl.java Wed May 21 16:07:09 2008
@@ -20,6 +20,7 @@
 package org.apache.tuscany.sca.assembly.builder.impl;
 
 import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.assembly.CompositeService;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.assembly.builder.EndpointBuilder;
@@ -69,7 +70,10 @@
         if (endpoint.getTargetComponentService().getService() instanceof CompositeService) {
             CompositeService compositeService = (CompositeService) endpoint.getTargetComponentService().getService();
             // Find the promoted component service
-            endpoint.setTargetComponentService(ServiceConfigurationUtil.getPromotedComponentService(compositeService));
+            ComponentService promotedComponentService = ServiceConfigurationUtil.getPromotedComponentService(compositeService);
+            if (promotedComponentService != null && !promotedComponentService.isUnresolved()) {
+                endpoint.setTargetComponentService(promotedComponentService);
+            }
         }
         
         try  {