Commit 0649065c7ebe0b7964dbc0935f2b2e00ac4b6d29
1 parent
aa62787f
Setup JPA and Hibernate with basic entities (not working though, persistence unit is not created)
Showing
9 changed files
with
224 additions
and
2 deletions
.gitignore
docker/docker-compose.yml
| @@ -15,7 +15,9 @@ services: | @@ -15,7 +15,9 @@ services: | ||
| 15 | - ./wildfly/volumes/conf/:/opt/jboss/wildfly/standalone/conf/ | 15 | - ./wildfly/volumes/conf/:/opt/jboss/wildfly/standalone/conf/ |
| 16 | links: | 16 | links: |
| 17 | - rasa-server | 17 | - rasa-server |
| 18 | + - postgres-db | ||
| 18 | command: /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 --debug | 19 | command: /opt/jboss/wildfly/bin/standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 --debug |
| 20 | + | ||
| 19 | rasa-server: | 21 | rasa-server: |
| 20 | build: ./rasa_nlu | 22 | build: ./rasa_nlu |
| 21 | container_name: rasa_nlu | 23 | container_name: rasa_nlu |
| @@ -25,4 +27,24 @@ services: | @@ -25,4 +27,24 @@ services: | ||
| 25 | volumes: | 27 | volumes: |
| 26 | - ./rasa_nlu/volumes/data/api/:/app/data/api | 28 | - ./rasa_nlu/volumes/data/api/:/app/data/api |
| 27 | - ./rasa_nlu/volumes/logs/:/app/logs/ | 29 | - ./rasa_nlu/volumes/logs/:/app/logs/ |
| 28 | - command: python -m rasa_nlu.server -c config/chatbot_config.json --server_model_dirs=default | ||
| 29 | \ No newline at end of file | 30 | \ No newline at end of file |
| 31 | + command: python -m rasa_nlu.server -c config/chatbot_config.json --server_model_dirs=default | ||
| 32 | + | ||
| 33 | + postgres-db: | ||
| 34 | + container_name: chatbot-postgres | ||
| 35 | + image: postgres | ||
| 36 | + restart: always | ||
| 37 | + expose: | ||
| 38 | + - "5432" | ||
| 39 | + environment: | ||
| 40 | + POSTGRES_USER: 'beuthbot_app' | ||
| 41 | + POSTGRES_PASSWORD: 'VhS7WPVpdYEHYLpf' | ||
| 42 | + POSTGRES_DB: 'beuthbot' | ||
| 43 | + volumes: | ||
| 44 | + - ./postgres/volumes/:/var/lib/postgresql | ||
| 45 | + | ||
| 46 | + adminer: | ||
| 47 | + container_name: adminer_dbmanagement | ||
| 48 | + image: adminer | ||
| 49 | + restart: always | ||
| 50 | + ports: | ||
| 51 | + - "8081:8080" |
docker/wildfly/standalone.xml
| @@ -417,6 +417,32 @@ | @@ -417,6 +417,32 @@ | ||
| 417 | <client-config name="Standard-Client-Config"/> | 417 | <client-config name="Standard-Client-Config"/> |
| 418 | </subsystem> | 418 | </subsystem> |
| 419 | <subsystem xmlns="urn:jboss:domain:weld:3.0"/> | 419 | <subsystem xmlns="urn:jboss:domain:weld:3.0"/> |
| 420 | + <subsystem xmlns="urn:jboss:domain:datasources:1.0"> | ||
| 421 | + <datasources> | ||
| 422 | + <datasource jndi-name="java:/PostgreSqlDS" pool-name="PostgreSqlDS_Pool" enabled="true" jta="false" use-ccm="false"> | ||
| 423 | + <connection-url> | ||
| 424 | + jdbc:postgresql://postgres-db:5432/beuthbot | ||
| 425 | + </connection-url> | ||
| 426 | + <driver-class> | ||
| 427 | + org.postgresql.Driver | ||
| 428 | + </driver-class> | ||
| 429 | + <driver> | ||
| 430 | + postgresql | ||
| 431 | + </driver> | ||
| 432 | + <security> | ||
| 433 | + <user-name>beuthbot_app</user-name> | ||
| 434 | + <password>VhS7WPVpdYEHYLpf</password> | ||
| 435 | + </security> | ||
| 436 | + </datasource> | ||
| 437 | + <drivers> | ||
| 438 | + <driver name="postgresql" module="org.postgresql"> | ||
| 439 | + <xa-datasource-class> | ||
| 440 | + org.postgresql.xa.PGXADataSource | ||
| 441 | + </xa-datasource-class> | ||
| 442 | + </driver> | ||
| 443 | + </drivers> | ||
| 444 | + </datasources> | ||
| 445 | + </subsystem> | ||
| 420 | </profile> | 446 | </profile> |
| 421 | 447 | ||
| 422 | <interfaces> | 448 | <interfaces> |
services/Common/src/main/java/de/bht/beuthbot/model/entities/Entity.java
0 → 100644
| 1 | +package de.bht.beuthbot.model.entities; | ||
| 2 | + | ||
| 3 | +import java.io.Serializable; | ||
| 4 | +import java.util.Date; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * Created by Benjamin Rühl on 19.11.2017. | ||
| 8 | + */ | ||
| 9 | +public interface Entity extends Serializable { | ||
| 10 | + | ||
| 11 | + Long getId(); | ||
| 12 | + | ||
| 13 | + Date getCreationDate(); | ||
| 14 | + | ||
| 15 | + Date getUpdateDate(); | ||
| 16 | +} |
services/Common/src/main/java/de/bht/beuthbot/model/entities/User.java
0 → 100644
services/Global/build.gradle
| @@ -11,7 +11,9 @@ dependencies { | @@ -11,7 +11,9 @@ dependencies { | ||
| 11 | "org.jboss.spec:jboss-javaee-7.0:1.1.0.Final", | 11 | "org.jboss.spec:jboss-javaee-7.0:1.1.0.Final", |
| 12 | "com.google.code.gson:gson:2.8.1", | 12 | "com.google.code.gson:gson:2.8.1", |
| 13 | "org.apache.httpcomponents:httpclient:4.5.3", | 13 | "org.apache.httpcomponents:httpclient:4.5.3", |
| 14 | - "commons-io:commons-io:2.5" | 14 | + "commons-io:commons-io:2.5", |
| 15 | + "org.hibernate:hibernate-core:5.2.12.Final", | ||
| 16 | + "org.hibernate:hibernate-entitymanager:4.3.6.Final" | ||
| 15 | 17 | ||
| 16 | 18 | ||
| 17 | providedCompile "org.slf4j:slf4j-api:1.7.25" | 19 | providedCompile "org.slf4j:slf4j-api:1.7.25" |
services/Global/src/main/java/de/bht/beuthbot/entities/EntityBase.java
0 → 100644
| 1 | +package de.bht.beuthbot.entities; | ||
| 2 | + | ||
| 3 | +import de.bht.beuthbot.model.entities.Entity; | ||
| 4 | + | ||
| 5 | +import javax.persistence.*; | ||
| 6 | +import java.util.Date; | ||
| 7 | +import java.util.Objects; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * Created by Benjamin Rühl on 19.11.2017. | ||
| 11 | + */ | ||
| 12 | +@MappedSuperclass | ||
| 13 | +public class EntityBase implements Entity { | ||
| 14 | + | ||
| 15 | + @Id | ||
| 16 | + @GeneratedValue | ||
| 17 | + protected long id; | ||
| 18 | + | ||
| 19 | + @Temporal(TemporalType.TIMESTAMP) | ||
| 20 | + protected Date creationDate; | ||
| 21 | + | ||
| 22 | + @Temporal(TemporalType.TIMESTAMP) | ||
| 23 | + protected Date updateDate; | ||
| 24 | + | ||
| 25 | + @PrePersist | ||
| 26 | + protected void onCreate() { | ||
| 27 | + creationDate = new Date(); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + @PreUpdate | ||
| 31 | + protected void onUpdate() { | ||
| 32 | + updateDate = new Date(); | ||
| 33 | + } | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public Long getId() { | ||
| 37 | + return null; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + @Override | ||
| 41 | + public Date getCreationDate() { | ||
| 42 | + return creationDate; | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + @Override | ||
| 46 | + public Date getUpdateDate() { | ||
| 47 | + return updateDate; | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + @Override | ||
| 51 | + public boolean equals(Object obj) { | ||
| 52 | + if (this == obj) | ||
| 53 | + return true; | ||
| 54 | + | ||
| 55 | + if (obj == null) | ||
| 56 | + return false; | ||
| 57 | + | ||
| 58 | + if (obj.getClass() != getClass()) | ||
| 59 | + return false; | ||
| 60 | + | ||
| 61 | + EntityBase other = (EntityBase)obj; | ||
| 62 | + | ||
| 63 | + if (other.getId() == 0 && getId() == 0) | ||
| 64 | + return super.equals(obj); | ||
| 65 | + | ||
| 66 | + return other.getId() == getId(); | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + @Override | ||
| 70 | + public int hashCode(){ | ||
| 71 | + return Objects.hash(id); | ||
| 72 | + } | ||
| 73 | +} |
services/Global/src/main/java/de/bht/beuthbot/entities/User.java
0 → 100644
| 1 | +package de.bht.beuthbot.entities; | ||
| 2 | + | ||
| 3 | +import javax.persistence.Entity; | ||
| 4 | +import javax.persistence.Table; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * Created by Benjamin Rühl on 19.11.2017. | ||
| 8 | + */ | ||
| 9 | +@Entity | ||
| 10 | +@Table | ||
| 11 | +public class User extends EntityBase implements de.bht.beuthbot.model.entities.User { | ||
| 12 | + | ||
| 13 | + private String facebookUserId; | ||
| 14 | + private String telegramUserId; | ||
| 15 | + private boolean isVegetarian; | ||
| 16 | + | ||
| 17 | + @Override | ||
| 18 | + public String getFacebookUserId() { | ||
| 19 | + return facebookUserId; | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + @Override | ||
| 23 | + public String getTelegramUserId() { | ||
| 24 | + return telegramUserId; | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + @Override | ||
| 28 | + public boolean isVegetarian() { | ||
| 29 | + return isVegetarian; | ||
| 30 | + } | ||
| 31 | + | ||
| 32 | + public void setFacebookUserId(String facebookUserId) { | ||
| 33 | + this.facebookUserId = facebookUserId; | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + public void setTelegramUserId(String telegramUserId) { | ||
| 37 | + this.telegramUserId = telegramUserId; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + public void setVegetarian(boolean vegetarian) { | ||
| 41 | + isVegetarian = vegetarian; | ||
| 42 | + } | ||
| 43 | +} |
services/Global/src/main/webapp/META-INF/persistence.xml
0 → 100644
| 1 | +<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" | ||
| 2 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 3 | + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence | ||
| 4 | + http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" | ||
| 5 | + version="2.1"> | ||
| 6 | + | ||
| 7 | + <persistence-unit name="de.bht.beuthbot.jpa" transaction-type="RESOURCE_LOCAL"> | ||
| 8 | + | ||
| 9 | + <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> | ||
| 10 | + | ||
| 11 | + <properties> | ||
| 12 | + <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" /> <!-- DB Driver --> | ||
| 13 | + <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://postgres-server:5432/beuthbot" /> <!-- BD Name --> | ||
| 14 | + <property name="javax.persistence.jdbc.user" value="beuthbot_app" /> <!-- DB User --> | ||
| 15 | + <property name="javax.persistence.jdbc.password" value="VhS7WPVpdYEHYLpf" /> <!-- DB Password --> | ||
| 16 | + | ||
| 17 | + <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/> <!-- DB Dialect --> | ||
| 18 | + <property name="hibernate.hbm2ddl.auto" value="create-drop" /> <!-- create / create-drop / update / none --> | ||
| 19 | + <property name="hibernate.archive.autodetection" value="class"/> | ||
| 20 | + | ||
| 21 | + <property name="hibernate.show_sql" value="true" /> <!-- Show SQL in console --> | ||
| 22 | + <property name="hibernate.format_sql" value="true" /> <!-- Show SQL formatted --> | ||
| 23 | + </properties> | ||
| 24 | + | ||
| 25 | + </persistence-unit> | ||
| 26 | + | ||
| 27 | +</persistence> | ||
| 0 | \ No newline at end of file | 28 | \ No newline at end of file |