import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.invocation.MessageFactory; import org.apache.tuscany.sca.provider.BindingProviderFactory; import org.apache.tuscany.sca.provider.ReferenceBindingProvider; import org.apache.tuscany.sca.provider.ServiceBindingProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; import org.apache.tuscany.sca.runtime.RuntimeComponentReference; import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * Implementation of the P2P binding model. */ public class P2PBindingProviderFactory implements BindingProviderFactory { private MessageFactory messageFactory; public EchoBindingProviderFactory(ExtensionPointRegistry extensionPoints) { ModelFactoryExtensionPoint factories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); this.messageFactory = factories.getFactory(MessageFactory.class); } public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, P2PBinding binding) { return new P2PReferenceBindingProvider(component, reference, binding); } public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service,P2PBinding binding) { return new P2PServiceBindingProvider(component, service, binding, messageFactory); } public Class getModelType() { return P2PBinding.class; } }