Java 11 and Jira platform upgrade
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 and Platform changes
Change | Details |
---|---|
Migrated to the newest Atlassian Fugue |
|
Migrated to the newest Atlassian Concurrent |
|
Migrated to Spring 5 |
|
Migrated to Guava 26 |
|
Updated all the platform components for Java 11 and Atlassian Platform 5.0.0 compatibility |
|
Updated third-party libraries for Java 11 and Atlassian Platform 5.0.0 compatibility |
|
JVM parameter for locale compatibility | Turned on locale compatibility mode with |
Java version check and GC params | Modified startup scripts to:
|
Removed items (libraries, classes, code) |
|
API breaking changes
Affected class | Code/items being changed | Changes and new code/items |
---|---|---|
com.atlassian.jira.bc.dataimport.DataImportEvent | Method: getXmlExportTime | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.bc.dataimport.ImportCompletedEvent | Constructors | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getXmlExportTime | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.bc.dataimport.ImportStartedEvent | Constructors | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getXmlExportTime | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.bc.issue.comment.CommentService$CommentCreateValidationResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getCommentInputParameters | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.bc.issue.comment.CommentService$CommentUpdateValidationResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Methods: | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.bc.issue.visibility.InvalidVisibility | Method: getParam | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.bc.project.version.VersionService$ValidationResult | Method: getVersionToMergeTo | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.bc.project.ProjectService | Method: updateProjectType | Returns io.atlassian.fugue.Either instead of com.atlassian.fugue.Either |
com.atlassian.jira.license.JiraLicenseManager | Method: getLicense | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.license.LicenseChangedEvent | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Fields: previousLicenseDetails , newLicenseDetails | Type io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
Methods: getPreviousLicenseDetails , getNewLicenseDetails | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.entity.property.EntityPropertyHelper | Methods: createSetPropertyEventFunction , createDeletePropertyEventFunction | Deprecated methods removed |
Method: getEntityByIdFunction | Returns java.util.function.Function instead of com.google.common.base.Function | |
com.atlassian.jira.entity.property.EntityPropertyService$DeletePropertyValidationResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.entity.property.EntityPropertyService$PropertyServiceResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getEntityProperty | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.entity.property.EntityPropertyService$SetPropertyValidationResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getEntityPropertyInput | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.entity.property.EntityPropertyService$PropertyResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.util.Function | Method: get | Renamed → apply |
com.atlassian.jira.util.Resolver | Method: get | Renamed → apply |
com.atlassian.jira.util.OrderByRequestParser | Method: parse | Returns io.atlassian.fugue.Either instead of com.atlassian.fugue.Either |
com.atlassian.jira.util.collect.EnclosedIterable$ListResolver | Method: get | Renamed → apply |
com.atlassian.jira.util.lang.JiraStringUtils | Method: toLong | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.properties.PropertiesManager | Method: getPropertySetReference | Returns java.util.function.Supplier instead of com.atlassian.util.concurrent.Supplier |
com.atlassian.jira.config.properties.BackingPropertySetManager | Method: getPropertySetSupplier | Returns java.util.function.Supplier instead of com.atlassian.util.concurrent.Supplier |
com.atlassian.jira.config.IssueTypeService | Method: getIssueType | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.IssueTypeService$IssueTypeDeleteInput | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getAlternativeIssueTypeId | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.config.IssueTypeService$IssueTypeUpdateInput | Methods: getAvatarId , getName , getDescription | Return io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.IssueTypeService$UpdateValidationResult | Methods: getIssueType , getIssueTypeInput | Return io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.IssueTypeService$DeleteValidationResult | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getDeleteIssueTypeInput | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.config.IssueTypeService$IssueTypeCreateInput | Method: getDescription | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.IssueTypeService$CreateValidationResult | Method: getIssueTypeInput | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.FeatureManager | Method: getFeatureFlag | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.config.ConstantsManager | Method: validateName | Accepts and returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.project.UpdateProjectParameters | Methods:
| Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.project.version.VersionManager | Methods: deleteVersion , swapVersionForRelatedIssues | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.project.type.ProjectTypeManager | Methods:
| Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.application.api.ApplicationKey | Method: getApplication | Return io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.plugin.comment.CommentFieldRendererModuleDescriptor | Methods: getIssuePageViewHtml , getFieldEditHtml , getIssuePageEditHtml , getFieldViewHtml | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.plugin.customfield.CustomFieldTypeModuleDescriptors | Method: getCustomFieldType | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.plugin.customfield.CustomFieldSearcherModuleDescriptors | Method: getCustomFieldSearcher | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.plugin.report.ReportUrlProvider | Method: getUrl | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.security.PermissionManager | Method: getProjectPermission | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.help.HelpUrlsParserBuilderFactory$HelpUrlsParserBuilder | Method: applicationHelpSpace | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.portal.PortletConfiguration | Methods: getOpenSocialSpecUri , getCompleteModuleKey | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.portal.PortletConfigurationManager | Method: addDashBoardItem | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.permission.PermissionHolder | Method: getParameter | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.permission.PermissionSchemeInput | Method: getDescription | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.permission.JiraPermissionHolderType | Method: fromKey | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.event.project.VersionDeleteEvent | Methods: getFixVersionSwappedTo , getMergedTo , getAffectsVersionSwappedTo | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.application.ApplicationRoleManager | Method: getRole | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.jira.issue.attachment.TemporaryAttachment | Method: getEntityToken | Accepts io.atlassian.fugue.Either instead of com.atlassian.fugue.Either |
com.atlassian.jira.issue.attachment.TemporaryWebAttachmentManager | Method: getTemporaryWebAttachment | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: createTemporaryWebAttachment | Accepts and returns io.atlassian.fugue.Either instead of com.atlassian.fugue.Either | |
com.atlassian.jira.issue.AttachmentValidator | Method: canCreateTemporaryAttachments | Accepts io.atlassian.fugue.Either instead of com.atlassian.fugue.Either |
com.atlassian.jira.issue.AttachmentError | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getException | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.jira.issue.AttachmentsBulkOperationResult | Constructor | Accepts io.atlassian.fugue.Pair instead of com.atlassian.fugue.Pair |
com.atlassian.jira.issue.AttachmentManager | Methods: convertTemporaryAttachment , tryCreateAttachment , copyAttachment | Returns io.atlassian.fugue.Either instead of com.atlassian.fugue.Either |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBean | Methods: builder , propertySelf | Deprecated overloads accepting com.atlassian.fugue.Function2 removed |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBean$Builder | Constructor | Deprecated overload accepting com.atlassian.fugue.Function2 removed |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions | Method: dashboardItemPropertySelfFunction | Deprecated method removed |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$IssuePropertySelfFunction | Class | Deprecated class removed |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$ProjectPropertySelfFunction | Class | Deprecated class removed |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$CommentPropertySelfFunction | Class | Deprecated class removed |
com.atlassian.jira.issue.fields.rest.json.beans.EntityPropertyBeanSelfFunctions$IssueTypePropertySelfFunction | Class | Deprecated class removed |
com.atlassian.jira.issue.search.util.TextTermEscaper | Method: get | Renamed → apply |
com.atlassian.query.clause.TerminalClause | Method: getProperty | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
com.atlassian.query.clause.TerminalClauseImpl | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getProperty | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option | |
com.atlassian.query.order.SearchSort | Constructor | Accepts io.atlassian.fugue.Option instead of com.atlassian.fugue.Option |
Method: getProperty | Returns io.atlassian.fugue.Option instead of com.atlassian.fugue.Option
|
Change log
You can also refer to the resources below for a description of changes in the core components: