private LogicalReference createReference(JavaServiceContract contract) { LogicalCompositeComponent domainComponent = lcm.getRootComponent(); int id = idCounter.getAndIncrement(); String name = "Synthetic" + id; URI componentUri = URI.create(domainComponent.getUri().toString() + "/" + name); URI referenceUri = URI.create(componentUri.toString() + "#reference"); QName qName = new QName(HostNamespaces.SYNTHESIZED, "SyntheticComposite" + id); Composite composite = new Composite(qName); ComponentDefinition<NonManagedImplementation> componentDefinition = new ComponentDefinition<>(name); componentDefinition.setParent(composite); NonManagedImplementation implementation = new NonManagedImplementation(); componentDefinition.setImplementation(implementation); ComponentReference reference = new ComponentReference("reference", Multiplicity.ONE_ONE); componentDefinition.add(reference); LogicalComponent<NonManagedImplementation> logicalComponent = new LogicalComponent<>(componentUri, componentDefinition, domainComponent); logicalComponent.setZone(info.getZoneName()); reference.setServiceContract(contract); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, logicalComponent); logicalReference.setServiceContract(contract); logicalComponent.addReference(logicalReference); return logicalReference; }
private LogicalReference createReference(Class<?> interfaze) { LogicalCompositeComponent domainComponent = lcm.getDomainComposite(); int id = idCounter.getAndIncrement(); String name = "Synthetic" + id; URI componentUri = URI.create(domainComponent.getUri().toString() + "/" + name); URI referenceUri = URI.create(componentUri.toString() + "#reference"); QName qName = new QName(HostNamespaces.SYNTHESIZED, "SyntheticComposite" + id); Composite composite = new Composite(qName); Component<NonManagedImplementation> component = new Component<>(name); component.setParent(composite); component.setContributionUri(Names.HOST_CONTRIBUTION); NonManagedImplementation implementation = new NonManagedImplementation(); component.setImplementation(implementation); Reference<ComponentType> reference = new Reference<>("reference", Multiplicity.ONE_ONE); composite.add(reference); JavaServiceContract contract = introspector.introspect(interfaze); LogicalComponent<NonManagedImplementation> logicalComponent = new LogicalComponent<>(componentUri, component, domainComponent); reference.setServiceContract(contract); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, logicalComponent); logicalReference.setServiceContract(contract); logicalComponent.addReference(logicalReference); return logicalReference; }
private LogicalReference createReference(Class<?> interfaze) { LogicalCompositeComponent domainComponent = lcm.getDomainComposite(); int id = idCounter.getAndIncrement(); String name = "Synthetic" + id; URI componentUri = URI.create(domainComponent.getUri().toString() + "/" + name); URI referenceUri = URI.create(componentUri.toString() + "#reference"); QName qName = new QName(HostNamespaces.SYNTHESIZED, "SyntheticComposite" + id); Composite composite = new Composite(qName); Component<NonManagedImplementation> component = new Component<>(name); component.setParent(composite); component.setContributionUri(Names.HOST_CONTRIBUTION); NonManagedImplementation implementation = new NonManagedImplementation(); component.setImplementation(implementation); Reference<ComponentType> reference = new Reference<>("reference", Multiplicity.ONE_ONE); composite.add(reference); JavaServiceContract contract = introspector.introspect(interfaze); LogicalComponent<NonManagedImplementation> logicalComponent = new LogicalComponent<>(componentUri, component, domainComponent); reference.setServiceContract(contract); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, logicalComponent); logicalReference.setServiceContract(contract); logicalComponent.addReference(logicalReference); return logicalReference; }
private void createReferences(ComponentDefinition<?> definition, LogicalComponent<?> component, ComponentType componentType) { for (AbstractReference reference : componentType.getReferences().values()) { String name = reference.getName(); URI referenceUri = component.getUri().resolve('#' + name); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, component); // reference is configured in the component definition ComponentReference componentReference = definition.getReferences().get(name); if (componentReference != null) { logicalReference.addIntents(componentReference.getIntents()); for (BindingDefinition binding : componentReference.getBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalReference); logicalReference.addBinding(logicalBinding); } for (BindingDefinition binding : componentReference.getCallbackBindings()) { LogicalBinding<BindingDefinition> logicalBinding = new LogicalBinding<BindingDefinition>(binding, logicalReference); logicalReference.addCallbackBinding(logicalBinding); } } component.addReference(logicalReference); } }
private void createReferences(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Reference<ComponentType> reference : componentType.getReferences().values()) { String name = reference.getName(); URI referenceUri = logicalComponent.getUri().resolve('#' + name); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, logicalComponent); Reference<Component> componentReference = component.getReferences().get(name); if (componentReference != null) { // reference is configured in the component definition for (Binding binding : componentReference.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addBinding(logicalBinding); } for (Binding binding : componentReference.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addCallbackBinding(logicalBinding); } } else { // check if reference is configured with bindings in the component type for (Binding binding : reference.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addBinding(logicalBinding); } for (Binding binding : reference.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addCallbackBinding(logicalBinding); } } logicalComponent.addReference(logicalReference); } }
private void createReferences(Component<?> component, LogicalComponent<?> logicalComponent, ComponentType componentType) { for (Reference<ComponentType> reference : componentType.getReferences().values()) { String name = reference.getName(); URI referenceUri = logicalComponent.getUri().resolve('#' + name); LogicalReference logicalReference = new LogicalReference(referenceUri, reference, logicalComponent); Reference<Component> componentReference = component.getReferences().get(name); if (componentReference != null) { // reference is configured in the component definition for (Binding binding : componentReference.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addBinding(logicalBinding); } for (Binding binding : componentReference.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addCallbackBinding(logicalBinding); } } else { // check if reference is configured with bindings in the component type for (Binding binding : reference.getBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addBinding(logicalBinding); } for (Binding binding : reference.getCallbackBindings()) { LogicalBinding<Binding> logicalBinding = new LogicalBinding<>(binding, logicalReference); logicalReference.addCallbackBinding(logicalBinding); } } logicalComponent.addReference(logicalReference); } }