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.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.