/** * Constructor. * * @param uri the producer URI * @param definition the producer type definition * @param parent the parent component */ public LogicalProducer(URI uri, Producer definition, LogicalComponent<?> parent) { super(uri, definition != null ? definition.getServiceContract() : null, parent); this.definition = definition; targets = new ArrayList<>(); }
private void generateProducerInjectionMapping(Producer definition, WebComponentType type, Map<String, Map<String, InjectionSite>> mappings) { Map<String, InjectionSite> mapping = mappings.get(definition.getName()); if (mapping == null) { mapping = new HashMap<>(); mappings.put(definition.getName(), mapping); } for (Map.Entry<String, Map<InjectionSite, Injectable>> entry : type.getInjectionSites().entrySet()) { for (Map.Entry<InjectionSite, Injectable> siteMap : entry.getValue().entrySet()) { if (siteMap.getValue().getName().equals(definition.getName())) { mapping.put(entry.getKey(), siteMap.getKey()); } } } ServiceContract contract = definition.getServiceContract(); Class<?> interfaceClass = contract.getInterfaceClass(); // also inject the reference into the servlet context WebContextInjectionSite servletContextSite = new WebContextInjectionSite(interfaceClass, SERVLET_CONTEXT); mapping.put(SERVLET_CONTEXT_SITE, servletContextSite); }
private List<PhysicalChannelConnection> generateDirectConnections(LogicalProducer producer, Map<LogicalChannel, DeliveryType> channels, PhysicalConnectionSource source, ClassLoader classLoader) { List<PhysicalChannelConnection> connections = new ArrayList<>(); Class<?> type = producer.getDefinition().getServiceContract().getInterfaceClass(); for (Map.Entry<LogicalChannel, DeliveryType> entry : channels.entrySet()) { LogicalChannel channel = entry.getKey(); if (!channel.isBound()) { PhysicalChannelConnection producerConnection = generateLocalConnection(producer, type, channel, source, classLoader); connections.add(producerConnection); } else { DeliveryType deliveryType = entry.getValue(); PhysicalChannelConnection bindingConnection = generateDirectBoundConnection(producer, channel, deliveryType, classLoader, source); connections.add(bindingConnection); } } return connections; }
private List<PhysicalChannelConnection> generateDirectConnections(LogicalProducer producer, Map<LogicalChannel, DeliveryType> channels, PhysicalConnectionSource source, ClassLoader classLoader) { List<PhysicalChannelConnection> connections = new ArrayList<>(); Class<?> type = producer.getDefinition().getServiceContract().getInterfaceClass(); for (Map.Entry<LogicalChannel, DeliveryType> entry : channels.entrySet()) { LogicalChannel channel = entry.getKey(); if (!channel.isBound()) { PhysicalChannelConnection producerConnection = generateLocalConnection(producer, type, channel, source, classLoader); connections.add(producerConnection); } else { DeliveryType deliveryType = entry.getValue(); PhysicalChannelConnection bindingConnection = generateDirectBoundConnection(producer, channel, deliveryType, classLoader, source); connections.add(bindingConnection); } } return connections; }
public void generateConnectionSource(JavaConnectionSource source, LogicalProducer producer) { URI uri = producer.getUri(); source.setUri(uri); ServiceContract serviceContract = producer.getDefinition().getServiceContract(); Class<?> interfaze = serviceContract.getInterfaceClass(); source.setInjectable(new Injectable(InjectableType.PRODUCER, uri.getFragment())); source.setServiceInterface(interfaze); }
public PhysicalConnectionSource generateConnectionSource(LogicalProducer producer) { SystemConnectionSource source = new SystemConnectionSource(); URI uri = producer.getUri(); JavaServiceContract serviceContract = (JavaServiceContract) producer.getDefinition().getServiceContract(); source.setUri(uri); source.setInjectable(new Injectable(InjectableType.PRODUCER, uri.getFragment())); source.setServiceInterface(serviceContract.getInterfaceClass()); return source; }
Producer definition = componentType.getProducers().get(name); if (definition != null) { ServiceContract source = definition.getServiceContract(); ServiceContract target = entry.getValue().getServiceContract(); MatchResult result = matcher.isAssignableFrom(source, target, false); if (!result.isAssignable()) {
public PhysicalConnectionSource generateConnectionSource(LogicalProducer producer) throws Fabric3Exception { String producerName = producer.getDefinition().getName(); URI uri = producer.getParent().getUri(); JavaServiceContract serviceContract = (JavaServiceContract) producer.getDefinition().getServiceContract(); return new SpringConnectionSource(producerName, serviceContract.getInterfaceClass(), uri); }
public PhysicalConnectionSource generateConnectionSource(LogicalProducer producer) throws Fabric3Exception { String producerName = producer.getDefinition().getName(); URI uri = producer.getParent().getUri(); JavaServiceContract serviceContract = (JavaServiceContract) producer.getDefinition().getServiceContract(); return new SpringConnectionSource(producerName, serviceContract.getInterfaceClass(), uri); }
@SuppressWarnings({"unchecked"}) private PhysicalChannelConnection generateDirectBoundConnection(LogicalProducer producer, LogicalChannel channel, DeliveryType deliveryType, ClassLoader classLoader, PhysicalConnectionSource source) { LogicalBinding<?> binding = channel.getBinding(); ConnectionBindingGenerator bindingGenerator = getGenerator(binding); PhysicalConnectionTarget target = bindingGenerator.generateConnectionTarget(producer, binding, deliveryType); target.setClassLoader(classLoader); URI uri = channel.getUri(); Class<?> type = producer.getDefinition().getServiceContract().getInterfaceClass(); // the type is the producer interface since it is direct return new PhysicalChannelConnection(uri, producer.getUri(), source, target, type, true); }
@SuppressWarnings({"unchecked"}) private PhysicalChannelConnection generateDirectBoundConnection(LogicalProducer producer, LogicalChannel channel, DeliveryType deliveryType, ClassLoader classLoader, PhysicalConnectionSource source) { LogicalBinding<?> binding = channel.getBinding(); ConnectionBindingGenerator bindingGenerator = getGenerator(binding); PhysicalConnectionTarget target = bindingGenerator.generateConnectionTarget(producer, binding, deliveryType); target.setClassLoader(classLoader); URI uri = channel.getUri(); Class<?> type = producer.getDefinition().getServiceContract().getInterfaceClass(); // the type is the producer interface since it is direct return new PhysicalChannelConnection(uri, producer.getUri(), source, target, type, true); }