The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Cant import ProjectService.

Joel Suter
September 4, 2017

Everytime i try to import the ProjectService it gives me a excepiton. 

But everytime i import the UserService it works perfectly fine. What is the problem here? I use the new version of the plugin/spring so it should take care of the imports as long as i annotate them. Can someone tell me what i am doing wrong, and please give me a full example? I already looked everywhere The code for the ProjectService import looks like this: 

@Path("/message")
@Scanned
public class ProjectResource {

private ProjectService projectService;

@Autowired
public ProjectResource(@ComponentImport ProjectService projectService){
this.projectService = projectService;
}

@GET
@AnonymousAllowed
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response getMessage()
{
return Response.ok(new ProjectResourceModel("Hello World")).build();
}

 

d

 

1 answer

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

0 votes
Answer accepted
MoroSystems Support
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 Champions.
September 4, 2017

I have two suggestions:

  • once I experienced such problem when I forgot to use <scope>provided</scope> on one dependency in pom.xml
  • another solution which always come on my mind is to shut down your environment, clean caches:
    • JIRA_HOME/plugins/.bundled-plugins
    • JIRA_HOME/plugins/.osgi-plugins

If you're using spring scanner 2.x, you can check imports file in /META-INF/plugin-components/ inside your *.jar file. If entry for com.atlassian.jira.bc.project.ProjectService is in there, I think cleanin caches will be enough.

BTW, you don't need to use @Scanned annotation if you're on Spring Scanner 2.x.

There is also Troubleshooting section on page with spring scanner documentation: https://bitbucket.org/atlassian/atlassian-spring-scanner

Joel Suter
September 5, 2017

Okey my plugin doesn't import the services in the plugin-components inside my jar. If i do it manually it works but if I reload it it will kick out the import and it stops working.

How can I make sure that it imports them automatically.

MoroSystems Support
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 Champions.
September 5, 2017

Did you check troubleshooting section in linked document? What version of spring scanner are you using? Can you post your pom.xml file?

Joel Suter
September 5, 2017

yes i checked, its now almost working. Sometimes i have to manually import a service and sometimes i dont. I should have version 2 of spring scanner.

Pom:

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

-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">

<modelVersion>4.0.0</modelVersion>

<groupId>com.zuehlke.ams.pss</groupId>

<artifactId>monitor.bitbucket2</artifactId>

<version>1.0.0-SNAPSHOT</version>


-<organization>

<name>Example Company</name>

<url>http://www.example.com/</url>

</organization>

<name>monitor.bitbucket2</name>

<description>This is the com.zuehlke.ams.pss:monitor.bitbucket2 plugin for Atlassian Bitbucket Server.</description>

<packaging>atlassian-plugin</packaging>


-<dependencyManagement>


-<dependencies>


-<dependency>

<groupId>com.atlassian.bitbucket.server</groupId>

<artifactId>bitbucket-parent</artifactId>

<version>${bitbucket.version}</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>


-<dependencies>


-<dependency>

<groupId>com.atlassian.sal</groupId>

<artifactId>sal-api</artifactId>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>com.atlassian.bitbucket.server</groupId>

<artifactId>bitbucket-api</artifactId>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>com.atlassian.bitbucket.server</groupId>

<artifactId>bitbucket-spi</artifactId>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>com.atlassian.bitbucket.server</groupId>

<artifactId>bitbucket-page-objects</artifactId>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.10</version>

<scope>test</scope>

</dependency>


-<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

<version>2.6</version>

<scope>provided</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>

</dependency>


-<dependency>

<groupId>javax.servlet</groupId>

<artifactId>servlet-api</artifactId>

<version>2.4</version>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>javax.xml.bind</groupId>

<artifactId>jaxb-api</artifactId>

<version>2.1</version>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>com.atlassian.plugins.rest</groupId>

<artifactId>atlassian-rest-common</artifactId>

<version>1.0.2</version>

<scope>provided</scope>

</dependency>


-<dependency>

<groupId>org.apache.wink</groupId>

<artifactId>wink-client</artifactId>

<version>1.1.3-incubating</version>

<scope>test</scope>

</dependency>


-<dependency>

<groupId>org.mockito</groupId>

<artifactId>mockito-all</artifactId>

<version>1.8.5</version>

<scope>test</scope>

</dependency>

</dependencies>


-<build>


-<plugins>


-<plugin>

<groupId>com.atlassian.maven.plugins</groupId>

<artifactId>bitbucket-maven-plugin</artifactId>

<version>${amps.version}</version>

<extensions>true</extensions>


-<configuration>


-<products>


-<product>

<id>bitbucket</id>

<instanceId>bitbucket</instanceId>

<version>${bitbucket.version}</version>

<dataVersion>${bitbucket.data.version}</dataVersion>

</product>

</products>


-<instructions>

<Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>

<!-- Add package to export here -->


<Export-Package>com.zuehlke.ams.pss.api,</Export-Package>

<!-- Add package import here -->


<Import-Package>org.springframework.osgi.*;resolution:="optional", org.eclipse.gemini.blueprint.*;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>

<bitbucket.version>4.9.1</bitbucket.version>

<bitbucket.data.version>4.9.1</bitbucket.data.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>

</properties>

</project>

MoroSystems Support
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 Champions.
September 5, 2017

You're using spring scanner in version 1.2.13 (<atlassian.spring.scanner.version>1.2.13</atlassian.spring.scanner.version>). Try to change:

<Import-Package>org.springframework.osgi.*;resolution:="optional",
org.eclipse.gemini.blueprint.*;resolution:="optional", *</Import-Package>

to:

<Import-Package>org.springframework.osgi.*;resolution:="optional",
org.eclipse.gemini.blueprint.*;resolution:="optional",*;resolution:=optional</Import-Package>

 If you're developing plugin for Bitbucket Server 5.0+, you can branch your plugin and try to use Spring Scanner 2.x

Joel Suter
September 5, 2017

Thank you so much for your help. I dont know what did it but for now it works. Thanks for the clear instructions, i am very new to all of this.

If you have time could you look into another issue that I ran into?

https://community.atlassian.com/t5/Bitbucket-questions/How-to-make-a-GET-request-on-Bitbucket-plugin-rest-api/qaq-p/635166#M18942

Thank you so much. <3

MoroSystems Support
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 Champions.
September 5, 2017

Sure, I will check it, but please accept my answer if it did help you with your ProjectService issue.

Joel Suter
September 5, 2017

Ah of course, sorry forgot to. Of course.

TAGS
AUG Leaders

Atlassian Community Events