private void createProducers(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) { for (ProducerDefinition producer : componentType.getProducers().values()) { String name = producer.getName(); URI producerUri = component.getUri().resolve('#' + name); LogicalProducer logicalProducer = new LogicalProducer(producerUri, producer, component); // producer is configured in the component definition ComponentProducer componentProducer = definition.getProducers().get(name); if (componentProducer != null) { logicalProducer.addIntents(componentProducer.getIntents()); // TODO refactor this: URIs should be resolved to channels by a separate service that also handles promotion for (URI uri : componentProducer.getTargets()) { if (uri.isAbsolute()) { LogicalComponent<?> domain = component.getParent(); while (domain.getParent() != null) { domain = domain.getParent(); } logicalProducer.addTarget(URI.create(domain.getUri().toString() + "/" + uri.getAuthority())); } else { logicalProducer.addTarget(URI.create(component.getParent().getUri().toString() + "/" + uri.toString())); } } } component.addProducer(logicalProducer); } }
private void createProducers(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Producer<ComponentType> producer : componentType.getProducers().values()) { String name = producer.getName(); URI producerUri = logicalComponent.getUri().resolve('#' + name); LogicalProducer logicalProducer = new LogicalProducer(producerUri, producer, logicalComponent); // producer is configured in the logicalComponent definition Producer<Component> componentProducer = component.getProducers().get(name); if (componentProducer != null) { for (URI uri : componentProducer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } else { for (URI uri : producer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } logicalComponent.addProducer(logicalProducer); } }
private void createProducers(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Producer<ComponentType> producer : componentType.getProducers().values()) { String name = producer.getName(); URI producerUri = logicalComponent.getUri().resolve('#' + name); LogicalProducer logicalProducer = new LogicalProducer(producerUri, producer, logicalComponent); // producer is configured in the logicalComponent definition Producer<Component> componentProducer = component.getProducers().get(name); if (componentProducer != null) { for (URI uri : componentProducer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } else { for (URI uri : producer.getTargets()) { addTarget(logicalProducer, uri, logicalComponent); } } logicalComponent.addProducer(logicalProducer); } }