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]

Reply via email to