Issues with integration between Jira Plugin 7.4.2v and AWS java SDK 1..11.210

Hi,

We have a inhouse developed jira plugin in version 6.3.4 that helps in scheduling a task that sends file to AWS S3 bucket.
while upgrading this plugin to jira version 7.4.2, it throws errors at variable initialization “com.amazonaws.auth” method. Have tried including latest and old AWS SDK jar dependencies:

<dependency>
 			  <groupId>com.amazonaws</groupId>
 			  <artifactId>aws-java-sdk</artifactId>
			  <version>1.11.210or 1.10.62</version>
</dependency>

when “atlas-mvn eclipse:eclipse” command is run following are the initial warnings
Sources for some artifacts are not available.
List of artifacts without a source archive:
o com.amazonaws:aws-java-sdk:1.11.210
Javadoc for some artifacts is not available.
List of artifacts without a javadoc archive:
o org.springframework:spring-context:2.5.6
o org.springframework:spring-beans:2.5.6
o org.springframework:spring-core:2.5.6
o com.amazonaws:aws-java-sdk:1.11.210
o com.fasterxml.jackson.core:jackson-databind:2.6.7.1
o com.amazonaws:aws-java-sdk-models:1.11.210

Following are the environment details where iam running jira plugin:

  • Atlassian SDK : 6.2.15
  • Jira version : 7.4.2
  • Java : 1.8
  • sal : 3.1.0
  • Maven : 3.2.1
  • Spring : 4.2.9.RELEASE or spring-context: 2.5.6
  • Tomcat : 8.0.36
  • atlassian scheduler - 1.7.0

POM.xml

<?xml version="1.0" encoding="UTF-8"?>


4.0.0
com.xxxx.xxxx.jiraPlugins
jiraExamples
1.0.0-SNAPSHOT

<organization>
    <name>Example Company</name>
    <url>http://www.example.com/</url>
</organization>
<name>jiraExamples</name>
<description>This is the com.xxxx.xxxx.jiraPlugins:jiraExamples plugin for Atlassian JIRA.</description>
<packaging>atlassian-plugin</packaging>
<dependencies>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-api</artifactId>
        <version>${jira.version}</version>
        <scope>provided</scope>
    </dependency>
    <!-- Add dependency on jira-core if you want access to JIRA implementation classes as well as the sanctioned API. -->
    <!-- This is not normally recommended, but may be required eg when migrating a plugin originally developed against JIRA 4.x -->
    
    <!-- <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-core</artifactId>
        <version>${jira.version}</version>
        <scope>provided</scope>
    </dependency> -->
   
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.plugin</groupId>
        <artifactId>atlassian-spring-scanner-annotation</artifactId>
        <version>${atlassian.spring.scanner.version}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.atlassian.plugin</groupId>
        <artifactId>atlassian-spring-scanner-runtime</artifactId>
        <version>${atlassian.spring.scanner.version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
        <scope>provided</scope>
    </dependency>
    
    <!-- WIRED TEST RUNNER DEPENDENCIES -->
    <dependency>
        <groupId>com.atlassian.plugins</groupId>
        <artifactId>atlassian-plugins-osgi-testrunner</artifactId>
        <version>${plugin.testrunner.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>jsr311-api</artifactId>
        <version>1.1.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.2-atlassian-1</version>
        <!-- <scope>provided</scope> -->
    </dependency>
    <!-- Uncomment to use TestKit in your project. Details at https://bitbucket.org/atlassian/jira-testkit -->
    <!-- You can read more about TestKit at https://developer.atlassian.com/display/JIRADEV/Plugin+Tutorial+-+Smarter+integration+testing+with+TestKit -->
    <!--
    <dependency>
        <groupId>com.atlassian.jira.tests</groupId>
        <artifactId>jira-testkit-client</artifactId>
        <version>${testkit.version}</version>
        <scope>test</scope>
    </dependency>
    -->
   	
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.10.RELEASE</version>
      <scope>provided</scope>
  </dependency>	
  <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.210</version>
    <scope>provided</scope>
  </dependency>	
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-jira-plugin</artifactId>
            <version>${amps.version}</version>
            <extensions>true</extensions>
            <configuration>
                <productVersion>${jira.version}</productVersion>
                <productDataVersion>${jira.version}</productDataVersion>
                <!-- Uncomment to install TestKit backdoor in JIRA. -->
                <!--
                <pluginArtifacts>
                    <pluginArtifact>
                        <groupId>com.atlassian.jira.tests</groupId>
                        <artifactId>jira-testkit-plugin</artifactId>
                        <version>${testkit.version}</version>
                    </pluginArtifact>
                </pluginArtifacts>
                -->
                <enableQuickReload>true</enableQuickReload>
                <enableFastdev>false</enableFastdev>
                <!-- See here for an explanation of default instructions: -->
                <!-- https://developer.atlassian.com/docs/advanced-topics/configuration-of-instructions-in-atlassian-plugins -->
                <instructions>
                    <Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
                    <!-- Add package to export here -->
                    <Export-Package>
                        com.xxxx.xxxx.jiraPlugins.jiraExamples.api,
                    </Export-Package>
                    <!-- Add package import here -->
                    <Import-Package>
                        org.springframework.osgi.*;resolution:="optional",
                        org.eclipse.gemini.blueprint.*;resolution:="optional",
                        com.amazonaws.auth*;version="1.11.210",
                       <!--  org.apache.avalon.framework.logger*;resolution:="optional", -->
                        *
                    </Import-Package>
                    <!-- Ensure plugin is spring powered -->
                    <Spring-Context>*</Spring-Context>
                </instructions>
            </configuration>
        </plugin>
        <plugin>
            <groupId>com.atlassian.plugin</groupId>
            <artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
            <version>${atlassian.spring.scanner.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>atlassian-spring-scanner</goal>
                    </goals>
                    <phase>process-classes</phase>
                </execution>
            </executions>
            <configuration>
                <scannedDependencies>
                    <dependency>
                        <groupId>com.atlassian.plugin</groupId>
                        <artifactId>atlassian-spring-scanner-external-jar</artifactId>
                    </dependency>
                </scannedDependencies>
                <verbose>false</verbose>
            </configuration>
        </plugin>
    </plugins>
</build>
<properties>
    <jira.version>7.4.2</jira.version>
    <amps.version>6.2.11</amps.version>
    <plugin.testrunner.version>1.2.3</plugin.testrunner.version>
    <atlassian.spring.scanner.version>1.2.13</atlassian.spring.scanner.version>
    <!-- This key is used to keep the consistency between the key in atlassian-plugin.xml and the key to generate bundle. -->
    <atlassian.plugin.key>${project.groupId}.${project.artifactId}</atlassian.plugin.key>
    <!-- TestKit version 6.x for JIRA 6.x -->
    <testkit.version>6.3.11</testkit.version>
</properties>

Error logs:
[INFO] [talledLocalContainer] Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle com.xxxx.xxxx.jiraPlugins.jiraExamples-tests [223]: Unable to resolve 223.0: missing requirement [223.0] osgi.wiring.package; (osgi.wiring.package=com.xxxx.xxxx.jiraPlugins.jiraExamples.api) [caused by: Unable to resolve 222.0: missing requirement [222.0] osgi.wiring.package; (osgi.wiring.package=com.amazonaws.auth)]

Is any changes to above POM file i.e. including jars joda time , commons logging etc the error would change to
Classes found in the wrong directory: {com/amazonaws/auth/policy/actions/AutoscalingActions.class=com.amazonaws.auth.policy.actions.AutoScalingActions}

Unresolved constraint in bundle com.xxxx.xxxx.jiraPlugins.jiraExamples [172]: Unable to resolve 172.0: missing requirement [172.0] osgi.wiring.package; (osgi.wiring.package=org.apache.log)