1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?>
2*b1cdbd2cSJim Jagielski<!--***********************************************************
3*b1cdbd2cSJim Jagielski *
4*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
5*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
6*b1cdbd2cSJim Jagielski * distributed with this work for additional information
7*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
8*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
9*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
10*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
11*b1cdbd2cSJim Jagielski *
12*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
13*b1cdbd2cSJim Jagielski *
14*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
15*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
16*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
18*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
19*b1cdbd2cSJim Jagielski * under the License.
20*b1cdbd2cSJim Jagielski *
21*b1cdbd2cSJim Jagielski ***********************************************************-->
22*b1cdbd2cSJim Jagielski<!-- You may freely edit this file. See commented blocks below for -->
23*b1cdbd2cSJim Jagielski<!-- some examples of how to customize the build. -->
24*b1cdbd2cSJim Jagielski<!-- (If you delete it and reopen the project it will be recreated.) -->
25*b1cdbd2cSJim Jagielski<!-- By default, only the Clean and Build commands use this build script. -->
26*b1cdbd2cSJim Jagielski<!-- Commands such as Run, Debug, and Test only use this build script if -->
27*b1cdbd2cSJim Jagielski<!-- the Compile on Save feature is turned off for the project. -->
28*b1cdbd2cSJim Jagielski<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
29*b1cdbd2cSJim Jagielski<!-- in the project's Project Properties dialog box.-->
30*b1cdbd2cSJim Jagielski<project name="httpserv" default="default" basedir=".">
31*b1cdbd2cSJim Jagielski    <description>Builds, tests, and runs the project httpserv.</description>
32*b1cdbd2cSJim Jagielski    <import file="nbproject/build-impl.xml"/>
33*b1cdbd2cSJim Jagielski    <!--
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim Jagielski    There exist several targets which are by default empty and which can be
36*b1cdbd2cSJim Jagielski    used for execution of your tasks. These targets are usually executed
37*b1cdbd2cSJim Jagielski    before and after some main targets. They are:
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski      -pre-init:                 called before initialization of project properties
40*b1cdbd2cSJim Jagielski      -post-init:                called after initialization of project properties
41*b1cdbd2cSJim Jagielski      -pre-compile:              called before javac compilation
42*b1cdbd2cSJim Jagielski      -post-compile:             called after javac compilation
43*b1cdbd2cSJim Jagielski      -pre-compile-single:       called before javac compilation of single file
44*b1cdbd2cSJim Jagielski      -post-compile-single:      called after javac compilation of single file
45*b1cdbd2cSJim Jagielski      -pre-compile-test:         called before javac compilation of JUnit tests
46*b1cdbd2cSJim Jagielski      -post-compile-test:        called after javac compilation of JUnit tests
47*b1cdbd2cSJim Jagielski      -pre-compile-test-single:  called before javac compilation of single JUnit test
48*b1cdbd2cSJim Jagielski      -post-compile-test-single: called after javac compilation of single JUunit test
49*b1cdbd2cSJim Jagielski      -pre-jar:                  called before JAR building
50*b1cdbd2cSJim Jagielski      -post-jar:                 called after JAR building
51*b1cdbd2cSJim Jagielski      -post-clean:               called after cleaning build products
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski    (Targets beginning with '-' are not intended to be called on their own.)
54*b1cdbd2cSJim Jagielski
55*b1cdbd2cSJim Jagielski    Example of inserting an obfuscator after compilation could look like this:
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielski        <target name="-post-compile">
58*b1cdbd2cSJim Jagielski            <obfuscate>
59*b1cdbd2cSJim Jagielski                <fileset dir="${build.classes.dir}"/>
60*b1cdbd2cSJim Jagielski            </obfuscate>
61*b1cdbd2cSJim Jagielski        </target>
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski    For list of available properties check the imported
64*b1cdbd2cSJim Jagielski    nbproject/build-impl.xml file.
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim Jagielski    Another way to customize the build is by overriding existing main targets.
68*b1cdbd2cSJim Jagielski    The targets of interest are:
69*b1cdbd2cSJim Jagielski
70*b1cdbd2cSJim Jagielski      -init-macrodef-javac:     defines macro for javac compilation
71*b1cdbd2cSJim Jagielski      -init-macrodef-junit:     defines macro for junit execution
72*b1cdbd2cSJim Jagielski      -init-macrodef-debug:     defines macro for class debugging
73*b1cdbd2cSJim Jagielski      -init-macrodef-java:      defines macro for class execution
74*b1cdbd2cSJim Jagielski      -do-jar-with-manifest:    JAR building (if you are using a manifest)
75*b1cdbd2cSJim Jagielski      -do-jar-without-manifest: JAR building (if you are not using a manifest)
76*b1cdbd2cSJim Jagielski      run:                      execution of project
77*b1cdbd2cSJim Jagielski      -javadoc-build:           Javadoc generation
78*b1cdbd2cSJim Jagielski      test-report:              JUnit report generation
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski    An example of overriding the target for project execution could look like this:
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski        <target name="run" depends="httpserv-impl.jar">
83*b1cdbd2cSJim Jagielski            <exec dir="bin" executable="launcher.exe">
84*b1cdbd2cSJim Jagielski                <arg file="${dist.jar}"/>
85*b1cdbd2cSJim Jagielski            </exec>
86*b1cdbd2cSJim Jagielski        </target>
87*b1cdbd2cSJim Jagielski
88*b1cdbd2cSJim Jagielski    Notice that the overridden target depends on the jar target and not only on
89*b1cdbd2cSJim Jagielski    the compile target as the regular run target does. Again, for a list of available
90*b1cdbd2cSJim Jagielski    properties which you can use, check the target you are overriding in the
91*b1cdbd2cSJim Jagielski    nbproject/build-impl.xml file.
92*b1cdbd2cSJim Jagielski
93*b1cdbd2cSJim Jagielski    -->
94*b1cdbd2cSJim Jagielski    <!-- Import the environment as properties to make them available in project.properties
95*b1cdbd2cSJim Jagielski    -->
96*b1cdbd2cSJim Jagielski    <target name="-pre-init">
97*b1cdbd2cSJim Jagielski      <property environment="env" />
98*b1cdbd2cSJim Jagielski    </target>
99*b1cdbd2cSJim Jagielski</project>
100