thanks for the prompt reply. I did compared my command with sample command archetypes and also karaf cellar. they were almost the same.
Apparently the problem was the different behaviour in maven-bundle-plugin version 2.5.3 and the <Private-Package> configuration. The problem has been fixed by updating the private package configuration. Cheers, On Wed Dec 31 2014 at 5:57:58 PM Jean-Baptiste Onofré <[email protected]> wrote: > It's normal: there are some refactoring between 2.x and 3.x. > > If you take a look in the command archetype, you can see: > > https://git-wip-us.apache.org/repos/asf?p=karaf.git;a=blob_ > plain;f=archetypes/command/src/main/resources/archetype- > resources/src/main/java/__command__.java;hb=karaf-3.0.x > > You should extend OsgiCommandSupport. > > Don't forget to import: > > org.apache.felix.service.command > > You can see the Karaf 3.x command style on Cellar 3.x. > > Regards > JB > > On 12/31/2014 05:47 PM, Mohammad Shamsi wrote: > > Hi, > > I've upgraded from karaf 2.x to 3.0.2 (with shell namesapce 1.1) and the > > custom commands are not working anymore. > > > > Here is a sample command: > > > > import org.apache.karaf.shell.commands.Argument; > > import org.apache.karaf.shell.commands.Command; > > import org.apache.karaf.shell.console.AbstractAction; > > > > @Command(scope = "my", name = "list", description = "a sample command") > > public class ListCommand extendsAbstractAction { > > > > @Argument(index = 0, name = "arg", description ="a > sampleargument", required = false, multiValued = false) > > private Stringarg = null; > > > > protected Object doExecute() throws Exception { > > return new String[]{"Given parameter: ",arg == null ? "<not > given>" :arg}; > > } > > } > > > > > > and the blueprint config: > > > > <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.1.0"> > > <command> > > <action class="my.sample.command.ListCommand" /> > > </command> > > </command-bundle> > > > > > > and finally the pom config: > > > > <Import-Package> > > org.apache.karaf.shell.commands, > > org.apache.karaf.shell.console, > > * > > </Import-Package> > > > > > > but the command installation fails with following message: > > > > org.osgi.service.blueprint.container.ComponentDefinitionException: > org.osgi.service.blueprint.container.ComponentDefinitionException:Unable > to find a matching factorymethod getScope on class > org.apache.karaf.shell.console.commands.NamespaceHandler forarguments > [my.sample.command.ListCommand] when instanciating bean #recipe-11 > > at org.apache.aries.blueprint.di.MapRecipe.internalCreate( > MapRecipe.java:115) > > at org.apache.aries.blueprint.di.AbstractRecipe.create( > AbstractRecipe.java:106)[15:org.apache.aries.blueprint.core:1.4.1] > > at org.apache.aries.blueprint.container.BlueprintRepository. > createInstances(BlueprintRepository.java:245)[ > 15:org.apache.aries.blueprint.core:1.4.1] > > at org.apache.aries.blueprint.container.BlueprintRepository. > createInstance(BlueprintRepository.java:230)[ > 15:org.apache.aries.blueprint.core:1.4.1] > > at org.apache.aries.blueprint.container.BlueprintRepository. > create(BlueprintRepository.java:145)[15:org.apache.aries. > blueprint.core:1.4.1] > > at org.apache.aries.blueprint.container.ServiceRecipe. > createRecipe(ServiceRecipe.java:440) > > at org.apache.aries.blueprint.container.ServiceRecipe. > register(ServiceRecipe.java:165) > > > > > > Am I missing anything here? any idea? > > Thanks > > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com >
