Hi,
I'm trying to build a Bitbucket pre-receive hook plugin that checks Jira issue status before allowing 'git push'. I use the Jira REST API:
import com.atlassian.jira.rest.client.api.IssueRestClient;
import com.atlassian.jira.rest.client.api.JiraRestClient;
import com.atlassian.jira.rest.client.api.RestClientException;
import com.atlassian.jira.rest.client.api.domain.Issue;
import com.atlassian.jira.rest.client.internal.async.AsynchronousJiraRestClientFactory;
import com.atlassian.util.concurrent.Promise;
I have added the required dependency to my pom:
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-rest-java-client-core</artifactId>
<version>4.0.0</version>
<scope>compile</scope>
</dependency>
The package is not supplied by Bitbucket System Bundle, so scope is 'compile'.
My code compiles and works fine in a unit test, so the dependency seems to be correct basically.
But jira-rest-java-client-core brings ~45 transiently dependent packages with it and I have no idea which of them to either
No matter what combination of the above I try (believe me, I have tried beyond frustration) every time there is a different BundleException. I use 'atlas-debug' (or 'atlas-cli' and 'pi') to deploy my plugin to the local Tomcat and I always get something like this:
Caused by: org.osgi.framework.BundleException: Unresolved constraint in bundle com.rockwell.ssb.atlas.bitbucket.plugins.bitbucket-4.13.0-git-pre-tests [129]: Unable to resolve 129.0: missing requirement [129.0] osgi.wiring.package; (osgi.wiring.package=com.rockwell.ssb.atlas.bitbucket.plugins.api) [caused by: Unable to resolve 141.0: missing requirement [141.0] osgi.wiring.package; (osgi.wiring.package=_something.new.every.time_)]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)
Any help greatly appreciated - thanks!
There is a simpler way to do it if Jira and Bitbucket are application linked together:
This is an example using:
<groupId>com.atlassian.applinks</groupId>
<artifactId>applinks-api</artifactId>
Thanks for the Info. The solution was indeed to use a different API to access Jira. Yet in the end I decided to use javax.json, which has a low footprint and was fairly easy to include in my OSGI bundle.
I gave up on using jira-rest-java-client-core because the ~45 transiently dependent packages it brings contain too many conflicts with other components inherited from Bitbucket System Bundle to handle.
I was reluctant to try applinks-api, because the connection cannot be unit tested independently. (Needs unit test plugin on Bitbucket actually linked to Jira.)
Thanks again for your support!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.