From 8860e50f52943a8d695d91a235e91267ae5eae30 Mon Sep 17 00:00:00 2001 From: Lumijiez Date: Sat, 23 Nov 2024 19:47:42 +0200 Subject: [PATCH] Setup Hibernate for DB Nodes + PostgreSQL --- SymphonyDatabaseNode/pom.xml | 29 ++++++++++++ .../main/java/io/github/lumijiez/Data.java | 23 +++++++++ .../main/java/io/github/lumijiez/Main.java | 6 +++ .../main/java/io/github/lumijiez/User.java | 47 +++++++++++++++++++ .../main/resources/META-INF/persistence.xml | 40 ++++++++++++++++ .../io/github/lumijiez/BrokerConnector.java | 2 - config/postgres/init.sql | 0 config/postgres/postgresql.conf | 0 docker-compose.yml | 31 +++++++++--- 9 files changed, 170 insertions(+), 8 deletions(-) create mode 100644 SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Data.java create mode 100644 SymphonyDatabaseNode/src/main/java/io/github/lumijiez/User.java create mode 100644 SymphonyDatabaseNode/src/main/resources/META-INF/persistence.xml create mode 100644 config/postgres/init.sql create mode 100644 config/postgres/postgresql.conf diff --git a/SymphonyDatabaseNode/pom.xml b/SymphonyDatabaseNode/pom.xml index bb27616..b1f6fd8 100644 --- a/SymphonyDatabaseNode/pom.xml +++ b/SymphonyDatabaseNode/pom.xml @@ -15,6 +15,35 @@ gson 2.11.0 + + + org.hibernate.orm + hibernate-core + 6.6.3.Final + + + + jakarta.persistence + jakarta.persistence-api + 3.2.0 + + + + org.postgresql + postgresql + 42.7.4 + + + + org.apache.logging.log4j + log4j-api + 2.24.2 + + + org.apache.logging.log4j + log4j-core + 2.24.2 + diff --git a/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Data.java b/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Data.java new file mode 100644 index 0000000..ebddbb2 --- /dev/null +++ b/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Data.java @@ -0,0 +1,23 @@ +package io.github.lumijiez; + +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.Persistence; + +public class Data { + private static final EntityManagerFactory entityManagerFactory; + + static { + entityManagerFactory = Persistence.createEntityManagerFactory("mainUnit"); + } + + public static EntityManager getEntityManager() { + return entityManagerFactory.createEntityManager(); + } + + public static void close() { + if (entityManagerFactory != null && entityManagerFactory.isOpen()) { + entityManagerFactory.close(); + } + } +} diff --git a/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Main.java b/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Main.java index c95c90c..deedd96 100644 --- a/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Main.java +++ b/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/Main.java @@ -1,7 +1,13 @@ package io.github.lumijiez; +import jakarta.persistence.EntityManager; + public class Main { public static void main(String[] args) { System.out.println("Node up"); + EntityManager em = Data.getEntityManager(); + + System.out.println("Connected to DB << symphony >>"); + em.close(); } } \ No newline at end of file diff --git a/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/User.java b/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/User.java new file mode 100644 index 0000000..1539429 --- /dev/null +++ b/SymphonyDatabaseNode/src/main/java/io/github/lumijiez/User.java @@ -0,0 +1,47 @@ +package io.github.lumijiez; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name="users") +public class User { + + @Id + private Long id; + private String name; + private String email; + + public User() {} + + public User(Long id, String name, String email) { + this.id = id; + this.name = name; + this.email = email; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } +} diff --git a/SymphonyDatabaseNode/src/main/resources/META-INF/persistence.xml b/SymphonyDatabaseNode/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..cb2e254 --- /dev/null +++ b/SymphonyDatabaseNode/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,40 @@ + + + + org.hibernate.jpa.HibernatePersistenceProvider + + io.github.lumijiez.User + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SymphonyManager/src/main/java/io/github/lumijiez/BrokerConnector.java b/SymphonyManager/src/main/java/io/github/lumijiez/BrokerConnector.java index 86919cf..03d972b 100644 --- a/SymphonyManager/src/main/java/io/github/lumijiez/BrokerConnector.java +++ b/SymphonyManager/src/main/java/io/github/lumijiez/BrokerConnector.java @@ -48,8 +48,6 @@ public class BrokerConnector { System.out.println("Connected to RabbitMQ and queue declared."); DeliverCallback deliverCallback = (consumerTag, delivery) -> { - System.out.println(new String(delivery.getBody(), StandardCharsets.UTF_8)); - channel.basicAck(delivery.getEnvelope().getDeliveryTag(), false); }; diff --git a/config/postgres/init.sql b/config/postgres/init.sql new file mode 100644 index 0000000..e69de29 diff --git a/config/postgres/postgresql.conf b/config/postgres/postgresql.conf new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml index c500cbf..de06202 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -38,16 +38,35 @@ services: - "8084:8084" networks: - symphony-network + depends_on: + - postgres_db - symphony-dbnode2: - container_name: dbnode2 - build: - context: ./SymphonyDatabaseNode - dockerfile: Dockerfile +# symphony-dbnode2: +# container_name: dbnode2 +# build: +# context: ./SymphonyDatabaseNode +# dockerfile: Dockerfile +# ports: +# - "8085:8085" +# networks: +# - symphony-network +# depends_on: +# - postgres_db + + postgres_db: + image: postgres:latest + container_name: postgres_db + environment: + - POSTGRES_USER=symphony + - POSTGRES_PASSWORD=symphony + - POSTGRES_DB=symphony + volumes: + - ./config/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql ports: - - "8085:8085" + - "5432:5432" networks: - symphony-network + restart: always rabbitmq: image: "rabbitmq:management"