Skip to content

Commit 8758dff

Browse files
committed
Implement microservices
1 parent 2722ef6 commit 8758dff

110 files changed

Lines changed: 4490 additions & 227 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

checkout-service/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ EXPOSE 8080
1212
COPY --from=mvn /usr/src/online-shop/target/runner/meecrowave-core-runner.jar /opt/meecrowave-runner.jar
1313
COPY --from=mvn /usr/src/online-shop/target/checkout-service.war /opt/checkout-service.war
1414
COPY src/main/resources/log4j2.xml /opt/log4j2.xml
15-
ENTRYPOINT ["java", "--illegal-access=permit", "-Djava.net.preferIPv4Stack=true", "-Dlog4j2.configurationFile=/opt/log4j2.xml", "-jar", "/opt/meecrowave-runner.jar", "--webapp", "/opt/checkout-service.war"]
15+
ENTRYPOINT ["java", "--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", "--illegal-access=permit", "-Djava.net.preferIPv4Stack=true", "-Dlog4j2.configurationFile=/opt/log4j2.xml", "-jar", "/opt/meecrowave-runner.jar", "--webapp", "/opt/checkout-service.war"]

checkout-service/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@
145145
<version>1.19.3</version>
146146
<scope>test</scope>
147147
</dependency>
148+
<dependency>
149+
<groupId>org.flywaydb</groupId>
150+
<artifactId>flyway-core</artifactId>
151+
<version>9.21.0</version>
152+
<scope>test</scope>
153+
</dependency>
148154
<dependency>
149155
<groupId>au.com.dius.pact.consumer</groupId>
150156
<artifactId>junit5</artifactId>

checkout-service/src/main/java/de/openknowledge/sample/checkout/domain/offer/AbstractPaymentEntity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,15 @@
2525
import jakarta.persistence.Inheritance;
2626
import jakarta.persistence.JoinColumn;
2727
import jakarta.persistence.OneToOne;
28+
import jakarta.persistence.SequenceGenerator;
2829

2930
@Entity
3031
@Inheritance(strategy = TABLE_PER_CLASS)
3132
public abstract class AbstractPaymentEntity<P extends Payment> {
3233

3334
@Id
34-
@GeneratedValue
35+
@SequenceGenerator(name = "SEQ_PAYMENT")
36+
@GeneratedValue(generator = "SEQ_PAYMENT")
3537
@Column(name = "PAY_ID")
3638
private long id;
3739
@OneToOne

checkout-service/src/main/java/de/openknowledge/sample/checkout/domain/offer/OfferAggregate.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import jakarta.persistence.JoinColumn;
4141
import jakarta.persistence.NamedQuery;
4242
import jakarta.persistence.OneToOne;
43+
import jakarta.persistence.SequenceGenerator;
4344
import jakarta.persistence.Table;
4445

4546
@Entity
@@ -50,7 +51,8 @@ public class OfferAggregate {
5051
public static final String FIND_BY_OFFER_NUMBER = "OfferAggregate.findByOfferNumber";
5152

5253
@Id
53-
@GeneratedValue
54+
@SequenceGenerator(name = "SEQ_OFFER")
55+
@GeneratedValue(generator = "SEQ_OFFER")
5456
@Column(name = "OFF_ID")
5557
private long id;
5658

checkout-service/src/main/java/de/openknowledge/sample/checkout/infrastructure/jpa/EntityManagerProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public EntityManagerFactory createEntityManagerFactory() {
4848
ofNullable(getenv("JAKARTA_PERSISTENCE_JDBC_URL")).ifPresent(setUrl);
4949
ofNullable(getenv("JAKARTA_PERSISTENCE_JDBC_USER")).ifPresent(setUser);
5050
ofNullable(getenv("JAKARTA_PERSISTENCE_JDBC_PASSWORD")).ifPresent(setPassword);
51-
return Persistence.createEntityManagerFactory("offer-service", properties);
51+
return Persistence.createEntityManagerFactory("checkout-service", properties);
5252
}
5353

5454
public void closeEntityManagerFactory(@Disposes EntityManagerFactory entityManagerFactory) {

checkout-service/src/main/java/de/openknowledge/sample/checkout/infrastructure/violation/DefaultPath.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.util.function.Consumer;
2727

2828
import javax.validation.Path;
29-
import javax.validation.Path.Node;
3029

3130
public class DefaultPath implements Path {
3231

checkout-service/src/main/resources/META-INF/persistence.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
44
xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"
55
version="3.0">
6-
<persistence-unit name="offer-service">
6+
<persistence-unit name="checkout-service">
77
<properties>
8-
<property name="jakarta.persistence.schema-generation.database.action" value="drop-and-create"/>
9-
<property name="hibernate.show_sql" value="true"/>
8+
<property name="hibernate.show_sql" value="false"/>
109
</properties>
1110
</persistence-unit>
1211
</persistence>
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
create sequence SEQ_PAYMENT start with 1 increment by 50;
2+
create sequence SEQ_OFFER start with 1 increment by 50;
3+
create table TAB_CREDIT_CARD_PAYMENT (PAY_EXPIRY_MONTH integer, PAY_EXPIRY_YEAR integer, PAY_ID bigint not null, PAY_OFF_ID bigint unique, PAY_CARD_VERIFICATION_NUMBER varchar(255), PAY_NAME varchar(255), PAY_NUMBER varchar(255), primary key (PAY_ID));
4+
create table TAB_DIRECT_BILLING_PAYMENT (PAY_ID bigint not null, PAY_OFF_ID bigint unique, PAY_BIC varchar(255), PAY_IBAN varchar(255), PAY_NAME varchar(255), primary key (PAY_ID));
5+
create table TAB_EMAIL_PAYMENT (PAY_ID bigint not null, PAY_OFF_ID bigint unique, PAY_EMAIL_ADDRESS varchar(255), primary key (PAY_ID));
6+
create table TAB_OFFER (OFF_ID bigint not null, payment_PAY_ID bigint unique, OFF_BILLING_ADDRESS_CITY varchar(255), OFF_BILLING_ADDRESS_HOUSE_NUMBER varchar(255), OFF_BILLING_ADDRESS_STREET varchar(255), OFF_BILLING_ADDRESS_ZIP_CODE varchar(255), OFF_CUSTOMER_NUMBER varchar(255), OFF_DELIVERY_ADDRESS_CITY varchar(255), OFF_DELIVERY_ADDRESS_HOUSE_NUMBER varchar(255), OFF_DELIVERY_ADDRESS_STREET varchar(255), OFF_DELIVERY_ADDRESS_ZIP_CODE varchar(255), OFF_OFFER_NUMBER varchar(255), primary key (OFF_ID));
7+
create table TAB_OFFER_ITEM (OFI_QUANTITY integer, OFI_OFF_ID bigint not null, OFI_PRODUCT_NUMBER varchar(255));
8+
alter table if exists TAB_CREDIT_CARD_PAYMENT add constraint FK_CC_PAY_OFF_ID foreign key (PAY_OFF_ID) references TAB_OFFER;
9+
alter table if exists TAB_DIRECT_BILLING_PAYMENT add constraint FK_DB_PAY_OFF_ID foreign key (PAY_OFF_ID) references TAB_OFFER;
10+
alter table if exists TAB_EMAIL_PAYMENT add constraint FK_EM_PAY_OFF_ID foreign key (PAY_OFF_ID) references TAB_OFFER;
11+
alter table if exists TAB_OFFER_ITEM add constraint FK_OFI_OFF_ID foreign key (OFI_OFF_ID) references TAB_OFFER;

checkout-service/src/test/java/de/openknowledge/sample/checkout/application/AddressesTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.apache.meecrowave.Meecrowave;
3030
import org.apache.meecrowave.junit5.MeecrowaveConfig;
3131
import org.apache.meecrowave.testing.ConfigurationInject;
32+
import org.flywaydb.core.Flyway;
3233
import org.junit.jupiter.api.BeforeAll;
3334
import org.junit.jupiter.api.BeforeEach;
3435
import org.junit.jupiter.api.Test;
@@ -53,6 +54,15 @@ public static void configureDatabase() {
5354
System.setProperty("jakarta.persistence.jdbc.url", postgresqlContainer.getJdbcUrl());
5455
System.setProperty("jakarta.persistence.jdbc.user", postgresqlContainer.getUsername());
5556
System.setProperty("jakarta.persistence.jdbc.password", postgresqlContainer.getPassword());
57+
Flyway flyway = Flyway
58+
.configure()
59+
.dataSource(
60+
postgresqlContainer.getJdbcUrl(),
61+
postgresqlContainer.getUsername(),
62+
postgresqlContainer.getPassword())
63+
.cleanDisabled(false).load();
64+
flyway.clean();
65+
flyway.migrate();
5666
}
5767

5868
@BeforeEach

checkout-service/src/test/java/de/openknowledge/sample/checkout/application/CustomerCareConsumerTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.apache.meecrowave.Meecrowave;
2929
import org.apache.meecrowave.junit5.MeecrowaveConfig;
3030
import org.apache.meecrowave.testing.ConfigurationInject;
31+
import org.flywaydb.core.Flyway;
3132
import org.junit.jupiter.api.BeforeAll;
3233
import org.junit.jupiter.api.BeforeEach;
3334
import org.junit.jupiter.api.Test;
@@ -65,6 +66,15 @@ public static void configureDatabase() {
6566
System.setProperty("jakarta.persistence.jdbc.url", postgresqlContainer.getJdbcUrl());
6667
System.setProperty("jakarta.persistence.jdbc.user", postgresqlContainer.getUsername());
6768
System.setProperty("jakarta.persistence.jdbc.password", postgresqlContainer.getPassword());
69+
Flyway flyway = Flyway
70+
.configure()
71+
.dataSource(
72+
postgresqlContainer.getJdbcUrl(),
73+
postgresqlContainer.getUsername(),
74+
postgresqlContainer.getPassword())
75+
.cleanDisabled(false).load();
76+
flyway.clean();
77+
flyway.migrate();
6878
}
6979

7080
@BeforeEach

0 commit comments

Comments
 (0)