hstaudacher / osgi-jax-rs-connector

An OSGi - JAX-RS 2.0 Connector, software repository available on the link below
http://hstaudacher.github.io/osgi-jax-rs-connector
Other
190 stars 98 forks source link

connector does not work when bundle uses Blueprint #64

Closed bbarin closed 9 years ago

bbarin commented 9 years ago

If a bundle register a JAX-RS resource as a service using Blueprint the connector is unable to track and publish the resource.

ieugen commented 9 years ago

I'm not very familiar with the code but it might happen because Blueprint wraps the object in a Proxy and JAX-RS does not unwrap it.

bbarin commented 9 years ago

Thanks for your reply. Do you have an idea if this is planned to be solved soon?

ieugen commented 9 years ago

Don't know. I have an unanswered pull-request for about a month or so. Contacted @hstaudacher yesterday via email. Waiting for a reply.

2014-11-06 10:35 GMT+02:00 bbarin notifications@github.com:

Thanks for your reply. Do you have an idea if this is planned to be solved soon?

— Reply to this email directly or view it on GitHub https://github.com/hstaudacher/osgi-jax-rs-connector/issues/64#issuecomment-61942402 .

Ioan Eugen Stan 0720 898 747

hstaudacher commented 9 years ago

@bbarin Can you provide a standalone example for this?

I'm not very familiar with blueprint. If it wraps the services I guess the connector has to unwrap it like @ieugen says. But this would also mean to make the connector dependend on blueprint. This of course is not wanted.

What I could image is an Interface you can implement. When this impl is registered as a service the connector takes it and let it participate in the "is resource" decision process. Some kind of a IsResourceParticipant. The current implementation is in ResourceTracker#isResource which is pretty static. Maybe allowing participation is the right way. What do you think?

kdoteu commented 9 years ago

Blueprint (Gemini.Blueprint) in combination with the connector is working for me. With this snipped

<bean class="xxx.api.notification.SingleNotificationApi"
    id="singleNotificationApi">
    <property name="notificationManager" ref="notificationsManager" />
</bean>

<service id="serviceSingleNotification"
    interface="xxx.api.notification.ISingleNotificationApi"
    ref="singleNotificationApi">
</service>

I register the service. Don't know if this helps you.

hstaudacher commented 9 years ago

hmm, working or not working, that's the question :)

I will close the issue now because of @kdoteu comment. Please reopen if this is still a problem.