From 38942756ec073bb47d42761eb395ebfae534ab2e Mon Sep 17 00:00:00 2001 From: Peter Hormanns Date: Thu, 2 Mar 2017 14:38:23 +0100 Subject: [PATCH] new service databases --- cust-services/pom.xml | 43 +++++++++- database-services/.gitignore | 13 +++ database-services/pom.xml | 81 +++++++++++++++++++ .../java/de/hsadmin/bo/database/Database.java | 0 .../de/hsadmin/bo/database/DatabaseUser.java | 0 .../de/hsadmin/bo/database/MySqlDatabase.java | 0 .../de/hsadmin/bo/database/MySqlUser.java | 0 .../de/hsadmin/bo/database/PgSqlDatabase.java | 0 .../de/hsadmin/bo/database/PgSqlUser.java | 0 .../service/database/MySqlDatabaseRemote.java | 14 ++++ .../database/MySqlDatabaseServiceLocal.java | 10 +++ .../service/database/MySqlDatabaseVO.java | 13 +++ .../service/database/MySqlUserRemote.java | 14 ++++ .../service/database/MySqlUserService.java | 21 +++++ .../database/MySqlUserServiceLocal.java | 10 +++ .../hsadmin/service/database/MySqlUserVO.java | 13 +++ .../service/database/PgSqlDatabaseRemote.java | 14 ++++ .../database/PgSqlDatabaseServiceLocal.java | 10 +++ .../service/database/PgSqlDatabaseVO.java | 13 +++ .../service/database/PgSqlUserRemote.java | 14 ++++ .../database/PgSqlUserServiceLocal.java | 10 +++ .../hsadmin/service/database/PgSqlUserVO.java | 13 +++ .../xmlrpc/webserver/XmlRpcServlet.properties | 4 + .../src/main/webapp/WEB-INF/web.xml | 22 +++++ .../src/test/tomee/conf/hsadmin.properties | 6 ++ framework/README.md | 40 +++++++++ pom.xml | 1 + 27 files changed, 377 insertions(+), 2 deletions(-) create mode 100644 database-services/.gitignore create mode 100644 database-services/pom.xml rename {cust-services => database-services}/src/main/java/de/hsadmin/bo/database/Database.java (100%) rename {cust-services => database-services}/src/main/java/de/hsadmin/bo/database/DatabaseUser.java (100%) rename {cust-services => database-services}/src/main/java/de/hsadmin/bo/database/MySqlDatabase.java (100%) rename {cust-services => database-services}/src/main/java/de/hsadmin/bo/database/MySqlUser.java (100%) rename {cust-services => database-services}/src/main/java/de/hsadmin/bo/database/PgSqlDatabase.java (100%) rename {cust-services => database-services}/src/main/java/de/hsadmin/bo/database/PgSqlUser.java (100%) create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseRemote.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseServiceLocal.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseVO.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlUserRemote.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlUserService.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlUserServiceLocal.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/MySqlUserVO.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseRemote.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseServiceLocal.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseVO.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/PgSqlUserRemote.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/PgSqlUserServiceLocal.java create mode 100644 database-services/src/main/java/de/hsadmin/service/database/PgSqlUserVO.java create mode 100644 database-services/src/main/resources/org/apache/xmlrpc/webserver/XmlRpcServlet.properties create mode 100644 database-services/src/main/webapp/WEB-INF/web.xml create mode 100644 database-services/src/test/tomee/conf/hsadmin.properties create mode 100644 framework/README.md diff --git a/cust-services/pom.xml b/cust-services/pom.xml index 7b7d422..357f99a 100644 --- a/cust-services/pom.xml +++ b/cust-services/pom.xml @@ -17,7 +17,7 @@ framework 1.0-SNAPSHOT - + org.apache.geronimo.specs geronimo-jpa_2.0_spec 1.1 @@ -48,7 +48,6 @@ - cust-webapp maven-war-plugin @@ -56,6 +55,46 @@ true + + org.apache.maven.plugins + maven-jar-plugin + + + **/XmlRpcServlet.properties + + + + + make-a-jar + compile + + jar + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + attach-artifacts + package + + attach-artifact + + + + + ${project.basedir}/target/cust-webapp-1.0-SNAPSHOT.jar + jar + + + + + + org.apache.openejb.maven tomee-maven-plugin diff --git a/database-services/.gitignore b/database-services/.gitignore new file mode 100644 index 0000000..e774414 --- /dev/null +++ b/database-services/.gitignore @@ -0,0 +1,13 @@ +*.class + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +/target +/.settings +/.classpath +/.project diff --git a/database-services/pom.xml b/database-services/pom.xml new file mode 100644 index 0000000..e6604d7 --- /dev/null +++ b/database-services/pom.xml @@ -0,0 +1,81 @@ + + 4.0.0 + + de.hsadmin + hsadmin-parent + 1.0-SNAPSHOT + + + database-webapp + war + HSAdmin XML-RPC Database Webapp + + + de.hsadmin + framework + 1.0-SNAPSHOT + + + de.hsadmin + cust-webapp + 1.0-SNAPSHOT + + + org.apache.geronimo.specs + geronimo-jpa_2.0_spec + 1.1 + provided + + + org.apache.geronimo.specs + geronimo-ejb_3.0_spec + 1.0.1 + provided + + + org.apache.geronimo.specs + geronimo-validation_1.0_spec + 1.1 + provided + + + org.apache.xmlrpc + xmlrpc-server + 3.1.3 + + + javax.servlet + servlet-api + + + + + + database-webapp + + + maven-war-plugin + + true + + + + org.apache.openejb.maven + tomee-maven-plugin + 1.7.4 + + 1.7.4 + webprofile + false + 8000 + ${project.basedir}/src/test/tomee/conf + + org.postgresql:postgresql:9.4.1212.jre7 + + + + + + diff --git a/cust-services/src/main/java/de/hsadmin/bo/database/Database.java b/database-services/src/main/java/de/hsadmin/bo/database/Database.java similarity index 100% rename from cust-services/src/main/java/de/hsadmin/bo/database/Database.java rename to database-services/src/main/java/de/hsadmin/bo/database/Database.java diff --git a/cust-services/src/main/java/de/hsadmin/bo/database/DatabaseUser.java b/database-services/src/main/java/de/hsadmin/bo/database/DatabaseUser.java similarity index 100% rename from cust-services/src/main/java/de/hsadmin/bo/database/DatabaseUser.java rename to database-services/src/main/java/de/hsadmin/bo/database/DatabaseUser.java diff --git a/cust-services/src/main/java/de/hsadmin/bo/database/MySqlDatabase.java b/database-services/src/main/java/de/hsadmin/bo/database/MySqlDatabase.java similarity index 100% rename from cust-services/src/main/java/de/hsadmin/bo/database/MySqlDatabase.java rename to database-services/src/main/java/de/hsadmin/bo/database/MySqlDatabase.java diff --git a/cust-services/src/main/java/de/hsadmin/bo/database/MySqlUser.java b/database-services/src/main/java/de/hsadmin/bo/database/MySqlUser.java similarity index 100% rename from cust-services/src/main/java/de/hsadmin/bo/database/MySqlUser.java rename to database-services/src/main/java/de/hsadmin/bo/database/MySqlUser.java diff --git a/cust-services/src/main/java/de/hsadmin/bo/database/PgSqlDatabase.java b/database-services/src/main/java/de/hsadmin/bo/database/PgSqlDatabase.java similarity index 100% rename from cust-services/src/main/java/de/hsadmin/bo/database/PgSqlDatabase.java rename to database-services/src/main/java/de/hsadmin/bo/database/PgSqlDatabase.java diff --git a/cust-services/src/main/java/de/hsadmin/bo/database/PgSqlUser.java b/database-services/src/main/java/de/hsadmin/bo/database/PgSqlUser.java similarity index 100% rename from cust-services/src/main/java/de/hsadmin/bo/database/PgSqlUser.java rename to database-services/src/main/java/de/hsadmin/bo/database/PgSqlUser.java diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseRemote.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseRemote.java new file mode 100644 index 0000000..9d44a04 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseRemote.java @@ -0,0 +1,14 @@ +package de.hsadmin.service.database; + +import de.hsadmin.xmlrpc.AbstractRemote; +import de.hsadmin.xmlrpc.Remote; + + +public class MySqlDatabaseRemote extends AbstractRemote implements Remote { + + @Override + protected String getModuleLookup() { + return "MySqlDatabaseServiceLocal"; + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseServiceLocal.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseServiceLocal.java new file mode 100644 index 0000000..5c05d9e --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseServiceLocal.java @@ -0,0 +1,10 @@ +package de.hsadmin.service.database; + +import javax.ejb.Local; + +import de.hsadmin.module.Module; + +@Local +public interface MySqlDatabaseServiceLocal extends Module{ + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseVO.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseVO.java new file mode 100644 index 0000000..948a983 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlDatabaseVO.java @@ -0,0 +1,13 @@ +package de.hsadmin.service.database; + +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.module.ValueObject; +import de.hsadmin.module.impl.AbstractVO; + +public class MySqlDatabaseVO extends AbstractVO implements ValueObject { + + public MySqlDatabaseVO() throws TechnicalException { + super(); + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlUserRemote.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserRemote.java new file mode 100644 index 0000000..133c0e1 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserRemote.java @@ -0,0 +1,14 @@ +package de.hsadmin.service.database; + +import de.hsadmin.xmlrpc.AbstractRemote; +import de.hsadmin.xmlrpc.Remote; + + +public class MySqlUserRemote extends AbstractRemote implements Remote { + + @Override + protected String getModuleLookup() { + return "MySqlUserServiceLocal"; + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlUserService.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserService.java new file mode 100644 index 0000000..ebc76cd --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserService.java @@ -0,0 +1,21 @@ +package de.hsadmin.service.database; + +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.module.impl.AbstractModule; + +@Stateless +public class MySqlUserService extends AbstractModule implements MySqlUserServiceLocal { + + @PersistenceContext(name="hsar") + private EntityManager entityManager; + + @Override + public MySqlUserVO buildVO() throws TechnicalException { + return new MySqlUserVO(); + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlUserServiceLocal.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserServiceLocal.java new file mode 100644 index 0000000..d6cf2fa --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserServiceLocal.java @@ -0,0 +1,10 @@ +package de.hsadmin.service.database; + +import javax.ejb.Local; + +import de.hsadmin.module.Module; + +@Local +public interface MySqlUserServiceLocal extends Module{ + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/MySqlUserVO.java b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserVO.java new file mode 100644 index 0000000..3087d87 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/MySqlUserVO.java @@ -0,0 +1,13 @@ +package de.hsadmin.service.database; + +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.module.ValueObject; +import de.hsadmin.module.impl.AbstractVO; + +public class MySqlUserVO extends AbstractVO implements ValueObject { + + public MySqlUserVO() throws TechnicalException { + super(); + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseRemote.java b/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseRemote.java new file mode 100644 index 0000000..0963211 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseRemote.java @@ -0,0 +1,14 @@ +package de.hsadmin.service.database; + +import de.hsadmin.xmlrpc.AbstractRemote; +import de.hsadmin.xmlrpc.Remote; + + +public class PgSqlDatabaseRemote extends AbstractRemote implements Remote { + + @Override + protected String getModuleLookup() { + return "PgSqlDatabaseServiceLocal"; + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseServiceLocal.java b/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseServiceLocal.java new file mode 100644 index 0000000..7c38376 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseServiceLocal.java @@ -0,0 +1,10 @@ +package de.hsadmin.service.database; + +import javax.ejb.Local; + +import de.hsadmin.module.Module; + +@Local +public interface PgSqlDatabaseServiceLocal extends Module{ + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseVO.java b/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseVO.java new file mode 100644 index 0000000..df776cc --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/PgSqlDatabaseVO.java @@ -0,0 +1,13 @@ +package de.hsadmin.service.database; + +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.module.ValueObject; +import de.hsadmin.module.impl.AbstractVO; + +public class PgSqlDatabaseVO extends AbstractVO implements ValueObject { + + public PgSqlDatabaseVO() throws TechnicalException { + super(); + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserRemote.java b/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserRemote.java new file mode 100644 index 0000000..5b0e61e --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserRemote.java @@ -0,0 +1,14 @@ +package de.hsadmin.service.database; + +import de.hsadmin.xmlrpc.AbstractRemote; +import de.hsadmin.xmlrpc.Remote; + + +public class PgSqlUserRemote extends AbstractRemote implements Remote { + + @Override + protected String getModuleLookup() { + return "PgSqlUserServiceLocal"; + } + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserServiceLocal.java b/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserServiceLocal.java new file mode 100644 index 0000000..0663296 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserServiceLocal.java @@ -0,0 +1,10 @@ +package de.hsadmin.service.database; + +import javax.ejb.Local; + +import de.hsadmin.module.Module; + +@Local +public interface PgSqlUserServiceLocal extends Module{ + +} diff --git a/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserVO.java b/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserVO.java new file mode 100644 index 0000000..501f5c0 --- /dev/null +++ b/database-services/src/main/java/de/hsadmin/service/database/PgSqlUserVO.java @@ -0,0 +1,13 @@ +package de.hsadmin.service.database; + +import de.hsadmin.common.error.TechnicalException; +import de.hsadmin.module.ValueObject; +import de.hsadmin.module.impl.AbstractVO; + +public class PgSqlUserVO extends AbstractVO implements ValueObject { + + public PgSqlUserVO() throws TechnicalException { + super(); + } + +} diff --git a/database-services/src/main/resources/org/apache/xmlrpc/webserver/XmlRpcServlet.properties b/database-services/src/main/resources/org/apache/xmlrpc/webserver/XmlRpcServlet.properties new file mode 100644 index 0000000..d044fd4 --- /dev/null +++ b/database-services/src/main/resources/org/apache/xmlrpc/webserver/XmlRpcServlet.properties @@ -0,0 +1,4 @@ +mysqluser=de.hsadmin.service.database.MySqlUserRemote +mysqldb=de.hsadmin.service.database.MySqlDatabaseRemote +pgsqluser=de.hsadmin.service.database.PgSqlUserRemote +pgsqldb=de.hsadmin.service.database.PgSqlDatabaseRemote \ No newline at end of file diff --git a/database-services/src/main/webapp/WEB-INF/web.xml b/database-services/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..e681660 --- /dev/null +++ b/database-services/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,22 @@ + + + + + XmlRpcServlet + de.hsadmin.xmlrpc.HSXmlRpcServlet + + enabledForExtensions + true + + + + + XmlRpcServlet + /xmlrpc/* + + + + diff --git a/database-services/src/test/tomee/conf/hsadmin.properties b/database-services/src/test/tomee/conf/hsadmin.properties new file mode 100644 index 0000000..5941ad2 --- /dev/null +++ b/database-services/src/test/tomee/conf/hsadmin.properties @@ -0,0 +1,6 @@ +ticketvalidator.class=de.hsadmin.login.TestTicketValidator +cas.validate.url=https://login.hostsharing.net:443/cas/proxyValidate +cas.service.url=https://config.hostsharing.net:443/hsar/backend +accountprefix.hostmaster=hsh01 +accountprefix.customer=hsh00 +domainpostfix.pacdomain=hostsharing.net \ No newline at end of file diff --git a/framework/README.md b/framework/README.md new file mode 100644 index 0000000..1e1a120 --- /dev/null +++ b/framework/README.md @@ -0,0 +1,40 @@ +Entwicklung eines HSAdmin Modul +=============================== + +Für die Klasse werden folgende Klassen/Interfaces angelegt: + +Das Namens-Präfix "Entity" wird durch den spezifischen Modulnamen ersetzt. + +Value-Objekt *EntityVO* +----------------------- + +class **EntityVO** extends _AbstractVO_ implements _ValueObject_ + +Beschreibt das Mapping der Attribute zum persistenten Objekt und +Eigenschaften des Feldes in der GUI bzw. im Skript-Client. + +XML-RPC Schnittstelle *EntityRemote* +------------------------------------ + +class **EntityRemote** extends _AbstractRemote_ implements _Remote_ + +Das Interface _Remote_ gibt die Methoden search, add, update und delete +der HSAdmin-API vor. + +Die abstrakte Implementierung aus _AbstractRemote_ muss in der Regel nur um eine +Implementierung der Methode _getModuleLookup()_ erweitert werden. _getModuleLookup()_ +liefert den Namen des EJB-Local-Interface der Session-Bean (s.u.). + +EJB Schnittstelle *EntityServiceLocal* +-------------------------------------- + +interface **EntityServiceLocal** extends _Module_ + +Entity-spezifische Erweiterung des Interface _Module_. + +EJB Implementierung *EntityService* +----------------------------------- + +class **EntityService** extends _AbstractModule_ implements _EntityServiceLocal_ + +Modul-spezifische Implementierung unter Nutzung der generischen Implementierung aus _AbstactModule_. \ No newline at end of file diff --git a/pom.xml b/pom.xml index 87462df..b4997f7 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,7 @@ db-migration framework cust-services + database-services web cli