diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2009-08-08 15:55:13 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2009-08-08 15:55:13 +0000 |
commit | 70b64f446536e4860e0726b23da0ef24f21d9637 (patch) | |
tree | 82d99e74923158f6c44c8e7d4307d1e0b761dcf2 /java/sca | |
parent | 651e0baa84ad6de6ba6628966660ce7cd6db4de9 (diff) |
Remove the non-OASIS code from the endpoint builder and set up build-time and runt-time operations so that I can reorganize the endpoint reference build process and get all of the endpoint building code in on place.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@802401 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca')
6 files changed, 159 insertions, 344 deletions
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointReferenceBuilder.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointReferenceBuilder.java index 560672d8e4..1954e82168 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointReferenceBuilder.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/builder/EndpointReferenceBuilder.java @@ -19,8 +19,8 @@ package org.apache.tuscany.sca.assembly.builder; +import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.EndpointReference; -import org.apache.tuscany.sca.monitor.Monitor; /** * A builder that handles the configuration of endpoint references @@ -30,6 +30,15 @@ import org.apache.tuscany.sca.monitor.Monitor; * @version $Rev$ $Date$ */ public interface EndpointReferenceBuilder { + + /** + * Build an endpoint reference matching reference bindings + * with service bindings. + * + * @param endpointReference + * @param monitor + */ + void buildtimeBuild(Composite composite); /** * Build an endpoint reference matching reference bindings @@ -38,6 +47,6 @@ public interface EndpointReferenceBuilder { * @param endpointReference * @param monitor */ - void build(EndpointReference endpointReference, Monitor monitor); + void runtimeBuild(EndpointReference endpointReference); } diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java index d165f7fba2..5fa3e679a0 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java @@ -34,6 +34,7 @@ import org.apache.tuscany.sca.assembly.CompositeService; import org.apache.tuscany.sca.assembly.Contract; import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.assembly.Service; import org.apache.tuscany.sca.assembly.builder.EndpointReferenceBuilder; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; @@ -328,7 +329,7 @@ public class RuntimeWireImpl implements RuntimeWire { * is first used */ private void resolveEndpointReference(){ - endpointReferenceBuilder.build(endpointReference, null); + endpointReferenceBuilder.runtimeBuild(endpointReference); // set the endpoint based on the resolved endpoint endpoint = endpointReference.getTargetEndpoint(); @@ -631,12 +632,24 @@ public class RuntimeWireImpl implements RuntimeWire { ComponentService service, InvocationChain chain, Operation operation) { + + + + if (service.getService() instanceof CompositeService){ + CompositeService compositeService = (CompositeService)service.getService(); + component = getPromotedComponent(compositeService); + service = getPromotedComponentService(compositeService); + } + ImplementationProvider provider = ((RuntimeComponent)component).getImplementationProvider(); - if (provider != null) { + + if (provider != null) { Invoker invoker = null; invoker = provider.createInvoker((RuntimeComponentService)service, operation); chain.addInvoker(invoker); } + // TODO - EPR - don't we need to get the policy from the right level in the + // model rather than the leafmost level List<PolicyProvider> pps = ((RuntimeComponent)component).getPolicyProviders(); if (pps != null) { for (PolicyProvider p : pps) { @@ -696,4 +709,59 @@ public class RuntimeWireImpl implements RuntimeWire { public ExtensionPointRegistry getExtensionPoints() { return extensionPoints; } + + /** + * Follow a service promotion chain down to the inner most (non composite) + * component service. + * + * @param topCompositeService + * @return + */ + private ComponentService getPromotedComponentService(CompositeService compositeService) { + ComponentService componentService = compositeService.getPromotedService(); + if (componentService != null) { + Service service = componentService.getService(); + if (componentService.getName() != null && service instanceof CompositeService) { + + // Continue to follow the service promotion chain + return getPromotedComponentService((CompositeService)service); + + } else { + + // Found a non-composite service + return componentService; + } + } else { + + // No promoted service + return null; + } + } + + /** + * Follow a service promotion chain down to the innermost (non-composite) component. + * + * @param compositeService + * @return + */ + private Component getPromotedComponent(CompositeService compositeService) { + ComponentService componentService = compositeService.getPromotedService(); + if (componentService != null) { + Service service = componentService.getService(); + if (componentService.getName() != null && service instanceof CompositeService) { + + // Continue to follow the service promotion chain + return getPromotedComponent((CompositeService)service); + + } else { + + // Found a non-composite service + return compositeService.getPromotedComponent(); + } + } else { + + // No promoted service + return null; + } + } } diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java index 02bab99cb1..7ad4db79dc 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java @@ -361,7 +361,7 @@ public class ComponentContextImpl implements ComponentContextExt { componentReference.getEndpointReferences().add(endpointReference); // do binding matching - endpointReferenceBuilder.build(endpointReference, monitor); + endpointReferenceBuilder.runtimeBuild(endpointReference); return componentReference; } diff --git a/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java b/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java index 5b3c252880..49b7c4c7b4 100644 --- a/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java +++ b/java/sca/modules/endpoint/src/main/java/org/apache/tuscany/sca/endpoint/impl/EndpointReferenceBuilderImpl.java @@ -54,7 +54,7 @@ import org.oasisopen.sca.SCARuntimeException; * * @version $Rev$ $Date$ */ -public class EndpointReferenceBuilderImpl implements CompositeBuilder, EndpointReferenceBuilder { +public class EndpointReferenceBuilderImpl implements EndpointReferenceBuilder { protected ExtensionPointRegistry extensionPoints; protected AssemblyFactory assemblyFactory; @@ -73,64 +73,19 @@ public class EndpointReferenceBuilderImpl implements CompositeBuilder, EndpointR this.endpointRegistry = utils.getUtility(EndpointRegistry.class); } - - public String getID() { - return "org.apache.tuscany.sca.assembly.builder.EndpointReferenceBuilder"; - } - + /** - * Report a warning. - * - * @param monitor - * @param problems - * @param message - * @param model - */ - protected void warning(Monitor monitor, String message, Object model, String... messageParameters) { - if (monitor != null) { - Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.WARNING, model, message, (Object[])messageParameters); - monitor.problem(problem); - } - } - - /** - * Report a error. + * Build a composite * + * @param endpoint * @param monitor - * @param problems - * @param message - * @param model */ - protected void error(Monitor monitor, String message, Object model, String... messageParameters) { - if (monitor != null) { - Problem problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.ERROR, model, message, (Object[])messageParameters); - monitor.problem(problem); - } - } - - /** - * Report a exception. - * - * @param problems - * @param message - * @param model - */ - protected void error(Monitor monitor, String message, Object model, Exception ex) { - if (monitor != null) { - Problem problem = null; - problem = monitor.createProblem(this.getClass().getName(), "assembly-validation-messages", Severity.ERROR, model, message, ex); - monitor.problem(problem); - } - } - - /** - * Build all the endpoint references - * - * @param composite - */ - public void build(Composite composite, Definitions definitions, Monitor monitor) throws CompositeBuilderException - { - // Not used now + public void buildtimeBuild(Composite composite) { + // TODO - ready for reorganization of the builders + // build all the endpoint references in a composite + // that it is possible to build in order to get any + // errors out as early as possible. Any that can't + // be built now must wait until runtime } /** @@ -139,193 +94,78 @@ public class EndpointReferenceBuilderImpl implements CompositeBuilder, EndpointR * @param endpoint * @param monitor */ - public void build(EndpointReference endpointReference, Monitor monitor) { - Endpoint endpoint = endpointReference.getTargetEndpoint(); - - if (endpoint == null){ - // an error? - } else { - if (endpoint.isUnresolved() == false){ - // Wired - service resolved - binding matched - // The service is in the same composite or the - // binding is remote and has a full URI - - // still need to check that the callback endpoint is set correctly - if ((endpointReference.getCallbackEndpoint() != null) && - (endpointReference.getCallbackEndpoint().isUnresolved() == false)){ - return; - } - - matchCallbackBinding(endpointReference, - monitor); - + public void runtimeBuild(EndpointReference endpointReference) { + + if ( endpointReference.getStatus() == EndpointReference.WIRED_TARGET_FOUND_AND_MATCHED || + endpointReference.getStatus() == EndpointReference.RESOLVED_BINDING ) { + // The endpoint reference is already resolved to either + // a service endpoint local to this composite or it has + // a remote binding + + // still need to check that the callback endpoint is set correctly + if ((endpointReference.getCallbackEndpoint() != null) && + (endpointReference.getCallbackEndpoint().isUnresolved() == false)){ return; } - if (endpointReference.isUnresolved() == false ){ - // Wired - service resolved - binding not matched - // The service is in the same composite - // TODO - How do we get to here? - matchForwardBinding(endpointReference, - true, - monitor); - - matchCallbackBinding(endpointReference, - monitor); - } else { - // Wired - service specified but unresolved - // The service is in a remote composite somewhere else in the domain - - // find the service in the endpoint registry - List<Endpoint> endpoints = endpointRegistry.findEndpoint(endpointReference); - - // TODO - do we expect to find more than one endpoint in - // anything other than the autowire case? - if (endpoints.size() == 0) { - throw new SCARuntimeException("No endpoints found for EndpointReference " + endpointReference.toString()); - } - - if (endpoints.size() > 1) { - throw new SCARuntimeException("More than one endpoint found for EndpointReference" + endpointReference.toString()); - } - - endpointReference.setTargetEndpoint(endpoints.get(0)); + selectCallbackBinding(endpointReference); + + } else if (endpointReference.getStatus() == EndpointReference.WIRED_TARGET_FOUND_READY_FOR_MATCHING ){ + // The endpoint reference is already resolved to either + // a service endpoint but no binding was specified in the + // target URL + + // TODO - EPR - endpoint selection + // just use the first one + endpointReference.setTargetEndpoint(endpointReference.getTargetEndpoint().getService().getEndpoints().get(0)); + + selectForwardBinding(endpointReference); + + selectCallbackBinding(endpointReference); + + } else if (endpointReference.getStatus() == EndpointReference.WIRED_TARGET_NOT_FOUND || + endpointReference.getStatus() == EndpointReference.NOT_CONFIGURED){ + // The service is in a remote composite somewhere else in the domain + + // find the service in the endpoint registry + List<Endpoint> endpoints = endpointRegistry.findEndpoint(endpointReference); + + if (endpoints.size() == 0) { + throw new SCARuntimeException("No endpoints found for EndpointReference " + endpointReference.toString()); + } + + // TODO - EPR - endpoint selection + // just use the first one + endpointReference.setTargetEndpoint(endpoints.get(0)); - matchForwardBinding(endpointReference, false, monitor); + selectForwardBinding(endpointReference); - matchCallbackBinding(endpointReference, monitor); - } + selectCallbackBinding(endpointReference); + + } else { + // endpointReference.getStatus() == EndpointReference.NOT_CONFIGURED + // An error as we shouldn't get here + throw new SCARuntimeException("EndpointReference can't be resolved " + endpointReference.toString()); } - if (endpointReference.isUnresolved()){ - throw new SCARuntimeException("Can't resolve " + endpointReference.toString()); + if (endpointReference.getStatus() != EndpointReference.WIRED_TARGET_FOUND_AND_MATCHED && + endpointReference.getStatus() != EndpointReference.RESOLVED_BINDING){ + throw new SCARuntimeException("EndpointReference can't be resolved " + endpointReference.toString()); } } - // TODO - EPR - In OASIS case there are no bindings to match with on the - // reference side. - private void matchForwardBinding(EndpointReference endpointReference, - boolean local, - Monitor monitor) { + private void selectForwardBinding(EndpointReference endpointReference) { Endpoint endpoint = endpointReference.getTargetEndpoint(); - - List<Binding> matchedReferenceBinding = new ArrayList<Binding>(); - List<Endpoint> matchedServiceEndpoint = new ArrayList<Endpoint>(); - - // Find the corresponding bindings from the service side - if ((endpointReference.getReference().getBindings().size() == 0) || - ((endpointReference.getReference().getBindings().size() == 1) && - (endpointReference.getReference().getBindings().get(0) instanceof SCABinding))){ - // OAISIS - choose a binding from the service side - // (could have been specified as part of the target string) - // last part of this test that is looking for binding SCA is - // bogus. Just a temporary fix until we get rid of the OSOA - // style reference side bindings. - - // retrieve the user specified binding name. - // TODO - EPR - we don't support this yet - - // otherwise pick the first binding from the service - if (local) { - endpointReference.setTargetEndpoint(endpoint.getService().getEndpoints().get(0)); - } else { - endpointReference.setTargetEndpoint(endpoint); - } - endpointReference.setBinding(endpointReference.getTargetEndpoint().getBinding()); - endpointReference.setUnresolved(false); - return; - - } else { - // OAISIS - this is an error - // (for now let it match bindings while we rewrite OSOA tests) - for (Binding referenceBinding : endpointReference.getReference().getBindings()) { - if (local) { - for (Endpoint serviceEndpoint : endpoint.getService().getEndpoints()) { - - if (referenceBinding.getType().equals(serviceEndpoint.getBinding().getType()) && hasCompatiblePolicySets(referenceBinding, - serviceEndpoint - .getBinding())) { - - matchedReferenceBinding.add(referenceBinding); - matchedServiceEndpoint.add(serviceEndpoint); - } - } - } else { - Endpoint serviceEndpoint = endpoint; - if (referenceBinding.getType().equals(serviceEndpoint.getBinding().getType()) && hasCompatiblePolicySets(referenceBinding, - serviceEndpoint - .getBinding())) { - - matchedReferenceBinding.add(referenceBinding); - matchedServiceEndpoint.add(serviceEndpoint); - - } - } - } - } - - if (matchedReferenceBinding.isEmpty()) { - // No matching binding - endpointReference.setBinding(null); - endpointReference.setUnresolved(true); - warning(monitor, - "NoMatchingBinding", - endpointReference.getReference(), - endpointReference.getReference().getName(), - endpoint.getService().getName()); - return; - } else { - // default to using the first matched binding - int selectedBinding = 0; - - for (int i = 0; i < matchedReferenceBinding.size(); i++) { - // If binding.sca is present, use it - if (SCABinding.class.isInstance(matchedReferenceBinding.get(i))) { - selectedBinding = i; - } - } - - Binding referenceBinding = matchedReferenceBinding.get(selectedBinding); - Endpoint serviceEndpoint = matchedServiceEndpoint.get(selectedBinding); - - // populate the endpoint reference - try { - - Binding clonedBinding = (Binding) referenceBinding.clone(); - - // Set the binding URI to the URI of the target service - // that has been matched - if (referenceBinding.getURI() == null) { - clonedBinding.setURI(serviceEndpoint.getBinding().getURI()); - } - - // TODO - EPR can we remove this? - if (clonedBinding instanceof OptimizableBinding) { - OptimizableBinding optimizableBinding = (OptimizableBinding)clonedBinding; - optimizableBinding.setTargetComponent(serviceEndpoint.getComponent()); - optimizableBinding.setTargetComponentService(serviceEndpoint.getService()); - optimizableBinding.setTargetBinding(serviceEndpoint.getBinding()); - } - - endpointReference.setBinding(clonedBinding); - - Endpoint clonedEndpoint = (Endpoint)serviceEndpoint.clone(); - - endpointReference.setTargetEndpoint(clonedEndpoint); - endpointReference.setUnresolved(false); - - } catch (Exception ex) { - // do nothing - } - } + + endpointReference.setBinding(endpointReference.getTargetEndpoint().getBinding()); + endpointReference.setStatus(EndpointReference.WIRED_TARGET_FOUND_AND_MATCHED); + endpointReference.setUnresolved(false); + + return; } - // TODO - EPR - // Find the callback endpoint for the endpoint reference by matching - // callback bindings between reference and service - private void matchCallbackBinding(EndpointReference endpointReference, - Monitor monitor) { + private void selectCallbackBinding(EndpointReference endpointReference) { // if no callback on the interface or we are creating a self reference do nothing if (endpointReference.getReference().getInterfaceContract() == null || @@ -337,94 +177,10 @@ public class EndpointReferenceBuilderImpl implements CompositeBuilder, EndpointR Endpoint endpoint = endpointReference.getTargetEndpoint(); List<Endpoint> callbackEndpoints = endpointReference.getReference().getCallbackService().getEndpoints(); - List<EndpointReference> callbackEndpointReferences = endpoint.getCallbackEndpointReferences(); - - List<Endpoint> matchedEndpoint = new ArrayList<Endpoint>(); - - // Find the corresponding bindings from callback service side - if ((callbackEndpointReferences.size() ==0) || - (callbackEndpointReferences.get(0).getReference().getBindings().size() == 0) || - ((callbackEndpointReferences.get(0).getReference().getBindings().size() == 1) && - (callbackEndpointReferences.get(0).getReference().getBindings().get(0) instanceof SCABinding))){ - // OAISIS - choose a binding from the service side - // (could have been specified as part of the target string) - // last part of this test that is looking for binding SCA is - // bogus. Just a temporary fix until we get rid of the OSOA - // style reference side bindings. - - // retrieve the user specified binding name. - // TODO - EPR - we don't support this yet - - // otherwise pick the first binding from the service - //endpointReference.setTargetEndpoint(endpoint.getService().getEndpoints().get(0)); - //endpointReference.setBinding(endpointReference.getTargetEndpoint().getBinding()); - endpointReference.setCallbackEndpoint(callbackEndpoints.get(0)); - endpointReference.setUnresolved(false); - return; - - } else { - // OAISIS - this is an error - // (for now let it match bindings while we rewrite OSOA tests) - - if ((callbackEndpoints != null) && (callbackEndpointReferences != null)){ - // Find the corresponding bindings from the service side - for (EndpointReference epr : callbackEndpointReferences) { - for (Endpoint ep : callbackEndpoints) { - - if (epr.getBinding().getType().equals(ep.getBinding().getType()) && - hasCompatiblePolicySets(epr.getBinding(), ep.getBinding())) { - - matchedEndpoint.add(ep); - } - } - } - } - } - - if (matchedEndpoint.isEmpty()) { - // No matching binding - endpointReference.setCallbackEndpoint(null); - endpointReference.setUnresolved(true); - warning(monitor, - "NoMatchingCallbackBinding", - endpointReference.getReference(), - endpointReference.getReference().getName(), - endpoint.getService().getName()); - return; - } else { - // default to using the first matched binding - int selectedEndpoint = 0; - - for (int i = 0; i < matchedEndpoint.size(); i++){ - // If binding.sca is present, use it - if (SCABinding.class.isInstance(matchedEndpoint.get(i).getBinding())) { - selectedEndpoint = i; - } - } - - endpointReference.setCallbackEndpoint(matchedEndpoint.get(selectedEndpoint)); - endpointReference.setUnresolved(false); - } + + endpointReference.setCallbackEndpoint(callbackEndpoints.get(0)); + endpointReference.setStatus(EndpointReference.WIRED_TARGET_FOUND_AND_MATCHED); + endpointReference.setUnresolved(false); } - private boolean hasCompatiblePolicySets(Binding refBinding, Binding svcBinding) { - boolean isCompatible = true; - if ( refBinding instanceof PolicySubject && svcBinding instanceof PolicySubject ) { - //TODO : need to add more compatibility checks at the policy attachment levels - for ( PolicySet svcPolicySet : ((PolicySubject)svcBinding).getPolicySets() ) { - isCompatible = false; - for ( PolicySet refPolicySet : ((PolicySubject)refBinding).getPolicySets() ) { - if ( svcPolicySet.equals(refPolicySet) ) { - isCompatible = true; - break; - } - } - //if there exists no matching policy set in the reference binding - if ( !isCompatible ) { - return isCompatible; - } - } - } - return isCompatible; - } } diff --git a/java/sca/modules/endpoint/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder b/java/sca/modules/endpoint/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder deleted file mode 100644 index 541941c3d3..0000000000 --- a/java/sca/modules/endpoint/src/main/resources/META-INF/services/org.apache.tuscany.sca.assembly.builder.CompositeBuilder +++ /dev/null @@ -1,18 +0,0 @@ -# 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.
-
-org.apache.tuscany.sca.endpoint.impl.EndpointReferenceBuilderImpl;id=org.apache.tuscany.sca.endpoint.impl.EndpointReferenceBuilderImpl
diff --git a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java index ea8b00a489..41531a7b10 100644 --- a/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java +++ b/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java @@ -57,6 +57,7 @@ import org.apache.tuscany.sca.assembly.Composite; import org.apache.tuscany.sca.assembly.builder.CompositeBuilder; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderExtensionPoint; import org.apache.tuscany.sca.assembly.builder.CompositeBuilderTmp; +import org.apache.tuscany.sca.assembly.builder.EndpointReferenceBuilder; import org.apache.tuscany.sca.contribution.Artifact; import org.apache.tuscany.sca.contribution.Contribution; import org.apache.tuscany.sca.contribution.ContributionFactory; @@ -118,7 +119,7 @@ public class NodeFactoryImpl extends NodeFactory { private StAXArtifactProcessor<Composite> compositeProcessor; private ContributionFactory contributionFactory; private ExtendedURLArtifactProcessor<Contribution> contributionProcessor; - private CompositeBuilder endpointReferenceBuilder; + private EndpointReferenceBuilder endpointReferenceBuilder; protected ExtensionPointRegistry extensionPoints; private XMLInputFactory inputFactory; protected FactoryExtensionPoint modelFactories; @@ -417,9 +418,8 @@ public class NodeFactoryImpl extends NodeFactory { CompositeBuilderExtensionPoint compositeBuilders = extensionPoints.getExtensionPoint(CompositeBuilderExtensionPoint.class); compositeBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.assembly.builder.CompositeBuilder"); - // Get endpoint builders - // TODO - new extension point? - endpointReferenceBuilder = compositeBuilders.getCompositeBuilder("org.apache.tuscany.sca.endpoint.impl.EndpointReferenceBuilderImpl"); + // Get endpoint builder + endpointReferenceBuilder = utilities.getUtility(EndpointReferenceBuilder.class); // Initialize runtime @@ -548,7 +548,7 @@ public class NodeFactoryImpl extends NodeFactory { ((CompositeBuilderTmp)compositeBuilder).build(tempComposite, systemDefinitions, bindingMap, monitor); analyzeProblems(); - endpointReferenceBuilder.build(tempComposite, systemDefinitions, monitor); + endpointReferenceBuilder.buildtimeBuild(tempComposite); analyzeProblems(); return tempComposite; |