Skip to content

External service jira#4

Merged
jorge-romero merged 4 commits intomasterfrom
external-service-jira
Feb 25, 2026
Merged

External service jira#4
jorge-romero merged 4 commits intomasterfrom
external-service-jira

Conversation

@jorge-romero
Copy link
Collaborator

This pull request introduces a new module for integrating with Jira Data Center/Server, providing a standardized way to check project existence and retrieve server information. The changes include the addition of a dedicated Maven module with OpenAPI-generated client code, configuration, and dependencies, as well as updates to the core project to support this integration.

New Jira Integration Module:

  • Added a new Maven module external-service-jira for interacting with Jira Data Center/Server, including a client for checking project existence and retrieving server info.
  • Defined an OpenAPI specification (openapi-jira-dc.yaml) describing the supported Jira REST API endpoints and data models for server info and project retrieval.
  • Implemented the JiraApiClient class, which wraps the generated API client, handles authentication (bearer token or basic auth), and configures the underlying RestTemplate for correct JSON handling.

Project Configuration:

  • Updated the core project's pom.xml to include the new external-service-jira module as a dependency, enabling other modules to use the Jira integration.

- Introduced `external-service-api` module with base interface `ExternalService` for health checks.
- Implemented `AbstractExternalServiceHealthIndicator` to provide a standard health check mechanism.
- Added health indicators for Bitbucket, OpenShift, Projects Info Service, UiPath, and Webhook Proxy services.
- Updated existing service interfaces to extend `ExternalService` and implement the `isHealthy` method.
- Integrated Spring Boot Actuator for health checks in each service module.
- Updated parent `pom.xml` to include the new `external-service-api` module.
@github-actions
Copy link

📊 Static Analysis Summary

🔍 Code Quality Checks

  • ✅ JaCoCo coverage report generated

📦 Download detailed reports from the workflow artifacts.

@jorge-romero jorge-romero requested review from angelmp01, hrcornejo, jordivx, s2oBCN and sergio-soria-bi and removed request for s2oBCN February 23, 2026 16:25
RestTemplateBuilder restTemplateBuilder) {
this.configuration = configuration;
this.restTemplateBuilder = restTemplateBuilder;
this.clientCache = new ConcurrentHashMap<>();
Copy link
Collaborator

@hrcornejo hrcornejo Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use a "real" cache with @Cacheable in getClient?

Copy link
Collaborator Author

@jorge-romero jorge-romero Feb 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe I'm a bit oldskool from my side.
The only problem here that I can see is that as I resolve the name of the cluster, and get the default one if nothing is provided, then I could get several entries for the same client.
To do it I should split the method to avoid null calls. And other to get the default one configured for the server.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cache enabled. Tests to check cache added.
Changed the way we retrieve the information to avoid problems in internal call (that's why I have 2 methods to get the client)

*
* @return The generated ApiClient instance
*/
public ApiClient getApiClient() {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use Lombock to getter/setters?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch, here at least for getters, as it is set in the constructor of the ApiClient class.

I'll change it

@github-actions
Copy link

📊 Static Analysis Summary

🔍 Code Quality Checks

  • ✅ JaCoCo coverage report generated

📦 Download detailed reports from the workflow artifacts.

@github-actions
Copy link

📊 Static Analysis Summary

🔍 Code Quality Checks

  • ✅ JaCoCo coverage report generated

📦 Download detailed reports from the workflow artifacts.

@jorge-romero jorge-romero merged commit a4db5e2 into master Feb 25, 2026
3 checks passed
@jorge-romero jorge-romero deleted the external-service-jira branch February 25, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants