https://github.com/liflab/beepbeep-3-palettes
Tip revision: 1c5753e1c9851ebb0e7c99db113a600b7afbe324 authored by Sylvain Hallé on 23 November 2023, 19:28:17 UTC
New signatures for UpdateTableStream and UpdateTableArray
New signatures for UpdateTableStream and UpdateTableArray
Tip revision: 1c5753e
build.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
A build script for a super-project containing multiple sub-projects
Copyright (C) 2019-2023 Sylvain Hallé
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<project
name="SuperProject"
default="all"
basedir="."
xmlns:jacoco="antlib:org.jacoco.ant">
<!-- The project's display name -->
<property name="build.name" value="BeepBeep 3 Palettes"/>
<!-- The bundle's version -->
<property name="build.version" value="0.7"/>
<!-- The author -->
<property name="build.author" value="Sylvain Hallé"/>
<!-- The folder containing lib files for this super-script -->
<property name="build.libdir" value="lib"/>
<!--Javadoc folder. Used to place the files generated by the javadoc task -->
<property name="build.rootdocdir" value="docs/javadoc"/>
<!-- Versions of various dependencies -->
<property name="versions.jacoco" value="0.8.8"/>
<!-- Pattern designating a test file (source or binary) -->
<property name="build.test.filenamepattern" value="**/*Test.*"/>
<!-- Check if ant-contrib is present -->
<available file="${build.libdir}/ant-contrib-1.0b3.jar" property="antcontrib.present"/>
<!-- Load ant-contrib -->
<target name="init" depends="ant-contrib">
<taskdef resource="net/sf/antcontrib/antlib.xml"
classpath="${build.libdir}/ant-contrib-1.0b3.jar"/>
</target>
<!-- Download ant-contrib -->
<target name="ant-contrib" unless="antcontrib.present"
description="Install ant-contrib if not present">
<echo message="ant-contrib is not installed. Downloading..." level="info"/>
<mkdir dir="${build.libdir}"/>
<get src="http://sylvainhalle.github.io/AntRun/dependencies/ant-contrib-1.0b3-bin.zip"
dest="${build.libdir}/ant-contrib-1.0b3-bin.zip"/>
<unzip src="${build.libdir}/ant-contrib-1.0b3-bin.zip" dest="${build.libdir}">
<patternset>
<include name="**/*.jar"/>
</patternset>
<mapper type="flatten"/>
</unzip>
</target>
<!-- Create paths -->
<mkdir dir="${build.libdir}"/>
<mkdir dir="jars"/>
<!-- Calls the "jar" task in each subfolder -->
<target name="jar" depends="init,prepare">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<trycatch>
<try>
<ant dir="@{subdir}" target="jar" />
</try>
<catch>
<echo message="Build failed for folder @{subdir}"/>
<property name="build.onefailed" value="true"/>
</catch>
</trycatch>
</then>
</if>
</sequential>
</for>
<fail message="Build failed for one of the palettes" if="build.onefailed"/>
</target>
<!-- Creates a "fat JAR" including the JARs of all palettes -->
<target name="fat-jar">
<zip destfile="beepbeep-palettes-${build.version}.jar">
<zipgroupfileset dir="jars" includes="*-${build.version}.jar"/>
</zip>
<zip destfile="beepbeep-palettes-${build.version}-sources.jar">
<zipgroupfileset dir="jars" includes="*-${build.version}-sources.jar"/>
</zip>
<zip destfile="beepbeep-palettes-${build.version}-javadoc.jar">
<zipgroupfileset dir="jars" includes="*-${build.version}-javadoc.jar"/>
</zip>
</target>
<!-- Calls the "show-properties" task in each subfolder -->
<target name="show-properties" depends="init">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<ant dir="@{subdir}" target="show-properties" />
</then>
</if>
</sequential>
</for>
</target>
<!-- Calls the "download-deps" task in each subfolder -->
<target name="download-deps" depends="init">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<sequential>
<echo message="Entering @{subdir}" />
<ant dir="@{subdir}" target="download-deps" />
</sequential>
</then>
</if>
</sequential>
</for>
</target>
<!-- Calls the "test" task in each subfolder -->
<target name="test" depends="init">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<sequential>
<echo message="Entering @{subdir}" />
<trycatch>
<try>
<ant dir="@{subdir}" target="test" />
</try>
<catch>
<echo message="Tests failed for folder @{subdir}"/>
<property name="test.onefailed" value="true"/>
</catch>
</trycatch>
</sequential>
</then>
</if>
</sequential>
</for>
<fail message="Tests failed for one of the palettes" if="test.onefailed"/>
</target>
<target name="junit-report">
<!-- For the junit-report task, it is sufficient to call the task of a single sub-project -->
<ant dir="Apache" usenativebasedir="true" target="junit-report" />
</target>
<target name="jacoco-report" depends="init,jacoco">
<!-- Call the jacoco-report task on children -->
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<sequential>
<echo message="Entering @{subdir}" />
<trycatch>
<try>
<ant dir="@{subdir}" usenativebasedir="true" target="jacoco-report" />
</try>
<catch>
<echo message="Report failed for folder @{subdir}"/>
</catch>
</trycatch>
</sequential>
</then>
</if>
</sequential>
</for>
<!-- Load JaCoCo -->
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="${build.libdir}/jacocoant.jar"/>
</taskdef>
<mkdir dir="coverage"/>
<jacoco:merge destfile="coverage/merged.exec">
<fileset dir="Apache/tests/coverage" includes="*.exec"/>
<fileset dir="Complex/tests/coverage" includes="*.exec"/>
<fileset dir="Diagnostics/tests/coverage" includes="*.exec"/>
<fileset dir="Dsl/tests/coverage" includes="*.exec"/>
<fileset dir="Fol/tests/coverage" includes="*.exec"/>
<fileset dir="Fsm/tests/coverage" includes="*.exec"/>
<fileset dir="Graphviz/tests/coverage" includes="*.exec"/>
<!-- <fileset dir="Groovy/tests/coverage" includes="*.exec"/> Not yet -->
<fileset dir="Hibernate/tests/coverage" includes="*.exec"/>
<fileset dir="Http/tests/coverage" includes="*.exec"/>
<fileset dir="Jdbc/tests/coverage" includes="*.exec"/>
<fileset dir="Json/tests/coverage" includes="*.exec"/>
<fileset dir="Ltl/tests/coverage" includes="*.exec"/>
<fileset dir="Mtnp/tests/coverage" includes="*.exec"/>
<fileset dir="Provenance/tests/coverage" includes="*.exec"/>
<fileset dir="Serialization/tests/coverage" includes="*.exec"/>
<fileset dir="Signal/tests/coverage" includes="*.exec"/>
<fileset dir="Tuples/tests/coverage" includes="*.exec"/>
<fileset dir="WebSocket/tests/coverage" includes="*.exec"/>
<fileset dir="Widgets/tests/coverage" includes="*.exec"/>
<fileset dir="Xml/tests/coverage" includes="*.exec"/>
</jacoco:merge>
<jacoco:report>
<executiondata>
<file file="coverage/merged.exec"/>
</executiondata>
<structure name="${build.name}">
<classfiles>
<fileset dir="Apache/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Complex/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Diagnostics/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Dsl/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Fol/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Fsm/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Graphviz/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<!-- <fileset dir="Groovy/bin">
</fileset> Not yet -->
<fileset dir="Hibernate/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Http/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Jdbc/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Json/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Ltl/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Mtnp/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Provenance/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Serialization/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Signal/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Tuples/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="WebSocket/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Widgets/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
<fileset dir="Xml/bin">
<exclude name="${build.test.filenamepattern}"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="Apache/src"/>
<fileset dir="Complex/src"/>
<fileset dir="Diagnostics/src"/>
<fileset dir="Dsl/src"/>
<fileset dir="Fol/src"/>
<fileset dir="Fsm/src"/>
<fileset dir="Graphviz/src"/>
<!-- <fileset dir="Groovy/src"/> Not yet -->
<fileset dir="Hibernate/src"/>
<fileset dir="Http/src"/>
<fileset dir="Jdbc/src"/>
<fileset dir="Json/src"/>
<fileset dir="Ltl/src"/>
<fileset dir="Mtnp/src"/>
<fileset dir="Provenance/src"/>
<fileset dir="Serialization/src"/>
<fileset dir="Signal/src"/>
<fileset dir="Tuples/src"/>
<fileset dir="WebSocket/src"/>
<fileset dir="Widgets/src"/>
<fileset dir="Xml/src"/>
</sourcefiles>
</structure>
<html destdir="coverage"/>
<xml destfile="tests/report.xml"/>
</jacoco:report>
</target>
<target name="report" depends="junit-report,jacoco-report">
<!-- Just call the two dependent tasks -->
</target>
<!-- Calls the "clean" task in each subfolder -->
<target name="clean" depends="init">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<sequential>
<echo message="Entering @{subdir}" />
<ant dir="@{subdir}" target="clean" />
</sequential>
</then>
</if>
</sequential>
</for>
<echo message="Deleting jars dir" />
<delete dir="jars" includes="*.jar" />
<delete dir="docs" />
</target>
<!-- Calls the "wipe" task in each subfolder -->
<target name="wipe" depends="init">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<sequential>
<echo message="Entering @{subdir}" />
<ant dir="@{subdir}" target="wipe" />
</sequential>
</then>
</if>
</sequential>
</for>
</target>
<!-- Calls the jar task for each project -->
<target name="all" depends="init,jar">
</target>
<!-- Prints the name of each subfolder that has a build script -->
<target name="print-folders" depends="init">
<for param="subdir">
<dirset dir=".">
<include name="*"/>
</dirset>
<sequential>
<if>
<available file="@{subdir}/build.xml"/>
<then>
<echo message="@{subdir}"/>
</then>
</if>
</sequential>
</for>
</target>
<!-- Builds the javadoc for the palettes -->
<target name="javadoc" depends="init">
<mkdir dir="${build.rootdocdir}"/>
<mkdir dir="${build.rootdocdir}/doc-files"/>
<javadoc
overview="project-overview.html"
destdir="${build.rootdocdir}"
packagenames="*"
excludepackagenames=""
defaultexcludes="yes"
author="true"
version="true"
use="true"
Encoding="utf8"
docencoding="utf8"
charset="utf8"
windowtitle="BeepBeep 3 Palettes API Reference">
<doctitle><![CDATA[<h1>]]>${build.name}<![CDATA[ Documentation</h1>]]></doctitle>
<bottom><![CDATA[<i>Copyright © ]]>${build.author}<![CDATA[. All Rights Reserved.</i>]]></bottom>
<link href="http://docs.oracle.com/javase/8/docs/api/"/>
<fileset dir="Apache/src">
<include name="**"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Complex/src">
<include name="**"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Diagnostics/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Dsl/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Fol/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Fsm/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Hibernate/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Hibernate/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Http/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Jdbc/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Json/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Mtnp/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Provenance/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Serialization/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Signal/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Tuples/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="WebSocket/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Widgets/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<fileset dir="Xml/src">
<include name="**/*.java"/>
<exclude name="**/*Test.java"/>
</fileset>
<!-- No groups, as each palette is in its own package
<group title="Apache" packages="ca.uqac.lif.cep.apache"/>
<group title="Complex" packages="ca.uqac.lif.cep.complex"/>
<group title="Diagnostics" packages="ca.uqac.lif.cep.diagnostics"/>
<group title="Dsl" packages="ca.uqac.lif.cep.dsl"/>
<group title="Fol" packages="ca.uqac.lif.cep.fol"/>
<group title="Fsm" packages="ca.uqac.lif.cep.fsm"/>
<group title="Graphviz" packages="ca.uqac.lif.cep.graphviz"/>
<group title="Hibernate" packages="ca.uqac.lif.cep.hibernate"/>
<group title="Http" packages="ca.uqac.lif.cep.http"/>
<group title="Jdbc" packages="ca.uqac.lif.cep.jdbc"/>
<group title="Json" packages="ca.uqac.lif.cep.json"/>
<group title="Mtnp" packages="ca.uqac.lif.cep.mtnp"/>
<group title="Provenance" packages="ca.uqac.lif.cep.provenance"/>
<group title="Serialization" packages="ca.uqac.lif.cep.serialization"/>
<group title="Signal" packages="ca.uqac.lif.cep.signal"/>
<group title="Tuples" packages="ca.uqac.lif.cep.tuples"/>
<group title="WebSocket" packages="ca.uqac.lif.cep.websocket"/>
<group title="Widgets" packages="ca.uqac.lif.cep.widgets"/>
<group title="Xml" packages="ca.uqac.lif.cep.xml"/>
-->
<classpath>
<fileset file="Apache/lib/beepbeep*.jar"/>
<fileset file="Dsl/dep/*.jar"/>
<fileset file="Http/dep/*.jar"/>
<fileset file="Json/dep/*.jar"/>
<fileset file="Mtnp/dep/*.jar"/>
<fileset file="Serialization/dep/*.jar"/>
<fileset file="WebSocket/dep/*.jar"/>
<fileset file="Xml/dep/*.jar"/>
</classpath>
</javadoc>
<copy todir="docs/javadoc/doc-files">
<!-- <fileset dir="Apache/src/doc-files"/> No such folder -->
<!-- <fileset dir="Complex/src/doc-files"/> No such folder -->
<!-- <fileset dir="Diagnostics/src/doc-files"/> No such folder -->
<!-- <fileset dir="Dsl/src/doc-files"/> No such folder -->
<!-- <fileset dir="Fol/src/doc-files"/> No such folder -->
<!-- <fileset dir="Fsm/src/doc-files"/> No such folder -->
<!-- <fileset dir="Graphviz/src/doc-files"/> No such folder -->
<!-- <fileset dir="Groovy/src/doc-files"/> Not yet -->
<!-- <fileset dir="Hibernate/src/doc-files"/> No such folder -->
<fileset dir="Http/src/doc-files"/>
<!-- <fileset dir="Jdbc/src/doc-files"/> No such folder -->
<!-- <fileset dir="Json/src/doc-files"/> No such folder -->
<!-- <fileset dir="Ltl/src/doc-files"/> No such folder -->
<!-- <fileset dir="Mtnp/src/doc-files"/> No such folder -->
<!-- <fileset dir="Provenance/src/doc-files"/> No such folder -->
<fileset dir="Serialization/src/doc-files"/>
<!-- <fileset dir="Signal/src/doc-files"/> No such folder -->
<!-- <fileset dir="Tuples/src/doc-files"/> No such folder -->
<!-- <fileset dir="WebSocket/src/doc-files"/> No such folder -->
<!-- <fileset dir="Widgets/src/doc-files"/> No such folder -->
<!-- <fileset dir="Xml/src/doc-files"/> No such folder -->
</copy>
</target>
<!-- Task that prepares the environment before the compilation.
This is mostly a *hack* so that the Jdbc palette, which depends on
Tuples, can compile by copying tuples.jar to its dep dir. -->
<target name="prepare" depends="init">
<copy file="jars/tuples.jar" tofile="Jdbc/lib/tuples.jar" failonerror="false"/>
</target>
<!-- Target: jacoco
Download JaCoCo if not present, and put it in the lib folder
-->
<property name="jacoco.jarname" value="jacocoant.jar"/>
<condition property="jacoco.absent" value="false" else="true">
<available file="${build.libdir}/${jacoco.jarname}"/>
</condition>
<target name="jacoco" if="${jacoco.absent}" description="Install JaCoCo if not present">
<mkdir dir="${build.libdir}"/>
<get src="https://github.com/jacoco/jacoco/releases/download/v${versions.jacoco}/jacoco-${versions.jacoco}.zip" dest="${build.libdir}/jacoco.zip"/>
<unzip src="${build.libdir}/jacoco.zip" dest="${build.libdir}">
<patternset>
<include name="**/*.jar"/>
</patternset>
<mapper type="flatten"/>
</unzip>
</target>
</project>