<project ...>
...
<dependencies>
<dependency>
<groupId>org.nasdanika.models.jira</groupId>
<artifactId>client</artifactId>
<version>2025.2.0</version>
</dependency>
...
</dependencies>
<!-- Maybe not needed - TBD -->
<repositories>
<repository>
<id>atlassian</id>
<url>https://packages.atlassian.com/mvn/maven-atlassian-external/</url>
</repository>
</repositories>
</project>
module <module name> {
requires org.nasdanika.models.jira.client;
}
JiraRestClientFactory factory = new AsynchronousJiraRestClientFactory();
URI jirURI = new URI("<instance uri>");
try (JiraRestClient client = factory.createWithBasicHttpAuthentication(
jirURI,
System.getenv("JIRA_USER"),
System.getenv("JIRA_API_TOKEN"))) {
IssueRestClient issueClient = client.getIssueClient();
Promise<Issue> issuePromise = issueClient.getIssue("<issue key>");
Issue issue = issuePromise.claim();
System.out.println(issue);
}
JiraRestClientFactory factory = new AsynchronousInterceptingJiraRestClientFactory() {
@Override
protected void onRequest(Request request) {
System.out.println("Request: " + request);
}
@Override
protected void onSuccess(Request request, Response response) {
System.out.println("Success: " + response);
for (Entry<String, String> he: response.getHeaders().entrySet()) {
System.out.println(" " + he.getKey() + ": " + he.getValue());
}
}
};
URI jirURI = new URI("https://nasdanika.atlassian.net");
try (JiraRestClient client = factory.createWithBasicHttpAuthentication(
jirURI,
System.getenv("JIRA_USER"),
System.getenv("JIRA_API_TOKEN"))) {
IssueRestClient issueClient = client.getIssueClient();
Promise<Issue> issuePromise = issueClient.getIssue("NSD-164");
Issue issue = issuePromise.claim();
System.out.println(issue);
}
JiraRestClientFactory factory = new AsynchronousRateLimitingJiraRestClientFactory(5);
URI jirURI = new URI("https://nasdanika.atlassian.net");
try (JiraRestClient client = factory.createWithBasicHttpAuthentication(
jirURI,
System.getenv("JIRA_USER"),
System.getenv("JIRA_API_TOKEN"))) {
IssueRestClient issueClient = client.getIssueClient();
Promise<Issue> issuePromise = issueClient.getIssue("NSD-164");
Issue issue = issuePromise.claim();
System.out.println(issue);
}
// Creating a model
JiraFactory jiraFactory = JiraFactory.eINSTANCE;
org.nasdanika.models.jira.Issue modelIssue = jiraFactory.createIssue();
modelIssue.setKey("DEMO-1");
modelIssue.setDescription("Some description");
// Saving to a file
ResourceSet resourceSet = createResourceSet();
org.eclipse.emf.common.util.URI resourceURI = org.eclipse.emf.common.util.URI.createFileURI(new File(JIRA_MODEL_PATH).getCanonicalPath());
Resource resource = resourceSet.createResource(resourceURI);
resource.getContents().add(modelIssue);
resource.save(null);
ResourceSet resourceSet = createResourceSet();
org.eclipse.emf.common.util.URI resourceURI = org.eclipse.emf.common.util.URI.createFileURI(new File(JIRA_MODEL_PATH).getCanonicalPath());
Resource resource = resourceSet.getResource(resourceURI, true);
org.nasdanika.models.jira.Issue modelIssue = (org.nasdanika.models.jira.Issue) resource.getContents().get(0);
System.out.println(modelIssue.getKey() + ": " + modelIssue.getDescription());
private ResourceSet createResourceSet() {
CapabilityLoader capabilityLoader = new CapabilityLoader();
ProgressMonitor progressMonitor = new PrintStreamProgressMonitor();
Requirement<ResourceSetRequirement, ResourceSet> requirement = ServiceCapabilityFactory.createRequirement(ResourceSet.class);
return capabilityLoader.loadOne(requirement, progressMonitor);
}