XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Unresolved
    • None
    • None
    • 2
    • 1
    • We collect Jira Service Desk feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      The release of JSD 3.10 has caused us considerable pain, especially for Project Configurator but the impact on ScriptRunner has been high too. Many of the classes we depend on changed for this release, and we cannot rely just on API classes because they do not give the functionality they need.

      Project Configurator (PC) is a key part of Atlassian's Data Portability strategy, with PC providing ways to migrate and promote configuration between instances. We currently have three implementations of the JSD integration for PC to support Jira 7.0 to 7.7 and at the current rate we will need to add as much as one per Jira release which will lead to an unmaintainable mess.

      What I'd like to do is start a conversation to get the functionality we need into an API with the same kinds of deprecation policies that other Atlassian APIs. If we don't have this then we will need to revisit support for JSD in the Data Portability strategy.

      At App week we spoke to Lachlan Goodhew-Cook about this and we agreed that it would be a good thing to do.

      It would be good to include lgoodhewcook, vsharma@atlassian.com, and gkaszkur@atlassian.com in this discussion. We have also had discussions with Keshav Puttaswamy, Jakub Lazynski and Jakub Kurcek about Data Portability.

      Please add the relavent people to the ticket and we can discuss.

      For reference here are all the JSD classes we use:

      com.atlassian.jira.plugins.workinghours.api.calendar.Calendar
      com.atlassian.jira.plugins.workinghours.api.calendar.CalendarBuilder
      com.atlassian.jira.plugins.workinghours.api.calendar.CalendarService
      com.atlassian.jira.plugins.workinghours.api.calendar.HolidayBuilder
      com.atlassian.jira.plugins.workinghours.api.calendar.Weekday
      com.atlassian.jira.plugins.workinghours.api.calendar.WorkingTime
      com.atlassian.jira.plugins.workinghours.api.calendar.WorkingTimeBuilder
      com.atlassian.jira.plugins.workinghours.internal.calendar.builder.CalendarBuilderFactoryImpl
      com.atlassian.jira.plugins.workinghours.internal.calendar.builder.HolidayBuilderFactoryImpl
      com.atlassian.jira.plugins.workinghours.internal.calendar.builder.WorkingTimeBuilderFactoryImpl
      com.atlassian.servicedesk.api.ServiceDesk
      com.atlassian.servicedesk.api.ServiceDeskService
      com.atlassian.servicedesk.api.portal.Portal
      com.atlassian.servicedesk.api.portal.PortalManager
      com.atlassian.servicedesk.api.requesttype.RequestType
      com.atlassian.servicedesk.api.requesttype.RequestTypeService
      com.atlassian.servicedesk.api.sla.metrics.TimeMetric
      com.atlassian.servicedesk.bootstrap.version.BuildPropertiesImpl
      com.atlassian.servicedesk.internal.api.portal.PortalManager
      com.atlassian.servicedesk.internal.feature.customer.portal.Portal
      com.atlassian.servicedesk.internal.feature.customer.portal.PortalInternal
      com.atlassian.servicedesk.internal.feature.customer.portal.PortalManagerImpl
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.PartialRequestType
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestStatusService
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestStatusStore
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestType
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestTypeFieldQStore
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestTypeInternalManager
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestTypeInternalManagerScala
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.RequestTypeStore
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.field.PartialRequestTypeField
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.field.RequestTypeField
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.field.RequestTypeFieldInternal
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.field.RequestTypeFieldManager
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.field.value.PartialRequestTypeFieldValue
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.field.value.RequestTypeFieldValue
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.requesttypegroup.LegacyRequestTypeGroupManager
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.requesttypegroup.PartialRequestTypeGroup
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.requesttypegroup.RequestTypeGroupManager
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.requesttypegroup.RequestTypeGroupStore
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.status.RequestStatusServiceScala
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.status.RequestStatusStore
      com.atlassian.servicedesk.internal.feature.customer.request.requesttype.status.RequestTypeStatusQStore
      com.atlassian.servicedesk.internal.feature.queue.QueueDetails
      com.atlassian.servicedesk.internal.feature.queue.QueueRequest
      com.atlassian.servicedesk.internal.feature.queue.QueueServiceInternalScala
      com.atlassian.servicedesk.internal.feature.queue.QueueStore
      com.atlassian.servicedesk.internal.feature.servicedesk.InternalServiceDeskManager
      com.atlassian.servicedesk.internal.feature.servicedesk.InternalServiceDeskServiceScala
      com.atlassian.servicedesk.internal.feature.servicedesk.ServiceDeskInternalManagerScala
      com.atlassian.servicedesk.internal.feature.servicedesk.ServiceDeskManagerImpl
      com.atlassian.servicedesk.internal.permission.restore.PermissionSchemeMisconfigurationManager
      com.atlassian.servicedesk.internal.sla.configuration.TimeMetricCreationServiceImpl
      com.atlassian.servicedesk.internal.sla.configuration.condition.ConditionType
      com.atlassian.servicedesk.internal.sla.configuration.condition.MetricConditionRef
      com.atlassian.servicedesk.internal.sla.configuration.condition.MetricConditionRefManagerImpl
      com.atlassian.servicedesk.internal.sla.configuration.goal.Goal
      com.atlassian.servicedesk.internal.sla.configuration.goal.GoalManagerImpl
      com.atlassian.servicedesk.internal.sla.configuration.threshold.SlaThresholdManagerImpl
      com.atlassian.servicedesk.internal.sla.configuration.timemetric.TimeMetricManagerImpl
      com.atlassian.servicedesk.internal.sla.configuration.timemetric.TimeMetricQStoreImpl
      com.atlassian.servicedesk.internal.sla.customfield.SLAFieldServiceImpl
      com.atlassian.servicedesk.internal.user.SDUserFactoryImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.project.ProjectRunAsUserContextConfigServiceImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetManagerImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.RuleSetServiceImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.ConfigurationDataBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputBuilderImpl$IfConditionConfigurationBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputBuilderImpl$IfThenBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputBuilderImpl$RuleBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputBuilderImpl$ThenActionConfigurationBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputBuilderImpl$WhenHandlerConfigurationBuilderImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.ruleset.input.RuleSetInputValidationServiceImpl
      com.atlassian.servicedesk.plugins.automation.internal.configuration.user.RunAsUserContextConfigFactoryImpl
      it.com.atlassian.servicedesk.plugins.automation.RuleSetBackdoorImpl
      

              Unassigned Unassigned
              441f7124ba30 Jon Mort [Adaptavist]
              Votes:
              8 Vote for this issue
              Watchers:
              13 Start watching this issue

                Created:
                Updated: