Hi Marcel,
Marcel Offermans wrote:
Hello John,
On Jan 29, 2010, at 0:52 , John E. Conlon wrote:
Marcel Offermans wrote:
No, I meant adding the resource processor bundle to the list of bundles you
want installed on the target.
I thought you may have meant this, but if one does add it to the list of bundles, how
will ACE distinguish this 'Customizer bundle' from others bundle resources that are part
of the Deployment Package? Will need to specify this somehow as a
"DeploymentPackage-Customizer: true".
If you stick to the spec, then "customizer bundles" don't provide any mandatory
metadata to recognize them.
When you say 'mandatory metadata' I think you must be referring to the
customizer 'bundle's MANIFEST.MF' versus the Deployment Packages
MANIFEST.MF. Right?
However, for ACE we decided that it would be very convenient if a user could
just drop it in, so we add a header of the following form:
Deployment-ProvidesResourceProcessor: org.osgi.deployment.rp.autoconf
(in this example for a processor that can process resources tagged with that
PID)
Makes sense.
Took a look to see if there was anything special in the MANIFEST.MF for
the org.apache.felix.deployment.rp.autoconf-0.1.0-SNAPSHOT.jar and I see
only the header DeploymentPackage-Customizer: true
Which is interesting because that header is for the Deployment Packages
MANIFEST.MF, but not is not required by the spec to be in the actual
bundle MANIFEST.MF.
I also guess that since it does not have a
Deployment-ProvidesResourceProcessor: org.osgi.deployment.rp.autoconf
it is something that the ACE team has just not gotten around to adding
as of yet.
Also same question for other customizers. How to distinguish them from bundles
that are part of the list?
Same as well for 'processed resources'. How to tell ACE their resource
processor's pid?
There are a couple of other bits that we have to add to ACE to make this whole
process work. You have to provide an implementation of both ArtifactRecognizer
and ArtifactHelper, which provide support services to the client.
This must be where the decoration/annotation of the resources will come in.
As said before by Angelo, the current UI does not expose enough features yet to
make it work.
Some background information about this can be found on the following page:
http://incubator.apache.org/ace/object-graph-in-client.html
Thanks that helps.
(Seems to me that it should work because it is not associated with a
foriegn deployment package it is just installed normally on the framework. )
As far as I understood it, it has to be in the same DP, but it's been a while
since I read the spec. Could you point me to the part of the spec that states
that?
Deployment Admin 114.16.4
"Bundles exporting the service may arrive in
the deployment package (customizers) or may be preregistered (they are
installed prevoiusly). Resource processors has to define the service.pid
standard OSGi service property which should be a unique string."
Thanks, that's a bug.
Actually I sort of like it as a Customizer Bundle although, it makes the
Deployment Package larger.
Indeed, but it does make the whole process more flexible.
Agree.
There was one other subtlety that did not work but would be nice if it did.
Auto Configuration Specification 115.4.4
"The OCD elements that are referred from an Object element can be contained
in the Autoconf resource, or they can come from the Meta Type service.
The reference takes place through the ocdref attribute of the Object
element. The Autoconf Resource Processor must first match this name to
any OCD elements in the Autoconf resources. If the reference cannot be
found in this file, it must consult the Meta Type service (if present) for the
bundle that is associated with the PID that is configured."
I am using Meta Type for my bundles. But could not remove my OCD element to
let it find the one on the bundle. When I try and load a Deployment Package
with this defaulting autoconf.xml I get thrown a Null Pointer and the load
fails. May be some other kind of edge thing here because it is further
complicated by my using ManagedServiceFactories. I am content with it work as
it is though.
Feel free to report this as an enhancement. Probably the issue tracker for
Apache Felix is the best place as that's where the code resides.
Will do.
thanks again,
John