From adbcd019038bc143d736b5166d750cbece2c6cea Mon Sep 17 00:00:00 2001 From: Markus Kreth Date: Sun, 20 Jan 2019 20:17:31 +0100 Subject: [PATCH] Refactoring HibernateHolder --- .../AbstractHibernateConfiguration.java | 42 +++++++++++ .../clubhelper/H2FileConfiguration.java | 13 ++++ .../clubhelper/H2MemoryConfiguration.java | 22 ++++++ .../clubhelper/HibernateConfiguration.java | 9 +++ .../vaadin/clubhelper/HibernateHolder.java | 74 +------------------ .../clubhelper/MysqlLocalConfiguration.java | 31 ++++++++ .../clubhelper/MysqlTestConfiguration.java | 19 +++++ 7 files changed, 138 insertions(+), 72 deletions(-) create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/AbstractHibernateConfiguration.java create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/H2FileConfiguration.java create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/H2MemoryConfiguration.java create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/HibernateConfiguration.java create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/MysqlLocalConfiguration.java create mode 100644 src/test/java/de/kreth/vaadin/clubhelper/MysqlTestConfiguration.java diff --git a/src/test/java/de/kreth/vaadin/clubhelper/AbstractHibernateConfiguration.java b/src/test/java/de/kreth/vaadin/clubhelper/AbstractHibernateConfiguration.java new file mode 100644 index 0000000..830b8e7 --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/AbstractHibernateConfiguration.java @@ -0,0 +1,42 @@ +package de.kreth.vaadin.clubhelper; + +import org.hibernate.cfg.Configuration; + +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Adress; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Altersgruppe; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Attendance; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubeventHasPerson; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Contact; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.DeletedEntry; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Persongroup; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Relative; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.StartpassStartrechte; +import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Version; + +public class AbstractHibernateConfiguration implements HibernateConfiguration { + + @Override + public void configure(Configuration configuration) { + configuration.addAnnotatedClass(Adress.class); + configuration.addAnnotatedClass(Altersgruppe.class); + configuration.addAnnotatedClass(Attendance.class); + configuration.addAnnotatedClass(Contact.class); + configuration.addAnnotatedClass(DeletedEntry.class); + configuration.addAnnotatedClass(GroupDef.class); + configuration.addAnnotatedClass(Person.class); + configuration.addAnnotatedClass(Persongroup.class); + configuration.addAnnotatedClass(Pflicht.class); + configuration.addAnnotatedClass(Relative.class); + configuration.addAnnotatedClass(Startpass.class); + configuration.addAnnotatedClass(StartpassStartrechte.class); + configuration.addAnnotatedClass(Version.class); + configuration.addInputStream(getClass().getResourceAsStream("/schema/ClubEvent.hbm.xml")); + configuration.addAnnotatedClass(ClubeventHasPerson.class); + + } + +} diff --git a/src/test/java/de/kreth/vaadin/clubhelper/H2FileConfiguration.java b/src/test/java/de/kreth/vaadin/clubhelper/H2FileConfiguration.java new file mode 100644 index 0000000..ff46fd8 --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/H2FileConfiguration.java @@ -0,0 +1,13 @@ +package de.kreth.vaadin.clubhelper; + +import java.io.File; + +public class H2FileConfiguration extends H2MemoryConfiguration { + + @Override + public String getUrl() { + File f = new File("./database"); + System.out.println("Databasepath: " + f.getAbsolutePath()); + return "jdbc:h2:file:" + f.getAbsolutePath(); + } +} diff --git a/src/test/java/de/kreth/vaadin/clubhelper/H2MemoryConfiguration.java b/src/test/java/de/kreth/vaadin/clubhelper/H2MemoryConfiguration.java new file mode 100644 index 0000000..fe2b4fa --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/H2MemoryConfiguration.java @@ -0,0 +1,22 @@ +package de.kreth.vaadin.clubhelper; + +import org.hibernate.cfg.Configuration; + +public class H2MemoryConfiguration extends AbstractHibernateConfiguration { + + @Override + public void configure(Configuration configuration) { + super.configure(configuration); + configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); + configuration.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); + + configuration.setProperty("hibernate.connection.url", getUrl()); + configuration.setProperty("hibernate.hbm2ddl.auto", "update"); + configuration.setProperty("spring.jpa.hibernate.ddl-auto", "update"); + } + + public String getUrl() { + return "jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE"; + } + +} diff --git a/src/test/java/de/kreth/vaadin/clubhelper/HibernateConfiguration.java b/src/test/java/de/kreth/vaadin/clubhelper/HibernateConfiguration.java new file mode 100644 index 0000000..7d0a8b5 --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/HibernateConfiguration.java @@ -0,0 +1,9 @@ +package de.kreth.vaadin.clubhelper; + +import org.hibernate.cfg.Configuration; + +public interface HibernateConfiguration { + + void configure(Configuration configuration); + +} \ No newline at end of file diff --git a/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java b/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java index 3efee8d..f950747 100644 --- a/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java +++ b/src/test/java/de/kreth/vaadin/clubhelper/HibernateHolder.java @@ -1,24 +1,7 @@ package de.kreth.vaadin.clubhelper; -import java.io.File; - import org.hibernate.cfg.Configuration; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Adress; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Altersgruppe; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Attendance; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.ClubeventHasPerson; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Contact; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.DeletedEntry; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.GroupDef; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Person; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Persongroup; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Pflicht; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Relative; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Startpass; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.StartpassStartrechte; -import de.kreth.vaadin.clubhelper.vaadinclubhelper.data.Version; - public enum HibernateHolder { INSTANCE; @@ -26,65 +9,12 @@ public enum HibernateHolder { private org.hibernate.cfg.Configuration createConfig() { Configuration configuration = new Configuration(); - configuration.addAnnotatedClass(Adress.class); - configuration.addAnnotatedClass(Altersgruppe.class); - configuration.addAnnotatedClass(Attendance.class); - configuration.addAnnotatedClass(Contact.class); - configuration.addAnnotatedClass(DeletedEntry.class); - configuration.addAnnotatedClass(GroupDef.class); - configuration.addAnnotatedClass(Person.class); - configuration.addAnnotatedClass(Persongroup.class); - configuration.addAnnotatedClass(Pflicht.class); - configuration.addAnnotatedClass(Relative.class); - configuration.addAnnotatedClass(Startpass.class); - configuration.addAnnotatedClass(StartpassStartrechte.class); - configuration.addAnnotatedClass(Version.class); - configuration.addInputStream(getClass().getResourceAsStream("/schema/ClubEvent.hbm.xml")); - configuration.addAnnotatedClass(ClubeventHasPerson.class); - -// mysqlLocal(configuration); - h2Memory(configuration); + HibernateConfiguration config = new H2MemoryConfiguration(); + config.configure(configuration); return configuration; } - void h2File(Configuration configuration) { - File f = new File("./database"); - System.out.println("Databasepath: " + f.getAbsolutePath()); - configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); - configuration.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); - configuration.setProperty("hibernate.connection.url", "jdbc:h2:file:" + f.getAbsolutePath()); - configuration.setProperty("hibernate.hbm2ddl.auto", "create"); - } - - void mysqlTest(Configuration configuration) { - configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect"); -// configuration.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver"); - configuration.setProperty("hibernate.connection.url", - "jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=utf8&serverTimezone=Europe/Berlin"); - configuration.setProperty("hibernate.connection.username", "markus"); - configuration.setProperty("hibernate.connection.password", "0773"); - configuration.setProperty("hibernate.hbm2ddl.auto", "update"); - configuration.setProperty("spring.jpa.hibernate.ddl-auto", "update"); - } - - void mysqlLocal(Configuration configuration) { - configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect"); - configuration.setProperty("hibernate.connection.url", - "jdbc:mysql://localhost/clubhelper?useUnicode=yes&characterEncoding=utf8&serverTimezone=Europe/Berlin"); - configuration.setProperty("hibernate.connection.username", "markus"); - configuration.setProperty("hibernate.connection.password", "0773"); - } - - void h2Memory(Configuration configuration) { - - configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); - configuration.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); - - configuration.setProperty("hibernate.connection.url", "jdbc:h2:mem:test;DB_CLOSE_ON_EXIT=FALSE"); - configuration.setProperty("hibernate.hbm2ddl.auto", "create"); - } - public static Configuration configuration() { return INSTANCE.configuration; } diff --git a/src/test/java/de/kreth/vaadin/clubhelper/MysqlLocalConfiguration.java b/src/test/java/de/kreth/vaadin/clubhelper/MysqlLocalConfiguration.java new file mode 100644 index 0000000..cd9fb0b --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/MysqlLocalConfiguration.java @@ -0,0 +1,31 @@ +package de.kreth.vaadin.clubhelper; + +import org.hibernate.cfg.Configuration; + +public class MysqlLocalConfiguration extends AbstractHibernateConfiguration { + + @Override + public void configure(Configuration configuration) { + super.configure(configuration); + configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL8Dialect"); +// configuration.setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver"); + configuration.setProperty("hibernate.connection.url", getUrl()); + configuration.setProperty("hibernate.connection.username", getUsername()); + configuration.setProperty("hibernate.connection.password", getPassword()); + configuration.setProperty("hibernate.hbm2ddl.auto", "update"); + configuration.setProperty("spring.jpa.hibernate.ddl-auto", "update"); + } + + public String getPassword() { + return "0773"; + } + + public String getUsername() { + return "markus"; + } + + public String getUrl() { + return "jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=utf8&serverTimezone=Europe/Berlin"; + } + +} diff --git a/src/test/java/de/kreth/vaadin/clubhelper/MysqlTestConfiguration.java b/src/test/java/de/kreth/vaadin/clubhelper/MysqlTestConfiguration.java new file mode 100644 index 0000000..c5f9a5d --- /dev/null +++ b/src/test/java/de/kreth/vaadin/clubhelper/MysqlTestConfiguration.java @@ -0,0 +1,19 @@ +package de.kreth.vaadin.clubhelper; + +public class MysqlTestConfiguration extends MysqlLocalConfiguration { + + @Override + public String getUrl() { + return "jdbc:mysql://localhost/clubhelper?useUnicode=yes&characterEncoding=utf8&serverTimezone=Europe/Berlin"; + } + + @Override + public String getUsername() { + return "markus"; + } + + @Override + public String getPassword() { + return "0773"; + } +}