Skip to content
Open
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
27 changes: 17 additions & 10 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,34 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
<version>3.3.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>17</maven.compiler.release>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
Expand All @@ -51,15 +59,14 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.6.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
</dependency>
</dependencies>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@ComponentScan(basePackages = { "com.dxbair.services.flightbooking" })
@SpringBootApplication(scanBasePackages = { "com.dxbair.services.flightbooking" })
@EnableTransactionManagement
public class Application {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,15 @@
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
* Configuration class for JPA settings.
* Enables transaction management and JPA repositories.
*/
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = {"com.dxbair.services.flightbooking.domain.repo"})
@EnableJpaRepositories(
basePackages = "com.dxbair.services.flightbooking.domain.repo"
)
public class JpaConfig {

}
47 changes: 23 additions & 24 deletions src/main/java/com/dxbair/services/flightbooking/SwaggerConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,33 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import org.springdoc.core.models.GroupedOpenApi;



@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket bookingApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.dxbair.services.flightbooking"))
.paths(PathSelectors.ant("/**"))
.build().apiInfo(apiInfo());
public GroupedOpenApi bookingApi() {
String paths[] = {"/**"};
return GroupedOpenApi.builder()
.group("flight-booking")
.pathsToMatch(paths)
.build();
}

private ApiInfo apiInfo() {
return new ApiInfo(
"Flight Booking REST API",
"Flight Booking REST API Documentatoion",
"API TOS",
"Terms of service",
new Contact("Shameer Kunjumohamed", "www.sameerean.com", "sameerean@gmail.com"),
"License of API", "API license URL", Collections.emptyList());
}

@Bean
public OpenAPI apiInfo() {
return new OpenAPI()
.info(new Info().title("Flight Booking REST API")
.description("Flight Booking REST API Documentation")
.version("v0.0.1")
.license(new License().name("API License").url("https://www.example.com/license"))
.contact(new Contact().name("Shameer Kunjumohamed").email("sameerean@gmail.com").url("https://www.sameerean.com")));
}

}
Original file line number Diff line number Diff line change
@@ -1,27 +1,18 @@
package com.dxbair.services.flightbooking.airport;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.dxbair.services.flightbooking.domain.entity.Airport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;

import com.dxbair.services.flightbooking.booking.model.FlightBookingModel;
import com.dxbair.services.flightbooking.domain.entity.Airport;
import com.dxbair.services.flightbooking.domain.repo.AirportRepository;
import java.util.List;

@RestController
@RequestMapping("airports")
public class AirportController {
@Autowired
private AirportService airportService;

@Autowired
private AirportService airportService;

// private static final Logger logger = LoggerFactory.getLogger(AirportController.class);

@GetMapping
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.dxbair.services.flightbooking.domain.entity;

import javax.persistence.Entity;
import javax.persistence.Id;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;

@Entity
public class Airport {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import java.time.LocalDateTime;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.ManyToMany;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
Expand All @@ -19,15 +19,18 @@ public class Flight {

@Id
@GeneratedValue(generator = "flight-id-gen")
@GenericGenerator(name = "flight-id-gen",
parameters = @Parameter(name = "prefix", value = "FL"),
strategy = "com.dxbair.services.flightbooking.domain.util.StringSequenceIdGenerator")
@GenericGenerator(
name = "flight-id-gen",
parameters = @Parameter(name = "prefix", value = "FL"),
strategy = "com.dxbair.services.flightbooking.domain.util.StringSequenceIdGenerator"
)
private String id;

private String departure;
private String arrival;
private LocalDateTime departureDate;
private LocalDateTime arrivalDate;

@ManyToMany(mappedBy = "flights", fetch = FetchType.LAZY)
private Set<FlightBooking> bookings;

Expand Down Expand Up @@ -95,8 +98,9 @@ public void setBookings(Set<FlightBooking> bookings) {

@Override
public String toString() {
return "Flight [id=" + id + ", departure=" + departure + ", arrival=" + arrival + ", departureDate="
+ departureDate + ", arrivalDate=" + arrivalDate + "]";
return """
Flight [id=%s, departure=%s, arrival=%s, departureDate=%s, arrivalDate=%s]
""".formatted(id, departure, arrival, departureDate, arrivalDate);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import jakarta.persistence.CascadeType;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.JoinTable;
import jakarta.persistence.ManyToMany;
import jakarta.persistence.ManyToOne;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.dxbair.services.flightbooking.domain.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.UniqueConstraint;

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ public Serializable generate(
SharedSessionContractImplementor session, Object obj)
throws HibernateException {

String query = String.format("select %s from %s",
session.getEntityPersister(obj.getClass().getName(), obj)
.getIdentifierPropertyName(),
obj.getClass().getSimpleName());
String query = "select %s from %s".formatted(
session.getEntityPersister(obj.getClass().getName(), obj)
.getIdentifierPropertyName(),
obj.getClass().getSimpleName());

Stream<String> ids = session.createQuery(query).stream();

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Database Settings
###
spring.datasource.url=jdbc:h2:mem:flight-booking;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.platform=h2
spring.sql.init.platform=h2
spring.datasource.username = sa
spring.datasource.password =
spring.datasource.driverClassName = org.h2.Driver
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/application2.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
# Database Settings
###
spring.datasource.url=jdbc:h2:mem:flight-booking;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.platform=h2
spring.sql.init.platform=h2
spring.datasource.username = sa
spring.datasource.password =
spring.datasource.driverClassName = org.h2.Driver
Expand Down