diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/client/ClientConfig.java b/common_library/src/main/java/cz/muni/pa165/common_library/client/ClientConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..1008f78988f6293f642dcff7a14e50e151ec8ca4 --- /dev/null +++ b/common_library/src/main/java/cz/muni/pa165/common_library/client/ClientConfig.java @@ -0,0 +1,24 @@ +package cz.muni.pa165.common_library.client; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +@Configuration +public class ClientConfig { + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(getClientHttpRequestFactory()); + } + + private ClientHttpRequestFactory getClientHttpRequestFactory() { + int timeout = 5000; + HttpComponentsClientHttpRequestFactory clientHttpRequestFactory + = new HttpComponentsClientHttpRequestFactory(); + clientHttpRequestFactory.setConnectTimeout(timeout); + return clientHttpRequestFactory; + } +} diff --git a/race/src/main/java/cz/muni/pa165/race/data/model/Location.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/Location.java similarity index 97% rename from race/src/main/java/cz/muni/pa165/race/data/model/Location.java rename to common_library/src/main/java/cz/muni/pa165/common_library/dtos/Location.java index 96a5ed2c257720ef715b2fe3fd304e4d91f846c8..ad4847bb718a6f2b6df0c90555866e224892271c 100644 --- a/race/src/main/java/cz/muni/pa165/race/data/model/Location.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/Location.java @@ -1,4 +1,4 @@ -package cz.muni.pa165.race.data.model; +package cz.muni.pa165.common_library.dtos; /** * Enum for all F1 locations. diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java index b56ebfb297430cb017e879a3d4cc60543ec2d7cc..6bfc8104aa033ec44cd4d3a2452a0bc35d97e3d4 100644 --- a/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java +++ b/common_library/src/main/java/cz/muni/pa165/common_library/dtos/RaceDto.java @@ -1,7 +1,5 @@ package cz.muni.pa165.common_library.dtos; -import cz.muni.pa165.common_library.racecomponents.Location; -import cz.muni.pa165.common_library.racecomponents.Race; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; diff --git a/race/src/main/java/cz/muni/pa165/race/App.java b/race/src/main/java/cz/muni/pa165/race/App.java index 1da06164eabcf1abd9d5d6f7d327e7d6e6759a5e..47715a6ff43b72c5f0b5f033eee3fe96eb83834c 100644 --- a/race/src/main/java/cz/muni/pa165/race/App.java +++ b/race/src/main/java/cz/muni/pa165/race/App.java @@ -1,6 +1,7 @@ package cz.muni.pa165.race; import cz.muni.pa165.car.data.model.Car; +import cz.muni.pa165.common_library.client.ClientConfig; import cz.muni.pa165.common_library.exception.RestExceptionHandler; import cz.muni.pa165.driver.data.model.Driver; import cz.muni.pa165.race.data.model.Race; @@ -19,7 +20,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableJpaRepositories(basePackages = "cz.muni.pa165.race.data.repository") @EnableTransactionManagement @EntityScan(basePackageClasses = {Race.class, Season.class, Car.class, Driver.class}) -@Import(RestExceptionHandler.class) +@Import({RestExceptionHandler.class, ClientConfig.class}) public class App { public static void main(String[] args) { diff --git a/race/src/main/java/cz/muni/pa165/race/data/model/Race.java b/race/src/main/java/cz/muni/pa165/race/data/model/Race.java index 44389b932a9ec80234cff40d8832652761b4344c..16541e30267d56edc756d70f91a0800ca53e0abb 100644 --- a/race/src/main/java/cz/muni/pa165/race/data/model/Race.java +++ b/race/src/main/java/cz/muni/pa165/race/data/model/Race.java @@ -1,6 +1,7 @@ package cz.muni.pa165.race.data.model; import cz.muni.pa165.car.data.model.Car; +import cz.muni.pa165.common_library.dtos.Location; import cz.muni.pa165.driver.data.model.Driver; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; diff --git a/race/src/main/java/cz/muni/pa165/race/data/repository/CarRepository.java b/race/src/main/java/cz/muni/pa165/race/data/repository/CarRepository.java index 3d42941b8f4e7705d0efe99083e77a5f07620ff5..b0f8e24736e5d946c712c7caa9a2ee8fcf763c03 100644 --- a/race/src/main/java/cz/muni/pa165/race/data/repository/CarRepository.java +++ b/race/src/main/java/cz/muni/pa165/race/data/repository/CarRepository.java @@ -1,6 +1,6 @@ package cz.muni.pa165.race.data.repository; -import cz.muni.pa165.common_library.racecomponents.Car; +import cz.muni.pa165.car.data.model.Car; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/race/src/main/java/cz/muni/pa165/race/data/repository/DriverRepository.java b/race/src/main/java/cz/muni/pa165/race/data/repository/DriverRepository.java index 82235c937dccc5558490ff773c793650dd254cfd..c5738d33a2066923df8aed853f8efb0ed2504c03 100644 --- a/race/src/main/java/cz/muni/pa165/race/data/repository/DriverRepository.java +++ b/race/src/main/java/cz/muni/pa165/race/data/repository/DriverRepository.java @@ -1,6 +1,7 @@ package cz.muni.pa165.race.data.repository; -import cz.muni.pa165.common_library.racecomponents.Driver; + +import cz.muni.pa165.driver.data.model.Driver; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; diff --git a/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java b/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java index 0384d24fdd13177e7aa356534ede3a98aa6e7c38..6c9f7ce68d5a82f47cbea4cc8750a87508bb973f 100644 --- a/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java +++ b/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java @@ -1,6 +1,6 @@ package cz.muni.pa165.race.data.repository; -import cz.muni.pa165.race.data.model.Location; +import cz.muni.pa165.common_library.dtos.Location; import cz.muni.pa165.race.data.model.Race; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java index 767707fbbfbe20837374509e51863df5eaf1ffd6..fc1cae9f879e8433f8d848c5e4d9e63a61ae013f 100644 --- a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java +++ b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java @@ -1,16 +1,18 @@ package cz.muni.pa165.race.service; +import cz.muni.pa165.car.data.model.Car; import cz.muni.pa165.common_library.dtos.RaceDriverCarDto; import cz.muni.pa165.common_library.dtos.RaceDto; import cz.muni.pa165.common_library.exception.DatabaseException; -import cz.muni.pa165.common_library.racecomponents.Car; -import cz.muni.pa165.common_library.racecomponents.Driver; +import cz.muni.pa165.driver.data.model.Driver; import cz.muni.pa165.race.data.model.Race; import cz.muni.pa165.race.data.repository.CarRepository; import cz.muni.pa165.race.data.repository.DriverRepository; import cz.muni.pa165.race.data.repository.RaceRepository; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; /** * Service for managing races. @@ -23,6 +25,9 @@ public class RaceService { CarRepository carRepository; DriverRepository driverRepository; + @Autowired + RestTemplate client; + RaceService(RaceRepository raceRepository, CarRepository carRepository, DriverRepository driverRepository) { this.raceRepository = raceRepository;