Thank you so much for this. I will join that list as well and try to do
a better job keeping up with emails.
David
On 2015-09-07 20:31, Benson Margulies wrote:
> I got it with a ton of help from other people on the felix list. The
> CXF part is trivial.
>
> 1: Make a component with no services:
>
> @Component(configurationPid = "com.basistech.ws.worker",
> configurationPolicy = ConfigurationPolicy.REQUIRE,
>
> /* No services; we're here to register ourself with CXF. */
> service = {})
>
> 2: Mark this up as a resource, or you can use other classes as the resource:
>
> 3: in your @Activate:
>
> JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean();
> sf.setServiceBean(this);
> sf.setAddress("/worker");
> server = sf.create();
>
> On the felix list you will see a river of email about how to make this
> depend on a variable collection of components registering OSGI
> services that you want to delegate to in your resource(s).
>
> On Mon, Sep 7, 2015 at 3:40 PM, <[email protected]> wrote:
>
>> When you figure out how to add providers and services to cxf without
>> blueprint please follow up. It would be helpful to me as well. Thanks for
>> all your great questions, David On 2015-09-07 09:31, Benson Margulies wrote:
>> On Mon, Sep 7, 2015 at 9:28 AM, Benson Margulies <[email protected]>
>> wrote: On Mon, Sep 7, 2015 at 9:25 AM, Achim Nierbeck
>> <[email protected]> wrote: hmm, must have overseen that sentence: The
>> onl difference in bundle inventory from blueprint to DS is the addition of
>> the compendium jar, which is not even loaded by loading up CXF. actually
>> it's no good idea to include that, and afaik all of the felix bundles
>> already provide all of the needed compendium packages. So remove that one,
>> cause that will make trouble and that's for sure :-) So, 'scope provided'?
>> I'll try that before I go out for the walk. Well, there you go. All is well,
>> no capability wiring errors, no mysterious explosions. regards, Achim
>> 2015-09-07 15:20 GMT+02:00 Benson Margulies
<[email protected]>: Achim and David, I am not currently using the most
recent felix resolver; that requires building the trunk of Karaf with a patch.
Over on the Karaf list, I'm pestering Achim with the following situation: I
have, now, a working version of my system which is 100% blueprint. (I did solve
the problem which started all of this.) Nevertheless, you and others make a
convincing case for DS, so I decided to try to move to DS. To start, I picked a
bundle that has no use of CXF -- it just consumes a service and registers a
service. The service it consumes has no Provide-Capability in its metadata. I:
* removed the blueprint metadata, * added a dependency on the compendium jar
(5.0.0) * added the DS annotations * added -dsannotations: * for bnd. In Karaf,
I install the prerequisites, which have not changed. Then I install the DS
service. I feared that I'd get a wiring error due to the Require-Capability.
But I don't. Instead, Karaf (very noisily) restarts the CXF bundles
that are already there. The onl difference in bundle inventory from blueprint
to DS is the addition of the compendium jar, which is not even loaded by
loading up CXF. If I then install an (unchanged) bundle that uses blueprint and
consumes the DS service, I get an NPE in the Karaf resolver. I think I'm going
to go take a walk and then try to produce an open source test case for this
hysteria. --benson On Mon, Sep 7, 2015 at 9:06 AM, Achim Nierbeck
<[email protected]> wrote: The felix-resolver does actually look for
those Require-Capabilities and throws an error if they can't be met. Now karaf
uses this resolver to resolve all features, and therefore will run into the
same issue when installing a feature as installing a bundle. regards, Achim
2015-09-07 15:04 GMT+02:00 David Jencks <[email protected]>: I think you
mean @Reference? I was a bit worried about including those Require-Capability
for services, but the people on the spec committee who understand resolving more
than me said that it would not be used at runtime but only to sort of plan what
set of bundles would be a good idea to run together. I wouldn't rule out this
causing the NPE however. Do you/Karaf have the latest felix resolver installed?
BTW Felix DS includes a gogo and a normal shell command. I wouldn't think this
would cause a restart -- it seems to me that this would indicate a
non-osgi-friendly console -- but I don't know how the karaf console is set up.
hope you continue making progress :-) david jencks On Sep 7, 2015, at 8:52 AM,
Benson Margulies <[email protected]> wrote: David, I note that the use of an
@Requirement leads to a Require-Capability in the manifest. In one case, I need
to consume a service which is registered by a boring old Activator class in a
bundle I do not control, and which does not have the corresponding
Provide-Capability. I haven't seen a wiring error yet, but this may be related
to an NPE in the Karaf resolver that afflicts me. On Sun, Sep 6, 2015 at
9:46 PM, Benson Margulies <[email protected]> wrote: So, the good news is
that I read the spec, I followed you hints, and I converted a simple bundle of
mine from blueprint to DS. The bad news is that Karaf 4.0.1 was unable to start
up with a combination of aries-blueprint and scr enabled. I am going to see if
the Karaf folks can give me a path through that before I try converting _all_
my services all at once. -- Apache Member Apache Karaf
<http://karaf.apache.org/ [1]> Committer & PMC OPS4J Pax Web
<http://wiki.ops4j.org/display/paxweb/Pax+Web/ [2]> Committer & Project Lead
blog <http://notizblog.nierbeck.de/ [3]> Co-Author of Apache Karaf Cookbook
<http://bit.ly/1ps9rkS [4]> Software Architect / Project Manager / Scrum Master
-- Apache Member Apache Karaf <http://karaf.apache.org/ [1]> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/ [2]> Committer &
Project Lead blog <http://notizblog.nierbeck.de/ [3]> Co-Author of Apache Karaf
Cookbook
<http://bit.ly/1ps9rkS [4]> Software Architect / Project Manager / Scrum Master
Links:
------
[1] http://karaf.apache.org/
[2] http://wiki.ops4j.org/display/paxweb/Pax+Web/
[3] http://notizblog.nierbeck.de/
[4] http://bit.ly/1ps9rkS