Hi,
> Which class does the uimInfoShell bean extends ?
It was implementing org.apache.felix.service.command.Function, and I
had a wrong library in the classpath.
Now the shell class implements org.osgi.service.command.Function and
is directly declared as service, like so:
<bp:service id="fileShell" ref="uimFileShell"
interface="org.osgi.service.command.Function">
<bp:service-properties>
<bp:entry key="osgi.command.function" value="file"/>
<bp:entry key="osgi.command.scope" value="uim"/>
</bp:service-properties>
</bp:service>
and this works nicely.
Also, the bundles work now with Spring DM 2 on Karaf.
The only thing that is a bit fishy is that upon installing the
spring-dm-2 feature (feature descriptor at the end of the mail), I get
a set of ugly stacktraces. I also get these upon re-starting Karaf.
I'm pasting a shortened version of it here:
ka...@root> features:install spring-dm-2
Refreshing bundles org.springframework.aop (52),
org.springframework.context (53), org.springframework.beans (51)
Exception in thread "SpringOsgiExtenderThread-2"
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'featureUrlHandlerRef': Invocation of init
method failed; nested exception is java.lang.IllegalArgumentException:
invalid filter: url.handler.protocol=feature
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
...
Caused by: java.lang.IllegalArgumentException: invalid filter:
url.handler.protocol=feature
at
org.springframework.osgi.util.OsgiFilterUtils.unifyFilter(OsgiFilterUtils.java:138)
...
... 19 more
Exception in thread "SpringOsgiExtenderThread-5"
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'blueprintUrlHandlerRef': Invocation of init
method failed; nested exception is java.lang.IllegalArgumentException:
invalid filter: url.handler.protocol=blueprint
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
...
at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.IllegalArgumentException: invalid filter:
url.handler.protocol=blueprint
at
org.springframework.osgi.util.OsgiFilterUtils.unifyFilter(OsgiFilterUtils.java:138)
...
... 17 more
ka...@root> Exception in thread "SpringOsgiExtenderThread-16"
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'springUrlHandlerRef': Invocation of init
method failed; nested exception is java.lang.IllegalArgumentException:
invalid filter: url.handler.protocol=spring
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)
...
at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.IllegalArgumentException: invalid filter:
url.handler.protocol=spring
at
org.springframework.osgi.util.OsgiFilterUtils.unifyFilter(OsgiFilterUtils.java:138)
...
... 17 more
what's more interesting though is the log (unshortened version at
http://pastie.org/pastes/1234859/text):
09:32:10,768 | INFO | l Console Thread | BlueprintContainerCreator
| upport.BlueprintContainerCreator 56 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Discovered
configurations {bundle://74.0:0/OSGI-INF/blueprint/blueprint-cm.xml,
bundle://74.0:0/OSGI-INF/blueprint/blueprint-ext.xml} in bundle
[Apache Aries Blueprint Bundle
(org.apache.aries.blueprint;blueprint.graceperiod:=false)]
09:32:10,774 | INFO | l Console Thread | LifecycleManager
| ernal.activator.LifecycleManager 189 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Bundle Apache Aries
Blueprint Bundle is not type compatible with extender
spring-osgi-extender; ignoring bundle...
09:32:10,775 | WARN | ExtenderThread-8 | CustomListenerAdapterUtils
| apter.CustomListenerAdapterUtils 224 | 155 -
org.springframework.osgi.core - 2.0.0.M1 | Custom method [public void
org.apache.karaf.management.MBeanRegistrer.registerMBeanServer(javax.management.MBeanServer)
throws javax.management.JMException] threw exception when passing
service [$prox...@47710808]
javax.management.InstanceAlreadyExistsException:
org.apache.karaf:type=features,name=root
at
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)[:1.6.0_20]
<snip />
09:32:10,773 | INFO | xtenderThread-13 | DefaultListableBeanFactory
| pport.DefaultListableBeanFactory 549 | 51 -
org.springframework.beans - 3.0.3.RELEASE | Pre-instantiating
singletons in
org.springframework.beans.factory.support.defaultlistablebeanfact...@6a0bcf47:
defining beans
[adminService,mbeanServer,mbeanImpl,mbeanRegister,blueprintBundle,blueprintBundleContext,blueprintContainer,blueprintConverter];
root of factory hierarchy
09:32:10,777 | INFO | ExtenderThread-4 | OsgiServiceFactoryBean
| r.support.OsgiServiceFactoryBean 369 | 155 -
org.springframework.osgi.core - 2.0.0.M1 | Publishing service under
classes [{org.osgi.service.command.Function}]
09:32:10,791 | INFO | l Console Thread | BlueprintContainerCreator
| upport.BlueprintContainerCreator 56 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Discovered
configurations {bundle://158.0:0/OSGI-INF/blueprint/spring-deployer.xml}
in bundle [Apache Karaf :: Spring Deployer
(org.apache.karaf.deployer.spring;blueprint.graceperiod:=false)]
09:32:10,776 | INFO | ExtenderThread-3 | UIMRegistry
| eu.europeana.uim.UIMRegistry 40 | - - | Added
storage:MemoryStorageEngine
09:32:10,795 | INFO | ExtenderThread-8 |
ueprintContainerServicePublisher | ueprintContainerServicePublisher
97 | 155 - org.springframework.osgi.core - 2.0.0.M1 | Publishing
BlueprintContainer as OSGi service with properties
{Bundle-SymbolicName=org.apache.karaf.features.management,
Bundle-Version=2.1.0, osgi.blueprint.container.version=2.1.0,
osgi.blueprint.container.symbolicname=org.apache.karaf.features.management}
09:32:10,793 | INFO | ExtenderThread-4 |
OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext
328 | 53 - org.springframework.context - 3.0.3.RELEASE | Publishing
application context as OSGi service with properties
{org.springframework.context.service.name=eu.europeana.uim-import-file,
Bundle-SymbolicName=eu.europeana.uim-import-file,
Bundle-Version=1.0.0.SNAPSHOT}
09:32:10,793 | INFO | xtenderThread-16 |
OsgiBundleXmlApplicationContext | pport.AbstractApplicationContext
456 | 53 - org.springframework.context - 3.0.3.RELEASE | Refreshing
OsgiBundleXmlApplicationContext(bundle=org.apache.karaf.deployer.spring,
config=bundle://158.0:0/OSGI-INF/blueprint/spring-deployer.xml):
startup date [Wed Oct 20 09:32:10 CEST 2010]; root of context
hierarchy
09:32:10,802 | INFO | xtenderThread-16 |
OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext
383 | 53 - org.springframework.context - 3.0.3.RELEASE | Application
Context service already unpublished
09:32:10,804 | INFO | ExtenderThread-4 | ContextLoaderListener
| BundleApplicationContextListener 47 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Application context
successfully refreshed
(OsgiBundleXmlApplicationContext(bundle=eu.europeana.uim-import-file,
config=osgibundle:/META-INF/spring/*.xml))
09:32:10,806 | INFO | xtenderThread-16 | XmlBeanDefinitionReader
| tory.xml.XmlBeanDefinitionReader 315 | 51 -
org.springframework.beans - 3.0.3.RELEASE | Loading XML bean
definitions from OSGi
resource[bundle://158.0:0/OSGI-INF/blueprint/spring-deployer.xml|bnd.id=158|bnd.sym=org.apache.karaf.deployer.spring]
09:32:10,813 | INFO | ExtenderThread-8 |
OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext
328 | 53 - org.springframework.context - 3.0.3.RELEASE | Publishing
application context as OSGi service with properties
{org.springframework.context.service.name=org.apache.karaf.features.management,
Bundle-SymbolicName=org.apache.karaf.features.management,
Bundle-Version=2.1.0}
09:32:10,820 | WARN | xtenderThread-13 | CustomListenerAdapterUtils
| apter.CustomListenerAdapterUtils 224 | 155 -
org.springframework.osgi.core - 2.0.0.M1 | Custom method [public void
org.apache.karaf.management.MBeanRegistrer.registerMBeanServer(javax.management.MBeanServer)
throws javax.management.JMException] threw exception when passing
service [$prox...@1ddeda00]
javax.management.InstanceAlreadyExistsException:
org.apache.karaf:type=admin,name=root
at
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)[:1.6.0_20]
<snip - same stacktrace as before />
09:32:10,832 | INFO | ExtenderThread-3 | OsgiServiceFactoryBean
| r.support.OsgiServiceFactoryBean 369 | 155 -
org.springframework.osgi.core - 2.0.0.M1 | Publishing service under
classes [{org.osgi.service.command.Function}]
09:32:10,826 | INFO | xtenderThread-16 | DefaultListableBeanFactory
| pport.DefaultListableBeanFactory 549 | 51 -
org.springframework.beans - 3.0.3.RELEASE | Pre-instantiating
singletons in
org.springframework.beans.factory.support.defaultlistablebeanfact...@42eab1f2:
defining beans
[springUrlHandler,springDeploymentListener,springUrlHandlerRef,.org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean#0,blueprintBundle,blueprintBundleContext,blueprintContainer,blueprintConverter];
root of factory hierarchy
09:32:10,836 | INFO | xtenderThread-16 | OsgiServiceFactoryBean
| r.support.OsgiServiceFactoryBean 369 | 155 -
org.springframework.osgi.core - 2.0.0.M1 | Publishing service under
classes [{org.osgi.service.url.URLStreamHandlerService}]
09:32:10,830 | INFO | ExtenderThread-8 | BlueprintLoaderListener
| BundleApplicationContextListener 47 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Application context
successfully refreshed
(OsgiBundleXmlApplicationContext(bundle=org.apache.karaf.features.management,
config=bundle://10.0:0/OSGI-INF/blueprint/features-management.xml))
09:32:10,837 | INFO | xtenderThread-13 |
ueprintContainerServicePublisher | ueprintContainerServicePublisher
97 | 155 - org.springframework.osgi.core - 2.0.0.M1 | Publishing
BlueprintContainer as OSGi service with properties
{Bundle-SymbolicName=org.apache.karaf.admin.management,
Bundle-Version=2.1.0, osgi.blueprint.container.version=2.1.0,
osgi.blueprint.container.symbolicname=org.apache.karaf.admin.management}
09:32:10,838 | INFO | xtenderThread-13 |
OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext
328 | 53 - org.springframework.context - 3.0.3.RELEASE | Publishing
application context as OSGi service with properties
{org.springframework.context.service.name=org.apache.karaf.admin.management,
Bundle-SymbolicName=org.apache.karaf.admin.management,
Bundle-Version=2.1.0}
09:32:10,837 | INFO | ExtenderThread-3 |
OsgiBundleXmlApplicationContext | ractOsgiBundleApplicationContext
328 | 53 - org.springframework.context - 3.0.3.RELEASE | Publishing
application context as OSGi service with properties
{org.springframework.context.service.name=eu.europeana.uim-api,
Bundle-SymbolicName=eu.europeana.uim-api,
Bundle-Version=1.0.0.SNAPSHOT}
09:32:10,838 | INFO | xtenderThread-16 | DefaultListableBeanFactory
| ort.DefaultSingletonBeanRegistry 422 | 51 -
org.springframework.beans - 3.0.3.RELEASE | Destroying singletons in
org.springframework.beans.factory.support.defaultlistablebeanfact...@42eab1f2:
defining beans
[springUrlHandler,springDeploymentListener,springUrlHandlerRef,.org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean#0,blueprintBundle,blueprintBundleContext,blueprintContainer,blueprintConverter];
root of factory hierarchy
09:32:10,839 | INFO | xtenderThread-16 | OsgiServiceFactoryBean
| r.support.OsgiServiceFactoryBean 452 | 155 -
org.springframework.osgi.core - 2.0.0.M1 | Unregistered service
[ServiceRegistrationWrapper for
org.apache.felix.framework.serviceregistrationi...@4dffa9d]
09:32:10,839 | ERROR | xtenderThread-16 | BlueprintLoaderListener
| BundleApplicationContextListener 52 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Application context
refresh failed
(OsgiBundleXmlApplicationContext(bundle=org.apache.karaf.deployer.spring,
config=bundle://158.0:0/OSGI-INF/blueprint/spring-deployer.xml))
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'springUrlHandlerRef': Invocation of init
method failed; nested exception is java.lang.IllegalArgumentException:
invalid filter: url.handler.protocol=spring
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412)[51:org.springframework.beans:3.0.3.RELEASE]
<snip />
09:32:10,840 | INFO | xtenderThread-13 | BlueprintLoaderListener
| BundleApplicationContextListener 47 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Application context
successfully refreshed
(OsgiBundleXmlApplicationContext(bundle=org.apache.karaf.admin.management,
config=bundle://28.0:0/OSGI-INF/blueprint/admin-management.xml))
09:32:10,845 | INFO | ExtenderThread-3 | ContextLoaderListener
| BundleApplicationContextListener 47 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Application context
successfully refreshed
(OsgiBundleXmlApplicationContext(bundle=eu.europeana.uim-api,
config=osgibundle:/META-INF/spring/*.xml))
I'm not really sure what happens here, but I think there might be two things:
- Spring having trouble with various keys:
- java.lang.IllegalArgumentException: invalid filter:
url.handler.protocol=feature
- java.lang.IllegalArgumentException: invalid filter:
url.handler.protocol=blueprint
- java.lang.IllegalArgumentException: invalid filter:
url.handler.protocol=spring
- Something (not sure what) already existing:
javax.management.InstanceAlreadyExistsException:
org.apache.karaf:type=features,name=root
at
com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453)[:1.6.0_20]
<snip />
What's interesting too is what Spring says about Aries:
09:32:10,774 | INFO | l Console Thread | LifecycleManager
| ernal.activator.LifecycleManager 189 | 156 -
org.springframework.osgi.extender - 2.0.0.M1 | Bundle Apache Aries
Blueprint Bundle is not type compatible with extender
spring-osgi-extender; ignoring bundle...
Here is the feature descriptor I use, I can also provide the maven
configuration required to get all these dependencies (it's somewhat
tricky to find the right repositories):
<?xml version="1.0" encoding="UTF-8"?>
<features name="spring-features">
<feature name="spring-dm-2" version="2.0.0.M1">
<feature version="3.0.3.RELEASE">spring</feature>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/2.1_3_6</bundle>
<bundle>mvn:org.springframework.osgi/spring-osgi-io/2.0.0.M1</bundle>
<bundle>mvn:org.springframework.osgi/spring-osgi-core/2.0.0.M1</bundle>
<bundle>mvn:org.springframework.osgi/spring-osgi-extender/2.0.0.M1</bundle>
<bundle>mvn:org.springframework.osgi/spring-osgi-annotation/2.0.0.M1</bundle>
<bundle>mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/2.1.0</bundle>
</feature>
</features>
I'd be interested in looking more into this, i.e. to see what is the
cause of the exceptions thrown above.
Thanks,
Manuel
On Mon, Oct 18, 2010 at 3:48 PM, Guillaume Nodet <[email protected]> wrote:
> Which class does the uimInfoShell bean extends ?
> There's something weird in the stack trace, as if the bean implements the
> Function interface, i don't think the
> org.apache.felix.gogo.runtime.shell.Reflective should be involved.
> Can you check the wiring with the 'package:imports' command and make sure
> the org.apache.felix.service.command is correctly imported from the
> karaf.console bundle ?
>
> On Mon, Oct 18, 2010 at 15:38, Manuel Bernhardt <[email protected]>
> wrote:
>>
>> Hi,
>>
>> On Mon, Oct 18, 2010 at 2:32 PM, Guillaume Nodet <[email protected]> wrote:
>> > Note that @Autowired could be achieved by an explicit wiring in
>> > blueprint if
>> > the bean has setters.
>> > Let me know if you need more help, that's an are i'm interested in going
>> > to
>> > the bottom, as I'm still unclear what works and what does not.
>>
>> Thanks, actually I would need more help with the shell command service:
>>
>> Spring DM gets installed as a feature -- with a load of stacktraces,
>> but in the end it seems to run and deploy things nicely. I guess I'll
>> give you the stacktraces later on, when I'm sure it actually works as
>> expected (right now the shell is the only means I have to do so).
>>
>> I now declared a blueprint service in the spring-dm bundle-context:
>>
>> <bp:service id="infoShell" ref="uimInfoShell"
>> interface="org.apache.felix.service.command.Function">
>> <bp:service-properties>
>> <bp:entry key="osgi.command.function" value="info"/>
>> <bp:entry key="osgi.command.scope" value="uim"/>
>> </bp:service-properties>
>> </bp:service>
>>
>> together with a "uimInfoShell" bean which points to the implementation.
>>
>> Upon running "uim:info" in the console, I get
>>
>> 15:23:36,070 | INFO | l Console Thread | Console
>> | araf.shell.console.jline.Console 187 | 17 -
>> org.apache.karaf.shell.console - 2.1.0 | Exception caught while
>> executing command
>> java.lang.IllegalArgumentException: Cannot coerce info[] to any of []
>> at
>> org.apache.felix.gogo.runtime.shell.Reflective.method(Reflective.java:174)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.CommandProxy.execute(CommandProxy.java:54)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:229)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Closure.executeStatement(Closure.java:162)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Pipe.run(Pipe.java:101)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:79)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.CommandSessionImpl.execute(CommandSessionImpl.java:71)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.karaf.shell.console.jline.Console.run(Console.java:169)[17:org.apache.karaf.shell.console:2.1.0]
>> at java.lang.Thread.run(Thread.java:637)[:1.6.0_20]
>>
>>
>> I found a similar trace at
>> http://felix.apache.org/site/rfc-147-overview.html but I'm not really
>> sure what it means.
>>
>> The uimInfo execute() method only does a few System.out's and returns
>> null - is there anything else I need to do?
>>
>> Thanks,
>>
>> Manuel
>>
>>
>>
>>
>>
>> 15:23:36,070 | INFO | l Console Thread | Console
>> | araf.shell.console.jline.Console 187 | 17 -
>> org.apache.karaf.shell.console - 2.1.0 | Exception caught while
>> executing command
>> java.lang.IllegalArgumentException: Cannot coerce info[] to any of []
>> at
>> org.apache.felix.gogo.runtime.shell.Reflective.method(Reflective.java:174)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.CommandProxy.execute(CommandProxy.java:54)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:229)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Closure.executeStatement(Closure.java:162)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Pipe.run(Pipe.java:101)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:79)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.felix.gogo.runtime.shell.CommandSessionImpl.execute(CommandSessionImpl.java:71)[17:org.apache.karaf.shell.console:2.1.0]
>> at
>> org.apache.karaf.shell.console.jline.Console.run(Console.java:169)[17:org.apache.karaf.shell.console:2.1.0]
>> at java.lang.Thread.run(Thread.java:637)[:1.6.0_20]
>>
>> On Mon, Oct 18, 2010 at 2:32 PM, Guillaume Nodet <[email protected]> wrote:
>> > Note that @Autowired could be achieved by an explicit wiring in
>> > blueprint if
>> > the bean has setters.
>> > Let me know if you need more help, that's an are i'm interested in going
>> > to
>> > the bottom, as I'm still unclear what works and what does not.
>> >
>> > On Fri, Oct 15, 2010 at 22:24, Manuel Bernhardt
>> > <[email protected]>
>> > wrote:
>> >>
>> >> Salut!
>> >>
>> >> On Fri, Oct 15, 2010 at 7:19 PM, Guillaume Nodet <[email protected]>
>> >> wrote:
>> >> > Yeah, that has changed in 2.1 where Karaf does not display the
>> >> > pre-installed
>> >> > bundle anymore.
>> >> > Try 'la' in the console to see all the bundles. The Aries Blueprint
>> >> > impl is
>> >> > used by a lot of bundles in karaf.
>> >>
>> >> Indeed. Well then I'll probably have some more surprises with the two
>> >> Blueprint implementations running side-by-side
>> >>
>> >> >> The issue I have now is that we use the Karaf shell extensions in
>> >> >> order to talk to our bundles via the console. This worked nicely
>> >> >> with
>> >> >> a <command-bundle> declaration as long as I didn't inject
>> >> >> dependencies
>> >> >> with spring (but wired them via hand). Now, spring not being the one
>> >> >> initializing the shell <action> classes, the dependencies are not
>> >> >> initialized.
>> >> >
>> >> > Not sure to exactly follow what you did with spring.
>> >>
>> >> Mainly the shell extension (extending OsgiCommandSupport) has a member
>> >> that is injected via @AutoWired. The type is declared in the spring
>> >> bundle context.
>> >>
>> >> >> - how does the shell console look for it's extension points? Will it
>> >> >> only look in <command-bundle> definitions in a OSGI-INF/blueprint
>> >> >> path, or would it in theory be fine if the definition were in a
>> >> >> spring
>> >> >> bundle-context definition file (with a custom namespace mapping). My
>> >> >> aim would be to have spring initialize the instance (and wire its
>> >> >> dependencies) but still have the shell know about it / how to talk
>> >> >> to
>> >> >> it.
>> >> >
>> >> > The console looks for services in the registry. The custom blueprint
>> >> > namespace is just a simple way to expose the service.
>> >> > To add a command to the console if you're no using blueprint,
>> >> > register a
>> >> > service implementing the org.apache.felix.service.command.Function
>> >> > interface
>> >> > and with the osgi.command.function and osgi.command.scope service
>> >> > properties. Try "ls -a 14' for example in the karaf console to see
>> >> > a
>> >> > bunch
>> >> > of those methods. The helper classes are located in the
>> >> > o.a.karaf.shell.console bundle.
>> >>
>> >> Great, thanks!
>> >>
>> >> >> - it looks like http://karaf.apache.org/xmlns/shell/v1.0.0 isn't
>> >> >> online, whilst that would be handy to have
>> >> >
>> >> > Wanna raise a JIRA, that should be fixed.
>> >> > You can find it at
>> >> >
>> >> >
>> >> > http://svn.apache.org/repos/asf/karaf/tags/karaf-2.1.0/shell/console/src/main/resources/org/apache/karaf/shell/console/commands/karaf-shell.xsd
>> >> > in the mean time.
>> >>
>> >> Will file a ticket
>> >>
>> >> >> - does what I am trying to do make any sense at all? (I'm rather new
>> >> >> to the latest OSGi spec, and am not sure what the usual practices
>> >> >> are)
>> >> >
>> >> > What are you trying to do? Do you only need to register a set of
>> >> > commands
>> >> > using spring-dm ? Do you really need to use the blueprint
>> >> > implemnttion
>> >> > from
>> >> > spring?
>> >>
>> >> Actually I don't care so much for the blueprint implementation. What I
>> >> am after is spring's dependency injection toolset and the integration
>> >> test facility
>> >>
>> >> (http://static.springsource.org/osgi/docs/2.0.0.M1/reference/html/testing.html#testing:integration).
>> >> If I understood things right, I do need spring dm to be running on the
>> >> platform in order to get those, or not?
>> >>
>> >> Thanks,
>> >>
>> >> Manuel
>> >
>> >
>> >
>> > --
>> > Cheers,
>> > Guillaume Nodet
>> > ------------------------
>> > Blog: http://gnodet.blogspot.com/
>> > ------------------------
>> > Open Source SOA
>> > http://fusesource.com
>> >
>> >
>> >
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>
>
>