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 {