build.xml revision 686:76ecb928e83a
1141296Sdas<!--
2141296Sdas Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
32116Sjkh
42116Sjkh Redistribution and use in source and binary forms, with or without
52116Sjkh modification, are permitted provided that the following conditions
62116Sjkh are met:
7141296Sdas
82116Sjkh   - Redistributions of source code must retain the above copyright
9141296Sdas     notice, this list of conditions and the following disclaimer.
102116Sjkh
112116Sjkh   - Redistributions in binary form must reproduce the above copyright
12141296Sdas     notice, this list of conditions and the following disclaimer in the
13176476Sbde     documentation and/or other materials provided with the distribution.
142116Sjkh
152116Sjkh   - Neither the name of Sun Microsystems nor the names of its
16176385Sbde     contributors may be used to endorse or promote products derived
17176385Sbde     from this software without specific prior written permission.
182116Sjkh
192116Sjkh THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20141296Sdas IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21141296Sdas THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
222116Sjkh PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
232116Sjkh CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
242116Sjkh EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25176465Sbde PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26176465Sbde PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
272116Sjkh LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
282116Sjkh NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
292116Sjkh SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
302116Sjkh-->
312116Sjkh
322116Sjkh<project name="jmx" default="build" basedir=".">
332116Sjkh
342116Sjkh     <import file="../common/shared.xml"/>
352116Sjkh
362116Sjkh    <target name="-pre-init">
372116Sjkh        <!-- Set the values for build date and time -->
382116Sjkh        <tstamp>
392116Sjkh	    <format property="BUILD_DATE"        pattern="yyyy.MM.dd_HH:mm:ss_z" />
408870Srgrimes	    <format property="BUILD_DATE_SIMPLE" pattern="dd_MMM_yyyy" />
412116Sjkh        </tstamp>
422116Sjkh
432116Sjkh        <!-- These properties are set here instead of in the build.properties file, -->
442116Sjkh        <!-- because they depend on the values of BUILD_DATE and BUILD_DATE_SIMPLE  -->
452116Sjkh        <!-- At this time, ./build.properties has not been loaded yet. -->
462116Sjkh        <property name="project.build.name" value="openjdk-bXX"/>
472116Sjkh	<property name="project.build.fulltag"
482116Sjkh                  value="${ant.project.name}-${project.build.name}-${BUILD_DATE}" />
492116Sjkh
502116Sjkh        <!-- unchecked warnings will be fixed in JMX 2.0 as part of the work
51239529Sdim             being done on JSR 255 new features                              -->
52239529Sdim        <property name="javac.options"
53176385Sbde                  value="-Xlint -Xlint:-deprecation"/>
54239529Sdim    </target>
55176385Sbde
562116Sjkh
572116Sjkh    <target name="-pre-compile" depends="-init">
58176558Sbde	<!-- Dir to keep generated stub source -->
592116Sjkh        <mkdir dir="${gensrc.dir}" />
602116Sjkh    </target>
612116Sjkh
622116Sjkh
632116Sjkh    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~ -->
64176409Sbde    <!-- Call rmic-jmx subtargets -->
652116Sjkh
662116Sjkh    <target name="-rmic-jmx" depends="-init,-rmic-jmx-jrmp,-rmic-jmx-iiop"
67176409Sbde	    description="Calls -init,-rmic-jmx-jrmp,-rmic-jmx-iiop"
68176409Sbde    />
69176409Sbde
70176409Sbde
71176409Sbde    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
72176409Sbde    <!-- Generate RMI JRMP stub class files for remote objects -->
73176409Sbde    <!-- Generated java files are kept in a separate directory -->
747659Sbde
757659Sbde    <target name="-rmic-jmx-jrmp" depends="-init"
76176409Sbde            description="Generate RMI JRMP stub class files for remote objects. Keep generated java files in separate dir." >
77176409Sbde
78176409Sbde	<!-- Dir to keep generated stub source -->
797659Sbde        <mkdir dir="${gensrc.dir}" />
807659Sbde
81176409Sbde        <rmic 	base="${classes.dir}/javax/management"
827659Sbde		sourcebase="${gensrc.dir}"
83176409Sbde		includeAntRuntime="no"
84176409Sbde		includeJavaRuntime="no"
85176409Sbde		stubversion="1.2"
86176409Sbde		>
87176409Sbde	    <include name="javax/management/remote/rmi/RMIConnectionImpl.class" />
88176409Sbde	    <include name="javax/management/remote/rmi/RMIServerImpl.class" />
89176409Sbde	</rmic>
90176409Sbde
91176409Sbde    </target>
92176409Sbde
93176409Sbde
94176409Sbde    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
957659Sbde    <!-- Generate RMI IIOP stub class files for remote objects -->
967659Sbde
97176409Sbde    <target name="-rmic-jmx-iiop" depends="-init,-check-jmx-iiop-uptodate" unless="jmx-iiop-uptodate"
98176409Sbde            description="Generate RMI IIOP stub class files for remote objects. Do not keep generated java files." >
99176409Sbde
100176409Sbde	<rmic 	base="${classes.dir}"
101176409Sbde		includeAntRuntime="no"
102176409Sbde		includeJavaRuntime="no"
103176409Sbde		stubversion="1.2"
104176409Sbde		iiop="yes"
105176409Sbde		>
106176409Sbde	    <include name="javax/management/remote/rmi/RMIConnectionImpl.class" />
107176409Sbde	    <include name="javax/management/remote/rmi/RMIServerImpl.class" />
108176409Sbde	</rmic>
109176409Sbde
110176409Sbde    </target>
111176409Sbde
112176409Sbde
113176409Sbde    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
114176409Sbde    <!-- Check if jmx rmic generated IIOP stub and tie class files are up to date -->
115176409Sbde
116176409Sbde    <target name="-check-jmx-iiop-uptodate" depends="-init">
117176409Sbde
118176409Sbde	<uptodate property="jmx-iiop-uptodate"
119176409Sbde		   srcfile="${classes.dir}/javax/management/remote/rmi/RMIConnectionImpl.class"
120176409Sbde		targetfile="${classes.dir}/org/omg/stub/javax/management/remote/rmi/_RMIConnectionImpl_Tie.class"
121176409Sbde	/>
122176409Sbde	<uptodate property="jmx-iiop-uptodate"
123176409Sbde		   srcfile="${classes.dir}/javax/management/remote/rmi/RMIServerImpl.class"
124176409Sbde		targetfile="${classes.dir}/org/omg/stub/javax/management/remote/rmi/_RMIServerImpl_Tie.class"
125176409Sbde	/>
126176409Sbde
127176409Sbde	<echo message="jmx-iiop-uptodate=${jmx-iiop-uptodate}" />
128176640Sbde
129176409Sbde    </target>
130176465Sbde
131176476Sbde    <target name="-post-compile" depends="-init,-rmic-jmx"
132176465Sbde            description="Jar JMX class files (including RMI stubs)" >
133176467Sbde       <mkdir dir="${dist.dir}/lib"/>
134176465Sbde       <jar jarfile="${dist.dir}/lib/${jar.jmx.name}"
135176465Sbde	    update="true"
136176467Sbde	    index="false"
137176465Sbde	    duplicate="fail">
138176476Sbde	    <fileset dir="${classes.dir}" excludes="**/*.java"/>
1392116Sjkh	    <manifest >
140176466Sbde		<attribute name="Built-By"                 value="${user.name}" />
1412116Sjkh		<section name="common">
1422116Sjkh		    <attribute name="Sealed"                 value="${jar.jmx.sealed}" />
143141296Sdas		    <attribute name="Specification-Title"    value="${jar.jmx.spec.title}" />
1442116Sjkh		    <attribute name="Specification-Version"  value="${jar.jmx.spec.version}" />
1452116Sjkh		    <attribute name="Specification-Vendor"   value="${jar.jmx.spec.vendor}" />
1462116Sjkh		    <attribute name="Implementation-Title"   value="${jar.jmx.impl.title}" />
1472116Sjkh		    <attribute name="Implementation-Version" value="${project.build.fulltag}" />
148141296Sdas		    <attribute name="Implementation-Vendor"  value="${jar.jmx.impl.vendor}" />
1492116Sjkh		</section>
150141296Sdas	    </manifest>
1512116Sjkh       </jar>
1522116Sjkh    </target>
1532116Sjkh
1542116Sjkh    <target name="clean" depends="-init,shared.clean">
1552116Sjkh        <delete file="${dist.dir}/lib/${jar.jmx.name}"/>
156141296Sdas    </target>
1572116Sjkh</project>
158141296Sdas