Java 11 と Jira プラットフォームのアップグレード

Refer to the following guide to learn more about the changes related to Java 11 upgrade and the Jira platform upgrade. 

The complete list of maven dependencies for Jira 8.0.0 can be found in the jira-project pom.

Java 11 およびプラットフォームの変更点

変更

詳細説明

Migrated to the newest Atlassian Fugue

  • Jira API was updated to use the newest io.atlassian.fugue library

  • the old com.atlassian.fugue library is now deprecated and should not be used

Migrated to the newest Atlassian Concurrent

  • Jira API was updated to use the newest io.atlassian.util.concurrent library

  • the old com.atlassian.util.concurrent library is now deprecated and should not be used

Migrated to Spring 5

  • Jira is now running on Spring framework 5.0.10

Migrated to Guava 26

  • Jira is now running on Guava 26.0-jre

Updated all the platform components for Java 11 and Atlassian Platform 5.0.0 compatibility

  • amps → 8.0.0-m6

  • atlassian-cache → 4.0.0

  • atlassian-authentication-plugin → 3.0.0-a22dd6d

  • atlassian-oauth → 4.0.2

  • altassian-embedded-crowd → 2.10.5-j11

  • upm-server → 4.0.0-rc1

Updated third-party libraries for Java 11 and Atlassian Platform 5.0.0 compatibility


  • Guava → 26.0-jre

  • Spring framework → 5.0.10.RELEASE

  • servlet-api → 3.0.1

  • jaxb → 2.3.0

  • commons-lang3 → 3.8

  • commons-io → 2.6

  • commons-fileupload → 1.3.3

  • javax.activation → 1.2.0

  • validation-api → 2.0.1.Final

  • httpclient → 4.5.5

  • httpcomponents → 4.4.9

  • slf4j → 1.7.25

  • log4j → 1.2.17-atlassian-2

ロケール互換性のための JVM パラメータ

-Djava.locale.providers=COMPAT  を指定してロケール互換性モードを有効化済み

詳細説明

Java 9 以降、 JRE ロケール データからの切り替えが行われ、Unicode Consortium の共通ロケール データ リポジトリ (CLDR) のロケール データを既定で使用するようになりました (ドキュメント参照)この影響を受ける例として、en_AU ロケールで月の短縮名の書式の末尾にドットが使用されるようになりました。例:

  • Java 8:  19/Jul/18

  • Java >=9:  19/Jul./18

書式設定のその他の面にも影響があります ("AM" -> "am" など)。日付の解析も変更の影響を受けます。

このため、Jira の動作が変わり、一部のテストに失敗するようになりました。

-Djava.locale.providers=COMPAT  スイッチを使用することで Java 8 互換のロケール データ ソースを強制することができます。

Java バージョン チェックと GC パラメータ

起動スクリプトを次のように変更しました。

  • allow JDK 8 or JDK 11 to be used
  • use GC parameters compatible with Java 11 when running on JDK 11
Removed items (libraries, classes, code)
  • atlassian-extension library

  • com.atlassian.jira.plugin.ExtensionAccessorPicoAdapter

  • com.atlassian.jira.util.system.check.PluginVersionCheck


API の重大な変更

Affected class Code/items being changed Changes and new code/items
com.atlassian.jira.bc.dataimport.DataImportEvent メソッド: getXmlExportTime com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.dataimport.ImportCompletedEvent コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getXmlExportTime com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.dataimport.ImportStartedEvent コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getXmlExportTime com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.issue.comment.CommentService$CommentCreateValidationResult コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getCommentInputParameters com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.issue.comment.CommentService$CommentUpdateValidationResult


コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。

メソッド: getCommentPropertiesgetComment

com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.issue.visibility.InvalidVisibility メソッド: getParam com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.project.version.VersionService$ValidationResult メソッド: getVersionToMergeTo com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.bc.project.ProjectService メソッド: updateProjectType com.atlassian.fugue.Either ではなく io.atlassian.fugue.Either を返します。
com.atlassian.jira.license.JiraLicenseManager メソッド: getLicense com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.license.LicenseChangedEvent コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
フィールド: previousLicenseDetailsnewLicenseDetails com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を入力します。
メソッド: getPreviousLicenseDetailsgetNewLicenseDetails com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.entity.property.EntityPropertyHelper メソッド: createSetPropertyEventFunctioncreateDeletePropertyEventFunction 非推奨メソッドが削除されました。
メソッド: getEntityByIdFunction com.google.common.base.Function ではなく java.util.function.Function を返します。
com.atlassian.jira.entity.property.EntityPropertyService$DeletePropertyValidationResult

コンストラクタ

com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
com.atlassian.jira.entity.property.EntityPropertyService$PropertyServiceResult コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getEntityProperty com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.entity.property.EntityPropertyService$SetPropertyValidationResult コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getEntityPropertyInput com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.entity.property.EntityPropertyService$PropertyResult コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
com.atlassian.jira.util.Function メソッド: get 名前変更 → apply
com.atlassian.jira.util.Resolver メソッド: get 名前変更 → apply
com.atlassian.jira.util.OrderByRequestParser メソッド: parse com.atlassian.fugue.Either ではなく io.atlassian.fugue.Either を返します。
com.atlassian.jira.util.collect.EnclosedIterable$ListResolver メソッド: get 名前変更 → apply
com.atlassian.jira.util.lang.JiraStringUtils メソッド: toLong com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.properties.PropertiesManager メソッド: getPropertySetReference com.atlassian.util.concurrent.Supplier ではなく java.util.function.Supplier を返します。
com.atlassian.jira.config.properties.BackingPropertySetManager メソッド: getPropertySetSupplier com.atlassian.util.concurrent.Supplier ではなく java.util.function.Supplier を返します。
com.atlassian.jira.config.IssueTypeService メソッド: getIssueType com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.IssueTypeService$IssueTypeDeleteInput コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getAlternativeIssueTypeId com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.IssueTypeService$IssueTypeUpdateInput メソッド: getAvatarIdgetNamegetDescription com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.IssueTypeService$UpdateValidationResult メソッド: getIssueTypegetIssueTypeInput com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.IssueTypeService$DeleteValidationResult コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getDeleteIssueTypeInput com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.IssueTypeService$IssueTypeCreateInput メソッド: getDescription com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.IssueTypeService$CreateValidationResult メソッド: getIssueTypeInput com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.FeatureManager メソッド: getFeatureFlag com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.config.ConstantsManager メソッド: validateName com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可し、返します。
com.atlassian.jira.project.UpdateProjectParameters

メソッド: getDescriptiongetKeygetProjectTypeKeygetAvatarId、 

getProjectCategoryIdgetUrlgetNamegetLeadUsernamegetLeadUserKeygetAssigneeType

com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.project.version.VersionManager メソッド: deleteVersionswapVersionForRelatedIssues com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
com.atlassian.jira.project.type.ProjectTypeManager

メソッド: getByKeygetAccessibleProjectType 

getApplicationWithTypegetAccessibleProjectType

com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.application.api.ApplicationKey メソッド: getApplication com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します
com.atlassian.jira.plugin.comment.CommentFieldRendererModuleDescriptor メソッド: getIssuePageViewHtmlgetFieldEditHtmlgetIssuePageEditHtmlgetFieldViewHtml com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.plugin.customfield.CustomFieldTypeModuleDescriptors メソッド: getCustomFieldType com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.plugin.customfield.CustomFieldSearcherModuleDescriptors メソッド: getCustomFieldSearcher com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.plugin.report.ReportUrlProvider メソッド: getUrl com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.security.PermissionManager メソッド: getProjectPermission com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.help.HelpUrlsParserBuilderFactory$HelpUrlsParserBuilder メソッド: applicationHelpSpace com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
com.atlassian.jira.portal.PortletConfiguration メソッド: getOpenSocialSpecUrigetCompleteModuleKey com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.portal.PortletConfigurationManager メソッド: addDashBoardItem com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
com.atlassian.jira.permission.PermissionHolder メソッド: getParameter com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.permission.PermissionSchemeInput メソッド: getDescription com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.permission.JiraPermissionHolderType メソッド: fromKey com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.event.project.VersionDeleteEvent メソッド: getFixVersionSwappedTogetMergedTogetAffectsVersionSwappedTo com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.application.ApplicationRoleManager メソッド: getRole com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.issue.attachment.TemporaryAttachment メソッド: getEntityToken com.atlassian.fugue.Either ではなく io.atlassian.fugue.Either を許可します。
com.atlassian.jira.issue.attachment.TemporaryWebAttachmentManager メソッド: getTemporaryWebAttachment com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
メソッド: createTemporaryWebAttachment com.atlassian.fugue.Either ではなく io.atlassian.fugue.Either を許可し、返します。
com.atlassian.jira.issue.AttachmentValidator メソッド: canCreateTemporaryAttachments com.atlassian.fugue.Either ではなく io.atlassian.fugue.Either を許可します。
com.atlassian.jira.issue.AttachmentError コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getException com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.jira.issue.AttachmentsBulkOperationResult コンストラクタ com.atlassian.fugue.Pair ではなく io.atlassian.fugue.Pair を許可します。
com.atlassian.jira.issue.AttachmentManager メソッド: convertTemporaryAttachmenttryCreateAttachmentcopyAttachment com.atlassian.fugue.Either ではなく io.atlassian.fugue.Either を返します。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBean メソッド: builderpropertySelf com.atlassian.fugue.Function2  を許可する非推奨のオーバーロードは削除されました。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBean$Builder コンストラクタ com.atlassian.fugue.Function2  許可する非推奨のオーバーロードは削除されました。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions メソッド: dashboardItemPropertySelfFunction 非推奨メソッドが削除されました。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$IssuePropertySelfFunction クラス 非推奨クラスが削除されました。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$ProjectPropertySelfFunction クラス 非推奨クラスが削除されました。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$CommentPropertySelfFunction クラス 非推奨クラスが削除されました。
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$IssueTypePropertySelfFunction クラス 非推奨クラスが削除されました。
com.atlassian.jira.issue.search.util.TextTermEscaper メソッド: get 名前変更 → apply
com.atlassian.query.clause.TerminalClause メソッド: getProperty com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.query.clause.TerminalClauseImpl コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getProperty com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。
com.atlassian.query.order.SearchSort コンストラクタ com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を許可します。
メソッド: getProperty com.atlassian.fugue.Option ではなく io.atlassian.fugue.Option を返します。


変更履歴

You can also refer to the resources below for a description of changes in the core components:

最終更新日: 2019 年 2 月 11 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.