Skip to content

feat: add Service-Oriented Architecture pattern (#2937) - #3600

Open
ylcn91 wants to merge 1 commit into
iluwatar:masterfrom
ylcn91:feat/service-oriented-architecture
Open

feat: add Service-Oriented Architecture pattern (#2937)#3600
ylcn91 wants to merge 1 commit into
iluwatar:masterfrom
ylcn91:feat/service-oriented-architecture

Conversation

@ylcn91

@ylcn91 ylcn91 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds the Service-Oriented Architecture (SOA) pattern as a new service-oriented-architecture module, implemented in plain Java without frameworks so the architectural mechanism stays visible.

  • Key components:
    • Service: the contract every service exposes (name() and handle(ServiceRequest)); services are stateless.
    • ServiceRequest / ServiceResponse: coarse-grained, self-describing messages that form the interoperability boundary (flat payload, uniform response envelope).
    • ServiceRegistry: discovery by name on a ConcurrentHashMap, rejects duplicate registrations.
    • ServiceBus: routes messages to the registered service, applies cross-cutting concerns (tracing, timing) in one place and translates provider failures into error responses, so consumers only ever talk to the bus.
    • CustomerService, InventoryService, PaymentService: reusable atomic services.
    • OrderService: composite service that orchestrates the three atomic services through the bus to place an order.
    • App: bootstraps registry and bus, registers the services, places an order that succeeds, one that is rejected for stock, and addresses an unregistered service. Logging traces every message.
    • README.md: intent, real-world example, diagram, code walkthrough, applicability, real-world uses (ESBs, SOAP/WSDL), trade-offs, related patterns including how SOA differs from microservices. PlantUML class diagram under etc/.
  • Tests: 24 JUnit 5 tests covering registry, bus routing and error translation, each atomic service, and order orchestration (success, unknown customer, out of stock, payment declined), plus AppTest.
  • Module registered in the parent pom.xml. ./mvnw clean verify -pl service-oriented-architecture passes locally on JDK 21 and inside an eclipse-temurin:21 container.

Fixes #2937

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

PR Summary

Introduces a framework-free Service-Oriented Architecture (SOA) pattern as a new module. Adds core components (Service, ServiceRequest, ServiceResponse, ServiceRegistry, ServiceBus, AccessPolicy) and atomic services (CustomerService, InventoryService, PaymentService) plus a composite OrderService. Includes App bootstrap, 24 JUnit 5 tests, a PlantUML class diagram, and README. The new module is wired into the parent Maven POM and demonstrates end-to-end orchestration with logging.

Changes

File Summary
pom.xml Modified parent POM to include the new module service-oriented-architecture, enabling build and test of the SOA pattern module.
service-oriented-architecture/README.md Comprehensive explanation of the SOA pattern, its real-world applicability, and a runnable Java example showing service registry, bus routing, and orchestration.
service-oriented-architecture/etc/service-oriented-architecture.urm.puml PlantUML diagram describing the SOA component relationships (Service, ServiceBus, Registry, AccessPolicy, atomic and composite services).
service-oriented-architecture/pom.xml Module POM defining dependencies (SLF4J, Logback, JUnit) and build configuration for the SOA module, including an executable main class.
service-oriented-architecture/src/main/java/com/iluwatar/soa/AccessPolicy.java Defines AccessPolicy for cross-cutting security: protected services and valid credentials, used by ServiceBus to gate access.
service-oriented-architecture/src/main/java/com/ iluwatar? App.java Bootstrap and demonstration app wiring registry, bus, and services; runs sample scenarios including a successful order, stock-rejected order, unknown service, and anonymous order.
service-oriented-architecture/src/main/java/com/iluwatar/soa/Customer.java Defines Customer domain model exposed by CustomerService as a simple data record.
service-oriented-architecture/src/main/java/com/iluwatar/soa/CustomerService.java Stateless Customer service implementing Service with operation getCustomer and in-memory data store.
service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java Inventory service owning stock levels with checkStock and reserve operations.
service-oriented-architecture/src/main/java/com/iluwatar/soa/OrderService.java Composite service OrderService orchestrating customer, inventory and payment through the bus to place an order.
service-oriented-architecture/src/main/java/com/iluwatar/soa/PaymentService.java Payment service handling charge operation with a credit limit constraint.
service-oriented-architecture/src/main/java/com/iluwatar/soa/Service.java Service contract interface exposing name() and handle(ServiceRequest) for all providers.
service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java Service bus routing, policy enforcement, and error translation; centralizes cross-cutting concerns.
service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java Service registry for runtime discovery and lookup by name with safe duplicate handling.
service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRequest.java Message envelope describing target service, operation, payload and optional credential with helper to read typed params.
service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceResponse.java Unified response envelope with ok and error factories used by all services.
service-oriented-architecture/src/test/java/com/iluwatar/soa/AccessPolicyTest.java Tests for AccessPolicy behavior: permitAll, protected services access with/without valid credentials.
service-oriented-architecture/src/test/java/com/iluwatar/soa/AppTest.java App-level tests ensuring the SOA demo launches and is instantiable.
service-oriented-architecture/src/test/java/com/iluwatar/soa/CustomerServiceTest.java Tests for CustomerService behavior including known/unknown customers and operations.
service-oriented-architecture/src/test/java/com/iluwatar/soa/InventoryServiceTest.java Tests for stock checks, reservations and unknown SKUs, plus operation handling.
service-oriented-architecture/src/test/java/com/iluwatar/soa/OrderServiceTest.java Tests for placing orders, including success, unknown customer, stock issues, and credential checks.
service-oriented-architecture/src/test/java/com/iluwatar/soa/PaymentServiceTest.java Tests for payment processing within credit limit, declines, and unknown operations.
service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceBusTest.java Tests for bus routing, unknown service handling, exception translation and security gating.
service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceRegistryTest.java Tests for service registry discovery, lookup and duplicate registration behavior.

autogenerated by presubmit.ai

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
  • 993cea1: feat: add Service-Oriented Architecture pattern (#2937)
Files Processed (22)
  • pom.xml (1 hunk)
  • service-oriented-architecture/README.md (1 hunk)
  • service-oriented-architecture/etc/service-oriented-architecture.urm.puml (1 hunk)
  • service-oriented-architecture/pom.xml (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Customer.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/CustomerService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/OrderService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/PaymentService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Service.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRequest.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceResponse.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AppTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/CustomerServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/InventoryServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/OrderServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/PaymentServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceBusTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceRegistryTest.java (1 hunk)
Actionable Comments (4)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [61-61]

    best_practice: "Fix incorrect logger usage in App.java"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java [57-57]

    best_practice: "Logger usage mismatch with Lombok @slf4j in ServiceBus"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java [56-56]

    best_practice: "Logger usage mismatch in ServiceRegistry"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java [93-101]

    possible bug: "Malformed string concatenation in reserve() error path"

Skipped Comments (0)

* @param args command line arguments, not used
*/
public static void main(String[] args) {
LOGGER.info("Bootstrapping the service registry and the service bus");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

In a class annotated with @slf4j, Lombok provides a "log" field, not "LOGGER". This will fail compilation. Replace with log.info(...) (and align all other LOGGER usages in this file to log).

LOGGER.warn("No service registered under '{}'", request.service());
return ServiceResponse.error("No such service: " + request.service());
}
LOGGER.info("-> {}.{} payload={}", request.service(), request.operation(), request.payload());

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Logger usage should be "log" instead of "LOGGER" when using @slf4j. Update to log.info(...) to compile and to follow project conventions.

if (previous != null) {
throw new IllegalStateException("Service already registered: " + service.name());
}
LOGGER.info("Registered service '{}' ({})", service.name(), service.getClass().getSimpleName());

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Same Lombok-based logger usage issue in ServiceRegistry. Replace with log.info(...) to compile and adopt a consistent logging approach.

Comment on lines +93 to +101
"Insufficient stock for "
+ sku
+ ": requested "
+ quantity
+ ", available "
+ (remaining == null ? 0 : remaining));
}
return ServiceResponse.ok(remaining);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

There is a potential formatting / concatenation issue in the error message construction across multiple lines. The intended expression should be a single concatenation. Ensure there are no stray plus signs and that the message matches tests: "Insufficient stock for LAPTOP: requested 5, available 3".

@ylcn91

ylcn91 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Note on the automated review comments: LOGGER is the Lombok logger field name configured for this repository in lombok.config (lombok.log.fieldName = LOGGER), the same name every other module uses, so the code compiles as is. The multi-line string concatenation in InventoryService is a single expression and is covered by InventoryServiceTest. Local ./mvnw clean verify -pl service-oriented-architecture passes on JDK 21, also inside an eclipse-temurin:21 container.

@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.94%. Comparing base (41625d8) to head (bf16d6e).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #3600      +/-   ##
============================================
+ Coverage     83.79%   83.94%   +0.15%     
- Complexity     4277     4339      +62     
============================================
  Files          1121     1132      +11     
  Lines         15144    15325     +181     
  Branches        723      737      +14     
============================================
+ Hits          12690    12865     +175     
- Misses         2159     2162       +3     
- Partials        295      298       +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ylcn91
ylcn91 force-pushed the feat/service-oriented-architecture branch from 993cea1 to 84e5c17 Compare September 3, 2026 09:43
@ylcn91

ylcn91 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Updated the branch to cover point 8 (Security) of the issue guidelines: the bus now enforces an AccessPolicy as a cross-cutting concern (protected services require a valid credential, denial returns an error response and services stay free of security code). OrderService forwards the caller's credential downstream and no longer references provider classes, only service names and message contracts. Added AccessPolicyTest and extra bus/order cases (32 tests, 99% instruction coverage), README section, sample output and class diagram updated. ./mvnw clean verify -pl service-oriented-architecture passes locally on JDK 21 and in an eclipse-temurin:21 container.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
  • 84e5c17: feat: add Service-Oriented Architecture pattern (#2937)
Files Processed (24)
  • pom.xml (1 hunk)
  • service-oriented-architecture/README.md (1 hunk)
  • service-oriented-architecture/etc/service-oriented-architecture.urm.puml (1 hunk)
  • service-oriented-architecture/pom.xml (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/AccessPolicy.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Customer.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/CustomerService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/OrderService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/PaymentService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Service.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRequest.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceResponse.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AccessPolicyTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AppTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/CustomerServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/InventoryServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/OrderServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/PaymentServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceBusTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceRegistryTest.java (1 hunk)
Actionable Comments (1)
  • service-oriented-architecture/pom.xml [46-50]

    enhancement: "Missing JUnit Jupiter API test dependency"

Skipped Comments (0)

Comment on lines +46 to +50
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Add junit-jupiter-api as a test dependency since the module's tests rely on the JUnit Jupiter API (org.junit.jupiter.api). Without it, compilation and test execution may fail.

@ylcn91
ylcn91 force-pushed the feat/service-oriented-architecture branch from 84e5c17 to 453f532 Compare September 3, 2026 09:52
@ylcn91

ylcn91 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up on the Codecov note: added OrderServiceTest cases with a stub inventory service (reservation fails after a successful stock check; stock check itself fails) and a ServiceBusTest case for a wrong non-null credential. 35 tests, the only uncovered line left is the implicit App constructor. Tests only. ./mvnw clean verify -pl service-oriented-architecture passes locally on JDK 21 and in an eclipse-temurin:21 container.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
  • 453f532: feat: add Service-Oriented Architecture pattern (#2937)
Files Processed (24)
  • pom.xml (1 hunk)
  • service-oriented-architecture/README.md (1 hunk)
  • service-oriented-architecture/etc/service-oriented-architecture.urm.puml (1 hunk)
  • service-oriented-architecture/pom.xml (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/AccessPolicy.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Customer.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/CustomerService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/OrderService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/PaymentService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Service.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRequest.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceResponse.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AccessPolicyTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AppTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/CustomerServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/InventoryServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/OrderServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/PaymentServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceBusTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceRegistryTest.java (1 hunk)
Actionable Comments (1)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java [92-100]

    possible bug: "Fix potential string concatenation bug in error message"

Skipped Comments (8)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [67-67]

    best_practice: "Logger usage mismatch with Lombok @slf4j"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [76-76]

    best_practice: "Replace LOGGER with log when using @slf4j"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [78-78]

    best_practice: "Consistent logging with Lombok"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [88-88]

    best_practice: "Consistent logging with Lombok"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [98-98]

    best_practice: "Consistent logging with Lombok"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [102-102]

    best_practice: "Consistent logging with Lombok"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [106-106]

    best_practice: "Consistent logging with Lombok"

  • service-oriented-architecture/pom.xml [36-50]

    test: "Add junit-jupiter-api as test dependency"

Comment on lines +92 to +100
return ServiceResponse.error(
"Insufficient stock for "
+ sku
+ ": requested "
+ quantity
+ ", available "
+ (remaining == null ? 0 : remaining));
}
return ServiceResponse.ok(remaining);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Potential formatting issue in the error message construction. There is an extra '+' in '+ sku' which would cause a syntax error. Rebuild the string with a single concatenation expression.

@ylcn91
ylcn91 force-pushed the feat/service-oriented-architecture branch from 453f532 to bf16d6e Compare September 3, 2026 11:32
@ylcn91

ylcn91 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Coverage follow-up: added AppTest.shouldBeInstantiable for the implicit App constructor, the last uncovered line. JaCoCo now reports 100% instruction, branch and line coverage. Verified locally on JDK 21 and in an eclipse-temurin:21 container.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM!

Review Summary

Commits Considered (1)
  • bf16d6e: feat: add Service-Oriented Architecture pattern (#2937)
Files Processed (24)
  • pom.xml (1 hunk)
  • service-oriented-architecture/README.md (1 hunk)
  • service-oriented-architecture/etc/service-oriented-architecture.urm.puml (1 hunk)
  • service-oriented-architecture/pom.xml (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/AccessPolicy.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Customer.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/CustomerService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/OrderService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/PaymentService.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/Service.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRequest.java (1 hunk)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceResponse.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AccessPolicyTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/AppTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/CustomerServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/InventoryServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/OrderServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/PaymentServiceTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceBusTest.java (1 hunk)
  • service-oriented-architecture/src/test/java/com/iluwatar/soa/ServiceRegistryTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (5)
  • service-oriented-architecture/src/main/java/com/iluwatar/soa/App.java [67-70]

    best_practice: "Use the correct Lombok logger field"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceBus.java [66-92]

    best_practice: "Logger usage should use the Lombok-provided 'log' field"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/ServiceRegistry.java [51-57]

    best_practice: "Logger usage should use the Lombok-provided 'log' field"

  • service-oriented-architecture/src/main/java/com/iluwatar/soa/InventoryService.java [93-98]

    readability: "Clarify error message construction"

  • service-oriented-architecture/pom.xml [36-39]

    best_practice: "Add junit-jupiter-api test dependency"

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.

Service-Oriented Architecture pattern

1 participant