3

CQ5 で OSGI コンソールを使用して宣言型サービスを構成する方法。サンプル サービス、バンドルされたコードをビルドすることができました。jar を取得し、OSGI コンソールからバンドルを介してインストールしました。

4

1 に答える 1

4

最初のステップは、サービスに構成パラメーターがあることを定義することです。あなたはこのようなものを持っているかもしれません:

package com.sample.osgi;

import java.util.Map;

import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Modified;
import org.apache.felix.scr.annotations.Property;

@Component(label = "Service Label", description = "Service Description", metatype = true, immediate = true)
public class ConfigurableService {

    @Property(value="default value", label = "Sample Parameter", description = "Example of a component parameter")  
    private static final String SAMPLE_PARAM_NAME = "param.one"; 

    @Activate
    protected void activate(final Map<String, Object> props) {
        this.update(props);
    }

    @Modified
    protected void update(final Map<String, Object> props) {        
        System.out.println(props.get(SAMPLE_PARAM_NAME));
    }

}

サービスを入手したら、mavenを使用してscr記述子を生成し、バンドルを作成してローカルサーバーにデプロイする必要があります。これについては、このページで説明しています。

デプロイすると、サーバーのfelixコンソールでサービスを確認できるようになります。例えば:

http://localhost:4502/system/console/configMgr/com.sample.osgi.ConfigurableService

@Modifiedアノテーションを使用して更新メソッドを追加したため、コンポーネントは、そのメソッドの呼び出しで行われるように、構成された値の更新を受け取ります。

SCRアノテーションの詳細については、felixサイトをご覧ください。

于 2013-01-08T10:50:30.743 に答える