git-agent for Javagit-agent handles Maven and Gradle project layouts, Spring component annotations, and Java class hierarchies to produce conventional commit messages that reflect the enterprise patterns in your codebase.
diff --git a/src/main/java/com/example/order/OrderService.java b/src/main/java/com/example/order/OrderService.java
index 1f4a2d3..8c7e9b1 100644
--- a/src/main/java/com/example/order/OrderService.java
+++ b/src/main/java/com/example/order/OrderService.java
@@ -15,10 +15,18 @@ public class OrderService {
private final OrderRepository orderRepository;
private final EventPublisher eventPublisher;
- public Order createOrder(CreateOrderRequest request) {
+ @Transactional
+ public Order createOrder(CreateOrderRequest request) {
+ if (request.getItems().isEmpty()) {
+ throw new IllegalArgumentException("order must contain at least one item");
+ }
Order order = Order.from(request);
Order saved = orderRepository.save(order);
+ eventPublisher.publish(new OrderCreatedEvent(saved.getId()));
return saved;
}
}feat(order): add transaction boundary and order-created event
- annotate createOrder with @Transactional to ensure event and persist are atomic
- validate that request contains at least one item before persisting
- publish OrderCreatedEvent after successful save for downstream consumers
Without the transaction boundary a failed event publish could leave an
orphaned order record; wrapping both operations ensures all-or-nothing
semantics.brew install gitagenthq/tap/git-agent
# inside your Java project
git-agent init # detects Maven/Gradle structure and suggests scopesDoes git-agent work with Maven and Gradle equally?How does git-agent handle Java boilerplate like getters and setters?Can git-agent handle changes across many Java classes at once?