Confluence 6.0 への準備
このドキュメントでは、既存のプラグインおよびアドオンに Confluence 6.0 との互換性があるかどうかを確認したい、Confluence 開発者向けの情報をご案内します。また、Confluence 6.0 でアドオンを開発するための新しい機能についても説明します。
共同編集
待望の機能をテストできるようになりました。共同編集の機能についてご確認ください。また、内部処理およびアドオンの互角性を確認する方法について「Confluence 6.0 の準備」をご確認ください。
これらはアーリー マイルストーンであり、本番サイトには適していません。テスト サイトでのみ実行してください。
ドキュメント用テーマ
Confluence 6.0.0-m77 に含まれているアップグレード タスクでは、ドキュメント テーマが削除され、ドキュメント テーマを使用しているすべてのスペースがデフォルトのテーマに切り替えられます。詳しくは、ドキュメント用テーマの移行に関する FAQ を参照してください。
Guava のアップグレード
Confluence 6.0.0-m68 には、Guava 18.0 へのアップグレードが含まれます。これまで製品で使用されていたのは Guava バージョン 11.0.2 であり、これは 2011 年にリリースされた非常に古いバージョンです。
バージョン 11 から 18 の完全なリリース ノートは https://github.com/google/guava/wiki/ReleaseHistory にあります。
重大な変更
11.0.2 から 18.0 の間に多数の大きな変更がありました。特に次のものをご確認ください。
- Cache が LoadingCache に
Cache は 11.0.2 で廃止されていましたが、引き続き使用できていました。これは完全に削除され、すべての使用箇所をLoadingCache
またはCacheBuilder.build()
に置き換える必要があります。詳しくは、https://github.com/google/guava/wiki/Release11 を参照してください。 - Cache で MapMaker のサポートを終了
MapMaker から標準の LoadingCache への移行の詳細については、https://github.com/google/guava/wiki/MapMakerMigration をご確認ください。 - Stopwatch の変更
Stopwatch.createStated()
およびStopwatch.createUnstarted()
メソッドのため、Stopwatch コンストラクタは削除されました。また、すべてのelapsedXXX
メソッドもstopwatchInstance.elapsed(TimeUnit)
のために削除されました。https://github.com/google/guava/wiki/Release15 をご参照ください。
Hibernate のアップグレード
Confluence 6.0.0-m68 には、Hibernate 5.2.2 へのアップグレードが含まれます。これまで製品で使用されていたのは Hibernate バージョン 2.1.8 であり、これは 10 年以上前にリリースされた非常に古いバージョンです。
hibernate 2 インターフェイスを hibernate 5 に適用させ、HQL クエリをトランスパイルして一般的な非互換性を回避できるよう、互換性レイヤーが導入されました。
バージョン 2.1.8 から 5.2.2 への完全な変更履歴は、https://github.com/hibernate/hibernate-orm/blob/4.3/changelog.txt および https://github.com/hibernate/hibernate-orm/blob/master/changelog.txt で確認できます。
その他のライブラリのアップグレード
次のライブラリおよびプラグインをアップグレードしました。
- Hibernate 5
- Google gson 2.7
- Atlassian gzipfilter 3.0
- AUI 5.10.1
- Atlassian Gadgets 4.2.7
- SLF4 1.7.21
- JSON 0.11
- Atlassian http 1.1.4
- commons codec 1.10
- commons validator 1.5.1
- Botocss 6.3
- Atlassian beehive 0.2.1
- Active Objects 1.2.2
非推奨の機能の削除予定
Confluence 6.0 では、これまでに非推奨にした多数の機能を削除する予定です。作業が完了次第、こちらで詳細をお知らせします。
plugin license storage プラグインへの変更
com.atlassian.upm:plugin-license-storage-plugin:2.15.3
が実現する機能は現在は完全に UPM によって提供されており、古いプラグインは Guava 18 との互換性がなかったため、これを Confluence 6.0 から削除しました。
Could not initialize class com.atlassian.upm.osgi.impl.Versions
などのエラーが表示される場合、サードパーティ製ライセンス API の現在のバージョンを提供している UPM のバージョンに応じてアドオンを更新する必要があります。Confluence 6.0 のアドオンにライセンス サポートを追加する方法については、https://developer.atlassian.com/market/add-on-licensing-for-developers/tutorial-adding-licensing-support-to-your-add-on をご参照ください。
別の理由で com.atlassian.upm.osgi.impl.Versions
などのクラスを使用している場合、次の依存関係経由で引き続き利用できます。
<dependency>
<groupId>com.atlassian.upm</groupId>
<artifactId>upm-common</artifactId>
<version>2.21.3</version>
<scope>provided</scope>
</dependency>
プラグインで Atlassian Gzip Filter を使用できなくなった
com.atlassian.gzipfilter*
をプラグインで利用できなくなりました。Shade バージョンの com.atlassian.gzipfilter.org.commons.lang
を使用しているプラグインは、Apache Commons Web サイトの標準アップグレード ガイドに従い、commons-lang3 にアップグレードする必要があります。これは一般に、 com.atlassian.gzipfilter.org.commons.lang
からのインポートを、Confluence によってエクスポートされる org.apache.commons.lang3
に変更するだけです。
slf4j internals への変更
org.slf4j.impl
および org.slf4j.bridge
はエクスポートされなくなりました。プラグインでは slf4j internals の使用箇所を削除できるほか、pom.xml で maven-confluence-plugin 構成の <Import-Package>
セクションでの internals のインポート宣言も削除できます。これは、slf4j
はプラグインなしで完全に機能するためです。
XML API の変更
- Confluence は JAXB の
com.sun.bind
実装の使用 (com.sun.xml.bind:jaxb-impl
から) を終了し、Java 8 にバンドルされているバージョンのみを使用するようになりました。プラグインで実装パッケージをインポートする必要がなくなりました。また、Confluence はjavax.xml.bind:jaxb-api
で依存関係をエクスポートしなくなりました。プラグインは、Java でバンドルされているバージョンによって異なります。 - batik jar がプラグインから使用できるよう、Confluence では
org.w3c.dom
から十分なパッケージをエクスポートするようになり、org.w3c.dom.xpath
が bootstrap ローダーから正常にエクスポートされるようになりました。この変更の一環として、Confluence はxml-apis:xml-apis
で依存関係をエクスポートしなくなり、代わりにorg.apache.xmlgraphics:batik-ext
をエクスポートします。一部のプラグインでは、この変更により、コンパイル エラーが発生する場合があります。 - Confluence は
org.w3c.css:sac
をエクスポートしなくなりましたが、代わりにxml-apis:xml-apis-ext
をエクスポートします。 - Confluence は、
net.sourceforge.cssparser:cssparser
からインターフェイスorg.w3c.css.sac.Parser
の実装を提供しなくなりました。デフォルトでは、org.apache.xmlgraphics:batik-css:1.7
の実装のみをシステム バンドルで利用できます。
非推奨の javascript グローバル
Confluence 5.9 では、Confluence が提供するすべての javascript グローバルの使用を非推奨にしました。
window グローバル |
---|
Confluence |
AJS |
WRM |
更新: これらの非推奨の javascript グローバルは 6.0 では削除されていませんが、将来のリリースで削除される予定です。この変更が発生する前に、適切な AMD モジュールへの移行に役立つ詳細情報を提供します。
リマインダー: 依存関係の要求について
フロントエンド リソースのモジュラー デザインが進むにしたがい、プラグインが必要としているすべての依存関係を確実に提供することがさらに重要になります。過去にページに偶然追加されたリソースが、そのリソースを必要とする個々の機能やコンポーネントに対して非同期に読み込まれるために、ページに含まれなくなったり、正常に動作しなかったり、後から含まれたりする場合があります。これにより、ページの読み込み時間が短縮され、常に必要ではないリソースの読み込みが回避されるため、パフォーマンス上のメリットが実現されます。
つまり、リソースに必要な依存関係を atlassian-plugin.xml で常に明示的に定義する必要があります (特に Core に含まれていない AUI コンポーネントの場合)。たとえば、https://docs.atlassian.com/aui/latest/docs/date-picker.html の場合、この依存関係を atlassian-plugin.xml ファイルで「<dependency>com.atlassian.auiplugin:aui-date-picker
</dependency>」のように、明示的に必須にする必要があることがわかります。すでに定義済みの場合、特別な操作は不要です。