Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [equinox-dev] getservice throws class cast exception

Yes Toni , Its separate you are right !

Regards,
Santosh Akhilesh
Ph: 9845482201
****************************************************************************
**************

 This email and its attachments contain confidential information from
HUAWEI, which is intended only for the person or entity whose address is
listed above. Any use of the information contained herein in any way
(including, but not limited to, total or partial disclosure, reproduction,
or dissemination) by persons other than the intended recipient(s) is
prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!

 
****************************************************************************
*************


-----Original Message-----
From: equinox-dev-bounces@xxxxxxxxxxx
[mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of Toni Menzel
Sent: Friday, May 30, 2008 1:54 PM
To: Equinox development mailing list
Subject: Re: [equinox-dev] getservice throws class cast exception

@Neil,
You are right hence i expected the need to include the api inside the bundle
as well as a given need.
Many implementations of services include the api as a convinience for the
end user.
(they sometimes just want - say - logging and don't care of stupid compdium
bundles as reqirement).
As said, this is (often ok) convinience vs.  clean separation.

@Santosh,
rethink the solution of you can and try to pull out the api into a separate
bundle.
If you feel pain, use something bnd to easily pull in api into each bundle
(the current solution).
Project-wise, you HAVE the api as separate module/project, haven't you ?

Toni

-------- Original-Nachricht --------
> Datum: Fri, 30 May 2008 09:08:58 +0100
> Von: njbartlett@xxxxxxxxx
> An: "Equinox development mailing list" <equinox-dev@xxxxxxxxxxx>
> Betreff: Re: [equinox-dev] getservice throws class cast exception

> Santosh,
> 
> I'm glad you got this working but please bear in mind that it is a
> poor design choice to export an interface from the same bundle that
> provides the service, because it does not truly de-couple the consumer
> from the provider, and it makes it much harder for you to update the
> provider bundle as the implementation of the service evolves. So I
> still recommend that you pull the interface into a third bundle.
> 
> Regards,
> Neil
> 
> On 5/30/08, Santosh Akhilesh <santoshakhilesh@xxxxxxxxxx> wrote:
> >
> > Hi,
> >
> > Thanks I got the problem solved as per your suggestion.
> >
> > However I could make it work with two bundles as per Toni's hint
> >
> > I included the jar in to the bundle one which was registering the
> service,
> > this bundle exported the interface A.
> >
> > In the second bundle I just imported the interface A and retrieved the
> > object and cast to A successfully.
> >
> > Thanks for your help and time.
> >
> > Cheers,
> > Santosh Akhilesh
> >
>
****************************************************************************
> > **************
> >
> >  This email and its attachments contain confidential information from
> > HUAWEI, which is intended only for the person or entity whose address is
> > listed above. Any use of the information contained herein in any way
> > (including, but not limited to, total or partial disclosure,
> reproduction,
> > or dissemination) by persons other than the intended recipient(s) is
> > prohibited. If you receive this e-mail in error, please notify the
> sender by
> > phone or email immediately and delete it!
> >
> >
> >
>
****************************************************************************
> > *************
> >
> >
> > -----Original Message-----
> > From: equinox-dev-bounces@xxxxxxxxxxx
> > [mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of
> njbartlett@xxxxxxxxx
> > Sent: Thursday, May 29, 2008 9:02 PM
> > To: Equinox development mailing list
> > Subject: Re: [equinox-dev] getservice throws class cast exception
> >
> > Santosh,
> >
> > You should not include the JAR that contains the interface in the
> > classpath of the two bundles. You should make it into a third bundle
> > and use Import-Package to depend on the interface.
> >
> > When a class is defined independently by two or more classloaders, the
> > resulting classes are considered by the JVM to be different, even if
> > they have exactly the same name and are defined from the same bytes on
> > disk. Therefore you cannot cast an instance of one type into a field
> > of the other.
> >
> > Regards
> > Neil
> >
> > On 5/29/08, Santosh Akhilesh <santoshakhilesh@xxxxxxxxxx> wrote:
> >> Dear All,
> >>
> >>
> >>
> >> I am new to OSGI and Equinox.
> >>
> >>
> >>
> >> I have defined an interface say A, this is defined in a project and
> > exported
> >> as jar
> >>
> >>
> >>
> >> Now I create Two OSGI bundles I include this jar in both the bundles.
> >>
> >>
> >>
> >> >From one bundle I implement the interface A and register the service
> to
> > the
> >> bundle context from second bundle I try to retrieve this service from
> > bundle
> >> context in the activator start function.
> >>
> >>
> >>
> >> I can see that service is retrieved but when I cast it to interface A,
> I
> > get
> >> class cast exception
> >>
> >>
> >>
> >> Any pointer why this happens and how to correct it.
> >>
> >>
> >>
> >> Regards,
> >>
> >> Santosh Akhilesh
> >>
> >> Ph: 9845482201
> >>
> >>
> >>
> >>
> > _______________________________________________
> > equinox-dev mailing list
> > equinox-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >
> >
> > _______________________________________________
> > equinox-dev mailing list
> > equinox-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/equinox-dev
> >
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev




Back to the top