This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.HashSet; | |
import java.util.LinkedList; | |
import java.util.List; | |
import java.util.Queue; | |
import java.util.Set; | |
import java.util.stream.Collectors; | |
public class App { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM ubuntu:latest | |
WORKDIR /opt/backend | |
COPY . . | |
RUN su - | |
RUN apt-get update | |
RUN apt-get install sudo -y | |
RUN sudo apt install curl -y | |
RUN curl -sL https://deb.nodesource.com/setup_17.x -o nodesource_setup.sh | |
RUN sudo bash nodesource_setup.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Build layer | |
FROM maven:3.6.3-adoptopenjdk-11 as build | |
LABEL maintainer="ehabqadah@gmail.com" | |
ARG GIT_COMMIT | |
ARG ENVIRONMENT | |
LABEL service=demo \ | |
stage=build \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
spring.jpa.generate-ddl=true | |
spring.jpa.hibernate.ddl-auto=none | |
spring.jpa.hibernate.jdbc.time_zone=UTC | |
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect | |
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/${MYSQL_DB:local_db}?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC | |
spring.datasource.username=${MYSQL_USER:local_user} | |
spring.datasource.password=${MYSQL_PASSWORD:P@ssowrd1} | |
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver | |
spring.jpa.properties.hibernate.show_sql=${SHOW_SQL:false} | |
spring.jpa.properties.hibernate.jdbc.batch_size=${JDBC_BACTH_SIZE:10} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
management.health.probes.enabled=true | |
management.endpoint.health.show-details=always | |
management.endpoint.health.group.readiness.include=* | |
management.endpoint.health.group.readiness.show-details=always | |
management.endpoint.health.group.liveness.include=ping | |
management.endpoint.health.group.liveness.show-details=always |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
...... | |
livenessProbe: | |
httpGet: | |
path: /actuator/health/liveness | |
port: 8080 | |
initialDelaySeconds: 50 | |
periodSeconds: 10 | |
timeoutSeconds: 2 | |
readinessProbe: | |
httpGet: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Incoming DTO to create a new record of {@link com.qadah.demo.data.model.Order} | |
* | |
* @author Ehab Qadah | |
*/ | |
public class OrderIncomingDto { | |
@JsonProperty(required = true) | |
@NotEmpty | |
@NotBlank |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* * Handle all exceptions and java bean validation errors | |
* for all endpoints income data that use the @Valid annotation | |
* | |
* @author Ehab Qadah | |
*/ | |
@ControllerAdvice | |
public class GeneralExceptionHandler extends ResponseEntityExceptionHandler { | |
public static final String ACCESS_DENIED = "Access denied!"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* A custom Id generator based on combination of long time hex string and UUID | |
* | |
* @author Ehab Qadah | |
*/ | |
public class BaseIdentifierGenerator extends UUIDGenerator { | |
private static final int NUMBER_OF_CHARS_IN_ID_PART = -5; | |
@Override |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* <p> Root entity for object persistence via JPA.</p> | |
* | |
* @author Ehab Qadah | |
*/ | |
@MappedSuperclass | |
public abstract class BaseEntity { | |
@Id | |
@GeneratedValue(generator = "custom-generator", |
NewerOlder