samples/visitor/21-clientprovider/build.xml
author Jaroslav Tulach <jtulach@netbeans.org>
Sat, 14 Jun 2008 09:59:20 +0200
changeset 177 67d6dceb1002
parent 176 0f658628beac
child 182 77b3c0f1e4c3
permissions -rw-r--r--
Third version and tests for client provider visitor
jtulach@176
     1
<?xml version="1.0" encoding="UTF-8"?>
jtulach@176
     2
<project name="Build Script" default="test" basedir=".">
jtulach@176
     3
    <target name="clean">
jtulach@176
     4
        <delete dir="build"/>
jtulach@176
     5
    </target>
jtulach@176
     6
    
jtulach@176
     7
    <target name="compile" depends="build"/>
jtulach@176
     8
    <target name="build" depends="-libraries">
jtulach@176
     9
        <antcall target="-build-one">
jtulach@176
    10
            <param name="version" value="api1.0"/>
jtulach@176
    11
        </antcall>
jtulach@176
    12
        <antcall target="-build-one">
jtulach@176
    13
            <param name="version" value="api2.0"/>
jtulach@176
    14
        </antcall>
jtulach@177
    15
        <antcall target="-build-one">
jtulach@177
    16
            <param name="version" value="api3.0"/>
jtulach@177
    17
        </antcall>
jtulach@176
    18
        
jtulach@176
    19
        <antcall target="-build-one">
jtulach@176
    20
            <param name="version" value="test"/>
jtulach@176
    21
            <param name="cp" value="build/api1.0/classes:${junit.jar}"/>
jtulach@176
    22
        </antcall>
jtulach@176
    23
jtulach@176
    24
        <echo level="info" message="Next compilation will fails, as adding methods into interface is not binary compatible"/>
jtulach@176
    25
        <antcall target="-build-one">
jtulach@176
    26
            <param name="version" value="test"/>
jtulach@176
    27
            <param name="out" value="will-not-compile"/>
jtulach@176
    28
            <param name="cp" value="build/api2.0/classes:${junit.jar}"/>
jtulach@176
    29
            <param name="failonerror" value="false"/>
jtulach@176
    30
        </antcall>
jtulach@176
    31
jtulach@176
    32
        <antcall target="-build-one">
jtulach@176
    33
            <param name="version" value="test2.0"/>
jtulach@176
    34
            <param name="cp" value="build/api2.0/classes:build/test/classes:${junit.jar}"/>
jtulach@176
    35
        </antcall>
jtulach@176
    36
    </target>
jtulach@176
    37
    
jtulach@176
    38
    <target name="test" depends="build">
jtulach@176
    39
        <echo level="info" message="PrintVisitor on old API. This should succeeds."/>
jtulach@176
    40
        <antcall target="-run-one">
jtulach@176
    41
            <param name="version" value="api1.0"/>
jtulach@176
    42
        </antcall>
jtulach@176
    43
        <echo level="info" message="PrintVisitor on old API. This would not compile, but it runs as it does not deal with minus at all."/>
jtulach@176
    44
        <antcall target="-run-one">
jtulach@176
    45
            <param name="version" value="api2.0"/>
jtulach@176
    46
        </antcall>
jtulach@176
    47
        <echo level="info" message="PrintVisitor on new API. This yields runtime error."/>
jtulach@176
    48
        <antcall target="-run-one">
jtulach@176
    49
            <param name="test" value="test2.0"/>
jtulach@176
    50
            <param name="extra.cp" value="build/test/classes"/>
jtulach@176
    51
            <param name="version" value="api2.0"/>
jtulach@176
    52
        </antcall>
jtulach@176
    53
    </target>
jtulach@176
    54
    
jtulach@176
    55
    <!-- support methods -->
jtulach@176
    56
    
jtulach@176
    57
    <target name="-libraries">
jtulach@176
    58
        <ant dir="../../libs/"/>
jtulach@176
    59
        
jtulach@176
    60
        <property name="junit.jar" location="../../libs/dist/junit-4.4.jar"/>
jtulach@176
    61
    </target>
jtulach@176
    62
    
jtulach@176
    63
    <target name="-run-one">
jtulach@176
    64
        <fail message="You need to specify API version number" unless="version"/>
jtulach@176
    65
        <property name="test" value="test"/>
jtulach@176
    66
        <mkdir dir="build/${test}results${version}"/>
jtulach@176
    67
        <junit dir="build/test/classes" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
jtulach@176
    68
            <batchtest todir="build/${test}results${version}">
jtulach@176
    69
                <fileset dir="build/${test}/classes">
jtulach@176
    70
                    <filename name="**/*Test.class"/>
jtulach@176
    71
                </fileset>
jtulach@176
    72
            </batchtest>
jtulach@176
    73
            <classpath>
jtulach@176
    74
                <path location="build/${version}/classes"/>
jtulach@176
    75
                <path location="build/${test}/classes"/>
jtulach@176
    76
                <path location="${junit.jar}"/>
jtulach@176
    77
                <path path="${extra.cp}"/>
jtulach@176
    78
            </classpath>
jtulach@176
    79
            <formatter type="brief" usefile="false"/>
jtulach@176
    80
            <formatter type="xml"/>
jtulach@176
    81
        </junit>
jtulach@176
    82
    </target>
jtulach@176
    83
    
jtulach@176
    84
    <target name="-build-one">
jtulach@176
    85
        <fail message="You need to specify version number" unless="version"/>
jtulach@176
    86
        
jtulach@176
    87
        <property name="cp" value=""/>
jtulach@176
    88
        <property name="out" value="${version}"/>
jtulach@176
    89
        <property name="failonerror" value="true"/>
jtulach@176
    90
        <mkdir dir="build/${out}/classes"/>
jtulach@176
    91
        <javac 
jtulach@176
    92
            srcdir="src-${version}" 
jtulach@176
    93
            destdir="build/${out}/classes" 
jtulach@176
    94
            source="1.5" target="1.5"
jtulach@176
    95
            classpath="${cp}"
jtulach@176
    96
            failonerror="${failonerror}"
jtulach@176
    97
        />
jtulach@176
    98
    </target>
jtulach@176
    99
</project>