diff --git a/assignments/nbproject/build-impl.xml b/assignments/nbproject/build-impl.xml index b252e83eaa874dfb8a2d79e34b48f2c9a95ef74c..3c98afaf0ea47432cdcd857b5feb02516d3f6f46 100644 --- a/assignments/nbproject/build-impl.xml +++ b/assignments/nbproject/build-impl.xml @@ -1,1768 +1,1798 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -*** GENERATED FROM project.xml - DO NOT EDIT *** -*** EDIT ../build.xml INSTEAD *** - -For the purpose of easier reading the script -is divided into following sections: - - - initialization - - compilation - - jar - - execution - - debugging - - javadoc - - test compilation - - test execution - - test debugging - - applet - - cleanup - - --> -<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Networked_Graphics_MV3500_assignments-impl"> - <fail message="Please build using Ant 1.8.0 or higher."> - <condition> - <not> - <antversion atleast="1.8.0"/> - </not> - </condition> - </fail> - <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/> - <!-- - ====================== - INITIALIZATION SECTION - ====================== - --> - <target name="-pre-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-pre-init" name="-init-private"> - <property file="nbproject/private/config.properties"/> - <property file="nbproject/private/configs/${config}.properties"/> - <property file="nbproject/private/private.properties"/> - </target> - <target depends="-pre-init,-init-private" name="-init-user"> - <property file="${user.properties.file}"/> - <!-- The two properties below are usually overridden --> - <!-- by the active platform. Just a fallback. --> - <property name="default.javac.source" value="1.6"/> - <property name="default.javac.target" value="1.6"/> - </target> - <target depends="-pre-init,-init-private,-init-user" name="-init-project"> - <property file="nbproject/configs/${config}.properties"/> - <property file="nbproject/project.properties"/> - </target> - <target name="-init-modules-supported"> - <condition property="modules.supported.internal" value="true"> - <not> - <matches pattern="1\.[0-8](\..*)?" string="${javac.source}"/> - </not> - </condition> - </target> - <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-modulename"> - <macrodef name="modulename" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute name="property"/> - <attribute name="sourcepath"/> - <sequential> - <loadresource property="@{property}" quiet="true"> - <javaresource classpath="@{sourcepath}" name="module-info.java" parentFirst="false"/> - <filterchain> - <stripjavacomments/> - <linecontainsregexp> - <regexp pattern="module .* \{"/> - </linecontainsregexp> - <tokenfilter> - <linetokenizer/> - <replaceregex flags="s" pattern="(\s*module\s+)(\S*)(\s*\{.*)" replace="\2"/> - </tokenfilter> - <striplinebreaks/> - </filterchain> - </loadresource> - </sequential> - </macrodef> - </target> - <target depends="-init-modules-supported,-init-macrodef-modulename" if="modules.supported.internal" name="-init-source-module-properties"> - <fail message="Java 9 support requires Ant 1.10.0 or higher."> - <condition> - <not> - <antversion atleast="1.10.0"/> - </not> - </condition> - </fail> - <j2seproject3:modulename property="module.name" sourcepath="${src.dir}"/> - <condition property="named.module.internal"> - <and> - <isset property="module.name"/> - <length length="0" string="${module.name}" when="greater"/> - </and> - </condition> - <condition property="unnamed.module.internal"> - <not> - <isset property="named.module.internal"/> - </not> - </condition> - <property name="javac.modulepath" value=""/> - <property name="run.modulepath" value="${javac.modulepath}"/> - <property name="module.build.classes.dir" value="${build.classes.dir}"/> - <property name="debug.modulepath" value="${run.modulepath}"/> - <property name="javac.upgrademodulepath" value=""/> - <property name="run.upgrademodulepath" value="${javac.upgrademodulepath}"/> - <condition else="" property="javac.systemmodulepath.cmd.line.arg" value="--system '${javac.systemmodulepath}'"> - <and> - <isset property="javac.systemmodulepath"/> - <length length="0" string="${javac.systemmodulepath}" when="greater"/> - </and> - </condition> - <property name="dist.jlink.dir" value="${dist.dir}/jlink"/> - <property name="dist.jlink.output" value="${dist.jlink.dir}/${application.title}"/> - <property name="module.name" value=""/> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property,-init-modules-supported" name="-do-init"> - <property name="platform.java" value="${java.home}/bin/java"/> - <available file="${manifest.file}" property="manifest.available"/> - <condition property="splashscreen.available"> - <and> - <not> - <equals arg1="${application.splash}" arg2="" trim="true"/> - </not> - <available file="${application.splash}"/> - </and> - </condition> - <condition property="main.class.available"> - <and> - <isset property="main.class"/> - <not> - <equals arg1="${main.class}" arg2="" trim="true"/> - </not> - </and> - </condition> - <condition property="profile.available"> - <and> - <isset property="javac.profile"/> - <length length="0" string="${javac.profile}" when="greater"/> - <not> - <matches pattern="1\.[0-7](\..*)?" string="${javac.source}"/> - </not> - </and> - </condition> - <condition property="do.archive"> - <or> - <not> - <istrue value="${jar.archive.disabled}"/> - </not> - <istrue value="${not.archive.disabled}"/> - </or> - </condition> - <condition property="do.mkdist"> - <and> - <isset property="do.archive"/> - <isset property="libs.CopyLibs.classpath"/> - <not> - <istrue value="${mkdist.disabled}"/> - </not> - <not> - <istrue value="${modules.supported.internal}"/> - </not> - </and> - </condition> - <condition property="do.archive+manifest.available"> - <and> - <isset property="manifest.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+main.class.available"> - <and> - <isset property="main.class.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+splashscreen.available"> - <and> - <isset property="splashscreen.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="do.archive+profile.available"> - <and> - <isset property="profile.available"/> - <istrue value="${do.archive}"/> - </and> - </condition> - <condition property="have.tests"> - <or> - <available file="${test.src.dir}"/> - </or> - </condition> - <condition property="have.sources"> - <or> - <available file="${src.dir}"/> - </or> - </condition> - <condition property="netbeans.home+have.tests"> - <and> - <isset property="netbeans.home"/> - <isset property="have.tests"/> - </and> - </condition> - <condition property="no.javadoc.preview"> - <and> - <isset property="javadoc.preview"/> - <isfalse value="${javadoc.preview}"/> - </and> - </condition> - <property name="run.jvmargs" value=""/> - <property name="run.jvmargs.ide" value=""/> - <property name="javac.compilerargs" value=""/> - <property name="work.dir" value="${basedir}"/> - <condition property="no.deps"> - <and> - <istrue value="${no.dependencies}"/> - </and> - </condition> - <property name="javac.debug" value="true"/> - <property name="javadoc.preview" value="true"/> - <property name="application.args" value=""/> - <property name="source.encoding" value="${file.encoding}"/> - <property name="runtime.encoding" value="${source.encoding}"/> - <property name="manifest.encoding" value="${source.encoding}"/> - <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> - <and> - <isset property="javadoc.encoding"/> - <not> - <equals arg1="${javadoc.encoding}" arg2=""/> - </not> - </and> - </condition> - <property name="javadoc.encoding.used" value="${source.encoding}"/> - <property name="includes" value="**"/> - <property name="excludes" value=""/> - <property name="do.depend" value="false"/> - <condition property="do.depend.true"> - <istrue value="${do.depend}"/> - </condition> - <path id="endorsed.classpath.path" path="${endorsed.classpath}"/> - <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'"> - <and> - <isset property="endorsed.classpath"/> - <not> - <equals arg1="${endorsed.classpath}" arg2="" trim="true"/> - </not> - </and> - </condition> - <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}"> - <isset property="profile.available"/> - </condition> - <condition else="false" property="jdkBug6558476"> - <and> - <matches pattern="1\.[56]" string="${java.specification.version}"/> - <not> - <os family="unix"/> - </not> - </and> - </condition> - <condition else="false" property="javac.fork"> - <or> - <istrue value="${jdkBug6558476}"/> - <istrue value="${javac.external.vm}"/> - </or> - </condition> - <property name="jar.index" value="false"/> - <property name="jar.index.metainf" value="${jar.index}"/> - <property name="copylibs.rebase" value="true"/> - <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> - <condition property="junit.available"> - <or> - <available classname="org.junit.Test" classpath="${run.test.classpath}"/> - <available classname="junit.framework.Test" classpath="${run.test.classpath}"/> - </or> - </condition> - <condition property="testng.available"> - <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/> - </condition> - <condition property="junit+testng.available"> - <and> - <istrue value="${junit.available}"/> - <istrue value="${testng.available}"/> - </and> - </condition> - <condition else="testng" property="testng.mode" value="mixed"> - <istrue value="${junit+testng.available}"/> - </condition> - <condition else="" property="testng.debug.mode" value="-mixed"> - <istrue value="${junit+testng.available}"/> - </condition> - <property name="java.failonerror" value="true"/> - </target> - <target name="-post-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> - <fail unless="src.dir">Must set src.dir</fail> - <fail unless="test.src.dir">Must set test.src.dir</fail> - <fail unless="build.dir">Must set build.dir</fail> - <fail unless="dist.dir">Must set dist.dir</fail> - <fail unless="build.classes.dir">Must set build.classes.dir</fail> - <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail> - <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail> - <fail unless="build.test.results.dir">Must set build.test.results.dir</fail> - <fail unless="build.classes.excludes">Must set build.classes.excludes</fail> - <fail unless="dist.jar">Must set dist.jar</fail> - </target> - <target name="-init-macrodef-property"> - <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute name="name"/> - <attribute name="value"/> - <sequential> - <property name="@{name}" value="${@{value}}"/> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="modules.supported.internal" name="-init-macrodef-javac-with-module"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.modulepath}" name="modulepath"/> - <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${javac.processormodulepath}" name="processormodulepath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath" unless:set="named.module.internal"/> - <attribute default="${src.dir}" if:set="named.module.internal" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <condition property="warn.excludes.internal"> - <and> - <isset property="named.module.internal"/> - <length length="0" string="@{excludes}" trim="true" when="greater"/> - </and> - </condition> - <echo if:set="warn.excludes.internal" level="warning" message="The javac excludes are not supported in the JDK 9 Named Module."/> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <mkdir dir="@{apgeneratedsrcdir}"/> - <condition property="processormodulepath.set"> - <resourcecount count="0" when="greater"> - <path> - <pathelement path="@{processormodulepath}"/> - </path> - </resourcecount> - </condition> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <modulepath> - <path path="@{modulepath}"/> - </modulepath> - <upgrademodulepath> - <path path="@{upgrademodulepath}"/> - </upgrademodulepath> - <compilerarg line="${javac.systemmodulepath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <compilerarg if:set="processormodulepath.set" value="--processor-module-path"/> - <compilerarg if:set="processormodulepath.set" path="@{processormodulepath}"/> - <compilerarg unless:set="processormodulepath.set" value="-processorpath"/> - <compilerarg path="@{processorpath}:${empty.dir}" unless:set="processormodulepath.set"/> - <compilerarg line="${ap.processors.internal}"/> - <compilerarg line="${annotation.processing.processor.options}"/> - <compilerarg value="-s"/> - <compilerarg path="@{apgeneratedsrcdir}"/> - <compilerarg line="${ap.proc.none.internal}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors" unless="modules.supported.internal"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.modulepath}" name="modulepath"/> - <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <mkdir dir="@{apgeneratedsrcdir}"/> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <compilerarg value="-processorpath"/> - <compilerarg path="@{processorpath}:${empty.dir}"/> - <compilerarg line="${ap.processors.internal}"/> - <compilerarg line="${annotation.processing.processor.options}"/> - <compilerarg value="-s"/> - <compilerarg path="@{apgeneratedsrcdir}"/> - <compilerarg line="${ap.proc.none.internal}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> - <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <attribute default="${javac.modulepath}" name="modulepath"/> - <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> - <attribute default="${javac.processorpath}" name="processorpath"/> - <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="${javac.debug}" name="debug"/> - <attribute default="${empty.dir}" name="sourcepath"/> - <attribute default="${empty.dir}" name="gensrcdir"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.dir}/empty" name="empty.dir"/> - <mkdir dir="${empty.dir}"/> - <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> - <src> - <dirset dir="@{gensrcdir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </src> - <classpath> - <path path="@{classpath}"/> - </classpath> - <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> - <compilerarg line="${javac.profile.cmd.line.arg}"/> - <compilerarg line="${javac.compilerargs}"/> - <customize/> - </javac> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-javac-with-module,-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> - <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${src.dir}" name="srcdir"/> - <attribute default="${build.classes.dir}" name="destdir"/> - <attribute default="${javac.classpath}" name="classpath"/> - <sequential> - <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}"> - <classpath> - <path path="@{classpath}"/> - </classpath> - </depend> - </sequential> - </macrodef> - <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${build.classes.dir}" name="destdir"/> - <sequential> - <fail unless="javac.includes">Must set javac.includes</fail> - <pathconvert pathsep="${line.separator}" property="javac.includes.binary"> - <path> - <filelist dir="@{destdir}" files="${javac.includes}"/> - </path> - <globmapper from="*.java" to="*.class"/> - </pathconvert> - <tempfile deleteonexit="true" property="javac.includesfile.binary"/> - <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/> - <delete> - <files includesfile="${javac.includesfile.binary}"/> - </delete> - <delete> - <fileset file="${javac.includesfile.binary}"/> - </delete> - </sequential> - </macrodef> - </target> - <target if="${junit.available}" name="-init-macrodef-junit-init"> - <condition else="false" property="nb.junit.batch" value="true"> - <and> - <istrue value="${junit.available}"/> - <not> - <isset property="test.method"/> - </not> - </and> - </condition> - <condition else="false" property="nb.junit.single" value="true"> - <and> - <istrue value="${junit.available}"/> - <isset property="test.method"/> - </and> - </condition> - </target> - <target name="-init-test-properties"> - <property name="test.binaryincludes" value="<nothing>"/> - <property name="test.binarytestincludes" value=""/> - <property name="test.binaryexcludes" value=""/> - </target> - <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-junit-prototype-with-module"> - <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <element name="customizePrototype" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <modulepath> - <path path="${run.test.modulepath}"/> - </modulepath> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="-ea"/> - <jvmarg line="${run.test.jvmargs}"/> - <customizePrototype/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-modules-supported" name="-init-macrodef-junit-prototype-without-module" unless="modules.supported.internal"> - <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <element name="customizePrototype" optional="true"/> - <sequential> - <property name="junit.forkmode" value="perTest"/> - <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" showoutput="true" tempdir="${build.dir}"> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <formatter type="brief" usefile="false"/> - <formatter type="xml"/> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="-ea"/> - <customizePrototype/> - </junit> - </sequential> - </macrodef> - </target> - <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> - <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <j2seproject3:junit-prototype> - <customizePrototype> - <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> - <customize/> - </customizePrototype> - </j2seproject3:junit-prototype> - </sequential> - </macrodef> - </target> - <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> - <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <j2seproject3:junit-prototype> - <customizePrototype> - <batchtest todir="${build.test.results.dir}"> - <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> - <filename name="${test.binarytestincludes}"/> - </fileset> - </batchtest> - <customize/> - </customizePrototype> - </j2seproject3:junit-prototype> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> - <target if="${testng.available}" name="-init-macrodef-testng"> - <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customize" optional="true"/> - <sequential> - <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> - <isset property="test.method"/> - </condition> - <union id="test.set"> - <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> - <filename name="@{testincludes}"/> - </fileset> - </union> - <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> - <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Networked_Graphics_MV3500_assignments" testname="TestNG tests" workingDir="${work.dir}"> - <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> - <propertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </propertyset> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <customize/> - </testng> - </sequential> - </macrodef> - </target> - <target name="-init-macrodef-test-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <echo>No tests executed.</echo> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:junit> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl"> - <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element implicit="true" name="customize" optional="true"/> - <sequential> - <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize/> - </j2seproject3:testng> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test"> - <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <sequential> - <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - </customize> - </j2seproject3:test-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> - <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <element name="customizeDebuggee" optional="true"/> - <sequential> - <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customize> - <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> - <customizeDebuggee/> - </customize> - </j2seproject3:junit> - </sequential> - </macrodef> - </target> - <target if="${testng.available}" name="-init-macrodef-testng-debug"> - <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <element name="customize2" optional="true"/> - <sequential> - <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> - <isset property="test.method"/> - </condition> - <condition else="-suitename Networked_Graphics_MV3500_assignments -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> - <matches pattern=".*\.xml" string="@{testClass}"/> - </condition> - <delete dir="${build.test.results.dir}" quiet="true"/> - <mkdir dir="${build.test.results.dir}"/> - <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}"> - <customizeDebuggee> - <customize2/> - <jvmarg value="-ea"/> - <arg line="${testng.debug.mode}"/> - <arg line="-d ${build.test.results.dir}"/> - <arg line="-listener org.testng.reporters.VerboseReporter"/> - <arg line="${testng.cmd.args}"/> - </customizeDebuggee> - </j2seproject3:debug> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl"> - <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <element implicit="true" name="customize2" optional="true"/> - <sequential> - <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}"> - <customize2/> - </j2seproject3:testng-debug> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit"> - <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <sequential> - <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> - <customizeDebuggee> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - </customizeDebuggee> - </j2seproject3:test-debug-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng"> - <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${includes}" name="includes"/> - <attribute default="${excludes}" name="excludes"/> - <attribute default="**" name="testincludes"/> - <attribute default="" name="testmethods"/> - <attribute default="${main.class}" name="testClass"/> - <attribute default="" name="testMethod"/> - <sequential> - <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}"> - <customize2> - <syspropertyset> - <propertyref prefix="test-sys-prop."/> - <mapper from="test-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - </customize2> - </j2seproject3:testng-debug-impl> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/> - <!-- - pre NB7.2 profiling section; consider it deprecated - --> - <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/> - <target if="profiler.info.jvmargs.agent" name="-profile-pre-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="profiler.info.jvmargs.agent" name="-profile-post-init"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile"> - <macrodef name="resolve"> - <attribute name="name"/> - <attribute name="value"/> - <sequential> - <property name="@{name}" value="${env.@{value}}"/> - </sequential> - </macrodef> - <macrodef name="profile"> - <attribute default="${main.class}" name="classname"/> - <element name="customize" optional="true"/> - <sequential> - <property environment="env"/> - <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> - <java classname="@{classname}" dir="${profiler.info.dir}" failonerror="${java.failonerror}" fork="true" jvm="${profiler.info.jvm}"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="${profiler.info.jvmargs.agent}"/> - <jvmarg line="${profiler.info.jvmargs}"/> - <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> - <arg line="${application.args}"/> - <classpath> - <path path="${run.classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check"> - <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> - <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> - </target> - <!-- - end of pre NB7.2 profiling section - --> - <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> - <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${main.class}" name="name"/> - <attribute default="${debug.modulepath}" name="modulepath"/> - <attribute default="${debug.classpath}" name="classpath"/> - <attribute default="" name="stopclassname"/> - <sequential> - <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}"> - <modulepath> - <path path="@{modulepath}"/> - </modulepath> - <classpath> - <path path="@{classpath}"/> - </classpath> - </nbjpdastart> - </sequential> - </macrodef> - <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${build.classes.dir}" name="dir"/> - <sequential> - <nbjpdareload> - <fileset dir="@{dir}" includes="${fix.classes}"> - <include name="${fix.includes}*.class"/> - </fileset> - </nbjpdareload> - </sequential> - </macrodef> - </target> - <target name="-init-debug-args"> - <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> - <os family="windows"/> - </condition> - <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}"> - <isset property="debug.transport"/> - </condition> - </target> - <target depends="-init-debug-args" name="-init-macrodef-debug"> - <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${module.name}" name="modulename"/> - <attribute default="${main.class}" name="classname"/> - <attribute default="${debug.modulepath}" name="modulepath"/> - <attribute default="${debug.classpath}" name="classpath"/> - <element name="customizeDebuggee" optional="true"/> - <sequential> - <j2seproject1:java classname="@{classname}" classpath="@{classpath}" modulename="@{modulename}" modulepath="@{modulepath}"> - <customize> - <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> - <customizeDebuggee/> - </customize> - </j2seproject1:java> - </sequential> - </macrodef> - </target> - <target depends="-init-source-module-properties" if="named.module.internal" name="-init-macrodef-java-with-module"> - <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="${module.name}" name="modulename"/> - <attribute default="${main.class}" name="classname"/> - <attribute default="${run.modulepath}" name="modulepath"/> - <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> - <attribute default="${run.classpath}" name="classpath"/> - <attribute default="jvm" name="jvm"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" module="@{modulename}"> - <classpath> - <path path="@{classpath}"/> - </classpath> - <modulepath> - <pathelement path="@{modulepath}"/> - <pathelement location="${module.build.classes.dir}"/> - </modulepath> - <upgrademodulepath> - <path path="@{upgrademodulepath}"/> - </upgrademodulepath> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target depends="-init-source-module-properties" if="unnamed.module.internal" name="-init-macrodef-java-with-unnamed-module"> - <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="" name="modulename"/> - <attribute default="${main.class}" name="classname"/> - <attribute default="${run.modulepath}" name="modulepath"/> - <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> - <attribute default="${run.classpath}" name="classpath"/> - <attribute default="jvm" name="jvm"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true"> - <classpath> - <path path="@{classpath}"/> - </classpath> - <modulepath> - <path path="@{modulepath}"/> - </modulepath> - <upgrademodulepath> - <path path="@{upgrademodulepath}"/> - </upgrademodulepath> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target depends="-init-source-module-properties" name="-init-macrodef-java-without-module" unless="modules.supported.internal"> - <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> - <attribute default="" name="modulename"/> - <attribute default="${main.class}" name="classname"/> - <attribute default="" name="modulepath"/> - <attribute default="${run.classpath}" name="classpath"/> - <attribute default="jvm" name="jvm"/> - <element name="customize" optional="true"/> - <sequential> - <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true"> - <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> - <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> - <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> - <jvmarg line="${run.jvmargs}"/> - <jvmarg line="${run.jvmargs.ide}"/> - <classpath> - <path path="@{classpath}"/> - </classpath> - <syspropertyset> - <propertyref prefix="run-sys-prop."/> - <mapper from="run-sys-prop.*" to="*" type="glob"/> - </syspropertyset> - <customize/> - </java> - </sequential> - </macrodef> - </target> - <target depends="-init-macrodef-java-with-module, -init-macrodef-java-with-unnamed-module, -init-macrodef-java-without-module" name="-init-macrodef-java"/> - <target name="-init-macrodef-copylibs"> - <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> - <attribute default="${manifest.file}" name="manifest"/> - <element name="customize" optional="true"/> - <sequential> - <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> - <pathconvert property="run.classpath.without.build.classes.dir"> - <path path="${run.classpath}"/> - <map from="${build.classes.dir.resolved}" to=""/> - </pathconvert> - <pathconvert pathsep=" " property="jar.classpath"> - <path path="${run.classpath.without.build.classes.dir}"/> - <chainedmapper> - <flattenmapper/> - <filtermapper> - <replacestring from=" " to="%20"/> - </filtermapper> - <globmapper from="*" to="lib/*"/> - </chainedmapper> - </pathconvert> - <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> - <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" manifestencoding="UTF-8" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> - <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> - <manifest> - <attribute name="Class-Path" value="${jar.classpath}"/> - <customize/> - </manifest> - </copylibs> - </sequential> - </macrodef> - </target> - <target name="-init-presetdef-jar"> - <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1"> - <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifestencoding="UTF-8"> - <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> - </jar> - </presetdef> - </target> - <target name="-init-ap-cmdline-properties"> - <property name="annotation.processing.enabled" value="true"/> - <property name="annotation.processing.processors.list" value=""/> - <property name="annotation.processing.processor.options" value=""/> - <property name="annotation.processing.run.all.processors" value="true"/> - <property name="javac.processorpath" value="${javac.classpath}"/> - <property name="javac.test.processorpath" value="${javac.test.classpath}"/> - <condition property="ap.supported.internal" value="true"> - <not> - <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/> - </not> - </condition> - </target> - <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported"> - <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}"> - <isfalse value="${annotation.processing.run.all.processors}"/> - </condition> - <condition else="" property="ap.proc.none.internal" value="-proc:none"> - <isfalse value="${annotation.processing.enabled}"/> - </condition> - </target> - <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline"> - <property name="ap.cmd.line.internal" value=""/> - </target> - <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/> - <!-- - =================== - COMPILATION SECTION - =================== - --> - <target name="-deps-jar-init" unless="built-jar.properties"> - <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/> - <delete file="${built-jar.properties}" quiet="true"/> - </target> - <target if="already.built.jar.${basedir}" name="-warn-already-built-jar"> - <echo level="warn" message="Cycle detected: Networked Graphics MV3500 assignments was already built"/> - </target> - <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps"> - <mkdir dir="${build.dir}"/> - <touch file="${built-jar.properties}" verbose="false"/> - <property file="${built-jar.properties}" prefix="already.built.jar."/> - <antcall target="-warn-already-built-jar"/> - <propertyfile file="${built-jar.properties}"> - <entry key="${basedir}" value=""/> - </propertyfile> - </target> - <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> - <target depends="init" name="-check-automatic-build"> - <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/> - </target> - <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build"> - <antcall target="clean"> - <param name="no.dependencies" value="true"/> - </antcall> - </target> - <target depends="init,deps-jar" name="-pre-pre-compile"> - <mkdir dir="${build.classes.dir}"/> - </target> - <target name="-pre-compile"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target if="do.depend.true" name="-compile-depend"> - <pathconvert property="build.generated.subdirs"> - <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="*"/> - </dirset> - </pathconvert> - <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/> - </target> - <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile"> - <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/> - <copy todir="${build.classes.dir}"> - <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target if="has.persistence.xml" name="-copy-persistence-xml"> - <mkdir dir="${build.classes.dir}/META-INF"/> - <copy todir="${build.classes.dir}/META-INF"> - <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/> - </copy> - </target> - <target name="-post-compile"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/> - <target name="-pre-compile-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> - <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> - <j2seproject3:force-recompile/> - <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.dir}"/> - </target> - <target name="-post-compile-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/> - <!-- - ==================== - JAR BUILDING SECTION - ==================== - --> - <target depends="init" name="-pre-pre-jar"> - <dirname file="${dist.jar}" property="dist.jar.dir"/> - <mkdir dir="${dist.jar.dir}"/> - </target> - <target name="-pre-jar"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile" name="-check-module-main-class"> - <pathconvert property="main.class.file"> - <string value="${main.class}"/> - <unpackagemapper from="*" to="*.class"/> - </pathconvert> - <condition property="do.module.main.class"> - <and> - <isset property="main.class.available"/> - <available file="${build.classes.dir}/module-info.class"/> - <available file="${build.classes.dir}/${main.class.file}"/> - <isset property="libs.CopyLibs.classpath"/> - <available classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}"/> - </and> - </condition> - </target> - <target depends="-check-module-main-class" if="do.module.main.class" name="-set-module-main-class"> - <taskdef classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}" name="modulemainclass"/> - <modulemainclass failonerror="false" mainclass="${main.class}" moduleinfo="${build.classes.dir}/module-info.class"/> - </target> - <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available"> - <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> - <touch file="${tmp.manifest.file}" verbose="false"/> - </target> - <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest"> - <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> - <copy encoding="${manifest.encoding}" file="${manifest.file}" outputencoding="UTF-8" tofile="${tmp.manifest.file}"/> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> - <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> - <attribute name="Main-Class" value="${main.class}"/> - </manifest> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile"> - <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> - <attribute name="Profile" value="${javac.profile}"/> - </manifest> - </target> - <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen"> - <basename file="${application.splash}" property="splashscreen.basename"/> - <mkdir dir="${build.classes.dir}/META-INF"/> - <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> - <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> - <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> - </manifest> - </target> - <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.mkdist" name="-do-jar-copylibs"> - <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> - <echo level="info">To run this application from the command line without Ant, try:</echo> - <property location="${dist.jar}" name="dist.jar.resolved"/> - <echo level="info">java -jar "${dist.jar.resolved}"</echo> - </target> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> - <j2seproject1:jar manifest="${tmp.manifest.file}"/> - <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> - <property location="${dist.jar}" name="dist.jar.resolved"/> - <condition else="${dist.jar.resolved}" property="jar.usage.message.class.path.replacement" value=""> - <isset property="named.module.internal"/> - </condition> - <pathconvert property="run.classpath.with.dist.jar"> - <path path="${run.classpath}"/> - <map from="${build.classes.dir.resolved}" to="${jar.usage.message.class.path.replacement}"/> - </pathconvert> - <pathconvert property="run.modulepath.with.dist.jar"> - <path location="${dist.jar.resolved}"/> - <path path="${run.modulepath}"/> - <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> - </pathconvert> - <condition else="${run.modulepath}" property="jar.usage.message.run.modulepath.with.dist.jar" value="${run.modulepath.with.dist.jar}"> - <isset property="named.module.internal"/> - </condition> - <condition else="" property="jar.usage.message.module.path" value=" -p ${jar.usage.message.run.modulepath.with.dist.jar}"> - <and> - <isset property="modules.supported.internal"/> - <length length="0" string="${jar.usage.message.run.modulepath.with.dist.jar}" when="greater"/> - </and> - </condition> - <condition else="" property="jar.usage.message.class.path" value=" -cp ${run.classpath.with.dist.jar}"> - <length length="0" string="${run.classpath.with.dist.jar}" when="greater"/> - </condition> - <condition else="/${main.class}" property="jar.usage.message.main.class.class.selector" value=""> - <isset property="do.module.main.class"/> - </condition> - <condition else=" ${main.class}" property="jar.usage.message.main.class" value=" -m ${module.name}${jar.usage.message.main.class.class.selector}"> - <isset property="named.module.internal"/> - </condition> - <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java}${jar.usage.message.module.path}${jar.usage.message.class.path}${jar.usage.message.main.class}"> - <isset property="main.class.available"/> - </condition> - <condition else="debug" property="jar.usage.level" value="info"> - <isset property="main.class.available"/> - </condition> - <echo level="${jar.usage.level}" message="${jar.usage.message}"/> - </target> - <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest"> - <delete> - <fileset file="${tmp.manifest.file}"/> - </delete> - </target> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/> - <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/> - <target name="-post-jar"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-jar,-set-module-main-class,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> - <target depends="init,compile,-pre-jar,-do-jar,-post-jar,deploy" description="Build JAR." name="jar"/> - <!-- - ================= - DEPLOY SECTION - ================= - --> - <target name="-pre-deploy"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init" name="-check-jlink"> - <condition property="do.jlink.internal"> - <and> - <istrue value="${do.jlink}"/> - <isset property="do.archive"/> - <isset property="named.module.internal"/> - </and> - </condition> - </target> - <target depends="init,-do-jar,-post-jar,-pre-deploy,-check-jlink" if="do.jlink.internal" name="-do-deploy"> - <delete dir="${dist.jlink.dir}" failonerror="false" quiet="true"/> - <property name="jlink.launcher.name" value="${application.title}"/> - <condition else="${module.name}" property="jlink.add.modules" value="${module.name},${jlink.additionalmodules}"> - <and> - <isset property="jlink.additionalmodules"/> - <length length="0" string="${jlink.additionalmodules}" when="greater"/> - </and> - </condition> - <condition property="jlink.do.strip.internal"> - <and> - <isset property="jlink.strip"/> - <istrue value="${jlink.strip}"/> - </and> - </condition> - <condition property="jlink.do.additionalparam.internal"> - <and> - <isset property="jlink.additionalparam"/> - <length length="0" string="${jlink.additionalparam}" when="greater"/> - </and> - </condition> - <condition property="jlink.do.launcher.internal"> - <and> - <istrue value="${jlink.launcher}"/> - <isset property="main.class.available"/> - </and> - </condition> - <property name="platform.jlink" value="${jdk.home}/bin/jlink"/> - <property name="jlink.systemmodules.internal" value="${jdk.home}/jmods"/> - <exec executable="${platform.jlink}"> - <arg value="--module-path"/> - <arg path="${jlink.systemmodules.internal}:${run.modulepath}:${dist.jar}"/> - <arg value="--add-modules"/> - <arg value="${jlink.add.modules}"/> - <arg if:set="jlink.do.strip.internal" value="--strip-debug"/> - <arg if:set="jlink.do.launcher.internal" value="--launcher"/> - <arg if:set="jlink.do.launcher.internal" value="${jlink.launcher.name}=${module.name}/${main.class}"/> - <arg if:set="jlink.do.additionalparam.internal" line="${jlink.additionalparam}"/> - <arg value="--output"/> - <arg value="${dist.jlink.output}"/> - </exec> - </target> - <target name="-post-deploy"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-do-jar,-post-jar,-pre-deploy,-do-deploy,-post-deploy" name="deploy"/> - <!-- - ================= - EXECUTION SECTION - ================= - --> - <target depends="init,compile" description="Run a main class." name="run"> - <j2seproject1:java> - <customize> - <arg line="${application.args}"/> - </customize> - </j2seproject1:java> - </target> - <target name="-do-not-recompile"> - <property name="javac.includes.binary" value=""/> - </target> - <target depends="init,compile-single" name="run-single"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <j2seproject1:java classname="${run.class}"/> - </target> - <target depends="init,compile-test-single" name="run-test-with-main"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/> - </target> - <!-- - ================= - DEBUGGING SECTION - ================= - --> - <target depends="init" if="netbeans.home" name="-debug-start-debugger"> - <j2seproject1:nbjpdastart name="${debug.class}"/> - </target> - <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test"> - <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/> - </target> - <target depends="init,compile" name="-debug-start-debuggee"> - <j2seproject3:debug> - <customizeDebuggee> - <arg line="${application.args}"/> - </customizeDebuggee> - </j2seproject3:debug> - </target> - <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/> - <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto"> - <j2seproject1:nbjpdastart stopclassname="${main.class}"/> - </target> - <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/> - <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single"> - <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> - <j2seproject3:debug classname="${debug.class}"/> - </target> - <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/> - <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test"> - <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> - <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/> - </target> - <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/> - <target depends="init" name="-pre-debug-fix"> - <fail unless="fix.includes">Must set fix.includes</fail> - <property name="javac.includes" value="${fix.includes}.java"/> - </target> - <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix"> - <j2seproject1:nbjpdareload/> - </target> - <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> - <!-- - ================= - PROFILING SECTION - ================= - --> - <!-- - pre NB7.2 profiler integration - --> - <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile/> - </target> - <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72"> - <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile classname="${profile.class}"/> - </target> - <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.classpath}"/> - </classpath> - </nbprofiledirect> - <profile classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </profile> - </target> - <target depends="-init-macrodef-junit,profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> - <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> - <nbprofiledirect> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - </nbprofiledirect> - <j2seproject3:junit excludes="${excludes}" includes="${includes}" testincludes="${profile.class}" testmethods=""> - <customize> - <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> - <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> - <jvmarg value="${profiler.info.jvmargs.agent}"/> - <jvmarg line="${profiler.info.jvmargs}"/> - <classpath> - <path path="${run.test.classpath}"/> - </classpath> - </customize> - </j2seproject3:junit> - </target> - <!-- - end of pre NB72 profiling section - --> - <target if="netbeans.home" name="-profile-check"> - <condition property="profiler.configured"> - <or> - <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/> - <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/> - </or> - </condition> - </target> - <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent"> - <startprofiler/> - <antcall target="run"/> - </target> - <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <startprofiler/> - <antcall target="run-single"/> - </target> - <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/> - <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs"> - <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> - <startprofiler/> - <antcall target="test-single"/> - </target> - <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main"> - <fail unless="run.class">Must select one file in the IDE or set run.class</fail> - <startprofiler/> - <antcall target="run-test-with-main"/> - </target> - <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <startprofiler/> - <antcall target="run-applet"/> - </target> - <!-- - =============== - JAVADOC SECTION - =============== - --> - <target depends="init" if="have.sources" name="-javadoc-build"> - <mkdir dir="${dist.javadoc.dir}"/> - <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}"> - <and> - <isset property="endorsed.classpath.cmd.line.arg"/> - <not> - <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/> - </not> - </and> - </condition> - <condition else="" property="bug5101868workaround" value="*.java"> - <matches pattern="1\.[56](\..*)?" string="${java.version}"/> - </condition> - <condition else="" property="javadoc.html5.cmd.line.arg" value="-html5"> - <and> - <isset property="javadoc.html5"/> - <available file="${jdk.home}${file.separator}lib${file.separator}jrt-fs.jar"/> - </and> - </condition> - <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> - <classpath> - <path path="${javac.classpath}"/> - </classpath> - <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> - <filename name="**/*.java"/> - </fileset> - <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="**/*.java"/> - <exclude name="*.java"/> - </fileset> - <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/> - <arg line="${javadoc.html5.cmd.line.arg}"/> - </javadoc> - <copy todir="${dist.javadoc.dir}"> - <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> - <filename name="**/doc-files/**"/> - </fileset> - <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> - <include name="**/doc-files/**"/> - </fileset> - </copy> - </target> - <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview"> - <nbbrowse file="${dist.javadoc.dir}/index.html"/> - </target> - <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/> - <!-- - ========================= - TEST COMPILATION SECTION - ========================= - --> - <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test"> - <mkdir dir="${build.test.classes.dir}"/> - </target> - <target name="-pre-compile-test"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module"> - <j2seproject3:modulename property="test.module.name" sourcepath="${test.src.dir}"/> - <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.src.dir}"> - <and> - <isset property="test.module.name"/> - <length length="0" string="${test.module.name}" when="greater"/> - </and> - </condition> - <condition else="--patch-module ${module.name}=${test.src.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.module.name}=ALL-UNNAMED"> - <and> - <isset property="test.module.name"/> - <length length="0" string="${test.module.name}" when="greater"/> - </and> - </condition> - </target> - <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-run-module-properties"> - <condition else="${module.name}" property="run.test.addexport.source.module.internal" value="${test.module.name}"> - <and> - <isset property="test.module.name"/> - <length length="0" string="${test.module.name}" when="greater"/> - </and> - </condition> - <fileset dir="${build.test.classes.dir}" id="run.test.packages.internal" includes="**/*.class"/> - <property location="${build.test.classes.dir}" name="build.test.classes.dir.abs.internal"/> - <pathconvert pathsep=" " property="run.test.addexports.internal" refid="run.test.packages.internal"> - <chainedmapper> - <regexpmapper from="^(.*)\Q${file.separator}\E.*\.class$$" to="\1"/> - <filtermapper> - <uniqfilter/> - <replacestring from="${build.test.classes.dir.abs.internal}" to=""/> - </filtermapper> - <cutdirsmapper dirs="1"/> - <packagemapper from="*" to="--add-exports ${run.test.addexport.source.module.internal}/*=ALL-UNNAMED"/> - </chainedmapper> - </pathconvert> - <condition else="--patch-module ${module.name}=${build.test.classes.dir} --add-modules ${module.name} --add-reads ${module.name}=ALL-UNNAMED ${run.test.addexports.internal}" property="run.test.jvmargs" value="--add-modules ${test.module.name} --add-reads ${test.module.name}=ALL-UNNAMED ${run.test.addexports.internal}"> - <and> - <isset property="test.module.name"/> - <length length="0" string="${test.module.name}" when="greater"/> - </and> - </condition> - </target> - <target depends="-init-source-module-properties" name="-init-test-module-properties-without-module" unless="named.module.internal"> - <property name="javac.test.sourcepath" value="${empty.dir}"/> - <property name="javac.test.compilerargs" value=""/> - <property name="run.test.jvmargs" value=""/> - </target> - <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/> - <target if="do.depend.true" name="-compile-test-depend"> - <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> - </target> - <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.src.dir}"> - <customize> - <compilerarg line="${javac.test.compilerargs}"/> - </customize> - </j2seproject3:javac> - <copy todir="${build.test.classes.dir}"> - <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target name="-post-compile-test"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/> - <target name="-pre-compile-test-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> - <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> - <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> - <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"> - <customize> - <compilerarg line="${javac.test.compilerargs}"/> - </customize> - </j2seproject3:javac> - <copy todir="${build.test.classes.dir}"> - <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> - </copy> - </target> - <target name="-post-compile-test-single"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/> - <!-- - ======================= - TEST EXECUTION SECTION - ======================= - --> - <target depends="init" if="have.tests" name="-pre-test-run"> - <mkdir dir="${build.test.results.dir}"/> - </target> - <target depends="init,compile-test,-init-test-run-module-properties,-pre-test-run" if="have.tests" name="-do-test-run"> - <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/> - </target> - <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init" if="have.tests" name="test-report"/> - <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> - <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/> - <target depends="init" if="have.tests" name="-pre-test-run-single"> - <mkdir dir="${build.test.results.dir}"/> - </target> - <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> - <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> - <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> - <fail unless="test.class">Must select some files in the IDE or set test.class</fail> - <fail unless="test.method">Must select some method in the IDE or set test.method</fail> - <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> - <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> - </target> - <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> - <!-- - ======================= - TEST DEBUGGING SECTION - ======================= - --> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test"> - <fail unless="test.class">Must select one file in the IDE or set test.class</fail> - <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/> - </target> - <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method"> - <fail unless="test.class">Must select one file in the IDE or set test.class</fail> - <fail unless="test.method">Must select some method in the IDE or set test.method</fail> - <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/> - </target> - <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> - <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> - </target> - <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> - <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> - <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> - <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/> - </target> - <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/> - <!-- - ========================= - APPLET EXECUTION SECTION - ========================= - --> - <target depends="init,compile-single" name="run-applet"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <j2seproject1:java classname="sun.applet.AppletViewer"> - <customize> - <arg value="${applet.url}"/> - </customize> - </j2seproject1:java> - </target> - <!-- - ========================= - APPLET DEBUGGING SECTION - ========================= - --> - <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet"> - <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> - <j2seproject3:debug classname="sun.applet.AppletViewer"> - <customizeDebuggee> - <arg value="${applet.url}"/> - </customizeDebuggee> - </j2seproject3:debug> - </target> - <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/> - <!-- - =============== - CLEANUP SECTION - =============== - --> - <target name="-deps-clean-init" unless="built-clean.properties"> - <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/> - <delete file="${built-clean.properties}" quiet="true"/> - </target> - <target if="already.built.clean.${basedir}" name="-warn-already-built-clean"> - <echo level="warn" message="Cycle detected: Networked Graphics MV3500 assignments was already built"/> - </target> - <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps"> - <mkdir dir="${build.dir}"/> - <touch file="${built-clean.properties}" verbose="false"/> - <property file="${built-clean.properties}" prefix="already.built.clean."/> - <antcall target="-warn-already-built-clean"/> - <propertyfile file="${built-clean.properties}"> - <entry key="${basedir}" value=""/> - </propertyfile> - </target> - <target depends="init" name="-do-clean"> - <delete dir="${build.dir}"/> - <delete dir="${dist.jlink.output}"/> - <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/> - </target> - <target name="-post-clean"> - <!-- Empty placeholder for easier customization. --> - <!-- You can override this target in the ../build.xml file. --> - </target> - <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/> - <target name="-check-call-dep"> - <property file="${call.built.properties}" prefix="already.built."/> - <condition property="should.call.dep"> - <and> - <not> - <isset property="already.built.${call.subproject}"/> - </not> - <available file="${call.script}"/> - </and> - </condition> - </target> - <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep"> - <ant antfile="${call.script}" inheritall="false" target="${call.target}"> - <propertyset> - <propertyref prefix="transfer."/> - <mapper from="transfer.*" to="*" type="glob"/> - </propertyset> - </ant> - </target> -</project> +<?xml version="1.0" encoding="UTF-8"?> +<!-- +*** GENERATED FROM project.xml - DO NOT EDIT *** +*** EDIT ../build.xml INSTEAD *** + +For the purpose of easier reading the script +is divided into following sections: + + - initialization + - compilation + - jar + - execution + - debugging + - javadoc + - test compilation + - test execution + - test debugging + - applet + - cleanup + + --> +<project xmlns:if="ant:if" xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" xmlns:unless="ant:unless" basedir=".." default="default" name="Networked_Graphics_MV3500_assignments-impl"> + <fail message="Please build using Ant 1.8.0 or higher."> + <condition> + <not> + <antversion atleast="1.8.0"/> + </not> + </condition> + </fail> + <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/> + <!-- + ====================== + INITIALIZATION SECTION + ====================== + --> + <target name="-pre-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-pre-init" name="-init-private"> + <property file="nbproject/private/config.properties"/> + <property file="nbproject/private/configs/${config}.properties"/> + <property file="nbproject/private/private.properties"/> + </target> + <target depends="-pre-init,-init-private" name="-init-user"> + <property file="${user.properties.file}"/> + <!-- The two properties below are usually overridden --> + <!-- by the active platform. Just a fallback. --> + <property name="default.javac.source" value="1.6"/> + <property name="default.javac.target" value="1.6"/> + </target> + <target depends="-pre-init,-init-private,-init-user" name="-init-project"> + <property file="nbproject/configs/${config}.properties"/> + <property file="nbproject/project.properties"/> + </target> + <target name="-init-modules-supported"> + <condition property="modules.supported.internal" value="true"> + <not> + <matches pattern="1\.[0-8](\..*)?" string="${javac.source}"/> + </not> + </condition> + </target> + <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-modulename"> + <macrodef name="modulename" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute name="property"/> + <attribute name="sourcepath"/> + <sequential> + <loadresource property="@{property}" quiet="true"> + <javaresource classpath="@{sourcepath}" name="module-info.java" parentFirst="false"/> + <filterchain> + <stripjavacomments/> + <linecontainsregexp> + <regexp pattern="module .* \{"/> + </linecontainsregexp> + <tokenfilter> + <linetokenizer/> + <replaceregex flags="s" pattern="(\s*module\s+)(\S*)(\s*\{.*)" replace="\2"/> + </tokenfilter> + <striplinebreaks/> + </filterchain> + </loadresource> + </sequential> + </macrodef> + </target> + <target depends="-init-modules-supported,-init-macrodef-modulename" if="modules.supported.internal" name="-init-source-module-properties"> + <fail message="Java 9 support requires Ant 1.10.0 or higher."> + <condition> + <not> + <antversion atleast="1.10.0"/> + </not> + </condition> + </fail> + <j2seproject3:modulename property="module.name" sourcepath="${src.dir}"/> + <condition property="named.module.internal"> + <and> + <isset property="module.name"/> + <length length="0" string="${module.name}" when="greater"/> + </and> + </condition> + <condition property="unnamed.module.internal"> + <not> + <isset property="named.module.internal"/> + </not> + </condition> + <property name="javac.modulepath" value=""/> + <property name="run.modulepath" value="${javac.modulepath}"/> + <property name="module.build.classes.dir" value="${build.classes.dir}"/> + <property name="debug.modulepath" value="${run.modulepath}"/> + <property name="javac.upgrademodulepath" value=""/> + <property name="run.upgrademodulepath" value="${javac.upgrademodulepath}"/> + <condition else="" property="javac.systemmodulepath.cmd.line.arg" value="--system '${javac.systemmodulepath}'"> + <and> + <isset property="javac.systemmodulepath"/> + <length length="0" string="${javac.systemmodulepath}" when="greater"/> + </and> + </condition> + <property name="dist.jlink.dir" value="${dist.dir}/jlink"/> + <property name="dist.jlink.output" value="${dist.jlink.dir}/${application.title}"/> + <property name="module.name" value=""/> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property,-init-modules-supported" name="-do-init"> + <j2seproject1:property name="platform.home" value="platforms.${platform.active}.home"/> + <j2seproject1:property name="platform.bootcp" value="platforms.${platform.active}.bootclasspath"/> + <j2seproject1:property name="platform.compiler" value="platforms.${platform.active}.compile"/> + <j2seproject1:property name="platform.javac.tmp" value="platforms.${platform.active}.javac"/> + <condition property="platform.javac" value="${platform.home}/bin/javac"> + <equals arg1="${platform.javac.tmp}" arg2="$${platforms.${platform.active}.javac}"/> + </condition> + <property name="platform.javac" value="${platform.javac.tmp}"/> + <j2seproject1:property name="platform.java.tmp" value="platforms.${platform.active}.java"/> + <condition property="platform.java" value="${platform.home}/bin/java"> + <equals arg1="${platform.java.tmp}" arg2="$${platforms.${platform.active}.java}"/> + </condition> + <property name="platform.java" value="${platform.java.tmp}"/> + <j2seproject1:property name="platform.javadoc.tmp" value="platforms.${platform.active}.javadoc"/> + <condition property="platform.javadoc" value="${platform.home}/bin/javadoc"> + <equals arg1="${platform.javadoc.tmp}" arg2="$${platforms.${platform.active}.javadoc}"/> + </condition> + <property name="platform.javadoc" value="${platform.javadoc.tmp}"/> + <condition property="platform.invalid" value="true"> + <or> + <contains string="${platform.javac}" substring="$${platforms."/> + <contains string="${platform.java}" substring="$${platforms."/> + <contains string="${platform.javadoc}" substring="$${platforms."/> + </or> + </condition> + <fail unless="platform.home">Must set platform.home</fail> + <fail unless="platform.bootcp">Must set platform.bootcp</fail> + <fail unless="platform.java">Must set platform.java</fail> + <fail unless="platform.javac">Must set platform.javac</fail> + <fail if="platform.invalid"> + The J2SE Platform is not correctly set up. + Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. + Either open the project in the IDE and setup the Platform with the same name or add it manually. + For example like this: + ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) + or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) + </fail> + <available file="${manifest.file}" property="manifest.available"/> + <condition property="splashscreen.available"> + <and> + <not> + <equals arg1="${application.splash}" arg2="" trim="true"/> + </not> + <available file="${application.splash}"/> + </and> + </condition> + <condition property="main.class.available"> + <and> + <isset property="main.class"/> + <not> + <equals arg1="${main.class}" arg2="" trim="true"/> + </not> + </and> + </condition> + <condition property="profile.available"> + <and> + <isset property="javac.profile"/> + <length length="0" string="${javac.profile}" when="greater"/> + <not> + <matches pattern="1\.[0-7](\..*)?" string="${javac.source}"/> + </not> + </and> + </condition> + <condition property="do.archive"> + <or> + <not> + <istrue value="${jar.archive.disabled}"/> + </not> + <istrue value="${not.archive.disabled}"/> + </or> + </condition> + <condition property="do.archive+manifest.available"> + <and> + <isset property="manifest.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="do.archive+main.class.available"> + <and> + <isset property="main.class.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="do.archive+splashscreen.available"> + <and> + <isset property="splashscreen.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="do.archive+profile.available"> + <and> + <isset property="profile.available"/> + <istrue value="${do.archive}"/> + </and> + </condition> + <condition property="have.tests"> + <or> + <available file="${test.src.dir}"/> + </or> + </condition> + <condition property="have.sources"> + <or> + <available file="${src.dir}"/> + </or> + </condition> + <condition property="netbeans.home+have.tests"> + <and> + <isset property="netbeans.home"/> + <isset property="have.tests"/> + </and> + </condition> + <condition property="no.javadoc.preview"> + <and> + <isset property="javadoc.preview"/> + <isfalse value="${javadoc.preview}"/> + </and> + </condition> + <property name="run.jvmargs" value=""/> + <property name="run.jvmargs.ide" value=""/> + <property name="javac.compilerargs" value=""/> + <property name="work.dir" value="${basedir}"/> + <condition property="no.deps"> + <and> + <istrue value="${no.dependencies}"/> + </and> + </condition> + <property name="javac.debug" value="true"/> + <property name="javadoc.preview" value="true"/> + <property name="application.args" value=""/> + <property name="source.encoding" value="${file.encoding}"/> + <property name="runtime.encoding" value="${source.encoding}"/> + <property name="manifest.encoding" value="${source.encoding}"/> + <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> + <and> + <isset property="javadoc.encoding"/> + <not> + <equals arg1="${javadoc.encoding}" arg2=""/> + </not> + </and> + </condition> + <property name="javadoc.encoding.used" value="${source.encoding}"/> + <property name="includes" value="**"/> + <property name="excludes" value=""/> + <property name="do.depend" value="false"/> + <condition property="do.depend.true"> + <istrue value="${do.depend}"/> + </condition> + <path id="endorsed.classpath.path" path="${endorsed.classpath}"/> + <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'"> + <and> + <isset property="endorsed.classpath"/> + <not> + <equals arg1="${endorsed.classpath}" arg2="" trim="true"/> + </not> + </and> + </condition> + <condition else="" property="javac.profile.cmd.line.arg" value="-profile ${javac.profile}"> + <isset property="profile.available"/> + </condition> + <property name="jar.index" value="false"/> + <property name="jar.index.metainf" value="${jar.index}"/> + <property name="copylibs.rebase" value="true"/> + <available file="${meta.inf.dir}/persistence.xml" property="has.persistence.xml"/> + <condition property="junit.available"> + <or> + <available classname="org.junit.Test" classpath="${run.test.classpath}"/> + <available classname="junit.framework.Test" classpath="${run.test.classpath}"/> + </or> + </condition> + <condition property="testng.available"> + <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/> + </condition> + <condition property="junit+testng.available"> + <and> + <istrue value="${junit.available}"/> + <istrue value="${testng.available}"/> + </and> + </condition> + <condition else="testng" property="testng.mode" value="mixed"> + <istrue value="${junit+testng.available}"/> + </condition> + <condition else="" property="testng.debug.mode" value="-mixed"> + <istrue value="${junit+testng.available}"/> + </condition> + <property name="java.failonerror" value="true"/> + </target> + <target name="-post-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> + <fail unless="src.dir">Must set src.dir</fail> + <fail unless="test.src.dir">Must set test.src.dir</fail> + <fail unless="build.dir">Must set build.dir</fail> + <fail unless="dist.dir">Must set dist.dir</fail> + <fail unless="build.classes.dir">Must set build.classes.dir</fail> + <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail> + <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail> + <fail unless="build.test.results.dir">Must set build.test.results.dir</fail> + <fail unless="build.classes.excludes">Must set build.classes.excludes</fail> + <fail unless="dist.jar">Must set dist.jar</fail> + </target> + <target name="-init-macrodef-property"> + <macrodef name="property" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute name="name"/> + <attribute name="value"/> + <sequential> + <property name="@{name}" value="${@{value}}"/> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="modules.supported.internal" name="-init-macrodef-javac-with-module"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <attribute default="${javac.modulepath}" name="modulepath"/> + <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${javac.processormodulepath}" name="processormodulepath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="sourcepath" unless:set="named.module.internal"/> + <attribute default="${src.dir}" if:set="named.module.internal" name="sourcepath"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <condition property="warn.excludes.internal"> + <and> + <isset property="named.module.internal"/> + <length length="0" string="@{excludes}" trim="true" when="greater"/> + </and> + </condition> + <echo if:set="warn.excludes.internal" level="warning" message="The javac excludes are not supported in the JDK 9 Named Module."/> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <mkdir dir="@{apgeneratedsrcdir}"/> + <condition property="processormodulepath.set"> + <resourcecount count="0" when="greater"> + <path> + <pathelement path="@{processormodulepath}"/> + </path> + </resourcecount> + </condition> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <modulepath> + <path path="@{modulepath}"/> + </modulepath> + <upgrademodulepath> + <path path="@{upgrademodulepath}"/> + </upgrademodulepath> + <compilerarg line="${javac.systemmodulepath.cmd.line.arg}"/> + <compilerarg line="${javac.profile.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <compilerarg if:set="processormodulepath.set" value="--processor-module-path"/> + <compilerarg if:set="processormodulepath.set" path="@{processormodulepath}"/> + <compilerarg unless:set="processormodulepath.set" value="-processorpath"/> + <compilerarg path="@{processorpath}:${empty.dir}" unless:set="processormodulepath.set"/> + <compilerarg line="${ap.processors.internal}"/> + <compilerarg line="${annotation.processing.processor.options}"/> + <compilerarg value="-s"/> + <compilerarg path="@{apgeneratedsrcdir}"/> + <compilerarg line="${ap.proc.none.internal}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties,-init-source-module-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors" unless="modules.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <attribute default="${javac.modulepath}" name="modulepath"/> + <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="sourcepath"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <mkdir dir="@{apgeneratedsrcdir}"/> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> + <compilerarg line="${javac.profile.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <compilerarg value="-processorpath"/> + <compilerarg path="@{processorpath}:${empty.dir}"/> + <compilerarg line="${ap.processors.internal}"/> + <compilerarg line="${annotation.processing.processor.options}"/> + <compilerarg value="-s"/> + <compilerarg path="@{apgeneratedsrcdir}"/> + <compilerarg line="${ap.proc.none.internal}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties,-init-source-module-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <attribute default="${javac.modulepath}" name="modulepath"/> + <attribute default="${javac.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="sourcepath"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" executable="${platform.javac}" fork="yes" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}" tempdir="${java.io.tmpdir}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> + <compilerarg line="${javac.profile.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-javac-with-module,-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> + <macrodef name="depend" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}" name="classpath"/> + <sequential> + <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + </depend> + </sequential> + </macrodef> + <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${build.classes.dir}" name="destdir"/> + <sequential> + <fail unless="javac.includes">Must set javac.includes</fail> + <pathconvert pathsep="${line.separator}" property="javac.includes.binary"> + <path> + <filelist dir="@{destdir}" files="${javac.includes}"/> + </path> + <globmapper from="*.java" to="*.class"/> + </pathconvert> + <tempfile deleteonexit="true" property="javac.includesfile.binary"/> + <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/> + <delete> + <files includesfile="${javac.includesfile.binary}"/> + </delete> + <delete> + <fileset file="${javac.includesfile.binary}"/> + </delete> + </sequential> + </macrodef> + </target> + <target if="${junit.available}" name="-init-macrodef-junit-init"> + <condition else="false" property="nb.junit.batch" value="true"> + <and> + <istrue value="${junit.available}"/> + <not> + <isset property="test.method"/> + </not> + </and> + </condition> + <condition else="false" property="nb.junit.single" value="true"> + <and> + <istrue value="${junit.available}"/> + <isset property="test.method"/> + </and> + </condition> + </target> + <target name="-init-test-properties"> + <property name="test.binaryincludes" value="<nothing>"/> + <property name="test.binarytestincludes" value=""/> + <property name="test.binaryexcludes" value=""/> + </target> + <target depends="-init-modules-supported" if="modules.supported.internal" name="-init-macrodef-junit-prototype-with-module"> + <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <element name="customizePrototype" optional="true"/> + <sequential> + <property name="junit.forkmode" value="perTest"/> + <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}"> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + <modulepath> + <path path="${run.test.modulepath}"/> + </modulepath> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-ea"/> + <jvmarg line="${run.test.jvmargs}"/> + <customizePrototype/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-modules-supported" name="-init-macrodef-junit-prototype-without-module" unless="modules.supported.internal"> + <macrodef name="junit-prototype" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <element name="customizePrototype" optional="true"/> + <sequential> + <property name="junit.forkmode" value="perTest"/> + <junit dir="${work.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" forkmode="${junit.forkmode}" jvm="${platform.java}" showoutput="true" tempdir="${build.dir}"> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-ea"/> + <customizePrototype/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> + <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <j2seproject3:junit-prototype> + <customizePrototype> + <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> + <customize/> + </customizePrototype> + </j2seproject3:junit-prototype> + </sequential> + </macrodef> + </target> + <target depends="-init-test-properties,-init-macrodef-junit-prototype-with-module,-init-macrodef-junit-prototype-without-module" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> + <macrodef name="junit" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <j2seproject3:junit-prototype> + <customizePrototype> + <batchtest todir="${build.test.results.dir}"> + <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> + <filename name="${test.binarytestincludes}"/> + </fileset> + </batchtest> + <customize/> + </customizePrototype> + </j2seproject3:junit-prototype> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> + <target if="${testng.available}" name="-init-macrodef-testng"> + <macrodef name="testng" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> + <isset property="test.method"/> + </condition> + <union id="test.set"> + <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + </union> + <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> + <testng classfilesetref="test.set" failureProperty="tests.failed" jvm="${platform.java}" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="Networked_Graphics_MV3500_assignments" testname="TestNG tests" workingDir="${work.dir}"> + <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> + <propertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </propertyset> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <customize/> + </testng> + </sequential> + </macrodef> + </target> + <target name="-init-macrodef-test-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <echo>No tests executed.</echo> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </j2seproject3:junit> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <j2seproject3:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </j2seproject3:testng> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test"> + <macrodef name="test" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <sequential> + <j2seproject3:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + </customize> + </j2seproject3:test-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> + <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customizeDebuggee" optional="true"/> + <sequential> + <j2seproject3:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> + <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> + <customizeDebuggee/> + </customize> + </j2seproject3:junit> + </sequential> + </macrodef> + </target> + <target if="${testng.available}" name="-init-macrodef-testng-debug"> + <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <element name="customize2" optional="true"/> + <sequential> + <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> + <isset property="test.method"/> + </condition> + <condition else="-suitename Networked_Graphics_MV3500_assignments -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> + <matches pattern=".*\.xml" string="@{testClass}"/> + </condition> + <delete dir="${build.test.results.dir}" quiet="true"/> + <mkdir dir="${build.test.results.dir}"/> + <j2seproject3:debug classname="org.testng.TestNG" classpath="${debug.test.classpath}"> + <customizeDebuggee> + <customize2/> + <jvmarg value="-ea"/> + <arg line="${testng.debug.mode}"/> + <arg line="-d ${build.test.results.dir}"/> + <arg line="-listener org.testng.reporters.VerboseReporter"/> + <arg line="${testng.cmd.args}"/> + </customizeDebuggee> + </j2seproject3:debug> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl"> + <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <element implicit="true" name="customize2" optional="true"/> + <sequential> + <j2seproject3:testng-debug testClass="@{testClass}" testMethod="@{testMethod}"> + <customize2/> + </j2seproject3:testng-debug> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit"> + <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <sequential> + <j2seproject3:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customizeDebuggee> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + </customizeDebuggee> + </j2seproject3:test-debug-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng"> + <macrodef name="test-debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <sequential> + <j2seproject3:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}"> + <customize2> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + </customize2> + </j2seproject3:testng-debug-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/> + <!-- + pre NB7.2 profiling section; consider it deprecated + --> + <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/> + <target if="profiler.info.jvmargs.agent" name="-profile-pre-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="profiler.info.jvmargs.agent" name="-profile-post-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="profiler.info.jvmargs.agent" name="-profile-init-macrodef-profile"> + <macrodef name="resolve"> + <attribute name="name"/> + <attribute name="value"/> + <sequential> + <property name="@{name}" value="${env.@{value}}"/> + </sequential> + </macrodef> + <macrodef name="profile"> + <attribute default="${main.class}" name="classname"/> + <element name="customize" optional="true"/> + <sequential> + <property environment="env"/> + <resolve name="profiler.current.path" value="${profiler.info.pathvar}"/> + <java classname="@{classname}" dir="${profiler.info.dir}" failonerror="${java.failonerror}" fork="true" jvm="${profiler.info.jvm}"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg line="${profiler.info.jvmargs}"/> + <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> + <arg line="${application.args}"/> + <classpath> + <path path="${run.classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-macrodef-profile" if="profiler.info.jvmargs.agent" name="-profile-init-check"> + <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> + <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> + </target> + <!-- + end of pre NB7.2 profiling section + --> + <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> + <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${main.class}" name="name"/> + <attribute default="${debug.modulepath}" name="modulepath"/> + <attribute default="${debug.classpath}" name="classpath"/> + <attribute default="" name="stopclassname"/> + <sequential> + <nbjpdastart addressproperty="jpda.address" name="@{name}" stopclassname="@{stopclassname}" transport="${debug-transport}"> + <modulepath> + <path path="@{modulepath}"/> + </modulepath> + <classpath> + <path path="@{classpath}"/> + </classpath> + <bootclasspath> + <path path="${platform.bootcp}"/> + </bootclasspath> + </nbjpdastart> + </sequential> + </macrodef> + <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${build.classes.dir}" name="dir"/> + <sequential> + <nbjpdareload> + <fileset dir="@{dir}" includes="${fix.classes}"> + <include name="${fix.includes}*.class"/> + </fileset> + </nbjpdareload> + </sequential> + </macrodef> + </target> + <target name="-init-debug-args"> + <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> + <os family="windows"/> + </condition> + <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}"> + <isset property="debug.transport"/> + </condition> + </target> + <target depends="-init-debug-args" name="-init-macrodef-debug"> + <macrodef name="debug" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${module.name}" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="${debug.modulepath}" name="modulepath"/> + <attribute default="${debug.classpath}" name="classpath"/> + <element name="customizeDebuggee" optional="true"/> + <sequential> + <j2seproject1:java classname="@{classname}" classpath="@{classpath}" modulename="@{modulename}" modulepath="@{modulepath}"> + <customize> + <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> + <customizeDebuggee/> + </customize> + </j2seproject1:java> + </sequential> + </macrodef> + </target> + <target depends="-init-source-module-properties" if="named.module.internal" name="-init-macrodef-java-with-module"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="${module.name}" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="${run.modulepath}" name="modulepath"/> + <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" jvm="${platform.java}" module="@{modulename}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + <modulepath> + <pathelement path="@{modulepath}"/> + <pathelement location="${module.build.classes.dir}"/> + </modulepath> + <upgrademodulepath> + <path path="@{upgrademodulepath}"/> + </upgrademodulepath> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-init-source-module-properties" if="unnamed.module.internal" name="-init-macrodef-java-with-unnamed-module"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="${run.modulepath}" name="modulepath"/> + <attribute default="${run.upgrademodulepath}" name="upgrademodulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" jvm="${platform.java}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + <modulepath> + <path path="@{modulepath}"/> + </modulepath> + <upgrademodulepath> + <path path="@{upgrademodulepath}"/> + </upgrademodulepath> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-init-source-module-properties" name="-init-macrodef-java-without-module" unless="modules.supported.internal"> + <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> + <attribute default="" name="modulename"/> + <attribute default="${main.class}" name="classname"/> + <attribute default="" name="modulepath"/> + <attribute default="${run.classpath}" name="classpath"/> + <attribute default="jvm" name="jvm"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true" jvm="${platform.java}"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg value="-Dfile.encoding=${runtime.encoding}"/> + <redirector errorencoding="${runtime.encoding}" inputencoding="${runtime.encoding}" outputencoding="${runtime.encoding}"/> + <jvmarg line="${run.jvmargs}"/> + <jvmarg line="${run.jvmargs.ide}"/> + <classpath> + <path path="@{classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-java-with-module, -init-macrodef-java-with-unnamed-module, -init-macrodef-java-without-module" name="-init-macrodef-java"/> + <target name="-init-macrodef-copylibs"> + <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3"> + <attribute default="${manifest.file}" name="manifest"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> + <pathconvert property="run.classpath.without.build.classes.dir"> + <path path="${run.classpath}"/> + <map from="${build.classes.dir.resolved}" to=""/> + </pathconvert> + <pathconvert pathsep=" " property="jar.classpath"> + <path path="${run.classpath.without.build.classes.dir}"/> + <chainedmapper> + <flattenmapper/> + <filtermapper> + <replacestring from=" " to="%20"/> + </filtermapper> + <globmapper from="*" to="lib/*"/> + </chainedmapper> + </pathconvert> + <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/> + <copylibs compress="${jar.compress}" excludeFromCopy="${copylibs.excludes}" index="${jar.index}" indexMetaInf="${jar.index.metainf}" jarfile="${dist.jar}" manifest="@{manifest}" manifestencoding="UTF-8" rebase="${copylibs.rebase}" runtimeclasspath="${run.classpath.without.build.classes.dir}"> + <fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> + <manifest> + <attribute name="Class-Path" value="${jar.classpath}"/> + <customize/> + </manifest> + </copylibs> + </sequential> + </macrodef> + </target> + <target name="-init-presetdef-jar"> + <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1"> + <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifestencoding="UTF-8"> + <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes}"/> + </jar> + </presetdef> + </target> + <target name="-init-ap-cmdline-properties"> + <property name="annotation.processing.enabled" value="true"/> + <property name="annotation.processing.processors.list" value=""/> + <property name="annotation.processing.processor.options" value=""/> + <property name="annotation.processing.run.all.processors" value="true"/> + <property name="javac.processorpath" value="${javac.classpath}"/> + <property name="javac.test.processorpath" value="${javac.test.classpath}"/> + <condition property="ap.supported.internal" value="true"> + <not> + <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/> + </not> + </condition> + </target> + <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported"> + <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}"> + <isfalse value="${annotation.processing.run.all.processors}"/> + </condition> + <condition else="" property="ap.proc.none.internal" value="-proc:none"> + <isfalse value="${annotation.processing.enabled}"/> + </condition> + </target> + <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline"> + <property name="ap.cmd.line.internal" value=""/> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-nbjpda,-init-macrodef-debug,-init-macrodef-java,-init-presetdef-jar,-init-ap-cmdline" name="init"/> + <!-- + =================== + COMPILATION SECTION + =================== + --> + <target name="-deps-jar-init" unless="built-jar.properties"> + <property location="${build.dir}/built-jar.properties" name="built-jar.properties"/> + <delete file="${built-jar.properties}" quiet="true"/> + </target> + <target if="already.built.jar.${basedir}" name="-warn-already-built-jar"> + <echo level="warn" message="Cycle detected: Networked Graphics MV3500 assignments was already built"/> + </target> + <target depends="init,-deps-jar-init" name="deps-jar" unless="no.deps"> + <mkdir dir="${build.dir}"/> + <touch file="${built-jar.properties}" verbose="false"/> + <property file="${built-jar.properties}" prefix="already.built.jar."/> + <antcall target="-warn-already-built-jar"/> + <propertyfile file="${built-jar.properties}"> + <entry key="${basedir}" value=""/> + </propertyfile> + </target> + <target depends="init,-check-automatic-build,-clean-after-automatic-build" name="-verify-automatic-build"/> + <target depends="init" name="-check-automatic-build"> + <available file="${build.classes.dir}/.netbeans_automatic_build" property="netbeans.automatic.build"/> + </target> + <target depends="init" if="netbeans.automatic.build" name="-clean-after-automatic-build"> + <antcall target="clean"> + <param name="no.dependencies" value="true"/> + </antcall> + </target> + <target depends="init,deps-jar" name="-pre-pre-compile"> + <mkdir dir="${build.classes.dir}"/> + </target> + <target name="-pre-compile"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="do.depend.true" name="-compile-depend"> + <pathconvert property="build.generated.subdirs"> + <dirset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </pathconvert> + <j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/> + </target> + <target depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources" name="-do-compile"> + <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/> + <copy todir="${build.classes.dir}"> + <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target if="has.persistence.xml" name="-copy-persistence-xml"> + <mkdir dir="${build.classes.dir}/META-INF"/> + <copy todir="${build.classes.dir}/META-INF"> + <fileset dir="${meta.inf.dir}" includes="persistence.xml orm.xml"/> + </copy> + </target> + <target name="-post-compile"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/> + <target name="-pre-compile-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <j2seproject3:force-recompile/> + <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}, module-info.java" sourcepath="${src.dir}"/> + </target> + <target name="-post-compile-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-verify-automatic-build,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/> + <!-- + ==================== + JAR BUILDING SECTION + ==================== + --> + <target depends="init" name="-pre-pre-jar"> + <dirname file="${dist.jar}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + </target> + <target name="-pre-jar"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile" name="-check-module-main-class"> + <pathconvert property="main.class.file"> + <string value="${main.class}"/> + <unpackagemapper from="*" to="*.class"/> + </pathconvert> + <condition property="do.module.main.class"> + <and> + <isset property="main.class.available"/> + <available file="${build.classes.dir}/module-info.class"/> + <available file="${build.classes.dir}/${main.class.file}"/> + <isset property="libs.CopyLibs.classpath"/> + <available classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}"/> + </and> + </condition> + </target> + <target depends="-check-module-main-class" if="do.module.main.class" name="-set-module-main-class"> + <taskdef classname="org.netbeans.modules.java.j2seproject.moduletask.ModuleMainClass" classpath="${libs.CopyLibs.classpath}" name="modulemainclass"/> + <modulemainclass failonerror="false" mainclass="${main.class}" moduleinfo="${build.classes.dir}/module-info.class"/> + </target> + <target depends="init" if="do.archive" name="-do-jar-create-manifest" unless="manifest.available"> + <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> + <touch file="${tmp.manifest.file}" verbose="false"/> + </target> + <target depends="init" if="do.archive+manifest.available" name="-do-jar-copy-manifest"> + <tempfile deleteonexit="true" destdir="${build.dir}" property="tmp.manifest.file"/> + <copy encoding="${manifest.encoding}" file="${manifest.file}" outputencoding="UTF-8" tofile="${tmp.manifest.file}"/> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> + <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="Main-Class" value="${main.class}"/> + </manifest> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+profile.available" name="-do-jar-set-profile"> + <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="Profile" value="${javac.profile}"/> + </manifest> + </target> + <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+splashscreen.available" name="-do-jar-set-splashscreen"> + <basename file="${application.splash}" property="splashscreen.basename"/> + <mkdir dir="${build.classes.dir}/META-INF"/> + <copy failonerror="false" file="${application.splash}" todir="${build.classes.dir}/META-INF"/> + <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> + <attribute name="SplashScreen-Image" value="META-INF/${splashscreen.basename}"/> + </manifest> + </target> + <target depends="init,compile" name="-check-do-mkdist"> + <condition property="do.mkdist"> + <and> + <isset property="do.archive"/> + <isset property="libs.CopyLibs.classpath"/> + <not> + <istrue value="${mkdist.disabled}"/> + </not> + <not> + <available file="${build.classes.dir}/module-info.class"/> + </not> + </and> + </condition> + </target> + <target depends="init,-init-macrodef-copylibs,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.mkdist" name="-do-jar-copylibs"> + <j2seproject3:copylibs manifest="${tmp.manifest.file}"/> + <echo level="info">To run this application from the command line without Ant, try:</echo> + <property location="${dist.jar}" name="dist.jar.resolved"/> + <echo level="info">${platform.java} -jar "${dist.jar.resolved}"</echo> + </target> + <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-check-do-mkdist" if="do.archive" name="-do-jar-jar" unless="do.mkdist"> + <j2seproject1:jar manifest="${tmp.manifest.file}"/> + <property location="${build.classes.dir}" name="build.classes.dir.resolved"/> + <property location="${dist.jar}" name="dist.jar.resolved"/> + <condition else="${dist.jar.resolved}" property="jar.usage.message.class.path.replacement" value=""> + <isset property="named.module.internal"/> + </condition> + <pathconvert property="run.classpath.with.dist.jar"> + <path path="${run.classpath}"/> + <map from="${build.classes.dir.resolved}" to="${jar.usage.message.class.path.replacement}"/> + </pathconvert> + <pathconvert property="run.modulepath.with.dist.jar"> + <path location="${dist.jar.resolved}"/> + <path path="${run.modulepath}"/> + <map from="${build.classes.dir.resolved}" to="${dist.jar.resolved}"/> + </pathconvert> + <condition else="${run.modulepath}" property="jar.usage.message.run.modulepath.with.dist.jar" value="${run.modulepath.with.dist.jar}"> + <isset property="named.module.internal"/> + </condition> + <condition else="" property="jar.usage.message.module.path" value=" -p ${jar.usage.message.run.modulepath.with.dist.jar}"> + <and> + <isset property="modules.supported.internal"/> + <length length="0" string="${jar.usage.message.run.modulepath.with.dist.jar}" when="greater"/> + </and> + </condition> + <condition else="" property="jar.usage.message.class.path" value=" -cp ${run.classpath.with.dist.jar}"> + <length length="0" string="${run.classpath.with.dist.jar}" when="greater"/> + </condition> + <condition else="/${main.class}" property="jar.usage.message.main.class.class.selector" value=""> + <isset property="do.module.main.class"/> + </condition> + <condition else=" ${main.class}" property="jar.usage.message.main.class" value=" -m ${module.name}${jar.usage.message.main.class.class.selector}"> + <isset property="named.module.internal"/> + </condition> + <condition else="" property="jar.usage.message" value="To run this application from the command line without Ant, try:${line.separator}${platform.java}${jar.usage.message.module.path}${jar.usage.message.class.path}${jar.usage.message.main.class}"> + <isset property="main.class.available"/> + </condition> + <condition else="debug" property="jar.usage.level" value="info"> + <isset property="main.class.available"/> + </condition> + <echo level="${jar.usage.level}" message="${jar.usage.message}"/> + </target> + <target depends="-do-jar-copylibs" if="do.archive" name="-do-jar-delete-manifest"> + <delete> + <fileset file="${tmp.manifest.file}"/> + </delete> + </target> + <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-jar,-do-jar-delete-manifest" name="-do-jar-without-libraries"/> + <target depends="init,compile,-pre-pre-jar,-pre-jar,-do-jar-create-manifest,-do-jar-copy-manifest,-do-jar-set-mainclass,-do-jar-set-profile,-do-jar-set-splashscreen,-do-jar-copylibs,-do-jar-delete-manifest" name="-do-jar-with-libraries"/> + <target name="-post-jar"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-jar,-set-module-main-class,-do-jar-without-libraries,-do-jar-with-libraries,-post-jar" name="-do-jar"/> + <target depends="init,compile,-pre-jar,-do-jar,-post-jar,deploy" description="Build JAR." name="jar"/> + <!-- + ================= + DEPLOY SECTION + ================= + --> + <target name="-pre-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init" name="-check-jlink"> + <condition property="do.jlink.internal"> + <and> + <istrue value="${do.jlink}"/> + <isset property="do.archive"/> + <isset property="named.module.internal"/> + </and> + </condition> + </target> + <target depends="init,-do-jar,-post-jar,-pre-deploy,-check-jlink" if="do.jlink.internal" name="-do-deploy"> + <delete dir="${dist.jlink.dir}" failonerror="false" quiet="true"/> + <property name="jlink.launcher.name" value="${application.title}"/> + <condition else="${module.name}" property="jlink.add.modules" value="${module.name},${jlink.additionalmodules}"> + <and> + <isset property="jlink.additionalmodules"/> + <length length="0" string="${jlink.additionalmodules}" when="greater"/> + </and> + </condition> + <condition property="jlink.do.strip.internal"> + <and> + <isset property="jlink.strip"/> + <istrue value="${jlink.strip}"/> + </and> + </condition> + <condition property="jlink.do.additionalparam.internal"> + <and> + <isset property="jlink.additionalparam"/> + <length length="0" string="${jlink.additionalparam}" when="greater"/> + </and> + </condition> + <condition property="jlink.do.launcher.internal"> + <and> + <istrue value="${jlink.launcher}"/> + <isset property="main.class.available"/> + </and> + </condition> + <property name="platform.jlink" value="${platform.home}/bin/jlink"/> + <property name="jlink.systemmodules.internal" value="${platform.home}/jmods"/> + <exec executable="${platform.jlink}"> + <arg value="--module-path"/> + <arg path="${jlink.systemmodules.internal}:${run.modulepath}:${dist.jar}"/> + <arg value="--add-modules"/> + <arg value="${jlink.add.modules}"/> + <arg if:set="jlink.do.strip.internal" value="--strip-debug"/> + <arg if:set="jlink.do.launcher.internal" value="--launcher"/> + <arg if:set="jlink.do.launcher.internal" value="${jlink.launcher.name}=${module.name}/${main.class}"/> + <arg if:set="jlink.do.additionalparam.internal" line="${jlink.additionalparam}"/> + <arg value="--output"/> + <arg value="${dist.jlink.output}"/> + </exec> + </target> + <target name="-post-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-do-jar,-post-jar,-pre-deploy,-do-deploy,-post-deploy" name="deploy"/> + <!-- + ================= + EXECUTION SECTION + ================= + --> + <target depends="init,compile" description="Run a main class." name="run"> + <j2seproject1:java> + <customize> + <arg line="${application.args}"/> + </customize> + </j2seproject1:java> + </target> + <target name="-do-not-recompile"> + <property name="javac.includes.binary" value=""/> + </target> + <target depends="init,compile-single" name="run-single"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <j2seproject1:java classname="${run.class}"/> + </target> + <target depends="init,compile-test-single" name="run-test-with-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/> + </target> + <!-- + ================= + DEBUGGING SECTION + ================= + --> + <target depends="init" if="netbeans.home" name="-debug-start-debugger"> + <j2seproject1:nbjpdastart name="${debug.class}"/> + </target> + <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test"> + <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/> + </target> + <target depends="init,compile" name="-debug-start-debuggee"> + <j2seproject3:debug> + <customizeDebuggee> + <arg line="${application.args}"/> + </customizeDebuggee> + </j2seproject3:debug> + </target> + <target depends="init,compile,-debug-start-debugger,-debug-start-debuggee" description="Debug project in IDE." if="netbeans.home" name="debug"/> + <target depends="init" if="netbeans.home" name="-debug-start-debugger-stepinto"> + <j2seproject1:nbjpdastart stopclassname="${main.class}"/> + </target> + <target depends="init,compile,-debug-start-debugger-stepinto,-debug-start-debuggee" if="netbeans.home" name="debug-stepinto"/> + <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single"> + <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> + <j2seproject3:debug classname="${debug.class}"/> + </target> + <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/> + <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test"> + <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> + <j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/> + </target> + <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/> + <target depends="init" name="-pre-debug-fix"> + <fail unless="fix.includes">Must set fix.includes</fail> + <property name="javac.includes" value="${fix.includes}.java"/> + </target> + <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix"> + <j2seproject1:nbjpdareload/> + </target> + <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> + <!-- + ================= + PROFILING SECTION + ================= + --> + <!-- + pre NB7.2 profiler integration + --> + <target depends="profile-init,compile" description="Profile a project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.classpath}"/> + </classpath> + </nbprofiledirect> + <profile/> + </target> + <target depends="profile-init,compile-single" description="Profile a selected class in the IDE." if="profiler.info.jvmargs.agent" name="-profile-single-pre72"> + <fail unless="profile.class">Must select one file in the IDE or set profile.class</fail> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.classpath}"/> + </classpath> + </nbprofiledirect> + <profile classname="${profile.class}"/> + </target> + <target depends="profile-init,compile-single" if="profiler.info.jvmargs.agent" name="-profile-applet-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.classpath}"/> + </classpath> + </nbprofiledirect> + <profile classname="sun.applet.AppletViewer"> + <customize> + <arg value="${applet.url}"/> + </customize> + </profile> + </target> + <target depends="-init-macrodef-junit,profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + </nbprofiledirect> + <j2seproject3:junit excludes="${excludes}" includes="${includes}" testincludes="${profile.class}" testmethods=""> + <customize> + <jvmarg value="-agentlib:jdwp=transport=${debug-transport},address=${jpda.address}"/> + <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg line="${profiler.info.jvmargs}"/> + <classpath> + <path path="${run.test.classpath}"/> + </classpath> + </customize> + </j2seproject3:junit> + </target> + <!-- + end of pre NB72 profiling section + --> + <target if="netbeans.home" name="-profile-check"> + <condition property="profiler.configured"> + <or> + <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/> + <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/> + </or> + </condition> + </target> + <target depends="-profile-check,-profile-pre72" description="Profile a project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent"> + <startprofiler/> + <antcall target="run"/> + </target> + <target depends="-profile-check,-profile-single-pre72" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-single" unless="profiler.info.jvmargs.agent"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <startprofiler/> + <antcall target="run-single"/> + </target> + <target depends="-profile-test-single-pre72" description="Profile a selected test in the IDE." name="profile-test-single"/> + <target depends="-profile-check" description="Profile a selected test in the IDE." if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs"> + <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> + <startprofiler/> + <antcall target="test-single"/> + </target> + <target depends="-profile-check" description="Profile a selected class in the IDE." if="profiler.configured" name="profile-test-with-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <startprofiler/> + <antcall target="run-test-with-main"/> + </target> + <target depends="-profile-check,-profile-applet-pre72" if="profiler.configured" name="profile-applet" unless="profiler.info.jvmargs.agent"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <startprofiler/> + <antcall target="run-applet"/> + </target> + <!-- + =============== + JAVADOC SECTION + =============== + --> + <target depends="init" if="have.sources" name="-javadoc-build"> + <mkdir dir="${dist.javadoc.dir}"/> + <condition else="" property="javadoc.endorsed.classpath.cmd.line.arg" value="-J${endorsed.classpath.cmd.line.arg}"> + <and> + <isset property="endorsed.classpath.cmd.line.arg"/> + <not> + <equals arg1="${endorsed.classpath.cmd.line.arg}" arg2=""/> + </not> + </and> + </condition> + <exec executable="${platform.java}" failonerror="false" outputproperty="platform.version.output"> + <arg value="-version"/> + </exec> + <condition else="" property="bug5101868workaround" value="*.java"> + <matches multiline="true" pattern="1\.[56](\..*)?" string="${platform.version.output}"/> + </condition> + <condition else="" property="javadoc.html5.cmd.line.arg" value="-html5"> + <and> + <isset property="javadoc.html5"/> + <available file="${platform.home}${file.separator}lib${file.separator}jrt-fs.jar"/> + </and> + </condition> + <javadoc additionalparam="-J-Dfile.encoding=${file.encoding} ${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" executable="${platform.javadoc}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> + <classpath> + <path path="${javac.classpath}"/> + </classpath> + <fileset dir="${src.dir}" excludes="${bug5101868workaround},${excludes}" includes="${includes}"> + <filename name="**/*.java"/> + </fileset> + <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="**/*.java"/> + <exclude name="*.java"/> + </fileset> + <arg line="${javadoc.endorsed.classpath.cmd.line.arg}"/> + <arg line="${javadoc.html5.cmd.line.arg}"/> + </javadoc> + <copy todir="${dist.javadoc.dir}"> + <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> + <filename name="**/doc-files/**"/> + </fileset> + <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="**/doc-files/**"/> + </fileset> + </copy> + </target> + <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview"> + <nbbrowse file="${dist.javadoc.dir}/index.html"/> + </target> + <target depends="init,-javadoc-build,-javadoc-browse" description="Build Javadoc." name="javadoc"/> + <!-- + ========================= + TEST COMPILATION SECTION + ========================= + --> + <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test"> + <mkdir dir="${build.test.classes.dir}"/> + </target> + <target name="-pre-compile-test"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-javac-module-properties-with-module"> + <j2seproject3:modulename property="test.module.name" sourcepath="${test.src.dir}"/> + <condition else="${empty.dir}" property="javac.test.sourcepath" value="${test.src.dir}"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + <condition else="--patch-module ${module.name}=${test.src.dir} --add-reads ${module.name}=ALL-UNNAMED" property="javac.test.compilerargs" value="--add-reads ${test.module.name}=ALL-UNNAMED"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + </target> + <target depends="-init-source-module-properties" if="named.module.internal" name="-init-test-run-module-properties"> + <condition else="${module.name}" property="run.test.addexport.source.module.internal" value="${test.module.name}"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + <fileset dir="${build.test.classes.dir}" id="run.test.packages.internal" includes="**/*.class"/> + <property location="${build.test.classes.dir}" name="build.test.classes.dir.abs.internal"/> + <pathconvert pathsep=" " property="run.test.addexports.internal" refid="run.test.packages.internal"> + <chainedmapper> + <regexpmapper from="^(.*)\Q${file.separator}\E.*\.class$$" to="\1"/> + <filtermapper> + <uniqfilter/> + <replacestring from="${build.test.classes.dir.abs.internal}" to=""/> + </filtermapper> + <cutdirsmapper dirs="1"/> + <packagemapper from="*" to="--add-exports ${run.test.addexport.source.module.internal}/*=ALL-UNNAMED"/> + </chainedmapper> + </pathconvert> + <condition else="--patch-module ${module.name}=${build.test.classes.dir} --add-modules ${module.name} --add-reads ${module.name}=ALL-UNNAMED ${run.test.addexports.internal}" property="run.test.jvmargs" value="--add-modules ${test.module.name} --add-reads ${test.module.name}=ALL-UNNAMED ${run.test.addexports.internal}"> + <and> + <isset property="test.module.name"/> + <length length="0" string="${test.module.name}" when="greater"/> + </and> + </condition> + </target> + <target depends="-init-source-module-properties" name="-init-test-module-properties-without-module" unless="named.module.internal"> + <property name="javac.test.sourcepath" value="${empty.dir}"/> + <property name="javac.test.compilerargs" value=""/> + <property name="run.test.jvmargs" value=""/> + </target> + <target depends="-init-test-javac-module-properties-with-module,-init-test-module-properties-without-module" name="-init-test-module-properties"/> + <target if="do.depend.true" name="-compile-test-depend"> + <j2seproject3:depend classpath="${javac.test.classpath}" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> + </target> + <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test,-compile-test-depend" if="have.tests" name="-do-compile-test"> + <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${javac.test.sourcepath}" srcdir="${test.src.dir}"> + <customize> + <compilerarg line="${javac.test.compilerargs}"/> + </customize> + </j2seproject3:javac> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-test"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/> + <target name="-pre-compile-test-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,compile,-init-test-module-properties,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <j2seproject3:force-recompile destdir="${build.test.classes.dir}"/> + <j2seproject3:javac apgeneratedsrcdir="${build.test.classes.dir}" classpath="${javac.test.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}, module-info.java" modulepath="${javac.test.modulepath}" processorpath="${javac.test.processorpath}" sourcepath="${test.src.dir}" srcdir="${test.src.dir}"> + <customize> + <compilerarg line="${javac.test.compilerargs}"/> + </customize> + </j2seproject3:javac> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-test-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/> + <!-- + ======================= + TEST EXECUTION SECTION + ======================= + --> + <target depends="init" if="have.tests" name="-pre-test-run"> + <mkdir dir="${build.test.results.dir}"/> + </target> + <target depends="init,compile-test,-init-test-run-module-properties,-pre-test-run" if="have.tests" name="-do-test-run"> + <j2seproject3:test includes="${includes}" testincludes="**/*Test.java"/> + </target> + <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init" if="have.tests" name="test-report"/> + <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> + <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/> + <target depends="init" if="have.tests" name="-pre-test-run-single"> + <mkdir dir="${build.test.results.dir}"/> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> + <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> + <j2seproject3:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> + <fail unless="test.class">Must select some files in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> + <j2seproject3:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> + <!-- + ======================= + TEST DEBUGGING SECTION + ======================= + --> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test"> + <fail unless="test.class">Must select one file in the IDE or set test.class</fail> + <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method"> + <fail unless="test.class">Must select one file in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> + <j2seproject3:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/> + </target> + <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> + <j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> + </target> + <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> + <target depends="init,compile-test-single,-init-test-run-module-properties,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> + <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> + <j2seproject1:nbjpdareload dir="${build.test.classes.dir}"/> + </target> + <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/> + <!-- + ========================= + APPLET EXECUTION SECTION + ========================= + --> + <target depends="init,compile-single" name="run-applet"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <j2seproject1:java classname="sun.applet.AppletViewer"> + <customize> + <arg value="${applet.url}"/> + </customize> + </j2seproject1:java> + </target> + <!-- + ========================= + APPLET DEBUGGING SECTION + ========================= + --> + <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-applet"> + <fail unless="applet.url">Must select one file in the IDE or set applet.url</fail> + <j2seproject3:debug classname="sun.applet.AppletViewer"> + <customizeDebuggee> + <arg value="${applet.url}"/> + </customizeDebuggee> + </j2seproject3:debug> + </target> + <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-applet" if="netbeans.home" name="debug-applet"/> + <!-- + =============== + CLEANUP SECTION + =============== + --> + <target name="-deps-clean-init" unless="built-clean.properties"> + <property location="${build.dir}/built-clean.properties" name="built-clean.properties"/> + <delete file="${built-clean.properties}" quiet="true"/> + </target> + <target if="already.built.clean.${basedir}" name="-warn-already-built-clean"> + <echo level="warn" message="Cycle detected: Networked Graphics MV3500 assignments was already built"/> + </target> + <target depends="init,-deps-clean-init" name="deps-clean" unless="no.deps"> + <mkdir dir="${build.dir}"/> + <touch file="${built-clean.properties}" verbose="false"/> + <property file="${built-clean.properties}" prefix="already.built.clean."/> + <antcall target="-warn-already-built-clean"/> + <propertyfile file="${built-clean.properties}"> + <entry key="${basedir}" value=""/> + </propertyfile> + </target> + <target depends="init" name="-do-clean"> + <delete dir="${build.dir}"/> + <delete dir="${dist.jlink.output}"/> + <delete dir="${dist.dir}" followsymlinks="false" includeemptydirs="true"/> + </target> + <target name="-post-clean"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-clean,-do-clean,-post-clean" description="Clean build products." name="clean"/> + <target name="-check-call-dep"> + <property file="${call.built.properties}" prefix="already.built."/> + <condition property="should.call.dep"> + <and> + <not> + <isset property="already.built.${call.subproject}"/> + </not> + <available file="${call.script}"/> + </and> + </condition> + </target> + <target depends="-check-call-dep" if="should.call.dep" name="-maybe-call-dep"> + <ant antfile="${call.script}" inheritall="false" target="${call.target}"> + <propertyset> + <propertyref prefix="transfer."/> + <mapper from="transfer.*" to="*" type="glob"/> + </propertyset> + </ant> + </target> +</project> diff --git a/assignments/nbproject/genfiles.properties b/assignments/nbproject/genfiles.properties index 81515a0c3dec1f6ab1d66241d0881f2f5426139c..12bdff2716eac05cf19dd6cff1860cae176c38f5 100644 --- a/assignments/nbproject/genfiles.properties +++ b/assignments/nbproject/genfiles.properties @@ -1,5 +1,5 @@ -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=5eaf4250 -nbproject/build-impl.xml.script.CRC32=013963da -nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=45f9e03b +nbproject/build-impl.xml.script.CRC32=e94792c1 +nbproject/build-impl.xml.stylesheet.CRC32=f89f7d21@1.95.0.48 diff --git a/assignments/nbproject/project.properties b/assignments/nbproject/project.properties index df502d8986ad23cb1a6df170088dc507c1b581ab..3c1afa9b2e632b28bc845f30724722589b52d0fd 100644 --- a/assignments/nbproject/project.properties +++ b/assignments/nbproject/project.properties @@ -1,107 +1,107 @@ -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -application.desc=Student assignments performed as part of course Networked Graphics MV3500 -application.homepage=https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments -application.title=Networked Graphics MV3500 assignments -application.vendor=Don Brutzman -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.modulepath=\ - ${run.modulepath} -debug.test.classpath=\ - ${run.test.classpath} -debug.test.modulepath=\ - ${run.test.modulepath} -# Files in build.classes.dir which should be excluded from distribution jar -dist.archive.excludes= -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/Networked_Graphics_MV3500_assignments.jar -dist.javadoc.dir=${dist.dir}/javadoc -endorsed.classpath= -excludes= -file.reference.commons-io-2.6.jar=../lib/commons-io-2.6.jar -file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar -file.reference.guava-28.0-jre.jar=../lib/guava-28.0-jre.jar -file.reference.open-dis7-entities-all.jar=../lib/open-dis7-entities-all.jar -file.reference.open-dis7-java.jar=../lib/open-dis7-java.jar -file.reference.open-dis7-javadoc.jar=../lib/open-dis7-javadoc.jar -file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar -includes=** -jar.compress=false -javac.classpath=\ - ${file.reference.open-dis7-java.jar}:\ - ${file.reference.open-dis7-entities-all.jar}:\ - ${file.reference.open-dis7-javadoc.jar}:\ - ${file.reference.commons-io-2.6.jar}:\ - ${file.reference.guava-28.0-jre.jar}:\ - ${file.reference.open-dis_4.16.jar}:\ - ${file.reference.dis-enums-1.3.jar} -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.external.vm=true -javac.modulepath= -javac.processormodulepath= -javac.processorpath=\ - ${javac.classpath} -javac.source=1.8 -javac.target=1.8 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.modulepath=\ - ${javac.modulepath} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.html5=false -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -jlink.launcher=false -jlink.launcher.name=Networked_Graphics_MV3500_assignments -main.class=MV3500Cohort2019JulySeptember.homework2.Yurkovich.Yurkovich_Server -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=true -platform.active=default_platform -project.licensePath=../license.txt -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.modulepath=\ - ${javac.modulepath} -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -run.test.modulepath=\ - ${javac.test.modulepath} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.desc=Student assignments performed as part of course Networked Graphics MV3500 +application.homepage=https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments +application.title=Networked Graphics MV3500 assignments +application.vendor=Don Brutzman +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.modulepath=\ + ${run.modulepath} +debug.test.classpath=\ + ${run.test.classpath} +debug.test.modulepath=\ + ${run.test.modulepath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/Networked_Graphics_MV3500_assignments.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes= +file.reference.commons-io-2.6.jar=../lib/commons-io-2.6.jar +file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar +file.reference.guava-28.0-jre.jar=../lib/guava-28.0-jre.jar +file.reference.open-dis7-entities-all.jar=../lib/open-dis7-entities-all.jar +file.reference.open-dis7-java.jar=../lib/open-dis7-java.jar +file.reference.open-dis7-javadoc.jar=../lib/open-dis7-javadoc.jar +file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar +includes=** +jar.compress=false +javac.classpath=\ + ${file.reference.open-dis7-java.jar}:\ + ${file.reference.open-dis7-entities-all.jar}:\ + ${file.reference.open-dis7-javadoc.jar}:\ + ${file.reference.commons-io-2.6.jar}:\ + ${file.reference.guava-28.0-jre.jar}:\ + ${file.reference.open-dis_4.16.jar}:\ + ${file.reference.dis-enums-1.3.jar} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.modulepath= +javac.processormodulepath= +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.modulepath=\ + ${javac.modulepath} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.html5=false +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +jlink.launcher=false +jlink.launcher.name=Networked_Graphics_MV3500_assignments +main.class=MV3500Cohort2019JulySeptember.homework2.Yurkovich.Yurkovich_Server +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=true +platform.active=JDK_1.8 +project.licensePath=../license.txt +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.modulepath=\ + ${javac.modulepath} +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +run.test.modulepath=\ + ${javac.test.modulepath} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/assignments/nbproject/project.xml b/assignments/nbproject/project.xml index 50cb4b5e05ed23e35a86d22bbf893f7a217b875b..445e0de38b4090b3e636e336405b59737631250d 100644 --- a/assignments/nbproject/project.xml +++ b/assignments/nbproject/project.xml @@ -4,6 +4,7 @@ <configuration> <data xmlns="http://www.netbeans.org/ns/j2se-project/3"> <name>Networked Graphics MV3500 assignments</name> + <explicit-platform explicit-source-supported="true"/> <source-roots> <root id="src.dir"/> </source-roots> diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java new file mode 100644 index 0000000000000000000000000000000000000000..3b05acab1bfdac1dd6e4beef2134d232f5422b5b --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java @@ -0,0 +1,82 @@ +package MV3500Cohort2020JulySeptember.homework1; +// TODO note that package statement must match parent directory directory structure + +import java.io.*; +import java.net.*; + +/** + * This example is the simplest possible TCP network program. It listens for + * a connection, from telnet (telnet localhost 2317) or a program + * you write, which we will do later. Right now the TcpExample simply + * writes a string in response to a connection. + * + * Modifying his program is the basis for Assignment 1. + * + * Testing the running server program from telnet looks like this: + * + * it154916:projects mcgredo$ telnet localhost 2317 + * Trying ::1... + * Connected to localhost. + * Escape character is '^]'. + * This was written by the server + * Connection closed by foreign host. + * + * Notice that "This was written by the server" matches + * what is written by the code below, over the output stream. + * + * After this first connection the program below drops out + * the bottom of the program, and does not repeat itself. + * The program exits. + * + * @author mcgredo, brutzman`` + */ +public class BrutzmanRefactorTcpExample1Telnet +{ + /** When you run this program, the main method is invoked. + * @param args command-line arguments */ + public static void main(String[] args) + { + try + { + System.out.println("TcpExample1Telnet has started and is waiting for a connection."); + System.out.println(" help: https://savage.nps.edu/Savage/developers.html#telnet"); + System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..." ); + + // The ServerSocket waits for a connection from a client. + // It returns a Socket object when the connection occurs. + ServerSocket serverSocket = new ServerSocket(2317); + + // The Socket object represents the connection between + // the server and client, including a full duplex connection + Socket clientConnection = serverSocket.accept(); + + // Use Java io classes to write text (as opposed to + // unknown bytes of some sort) to the client + OutputStream os = clientConnection.getOutputStream(); + PrintStream ps = new PrintStream(os); + + ps.println("This client response was written by server TcpExample1."); // to remote clientnc + System.out.println("This server response was written by server TcpExample1."); // to server console + + // "flush()" in important in that it forces a write + // across what is in fact a slow connection + ps.flush(); + + clientConnection.close(); + System.out.println("TcpExample1 completed successfully."); + } + catch(IOException e) + { + System.out.println("problem with networking: " + e); + + // Program modification: provide more helpful information to user if + // exception occurs when running twice at one time + + // brute force exception checking, can be brittle if exception message changes + // if (e.getMessage().equals("Address already in use: NET_Bind")) + + if (e instanceof java.net.BindException) + System.out.println("Be sure to stop any other running instances of this program!"); + } + } +} diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1TelnetLog.txt b/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1TelnetLog.txt new file mode 100644 index 0000000000000000000000000000000000000000..0b72147f455f28a103f53bce0fccc7631176a962 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1TelnetLog.txt @@ -0,0 +1,16 @@ +ant -f C:\\x-nps-gitlab\\NetworkedGraphicsMV3500\\assignments -Dnb.internal.action.name=run.single -Djavac.includes=MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1Telnet.java -Drun.class=MV3500Cohort2020JulySeptember.homework1.BrutzmanRefactorTcpExample1Telnet run-single +init: +Deleting: C:\x-nps-gitlab\NetworkedGraphicsMV3500\assignments\build\built-jar.properties +deps-jar: +Updating property file: C:\x-nps-gitlab\NetworkedGraphicsMV3500\assignments\build\built-jar.properties +Compiling 1 source file to C:\x-nps-gitlab\NetworkedGraphicsMV3500\assignments\build\classes +warning: [options] bootstrap class path not set in conjunction with -source 8 +1 warning +compile-single: +run-single: +TcpExample1Telnet has started and is waiting for a connection. + help: https://savage.nps.edu/Savage/developers.html#telnet + enter (telnet localhost 2317) or (nc localhost 2317)... +This server response was written by server TcpExample1. +TcpExample1 completed successfully. +BUILD SUCCESSFUL (total time: 18 seconds) diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1TelnetNetbeansExecution.png b/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1TelnetNetbeansExecution.png new file mode 100644 index 0000000000000000000000000000000000000000..de78e098b0981c0db2d640f4f3ea060d9de491b2 Binary files /dev/null and b/assignments/src/MV3500Cohort2020JulySeptember/homework1/BrutzmanRefactorTcpExample1TelnetNetbeansExecution.png differ diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/CannonTcpExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/CannonTcpExample1Telnet.java new file mode 100644 index 0000000000000000000000000000000000000000..86eb9df7c361ecf0db21e602beb162be2afb89ac --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/CannonTcpExample1Telnet.java @@ -0,0 +1,61 @@ +package MV3500Cohort2020JulySeptember.homework1; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * Class MV30500 + * Homework 1 that demonstrates how to connect to a TCP telnet server + * @author chris + */ +public class CannonTcpExample1Telnet { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) { + try { + System.out.println("TcpExample1Telnet has started and is waiting for a connection."); + System.out.println(" help: https://savage.nps.edu/Savage/developers.html#telnet"); + System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..."); + + // The ServerSocket waits for a connection from a client. + // It returns a Socket object when the connection occurs. + ServerSocket serverSocket = new ServerSocket(2317); + + // The Socket object represents the connection between + // the server and client, including a full duplex connection + Socket clientConnection = serverSocket.accept(); + + // Use Java io classes to write text (as opposed to + // unknown bytes of some sort) to the client + OutputStream os = clientConnection.getOutputStream(); + PrintStream ps = new PrintStream(os); + + ps.println("This client response was written by Captain Christopher Cannon."); // to remote clientnc + System.out.println("This server response was written by Captain Christopher Cannon."); // to server console + + + + // "flush()" in important in that it forces a write + // across what is in fact a slow connection + ps.flush(); + + clientConnection.close(); + System.out.println("TcpExample1 completed successfully."); + } catch (IOException e) { + System.out.println("problem with networking: " + e); + + // Program modification: provide more helpful information to user if + // exception occurs when running twice at one time + // brute force exception checking, can be brittle if exception message changes + // if (e.getMessage().equals("Address already in use: NET_Bind")) + if (e instanceof java.net.BindException) { + System.out.println("Be sure to stop any other running instances of this program!"); + } + } + } +} diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java new file mode 100644 index 0000000000000000000000000000000000000000..d7058f112d68488dfc1af58db3fab665c93a98bc --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GaribayTCPExample1Telnet.java @@ -0,0 +1,64 @@ + +package MV3500Cohort2020JulySeptember.homework1; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * + * @author chris + */ + + +public class GaribayTCPExample1Telnet { + public static void main(String[] args) + { + try + { + System.out.println("TcpExample1Telnet has started and is waiting for a connection."); + System.out.println(" help: https://savage.nps.edu/Savage/developers.html#telnet"); + System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..." ); + + // The ServerSocket waits for a connection from a client. + // It returns a Socket object when the connection occurs. + ServerSocket serverSocket = new ServerSocket(2317); + + // Use Java io classes to write text (as opposed to + // unknown bytes of some sort) to the client + + // The Socket object represents the connection between + // the server and client, including a full duplex connection + try (Socket clientConnection = serverSocket.accept()) { + // Use Java io classes to write text (as opposed to + // unknown bytes of some sort) to the client + OutputStream os = clientConnection.getOutputStream(); + PrintStream ps = new PrintStream(os); + + ps.println("Client response was written by Chris' server TcpExample1."); // to remote clientnc + ps.println("Fall forward. Every failed experiment is one step closer to success."); + System.out.println("Server response was written by Chris' server TcpExample1."); // to server console + System.out.println("Denzel Washington"); + + // "flush()" in important in that it forces a write + // across what is in fact a slow connection + ps.flush(); + } + System.out.println("TcpExample1 completed successfully."); + } + catch(IOException e) + { + System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening + System.err.println("Error: " + e); + // Provide more helpful information to user if exception occurs due to running twice at one time + + // brute force exception checking, can be brittle if exception message changes + // if (e.getMessage().equals("Address already in use: NET_Bind")) + if (e instanceof java.net.BindException) + System.err.println("*** Be sure to stop any other running instances of programs using this port!"); + } + } +} + diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java new file mode 100644 index 0000000000000000000000000000000000000000..606f5dc8e8922dad6f5f319bf7c320c24104494b --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/GoerickeTcpExample1Telnet.java @@ -0,0 +1,72 @@ + +package MV3500Cohort2020JulySeptember.homework1; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.net.ServerSocket; +import java.net.Socket; + +/** + * Homework 1 for class MV3500 - Summer 2020 + * @author Goericke, Stefan + */ +public class GoerickeTcpExample1Telnet { + + /** + * @param args the command line arguments + */ + public static void main(String[] args) throws IOException { + System.out.println("Homework 1 MV3500 - Summer 2020 (Author: Stefan Goericke)"); + System.out.println("---------------------------------------------------------"); + String masterString = " ######### ###### # #\r\n"; + masterString = masterString + " # # # #\r\n"; + masterString = masterString + " # ###### # #\r\n"; + masterString = masterString + " # # # #\r\n"; + masterString = masterString + " # ###### #\r\n"; + + //build up connection + try + { + // build serverSOcket with port 2317 + ServerSocket serverSocket = new ServerSocket(2317); + System.out.println("ServerSocket created with port 2317 ..."); + + // open client connection. Wait for answer (method accept) + System.out.println("Open telnet client in cmd-console: telnet localhost 2317"); + Socket clientConnection = serverSocket.accept(); + System.out.println("Client Connection established ..."); + + // create stream-objects + OutputStream os = clientConnection.getOutputStream(); + PrintStream ps = new PrintStream(os); // already declared outside try-block + System.out.println("Stream objects created ..."); + + try{// connection was established + System.out.println("Connection established, sending message --> /n"); + + ps.println("This client response was written by server TcpExample1."); + ps.println(masterString); + + System.out.println("This server response was written by server TcpExample1."); + System.out.println(masterString); + + ps.flush(); + } + catch(Exception e){ // in case message could not be send + System.out.println("Error while sending message .... press ENTER"); + System.in.read(); + System.exit(0); + + } + clientConnection.close(); + } + catch (IOException e){ // connection could not be established + System.out.println("Connection could not be established. Quit programm"); + System.in.read(); + System.exit(0); + } + + } + +} diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java b/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java new file mode 100644 index 0000000000000000000000000000000000000000..2383eabdd4d2836ba05979a0fb26fe79883ce5ed --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/MahanTCPExample1Telnet.java @@ -0,0 +1,61 @@ + + +package MV3500Cohort2020JulySeptember.homework1; + +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintStream; +import java.net.ServerSocket; +import java.net.Socket; +/** + * + * @author Bill + */ +public class MahanTCPExample1Telnet { + public static void main(String[] args) + { + try + { + System.out.println("TcpExample1Telnet has started and is waiting for a connection."); + System.out.println(" help: https://savage.nps.edu/Savage/developers.html#telnet"); + System.out.println(" enter (telnet localhost 2317) or (nc localhost 2317)..." ); + + // The ServerSocket waits for a connection from a client. + // It returns a Socket object when the connection occurs. + ServerSocket serverSocket = new ServerSocket(2317); + + // Use Java io classes to write text (as opposed to + // unknown bytes of some sort) to the client + + // The Socket object represents the connection between + // the server and client, including a full duplex connection + try (Socket clientConnection = serverSocket.accept()) { + // Use Java io classes to write text (as opposed to + // unknown bytes of some sort) to the client + OutputStream os = clientConnection.getOutputStream(); + PrintStream ps = new PrintStream(os); + + ps.println("This client response was written by Bill's server TcpExample1."); // to remote clientnc + ps.println("When you see something that is not right, not fair, not just, you have to speak up. You have to say something; you have to do something. "); + System.out.println("This server response was written by Bill's server TcpExample1."); // to server console + System.out.println("John Lewis"); + + // "flush()" in important in that it forces a write + // across what is in fact a slow connection + ps.flush(); + } + System.out.println("TcpExample1 completed successfully."); + } + catch(IOException e) + { + System.err.println("Problem with TcpExample1Telnet networking:"); // describe what is happening + System.err.println("Error: " + e); + // Provide more helpful information to user if exception occurs due to running twice at one time + + // brute force exception checking, can be brittle if exception message changes + // if (e.getMessage().equals("Address already in use: NET_Bind")) + if (e instanceof java.net.BindException) + System.err.println("*** Be sure to stop any other running instances of programs using this port!"); + } + } +} \ No newline at end of file diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework1/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework1/README.md index c2ecc0665b35f5cd49bc313e1e09a79d8369a07c..c0f16cb152eac14324694057a50ac035fffc719c 100644 --- a/assignments/src/MV3500Cohort2020JulySeptember/homework1/README.md +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework1/README.md @@ -1,4 +1,4 @@ -## Homework 1: Uniicast Networking +## Homework 1: Unicast Networking Deliverables: diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Britt/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Cannon/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Garibay/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Goericke/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Mahan/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/Weissenberger/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Weissenberger/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/Weissenberger/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework2/White/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework2/White/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework2/White/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Britt/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Cannon/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Garibay/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Goericke/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Mahan/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/Weissenberger/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework3/White/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework3/White/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework3/White/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Britt/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Cannon/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Garibay/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Garibay/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Garibay/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Goericke/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Goericke/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Goericke/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Mahan/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Mahan/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Mahan/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/Weissenberger/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Weissenberger/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/Weissenberger/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/README.md b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0144d62d033fbe094ceac7a6d1bedc12d3c158b0 --- /dev/null +++ b/assignments/src/MV3500Cohort2020JulySeptember/homework4/White/README.md @@ -0,0 +1,12 @@ +## Homework 2: Multicast Networking + +Modify this file to describe your project work. + +Typical deliverables include properly packages source, execution log, and screen shots as appropriate. + +References include +* [README.md](../README.md) for this homework project. +* [README.md](../../../../README.md) for course assignments execution instructions. +* [assignments source subdirectories](../../../../../assignments/src) show examples from previous cohorts. + +Questions and innovation are always welcome, good luck! diff --git a/examples/src/OpenDis7Examples/AllPduReceiver.java b/examples/src/OpenDis7Examples/AllPduReceiver.java index 3b495874e268a6903d1f88e4973650165573aa96..c2ad0f3b89eeeddbf8522d69587640ff2a9b58ee 100644 --- a/examples/src/OpenDis7Examples/AllPduReceiver.java +++ b/examples/src/OpenDis7Examples/AllPduReceiver.java @@ -5,13 +5,13 @@ import java.io.*; import edu.nps.moves.dis7.*; import edu.nps.moves.dis7.enumerations.*; -import edu.nps.moves.dis7.utilities.*; +import edu.nps.moves.dis7.utilities.PduFactory; import java.util.ArrayList; public class AllPduReceiver { - public static final int DEFAULT_MULTICAST_PORT = AllPduSender.DEFAULT_MULTICAST_PORT; - public static final String DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS; + public static final int DEFAULT_MULTICAST_PORT = AllPduSender.DEFAULT_MULTICAST_PORT; + public static final String DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS; public static final boolean USE_FAST_ESPDU = false; public static void main(String args[]) diff --git a/examples/src/OpenDis7Examples/AllPduSender.java b/examples/src/OpenDis7Examples/AllPduSender.java index e0153fa0514699020a43521ce11e335de74b959f..77b4e680b938237bf14925f470fb88367abe0c25 100755 --- a/examples/src/OpenDis7Examples/AllPduSender.java +++ b/examples/src/OpenDis7Examples/AllPduSender.java @@ -21,7 +21,7 @@ public class AllPduSender public static final String DEFAULT_MULTICAST_ADDRESS = "239.1.2.3"; /** Default multicast port used, matches Wireshark DIS capture default */ - public static final int DEFAULT_MULTICAST_PORT = 2342; + public static final int DEFAULT_MULTICAST_PORT = 3000; private int port; InetAddress multicastAddress; @@ -369,11 +369,11 @@ public class AllPduSender // https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments/src/MV3500Cohort2018JulySeptember/projects/LoeffelmanSeverson CommentPdu newCommentPdu = new CommentPdu(); - ArrayList<VariableDatum> payloadList = new ArrayList<>(); + List<VariableDatum> payloadList = new ArrayList<>(); - ArrayList<String> commentsList = new ArrayList<>(); + List<String> commentsList = new ArrayList<>(); commentsList.add("Hello CommentPDU"); - commentsList.add("Here is a new message"); + commentsList.add("Here is a second line of text in this comment."); if (!commentsList.isEmpty()) System.out.println("Preparing CommentPDU:"); @@ -381,8 +381,9 @@ public class AllPduSender for (String comment : commentsList) { VariableDatum newVariableDatum = new VariableDatum(); - newVariableDatum.setVariableDatumValue (comment.getBytes()); // conversion - newVariableDatum.setVariableDatumLengthInBits(comment.getBytes().length * 8); // bits, not bytes, see spec and javadoc + + newVariableDatum.setVariableDatumValue (comment.getBytes()); // conversion + newVariableDatum.setVariableDatumLengthInBytes(comment.getBytes().length); // also available in bits, see spec and javadoc // alternatively, you do not need to set this and the marshaller will figure it out from the byte array // (see javadoc for VariableDatum.setVariableDatumLength()) payloadList.add(newVariableDatum); @@ -442,13 +443,8 @@ public class AllPduSender buffer = baos.toByteArray(); packet = new DatagramPacket(buffer, buffer.length, localMulticastAddress, DEFAULT_MULTICAST_PORT); multicastSocket.send(packet); - try { - Thread.sleep(100L); // TODO shouldn't this kind of delay timing be in a DIS sender class? - } - catch (InterruptedException ex) { - } - String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue()); - String currentPduTypePadded = String.format("%-34s", aPdu.getPduType()); // - indicates right padding of whitespace + String currentPduTypeValuePadded = String.format("%2s", aPdu.getPduType().getValue()); + String currentPduTypePadded = String.format("%-50s", aPdu.getPduType().toString()); // - indicates right padding of whitespace System.out.print ("Sent DIS PDU " + currentPduTypeValuePadded + " " + currentPduTypePadded ); System.out.println(" of type " + aPdu.getClass().getName()); } diff --git a/examples/src/OpenDis7Examples/AllPduSenderLog.txt b/examples/src/OpenDis7Examples/AllPduSenderLog.txt index ecca4d4a42dc1f491cacf7eb8a56bf2a152f5be1..6ebd47195d57181a4a0778d898693c850745daf8 100644 --- a/examples/src/OpenDis7Examples/AllPduSenderLog.txt +++ b/examples/src/OpenDis7Examples/AllPduSenderLog.txt @@ -9,79 +9,82 @@ Usage: AllPduSender <port> <multicast group> Default: AllPduSender 3000 239.1.2.3 DisExamplesOpenDis7.AllPduSender started... Generate PDUs and note issues, if any... -*** Note: DISPDUType.OTHER not supported +*** Note: DISPDUType.OTHER=0 not supported +Preparing CommentPDU: + "Hello CommentPDU" + "Here is a second line of text in this comment." Send the 72 PDUs we created... -Sent DIS PDU 1 ENTITY_STATE of type edu.nps.moves.dis7.EntityStatePdu -Sent DIS PDU 2 FIRE of type edu.nps.moves.dis7.FirePdu -Sent DIS PDU 3 DETONATION of type edu.nps.moves.dis7.DetonationPdu -Sent DIS PDU 4 COLLISION of type edu.nps.moves.dis7.CollisionPdu -Sent DIS PDU 5 SERVICE_REQUEST of type edu.nps.moves.dis7.ServiceRequestPdu -Sent DIS PDU 6 RESUPPLY_OFFER of type edu.nps.moves.dis7.ResupplyOfferPdu -Sent DIS PDU 7 RESUPPLY_RECEIVED of type edu.nps.moves.dis7.ResupplyReceivedPdu -Sent DIS PDU 8 RESUPPLY_CANCEL of type edu.nps.moves.dis7.ResupplyCancelPdu -Sent DIS PDU 9 REPAIR_COMPLETE of type edu.nps.moves.dis7.RepairCompletePdu -Sent DIS PDU 10 REPAIR_RESPONSE of type edu.nps.moves.dis7.RepairResponsePdu -Sent DIS PDU 11 CREATE_ENTITY of type edu.nps.moves.dis7.CreateEntityPdu -Sent DIS PDU 12 REMOVE_ENTITY of type edu.nps.moves.dis7.RemoveEntityPdu -Sent DIS PDU 13 START_RESUME of type edu.nps.moves.dis7.StartResumePdu -Sent DIS PDU 14 STOP_FREEZE of type edu.nps.moves.dis7.StopFreezePdu -Sent DIS PDU 15 ACKNOWLEDGE of type edu.nps.moves.dis7.AcknowledgePdu -Sent DIS PDU 16 ACTION_REQUEST of type edu.nps.moves.dis7.ActionRequestPdu -Sent DIS PDU 17 ACTION_RESPONSE of type edu.nps.moves.dis7.ActionResponsePdu -Sent DIS PDU 18 DATA_QUERY of type edu.nps.moves.dis7.DataQueryPdu -Sent DIS PDU 19 SET_DATA of type edu.nps.moves.dis7.SetDataPdu -Sent DIS PDU 20 DATA of type edu.nps.moves.dis7.DataPdu -Sent DIS PDU 21 EVENT_REPORT of type edu.nps.moves.dis7.EventReportPdu -Sent DIS PDU 22 COMMENT of type edu.nps.moves.dis7.CommentPdu -Sent DIS PDU 23 ELECTROMAGNETIC_EMISSION of type edu.nps.moves.dis7.ElectromagneticEmissionPdu -Sent DIS PDU 24 DESIGNATOR of type edu.nps.moves.dis7.DesignatorPdu -Sent DIS PDU 25 TRANSMITTER of type edu.nps.moves.dis7.TransmitterPdu -Sent DIS PDU 26 SIGNAL of type edu.nps.moves.dis7.SignalPdu -Sent DIS PDU 27 RECEIVER of type edu.nps.moves.dis7.ReceiverPdu -Sent DIS PDU 28 IDENTIFICATION_FRIEND_OR_FOE of type edu.nps.moves.dis7.IdentificationFriendOrFoePdu -Sent DIS PDU 29 UNDERWATER_ACOUSTIC of type edu.nps.moves.dis7.UnderwaterAcousticPdu -Sent DIS PDU 30 SUPPLEMENTAL_EMISSION_ENTITY_STATE of type edu.nps.moves.dis7.SupplementalEmissionEntityStatePdu -Sent DIS PDU 31 INTERCOM_SIGNAL of type edu.nps.moves.dis7.IntercomSignalPdu -Sent DIS PDU 32 INTERCOM_CONTROL of type edu.nps.moves.dis7.IntercomControlPdu -Sent DIS PDU 33 AGGREGATE_STATE of type edu.nps.moves.dis7.AggregateStatePdu -Sent DIS PDU 34 ISGROUPOF of type edu.nps.moves.dis7.IsGroupOfPdu -Sent DIS PDU 35 TRANSFER_OWNERSHIP of type edu.nps.moves.dis7.TransferOwnershipPdu -Sent DIS PDU 36 ISPARTOF of type edu.nps.moves.dis7.IsPartOfPdu -Sent DIS PDU 37 MINEFIELD_STATE of type edu.nps.moves.dis7.MinefieldStatePdu -Sent DIS PDU 38 MINEFIELD_QUERY of type edu.nps.moves.dis7.MinefieldQueryPdu -Sent DIS PDU 39 MINEFIELD_DATA of type edu.nps.moves.dis7.MinefieldDataPdu -Sent DIS PDU 40 MINEFIELD_RESPONSE_NACK of type edu.nps.moves.dis7.MinefieldResponseNACKPdu -Sent DIS PDU 41 ENVIRONMENTAL_PROCESS of type edu.nps.moves.dis7.EnvironmentalProcessPdu -Sent DIS PDU 42 GRIDDED_DATA of type edu.nps.moves.dis7.GriddedDataPdu -Sent DIS PDU 43 POINT_OBJECT_STATE of type edu.nps.moves.dis7.PointObjectStatePdu -Sent DIS PDU 44 LINEAR_OBJECT_STATE of type edu.nps.moves.dis7.LinearObjectStatePdu -Sent DIS PDU 45 AREAL_OBJECT_STATE of type edu.nps.moves.dis7.ArealObjectStatePdu -Sent DIS PDU 46 TIME_SPACE_POSITION_INFORMATION of type edu.nps.moves.dis7.TimeSpacePositionInformationPdu -Sent DIS PDU 47 APPEARANCE of type edu.nps.moves.dis7.AppearancePdu -Sent DIS PDU 48 ARTICULATED_PARTS of type edu.nps.moves.dis7.ArticulatedPartsPdu -Sent DIS PDU 49 LIVE_ENTITY_FIRE of type edu.nps.moves.dis7.LiveEntityFirePdu -Sent DIS PDU 50 LIVE_ENTITY_DETONATION of type edu.nps.moves.dis7.LiveEntityDetonationPdu -Sent DIS PDU 51 CREATE_ENTITY_RELIABLE of type edu.nps.moves.dis7.CreateEntityReliablePdu -Sent DIS PDU 52 REMOVE_ENTITY_RELIABLE of type edu.nps.moves.dis7.RemoveEntityReliablePdu -Sent DIS PDU 53 START_RESUME_RELIABLE of type edu.nps.moves.dis7.StartResumeReliablePdu -Sent DIS PDU 54 STOP_FREEZE_RELIABLE of type edu.nps.moves.dis7.StopFreezeReliablePdu -Sent DIS PDU 55 ACKNOWLEDGE_RELIABLE of type edu.nps.moves.dis7.AcknowledgeReliablePdu -Sent DIS PDU 56 ACTION_REQUEST_RELIABLE of type edu.nps.moves.dis7.ActionRequestReliablePdu -Sent DIS PDU 57 ACTION_RESPONSE_RELIABLE of type edu.nps.moves.dis7.ActionResponseReliablePdu -Sent DIS PDU 58 DATA_QUERY_RELIABLE of type edu.nps.moves.dis7.DataQueryReliablePdu -Sent DIS PDU 59 SET_DATA_RELIABLE of type edu.nps.moves.dis7.SetDataReliablePdu -Sent DIS PDU 60 DATA_RELIABLE of type edu.nps.moves.dis7.DataReliablePdu -Sent DIS PDU 61 EVENT_REPORT_RELIABLE of type edu.nps.moves.dis7.EventReportReliablePdu -Sent DIS PDU 62 COMMENT_RELIABLE of type edu.nps.moves.dis7.CommentReliablePdu -Sent DIS PDU 63 RECORD_RELIABLE of type edu.nps.moves.dis7.RecordReliablePdu -Sent DIS PDU 64 SET_RECORD_RELIABLE of type edu.nps.moves.dis7.SetRecordReliablePdu -Sent DIS PDU 65 RECORD_QUERY_RELIABLE of type edu.nps.moves.dis7.RecordQueryReliablePdu -Sent DIS PDU 66 COLLISION_ELASTIC of type edu.nps.moves.dis7.CollisionElasticPdu -Sent DIS PDU 67 ENTITY_STATE_UPDATE of type edu.nps.moves.dis7.EntityStateUpdatePdu -Sent DIS PDU 68 DIRECTED_ENERGY_FIRE of type edu.nps.moves.dis7.DirectedEnergyFirePdu -Sent DIS PDU 69 ENTITY_DAMAGE_STATUS of type edu.nps.moves.dis7.EntityDamageStatusPdu -Sent DIS PDU 70 INFORMATION_OPERATIONS_ACTION of type edu.nps.moves.dis7.InformationOperationsActionPdu -Sent DIS PDU 71 INFORMATION_OPERATIONS_REPORT of type edu.nps.moves.dis7.InformationOperationsReportPdu -Sent DIS PDU 72 ATTRIBUTE of type edu.nps.moves.dis7.AttributePdu -DisExamplesOpenDis7.AllPduSender complete. -BUILD SUCCESSFUL (total time: 8 seconds) +Sent DIS PDU 1 DISPDUType: ENTITY_STATE: 1 of type edu.nps.moves.dis7.EntityStatePdu +Sent DIS PDU 2 DISPDUType: FIRE: 2 of type edu.nps.moves.dis7.FirePdu +Sent DIS PDU 3 DISPDUType: DETONATION: 3 of type edu.nps.moves.dis7.DetonationPdu +Sent DIS PDU 4 DISPDUType: COLLISION: 4 of type edu.nps.moves.dis7.CollisionPdu +Sent DIS PDU 5 DISPDUType: SERVICE_REQUEST: 5 of type edu.nps.moves.dis7.ServiceRequestPdu +Sent DIS PDU 6 DISPDUType: RESUPPLY_OFFER: 6 of type edu.nps.moves.dis7.ResupplyOfferPdu +Sent DIS PDU 7 DISPDUType: RESUPPLY_RECEIVED: 7 of type edu.nps.moves.dis7.ResupplyReceivedPdu +Sent DIS PDU 8 DISPDUType: RESUPPLY_CANCEL: 8 of type edu.nps.moves.dis7.ResupplyCancelPdu +Sent DIS PDU 9 DISPDUType: REPAIR_COMPLETE: 9 of type edu.nps.moves.dis7.RepairCompletePdu +Sent DIS PDU 10 DISPDUType: REPAIR_RESPONSE: 10 of type edu.nps.moves.dis7.RepairResponsePdu +Sent DIS PDU 11 DISPDUType: CREATE_ENTITY: 11 of type edu.nps.moves.dis7.CreateEntityPdu +Sent DIS PDU 12 DISPDUType: REMOVE_ENTITY: 12 of type edu.nps.moves.dis7.RemoveEntityPdu +Sent DIS PDU 13 DISPDUType: START_RESUME: 13 of type edu.nps.moves.dis7.StartResumePdu +Sent DIS PDU 14 DISPDUType: STOP_FREEZE: 14 of type edu.nps.moves.dis7.StopFreezePdu +Sent DIS PDU 15 DISPDUType: ACKNOWLEDGE: 15 of type edu.nps.moves.dis7.AcknowledgePdu +Sent DIS PDU 16 DISPDUType: ACTION_REQUEST: 16 of type edu.nps.moves.dis7.ActionRequestPdu +Sent DIS PDU 17 DISPDUType: ACTION_RESPONSE: 17 of type edu.nps.moves.dis7.ActionResponsePdu +Sent DIS PDU 18 DISPDUType: DATA_QUERY: 18 of type edu.nps.moves.dis7.DataQueryPdu +Sent DIS PDU 19 DISPDUType: SET_DATA: 19 of type edu.nps.moves.dis7.SetDataPdu +Sent DIS PDU 20 DISPDUType: DATA: 20 of type edu.nps.moves.dis7.DataPdu +Sent DIS PDU 21 DISPDUType: EVENT_REPORT: 21 of type edu.nps.moves.dis7.EventReportPdu +Sent DIS PDU 22 DISPDUType: COMMENT: 22 of type edu.nps.moves.dis7.CommentPdu +Sent DIS PDU 23 DISPDUType: ELECTROMAGNETIC_EMISSION: 23 of type edu.nps.moves.dis7.ElectromagneticEmissionPdu +Sent DIS PDU 24 DISPDUType: DESIGNATOR: 24 of type edu.nps.moves.dis7.DesignatorPdu +Sent DIS PDU 25 DISPDUType: TRANSMITTER: 25 of type edu.nps.moves.dis7.TransmitterPdu +Sent DIS PDU 26 DISPDUType: SIGNAL: 26 of type edu.nps.moves.dis7.SignalPdu +Sent DIS PDU 27 DISPDUType: RECEIVER: 27 of type edu.nps.moves.dis7.ReceiverPdu +Sent DIS PDU 28 DISPDUType: IDENTIFICATION_FRIEND_OR_FOE: 28 of type edu.nps.moves.dis7.IdentificationFriendOrFoePdu +Sent DIS PDU 29 DISPDUType: UNDERWATER_ACOUSTIC: 29 of type edu.nps.moves.dis7.UnderwaterAcousticPdu +Sent DIS PDU 30 DISPDUType: SUPPLEMENTAL_EMISSION_ENTITY_STATE: 30 of type edu.nps.moves.dis7.SupplementalEmissionEntityStatePdu +Sent DIS PDU 31 DISPDUType: INTERCOM_SIGNAL: 31 of type edu.nps.moves.dis7.IntercomSignalPdu +Sent DIS PDU 32 DISPDUType: INTERCOM_CONTROL: 32 of type edu.nps.moves.dis7.IntercomControlPdu +Sent DIS PDU 33 DISPDUType: AGGREGATE_STATE: 33 of type edu.nps.moves.dis7.AggregateStatePdu +Sent DIS PDU 34 DISPDUType: ISGROUPOF: 34 of type edu.nps.moves.dis7.IsGroupOfPdu +Sent DIS PDU 35 DISPDUType: TRANSFER_OWNERSHIP: 35 of type edu.nps.moves.dis7.TransferOwnershipPdu +Sent DIS PDU 36 DISPDUType: ISPARTOF: 36 of type edu.nps.moves.dis7.IsPartOfPdu +Sent DIS PDU 37 DISPDUType: MINEFIELD_STATE: 37 of type edu.nps.moves.dis7.MinefieldStatePdu +Sent DIS PDU 38 DISPDUType: MINEFIELD_QUERY: 38 of type edu.nps.moves.dis7.MinefieldQueryPdu +Sent DIS PDU 39 DISPDUType: MINEFIELD_DATA: 39 of type edu.nps.moves.dis7.MinefieldDataPdu +Sent DIS PDU 40 DISPDUType: MINEFIELD_RESPONSE_NACK: 40 of type edu.nps.moves.dis7.MinefieldResponseNACKPdu +Sent DIS PDU 41 DISPDUType: ENVIRONMENTAL_PROCESS: 41 of type edu.nps.moves.dis7.EnvironmentalProcessPdu +Sent DIS PDU 42 DISPDUType: GRIDDED_DATA: 42 of type edu.nps.moves.dis7.GriddedDataPdu +Sent DIS PDU 43 DISPDUType: POINT_OBJECT_STATE: 43 of type edu.nps.moves.dis7.PointObjectStatePdu +Sent DIS PDU 44 DISPDUType: LINEAR_OBJECT_STATE: 44 of type edu.nps.moves.dis7.LinearObjectStatePdu +Sent DIS PDU 45 DISPDUType: AREAL_OBJECT_STATE: 45 of type edu.nps.moves.dis7.ArealObjectStatePdu +Sent DIS PDU 46 DISPDUType: TIME_SPACE_POSITION_INFORMATION: 46 of type edu.nps.moves.dis7.TimeSpacePositionInformationPdu +Sent DIS PDU 47 DISPDUType: APPEARANCE: 47 of type edu.nps.moves.dis7.AppearancePdu +Sent DIS PDU 48 DISPDUType: ARTICULATED_PARTS: 48 of type edu.nps.moves.dis7.ArticulatedPartsPdu +Sent DIS PDU 49 DISPDUType: LIVE_ENTITY_FIRE: 49 of type edu.nps.moves.dis7.LiveEntityFirePdu +Sent DIS PDU 50 DISPDUType: LIVE_ENTITY_DETONATION: 50 of type edu.nps.moves.dis7.LiveEntityDetonationPdu +Sent DIS PDU 51 DISPDUType: CREATE_ENTITY_RELIABLE: 51 of type edu.nps.moves.dis7.CreateEntityReliablePdu +Sent DIS PDU 52 DISPDUType: REMOVE_ENTITY_RELIABLE: 52 of type edu.nps.moves.dis7.RemoveEntityReliablePdu +Sent DIS PDU 53 DISPDUType: START_RESUME_RELIABLE: 53 of type edu.nps.moves.dis7.StartResumeReliablePdu +Sent DIS PDU 54 DISPDUType: STOP_FREEZE_RELIABLE: 54 of type edu.nps.moves.dis7.StopFreezeReliablePdu +Sent DIS PDU 55 DISPDUType: ACKNOWLEDGE_RELIABLE: 55 of type edu.nps.moves.dis7.AcknowledgeReliablePdu +Sent DIS PDU 56 DISPDUType: ACTION_REQUEST_RELIABLE: 56 of type edu.nps.moves.dis7.ActionRequestReliablePdu +Sent DIS PDU 57 DISPDUType: ACTION_RESPONSE_RELIABLE: 57 of type edu.nps.moves.dis7.ActionResponseReliablePdu +Sent DIS PDU 58 DISPDUType: DATA_QUERY_RELIABLE: 58 of type edu.nps.moves.dis7.DataQueryReliablePdu +Sent DIS PDU 59 DISPDUType: SET_DATA_RELIABLE: 59 of type edu.nps.moves.dis7.SetDataReliablePdu +Sent DIS PDU 60 DISPDUType: DATA_RELIABLE: 60 of type edu.nps.moves.dis7.DataReliablePdu +Sent DIS PDU 61 DISPDUType: EVENT_REPORT_RELIABLE: 61 of type edu.nps.moves.dis7.EventReportReliablePdu +Sent DIS PDU 62 DISPDUType: COMMENT_RELIABLE: 62 of type edu.nps.moves.dis7.CommentReliablePdu +Sent DIS PDU 63 DISPDUType: RECORD_RELIABLE: 63 of type edu.nps.moves.dis7.RecordReliablePdu +Sent DIS PDU 64 DISPDUType: SET_RECORD_RELIABLE: 64 of type edu.nps.moves.dis7.SetRecordReliablePdu +Sent DIS PDU 65 DISPDUType: RECORD_QUERY_RELIABLE: 65 of type edu.nps.moves.dis7.RecordQueryReliablePdu +Sent DIS PDU 66 DISPDUType: COLLISION_ELASTIC: 66 of type edu.nps.moves.dis7.CollisionElasticPdu +Sent DIS PDU 67 DISPDUType: ENTITY_STATE_UPDATE: 67 of type edu.nps.moves.dis7.EntityStateUpdatePdu +Sent DIS PDU 68 DISPDUType: DIRECTED_ENERGY_FIRE: 68 of type edu.nps.moves.dis7.DirectedEnergyFirePdu +Sent DIS PDU 69 DISPDUType: ENTITY_DAMAGE_STATUS: 69 of type edu.nps.moves.dis7.EntityDamageStatusPdu +Sent DIS PDU 70 DISPDUType: INFORMATION_OPERATIONS_ACTION: 70 of type edu.nps.moves.dis7.InformationOperationsActionPdu +Sent DIS PDU 71 DISPDUType: INFORMATION_OPERATIONS_REPORT: 71 of type edu.nps.moves.dis7.InformationOperationsReportPdu +Sent DIS PDU 72 DISPDUType: ATTRIBUTE: 72 of type edu.nps.moves.dis7.AttributePdu +DisExamplesOpenDis7.AllPduSender complete, sent 72 PDUs total. +BUILD SUCCESSFUL (total time: 2 seconds) diff --git a/examples/src/OpenDis7Examples/EspduSender.java b/examples/src/OpenDis7Examples/EspduSender.java index c3c94b94f6570c9dab832ce84575ada26d621a98..5e8602950b8c54a79216191b020ccc5ae33dcda4 100644 --- a/examples/src/OpenDis7Examples/EspduSender.java +++ b/examples/src/OpenDis7Examples/EspduSender.java @@ -5,6 +5,9 @@ import java.net.*; import java.util.*; import edu.nps.moves.dis7.*; +import edu.nps.moves.dis7.enumerations.Country; +import edu.nps.moves.dis7.enumerations.EntityKind; +import edu.nps.moves.dis7.enumerations.PlatformDomain; import edu.nps.moves.dis7.utilities.*; /** @@ -16,7 +19,10 @@ import edu.nps.moves.dis7.utilities.*; */ public class EspduSender { - public static final int NUMBER_TO_SEND = 5; // 5000 + /** + * Putting any upper limit on # packets sent avoids possibility of non-terminating infinite loops that continue sending packets. + */ + public static final int NUMBER_PDUS_TO_SEND = 5; // 5000 /** * Default multicast group address we send on. @@ -26,7 +32,7 @@ public class EspduSender /** * Default multicast port used, matches Wireshark DIS capture default */ - public static final int DEFAULT_MULTICAST_PORT = 3000; + public static final int DEFAULT_MULTICAST_PORT = 3000; public enum NetworkMode { UNICAST, MULTICAST, BROADCAST @@ -43,6 +49,7 @@ public class EspduSender * * @param args */ + @SuppressWarnings("SleepWhileInLoop") // allows Thread.sleep(value) without warning in code public static void main(String args[]) { System.out.println("DisExamplesOpenDis7.EspduSender started..."); @@ -154,21 +161,22 @@ public class EspduSender // Manual way: /* - EntityType entityType = espdu.getEntityType(); - entityType.setEntityKind(EntityKind.PLATFORM); //(short) 1); // Platform (vs lifeform, munition, sensor, etc.) - entityType.setCountry(Country.UNITED_STATES_OF_AMERICA_USA); //225); // USA - entityType.setDomain(Domain.inst(PlatformDomain.LAND)); // Land (vs air, surface, subsurface, space) - entityType.setCategory((byte) 1); // Tank - entityType.setSubCategory((byte) 1); // M1 Abrams - entityType.setSpecific((byte) 3); // M1A2 Abrams */ + EntityType entityType = espdu.getEntityType(); + entityType.setEntityKind(EntityKind.PLATFORM); //(short) 1); // Platform (vs lifeform, munition, sensor, etc.) + entityType.setCountry(Country.UNITED_STATES_OF_AMERICA_USA); // 225 USA + entityType.setDomain(Domain.inst(PlatformDomain.LAND)); // Land (vs air, surface, subsurface, space) + entityType.setCategory ((byte) 1); // Tank + entityType.setSubCategory((byte) 1); // M1 Abrams + entityType.setSpecific ((byte) 3); // M1A2 Abrams + Set<InetAddress> broadcastAddresses; try // Loop through sending N ESPDUs { - System.out.println("Sending " + NUMBER_TO_SEND + " sets of packets:"); // + address.toString() + System.out.println("Sending " + NUMBER_PDUS_TO_SEND + " sets of packets:"); // + address.toString() - for (int index = 0; index < NUMBER_TO_SEND; index++) { + for (int index = 0; index < NUMBER_PDUS_TO_SEND; index++) { // DIS time is a pain in the uh, neck. DIS time units are 2^31-1 units per // hour, and time is set to DIS time units from the top of the hour. // This means that if you start sending just before the top of the hour diff --git a/examples/src/OpenDis7Examples/PduListenerSaver.java b/examples/src/OpenDis7Examples/PduListenerSaver.java index 226081ce0ac49e2f9630d14f4ae776a6a40fb2f7..3e0f35a7b7c7bcc02d845af76e3608f22d4e7782 100644 --- a/examples/src/OpenDis7Examples/PduListenerSaver.java +++ b/examples/src/OpenDis7Examples/PduListenerSaver.java @@ -4,7 +4,6 @@ */ package OpenDis7Examples; -import edu.nps.moves.dis7.utilities.DisThreadedNetIF; import edu.nps.moves.dis7.utilities.stream.PduRecorder; import java.io.IOException; import java.util.Scanner; @@ -13,6 +12,7 @@ import java.util.Scanner; * with PDU log saving console controls for resume, pause and quit. * * PduSaver.java created on Aug 21, 2019 + * Renamed PduListenerSaver * MOVES Institute Naval Postgraduate School, Monterey, CA, USA www.nps.edu * * @author Mike Bailey, jmbailey@nps.edu @@ -20,7 +20,9 @@ import java.util.Scanner; */ public class PduListenerSaver { - private final static String DEFAULT_OUTPUTDIR = "./pduLog"; + private final static String DEFAULT_OUTPUT_DIRECTORY = "pduLog"; + public static final String DEFAULT_MULTICAST_ADDRESS = AllPduSender.DEFAULT_MULTICAST_ADDRESS; + public static final int DEFAULT_MULTICAST_PORT = AllPduSender.DEFAULT_MULTICAST_PORT; private enum mystate { @@ -30,29 +32,32 @@ public class PduListenerSaver public static void main(String[] args) { - String outDir = DEFAULT_OUTPUTDIR; - String mcast = DisThreadedNetIF.DEFAULT_MCAST_GROUP; - int port = DisThreadedNetIF.DEFAULT_DIS_PORT; + String outputDirectory = DEFAULT_OUTPUT_DIRECTORY; + String multicastAddress = DEFAULT_MULTICAST_ADDRESS; + int multicastPort = DEFAULT_MULTICAST_PORT; + + System.out.println("DisExamplesOpenDis7.PduListenerSaver started..."); switch (args.length) { case 0: break; case 1: - outDir = args[0]; + outputDirectory = args[0]; break; case 3: - outDir = args[0]; - mcast = args[1]; - port = Integer.parseInt(args[2]); + outputDirectory = args[0]; + multicastAddress = args[1]; + multicastPort = Integer.parseInt(args[2]); break; default: - System.err.println("Usage: PduListenerSaver() or PduListenerSaver(\"outputdir\") or PduListenerSaver(\"outputdir\",\"multicast address\", ipPort"); + // Common-sense practice is to print help message if invocation is problematic + System.err.println("Usage: PduListenerSaver() or PduListenerSaver(\"outputdir\") or PduListenerSaver(\"outputDirectory\",\"multicastAddress\", multicastPort"); System.exit(1); } - System.out.println("Beginning pdu save to directory " + outDir); + System.out.println("Beginning PduListenerSaver (" + multicastAddress + ":" + multicastPort + ") to directory " + outputDirectory); try { - PduRecorder recorder = new PduRecorder(outDir, mcast, port); // assumes save + PduRecorder recorder = new PduRecorder(outputDirectory, multicastAddress, multicastPort); // assumes save mystate state = mystate.RUNNING; Scanner scan = new Scanner(System.in); @@ -72,7 +77,8 @@ public class PduListenerSaver break; } } - System.out.println("Ending pdu save to "+recorder.getLogFile()); + System.out.println("Ending PduListenerSaver pdu recording, saved to file:"); + System.out.println(recorder.getLogFile()); } catch (IOException ex) { System.err.println("Exception: " + ex.getClass().getSimpleName() + ": " + ex.getLocalizedMessage()); diff --git a/examples/src/TcpExamples/TcpExample1Telnet.java b/examples/src/TcpExamples/TcpExample1Telnet.java index 407d778b635222da96093df3931bb7f2cf86de5e..fd500650c4f4cb7c4669a7a68f421457f49f2926 100644 --- a/examples/src/TcpExamples/TcpExample1Telnet.java +++ b/examples/src/TcpExamples/TcpExample1Telnet.java @@ -49,7 +49,9 @@ public class TcpExample1Telnet // The Socket object represents the connection between // the server and client, including a full duplex connection - try (Socket clientConnection = serverSocket.accept()) { + try (Socket clientConnection = serverSocket.accept()) // wait here for a client to connect + { + // OK we got something, time to respond! // Use Java io classes to write text (as opposed to // unknown bytes of some sort) to the client OutputStream os = clientConnection.getOutputStream(); diff --git a/examples/src/UdpMulticastHttpExamples/UdpSender.java b/examples/src/UdpMulticastHttpExamples/UdpSender.java index db8b923a659d2439df4f1701d758178ddd75c934..66ca17a994e017bdd67c375ea628edc7134bf621 100644 --- a/examples/src/UdpMulticastHttpExamples/UdpSender.java +++ b/examples/src/UdpMulticastHttpExamples/UdpSender.java @@ -16,8 +16,8 @@ import java.net.*; */ public class UdpSender { - - public static final int SENDING_PORT = 1414; + public static final String MY_NAME = "(default name)"; + public static final int SENDING_PORT = 1414; public static final int RECEIVING_PORT = 1415; public static final String DESTINATION_HOST = "localhost"; @@ -50,6 +50,8 @@ public class UdpSender // ID of the host we are sending to InetAddress destinationAddress = InetAddress.getByName(DESTINATION_HOST); + // ID of the host we are sending from + InetAddress sourceAddress = InetAddress.getByName("localhost"); // possibly identical if source not modified DatagramPacket packet = new DatagramPacket(buffer, buffer.length, destinationAddress, RECEIVING_PORT ); @@ -63,7 +65,7 @@ public class UdpSender { udpSocket.send(packet); Thread.sleep(1000); // Send 100, one per second - System.out.println("Bert sent packet " + index + " of 100"); + System.out.println(MY_NAME + " " + sourceAddress + " sent packet " + index + " of 100"); } System.out.println("UdpSender complete."); } diff --git a/presentations/01_CourseIntroduction.pptx b/presentations/01_CourseIntroduction.pptx index dfb5e3755ec5f1ef2c5b19db925260eeb6b228b3..0c373f7a90c7d2791685730d3cba89cf236047ae 100644 Binary files a/presentations/01_CourseIntroduction.pptx and b/presentations/01_CourseIntroduction.pptx differ diff --git a/presentations/02_SimulationNetworkStandardsAndWeb.pptx b/presentations/02_SimulationNetworkStandardsAndWeb.pptx index 14e1fc70ecc2f5fe058a808b3adbf9a0e090b7c2..e7d28a2a0361ef18e29906abed616ff9600b6a78 100644 Binary files a/presentations/02_SimulationNetworkStandardsAndWeb.pptx and b/presentations/02_SimulationNetworkStandardsAndWeb.pptx differ diff --git a/presentations/03_TCPIP.pptx b/presentations/03_TCPIP.pptx index 0863f7b715aed2fe0a5f58dcfe935ce95ff8cce7..91cb16047cfd2e00036aec61e0571f01c26dd5ba 100644 Binary files a/presentations/03_TCPIP.pptx and b/presentations/03_TCPIP.pptx differ diff --git a/presentations/04_TCPSocketsJava.pptx b/presentations/04_TCPSocketsJava.pptx index 221ef8573fabc18944efaa52a99892670fd7d6a3..19ab33d24b7c6200f38a75bb4c57db5d3268381f 100644 Binary files a/presentations/04_TCPSocketsJava.pptx and b/presentations/04_TCPSocketsJava.pptx differ diff --git a/presentations/05_JavaIO_InputOutput_CheatSheet.pptx b/presentations/05_JavaIO_InputOutput_CheatSheet.pptx index d3187ec045e402a33c1b81ed6b6525f306699024..ec341d930b990a8ca33e3f07a58c2bfd3520dad8 100644 Binary files a/presentations/05_JavaIO_InputOutput_CheatSheet.pptx and b/presentations/05_JavaIO_InputOutput_CheatSheet.pptx differ diff --git a/presentations/06_UDP_UserDatagramProtocol.pptx b/presentations/06_UDP_UserDatagramProtocol.pptx index e82fe11273e6da4765b5114f3d12b61b4d6d86b5..7ed1193e78665add02af9d4a61a5f8e50e1f62d4 100644 Binary files a/presentations/06_UDP_UserDatagramProtocol.pptx and b/presentations/06_UDP_UserDatagramProtocol.pptx differ diff --git a/presentations/07_NetworkScalability.pptx b/presentations/07_NetworkScalability.pptx index 525638ba2425f5e5b77119a4dd16edaaad056b75..e87e14b138acfeea4204c4726317f88791feedbf 100644 Binary files a/presentations/07_NetworkScalability.pptx and b/presentations/07_NetworkScalability.pptx differ diff --git a/presentations/08_DIS_DistributedInteractiveSimulationProtocol.pptx b/presentations/08_DIS_DistributedInteractiveSimulationProtocol.pptx index 466cfa5f3dfeba8e9fe930294625a538e695d429..6fcc10b73a4151f84e785cc200b35546568e1cb1 100644 Binary files a/presentations/08_DIS_DistributedInteractiveSimulationProtocol.pptx and b/presentations/08_DIS_DistributedInteractiveSimulationProtocol.pptx differ diff --git a/presentations/09_HLA_HighLevelArchitecture.pptx b/presentations/09_HLA_HighLevelArchitecture.pptx index ec145b4333960244ecb033c7b765ac4db6988890..f12d1cfa868999d0ed769de2dc83ac2b23d4a1fc 100644 Binary files a/presentations/09_HLA_HighLevelArchitecture.pptx and b/presentations/09_HLA_HighLevelArchitecture.pptx differ diff --git a/presentations/11a_Certificates_PKI.ppt b/presentations/11a_Certificates_PKI.ppt index acda4d8eb579ea6b9250c57337d92b3b16f8a3ad..d0ba4c811050d5397d4ff42ee001bdf49ee38521 100644 Binary files a/presentations/11a_Certificates_PKI.ppt and b/presentations/11a_Certificates_PKI.ppt differ diff --git a/presentations/11b_SimulationAsAService.ppt b/presentations/11b_SimulationAsAService.ppt index 758ac0ded8eb18a625612adc29739f1979d62155..7c98623b424a575eda509d19f6c3bfda2e0f781b 100644 Binary files a/presentations/11b_SimulationAsAService.ppt and b/presentations/11b_SimulationAsAService.ppt differ diff --git a/presentations/11c_Clouds_Virtualization.ppt b/presentations/11c_Clouds_Virtualization.ppt index 8efc5094a163f393b851f47a83e33648c8d4fef7..91da6e887d932ad3650e47968e0b3c17b50eb43a 100644 Binary files a/presentations/11c_Clouds_Virtualization.ppt and b/presentations/11c_Clouds_Virtualization.ppt differ