diff options
Diffstat (limited to 'sca-java-2.x/trunk/modules')
2 files changed, 11 insertions, 2 deletions
diff --git a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java index 65af22c3e7..e25bd4206b 100644 --- a/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java +++ b/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java @@ -269,7 +269,10 @@ public class EndpointImpl implements Endpoint { names[2] = parts[1]; } else if (str.startsWith("service(") && str.endsWith(")")) { str = str.substring("service(".length(), str.length() - 1); - names[1] = str; + // [rfeng] Deal with empty service name + if (!"".equals(str)) { + names[1] = str; + } } else { throw new IllegalArgumentException("Invalid structural URI: " + structuralURI); } diff --git a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/BaseEndpointRegistry.java b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/BaseEndpointRegistry.java index 4688bea66f..0b6b93edc0 100644 --- a/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/BaseEndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/core-spi/src/main/java/org/apache/tuscany/sca/runtime/BaseEndpointRegistry.java @@ -93,7 +93,13 @@ public abstract class BaseEndpointRegistry implements EndpointRegistry, LifeCycl if (endpointReference.getReference() != null) { Endpoint targetEndpoint = endpointReference.getTargetEndpoint(); - return findEndpoint(targetEndpoint.getURI()); + String uri = targetEndpoint.getURI(); + // [rfeng] This is a workaround to deal with the case that the endpoint URI doesn't have the + // service name to avoid confusion between structural URIs and service URIs + if (uri.indexOf('#') == -1) { + uri = uri + "#service()"; + } + return findEndpoint(uri); } return new ArrayList<Endpoint>(); |