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
>

Reply via email to