Thanks a lot for the fast answer.  I have already gone by the trouble of
making sure the system bundle export all the classpath available so that
plugin can take access to it.  But I didn't find out those technic
previously. (I'm using felix for now because the licensing was much smoother
to us).

I'll take a look if the resolver option is easy to implement and if not,
I'll take a look to find out those osgi specific attribute are available.

Again thanks a lot for the fast answer.

Marc-Andre

On Tue, Oct 13, 2009 at 2:49 PM, Igor Vaynberg <igor.vaynb...@gmail.com>wrote:

> On Tue, Oct 13, 2009 at 11:30 AM, Marc-Andre Houle <mho...@gmail.com>
> wrote:
> > Hello user list,
> >
> > I just wanted to aska quick question and know if I am going in the right
> > direction.  I am developping a Wicket application (obviously) that can be
> > extended through module loaded in an OSGi framework.
> >
> > At the first attempt, I got this when using an Image with
> ResourceReference
> > in Wicket 1.4.1 :
> > java.lang.NullPointerException
> >     at
> > org.apache.wicket.SharedResources.resourceKey(SharedResources.java:335)
> >     at org.apache.wicket.SharedResources.get(SharedResources.java:219)
> >     at
> org.apache.wicket.ResourceReference.bind(ResourceReference.java:137)
> >     at
> >
> org.apache.wicket.markup.html.image.resource.LocalizedImageResource.bind(LocalizedImageResource.java:180)
> >     at
> >
> org.apache.wicket.markup.html.image.resource.LocalizedImageResource.setResourceReference(LocalizedImageResource.java:246)
> >     at
> >
> org.apache.wicket.markup.html.image.Image.setImageResourceReference(Image.java:178)
> >     at org.apache.wicket.markup.html.image.Image.<init>(Image.java:101)
> >     at org.apache.wicket.markup.html.image.Image.<init>(Image.java:77)
> >
> > From what I can see, this is because the scope passed in
> Resourcereference
> > is transferred to a class name string and then it is taken back into a
> Class
> > Object using the default ClassLoader.
> >
> > Because I am using an OSGi framework, the classloader is not quite
> natural
> > and it can't be used the eaxct same way.  I have found a post (
> > http://markmail.org/message/zrauqq43hmbwjfvm) that is talking about this
> > problem exactly in the Mailing list.
> >
> > However, I wanted to know how I can change the class resolver used by
> Wicket
> > as sugggested in the post.  I have seen tha tthe session object is using
> a
> > class resolver or it can also be changed using the ApplicationSettings
> > implementation.  What is the best approach as to give the possibility to
> get
> > ride of this problem?
>
> MyApplication#init() { ...
> getApplicationSettings().setClassResolver(myresolver); }
>
> > Also, I wanted to know if it would not be a good thing for the framework
> to
> > throw another type of exception then a NullPointer.  It is not quite
> obvious
> > what is going on in the framework when this is happening.
>
> actually IClassResolver already specifies that a
> ClassNotFoundException should be thrown, but looks like that got lost
> at some point and null was returned instead. i fixed it in 1.5.x, best
> not to change it in 1.4.x in case people depend on this in their
> resolvers :|
>
> > Does somebody got the same issue?  Is the Classresolver the only
> possibility
> > for me?
>
> a class resolver is not the only possibility. osgi containers provide
> implementation-specific ways of making a bundle into a "super bundle"
> that can see all classes in the container. some of these techniques
> are called "buddy class loading" and "dynamic imports". google can
> help you further.
>
> -igor
>
> >
> > Thanks in advance for the answer.
> >
> > Marc-Andre
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to