new service databases

This commit is contained in:
Peter Hormanns 2017-03-02 14:38:23 +01:00
parent bf0f8816ff
commit 38942756ec
27 changed files with 377 additions and 2 deletions

View File

@ -17,7 +17,7 @@
<artifactId>framework</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_2.0_spec</artifactId>
<version>1.1</version>
@ -48,7 +48,6 @@
</dependency>
</dependencies>
<build>
<finalName>cust-webapp</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
@ -56,6 +55,46 @@
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/XmlRpcServlet.properties</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>make-a-jar</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.basedir}/target/cust-webapp-1.0-SNAPSHOT.jar</file>
<type>jar</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.openejb.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>

13
database-services/.gitignore vendored Normal file
View File

@ -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

81
database-services/pom.xml Normal file
View File

@ -0,0 +1,81 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.hsadmin</groupId>
<artifactId>hsadmin-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>database-webapp</artifactId>
<packaging>war</packaging>
<name>HSAdmin XML-RPC Database Webapp</name>
<dependencies>
<dependency>
<groupId>de.hsadmin</groupId>
<artifactId>framework</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>de.hsadmin</groupId>
<artifactId>cust-webapp</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jpa_2.0_spec</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-ejb_3.0_spec</artifactId>
<version>1.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-validation_1.0_spec</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.xmlrpc</groupId>
<artifactId>xmlrpc-server</artifactId>
<version>3.1.3</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<finalName>database-webapp</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.openejb.maven</groupId>
<artifactId>tomee-maven-plugin</artifactId>
<version>1.7.4</version>
<configuration>
<tomeeVersion>1.7.4</tomeeVersion>
<tomeeClassifier>webprofile</tomeeClassifier>
<debug>false</debug>
<debugPort>8000</debugPort>
<config>${project.basedir}/src/test/tomee/conf</config>
<libs>
<lib>org.postgresql:postgresql:9.4.1212.jre7</lib>
</libs>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,14 @@
package de.hsadmin.service.database;
import de.hsadmin.xmlrpc.AbstractRemote;
import de.hsadmin.xmlrpc.Remote;
public class MySqlDatabaseRemote extends AbstractRemote<MySqlDatabaseVO> implements Remote {
@Override
protected String getModuleLookup() {
return "MySqlDatabaseServiceLocal";
}
}

View File

@ -0,0 +1,10 @@
package de.hsadmin.service.database;
import javax.ejb.Local;
import de.hsadmin.module.Module;
@Local
public interface MySqlDatabaseServiceLocal extends Module<MySqlDatabaseVO>{
}

View File

@ -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();
}
}

View File

@ -0,0 +1,14 @@
package de.hsadmin.service.database;
import de.hsadmin.xmlrpc.AbstractRemote;
import de.hsadmin.xmlrpc.Remote;
public class MySqlUserRemote extends AbstractRemote<MySqlUserVO> implements Remote {
@Override
protected String getModuleLookup() {
return "MySqlUserServiceLocal";
}
}

View File

@ -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<MySqlUserVO> implements MySqlUserServiceLocal {
@PersistenceContext(name="hsar")
private EntityManager entityManager;
@Override
public MySqlUserVO buildVO() throws TechnicalException {
return new MySqlUserVO();
}
}

View File

@ -0,0 +1,10 @@
package de.hsadmin.service.database;
import javax.ejb.Local;
import de.hsadmin.module.Module;
@Local
public interface MySqlUserServiceLocal extends Module<MySqlUserVO>{
}

View File

@ -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();
}
}

View File

@ -0,0 +1,14 @@
package de.hsadmin.service.database;
import de.hsadmin.xmlrpc.AbstractRemote;
import de.hsadmin.xmlrpc.Remote;
public class PgSqlDatabaseRemote extends AbstractRemote<PgSqlDatabaseVO> implements Remote {
@Override
protected String getModuleLookup() {
return "PgSqlDatabaseServiceLocal";
}
}

View File

@ -0,0 +1,10 @@
package de.hsadmin.service.database;
import javax.ejb.Local;
import de.hsadmin.module.Module;
@Local
public interface PgSqlDatabaseServiceLocal extends Module<PgSqlDatabaseVO>{
}

View File

@ -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();
}
}

View File

@ -0,0 +1,14 @@
package de.hsadmin.service.database;
import de.hsadmin.xmlrpc.AbstractRemote;
import de.hsadmin.xmlrpc.Remote;
public class PgSqlUserRemote extends AbstractRemote<PgSqlUserVO> implements Remote {
@Override
protected String getModuleLookup() {
return "PgSqlUserServiceLocal";
}
}

View File

@ -0,0 +1,10 @@
package de.hsadmin.service.database;
import javax.ejb.Local;
import de.hsadmin.module.Module;
@Local
public interface PgSqlUserServiceLocal extends Module<PgSqlUserVO>{
}

View File

@ -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();
}
}

View File

@ -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

View File

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>XmlRpcServlet</servlet-name>
<servlet-class>de.hsadmin.xmlrpc.HSXmlRpcServlet</servlet-class>
<init-param>
<param-name>enabledForExtensions</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>XmlRpcServlet</servlet-name>
<url-pattern>/xmlrpc/*</url-pattern>
</servlet-mapping>
</web-app>

View File

@ -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

40
framework/README.md Normal file
View File

@ -0,0 +1,40 @@
Entwicklung eines HSAdmin Modul
===============================
Für die Klasse <Entity> 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<MySqlUserVO>_ 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<EntityVO>_
Entity-spezifische Erweiterung des Interface _Module_.
EJB Implementierung *EntityService*
-----------------------------------
class **EntityService** extends _AbstractModule<EntityVO>_ implements _EntityServiceLocal_
Modul-spezifische Implementierung unter Nutzung der generischen Implementierung aus _AbstactModule_.

View File

@ -14,6 +14,7 @@
<module>db-migration</module>
<module>framework</module>
<module>cust-services</module>
<module>database-services</module>
<module>web</module>
<module>cli</module>
</modules>