Daniel Quathamer
1 year ago
31 changed files with 1534 additions and 299 deletions
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
all |
||||
call_module_scripts_create_ant |
||||
cleanBuildPath |
||||
compileSuperx |
||||
dist |
||||
distQA |
||||
initTimestamp |
||||
module_copy_source |
@ -0,0 +1,189 @@
@@ -0,0 +1,189 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<classpath> |
||||
<classpathentry kind="src" path="src"/> |
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/activation-1.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/aopalliance-1.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/asm-3.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/aspectjrt-1.6.8.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/aspectjweaver-1.6.8.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/avalon-framework-4.2.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/batik-all-1.10.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/bliki-core-3.0.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/cewolf-0.10.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/cglib-2.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/cglib-nodep-2.2.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/clover-3.3.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-beanutils-1.8.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-cli-1.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-codec-1.10.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-collections-3.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-collections4-4.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-dbcp-1.2.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-digester-1.7.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-el-1.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-fileupload-1.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-httpclient-3.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-io-1.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-javaflow-20060411.jar.alt"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-lang-2.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-lang3-3.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-lang3-3.4-javadoc.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-logging-1.1.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-logging-api.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-math-1.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-pool-1.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-validator-1.0.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-vfs-1.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/commons-vfs2-2.1-20150824.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/connect.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/dbforms2.5.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/dom4j-1.6.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/dsn.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/eigenbase-properties-1.1.0.10924.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/eigenbase-resgen-1.3.0.11873.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/eigenbase-xom-1.3.0.11999.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-core-annotations-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-core-rt-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-jaxws-ri-rt-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-jersey-rt-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-rt-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-spring3-app-rt-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/enunciate-spring-jaxws-rt-1.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/fop-2.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/freemarker-2.3.25.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/groovy-all-2.3.6.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/guava-16.0.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/h2-1.4.181.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/hamcrest-core-1.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/hosu.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/hsqldb1.7.2sx.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/httpunit.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/ifxjdbc-4.50.4.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/imap.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/inspector.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/iText-2.1.7.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jackson-core-asl-1.9.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jackson-jaxrs-1.9.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jackson-mapper-asl-1.9.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jackson-xc-1.9.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jakarta-regexp-1.5.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/janino-2.5.16.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-chart-customizers-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-chart-themes-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-custom-visualization-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-fonts-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-functions-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-javaflow-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jasperreports-metadata-6.20.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/java_cup.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/javacc-5.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/javacup-10k.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jaxb-api-2.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jaxb-impl-2.2.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jaxen-1.1.6.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jaxws-api-2.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jaxws-rt-2.1.7.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jaxws-spring-1.8.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jcommon-1.0.15.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jdom-1.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jdom-2.0.6.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jersey-core-1.11.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jersey-server-1.11.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jersey-servlet-1.11.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jersey-spring-1.11.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jettison-1.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jfor-0.7.2rc1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jfreechart-1.0.12.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jh.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jlfgr-1.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/joda-time-2.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/js-1.7R3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/JSAP-2.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jsr311-api-1.1.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jstl-1.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jug-lgpl-2.0.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/junit-4.11.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/jxl-2.6.10.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/kettle-core-6.0.0.0-353.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/kettle-engine-6.0.0.0-353.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/libbase-6.0.0.0-353.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/liberation-fonts-jasperreports_extension.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/liberation-fonts-ttf.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/libformula-6.0.0.0-353.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/log4j-1.2-api-2.16.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/log4j-api-2.16.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/log4j-core-2.16.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/logkit-1.0.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/mail-1.4.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/mailapi.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/maven-findbugs-plugin-0.8.4.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/maven-sourceforge-plugin-1.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/maven-taglib-plugin-1.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/maxq-0.95dev.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/metastore-6.0.0.0-353.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/mimepull-1.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/mockito-all-1.10.19.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/mondrian-3.6-SNAPSHOT.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/nekohtml-0.9.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/net.tascalate.javaflow.api-2.2.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/olap4j-1.2.0-SNAPSHOT.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/olap4j-xmla-1.2.0-SNAPSHOT.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/org-netbeans-core.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/oro-2.0.8.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/pl_generator.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/poi-3.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/poi-examples-3.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/poi-excelant-3.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/poi-ooxml-3.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/poi-ooxml-schemas-3.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/poi-scratchpad-3.17.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/pop3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/postgresql-42.2.19.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/resolver-20050927.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/saiku-service-2.5-excelpatch.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/saiku-web-2.5.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/saxon-he-10.5.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/saxon-he-test-10.5.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/saxon-xqj-10.5.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/sdf_generator.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/sis_util.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/slf4j-api-1.6.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/slf4j-log4j12-1.6.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/smtp.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-aop-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-asm-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-beans-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-context-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-context-support-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-core-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-expression-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-jdbc-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-ldap-core-1.3.0.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-security-acl-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-security-config-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-security-core-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-security-ldap-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-security-taglibs-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-security-web-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-test-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-tx-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-web-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/spring-webmvc-3.0.3.RELEASE.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/stax-api-1.0.1.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/stax-ex-1.2.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/streambuffer-0.9.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/superx5.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/validation-api-1.0.0.GA.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/wstx-asl-3.2.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xalan2-6-0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xbean-spring-2.7.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xercesImpl-2.7.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xml-apis-1.3.04.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xml-apis-ext-1.3.04.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xmlbeans-2.3.0.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib/xmlgraphics-commons-2.3.jar"/> |
||||
<classpathentry kind="lib" path="/kern/superx/WEB-INF/lib_ext/servlet-api.jar"/> |
||||
<classpathentry kind="output" path="superx/WEB-INF/classes"/> |
||||
</classpath> |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<projectDescription> |
||||
<name>qa</name> |
||||
<comment></comment> |
||||
<projects> |
||||
</projects> |
||||
<buildSpec> |
||||
<buildCommand> |
||||
<name>org.eclipse.jdt.core.javabuilder</name> |
||||
<arguments> |
||||
</arguments> |
||||
</buildCommand> |
||||
</buildSpec> |
||||
<natures> |
||||
<nature>org.eclipse.jdt.core.javanature</nature> |
||||
</natures> |
||||
<linkedResources> |
||||
<link> |
||||
<name>superx-src</name> |
||||
<type>2</type> |
||||
<location>/home/superx/git/kern/src</location> |
||||
</link> |
||||
</linkedResources> |
||||
</projectDescription> |
@ -1,2 +1,5 @@
@@ -1,2 +1,5 @@
|
||||
doku/qa_modul/qa.html |
||||
WEB-INF/conf/edustore/db/bin/SQL_ENV_qa.sam |
||||
WEB-INF/conf/edustore/db/bin/qa_mask_execution.x |
||||
WEB-INF/conf/edustore/db/bin/qa_tc_execution_mail.x |
||||
WEB-INF/lib/superx-qa.jar |
||||
|
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
|
||||
|
||||
|
||||
--Speicherplatz sparen bei Erfolg: |
||||
update qa_mask_execution_result set result_stream=null, |
||||
result_stream_contenttype=null |
||||
where result_code=0; |
@ -1,5 +1,7 @@
@@ -1,5 +1,7 @@
|
||||
37000^Benutzer/in^50^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^^^ |
||||
37001^Testfall-Schlüssel^10^0^0^150^150^1^sql^50^0^0^^^^ |
||||
37000^Benutzer/in^150^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^^^ |
||||
37001^Testfall-Schlüssel^20^0^0^150^150^1^char^50^0^0^^^^ |
||||
37002^Projekt^10^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,name from qa_project where active=1 /* and systeminfo_id=<<Komponente>> */ order by 2;^^^ |
||||
37003^Name^20^0^0^150^150^1^sql^50^0^0^^^^ |
||||
37003^Name^60^0^0^150^150^1^char^50^0^0^^^^ |
||||
37004^Komponente^1^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^^^ |
||||
37005^Maske^40^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,tid || ' - ' || name from maskeninfo /*where tid in (select S.maskeninfo_id from maske_system_bez S where S.systeminfo_id=<<Komponente>>) */ order by name;^^^ |
||||
37006^Testfall-Nr.^30^0^0^150^150^1^integer^50^0^0^^^^ |
||||
|
@ -1,10 +1,10 @@
@@ -1,10 +1,10 @@
|
||||
37020^Benutzer/in^60^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^^^ |
||||
37021^Ausführungs-Status^0^0^0^150^80^10^integer^200^0^1^<<SQL>> select 0,'Erfolgreich' from xdummy union select 1,'Warnung' from xdummy union select 2,'Fehler' from xdummy order by 1^^^ |
||||
37022^Maske^20^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,name from maskeninfo /*where tid in (select S.maskeninfo_id from maske_system_bez S where S.systeminfo_id=<<Komponente>>) */ order by 2;^^^ |
||||
37023^Testfall-Name (Stichwort)^50^0^0^150^150^1^sql^50^0^0^^^^ |
||||
37023^Testfall-Name (Stichwort)^50^0^0^150^150^1^char^50^0^0^^^^ |
||||
37024^Komponente^10^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^^^ |
||||
37025^Nur aktive^30^0^0^150^80^1^integer^200^0^1^<<SQL>> select 1,'Ja' from xdummy union select 0,'nein' from xdummy order by 1 desc;^^<<SQL>>select 1,'Ja' from xdummy^ |
||||
37026^Ab Datum^40^0^0^150^80^1^date^200^0^0^ ^^<<SQL>> select today()-3 from xdummy^ |
||||
37027^Testfall-Schlüssel^55^0^0^150^150^1^sql^50^0^0^^^^ |
||||
37027^Testfall-Schlüssel^55^0^0^150^150^1^char^50^0^0^^^^ |
||||
37028^Projekt^15^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,name from qa_project where active=1 /* and systeminfo_id=<<Komponente>> */ order by 2;^^^ |
||||
37029^Testfall-Typ^1000^300^-1^170^150^1^integer^30^0^1^<<SQL>> select 1,'Maskenausführung' from xdummy union select 2,'Datenbank-Test' from xdummy^^ ^ |
||||
|
@ -1,11 +0,0 @@
@@ -1,11 +0,0 @@
|
||||
37160^Benutzer/in^60^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,nvl(name,benutzer) from userinfo order by 2;^^^ |
||||
37161^Ausführungs-Status^0^0^0^150^80^10^integer^200^0^1^<<SQL>> select 0,'Erfolgreich' from xdummy union select 1,'Warnung' from xdummy union select 2,'Fehler' from xdummy order by 1^^^ |
||||
37162^Projekt^20^0^0^150^80^1^integer^200^0^1^<<SQL>> select tid,name from qa_project where active=1 /* and systeminfo_id=<<Komponente>> */ order by 2;^^^ |
||||
37163^Testfall-Name (Stichwort)^50^0^0^150^150^1^sql^50^0^0^^^^ |
||||
37164^Komponente^10^0^0^150^200^1^integer^200^0^1^<<SQL>> select tid,name from systeminfo order by 2;^^^ |
||||
37165^Nur aktive^30^0^0^150^80^1^integer^200^0^1^<<SQL>> select 1,'Ja' from xdummy union select 0,'nein' from xdummy order by 1 desc;^^<<SQL>>select 1,'Ja' from xdummy^ |
||||
37166^Ab Datum^40^0^0^150^80^1^date^200^0^0^ ^^<<SQL>> select today()-3 from xdummy^ |
||||
37167^Testfall^100^0^0^150^200^1^integer^200^0^1^<<SQL>> select T.tid,T.name from qa_testcase T where is_active=1 \ |
||||
/* and T.tid in (select P.testcase_id from qa_testcase2project P where P.project_id=<<Projekt>>) */ \ |
||||
/* and T.systeminfo_id=<<Komponente>> */\ |
||||
order by 2^ ^ ^ |
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
37160^260^ |
@ -1,8 +0,0 @@
@@ -1,8 +0,0 @@
|
||||
37160^37160^ |
||||
37160^37161^ |
||||
37160^37162^ |
||||
37160^37163^ |
||||
37160^37164^ |
||||
37160^37165^ |
||||
37160^37166^ |
||||
37160^37167^ |
@ -1,126 +0,0 @@
@@ -1,126 +0,0 @@
|
||||
37160^Testfall-Protokoll^--Autor: D. Quathamer\ |
||||
--Datum: 2.8.2019\ |
||||
--Freemarker Template\ |
||||
<#include "SQL_lingua_franca"/>\ |
||||
<#include "SuperX_general"/>\ |
||||
\ |
||||
\ |
||||
<#assign resultValueNative="result_value::float" />\ |
||||
<#if SQLdialect='Postgres'>\ |
||||
<#assign resultValueNative="round(decval(replace(result_value,'.',',')),0) " />\ |
||||
</#if>\ |
||||
\ |
||||
\ |
||||
<@selectintotmp \ |
||||
select="\ |
||||
T.tid,\ |
||||
T.name,\ |
||||
T.uniquename,\ |
||||
R.assertion_def_col_caption,\ |
||||
R.execution_start,\ |
||||
R.execution_end,\ |
||||
R.result_code,\ |
||||
R.result_value,\ |
||||
null::integer as result_status,\ |
||||
''::char(255) as result_status_str,\ |
||||
R.result_log,\ |
||||
T.systeminfo_id,\ |
||||
''::char(255) as systeminfo_id_str,\ |
||||
''::varchar(255) as ticket_link,\ |
||||
''::varchar(255) as nexttable,\ |
||||
R.mask_execution_result_id,\ |
||||
R.dbtest_result_id\ |
||||
"\ |
||||
source="qa_testcase T inner join qa_testcase_result R on (R.testcase_id=T.tid /* and date(R.execution_start) >= date_val(<<Ab Datum>>) */)"\ |
||||
target="tmp_qa_testcase">\ |
||||
where \ |
||||
1=1\ |
||||
/* and T.is_active=<<Nur aktive>> */\ |
||||
/* and T.tid in (select P.testcase_id from qa_testcase2project P where P.project_id=<<Projekt>>) */\ |
||||
/* and T.userinfo_id=<<Benutzer/in>> */\ |
||||
/* and T.systeminfo_id=<<Komponente>> */\ |
||||
/* and T.name ilike '%<<Testfall-Name (Stichwort)>>%' */\ |
||||
/* and T.tid=<<Testfall>> */\ |
||||
</@selectintotmp>\ |
||||
<@informixnolog/>;\ |
||||
\ |
||||
update tmp_qa_testcase set ticket_link=P.issue_link || TP.issue_id\ |
||||
from qa_testcase2project TP, qa_project P\ |
||||
where TP.testcase_id=tmp_qa_testcase.tid\ |
||||
and P.tid=TP.project_id\ |
||||
;\ |
||||
\ |
||||
update tmp_qa_testcase set nexttable='37020&Result-ID=' || mask_execution_result_id\ |
||||
where mask_execution_result_id is not null;\ |
||||
update tmp_qa_testcase set nexttable='37100&Result-ID=' || dbtest_result_id\ |
||||
where dbtest_result_id is not null;\ |
||||
\ |
||||
\ |
||||
update tmp_qa_testcase set --result_status=1,\ |
||||
result_status_str='Warnung'\ |
||||
where result_code=1;\ |
||||
update tmp_qa_testcase set result_status=2,\ |
||||
result_status_str='Fehler'\ |
||||
where result_code is null;\ |
||||
-- \ |
||||
update tmp_qa_testcase set \ |
||||
result_status_str='Erfolg'\ |
||||
where result_code=0\ |
||||
;\ |
||||
\ |
||||
/* delete from tmp_qa_testcase where result_code not in ( <<Ausführungs-Status>> ); */\ |
||||
\ |
||||
\ |
||||
update tmp_qa_testcase set systeminfo_id_str=(select name from systeminfo S\ |
||||
where S.tid=tmp_qa_testcase.systeminfo_id);\ |
||||
\ |
||||
select systeminfo_id_str,\ |
||||
name,\ |
||||
uniquename,\ |
||||
case when ticket_link !='' then 'Ticket|' || ticket_link else '' end as nextserverlink,\ |
||||
assertion_def_col_caption,\ |
||||
execution_start,\ |
||||
<#if SQLdialect='Postgres'>\ |
||||
round(extract(second from (execution_end-execution_start))::decimal,0)::integer as dauer,\ |
||||
<#else>\ |
||||
execution_end-execution_start as dauer,\ |
||||
</#if>\ |
||||
result_value,\ |
||||
result_status_str,\ |
||||
nexttable\ |
||||
from tmp_qa_testcase\ |
||||
order by 1,2,3,4,5,6,7;^XIL List\ |
||||
drop_and_delete movable_columns sizable_columns horizontal_scrolling\ |
||||
white_space_color=COLOR_WHITE fixed_columns=2\ |
||||
min_heading_height=35\ |
||||
Column CID=0 heading_text="Komponente" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=20 text_size=100\ |
||||
Column CID=1 heading_text="Testfall" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=50 text_size=200\ |
||||
Column CID=1 heading_text="Testfall\\nSchlüssel" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=10 text_size=200\ |
||||
Column CID=1 heading_text="Ticket" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=10 text_size=200\ |
||||
Column CID=1 heading_text="Erwartung" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=20 text_size=200\ |
||||
Column CID=1 heading_text="Ausführungszeit\\nStart" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=10 text_size=200\ |
||||
Column CID=1 heading_text="Dauer\\n(Sek.)" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=10 text_size=200\ |
||||
Column CID=1 heading_text="Gefundener Wert" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=10 text_size=200\ |
||||
Column CID=1 heading_text="Ausführungsstatus" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=15 text_size=200\ |
||||
Column CID=1 heading_text="Details" center_heading\ |
||||
row_selectable col_selectable heading_platform readonly\ |
||||
width=15 text_size=200\ |
||||
@@@^^^Übersicht über das Laufzeitverhalten von Masken- und Datenbanktestfällen^drop table tmp_qa_testcase;^^1^440^360^0^1^^ |
@ -1 +0,0 @@
@@ -1 +0,0 @@
|
||||
260^37160^ |
@ -0,0 +1,181 @@
@@ -0,0 +1,181 @@
|
||||
|
||||
--freemarker template |
||||
|
||||
<#assign systeminfo_id=9 /> |
||||
<#assign sachgebiete_id=0 /> |
||||
|
||||
|
||||
<#assign projects= [ |
||||
{"uniquename":"kern_user", |
||||
"name":"Kernmodul Benutzerverwaltung", |
||||
"issue_link":"https://git.campussource.de/git/SuperX/qa/issues/" |
||||
} |
||||
] /> |
||||
|
||||
<#assign resultsets = [ |
||||
{"uniquename":"userinfo", |
||||
"name":"Benutzeraccounts", |
||||
"fieldclause":"U.*", |
||||
"fromclause":"userinfo U", |
||||
"groupbyclause":"", |
||||
"orderbyclause":"" |
||||
} |
||||
] /> |
||||
|
||||
<#assign dbtests = [ |
||||
{ |
||||
"project":"kern_user", |
||||
"uniquename":"kern_adminuser_exists", |
||||
"name":"Benutzeraccount mit Administrationsrechten existiert", |
||||
"resultset":"userinfo", |
||||
"whereclause":"benutzer=''admin''", |
||||
"description":"", |
||||
"issue_id":"1" |
||||
} |
||||
|
||||
] /> |
||||
|
||||
<#assign dbtest_assertions = [ |
||||
|
||||
{ |
||||
"dbtest":"kern_adminuser_exists", |
||||
"rownr":"1", |
||||
"assertion_col": "benutzer", |
||||
"assertion_value": "adim", |
||||
"assertion_caption":"Admin-Account" |
||||
} |
||||
] /> |
||||
|
||||
|
||||
--ab hier ist der Code immer gleich: |
||||
<#foreach resultset in resultsets> |
||||
insert into qa_resultset( |
||||
uniquename, |
||||
name, |
||||
systeminfo_id, |
||||
fromclause, |
||||
fieldclause, |
||||
groupbyclause, |
||||
orderbyclause) |
||||
select |
||||
'${resultset.uniquename}', |
||||
'${resultset.name}', |
||||
${systeminfo_id}, |
||||
'${resultset.fromclause}', |
||||
'${resultset.fieldclause}', |
||||
'${resultset.groupbyclause}', |
||||
'${resultset.orderbyclause}' |
||||
from xdummy |
||||
where 0=(select count(*) from qa_resultset R |
||||
where R.uniquename='${resultset.uniquename}' |
||||
and R.systeminfo_id=${systeminfo_id}) |
||||
; |
||||
</#foreach> |
||||
|
||||
|
||||
<#foreach project in projects> |
||||
|
||||
insert into qa_project( |
||||
uniquename, |
||||
name, |
||||
systeminfo_id, |
||||
sachgebiete_id, |
||||
active, |
||||
issue_link, |
||||
created_at, |
||||
created_from |
||||
) |
||||
select |
||||
'${project.uniquename}', |
||||
'${project.name}', |
||||
${systeminfo_id}, |
||||
${sachgebiete_id}, |
||||
1 as active, |
||||
'${project.issue_link}', |
||||
today(), |
||||
1 |
||||
from xdummy |
||||
where 0=(select count(*) from qa_project P |
||||
where P.uniquename='${project.uniquename}' |
||||
and P.systeminfo_id=${systeminfo_id}); |
||||
|
||||
<#foreach dbtest in dbtests> |
||||
<#if dbtest.project=project.uniquename> |
||||
insert into qa_dbtest( |
||||
uniquename, |
||||
name, |
||||
systeminfo_id, |
||||
resultset_id, |
||||
whereclause, |
||||
description, |
||||
active) |
||||
select '${dbtest.uniquename}', |
||||
'${dbtest.name}', |
||||
${systeminfo_id}, |
||||
(select R.tid from qa_resultset R where R.uniquename='${dbtest.resultset}' |
||||
and R.systeminfo_id=${systeminfo_id} |
||||
) as resultset_id, |
||||
'${dbtest.whereclause}', |
||||
'${dbtest.description}', |
||||
1 as active |
||||
FROM qa_project |
||||
where uniquename= '${project.uniquename}' |
||||
and systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_dbtest T |
||||
where T.uniquename='${dbtest.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id}) |
||||
; |
||||
|
||||
insert into qa_dbtest2project( dbtest_id, |
||||
project_id, |
||||
issue_id) |
||||
select T.tid, |
||||
P.tid, |
||||
'${dbtest.issue_id}' |
||||
FROM qa_dbtest T,qa_project P |
||||
where T.uniquename='${dbtest.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and P.uniquename= '${project.uniquename}' |
||||
and P.systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_dbtest2project TP, |
||||
qa_dbtest T,qa_project P |
||||
where T.uniquename='${dbtest.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and P.uniquename= '${project.uniquename}' |
||||
and P.systeminfo_id=${systeminfo_id} |
||||
and TP.project_id=P.tid |
||||
and TP.dbtest_id=T.tid) |
||||
; |
||||
<#foreach assertion in dbtest_assertions> |
||||
<#if assertion.dbtest=dbtest.uniquename> |
||||
insert into qa_dbtest_assertion( |
||||
dbtest_id, |
||||
rownr, |
||||
def_col_caption, |
||||
def_col_name, |
||||
def_col_value |
||||
) |
||||
select tid, |
||||
${assertion.rownr}, |
||||
'${assertion.assertion_caption}', |
||||
'${assertion.assertion_col}', |
||||
'${assertion.assertion_value}' |
||||
from qa_dbtest T |
||||
where T.uniquename='${dbtest.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_dbtest_assertion A |
||||
where A.dbtest_id=T.tid |
||||
and A.rownr=${assertion.rownr} |
||||
and A.def_col_name='${assertion.assertion_col}' |
||||
); |
||||
|
||||
|
||||
</#if> --von assertion |
||||
</#foreach> |
||||
|
||||
|
||||
|
||||
</#if> --von dbtest |
||||
</#foreach> |
||||
</#foreach> |
||||
|
@ -0,0 +1,183 @@
@@ -0,0 +1,183 @@
|
||||
|
||||
--freemarker template |
||||
|
||||
<#assign systeminfo_id=9 /> |
||||
<#assign sachgebiete_id=0 /> |
||||
|
||||
|
||||
<#assign projects= [ |
||||
{"uniquename":"kern_user", |
||||
"name":"Kernmodul Benutzerverwaltung", |
||||
"issue_link":"https://git.campussource.de/git/SuperX/qa/issues/" |
||||
} |
||||
] /> |
||||
|
||||
|
||||
<#assign mask_executions = [ |
||||
{ |
||||
"project":"kern_user", |
||||
"uniquename":"kern_adminuser_exists_mask", |
||||
"name":"Benutzeraccounts mit Administrationsrechten existieren", |
||||
"userinfo_id":"1", |
||||
"maskeninfo_id":"71050", |
||||
"description":"", |
||||
"issue_id":"1" |
||||
} |
||||
|
||||
] /> |
||||
<#assign mask_execution_fields = [ |
||||
{ |
||||
"mask_execution_uniquename":"kern_adminuser_exists_mask", |
||||
"felderinfo_id":"71053", |
||||
"field_value":"Admin" |
||||
} |
||||
|
||||
] /> |
||||
<#assign mask_execution_assertions = [ |
||||
|
||||
{ |
||||
"mask_execution_uniquename":"kern_adminuser_exists_mask", |
||||
"rownr":"1", |
||||
"colnr": "2", |
||||
"result_value_min": "1", |
||||
"result_value_max": "1000", |
||||
"assertion_caption":"Anzahl Admin-Accounts" |
||||
} |
||||
] /> |
||||
|
||||
|
||||
--ab hier ist der Code immer gleich: |
||||
|
||||
|
||||
<#foreach project in projects> |
||||
|
||||
insert into qa_project( |
||||
uniquename, |
||||
name, |
||||
systeminfo_id, |
||||
sachgebiete_id, |
||||
active, |
||||
issue_link, |
||||
created_at, |
||||
created_from |
||||
) |
||||
select |
||||
'${project.uniquename}', |
||||
'${project.name}', |
||||
${systeminfo_id}, |
||||
${sachgebiete_id}, |
||||
1 as active, |
||||
'${project.issue_link}', |
||||
today(), |
||||
1 |
||||
from xdummy |
||||
where 0=(select count(*) from qa_project P |
||||
where P.uniquename='${project.uniquename}' |
||||
and P.systeminfo_id=${systeminfo_id}); |
||||
|
||||
<#foreach mask_execution in mask_executions> |
||||
<#if mask_execution.project=project.uniquename> |
||||
insert into qa_mask_execution( |
||||
uniquename, |
||||
name, |
||||
systeminfo_id, |
||||
userinfo_id, |
||||
maskeninfo_id, |
||||
--description, |
||||
is_active) |
||||
select '${mask_execution.uniquename}', |
||||
'${mask_execution.name}', |
||||
${systeminfo_id}, |
||||
${mask_execution.userinfo_id}, |
||||
${mask_execution.maskeninfo_id}, |
||||
1 as active |
||||
FROM qa_project |
||||
where uniquename= '${project.uniquename}' |
||||
and systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_mask_execution T |
||||
where T.uniquename='${mask_execution.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id}) |
||||
; |
||||
|
||||
insert into qa_mask_execution2project( mask_execution_id, |
||||
project_id, |
||||
issue_id) |
||||
select T.tid, |
||||
P.tid, |
||||
'${mask_execution.issue_id}' |
||||
FROM qa_mask_execution T,qa_project P |
||||
where T.uniquename='${mask_execution.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and P.uniquename= '${project.uniquename}' |
||||
and P.systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_mask_execution2project TP, |
||||
qa_mask_execution T,qa_project P |
||||
where T.uniquename='${mask_execution.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and P.uniquename= '${project.uniquename}' |
||||
and P.systeminfo_id=${systeminfo_id} |
||||
and TP.project_id=P.tid |
||||
and TP.mask_execution_id=T.tid) |
||||
; |
||||
|
||||
<#foreach field in mask_execution_fields> |
||||
<#if field.mask_execution_uniquename=mask_execution.uniquename> |
||||
insert into qa_mask_field_sel( |
||||
mask_execution_id, |
||||
felderinfo_id, |
||||
field_value, |
||||
is_active |
||||
) |
||||
select tid, |
||||
${field.felderinfo_id}, |
||||
'${field.field_value}', |
||||
1 as is_active |
||||
from qa_mask_execution T |
||||
where T.uniquename='${mask_execution.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_mask_field_sel A |
||||
where A.mask_execution_id=T.tid |
||||
and A.felderinfo_id=${field.felderinfo_id} |
||||
); |
||||
|
||||
|
||||
</#if> --von field |
||||
</#foreach> |
||||
|
||||
|
||||
<#foreach assertion in mask_execution_assertions> |
||||
<#if assertion.mask_execution_uniquename=mask_execution.uniquename> |
||||
insert into qa_mask_execution_assert( |
||||
mask_execution_id, |
||||
rownr, |
||||
colnr, |
||||
result_value_min, |
||||
result_value_max, |
||||
is_active, |
||||
caption |
||||
) |
||||
select tid, |
||||
${assertion.rownr}, |
||||
${assertion.colnr}, |
||||
${assertion.result_value_min}, |
||||
${assertion.result_value_max}, |
||||
1 as is_active, |
||||
'${assertion.assertion_caption}' |
||||
from qa_mask_execution T |
||||
where T.uniquename='${mask_execution.uniquename}' |
||||
and T.systeminfo_id=${systeminfo_id} |
||||
and 0=(select count(*) from qa_mask_execution_assert A |
||||
where A.mask_execution_id=T.tid |
||||
and A.rownr=${assertion.rownr} |
||||
and A.colnr=${assertion.colnr}); |
||||
|
||||
|
||||
</#if> --von assertion |
||||
</#foreach> |
||||
|
||||
|
||||
|
||||
</#if> --von mask_execution |
||||
</#foreach> |
||||
</#foreach> |
||||
|
@ -0,0 +1,471 @@
@@ -0,0 +1,471 @@
|
||||
/* |
||||
* de.superx.qa - a package for controlling QA routines |
||||
* Copyright (C) 2023 Daniel Quathamer <danielq@memtext.de> |
||||
* |
||||
* This package is licensed under the CampusSource License; |
||||
* http://www.campussource.de/org/license/
|
||||
*/ |
||||
package de.superx.qa.bin; |
||||
|
||||
import java.io.IOException; |
||||
import java.io.StringReader; |
||||
import java.sql.Connection; |
||||
import java.sql.PreparedStatement; |
||||
import java.sql.SQLException; |
||||
import java.sql.Statement; |
||||
import java.util.Enumeration; |
||||
import java.util.Hashtable; |
||||
import java.util.Iterator; |
||||
import java.util.Locale; |
||||
import java.util.Properties; |
||||
|
||||
import org.jaxen.JaxenException; |
||||
import org.jaxen.XPath; |
||||
import org.jaxen.jdom.JDOMXPath; |
||||
import org.jdom.Document; |
||||
import org.jdom.Element; |
||||
import org.jdom.JDOMException; |
||||
import org.jdom.Namespace; |
||||
import org.jdom.input.SAXBuilder; |
||||
import org.springframework.mock.web.MockHttpServletRequest; |
||||
import org.springframework.mock.web.MockHttpServletResponse; |
||||
import org.springframework.mock.web.MockServletConfig; |
||||
|
||||
import de.memtext.baseobjects.coll.NamedIdObjectList; |
||||
import de.superx.bin.SxConnection; |
||||
import de.superx.common.FieldContainer; |
||||
import de.superx.common.Maske; |
||||
import de.superx.common.SuperX_el; |
||||
import de.superx.common.SxResultRow; |
||||
import de.superx.common.SxResultSet; |
||||
import de.superx.common.SxSqlHelper; |
||||
import de.superx.common.SxUser; |
||||
import de.superx.etl.EtlUtils; |
||||
import de.superx.qa.util.GetOpts; |
||||
import de.superx.sec.InputCheckRegistry; |
||||
import de.superx.servlet.SuperXManager; |
||||
import de.superx.servlet.SxPools; |
||||
import de.superx.servlet.UserInitializer; |
||||
import de.superx.util.PathAndFileUtils; |
||||
import de.superx.util.SqlStringUtils; |
||||
import net.sf.saxon.sxpath.XPathExpression; |
||||
|
||||
public class QaTestcaseExecutor { |
||||
private static String tcUniquename; |
||||
private static String systeminfoId; |
||||
private static String fieldSelCmdLine; |
||||
private static int maskExecutionId; |
||||
private static String maskeninfoId; |
||||
private static String userName, userAdmin; |
||||
private static int userId; |
||||
private static long starttime ; |
||||
private static long endtime ; |
||||
private static String mandantenID="default"; |
||||
private static FieldContainer myFieldContainer; |
||||
private static Hashtable<String, String> maskFields ; |
||||
private static String resultXml; |
||||
private static String resultLog; |
||||
private static String pathToDbProperties; |
||||
private static Connection myConnection; |
||||
|
||||
public QaTestcaseExecutor() { |
||||
this.maskFields = new Hashtable(); |
||||
} |
||||
|
||||
private void init() throws SQLException |
||||
{ |
||||
|
||||
|
||||
|
||||
try { |
||||
myConnection = this.getConnection(pathToDbProperties); |
||||
} catch (Exception e) { |
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace(); |
||||
} |
||||
if(myConnection==null) |
||||
throw new SQLException("No connection possible "); |
||||
|
||||
|
||||
//System.out.println("fieldSel:"+fieldSel);
|
||||
|
||||
System.out.println("inited"); |
||||
|
||||
} |
||||
|
||||
private static Connection getConnection(String pathToDbProperties) throws Exception { |
||||
String myDefaultPropFile=PathAndFileUtils.getWebinfDirectory()+PathAndFileUtils.PATHSEP+"db.properties"; |
||||
if(pathToDbProperties==null) |
||||
pathToDbProperties=myDefaultPropFile; |
||||
Connection myConnection; |
||||
SxConnection mySxConnection = null; |
||||
mySxConnection = new SxConnection(); |
||||
mySxConnection.setPropfile(pathToDbProperties); |
||||
|
||||
myConnection = mySxConnection.getConnection(); |
||||
|
||||
|
||||
|
||||
return myConnection; |
||||
} |
||||
|
||||
public static void main(String[] args) { |
||||
String usage="usage: java de.superx.qa.bin.QaTestcaseExecutor -dbproperties:$DB_PROPERTIES -tc:abc -systeminfo_id:9 -params:TID=16000 (optional) -outfile:Ausgabedatei (optional)" ; |
||||
GetOpts.setOpts(args); |
||||
|
||||
String isdrin = GetOpts.isAllRequiredOptionsPresent("-logger,-dbproperties"); |
||||
if (isdrin != null) { |
||||
|
||||
System.err.println(usage); |
||||
System.exit(1); |
||||
} |
||||
int returnCode=0; |
||||
int nrOfTestcases=0; |
||||
int nrOfSuccessfulTestcases=0; |
||||
pathToDbProperties = GetOpts.getValue("-dbproperties"); |
||||
String tcUniquename="" ; |
||||
if (GetOpts.isPresent("-tc")) |
||||
tcUniquename= GetOpts.getValue("-tc"); |
||||
String systeminfoId=""; |
||||
if (GetOpts.isPresent("-systeminfo_id")) |
||||
systeminfoId= GetOpts.getValue("-systeminfo_id"); |
||||
String loggerArg=GetOpts.getValue("-logger"); |
||||
|
||||
|
||||
QaTestcaseExecutor myExec=new QaTestcaseExecutor(); //TODO:Mandantid
|
||||
|
||||
try { |
||||
myExec.init(); |
||||
int[] myTestcases=getTestcases(tcUniquename,systeminfoId); |
||||
nrOfTestcases=myTestcases.length; |
||||
if(nrOfTestcases>0) |
||||
{ |
||||
for (int tcNr = 0;tcNr < nrOfTestcases; tcNr++) |
||||
{ |
||||
returnCode=executeTestcase(myTestcases[tcNr]); |
||||
if(returnCode==0) |
||||
nrOfSuccessfulTestcases++; |
||||
} |
||||
} |
||||
myConnection.close(); |
||||
|
||||
} catch (Exception e) { |
||||
// TODO Auto-generated catch block
|
||||
|
||||
e.printStackTrace(); |
||||
System.err.println(e.toString()); |
||||
System.exit(1); |
||||
} |
||||
System.out.println("Executed testcases:"+ nrOfTestcases+"; successful: "+nrOfSuccessfulTestcases); |
||||
|
||||
|
||||
System.exit(returnCode); |
||||
|
||||
} |
||||
|
||||
private static int[] getTestcases(String tcUniquename,String systeminfoId) throws Exception |
||||
{ |
||||
//TODO_ Umlaute erlauben:
|
||||
//if(!SqlStringUtils.checkValidKeyEntry(tcUniquename) || !SqlStringUtils.checkValidKeyEntry(systeminfoId))
|
||||
// throw new Exception("Invalid Testcase "+tcUniquename);
|
||||
|
||||
String sql = "" |
||||
+ "SELECT \n" |
||||
+ "E.tid as mask_execution_id\n" |
||||
+ "FROM qa_mask_execution E left outer join userinfo U\n" |
||||
+ " on (U.tid=E.userinfo_id)" |
||||
+ "where E.is_active=1"; |
||||
if(!tcUniquename.equals("")) |
||||
sql +=" and E.uniquename ='"+tcUniquename+"'"; |
||||
if(!systeminfoId.equals("")) |
||||
sql +=" and E.systeminfo_id="+systeminfoId; |
||||
sql +=" order by 1;"; |
||||
SuperX_el el = new SuperX_el(); |
||||
SxSqlHelper sh=new SxSqlHelper(); |
||||
|
||||
sh.execute(sql, myConnection, el); |
||||
if (el.getError_String() != null |
||||
&& !el.getError_String().trim().equals("")) |
||||
throw new SQLException("\nProblem bei Testfall Sammlung DETAILS:" + "\n\n Meldung:" |
||||
+ el.getError_String() + "\n sql:" + sql); |
||||
SxResultSet result= el.getResultSet(); |
||||
int nrOfTestcases=result.size(); |
||||
int[] testCases=new int[nrOfTestcases]; |
||||
|
||||
int rownr=0; |
||||
for (Iterator it = result.iterator(); it.hasNext();) { |
||||
SxResultRow row = (SxResultRow) it.next(); |
||||
maskExecutionId=(int) row.get(0); |
||||
testCases[rownr]=maskExecutionId; |
||||
rownr++; |
||||
} |
||||
|
||||
return testCases; |
||||
|
||||
} |
||||
private static int executeTestcase(int maskExecutionId) throws Exception |
||||
{ |
||||
|
||||
int returnCode; |
||||
starttime = new java.util.Date().getTime() ; |
||||
String fieldSel=""; |
||||
String felderinfoId=""; |
||||
String felderinfoName=""; |
||||
String fieldValue=""; |
||||
String sql = "" |
||||
+ "SELECT \n" |
||||
+ "E.maskeninfo_id," |
||||
+ "E.userinfo_id as userid," |
||||
+ "U.benutzer as username," |
||||
+ "S.mask_execution_id,\n" |
||||
+ "S.felderinfo_id,\n" |
||||
+ "trim(F.name) as felderinfo_name," |
||||
+ "string_not_null(S.field_value) as field_value, \n" |
||||
+ "U.administration " |
||||
+ "FROM felderinfo F,qa_mask_field_sel S, qa_mask_execution E left outer join userinfo U\n" |
||||
+ " on (U.tid=E.userinfo_id)" |
||||
+ "where F.tid=S.felderinfo_id " |
||||
+ "and E.tid=S.mask_execution_id\n" |
||||
+ "and E.tid="+maskExecutionId+";"; |
||||
SuperX_el el = new SuperX_el(); |
||||
SxSqlHelper sh=new SxSqlHelper(); |
||||
|
||||
sh.execute(sql, myConnection, el); |
||||
if (el.getError_String() != null |
||||
&& !el.getError_String().trim().equals("")) |
||||
throw new SQLException("\nProblem bei Testfall DETAILS:" + "\n\n Meldung:" |
||||
+ el.getError_String() + "\n sql:" + sql); |
||||
SxResultSet result= el.getResultSet(); |
||||
int rownr=0; |
||||
for (Iterator it = result.iterator(); it.hasNext();) { |
||||
rownr++; |
||||
SxResultRow row = (SxResultRow) it.next(); |
||||
maskeninfoId=row.get(0).toString().trim(); |
||||
userId=(int) row.get(1); |
||||
userName=row.get(2).toString().trim(); |
||||
maskExecutionId=(int) row.get(3); |
||||
felderinfoId=row.get(4).toString().trim(); |
||||
felderinfoName=row.get(5).toString().trim(); |
||||
fieldValue=row.get(6).toString().trim(); |
||||
userAdmin=row.get(7).toString().trim(); |
||||
maskFields.put(felderinfoName,fieldValue); |
||||
} |
||||
System.out.println("Testcase "+ maskExecutionId+" initialized"); |
||||
returnCode=executeMask(); |
||||
endtime = new java.util.Date().getTime() ; |
||||
int maskExecutionResultId=saveExecutionResult(returnCode,resultLog); |
||||
if(returnCode ==0) |
||||
{ |
||||
returnCode=checkAssertions(maskExecutionResultId); |
||||
|
||||
} |
||||
else |
||||
throw new Exception("Testcase error in masc execution "+maskExecutionId); |
||||
return returnCode; |
||||
} |
||||
private static int executeMask() |
||||
{ |
||||
int returnCode=0; |
||||
MockHttpServletRequest mock ; |
||||
MockHttpServletResponse mockResponse = new MockHttpServletResponse(); |
||||
MockServletConfig mockServletConfig = new MockServletConfig(); |
||||
SxUser user=null; |
||||
mock = new MockHttpServletRequest(); |
||||
Enumeration fieldEnum = maskFields.keys(); |
||||
while (fieldEnum.hasMoreElements()) { |
||||
String paramName = (String) fieldEnum.nextElement(); |
||||
String paramVal= maskFields.get(paramName).toString(); |
||||
mock.addParameter(paramName, paramVal); |
||||
|
||||
} |
||||
try { |
||||
SuperXManager.initKettleEnv(); |
||||
SxPools.init(); |
||||
SxPools.get(mandantenID).init(); |
||||
SxPools.get(mandantenID).initLogging(true); |
||||
SxPools.resetAllPools(); |
||||
|
||||
user = UserInitializer.initUser(mandantenID, userName, userId, userAdmin); |
||||
|
||||
} catch (Exception e) { |
||||
System.err.println("Fehler beim Aufbau der Connection: " + e.toString()); |
||||
System.exit(1); |
||||
} |
||||
Locale desiredLocale = new Locale(de.superx.util.SqlStringUtils.getEncoding()); |
||||
SuperXManager.maxRows = 1000000; |
||||
Maske maske = null; |
||||
InputCheckRegistry.registerDefaultChecks(); |
||||
try { |
||||
maske = new Maske(mandantenID, user, new Integer(maskeninfoId), desiredLocale); |
||||
/*NamedIdObjectList fields = maske.readFelderFromDb(user); |
||||
myFieldContainer = maske.getIndividualFields(); |
||||
myFieldContainer.addAll(fields);*/ |
||||
maske.setFieldDefaults(user, mock, true); |
||||
resultXml=getResultXml(mock, mockResponse, maske, user, desiredLocale); |
||||
System.out.println("resultXml Länge " + resultXml.length() + " für Maske " + maskeninfoId + " erzeugt"); |
||||
} catch (Exception e) { |
||||
e.printStackTrace(); |
||||
resultLog="Fehler beim Ausführen der Maske " + maskeninfoId + ": " + e.toString(); |
||||
returnCode=1; |
||||
} |
||||
|
||||
return returnCode; |
||||
} |
||||
private static int checkAssertions(int maskExecutionResultId) throws Exception |
||||
{ |
||||
int resultCode=0; |
||||
int assertionId,assertionRownr,assertionColnr; |
||||
Double minVal,maxVal,foundVal=null; |
||||
String sql = "select " |
||||
+"tid," |
||||
+"rownr," |
||||
+"colnr," |
||||
+"result_value_min," |
||||
+"result_value_max" |
||||
+" from qa_mask_execution_assert" |
||||
+ " where is_active=1" |
||||
+" and mask_execution_id="+maskExecutionId+";"; |
||||
|
||||
|
||||
/*try { |
||||
myConnection = getConnection(pathToDbProperties); |
||||
} catch (Exception e) { |
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace(); |
||||
}*/ |
||||
if(myConnection==null) |
||||
throw new SQLException("No connection possible "); |
||||
SuperX_el el = new SuperX_el(); |
||||
SxSqlHelper sh=new SxSqlHelper(); |
||||
|
||||
sh.execute(sql, myConnection, el); |
||||
if (el.getError_String() != null |
||||
&& !el.getError_String().trim().equals("")) |
||||
throw new SQLException("\nProblem bei Testfall Assertion DETAILS:" + "\n\n Meldung:" |
||||
+ el.getError_String() + "\n sql:" + sql); |
||||
SxResultSet result= el.getResultSet(); |
||||
int rownr=0; |
||||
for (Iterator it = result.iterator(); it.hasNext();) { |
||||
rownr++; |
||||
SxResultRow row = (SxResultRow) it.next(); |
||||
assertionId=(Integer) row.get(0); |
||||
assertionRownr=(Integer) row.get(1); |
||||
assertionColnr=(Integer) row.get(2); |
||||
minVal=(Double) row.get(3); |
||||
maxVal=(Double) row.get(4); |
||||
try { |
||||
foundVal=getValFromXml(assertionRownr,assertionColnr); |
||||
} catch (Exception e) { |
||||
System.err.println("Testfall ID " +maskExecutionId+" mit Maskennr. "+maskeninfoId+ " Assertion-ID "+assertionId+ " kein Ergebnis "); |
||||
} |
||||
if(foundVal != null && foundVal >=minVal && foundVal<=maxVal) |
||||
{ |
||||
System.out.println("Testfall ID " +maskExecutionId+" mit Maskennr. "+maskeninfoId+ " Assertion-ID "+assertionId+ " erfolgreich"); |
||||
} |
||||
else |
||||
{ |
||||
resultCode=1; |
||||
System.out.println("Testfall ID " +maskExecutionId+" mit Maskennr. "+maskeninfoId+ " Assertion-ID "+assertionId+ " beendet mit Warnung/Fehler"); |
||||
} |
||||
saveAssertResult(assertionId,maskExecutionResultId,foundVal,resultCode,minVal,maxVal); |
||||
} |
||||
|
||||
//System.out.println("fieldSel:"+fieldSel);
|
||||
//myConnection.close();
|
||||
return resultCode; |
||||
} |
||||
private static void saveAssertResult(int maskExecutionAssertId,int maskExecutionResultId,Double resultValue,int resultCode,double minVal,double maxVal) throws SQLException |
||||
{ |
||||
String sql="insert into qa_mask_execution_assert_result(mask_execution_assert_id, mask_execution_result_id, result_code, assert_result_value_min, assert_result_value_max"; |
||||
if(resultValue==null) |
||||
sql+=") values(?,?,?,?,?)"; |
||||
else |
||||
sql +=",result_value) values(?,?,?,?,?,?);"; |
||||
PreparedStatement st=myConnection.prepareStatement(sql); |
||||
st.setInt(1,maskExecutionAssertId); |
||||
st.setInt(2,maskExecutionResultId); |
||||
st.setInt(3,resultCode); |
||||
st.setDouble(4, minVal); |
||||
st.setDouble(5, maxVal); |
||||
if(resultValue!=null) |
||||
st.setDouble(6, resultValue); |
||||
|
||||
boolean executed= st.execute(); |
||||
|
||||
} |
||||
private static int saveExecutionResult(int maskExecutionResult,String log ) throws SQLException |
||||
{ |
||||
int ret=0; |
||||
java.sql.Timestamp startTimeDate = new java.sql.Timestamp(starttime); |
||||
java.sql.Timestamp endTimeDate = new java.sql.Timestamp(endtime); |
||||
String sql="insert into qa_mask_execution_result(mask_execution_id, execution_start, execution_end, result_code,result_log,result_stream,result_stream_contenttype)"; |
||||
sql +="values(?,?,?,?,?,?,?);"; |
||||
PreparedStatement st=myConnection.prepareStatement(sql); |
||||
st.setInt(1,maskExecutionId); |
||||
st.setTimestamp(2, startTimeDate); |
||||
st.setTimestamp(3, endTimeDate); |
||||
st.setInt(4,maskExecutionResult); |
||||
st.setString(5,log); |
||||
//im Fehler/Warnungsfall Ergebnis speichern:
|
||||
st.setString(6,resultXml); |
||||
st.setString(7,"text/xml"); |
||||
|
||||
boolean executed= st.execute(); |
||||
//get generated tid:
|
||||
sql="select currval('qa_mask_execution_result_tid_seq')::integer;"; |
||||
SuperX_el el = new SuperX_el(); |
||||
SxSqlHelper sh=new SxSqlHelper(); |
||||
sh.execute(sql, myConnection, el); |
||||
SxResultSet result= el.getResultSet(); |
||||
int rownr=0; |
||||
for (Iterator it = result.iterator(); it.hasNext();) { |
||||
rownr++; |
||||
SxResultRow row = (SxResultRow) it.next(); |
||||
ret=(Integer) row.get(0); |
||||
} |
||||
|
||||
return ret; |
||||
|
||||
} private static Double getValFromXml(int assertionRownr,int assertionColnr) throws Exception |
||||
{ |
||||
Double foundval = null; |
||||
SAXBuilder builder = new SAXBuilder(); |
||||
Document doc = builder.build(new StringReader(resultXml)); |
||||
Namespace ns = doc.getRootElement().getNamespace(); |
||||
String xpathStr = "/ergebnisse/ergebnis/ergebniselement/sqlerg/row[@no="+(assertionRownr-1)+"]/col[@id="+(assertionColnr-1)+"]/wert"; |
||||
XPath expression = new JDOMXPath(xpathStr); |
||||
Element myNode = (Element) expression.selectSingleNode(doc); |
||||
if(myNode==null) |
||||
return null; |
||||
else |
||||
{ |
||||
String myNodeVal=myNode.getTextNormalize(); |
||||
return foundval.parseDouble(myNodeVal); |
||||
} |
||||
|
||||
} |
||||
private static String getResultXml(MockHttpServletRequest mock_par, MockHttpServletResponse mockResponse_par, |
||||
Maske maske, SxUser user_par, Locale desiredLocale) { |
||||
String currentXml_local = null; |
||||
maske.setMaxOffset(10000000); |
||||
maske.setReuseResult(false); |
||||
maske.resetTableStylesheet(); |
||||
maske.setSelectedTableStylesheetFileAndContenttype("tabelle_xml.xsl"); |
||||
maske.setDesiredContenttype("text/xml"); |
||||
try { |
||||
currentXml_local = maske.runQuery(user_par, mock_par, null).toString(); |
||||
resultLog=("Ausgabe Maskenprotokoll\n" + SuperXManager.activityLog.toString()); |
||||
System.out.println("Maskenergebnis wird lokalisiert"); |
||||
currentXml_local = SxPools.get(mandantenID).localize(currentXml_local, desiredLocale); |
||||
|
||||
} catch (Exception e) { |
||||
resultLog="Fehler beim Erstellen des XML für Maske " + e.toString(); |
||||
System.err.println("Fehler beim Erstellen des XML für Maske " + e.toString()); |
||||
} |
||||
return currentXml_local; |
||||
|
||||
} |
||||
} |
||||
|
||||
|
||||
|
@ -0,0 +1,155 @@
@@ -0,0 +1,155 @@
|
||||
package de.superx.qa.util; |
||||
|
||||
|
||||
import java.util.StringTokenizer; |
||||
|
||||
/** |
||||
* Original von de.memtext.util.GetOpts, |
||||
* für Abwärtskompatibilität mit Kern 4.9/BI 2022.12 |
||||
* |
||||
*/ |
||||
public class GetOpts { |
||||
private static String[] arguments = null; |
||||
|
||||
//don't instantiate
|
||||
private GetOpts() { |
||||
|
||||
} |
||||
|
||||
/** |
||||
* If you pass the arguments you want to analyse to this static helper class
|
||||
* using setOpts, you can later use the short form of the methods e.g. |
||||
* isPresent(String option) without having to pass the arguments again. |
||||
* |
||||
* @param args |
||||
*/ |
||||
public static void setOpts(String args[]) { |
||||
arguments = args; |
||||
} |
||||
|
||||
/** |
||||
* checks if the arguments passed before by setOpts contain the given option |
||||
* |
||||
* @param String |
||||
* option |
||||
* @return true if arguments contain the option, i.e. one String which |
||||
* starts with the option-String |
||||
*/ |
||||
public static boolean isPresent(String option) { |
||||
if (arguments == null) |
||||
throw new IllegalStateException( |
||||
"must either use setOpts before or call the long version of this method"); |
||||
return isPresent(arguments, option); |
||||
} |
||||
|
||||
/** |
||||
* checks if the arguments contain the given option |
||||
* |
||||
* @param args |
||||
* @param String |
||||
* option |
||||
* @return true if arguments contain the option, i.e. one String which |
||||
* starts with the option-String |
||||
*/ |
||||
public static boolean isPresent(String args[], String option) { |
||||
boolean result = false; |
||||
for (int i = 0; i < args.length; i++) |
||||
if (args[i] != null && args[i].startsWith(option)) |
||||
result = true; |
||||
return result; |
||||
} |
||||
|
||||
/** |
||||
* Gets a named option from the arguments passed before with setOps. E.g. |
||||
* getOpt("--log") would return the "--log:true" in the arguments |
||||
* |
||||
* @param option - |
||||
* name/start of the option |
||||
* @return String whole option |
||||
*/ |
||||
public static String getOpt(String option) { |
||||
if (arguments == null) |
||||
throw new IllegalStateException( |
||||
"must either use setOpts before or call the long version of this method"); |
||||
return getOpt(option, arguments); |
||||
} |
||||
|
||||
/** |
||||
* Gets a named option from the arguments. E.g. getOpt("--log") would return |
||||
* the "--log:true" in the arguments |
||||
* |
||||
* @param option - |
||||
* name/start of the option |
||||
* @return String whole option |
||||
*/ |
||||
public static String getOpt(String option, String args[]) { |
||||
if (args == null) |
||||
throw new IllegalStateException("args must not be null"); |
||||
String result = null; |
||||
for (int i = 0; i < args.length; i++) |
||||
if (args[i].startsWith(option)) |
||||
result = args[i]; |
||||
if (result == null) |
||||
throw new RuntimeException("Option " + option + " not found!"); |
||||
return result; |
||||
} |
||||
|
||||
/** |
||||
* Gets the value of an option from the arguments passed before with setOpts |
||||
* if for example, you ask getValue("--log:") and the arguments passed |
||||
* before with setOpts contain a String "--log:true") "true" is returned |
||||
* |
||||
* @param String |
||||
* option |
||||
* @return String value of the option |
||||
*/ |
||||
public static String getValue(String option) { |
||||
if (arguments == null) |
||||
throw new IllegalStateException( |
||||
"must either use setOpts before or call the long version of this method"); |
||||
return getValue(option, arguments); |
||||
} |
||||
|
||||
/** |
||||
* Gets the value of an option, if for example, you ask getValue("--log:") |
||||
* and the arguments passed before with setOpts contain a String |
||||
* "--log:true") "true" is returned |
||||
* |
||||
* @param String |
||||
* option |
||||
* @return String value of the option |
||||
*/ |
||||
public static String getValue(String option, String args[]) { |
||||
String result = ""; |
||||
String raw = getOpt(option, args); |
||||
int pos = option.length(); |
||||
if (raw.charAt(pos) == ':') |
||||
pos++; |
||||
result = raw.substring(pos, raw.length()); |
||||
return result; |
||||
} |
||||
|
||||
/** |
||||
* Prüft, ob alle notwendigen Optionen angegeben sind, z.B. String |
||||
* "-loggingProperties:,-dbProperties" übergeben, die beiden müssen dabei |
||||
* sein |
||||
* |
||||
* @param options |
||||
* z.B. "-loggingProperties:,-dbProperties,..." |
||||
* @return null - alles OK, ansonsten String mit den fehlenden Optionen |
||||
*/ |
||||
public static String isAllRequiredOptionsPresent(String options) { |
||||
String result = null; |
||||
StringTokenizer st = new StringTokenizer(options, ","); |
||||
for (; st.hasMoreTokens();) { |
||||
String optionName = st.nextToken(); |
||||
if (!isPresent(optionName)) { |
||||
if (result == null) |
||||
result = optionName; |
||||
else |
||||
result += "," + optionName; |
||||
} |
||||
} |
||||
return result; |
||||
} |
||||
} |
@ -1,42 +0,0 @@
@@ -1,42 +0,0 @@
|
||||
#!/bin/bash |
||||
# Zuerst SQL_ENV laden |
||||
. /home/superx/db/bin/SQL_ENV |
||||
|
||||
# Verzeichnis in dem Die Dateien abgelegt werden sollen |
||||
export FILE_DIR="$QA_PFAD" |
||||
# Dateiname |
||||
export FILE_NAME="Masken-Ausführung_Protokoll" |
||||
# Masken TID |
||||
export MASKEN_TID=37020 |
||||
# Datum für das Feld "Ab Datum" |
||||
export DATUM_EXEC=$(date "+%d.%m.%Y") |
||||
# Masken Parameter; Ausführungs-Status=1,2 (1=Warnung;2=Fehler) |
||||
export MASK_PARAM="Ausführungs-Status=1,2&Ab Datum=${DATUM_EXEC}" |
||||
|
||||
# ExecuteMask funktioniert nur im WEB-INF Ordner |
||||
cd $WEBAPP/WEB-INF |
||||
|
||||
# PDF |
||||
java -cp "$JDBC_CLASSPATH" $JAVA_OPTS de.superx.bin.ExecuteMask -tid:$MASKEN_TID -out:$FILE_DIR/$FILE_NAME.pdf -user:admin "-params:${MASK_PARAM}&stylesheet=tabelle_fo_pdf.xsl&contenttype=application/pdf" -logger:$SUPERX_DIR/db/conf/logging.properties |
||||
|
||||
# XML |
||||
#java -cp "$JDBC_CLASSPATH" $JAVA_OPTS de.superx.bin.ExecuteMask -tid:$MASKEN_TID -out:$FILE_DIR/$FILE_NAME.xml -user:admin "-params:${MASK_PARAM}&stylesheet=tabelle_fo_pdf.xsl&contenttype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" -logger:$SUPERX_DIR/db/conf/logging.properties |
||||
|
||||
# CSV |
||||
java -cp "$JDBC_CLASSPATH" $JAVA_OPTS de.superx.bin.ExecuteMask -tid:$MASKEN_TID -out:$FILE_DIR/$FILE_NAME.csv -user:admin "-params:${MASK_PARAM}&stylesheet=tabelle_fo_pdf.xsl&contenttype=text/csv" -logger:$SUPERX_DIR/db/conf/logging.properties |
||||
|
||||
# Verzeichnis in dem die Dateien abgelegt wurden. Zum zählen und verschicken. |
||||
cd $FILE_DIR |
||||
sed -i 's/\^/ \| /g' $FILE_DIR/$FILE_NAME.csv |
||||
|
||||
#Zuerst Warnungen und Fehler zählen |
||||
export W_ANZ=$(grep -c Warnung $FILE_DIR/$FILE_NAME.csv) |
||||
export F_ANZ=$(grep -c Fehler $FILE_DIR/$FILE_NAME.csv) |
||||
|
||||
#Mail Versand |
||||
# Vor der Pipe kommt der Text, der als Nachricht verschickt werden soll |
||||
# -r ist die ausgehende Mailadresse |
||||
# -s ist Subjekt|Betreff |
||||
# -a Datei für den Anhang |
||||
# und am Ende noch Empfänger der Mail. |
||||
cat $FILE_DIR/$FILE_NAME.csv | mailx -r superx@localhost -s "Masken-Ausführung Protokoll | $W_ANZ Warnungen | $F_ANZ Fehler" -a $FILE_DIR/$FILE_NAME.pdf "${LOGMAIL}" |
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
#!/bin/bash |
||||
|
||||
TC_UNIQUENAME=$1 |
||||
SYSTEMINFO=$2 |
||||
|
||||
ARG1="" |
||||
ARG2="" |
||||
|
||||
if [ "$TC_UNIQUENAME" != "" ] ; then |
||||
ARG1="-tc:$TC_UNIQUENAME" |
||||
fi |
||||
if [ "$SYSTEMINFO" != "" ] ; then |
||||
ARG2="-systeminfo_id:$SYSTEMINFO" |
||||
fi |
||||
|
||||
java -cp "$JDBC_CLASSPATH" $JAVA_OPTS de.superx.qa.bin.QaTestcaseExecutor -logger:$SUPERX_DIR/db/conf/logging.properties -dbproperties:$DB_PROPERTIES "$ARG1" "$ARG2" |
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash |
||||
|
||||
# Verzeichnis in dem Die Dateien abgelegt werden sollen |
||||
FILE_DIR="$QA_PFAD/etl/mask_execution/tmp" |
||||
FILE_DIR="$QA_PFAD/tmp" |
||||
mkdir -p $FILE_DIR |
||||
|
||||
# Dateiname |
Binary file not shown.
Loading…
Reference in new issue