hi stephen,
just to clarify, i have the feeling that the creation of the DefaultKernel does all
the commisioning automatically:
Factory factory = builder.getFactory();
Map criteria = factory.createDefaultCriteria();
criteria.put("merlin.deployment", new String[] { "bin"});
criteria.put("merlin.debug", "true");
criteria.put("merlin.info", "true");
DefaultKernel kernel = (DefaultKernel) factory.create(criteria); // <===== SEEMS
TO LOAD AND START THE BLOCK
produces the output:
[DEBUG ] (kernel.logger): logging system established
[DEBUG ] (kernel.logger): adding category [kernel]
[DEBUG ] (kernel): logging system established
[DEBUG ] (kernel): repository established: C:\Dokumente und
Einstellungen\Stepper\.avalon\repository, http://www.dpml.net/,
http://www.ibiblio.org/maven/
[DEBUG ] (kernel.logger): adding category [kernel]
[INFO ] (kernel): info report
-----------------------------------------------------------
Merlin Kernel Environment Listing
-----------------------------------------------------------
${user.dir} == C:\develop\workspace\MerlinTest
${user.home} == C:\Dokumente und Einstellungen\Stepper
${avalon.repository.cache} == C:\develop\tools\merlin\system
${avalon.repository.online} == true
${avalon.repository.hosts} == http://www.dpml.net,http://www.ibiblio.org/maven
${merlin.lang} == null
${merlin.home} == C:\develop\tools\merlin
${merlin.system} == C:\develop\tools\merlin\system
${merlin.config} == C:\develop\tools\merlin\config
${merlin.kernel} == file:/C:/develop/tools/merlin/config/kernel.xml
${merlin.logging.implementation} ==
artifact:avalon-logging/avalon-logging-logkit-impl#1.0.0
${merlin.logging.config} == null
${merlin.runtime} == artifact:avalon-activation/avalon-activation-impl#2.0.0
${merlin.override} == null
${merlin.dir} == C:\develop\workspace\MerlinTest
${merlin.temp} == C:\DOKUME~1\Stepper\LOKALE~1\Temp
${merlin.context} == C:\develop\workspace\MerlinTest\home
${merlin.anchor} == C:\develop\workspace\MerlinTest
${merlin.info} == true
${merlin.debug} == true
${merlin.audit} == false
${merlin.server} == true
${merlin.autostart} == true
${merlin.code.security.enabled} == false
${merlin.deployment.timeout} == 1000
${merlin.repository} == C:\Dokumente und Einstellungen\Stepper\.avalon\repository
${merlin.repository.hosts} == http://www.dpml.net/,http://www.ibiblio.org/maven/
${merlin.deployment} == file:/${merlin.dir}/bin/
-----------------------------------------------------------
[DEBUG ] (kernel): building application model
[DEBUG ] (kernel.logger): adding root category
[DEBUG ] (kernel.logger): adding root category
[DEBUG ] (kernel.logger): adding root category
[DEBUG ] (classloader): base: ${merlin.dir}
[DEBUG ] (classloader): classpath:
[DEBUG ] (classloader.types): type install count: 0
[DEBUG ] (classloader.types): type registration complete
[DEBUG ] (kernel): state: initializing
[DEBUG ] (kernel): kernel established
[DEBUG ] (kernel): state: initialized
[DEBUG ] (kernel): install phase
[DEBUG ] (kernel): installing: file:/${merlin.dir}/bin/
[DEBUG ] (): including composite block:
file:/C:/develop/workspace/MerlinTest/bin/BLOCK-INF/block.xml
[DEBUG ] (): installing: econ
[DEBUG ] (kernel.logger): adding category [econ]
[DEBUG ] (kernel.logger): adding category [econ]
[DEBUG ] (econ): creating child classloader for: [econ]
[DEBUG ] (econ.classloader): base: ${merlin.dir}
[DEBUG ] (econ.classloader): implicit entries: 1
[DEBUG ] (econ.classloader): classpath: file:/${merlin.dir}/bin/;file:/C:/Dokumente
und
Einstellungen/Stepper/.avalon/repository/avalon-framework/jars/avalon-framework-impl-4.1.5.jar
[DEBUG ] (econ.classloader.scanner): scanning: file:/${merlin.dir}/bin/
[DEBUG ] (econ.classloader.scanner): type: tutorial.impl.HelloComponent
[DEBUG ] (econ.classloader.scanner): type: tutorial.impl.IdentifiableComponent
[DEBUG ] (econ.classloader.scanner): type: tutorial.impl.RandomGeneratorProvider
[DEBUG ] (econ.classloader.scanner): scanning: file:/C:/Dokumente und
Einstellungen/Stepper/.avalon/repository/avalon-framework/jars/avalon-framework-impl-4.1.5.jar
[DEBUG ] (econ.classloader.types): type install count: 3
[DEBUG ] (econ.classloader.types): registered [type:tutorial.impl.HelloComponent/1].
[DEBUG ] (econ.classloader.types): registered
[type:tutorial.impl.IdentifiableComponent/1].
[DEBUG ] (econ.classloader.types): registered
[type:tutorial.impl.RandomGeneratorProvider/1].
[DEBUG ] (econ.classloader.types): type registration complete
[DEBUG ] (kernel.logger): adding category [econ]
[DEBUG ] (kernel.logger): adding category [econ.hello]
[DEBUG ] (kernel): customize phase
[DEBUG ] (kernel): startup phase
[DEBUG ] (kernel): application assembly
[DEBUG ] (kernel): state: assembly
[DEBUG ] (): assembly phase
[DEBUG ] (econ): assembly phase
[DEBUG ] (kernel.logger): adding category [econ]
[DEBUG ] (kernel.logger): adding category [econ.random]
[DEBUG ] (kernel.logger): adding category [econ]
[DEBUG ] (kernel.logger): adding category [econ.ident]
[DEBUG ] (kernel): application deployment
[DEBUG ] (kernel): state: deployment
[DEBUG ] (): commissioning container [econ]
[DEBUG ] (econ): commissioning component [ident]
[DEBUG ] (econ): commissioning of [ident] completed in 47 milliseconds
[DEBUG ] (econ): commissioning component [random]
[DEBUG ] (econ): commissioning of [random] completed in 0 milliseconds
[DEBUG ] (econ): commissioning component [hello]
[DEBUG ] (econ.hello.lifecycle): incarnation
[DEBUG ] (econ.hello.lifecycle): instantiating component with a null constructor
[DEBUG ] (econ.hello.lifecycle): applying logger
[DEBUG ] (econ.hello.lifecycle): applying service manager
[DEBUG ] (econ.hello.lifecycle): applying initialization
[INFO ] (econ.hello): initialization
[DEBUG ] (econ.random.lifecycle): incarnation
[DEBUG ] (econ.random.lifecycle): instantiating component with a null constructor
[DEBUG ] (econ.random.lifecycle): applying logger
[DEBUG ] (econ.random.lifecycle): applying initialization
[INFO ] (econ.random): initialization
[DEBUG ] (econ.random.lifecycle): incarnation complete
[INFO ] (econ.random): processing request
[INFO ] (econ.hello): received random value: 1858134852
[DEBUG ] (econ.ident.lifecycle): incarnation
[DEBUG ] (econ.ident.lifecycle): instantiating component with a null constructor
[DEBUG ] (econ.ident.lifecycle): applying logger
[DEBUG ] (econ.ident.lifecycle): applying context
[INFO ] (econ.ident): contextualize
[DEBUG ] (econ.ident.lifecycle): incarnation complete
[INFO ] (econ.hello): using identifiable: /econ/ident
[DEBUG ] (econ.hello.lifecycle): incarnation complete
[DEBUG ] (econ): commissioning of [hello] completed in 31 milliseconds
[DEBUG ] (): commissioning of [econ] completed in 125 milliseconds
[DEBUG ] (kernel): state: started
the following code lines do not work:
ContainmentModel containmentModel = kernel.getModel();
ReferenceDescriptor reference = new
ReferenceDescriptor(Identifiable.class.getName());
ComponentModel componentModel = (ComponentModel)
containmentModel.getModel(reference); // <===== EXCEPTION
componentModel.commission();
Identifiable ident = (Identifiable) componentModel.resolve();
System.out.println("====> " + ident.getIdentity());
the exception is:
org.apache.avalon.composition.model.ProviderNotFoundException: Unable to locate a
service provider for the reference: [
tutorial.Identifiable:1.0.0].
at
org.apache.avalon.composition.model.impl.DefaultContainmentModelAssemblyHelper.findServiceProvider(DefaultContainmentModelAssemblyHe
lper.java:388)
at
org.apache.avalon.composition.model.impl.DefaultContainmentModelAssemblyHelper.findServiceProvider(DefaultContainmentModelAssemblyHe
lper.java:332)
at
org.apache.avalon.composition.model.impl.DefaultContainmentModel.getModel(DefaultContainmentModel.java:755)
at MerlinEmbedder.main(MerlinEmbedder.java:68)
what is a service provider? am i looking i a wrong model? hmm...
/eike
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]