> -----Original Message-----
> From: Olaf Bergner [mailto:[EMAIL PROTECTED]
> Sent: Thursday, January 01, 2004 4:34 PM
>
> > The solution (that will let you get back to normal code and avoid
> > reflection) is to declare a factory.  So instead of using the repository
> > package to load merlin you should use the repository package to load
> > your own factory.  The repository package will then create the
> > classloader you need with everything in it and your dependencies in
> > project.xml can be reduced down to nothing more than
> > avalon-repository-main.
> >
>
> Thanks. I'll give it a try. Yet I think I'll have to get my head
> around some
> of the deeper merlin/repository mysteries first. Do I understand you
> correctly in that you are talking about replacing
>
> Artifact artifact =
>       DefaultBuilder.createImplementationArtifact(
>               classloader,
>               getMerlinHome(),
>               getBaseDirectory(),
>               MERLIN_PROPERTIES,
>               IMPLEMENTATION_KEY);
>
> String[] hosts = getHosts();
>
> InitialContext context =
>       new DefaultInitialContext(repository, hosts);
>
> Builder builder = new DefaultBuilder(context, artifact);
> m_classloader = builder.getClassLoader();
> Factory factory = builder.getFactory();
>
> where artifact represents a merlin kernel with some code so that artifact
> represents a merlin kernel *factory*? But as soon as I switch from using
> reflection in my testcase to the 'normal' way, e.g. as soon as I do
> something like
>
> final Kernel meLovelyKernel = (Kernel) factory.create(criteria);
>
> I'll be back to where I came from: maven's got to see the Kernel
> interface,
> and thus merlin-api's got to be in project.xml. Or did I get it all wrong?
> Please bear with me, but I definitely want to get this one straight since
> it's really been bothering me for quite a while.
>

Oh, I see. You were talking about *implementation* classes being present on
the maven classloader, right? Only those could lead to the scenario you
described above. As long as I only code against the API I'll be safe. Is
this what you told me in your mail?

Thanks for your efforts,

Olaf


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to