Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

[ServiceDesk API] How to get SD project configuration?

Adam Labus June 18, 2017
Hello,

how to get access to ServiceDesk project cofiguration using api?

I find class and method to do that

com.atlassian.servicedesk.internal.feature.servicedesk.ServiceDesk;

accessConfig()
but when i run plugin i get this error
[INFO] [talledLocalContainer] java.lang.ClassNotFoundException: com.atlassian.servicedesk.internal.feature.servicedesk.ServiceDesk not found by com.tutorial.myplugin.jira.servicedesk-plugin [199]
[INFO] [talledLocalContainer] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
[INFO] [talledLocalContainer] at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
[INFO] [talledLocalContainer] at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
[INFO] [talledLocalContainer] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Compilation run without any errors.

A.

1 answer

0 votes
Andy Brook
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 7, 2017

Its probably an import problem.

Here's what I have in pom.xml:

  <dependency>
      <groupId>com.atlassian.servicedesk</groupId>
      <artifactId>jira-servicedesk-api</artifactId>
      <version>3.2.0-029</version> 
      <scope>provided</scope>
  </dependency>

  <dependency>
   <groupId>com.atlassian.servicedesk</groupId>
   <artifactId>servicedesk-parent-pom</artifactId>
   <version>3.2.0-029</version>
   <type>pom</type>
      <scope>provided</scope>
  </dependency>

The maven-jira-plugin needs no more than:

<amps.version>5.1.20</amps.version>
<plugin>
 <groupId>com.atlassian.maven.plugins</groupId>
 <artifactId>maven-jira-plugin</artifactId>
 <version>${amps.version}</version>
 <extensions>true</extensions>
 <configuration>
  <compressResources>false</compressResources>
  <productVersion>${jira.version}</productVersion>
  <productDataVersion>${jira.version}</productDataVersion>
  <productDataPath>${basedir}/src/test/resources/integration/product-data/generated-test-resources.zip</productDataPath>
  <extractDependencies>false</extractDependencies>
 </configuration>
</plugin>

Then, you have to lookup the JSD service class:

fRequestTypeService=ComponentAccessor.getOSGiComponentInstanceOfType(RequestTypeService.class);
fPortalService=ComponentAccessor.getOSGiComponentInstanceOfType(PortalService.class);
fServiceDeskManager=ComponentAccessor.getOSGiComponentInstanceOfType(ServiceDeskManager.class);
fCommentService=ComponentAccessor.getOSGiComponentInstanceOfType(ServiceDeskCommentService.class);
fCustomerContextService=ComponentAccessor.getOSGiComponentInstanceOfType(CustomerContextService.class);
Adam Labus July 8, 2017

Andy thank you for replay.

I know how to use standard ServiceDesk api, but if you look into documentation ther's no information about SD Configuration, becouse you can get only this class com.atlassian.servicedesk.api.ServiceDesk (https://docs.atlassian.com/jira-servicedesk/3.5.1-REL-0026/com/atlassian/servicedesk/api/ServiceDesk.html)

 

I use java decompiler and find this class com.atlassian.servicedesk.internal.feature.servicedesk.ServiceDesk. 

Inside this class you will find accessConfig() method

 

 

public AccessConfig accessConfig()
{
    return this.accessConfig;
}

 

com.atlassian.servicedesk.internal.feature.servicedesk.AccessConfig

 

This is what i need :(

Andy Brook [Plugin People]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
July 10, 2017

OK, thats more specific.  JSD API's are very limited, they only expose what JSD architects detrmine you should need to perform actions that are supported by their published API.

The class you refer is in an internal package.  If JSD does not export components making them visible to addons, you are out of luck.

Atlassian provide source for core produts, though 'JSD' has always been different.   I just looked at my.atalssian.com for JSD, there is a Download source option but its ancient (for JIRA 7.0.0 added 01 OCT 2015) and appears broken in any case.   I've logged a support case about that, though, probably would not wait on a resolutions, though, probably should not mention decompilers, is a breach of the customer agreement (para 12).  

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events