We are working on to extend Jira Rest Api and using atlassian spring scanner version 1.2.13.
When we try to use ProjectBeanFactory on our rest module, we are getting an error like as below and we could not enable our plugin;
[INFO] [talledLocalContainer] 2017-08-31 03:54:49,738 QuickReload - Plugin Installer ERROR [c.a.p.osgi.factory.OsgiPlugin] Plugin 'com.kostebekteknoloji.plugins.jira.jira-ca-integration' never resolved service '&projectBeanFactory' with filter '(&(objectClass=com.atlassian.jira.rest.v2.issue.project.ProjectBeanFactory)(objectClass=com.atlassian.jira.rest.v2.issue.project.ProjectBeanFactory))'
We added dependencies
<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>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>
<!-- REST -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.plugins.rest</groupId>
<artifactId>atlassian-rest-common</artifactId>
<version>3.2.11</version>
<scope>provided</scope>
</dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-plugin</artifactId>
<version>${jira.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.jira.plugins</groupId>
<artifactId>jira-core-project-templates-api</artifactId>
<version>${project.templates.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.atlassian.jira.plugins</groupId>
<artifactId>project-templates-api</artifactId>
<version>${project.templates.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>provided</scope>
</dependency>
</dependencies>
Moreover, we imported packages like as;
<instructions>
<Atlassian-Plugin-Key>${atlassian.plugin.key}</Atlassian-Plugin-Key>
<!-- Add package to export here -->
<!-- Add package import here -->
<Import-Package>
com.atlassian.jira.rest.api.*;version="${jira.version}",
com.atlassian.jira.rest.v1.*;version="${jira.version}",
com.atlassian.jira.rest.v2.*;version="${jira.version}"
com.atlassian.jira.rest.util;version="${jira.version}",
javax.ws.rs.*,
*;resolution:=optional
</Import-Package>
</instructions>
Lastly, our constructor l
.....
@Scanned
@Path("customproject")
@AnonymousAllowed
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public class CustomProjectResource {
private final ProjectService projectService;
private final UserManager userManager;
private final JiraAuthenticationContext authContext;
private final UriInfo uriInfo;
private final ProjectManager projectManager;
private final ProjectBeanFactory projectBeanFactory;
private final ProjectFinder projectFinder;
private final ResponseFactory responses;
private final I18nHelper i18nHelper;
private final CoreProjectConfigurator coreProjectConfigurator;
@Autowired
public CustomProjectResource(
@ComponentImport final ProjectService projectService,
@ComponentImport final JiraAuthenticationContext authContext,
@ComponentImport final UserManager userManager,
@ComponentImport final UriInfo uriInfo,
@ComponentImport final ProjectBeanFactory projectBeanFactory,
@ComponentImport final ProjectManager projectManager,
@ComponentImport final ProjectFinder projectFinder,
@ComponentImport final ResponseFactory responses,
@ComponentImport final I18nHelper i18nHelper,
@ComponentImport final CoreProjectConfigurator coreProjectConfigurator) {
this.projectFinder = projectFinder;
this.responses = responses;
this.i18nHelper = i18nHelper;
this.projectService = projectService;
this.authContext = authContext;
this.userManager = userManager;
this.projectBeanFactory = projectBeanFactory;
this.uriInfo = uriInfo;
this.projectManager = projectManager;
this.coreProjectConfigurator = coreProjectConfigurator;
}
......