You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by "Richard S. Hall" <he...@ungoverned.org> on 2011/08/15 17:10:57 UTC
Gogo inspect command
When I created the "inspect" command for Gogo, I just made up the
terminology, which gave us things like:
inspect package capability
Which could also be abbreviated:
inspect p c
Or other abbreviations since I was using startsWith() to compare the
arguments.
The first argument to the inspect command, I called "type" although more
technically it is the "namespace" of the capability/requirement. The
following types are supported:
package (Import-Package)
bundle (Require-Bundle)
fragment (Fragment-Host)
service (generic service dependency)
Now, for OSGi R4.3, the OSGi spec has adopted a more generic dependency
model (similar to the model that the Felix framework uses internally).
As a result, most of the above types (now explicitly called namespaces)
have new official values:
osgi.wiring.package
osgi.wiring.bundle
osgi.wiring.host
Note that there is no official OSGi namespace for services yet and the
fragment namespace is actually the reverse of what I was using. Further,
new Provide-Capability/Require-Capability headers give you the ability
to have arbitrary dependencies for custom namespaces.
To deal with this, I'd like to change the "inspect" command like this:
1. Drop old namespace names (i.e., package, bundle, fragment).
2. Adopt new official namespace names (i.e., osgi.wiring.package,
osgi.wiring.bundle, osgi.wiring.host).
3. Allow abbreviations to be entered using the first letter of each
namespace (e.g., owp == osgi.wiring.package); this would also
provide a generic way to handle abbreviations for custom namespaces
too...of course, you will also be able to type in the entire
namespace name too.
The "service" namespace would stay the same at least until there is an
official namespace for it.
Thoughts?
-> richard
Re: Gogo inspect command
Posted by "Richard S. Hall" <he...@ungoverned.org>.
So, I've implemented this as described here:
https://issues.apache.org/jira/browse/FELIX-3050
I've deployed a 0.11.0-SNAPSHOT...if you want to try it, you'll need to
be using Gogo 0.10.0 runtime and shell.
If you have any comments, please follow up on the above issue.
-> richard
On 8/17/11 11:25, Richard S. Hall wrote:
> Following up on this, I've started to implement the new "inspect"
> command. I realized that since we now have a generic model, that it
> would make more sense to reverse the parameters. For example, in the
> old "inspect" command you would do something like:
>
> inspect package capability
>
> Which would list all exported packages. However, with the new generic
> model I think it makes more sense to reverse the order:
>
> inspect capability osgi.wiring.package
>
> From this example, there isn't much difference, but it makes it more
> natural to support stuff like:
>
> inspect capability *
>
> To list all capabilities, or:
>
> inspect capability osgi.wiring.*
>
> To list all OSGi capabilities.
>
> My rationale is that the "type" of entity being queried (i.e.,
> capability or requirement) is more general so it should be specified
> first, then the specific namespace is used to create a more
> fine-grained list of entities. Seem reasonable?
>
> Another thing, since people running on older frameworks won't be able
> to query the generic model, we need to keep around the old "inspect"
> command too, so that it will continue to work no matter which platform
> you are on. If you are on an R4.3 framework you'll get the new
> command, if not you'll get the old one.
>
> Given that, should we modify the old inspect command to be more
> similar to this (at a minimum reverse its parameters too) or should we
> keep it the same?
>
> -> richard
>
>
> On 8/15/11 11:10, Richard S. Hall wrote:
>> When I created the "inspect" command for Gogo, I just made up the
>> terminology, which gave us things like:
>>
>> inspect package capability
>>
>> Which could also be abbreviated:
>>
>> inspect p c
>>
>> Or other abbreviations since I was using startsWith() to compare the
>> arguments.
>>
>> The first argument to the inspect command, I called "type" although
>> more technically it is the "namespace" of the capability/requirement.
>> The following types are supported:
>>
>> package (Import-Package)
>> bundle (Require-Bundle)
>> fragment (Fragment-Host)
>> service (generic service dependency)
>>
>> Now, for OSGi R4.3, the OSGi spec has adopted a more generic
>> dependency model (similar to the model that the Felix framework uses
>> internally). As a result, most of the above types (now explicitly
>> called namespaces) have new official values:
>>
>> osgi.wiring.package
>> osgi.wiring.bundle
>> osgi.wiring.host
>>
>> Note that there is no official OSGi namespace for services yet and
>> the fragment namespace is actually the reverse of what I was using.
>> Further, new Provide-Capability/Require-Capability headers give you
>> the ability to have arbitrary dependencies for custom namespaces.
>>
>> To deal with this, I'd like to change the "inspect" command like this:
>>
>> 1. Drop old namespace names (i.e., package, bundle, fragment).
>> 2. Adopt new official namespace names (i.e., osgi.wiring.package,
>> osgi.wiring.bundle, osgi.wiring.host).
>> 3. Allow abbreviations to be entered using the first letter of each
>> namespace (e.g., owp == osgi.wiring.package); this would also
>> provide a generic way to handle abbreviations for custom
>> namespaces too...of course, you will also be able to type in the
>> entire namespace name too.
>>
>> The "service" namespace would stay the same at least until there is
>> an official namespace for it.
>>
>> Thoughts?
>>
>> -> richard
Re: Gogo inspect command
Posted by "Richard S. Hall" <he...@ungoverned.org>.
Following up on this, I've started to implement the new "inspect"
command. I realized that since we now have a generic model, that it
would make more sense to reverse the parameters. For example, in the old
"inspect" command you would do something like:
inspect package capability
Which would list all exported packages. However, with the new generic
model I think it makes more sense to reverse the order:
inspect capability osgi.wiring.package
From this example, there isn't much difference, but it makes it more
natural to support stuff like:
inspect capability *
To list all capabilities, or:
inspect capability osgi.wiring.*
To list all OSGi capabilities.
My rationale is that the "type" of entity being queried (i.e.,
capability or requirement) is more general so it should be specified
first, then the specific namespace is used to create a more fine-grained
list of entities. Seem reasonable?
Another thing, since people running on older frameworks won't be able to
query the generic model, we need to keep around the old "inspect"
command too, so that it will continue to work no matter which platform
you are on. If you are on an R4.3 framework you'll get the new command,
if not you'll get the old one.
Given that, should we modify the old inspect command to be more similar
to this (at a minimum reverse its parameters too) or should we keep it
the same?
-> richard
On 8/15/11 11:10, Richard S. Hall wrote:
> When I created the "inspect" command for Gogo, I just made up the
> terminology, which gave us things like:
>
> inspect package capability
>
> Which could also be abbreviated:
>
> inspect p c
>
> Or other abbreviations since I was using startsWith() to compare the
> arguments.
>
> The first argument to the inspect command, I called "type" although
> more technically it is the "namespace" of the capability/requirement.
> The following types are supported:
>
> package (Import-Package)
> bundle (Require-Bundle)
> fragment (Fragment-Host)
> service (generic service dependency)
>
> Now, for OSGi R4.3, the OSGi spec has adopted a more generic
> dependency model (similar to the model that the Felix framework uses
> internally). As a result, most of the above types (now explicitly
> called namespaces) have new official values:
>
> osgi.wiring.package
> osgi.wiring.bundle
> osgi.wiring.host
>
> Note that there is no official OSGi namespace for services yet and the
> fragment namespace is actually the reverse of what I was using.
> Further, new Provide-Capability/Require-Capability headers give you
> the ability to have arbitrary dependencies for custom namespaces.
>
> To deal with this, I'd like to change the "inspect" command like this:
>
> 1. Drop old namespace names (i.e., package, bundle, fragment).
> 2. Adopt new official namespace names (i.e., osgi.wiring.package,
> osgi.wiring.bundle, osgi.wiring.host).
> 3. Allow abbreviations to be entered using the first letter of each
> namespace (e.g., owp == osgi.wiring.package); this would also
> provide a generic way to handle abbreviations for custom
> namespaces too...of course, you will also be able to type in the
> entire namespace name too.
>
> The "service" namespace would stay the same at least until there is an
> official namespace for it.
>
> Thoughts?
>
> -> richard