Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

polish : remove public where possible #502

Merged
merged 1 commit into from
Jun 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions .gitpod.Dockerfile

This file was deleted.

3 changes: 1 addition & 2 deletions .gitpod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file)
# and commit this file to your remote git repository to share the goodness with others.

image:
file: .gitpod.Dockerfile
image: gitpod/workspace-java21

vscode:
extensions:
Expand Down
2 changes: 1 addition & 1 deletion spring-modulith-outbox-pattern/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@
<configuration>
<java>
<palantirJavaFormat>
<version>2.38.0</version>
<version>2.47.0</version>
</palantirJavaFormat>
<importOrder/>
<removeUnusedImports/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@Component
@RequiredArgsConstructor
@Slf4j
public class Initializer implements CommandLineRunner {
class Initializer implements CommandLineRunner {

private final ApplicationProperties properties;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

@Aspect
@Component
public class LoggingAspect {
class LoggingAspect {

private final Logger log = LoggerFactory.getLogger(this.getClass());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@

@Configuration(proxyBeanMethods = false)
@OpenAPIDefinition(info = @Info(title = "spring-modulith-outbox-pattern", version = "v1"), servers = @Server(url = "/"))
public class SwaggerConfig {}
class SwaggerConfig {}
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@

import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Configuration;
import org.springframework.lang.NonNull;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
@RequiredArgsConstructor
public class WebMvcConfig implements WebMvcConfigurer {
class WebMvcConfig implements WebMvcConfigurer {
private final ApplicationProperties properties;

@Override
public void addCorsMappings(CorsRegistry registry) {
public void addCorsMappings(@NonNull CorsRegistry registry) {
registry.addMapping(properties.getCors().getPathPattern())
.allowedMethods(properties.getCors().getAllowedMethods())
.allowedHeaders(properties.getCors().getAllowedHeaders())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class GlobalExceptionHandler {
class GlobalExceptionHandler {

@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import com.example.outboxpattern.config.Loggable;
import com.example.outboxpattern.order.OrderRecord;
import com.example.outboxpattern.order.internal.query.FindOrdersQuery;
import com.example.outboxpattern.order.internal.request.OrderRequest;
import com.example.outboxpattern.order.internal.response.PagedResult;
import com.example.outboxpattern.order.internal.domain.query.FindOrdersQuery;
import com.example.outboxpattern.order.internal.domain.request.OrderRequest;
import com.example.outboxpattern.order.internal.domain.response.PagedResult;
import com.example.outboxpattern.utils.AppConstants;
import jakarta.validation.Valid;
import java.net.URI;
Expand All @@ -26,12 +26,12 @@
@RequestMapping("/api/orders")
@RequiredArgsConstructor
@Loggable
public class OrderController {
class OrderController {

private final OrderService orderService;

@GetMapping
public PagedResult<OrderRecord> getAllOrders(
PagedResult<OrderRecord> getAllOrders(
@RequestParam(defaultValue = AppConstants.DEFAULT_PAGE_NUMBER, required = false) int pageNo,
@RequestParam(defaultValue = AppConstants.DEFAULT_PAGE_SIZE, required = false) int pageSize,
@RequestParam(defaultValue = AppConstants.DEFAULT_SORT_BY, required = false) String sortBy,
Expand All @@ -41,12 +41,12 @@ public PagedResult<OrderRecord> getAllOrders(
}

@GetMapping("/{id}")
public ResponseEntity<OrderRecord> getOrderById(@PathVariable Long id) {
ResponseEntity<OrderRecord> getOrderById(@PathVariable Long id) {
return orderService.findOrderById(id).map(ResponseEntity::ok).orElseThrow(() -> new OrderNotFoundException(id));
}

@PostMapping
public ResponseEntity<OrderRecord> createOrder(@RequestBody @Validated OrderRequest orderRequest) {
ResponseEntity<OrderRecord> createOrder(@RequestBody @Validated OrderRequest orderRequest) {
OrderRecord response = orderService.saveOrder(orderRequest);
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/api/orders/{id}")
Expand All @@ -56,13 +56,12 @@ public ResponseEntity<OrderRecord> createOrder(@RequestBody @Validated OrderRequ
}

@PutMapping("/{id}")
public ResponseEntity<OrderRecord> updateOrder(
@PathVariable Long id, @RequestBody @Valid OrderRequest orderRequest) {
ResponseEntity<OrderRecord> updateOrder(@PathVariable Long id, @RequestBody @Valid OrderRequest orderRequest) {
return ResponseEntity.ok(orderService.updateOrder(id, orderRequest));
}

@DeleteMapping("/{id}")
public ResponseEntity<OrderRecord> deleteOrder(@PathVariable Long id) {
ResponseEntity<OrderRecord> deleteOrder(@PathVariable Long id) {
return orderService
.findOrderById(id)
.map(order -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
import com.example.outboxpattern.config.Loggable;
import com.example.outboxpattern.order.OrderItemRecord;
import com.example.outboxpattern.order.OrderRecord;
import com.example.outboxpattern.order.internal.domain.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.domain.request.OrderRequest;
import com.example.outboxpattern.order.internal.entities.Order;
import com.example.outboxpattern.order.internal.entities.OrderItem;
import com.example.outboxpattern.order.internal.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.request.OrderRequest;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import com.example.outboxpattern.exception.ResourceNotFoundException;

public class OrderNotFoundException extends ResourceNotFoundException {
class OrderNotFoundException extends ResourceNotFoundException {

public OrderNotFoundException(Long id) {
OrderNotFoundException(Long id) {
super("Order with Id '%d' Not found".formatted(id));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

import com.example.outboxpattern.config.Loggable;
import com.example.outboxpattern.order.OrderRecord;
import com.example.outboxpattern.order.internal.domain.query.FindOrdersQuery;
import com.example.outboxpattern.order.internal.domain.request.OrderRequest;
import com.example.outboxpattern.order.internal.domain.response.PagedResult;
import com.example.outboxpattern.order.internal.entities.Order;
import com.example.outboxpattern.order.internal.query.FindOrdersQuery;
import com.example.outboxpattern.order.internal.request.OrderRequest;
import com.example.outboxpattern.order.internal.response.PagedResult;
import jakarta.annotation.PostConstruct;
import java.util.List;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
Expand All @@ -16,6 +17,8 @@
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionTemplate;
import org.springframework.util.Assert;

@Service
@Transactional(readOnly = true)
Expand All @@ -26,6 +29,12 @@ class OrderService {
private final OrderRepository orderRepository;
private final OrderMapper orderMapper;
private final ApplicationEventPublisher events;
private final TransactionTemplate transactionTemplate;

@PostConstruct
void setPropagation() {
transactionTemplate.setPropagationBehaviorName("PROPAGATION_REQUIRES_NEW");
}

PagedResult<OrderRecord> findAllOrders(FindOrdersQuery findOrdersQuery) {

Expand Down Expand Up @@ -61,16 +70,16 @@ OrderRecord saveOrder(OrderRequest orderRequest) {
return orderRecord;
}

@Transactional
OrderRecord updateOrder(Long id, OrderRequest orderRequest) {
Order order = orderRepository.findOrderById(id).orElseThrow(() -> new OrderNotFoundException(id));

// Update the order object with data from orderRequest
orderMapper.mapOrderWithRequest(order, orderRequest);

// Save the updated order object
Order updatedOrder = orderRepository.save(order);
Order updatedOrder = transactionTemplate.execute(status -> orderRepository.save(order));

Assert.notNull(updatedOrder, () -> "UpdatedOrder cant be Null");
return orderMapper.toResponse(updatedOrder);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package com.example.outboxpattern.order.internal.query;
package com.example.outboxpattern.order.internal.domain.query;

public record FindOrdersQuery(int pageNo, int pageSize, String sortBy, String sortDir) {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.outboxpattern.order.internal.request;
package com.example.outboxpattern.order.internal.domain.request;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Positive;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.outboxpattern.order.internal.request;
package com.example.outboxpattern.order.internal.domain.request;

import jakarta.validation.constraints.NotEmpty;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.outboxpattern.order.internal.response;
package com.example.outboxpattern.order.internal.domain.response;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.modulith.events.ApplicationModuleListener;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Slf4j
@Service
@Transactional
@RequiredArgsConstructor
public class Producer {
class Producer {

@ApplicationModuleListener
void onOrderResponseEvent(OrderRecord orderRecord) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.outboxpattern;

import com.example.outboxpattern.common.AbstractIntegrationTest;
import org.junit.jupiter.api.Test;
import org.springframework.modulith.core.ApplicationModules;

class ApplicationTest extends AbstractIntegrationTest {

@Test
void contextLoads() {
ApplicationModules applicationModules = ApplicationModules.of(Application.class);

applicationModules.verify();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@

import com.example.outboxpattern.common.AbstractIntegrationTest;
import com.example.outboxpattern.common.listener.OrderListener;
import com.example.outboxpattern.order.internal.domain.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.domain.request.OrderRequest;
import com.example.outboxpattern.order.internal.entities.Order;
import com.example.outboxpattern.order.internal.entities.OrderItem;
import com.example.outboxpattern.order.internal.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.request.OrderRequest;
import java.math.BigDecimal;
import java.time.Duration;
import java.time.LocalDateTime;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

import com.example.outboxpattern.common.ContainersConfig;
import com.example.outboxpattern.order.OrderRecord;
import com.example.outboxpattern.order.internal.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.request.OrderRequest;
import com.example.outboxpattern.order.internal.domain.request.OrderItemRequest;
import com.example.outboxpattern.order.internal.domain.request.OrderRequest;
import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.CompletableFuture;
Expand Down