> Yo! hi stephen,
> After adding the model via something like the model.addContainmentModel( > url ) operation or as your describing above - what you have is a new > sub-model within the container - however, the sub-model isn't wired-up > yet. Once you have added all of the models you want you need to > commission the model. Commissioning the model results in the automatic > assembly (wiring) of consumer components with provider components and so > on. Once commissioned you can safely proceed with component > instantiation. > > For example for a container: > > ContainmentModel model = kernel.getModel(); > ContainmentModel test = model.addContainmentModel( myBlockUrl ); > test.commission(); > > Commissioning of a container results in the automatic deployment of any > components that have startup policy set to true, or any components > implied by the consequence of assembly. > > With a commissioned container you can go ahead and access actual > component models from the container, create new component instances, > etc. The dynamics tutorial contains details on how to do this, > including dynamic re-configuration of component models and so on. i tried to merge some lines from the dynamics tutorial: InitialContextFactory initial = new DefaultInitialContextFactory("merlin"); File home = initial.getHomeDirectory(); initial.setCacheDirectory(new File(home, "system")); InitialContext context = initial.createInitialContext(); String spec = "artifact:merlin/merlin-impl#3.3.0"; Artifact artifact = Artifact.createArtifact(spec); Builder builder = context.newBuilder(artifact); Factory factory = builder.getFactory(); Map criteria = factory.createDefaultCriteria(); criteria.put("merlin.deployment", new String[] { "bin"}); DefaultKernel kernel = (DefaultKernel) factory.create(criteria); ContainmentModel containmentModel = kernel.getModel(); // URL blockURL = new URL("file:bin/BLOCK-INF/block.xml"); // ContainmentModel block = containmentModel.addContainmentModel(blockURL); // <====== EXCEPTION 2 // block.commission(); ServiceModel[] services = containmentModel.getServiceModels(); ReferenceDescriptor reference = new ReferenceDescriptor(Identifiable.class.getName()); ComponentModel componentModel = (ComponentModel) containmentModel.getModel(reference); // <====== EXCEPTION 1 componentModel.commission(); Identifiable ident = (Identifiable) componentModel.resolve(); System.out.println("====> " + ident.getIdentity()); but i get an exception: [INFO ] (econ.hello): initialization [INFO ] (econ.random): initialization [INFO ] (econ.random): processing request [INFO ] (econ.hello): received random value: 1875652455 [INFO ] (econ.ident): contextualize [INFO ] (econ.hello): using identifiable: /econ/ident 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 de.escnet.signalling.client.MerlinEmbedder.main(MerlinEmbedder.java:68) if i uncomment what you have suggested, i get another exception: [INFO ] (econ.hello): initialization [INFO ] (econ.random): initialization [INFO ] (econ.random): processing request [INFO ] (econ.hello): received random value: -1892010755 [INFO ] (econ.ident): contextualize [INFO ] (econ.hello): using identifiable: /econ/ident org.apache.avalon.composition.model.ModelException: Unable to create a nested deployment model: hello in the containment model /. at org.apache.avalon.composition.model.impl.DefaultContainmentModelComponentHelper.createComponentContext(DefaultContainmentModelCompon entHelper.java:150) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.createComponentModel(DefaultContainmentModel.java:899) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.createDeploymentModel(DefaultContainmentModel.java:645) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.addModel(DefaultContainmentModel.java:604) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.<init>(DefaultContainmentModel.java:182) at org.apache.avalon.composition.model.impl.DefaultModelFactory.createContainmentModel(DefaultModelFactory.java:330) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.createContainmentModel(DefaultContainmentModel.java:987) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.createContainmentModel(DefaultContainmentModel.java:932) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.createContainmentModel(DefaultContainmentModel.java:1152) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.addContainmentModel(DefaultContainmentModel.java:574) at org.apache.avalon.composition.model.impl.DefaultContainmentModel.addContainmentModel(DefaultContainmentModel.java:568) at de.escnet.signalling.client.MerlinEmbedder.main(MerlinEmbedder.java:61) Caused by: org.apache.avalon.composition.model.TypeUnknownException: Unable to locate a component type descriptor for the component class [tutorial.impl.HelloComponent] in the classloader. Please verify that the component classname is correct and that a component type descriptor is included in a jar file available within the container classloader. at org.apache.avalon.composition.model.impl.DefaultTypeRepository.getType(DefaultTypeRepository.java:255) at org.apache.avalon.composition.model.impl.DefaultTypeRepository.getType(DefaultTypeRepository.java:220) at org.apache.avalon.composition.model.impl.DefaultContainmentModelComponentHelper.createComponentContext(DefaultContainmentModelCompon entHelper.java:125) ... 11 more i find this all quite confusing. thank you very much, that you keep responding that fast and detailed!!! /eike --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]