Unsatisfied dependency when try using active objects with jira plugin

403 Views Asked by At

Hi i try to add activeobjects to jira plugin. All, i think, according to atlassian-springscanner manual.

Webwork.java


@Scanned
public class WebWork extends JiraWebActionSupport {

    private ConfigurationStorageService configurationStorage;

    public WebWork(@ComponentImport ActiveObjects activeObjects)
    {
        this.configurationStorage = new  ConfigurationStorageService(activeObjects);
    }

    @Override
    public String doExecute()
    {
}

ConfigurationStorageService.java(this is A

@Component
public class ConfigurationStorageService implements ConfigurationStorage {

    private ActiveObjects ao;
    @Autowired
    public ConfigurationStorageService(ActiveObjects ao){this.ao = ao;}

pom.xml

 <dependencies>
        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-api</artifactId>
            <version>${jira.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.atlassian.jira</groupId>
            <artifactId>jira-core</artifactId>
            <version>${jira.version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.atlassian.plugin</groupId>
            <artifactId>atlassian-spring-scanner-annotation</artifactId>
            <version>${atlassian.spring.scanner.version}</version>
            <scope>provided</scope>
        </dependency>

         <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>jsr311-api</artifactId>
            <version>1.1.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>com.atlassian.sal</groupId>
            <artifactId>sal-api</artifactId>
            <version>3.0.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.activeobjects</groupId>
            <artifactId>activeobjects-plugin</artifactId>
            <version>${ao.version}</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>
                <pluginArtifacts>
                    <pluginArtifact>
                        <groupId>com.atlassian.activeobjects</groupId>
                        <artifactId>activeobjects-plugin</artifactId>
                        <version>${ao.version}</version>
                    </pluginArtifact>
                </pluginArtifacts>
                <productVersion>${jira.version}</productVersion>
                <productDataVersion>${jira.version}</productDataVersion>
                <enableQuickReload>true</enableQuickReload>
                <enableFastdev>false</enableFastdev>
                <instructions>
                    <Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
                    <!-- Add package to export here -->
                    <Export-Package>
                        com.avvd.jira.plugin.defaulter
                    </Export-Package>
                    <!-- Add package import here -->
                    <Import-Package>
                        org.springframework.osgi.*;resolution:="optional",
                        org.eclipse.gemini.blueprint.*;resolution:="optional",
                        *;version="0";resolution:=optional
                    </Import-Package>
                    <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>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>6</source>
                <target>6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
 Error autowiring Action 'com.avvd.jira.plugin.defaulter.WebWork'.
org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'com.avvd.jira.plugin.defaulter.WebWork': 
Unsatisfied dependency expressed through constructor argument with index 0 of type 
[com.atlassian.activeobjects.external.ActiveObjects]: No qualifying bean of type [com.atlassian.activeobjects.external.ActiveObjects] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: 
{@com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport(value=)}; nested exception is 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.activeobjects.external.ActiveObjects] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: 
{@com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport(value=)}

Maybe there I declare pom in the wrong way. Simplified version of pom(declare only maven plugin) also not help. Looks like in runtime it can't find ActiveObjects beans. How to fix it. Thanks for advice.

1

There are 1 best solutions below

0
On

Add this dependency to POM file

<dependency>
    <groupId>com.atlassian.activeobjects</groupId>
    <artifactId>activeobjects-plugin</artifactId>
    <version>3.1.7</version>
    <scope>provided</scope>
</dependency>