注釈なしで Felix-Dependency-Manager (バージョン 3.2.0) を使用して GoGo-Shell-Command を作成しようとしています。
私の知る限り、gogo-runtime はホワイトボード パターンを使用し、キー CommandProcessor.COMMAND_SCOPE および CommandProcessor.COMMAND_FUNCTION を使用してプロパティでサービスをスキャンします。
私の場合、バンドルが開始され、サービスが正しいプロパティで登録されますが、コマンドが「ヘルプ」の下にリストされておらず、呼び出そうとしても機能しません。
次のコードは、サービスを BundleActivator (DependencyActivatorBase) 内に登録します。
Properties props = new Properties();
props.put(CommandProcessor.COMMAND_SCOPE, "test");
props.put(CommandProcessor.FUNCTION_SCOPE, new String[] {"command"});
manager.add(createComponent()
.setInterface(Object.class.getName(), props)
.setImplementation(MyConsole.class)
.add(createServiceDependency()
.setService(MyService.class)));
コードを実行すると、次のバンドルが lb-Command で一覧表示されます。
org.apache.felix.gogo.command
org.apache.felix.gogo.runtime
org.apache.felix.gogo.shell
org.apache.felix.dependencymanager
org.apache.felix.dependencymanager.shell
mybundle.service
mybundle.api
mybundle.console
開発は BndTools で行います。
ここで何か不足していますか?