geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From chi runhua <chirun...@gmail.com>
Subject Re: plugin classloader question
Date Wed, 19 Aug 2009 12:59:08 GMT
I can think of 2 approaches for your scenario, you may take a try:

1. use <hidden-classes/> tag in your deployment plan, you may refer to
deployment plan section in G2.2 doc;

2. update <geronimo_home>/var/config/artifacts-aliaes.properties, you may
refer to  substituting one module with another topic in G2.2 doc;

I can't open G22 doc website from home recently.....:-( so you might want to
find the page by yourself.

Jeff C

On Wed, Aug 19, 2009 at 1:02 AM, Trygve Hardersen <trygve@jotta.no> wrote:

> Sometimes asking the questions makes you think....
>
> It seems this can be achieved using the "hidden-classes" element in the
> module definition. I was probably fooled by Quartz logging version "1.5.2"
> even if the version really was "1.6.5". I looked at the Quartz source and
> they are loading the version numbers from a file "build.properties":
>
> is = QuartzScheduler.class.getResourceAsStream("/build.properties");
>
> I tried to add a "hidden-classes" filter on both "build.properties" and
> "/build.properties", but I don't think it is excluded. I guess the
> "hidden-classes" functionality treats this as a package name. Any way to
> escape it?
>
> Thanks!
>
> Trygve
>
>
> On Tue, Aug 18, 2009 at 6:17 PM, Trygve Hardersen <trygve@jotta.no> wrote:
>
>> Hello
>>
>> I'm having some problems with classloading and Geronimo plugins. Hopefully
>> some of you can share your insight into this.
>>
>> I want to use the OpenSymphony Quartz scheduler in my application. The
>> current version is opensymphony/quartz/1.6.5. OpenEJB also uses Quartz,
>> but an older version quartz/quartz/1.5.2. The Geronimo plugin I want to
>> use Quartz from also depends on
>> org.apache.geronimo.configs/openejb/2.2-SNAPSHOT, which comes with Quartz
>> since it depends on OpenEJB.
>>
>> The problem I'm having is making my plugin load Quartz from the
>> classloader of my plugin, not from the org.apache.geronimo.configs/openejb
>> classloader. The problem with loading it from that classloader is, besides
>> getting the old Quartz version, that commons-dbcp/commons-dbcp is not
>> available in that classloader. commons-dbcp is needed to use Quartz with a
>> JDBC JobStore (at least with MySQL):
>>
>> java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
>> in classloader org.apache.geronimo.configs/openejb/2.2-SNAPSHOT/car
>>
>> I've tried to update OpenEJB to use the same Quartz version as I do so the
>> groupid and artifactid are the same, but I'm still unable to exclude it from
>> the classloader of my plugin. Does anyone know how this can be achieved?
>> What I want is to create a Geronimo plugin that depends on
>> org.apache.geronimo.configs/openejb but loads Quartz from its own
>> classloader, not that of org.apache.geronimo.configs/openejb.
>>
>> Or to put it more generally, how can I prevent classes defined in
>> dependent plugins from being used in the current plugin?
>>
>> Many thanks!
>>
>> Trygve Hardersen
>> Jotta AS
>>
>
>
>

Mime
View raw message