AEM 6.1アプリケーションをAEM 6.3に移行しています。 Felix注釈(org.apache.felix.scr.annotations。*)は廃止予定ですので、私はOSGi注釈(org.osgi.service.component.annotations。*)にコンポーネントを移行することに決めました。AEM 6.3 - FelixをOSGiアノテーションに移行する:propertyPrivateの処理方法?
私はそれがどのように動作するかを考えれば、かなり簡単です。しかし、私は対処方法がわからないケースが1つあります:propertyPriavte = trueのプロパティ。
古い実装は次のようになります。
@Component(metatype = true)
@Service(Servlet.class)
@Properties({
@Property(name = "sling.servlet.selectors", value = "overlay", propertyPrivate = true),
})
public class OverlayServletImpl extends OverlayServlet {
...
}
プロパティsling.servlet.selectors AEMコンソールでConfiguration Managerで設定可能ではないだろうが、それが原因設定ファイルに設定可能になります、 右?だから、私はまだこのプロパティを定義する必要があります。その他のプロパティについては
私はこのように私の実装を変更:
// OverlayServletImpl
@Component(
service = Servlet.class,
configurationPid = "my.package.path.OverlayServletImpl"
)
@Designate(
ocd = OverlayServletImplConfiguration.class
)
public class OverlayServletImpl extends OverlayServlet {
...
}
// Configuration
@ObjectClassDefinition(name = "Overlay Servlet")
public @interface OverlayServletImplConfiguration {
String sling_servlet_selectors() default "overlay";
...
}
は今、私はプロパティにsling.servlet.selectorsを持っているが、それはConfiguration Managerとそれ'S値でも使用可能ですが変更することができます。しかし私はそれを望んでいません。
どうすればいいですか?これはOSGiアノテーションで可能ですか?
ありがとうございます!
あなたはOSGI注釈の移行に関連するすべてのドキュメントを持っていますか?私もAEM6.1から6.3に移行しています。移行する必要はありますか? – Sara
こんにちは! Felix注釈は推奨されていませんが、AEM 6.3でも機能します。つまり、まだ移行する必要はありませんが、将来のバージョンのAEMに移行する予定です。 ドキュメントとして、私は次のページ[AEMのオフィシャルOSGI宣言サービスの注釈](http://www.nateyolles.com/blog/2017/05/osgi-declarative-services-annotations-in-aem)をお勧めします。また、GitHubプロジェクトへのリンクもあります.GitHubプロジェクトは、FelixアノテーションとオフィシャルOSGiアノテーションでどのように同じサービスを実装する必要があるかを示しています。それは移行のために私を助けました。 – user2960606