I think I'm using merlin-3.2.4-bis Are there any simple instructions for switching from Merlin to Metro? Is it complicated? I could try it but I'm not sure if adding another variable into the mix will be constructive.
This is the debug output: [DEBUG ] (kernel.logging): default priority: DEBUG [DEBUG ] (kernel.logging): adding category: kernel [DEBUG ] (kernel): logging system established [DEBUG ] (kernel): repository established: cache:./repository, http://dpml.net/, http://www.ibiblio.org/maven/ [DEBUG ] (kernel.logging): adding category: kernel [DEBUG ] (kernel.logging): adding category: [DEBUG ] (kernel.classloader): base: ${user.dir} [DEBUG ] (kernel.classloader): classpath: [DEBUG ] (kernel.classloader.types): type install count: 0 [DEBUG ] (kernel.logging): adding category: [DEBUG ] (kernel): system assembly [DEBUG ] (): assembly phase [DEBUG ] (kernel): system deployment [DEBUG ] (): deployment: (empty) [DEBUG ] (kernel): system ready [DEBUG ] (kernel.logging): adding category: [DEBUG ] (kernel.logging): adding category: [DEBUG ] (classloader): base: ${user.dir} [DEBUG ] (classloader): classpath: [DEBUG ] (classloader.types): type install count: 0 [DEBUG ] (kernel): install phase [INFO ] (kernel): installing: file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar [DEBUG ] (): including composite block: jar:file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar!/BLOCK-INF/block.xml [DEBUG ] (): installing: xxx [DEBUG ] (kernel.logging): adding category: xxx [DEBUG ] (kernel.logging): adding category: xxx.threads.classloader.scanner, ERROR [DEBUG ] (kernel.logging): adding category: xxx [DEBUG ] (xxx.classloader): base: ${user.dir} [DEBUG ] (xxx): implicit entries: 1 [DEBUG ] (xxx): included entries: 5 [DEBUG ] (xxx): repository declarations: 1 [DEBUG ] (xxx): repository 0 contains 22 entries. [DEBUG ] (xxx.classloader): classpath: file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar;file:/ds/lib/ds.jar;file:${user.dir}/./repository/xxx/jars/server-api-1.2.jar;file:${user.dir}/./repository/xxx/jars/store-api-1.2.jar;file:${user.dir}/./repository/xxx/jars/store-impl-1.2.jar;file:${user.dir}/./repository/kxml2/jars/kxml2-2.1.8.jar;file:${user.dir}/./repository/commons-lang/jars/commons-lang-1.0.1.jar;file:${user.dir}/./repository/commons-collections/jars/commons-collections-2.1.jar;file:${user.dir}/./repository/avalon-framework/jars/avalon-framework-api-4.1.5.jar;file:${user.dir}/./repository/avalon-framework/jars/avalon-framework-impl-4.1.5.jar;file:${user.dir}/./repository/cornerstone-threads/jars/cornerstone-threads-api-1.0.jar;file:${user.dir}/./repository/cornerstone-sockets/jars/cornerstone-sockets-api-1.0.jar;file:${user.dir}/./repository/cornerstone-connection/jars/cornerstone-connection-api-1.0.jar;file:${user.dir}/./repository/cornerstone-connection/jars/cornerstone-connection-impl-1.0.jar;fil e:${user.dir}/./repository/cornerstone-scheduler/jars/cornerstone-scheduler-api-1.0.jar;file:${user.dir}/./repository/cornerstone-datasources/jars/cornerstone-datasources-api-1.0.jar;file:${user.dir}/./repository/excalibur-pool/jars/excalibur-pool-1.2.jar;file:${user.dir}/./repository/excalibur-thread/jars/excalibur-thread-1.1.1.jar;file:${user.dir}/./repository/excalibur/jars/excalibur-collections-1.0.jar;file:${user.dir}/./repository/excalibur/jars/excalibur-io-1.1.jar;file:${user.dir}/./repository/excalibur-concurrent/jars/excalibur-concurrent-1.0.jar;file:${user.dir}/./repository/xstream/jars/xstream-0.3.jar [DEBUG ] (xxx.classloader.scanner): scanning: file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar [DEBUG ] (xxx.classloader.scanner): type: xxx.client.ShowImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.client.PriorityImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.client.SubjectImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.client.MessageImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.client.StatusImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.client.BodyImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.client.ThreadImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.ErrorImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.SubjectImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.IqImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.StatusImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.dialback.ResultImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.dialback.VerifyImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.ShowImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.MessageImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.BodyImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.ThreadImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.PresenceImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.server.PriorityImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.SimpleMessageRouterImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.IMConnectionHandlerImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.IMServerImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.ModuleManagerImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.IMRouterImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.log.MessageRecorderImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.log.MessageLoggerImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.IMPresenceHolderImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.data.UserImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.data.UsersManagerImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.ServerParametersImpl [DEBUG ] (xxx.classloader.scanner): type: xxx.SubscriptionManagerImpl ---- exception report ---------------------------------------------------------- Exception: org.apache.avalon.merlin.KernelException Message: Install failure: file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar ---- cause --------------------------------------------------------------------- Exception: org.apache.avalon.composition.model.ModelException Message: Unable to create block from embedded descriptor [jar:file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar!/BLOCK-INF/block.xml] in the containmment model [/] due to a build related error. ---- cause --------------------------------------------------------------------- Exception: org.apache.avalon.composition.model.ModelException Message: Could not create classloader. ---- cause --------------------------------------------------------------------- Exception: org.apache.avalon.composition.model.ModelException Message: Unexpected error while scanning jar file: file:/temp/xxx-1.2-src/repository/xxx/jars/server-impl-1.2.jar ---- cause --------------------------------------------------------------------- Exception: org.apache.avalon.composition.model.ModelException Message: Component type [a.b.ServiceImpl] contains a reference to the class [a/b/Service] which does not exist in the classloader. ---- stack trace --------------------------------------------------------------- org.apache.avalon.composition.model.ModelException: Component type [a.b.ServiceImpl] contains a reference to the class [a/b/Service] which does not exist in the classloader. org.apache.avalon.composition.model.impl.Scanner.getComponentClass(Scanner.java:538) org.apache.avalon.composition.model.impl.Scanner.addType(Scanner.java:376) org.apache.avalon.composition.model.impl.Scanner.scanJarFile(Scanner.java:258) org.apache.avalon.composition.model.impl.Scanner.scanJarFileURL(Scanner.java:239) org.apache.avalon.composition.model.impl.Scanner.scanURL(Scanner.java:197) org.apache.avalon.composition.model.impl.Scanner.scan(Scanner.java:170) org.apache.avalon.composition.model.impl.DefaultClassLoaderModel.<init>(DefaultClassLoaderModel.java:235) org.apache.avalon.composition.model.impl.DefaultClassLoaderModel.createClassLoaderModel(DefaultClassLoaderModel.java:129) org.apache.avalon.composition.model.impl.DefaultContainmentModel.createContainmentModel(DefaultContainmentModel.java:579) org.apache.avalon.composition.model.impl.DefaultContainmentModel.createContainmentModel(DefaultContainmentModel.java:761) org.apache.avalon.composition.model.impl.DefaultContainmentModel.addContainmentModel(DefaultContainmentModel.java:321) org.apache.avalon.composition.model.impl.DefaultContainmentModel.addModel(DefaultContainmentModel.java:315) org.apache.avalon.merlin.impl.DefaultFactory.create(DefaultFactory.java:488) org.apache.avalon.merlin.cli.Main.<init>(Main.java:329) org.apache.avalon.merlin.cli.Main.main(Main.java:281) -------------------------------------------------------------------------------- [DEBUG ] (xxx.classloader.scanner): type: a.b.OtherImpl --- Stephen McConnell <[EMAIL PROTECTED]> wrote: > > > If you use the -debug switch you should see exactly > what is being > loading into the classloader. If you could post the > trace I could > probably provide a hint as to what the problem is. > > In the current version (Metro) we have put a lot of > effort into > improving the protocols dealing with classloader > management. Any chance > you could you run a test against Metro? You would > need to make some > minor updates to you block definition to handle the > improved classloader > descriptor format. > > Also - which version of Merlin are you running? > > Cheers, Steve. > > > > > -----Original Message----- > > From: ixxus nexxus [mailto:[EMAIL PROTECTED] > > Sent: 02 December 2004 01:19 > > To: Avalon framework users > > Subject: classloaders? > > > > What determine which jars are searched for loading > > classes? > > > > I have two jars: > > server-api.jar and server-impl.jar > > The api jar contains all the interfaces that > defines > > the services and impl contains the > implementations. > > > > I tried to define my own service so I wrote a > > a.b.Service interface which ends up in the > > server-api.jar and a corresponding a.b.ServiceImpl > in > > server-impl.jar > > > > The implementation is written like this: > > > > /** > > * @avalon.component version="0.1" name="Service" > > lifestyle="singleton" > > * @avalon.service type="a.b.Service" > > * > > * @version 0.1 > > */ > > public class ServiceImpl > > extends AbstractLogEnabled > > implements Initializable, Configurable, > Service > > { ... } > > > > while the interface is just > > > > ** > > * @version 0.1 > > */ > > public interface Service > > { ... } > > > > I've also got the following line in the block.xml: > > > > <component name="Service" > class="a.b.ServiceImpl" > > activation="lazy"/> > > > > and > > > > <classloader> > > ... > > <repository> > > <resource id="xxx:server-api" > > version="1.2"/> > > ... > > > > > > However, when I try to use a component that tries > to > > load this service, I get the exception: > > > > Exception: > > org.apache.avalon.composition.model.ModelException > > Message: Component type [a.b.ServiceImpl] contains > a > > reference to the class [a/b/Service] which does > not > > exist in the classloader. > > ---- stack trace > > > --------------------------------------------------------------- > > > org.apache.avalon.composition.model.ModelException: > > Component type [a.b.ServiceImpl] contains a > reference > > to the class [a/b/Service] which does not exist in > the > > classloader. > > > org.apache.avalon.composition.model.impl.Scanner.getComponentClass(Scann > er > > .java:538) > > .... > > > > Why is that? All sorts of other services are > contained > > in those jar files and it seems to be able to load > > those. What else do I have to do to enable it to > find > > my file? > > > > Thank you for your help. > > > > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [EMAIL PROTECTED] > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]