private void addSource(LogicalConsumer logicalConsumer, URI uri, LogicalComponent<?> logicalComponent) { if (uri.isAbsolute()) { LogicalComponent<?> domain = logicalComponent.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalConsumer.addSource(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalConsumer.addSource(URI.create(logicalComponent.getParent().getUri().toString() + "/" + uri.toString())); } }
private void addSource(LogicalConsumer logicalConsumer, URI uri, LogicalComponent<?> logicalComponent) { if (uri.isAbsolute()) { LogicalComponent<?> domain = logicalComponent.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalConsumer.addSource(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalConsumer.addSource(URI.create(logicalComponent.getParent().getUri().toString() + "/" + uri.toString())); } }
private <T> LogicalConsumer createConsumer(Class<T> type, URI channelUri) { JavaServiceContract contract = introspector.introspect(type); LogicalCompositeComponent domain = lcm.getDomainComposite(); String root = domain.getUri().toString(); LogicalComponent<NonManagedImplementation> logicalComponent = createComponent(Object.class, domain, root); DataType dataType = new JavaType(type); Consumer consumer = new Consumer("consumer", dataType, true); int pos = counter.getAndIncrement(); LogicalConsumer logicalConsumer = new LogicalConsumer(URI.create(root + "/F3Synthetic#consumer" + pos), consumer, logicalComponent); logicalConsumer.setServiceContract(contract); logicalConsumer.addSource(channelUri); return logicalConsumer; }
private void createConsumers(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) { for (ConsumerDefinition consumer : componentType.getConsumers().values()) { String name = consumer.getName(); URI consumerUri = component.getUri().resolve('#' + name); LogicalConsumer logicalConsumer = new LogicalConsumer(consumerUri, consumer, component); // producer is configured in the component definition ComponentConsumer componentConsumer = definition.getConsumers().get(name); if (componentConsumer != null) { logicalConsumer.addIntents(componentConsumer.getIntents()); // TODO refactor this: URIs should be resolved to channels by a separate service that also handles promotion for (URI uri : componentConsumer.getSources()) { if (uri.isAbsolute()) { LogicalComponent<?> domain = component.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalConsumer.addSource(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalConsumer.addSource(URI.create(component.getParent().getUri().toString() + "/" + uri.toString())); } } } component.addConsumer(logicalConsumer); } }
private <T> LogicalConsumer createConsumer(Class<T> type, URI channelUri) { JavaServiceContract contract = introspector.introspect(type); LogicalCompositeComponent domain = lcm.getDomainComposite(); String root = domain.getUri().toString(); LogicalComponent<NonManagedImplementation> logicalComponent = createComponent(Object.class, domain, root); DataType dataType = new JavaType(type); Consumer consumer = new Consumer("consumer", dataType, true); int pos = counter.getAndIncrement(); LogicalConsumer logicalConsumer = new LogicalConsumer(URI.create(root + "/F3Synthetic#consumer" + pos), consumer, logicalComponent); logicalConsumer.setServiceContract(contract); logicalConsumer.addSource(channelUri); return logicalConsumer; }