| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| http://www.apache.org/licenses/LICENSE-2.0 |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <project name="edgent" default="DoNotUseAnt" |
| xmlns:jacoco="antlib:org.jacoco.ant" |
| > |
| <description> |
| Top-level build.xml for Edgent. |
| </description> |
| |
| <property name="release.base" location="release-${ant.project.name}"/> |
| |
| <property name="edgent.version" value="0.4.0"/> |
| |
| <property name="report.dir" location="reports"/> |
| <property name="target.dir" location="target"/> |
| <property name="javadoc.dir" location="${target.dir}/docs/javadoc"/> |
| <property name="release.dir" location="${release.base}"/> |
| |
| <target name="DoNotUseAnt"> |
| <fail message="The ant tooling is no longer functional. See README."/> |
| </target> |
| |
| <target name="all" depends="DoNotUseAnt,init,suball,copy,docs" |
| description="Build the code and Javadoc into target. Requires Java 8" |
| /> |
| |
| <target name="init" depends="setcommitversion"> |
| <mkdir dir="${target.dir}"/> |
| </target> |
| |
| <target name="setcommitversion"> |
| <!-- Create the time stamp --> |
| <tstamp/> |
| |
| <!-- Extract the git commit hash --> |
| <exec executable="git" outputproperty="commithash" errorproperty="commithash.error"> |
| <arg value="rev-parse"/> |
| <arg value="--short"/> |
| <arg value="HEAD"/> |
| </exec> |
| <mkdir dir="${target.dir}"/> |
| <echoproperties destfile="${target.dir}/version.txt"> |
| <propertyset> |
| <propertyref name="edgent.version"/> |
| <propertyref name="DSTAMP"/> |
| <propertyref name="TSTAMP"/> |
| <propertyref name="commithash"/> |
| <propertyref name="commithash.error"/> |
| </propertyset> |
| </echoproperties> |
| </target> |
| |
| <target name="copy"> |
| <!-- copy README.md --> |
| <copy todir="${target.dir}" file="README.md"/> |
| <copy todir="${target.dir}" file="LICENSE"/> |
| |
| <!-- copy scripts --> |
| <mkdir dir="${target.dir}/java8/scripts"/> |
| <copy todir="${target.dir}/java8/scripts" includeEmptyDirs="no"> |
| <fileset dir="scripts"/> |
| </copy> |
| |
| <!-- copy sample code --> |
| <mkdir dir="${target.dir}/java8/samples/src"/> |
| <copy todir="${target.dir}/java8/samples/src" includeEmptyDirs="no"> |
| <fileset dir="samples" includes="**/*.java" excludes="**/build.xml **/test/**"/> |
| </copy> |
| |
| </target> |
| |
| <target name="suball"> |
| <subprojects target="all"/> |
| </target> |
| <target name="test" depends="DoNotUseAnt" |
| description="Run all JUnit tests. Requires Java 8" |
| > |
| <echo message="HINT: to include tests for some connectors do: ant -Dtest.base.pattern='**/*TestManual.java' test"/> |
| <subprojects target="test"/> |
| </target> |
| <target name="clean"> |
| <subprojects target="clean"/> |
| <delete dir="${report.dir}"/> |
| <delete dir="${javadoc.dir}"/> |
| <delete dir="${release.dir}"/> |
| <delete dir="${target.dir}"/> |
| </target> |
| |
| <macrodef name="subprojects"> |
| <attribute name="target"/> |
| <sequential> |
| <ant dir="api/function" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="api/execution" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="api/window" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="api/oplet" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="api/graph" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="api/topology" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="spi/graph" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="spi/topology" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="runtime/appservice" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="runtime/etiao" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="runtime/jmxcontrol" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="runtime/jsoncontrol" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="runtime/jobregistry" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="utils/metrics" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="utils/streamscope" target="@{target}" useNativeBasedir="true"/> |
| |
| <ant dir="providers/direct" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/common" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/command" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/csv" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/iot" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/serial" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/file" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/http" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/iotp" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/jdbc" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/kafka" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/mqtt" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/pubsub" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/edgent.javax.websocket" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/javax.websocket-client" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/javax.websocket-server" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/wsclient" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="connectors/wsclient-javax.websocket" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="console/server" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="console/servlets" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="apps/iot" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="providers/development" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="apps/runtime" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="providers/iot" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="analytics/math3" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="analytics/sensors" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="samples/utils" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="samples/apps" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="samples/topology" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="samples/connectors" target="@{target}" useNativeBasedir="true"/> |
| <ant dir="samples/console" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="samples/scenarios" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="android/topology" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="android/hardware" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="test/fvtiot" target="@{target}" useNativeBasedir="true" /> |
| <ant dir="test/svt" target="@{target}" useNativeBasedir="true" /> |
| </sequential> |
| </macrodef> |
| |
| <target name="junit.report"> |
| <mkdir dir="${report.dir}/junit"/> |
| <junitreport todir="${report.dir}"> |
| <fileset dir="${basedir}"> |
| <include name="**/unittests/*/TEST-*.xml"/> |
| </fileset> |
| <report format="frames" todir="${report.dir}/junit"/> |
| </junitreport> |
| </target> |
| |
| <target name="coverage.report" > |
| <mkdir dir="${report.dir}/coverage"/> |
| <jacoco:report> |
| <executiondata> |
| <fileset dir="${basedir}"> |
| <include name="**/unittests/*/jacoco*.exec"/> |
| </fileset> |
| </executiondata> |
| <structure name="Edgent"> |
| |
| <group name="Edgent API"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/lib"> |
| <include name="edgent.api.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/api/function/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/api/execution/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/api/oplet/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/api/graph/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/api/topology/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| <group name="Edgent SPI"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/lib"> |
| <include name="edgent.spi.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/spi/graph/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/spi/topology/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| <group name="Edgent Runtime"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/lib"> |
| <include name="edgent.runtime.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/runtime/etiao/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/runtime/jmxcontrol/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| |
| <group name="Edgent Utilities"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/utils"> |
| <include name="**/edgent.utils.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/utils/metrics/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/utils/streamscope/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| <group name="Edgent Connectors"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/connectors"> |
| <include name="**/edgent.connectors.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/connectors/common/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/command/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/csv/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/file/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/iot/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/iotp/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/jdbc/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/kafka/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/mqtt/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/http/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/wsclient/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/connectors/wsclient-javax.websocket/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| |
| <group name="Edgent Providers"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/lib"> |
| <include name="edgent.providers.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/providers/direct/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/providers/development/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| |
| <group name="Edgent Analytics"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/analytics"> |
| <include name="**/edgent.analytics.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/analytics/math3/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/analytics/sensors/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| |
| <group name="Edgent Console"> |
| <classfiles> |
| <fileset dir="${target.dir}/java8/console"> |
| <include name="**/edgent.console.*.jar"/> |
| </fileset> |
| </classfiles> |
| <sourcefiles encoding="UTF-8"> |
| <fileset dir="${basedir}/console/server/src/main/java" includes="**/*.java"/> |
| <fileset dir="${basedir}/console/servlets/src/main/java" includes="**/*.java"/> |
| </sourcefiles> |
| </group> |
| |
| </structure> |
| <html destdir="${report.dir}/coverage"/> |
| </jacoco:report> |
| </target> |
| |
| <target name="reports" depends="DoNotUseAnt,junit.report,coverage.report" |
| description="Produce test and coverage reports under reports after executing the test target" |
| /> |
| |
| <target name="docs" depends="DoNotUseAnt"> |
| <mkdir dir="${javadoc.dir}"/> |
| <javadoc |
| destdir="${javadoc.dir}" |
| author="true" |
| version="true" |
| use="true" |
| windowtitle="Edgent v${edgent.version}" |
| additionalparam="-Xdoclint:none" |
| Overview="edgent_overview.html" |
| failonwarning="true" |
| excludepackagenames="org.apache.edgent.connectors.runtime,org.apache.edgent.connectors.*.runtime,org.apache.edgent.console.*,org.apache.edgent.samples.scenarios.iotp.range.sensor" |
| > |
| <sourcepath> |
| <dirset dir="${basedir}"> |
| <include name="*/*/src/main/java"/> |
| <exclude name="android/**"/> |
| </dirset> |
| </sourcepath> |
| <classpath> |
| <fileset dir="ext"> |
| <include name="**/*.jar"/> |
| </fileset> |
| <fileset dir="."> |
| <include name="console/*/ext/*/*.jar"/> |
| <include name="connectors/*/ext/*.jar"/> |
| <include name="analytics/*/ext/*/*.jar"/> |
| <include name="utils/metrics/ext/*/*.jar"/> |
| </fileset> |
| </classpath> |
| |
| <doctitle>Apache Edgent (incubating) v${edgent.version}</doctitle> |
| <footer><![CDATA[<a href="http://edgent.incubator.apache.org">Apache Edgent (incubating)</a>]]></footer> |
| <bottom>Copyright &copy; 2016 The Apache Software Foundation. All Rights Reserved - ${commithash}-${DSTAMP}-${TSTAMP}</bottom> |
| <group title="Edgent API" packages="org.apache.edgent.execution,org.apache.edgent.function,org.apache.edgent.topology,org.apache.edgent.topology.json,org.apache.edgent.topology.mbeans,org.apache.edgent.topology.plumbing,org.apache.edgent.topology.services,org.apache.edgent.execution.*"/> |
| <group title="Edgent Providers" packages="org.apache.edgent.providers.*"/> |
| <group title="Edgent Connectors" packages="org.apache.edgent.connectors.*"/> |
| <group title="Edgent Samples" packages="org.apache.edgent.samples.*"/> |
| <group title="Edgent Analytics" packages="org.apache.edgent.analytics.*"/> |
| <group title="Edgent Utilities" packages="org.apache.edgent.metrics,edgent.metrics.*,org.apache.edgent.streamscope,org.apache.edgent.streamscope.*"/> |
| <group title="Edgent Low-Level API" packages="org.apache.edgent.graph,edgent.graph.*,org.apache.edgent.oplet,edgent.oplet.*,org.apache.edgent.window"/> |
| <group title="Edgent SPI" packages="org.apache.edgent.topology.spi,org.apache.edgent.topology.spi.*"/> |
| </javadoc> |
| </target> |
| |
| <target name="release" depends="DoNotUseAnt,clean,setcommitversion,all,docs,create_release_bundle"/> |
| |
| <target name="create_release_bundle"> |
| <!-- Build Java7 and Android versions --> |
| <ant dir="platform/java7" target="retro7" useNativeBasedir="true"/> |
| <ant dir="platform/android" target="all" useNativeBasedir="true"/> |
| |
| <mkdir dir="${release.dir}" /> |
| <property name="releasefilename" value="${release.dir}/edgent-v${edgent.version}-${DSTAMP}-${TSTAMP}.tgz"/> |
| <tar compression="gzip" longfile="gnu" destfile="${releasefilename}"> |
| <tarfileset dir="${target.dir}" prefix="edgent" |
| excludes="**/*.sh"/> |
| <tarfileset dir="${target.dir}" prefix="edgent" |
| includes="**/*.sh" filemode="755"/> |
| </tar> |
| <checksum file="${releasefilename}"/> |
| <checksum algorithm="sha1" file="${releasefilename}"/> |
| </target> |
| |
| </project> |