All Downloads are FREE. Search and download functionalities are using the official Maven repository.

no.tsl2.nano.h5.2.5.1.source-code.mda.xml Maven / Gradle / Ivy

Go to download

TSL2 Framework Html5 Extensions (WebServer, Html5Presentation, RuleCover, BeanConfigurator, LogicTable-Sheet, Expression-Descriptors for Actions, Rules, URLs, Queries)

There is a newer version: 2.5.2
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<!--
	1. creates and starts a (hsqldb or h2) database through a given user/password and sql-ddl file
	2. calls reverse-eng.xml to generate java entity beans, compiling and packing them into a jar file
-->
<project name="model driven generator" default="do.all" basedir=".">
	<!-- properties are load in target "do.all" -->

	<target name="help" description="help overview">
		<echo message="please use one of these targets: do.all"/>
	</target>

	<path id="stdpath">
		<fileset dir="${basedir}">
			<include name="**"/>
		</fileset>
	</path>
	<path id="classpath">
		<fileset dir="${basedir}">
			<include name="**/*.jar"/>
			<include name="generated-bin/**/*.class"/>
		</fileset>
	</path>

	<!-- creates a user/schema, drops and creates tables -->
	<target name="create.database">
		<echo>
**********************************************************
creating database: ${jdbc.url}
	script-set   : ${jdbc.database}
	user         : ${jdbc.username}
**********************************************************
		</echo>

		<echo file="createuser.sql">
CREATE USER ${jdbc.username} PASSWORD '${jdbc.password}' ADMIN;
GRANT DBA to ${jdbc.username};
commit;
CREATE SCHEMA ${jdbc.scheme} AUTHORIZATION DBA;
SET SCHEMA ${jdbc.scheme};
commit;
GRANT ALL ON ALL TABLES IN SCHEMA PUBLIC TO ${jdbc.username};
commit;
SET DATABASE DEFAULT INITIAL SCHEMA ${jdbc.scheme};
commit;

-- following lines are hsqldb compatibility modes:
SET DATABASE SQL SYNTAX DB2 TRUE;
SET DATABASE SQL SYNTAX MYS TRUE;
SET DATABASE SQL SYNTAX MSS TRUE;
SET DATABASE SQL SYNTAX ORA TRUE;
SET DATABASE SQL SYNTAX PGS TRUE;
commit;

-- following lines are h2 compatibility modes:
SET NON_KEYWORDS;
SET MODE LEGACY;
--			REGULAR;
--			STRICT;	
--			DB2;
--			DERBY;	
--			HSQLDB;	
--			MSSQLSERVER;	
--			MYSQL;
--			ORACLE;	
--			POSTGRESQL;	
commit;
		</echo>

		<echo message="preparing database..." />
		<!-- do some database-specific WORKAROUNDs -->
	    <!-- <replaceregexp flags="i">
	        <fileset dir="${src.dir}"><include name="*${jdbc.database}*.sql"/></fileset>
            <regexp pattern="(&quot;|[\s\(\'\´]+)(BEGIN|END|DATE|DAY|ALL|CHECK|CONSTRAINT|CROSS|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|DISTINCT|EXCEPT|EXISTS|FALSE|FETCH|FOR|FOREIGN|FROM|FULL|GROUP|HAVING|INNER|INTERSECT|IS|JOIN|LIKE|LIMIT|MINUS|NATURAL|NOT|NULL|OFFSET|ON|ORDER|PRIMARY|ROWNUM|SELECT|SYSDATE|SYSTIME|SYSTIMESTAMP|TODAY|TRUE|UNION|UNIQUE|WHERE|WITH)(&quot;|[\s\'\`\)]+)"/>
	        <substitution expression="\1\2_w\3"/>
	    </replaceregexp> -->
		<!-- WORKAROUND END -->
		
		<echo message="creating user..." />
		<ant antfile="shell.xml" target="sh.sql">
			<property name="sh.sql.include" value="createuser.sql"/>
			<property name="sh.sql.onerror" value="continue"/>
		</ant>
		<echo message="" file="drop-dummy-${jdbc.database}.sql" />
		<parallel failonany="false"> <!-- parallel as workaround: if no script exists, we don't want to stop! -->
			<echo message="cleaning database..." />
			<ant antfile="shell.xml" target="sh.sql">
				<property name="sh.sql.include" value="*drop*${jdbc.database}*.sql" />
				<property name="sh.sql.onerror" value="continue" />
			</ant>
		</parallel>
		<echo message="creating database..." />
		<ant antfile="shell.xml" target="sh.sql">
			<property name="sh.sql.include" value="*${jdbc.database}*.sql"/>
			<property name="sh.sql.exclude" value="*drop*.sql"/>
			<property name="sh.sql.exclude2" value="*init*.sql"/>
			<property name="sh.sql.exclude3" value="createuser.sql"/>
				<property name="sh.sql.onerror" value="continue" />
		</ant>

		<echo message="" file="init-dummy-${jdbc.database}.sql" />
		<parallel failonany="false"> <!-- parallel as workaround: if no script exists, we don't want to stop! -->
			<echo message="filling data..." />
			<ant antfile="shell.xml" target="sh.sql">
				<property name="sh.sql.include" value="*init*${jdbc.database}*.sql" />
				<property name="sh.sql.onerror" value="continue" />
			</ant>
		</parallel>
	</target>

	<target name="init.jdbc.connection">
		<property file="${basedir}/mda.properties" />
		<property file="${basedir}/jdbc-connection.properties"/>
	</target>

	<target name="create.db.server.run.file" depends="init.jdbc.connection">
		<!-- on windows we start the hsqldb/h2 in a new shell - as background process -->
		<condition property="start" value="start" else="">
			<!-- <equals casesensitive="false" arg1="${env.os.name}" arg2="windows" /> -->
			<contains string="${os.name}" substring="windows" casesensitive="false"/>
		</condition>
		<!-- on linux we need to start hsqldb/h2 in a background process -->
		<condition property="background" value="" else="&amp;">
			<contains string="${os.name}" substring="windows" casesensitive="false"/>
		</condition>
		<condition property="cmdargs" value="%* ${background}" else="$* ${background}">
			<contains string="${os.name}" substring="windows" casesensitive="false"/>
		</condition>
		<condition property="cmdpref" value="" else="">
			<contains string="${os.name}" substring="windows" casesensitive="false"/>
		</condition>
		<!-- on windows we can't constrain with a real filter -->
		<condition property="dbprovider" value="hsqldb" else="h2">
			<contains string="${jdbc.driver}" substring="hsqldb" casesensitive="true"/>
		</condition>
		<condition property="cp" value="&quot;*&quot;" else="&quot;*&quot;"> <!--else="${dbprovider}*.jar"  -->
			<contains string="${os.name}" substring="windows" casesensitive="false"/>
		</condition>
		<condition property="cmdline"
			value="${cmdpref}java -cp ${cp} org.hsqldb.Server -database.0 file:${jdbc.database} -port ${jdbc.port} -silent false -trace true ${cmdargs}" 
			else="${cmdpref}java -cp ${cp} org.h2.tools.Server -baseDir ${basedir} -tcp -tcpPort ${jdbc.port} -trace -ifNotExists ${cmdargs}">
			<contains string="${jdbc.driver}" substring="hsqldb" casesensitive="true"/>
		</condition>
		<condition property="dotslash" value="" else="./">
			<contains string="${os.name}" substring="windows" casesensitive="false"/>
		</condition>
		<echo file="runServer.cmd">${cmdline}</echo>
		<chmod perm="+x" file="runServer.cmd" />
	</target>
	
	<target name="run.db.server" depends="create.db.server.run.file">
		<!-- start the database with name ${basedir} -->
		<!-- optional but unsecure:  -web -webDaemon -tcpAllowOthers -->
		<ant antfile="shell.xml" target="sh.exec.cmd">
			<property name="sh.exec.cmd.dir" value="${basedir}"/>
			<property name="sh.exec.cmd.arg1" value="${start}"/>
			<property name="sh.exec.cmd.arg2" value="${dotslash}runServer.cmd"/>
			<property name="sh.exec.cmd.arg3" value="${background}"/>
		</ant>
	</target>

	<target name="do.all" depends="init.jdbc.connection" description="creates database from ddl and entity beans from jdbc-connection">

		<parallel failonany="true">
			<!-- first, start the database server and wait... -->
			<antcall target="run.db.server" />
			<sequential>
				<property name="sh.sleep.milliseconds" value="3000" />
				<ant antfile="shell.xml" target="sh.sleep"/>

				<!-- create the database -->
				<antcall target="create.database"/>

				<!-- create the beans jar file -->
				<ant antfile="reverse-eng.xml" />

				<!-- start the nano-h5 application if not started from there. -->
				<condition property="sh.disable.exec.cmd" value="true">
					<istrue value="${nano.h5.running}"/>
				</condition>
				<ant antfile="shell.xml" target="sh.exec.cmd">
					<property name="sh.exec.cmd.dir" value="${basedir}/.."/>
					<property name="sh.exec.cmd.arg1" value="${start}"/>
					<property name="sh.exec.cmd.arg2" value="run.bat"/>
					<property name="sh.exec.cmd.arg3" value="${basedir}"/>
					<property name="sh.exec.cmd.arg4" value="${background}"/>
				</ant>
				<fail message="mda generation task successful finished!"/>
			</sequential>
		</parallel>
		<echo message="mda generation finished!"/>
	</target>

</project>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy