Thanx for the advice :). I will try that out.. On 13 July 2011 02:53, Raymond Feng <enjoyj...@gmail.com> wrote:
> Hi, Amindri. > > The JmxModuleActivator should receive the injected ExtensionPointRegistry > from Tuscany runtime instead of instantiating its own instance. To do so, > you need to create a constructor of JmxModuleActivator that takes the > ExtensionPointRegistry argument and uses it for the start/stop methods. > > For example, > public class JmxModuleActivator implements ModuleActivator { > private ExtensionPointRegistry registry; > > public JmxModuleActivator(ExtensionPointRegistry registry) { > this.registry = registry; > ... > } > > public void start() { > // Do something with registry > } > > ... > } > > Thanks, > Raymond > *________________________________________________________________ > Raymond Feng > rf...@apache.org > Apache Tuscany PMC member and committer: tuscany.apache.org > Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com > Personal Web Site: www.enjoyjava.com > ________________________________________________________________* > > On Jul 11, 2011, at 6:35 PM, Amindri Udugala wrote: > > > > On 10 July 2011 15:09, Luciano Resende <luckbr1...@gmail.com> wrote: > >> On Sat, Jul 9, 2011 at 9:53 PM, Amindri Udugala >> <amindriudug...@gmail.com> wrote: >> > Hi, >> > >> > >> > After going through the Tuscany code carefully I decided that the best >> way >> > to access runtime artifacts like Endpoints, Components, Composites and >> > Services was to access the DomainRegistryFactoryExtension >> > Point. Bellow is code snippet where I access these objects. >> > >> > for (DomainRegistryFactory factory : >> factories.getDomainRegistryFactories()) >> > { >> > Collection<DomainRegistry> domainRegistries = >> > factory.getEndpointRegistries(); >> > >> > for (DomainRegistry domainRegistry : domainRegistries) { >> > >> > compositeManagement.register(domainRegistry.getDomainComposite()); >> > List<Component> componentList = >> > domainRegistry.getDomainComposite().getComponents(); >> > >> > for (Component component : componentList) { >> > componentManagement.register(component); >> > >> > List<ComponentService> componentServiceList = >> > component.getServices(); >> > for (ComponentService componentService : >> > componentServiceList) { >> > >> > componentServiceManagement.register(componentService); >> > } >> > } >> > >> > Collection<Endpoint> endpointCollection = >> > domainRegistry.getEndpoints(); >> > for (Endpoint ep : endpointCollection) { >> > endpointManagement.registerEndpoints(ep); >> > } >> > } >> > } >> > >> > >> > The problem is that when I run the code there it doesn't receive any >> data. >> > (I have attached an image of the Jconsole -nodata.png) . But the >> > PolicyProviderfactories in ProviderfactoryExtensionPoint are shown (have >> > attached an image of that too). >> > >> > What I did to bootstrap tuscany was, executing >> LaunchCalculatorContribution >> > with a Thread.sleep(10000) right after invoking node.getService(.....). >> I >> > found it a bit tedious to run the tuscany shell. Is it because the way I >> > have bootstrp tuscany that I don't get nay data to rest of the beans? Is >> > there a better way of accessing runtime artifacts? >> > >> > Also I have a problem with the jmx-activator module. This module should >> be >> > invoked when Tuscany is boot strapped as it implements the >> ModuleActivator >> > interface, also I have taken other necessary actions as mentioned in the >> > development guide. But it is not invoked, so just for testing purpose i >> > created an object of JmxModuleActivator in the >> LaunchCalculatorContribution >> > and called the start method in it. >> > >> > Hope you can give me some advice on these issues. Also I will attach the >> > revised patch to JIRA. >> > >> hi thanx for the feedback.. >> Without knowing all the details, this seems like missing dependency >> issues. > > But I have added all the dependencies in relevent pom files. Is it > something to do with the MANIFESTs? But I included all package imports and > exports to the manifests as well, and still the jmx-activator module is not > activated when tuscany is boot strapped. > > >> The Tuscany runtime use the service discover pattern to >> register extensions and to activate the module activators. Maybe this >> can give you a clue for further investigating the problem. >> > > To access the runtime objects Have created a new object of > ExtensionPointRegistry > ExtensionPointRegistry extensionPoints = new > DefaultExtensionPointRegistry(); > > Then the Domain's Composites, Components Endpoints are accessed by > DomainRegistryFactoryExtensionPoint > DomainRegistryFactoryExtensionPoint factories = > extensionPoints.getExtensionPoint(DomainRegistryFactoryExtensionPoint.class); > > And I have posted the code snippet how I'm accessing these objects > > for (DomainRegistryFactory factory : > factories.getDomainRegistryFactories()) { > Collection<DomainRegistry> domainRegistries = > factory.getEndpointRegistries(); > > for (DomainRegistry domainRegistry : domainRegistries) { > > compositeManagement.register(domainRegistry.getDomainComposite()); > List<Component> componentList = > domainRegistry.getDomainComposite().getComponents(); > > for (Component component : componentList) { > componentManagement.register(component); > > List<ComponentService> componentServiceList = > component.getServices(); > for (ComponentService componentService : > componentServiceList) { > > componentServiceManagement.register(componentService); > } > } > > Collection<Endpoint> endpointCollection = > domainRegistry.getEndpoints(); > for (Endpoint ep : endpointCollection) { > endpointManagement.registerEndpoints(ep); > } > } > } > > Is it because of a missing dependency that I'm not getting data to these > objects? > > > > > > > > > > > > >> >> >> -- >> Luciano Resende >> http://people.apache.org/~lresende >> http://twitter.com/lresende1975 >> http://lresende.blogspot.com/ >> > > > > -- > Thanks > > Amindri Udugala > University of Colombo School of Computing, > Sri Lanka. > > > -- Thanks Amindri Udugala University of Colombo School of Computing, Sri Lanka.