public void stop(CompositeContext compositeContext, Composite composite) { if (logger.isLoggable(Level.FINE)) { logger.fine("Stopping composite: " + composite.getName()); } for (final Component component : composite.getComponents()) { stop(compositeContext, component); } }
public void activate(CompositeContext compositeContext, Composite composite) throws ActivationException { try { if (logger.isLoggable(Level.FINE)) { logger.fine("Activating composite: " + composite.getName()); } for (Component component : composite.getComponents()) { activateComponent(compositeContext, component); } } catch (Exception e) { throw new ActivationException(e); } }
public void deactivate(Composite composite) throws ActivationException { try { if (logger.isLoggable(Level.FINE)) { logger.fine("Deactivating composite: " + composite.getName()); } for (Component component : composite.getComponents()) { deactivateComponent(component); } } catch (Exception e) { throw new ActivationException(e); } }
/** * Get the service endpoints in this Node * TODO: needs review, works for the very simple testcase but i expect there are * other endpoints to be included */ public List<Endpoint> getServiceEndpoints() { List<Endpoint> endpoints = new ArrayList<Endpoint>(); if (compositeActivator != null) { if (domainComposite != null) { for (Component component : domainComposite.getComponents()) { for (Service service : component.getServices()) { // MJE 28/05/2009 - changed to RuntimeComponentService from RuntimeComponentServiceImpl // - no need to access the Impl directly here if (service instanceof RuntimeComponentService) { endpoints.addAll(((RuntimeComponentService)service).getEndpoints()); } } } } } return endpoints; }
/** * Get the service endpoints in this Node * TODO: needs review, works for the very simple testcase but i expect there are * other endpoints to be included */ public List<Endpoint> getServiceEndpoints() { List<Endpoint> endpoints = new ArrayList<Endpoint>(); if (compositeActivator != null) { if (domainComposite != null) { for (Component component : domainComposite.getComponents()) { for (Service service : component.getServices()) { // MJE 28/05/2009 - changed to RuntimeComponentService from RuntimeComponentServiceImpl // - no need to access the Impl directly here if (service instanceof RuntimeComponentService) { endpoints.addAll(((RuntimeComponentService)service).getEndpoints()); } } } } } return endpoints; }
private void processComposite(Composite composite, BuilderContext context){ // Index components, services and references Map<String, Component> components = new HashMap<String, Component>(); Map<String, ComponentService> componentServices = new HashMap<String, ComponentService>(); Map<String, ComponentReference> componentReferences = new HashMap<String, ComponentReference>(); indexComponentsServicesAndReferences(composite, components, componentServices, componentReferences); // Connect component references as described in wires connectWires(composite, componentServices, componentReferences, context.getMonitor()); for (Component component : composite.getComponents()) { // recurse for composite implementations Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { processComposite((Composite)implementation, context); } } }
private void processComposite(Composite composite, BuilderContext context){ // Index components, services and references Map<String, Component> components = new HashMap<String, Component>(); Map<String, ComponentService> componentServices = new HashMap<String, ComponentService>(); Map<String, ComponentReference> componentReferences = new HashMap<String, ComponentReference>(); indexComponentsServicesAndReferences(composite, components, componentServices, componentReferences); // Connect component references as described in wires connectWires(composite, componentServices, componentReferences, context.getMonitor()); for (Component component : composite.getComponents()) { // recurse for composite implementations Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { processComposite((Composite)implementation, context); } } }
/** * Clone composite component implementations * * @param composite * @param problems */ private void cloneCompositeImplementations(Composite composite) { for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { Composite compositeImplementation = (Composite)implementation; try { // Please note the clone method is recursive Composite clone = (Composite)compositeImplementation.clone(); component.setImplementation(clone); } catch (CloneNotSupportedException e) { throw new UnsupportedOperationException(e); } } } }
/** * Clone composite component implementations * * @param composite * @param problems */ private void cloneCompositeImplementations(Composite composite) { for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { Composite compositeImplementation = (Composite)implementation; try { // Please note the clone method is recursive Composite clone = (Composite)compositeImplementation.clone(); component.setImplementation(clone); } catch (CloneNotSupportedException e) { throw new UnsupportedOperationException(e); } } } }
private String writeComposite(Composite composite, ExtensionPointRegistry registry, StAXArtifactProcessor<Composite> compositeProcessor){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); XMLOutputFactory outputFactory = registry.getExtensionPoint(FactoryExtensionPoint.class) .getFactory(XMLOutputFactory.class); try { compositeProcessor.write(composite, outputFactory.createXMLStreamWriter(bos), new ProcessorContext(registry)); } catch(Exception ex) { return ex.toString(); } String result = bos.toString(); // write out and nested composites for (Component component : composite.getComponents()) { if (component.getImplementation() instanceof Composite) { result += "\n<!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -->\n" + writeComposite((Composite)component.getImplementation(), registry, compositeProcessor); } } return result; } }
private String writeComposite(Composite composite, StAXArtifactProcessor<Composite> compositeProcessor){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); XMLOutputFactory outputFactory = nodeFactory.getExtensionPointRegistry().getExtensionPoint(FactoryExtensionPoint.class) .getFactory(XMLOutputFactory.class); try { XMLStreamWriter xmlStreamWriter = outputFactory.createXMLStreamWriter(bos); compositeProcessor.write(composite, xmlStreamWriter, new ProcessorContext(nodeFactory.registry)); xmlStreamWriter.flush(); } catch(Exception ex) { return ex.toString(); } String result = bos.toString(); // write out and nested composites for (Component component : composite.getComponents()) { if (component.getImplementation() instanceof Composite) { result += "\n<!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -->\n" + writeComposite((Composite)component.getImplementation(), compositeProcessor); } } return result; }
private String writeComposite(Composite composite, StAXArtifactProcessor<Composite> compositeProcessor){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); XMLOutputFactory outputFactory = registry.getExtensionPoint(FactoryExtensionPoint.class) .getFactory(XMLOutputFactory.class); try { compositeProcessor.write(composite, outputFactory.createXMLStreamWriter(bos), new ProcessorContext(registry)); } catch(Exception ex) { return ex.toString(); } String result = bos.toString(); // write out and nested composites for (Component component : composite.getComponents()) { if (component.getImplementation() instanceof Composite) { result += "\n<!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -->\n" + writeComposite((Composite)component.getImplementation(), compositeProcessor); } } return result; } }
private String writeComposite(Composite composite, StAXArtifactProcessor<Composite> compositeProcessor){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); XMLOutputFactory outputFactory = registry.getExtensionPoint(FactoryExtensionPoint.class) .getFactory(XMLOutputFactory.class); try { compositeProcessor.write(composite, outputFactory.createXMLStreamWriter(bos), new ProcessorContext(registry)); } catch(Exception ex) { return ex.toString(); } String result = bos.toString(); // write out and nested composites for (Component component : composite.getComponents()) { if (component.getImplementation() instanceof Composite) { result += "\n<!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -->\n" + writeComposite((Composite)component.getImplementation(), compositeProcessor); } } return result; } }
private String writeComposite(Composite composite, StAXArtifactProcessor<Composite> compositeProcessor){ ByteArrayOutputStream bos = new ByteArrayOutputStream(); XMLOutputFactory outputFactory = nodeFactory.getExtensionPointRegistry().getExtensionPoint(FactoryExtensionPoint.class) .getFactory(XMLOutputFactory.class); try { XMLStreamWriter xmlStreamWriter = outputFactory.createXMLStreamWriter(bos); compositeProcessor.write(composite, xmlStreamWriter, new ProcessorContext(nodeFactory.registry)); xmlStreamWriter.flush(); } catch(Exception ex) { return ex.toString(); } String result = bos.toString(); // write out and nested composites for (Component component : composite.getComponents()) { if (component.getImplementation() instanceof Composite) { result += "\n<!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -->\n" + writeComposite((Composite)component.getImplementation(), compositeProcessor); } } return result; }
private void buildServiceBindings(Composite composite, BuilderContext context) { // build bindings recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { buildServiceBindings((Composite)implementation, context); } } // find all the component service bindings for (Component component : composite.getComponents()) { for (ComponentService componentService : component.getServices()) { for (Binding binding : componentService.getBindings()) { BindingBuilder builder = builders.getBindingBuilder(binding.getType()); if (builder != null) { builder.build(component, componentService, binding, context, false); } } } } }
private void buildServiceBindings(Composite composite, BuilderContext context) { // build bindings recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { buildServiceBindings((Composite)implementation, context); } } // find all the component service bindings for (Component component : composite.getComponents()) { for (ComponentService componentService : component.getServices()) { for (Binding binding : componentService.getBindings()) { BindingBuilder builder = builders.getBindingBuilder(binding.getType()); if (builder != null) { builder.build(component, componentService, binding, context, false); } } } } }
private void buildReferenceBindings(Composite composite, BuilderContext context) { // find all the component reference bindings (starting at top level) for (Component component : composite.getComponents()) { for (ComponentReference componentReference : component.getReferences()) { for (Binding binding : componentReference.getBindings()) { BindingBuilder builder = builders.getBindingBuilder(binding.getType()); if (builder != null) { builder.build(component, componentReference, binding, context, false); } } } } // build bindings recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { buildReferenceBindings((Composite)implementation, context); } } }
private void buildReferenceBindings(Composite composite, BuilderContext context) { // find all the component reference bindings (starting at top level) for (Component component : composite.getComponents()) { for (ComponentReference componentReference : component.getReferences()) { for (Binding binding : componentReference.getBindings()) { BindingBuilder builder = builders.getBindingBuilder(binding.getType()); if (builder != null) { builder.build(component, componentReference, binding, context, false); } } } } // build bindings recursively for (Component component : composite.getComponents()) { Implementation implementation = component.getImplementation(); if (implementation instanceof Composite) { buildReferenceBindings((Composite)implementation, context); } } }
protected boolean compositeUses(Composite c, String contributionURI, String compositeURI) { if (contributionURI.equals(c.getContributionURI()) && compositeURI.equals(c.getURI())) { return true; } for (Composite include : ((CompositeImpl)c).getFusedIncludes()) { if (compositeUses(include, contributionURI, compositeURI)) { return true; } } for (Component comp : c.getComponents()) { if (comp.getImplementation() instanceof Composite) { if (compositeUses((Composite)comp.getImplementation(), contributionURI, compositeURI)) { return true; } } } return false; } }
protected boolean compositeUses(Composite c, String contributionURI, String compositeURI) { if (contributionURI.equals(c.getContributionURI()) && compositeURI.equals(c.getURI())) { return true; } for (Composite include : ((CompositeImpl)c).getFusedIncludes()) { if (compositeUses(include, contributionURI, compositeURI)) { return true; } } for (Component comp : c.getComponents()) { if (comp.getImplementation() instanceof Composite) { if (compositeUses((Composite)comp.getImplementation(), contributionURI, compositeURI)) { return true; } } } return false; } }