1 <?xml version="1.0" encoding="UTF-8"?>
2 <project name="modularize" default="all" basedir=".">
3 <description>Scripts to build JDK Java sources in modularized way</description>
6 <antcall target="base"/>
7 <antclal target="xml"/>
8 <antcall target="client"/>
9 <antcall target="applet"/>
10 <antcall target="corba"/>
11 <antcall target="tools"/>
12 <antcall target="deprecated7"/>
15 <antcall target="test"/>
18 <!-- basic parameters -->
19 <property name="plugs" value="${ant.file.modularize}/../../../plugs"/>
20 <fail message="You need to provide location of plugs">
21 <condition><not><available file="${plugs}/jre/lib/rt-closed.jar"/></not></condition>
24 <target name="merge-sources"
25 description="Copies sources from all over the JDK tree into one place"
27 <pathconvert property="gensrc">
29 <dirset dir="../build">
30 <include name="*/gensrc"/>
34 <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
37 <available file="${gensrc}"/>
41 <mkdir dir="build/sources"/>
42 <copy todir="build/sources">
43 <fileset dir="${gensrc}"/>
44 <fileset dir="${gensrc}/../impsrc">
45 <exclude name="org/relaxng/datatype/**"/>
47 <fileset dir="../jaxp/src/share/classes/">
48 <exclude name="org/relaxng/datatype/**"/>
50 <fileset dir="../langtools/src/share/classes/">
51 <exclude name="org/relaxng/datatype/**"/>
53 <fileset dir="../jaxws/src/share/classes/">
54 <exclude name="org/relaxng/datatype/**"/>
56 <fileset dir="../corba/src/share/classes/"/>
61 <pathelement location="src/share/classes"/>
62 <pathelement location="build/sources"/>
63 <pathelement location="src/solaris/classes"/>
64 <!-- <pathelement location="src/windows/classes"/> -->
66 <property name="build.dir" location="${ant.file.modularize}/../build/modularize"/>
68 <fileset dir="${build.dir}">
69 <include name="*.jar"/>
72 <property name="test.dir" value="${ant.file.modularize}/../build/test"/>
74 <!-- this is the core of the separation - definition
75 of what classes belong into what compilation group.
77 <selector id="applet">
80 <filename name="java/beans/AppletInitializer*"/>
81 <filename name="java/applet/**"/>
82 <filename name="javax/swing/JApplet*"/>
83 <filename name="sun/applet/**"/>
84 <filename name="META-INF/services/sun.beans.AppletProxy"/>
85 <!-- either this or include AudioClip in client package
86 <filename name="sun/net/www/content/audio/**"/>
90 <filename name="java/applet/AudioClip*"/>
91 <filename name="sun/applet/AppletAudioClip*"/>
98 <filename name="org/omg/**"/>
99 <filename name="com/sun/corba/**"/>
100 <filename name="com/sun/jmx/remote/internal/ProxyInputStream.java"/>
101 <filename name="com/sun/jndi/cosnaming/**"/>
102 <filename name="com/sun/jndi/toolkit/corba/**"/>
103 <filename name="com/sun/jndi/url/iiop/**"/>
104 <filename name="com/sun/jndi/url/iiopname/**"/>
105 <filename name="com/sun/jndi/url/corbaname/**"/>
106 <filename name="javax/management/remote/rmi/RMIConnector.java"/>
107 <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
108 <filename name="javax/management/remote/rmi/RMIServerImpl.java"/>
109 <filename name="javax/management/remote/rmi/RMIIIOPServerImpl.java"/>
110 <filename name="javax/management/remote/rmi/RMIConnectionImpl.java"/>
111 <filename name="javax/management/remote/rmi/RMIJRMPServerImpl.java"/>
112 <filename name="javax/rmi/PortableRemoteObject.java"/>
113 <filename name="com/sun/jmx/remote/security/FileLoginModule.java"/>
114 <filename name="com/sun/jmx/remote/security/JMXPluggableAuthenticator.java"/>
115 <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
116 <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
117 <filename name="com/sun/jmx/remote/protocol/iiop/ClientProvider.java"/>
118 <filename name="com/sun/jmx/remote/protocol/iiop/ServerProvider.java"/>
119 <filename name="com/sun/jmx/remote/protocol/rmi/ServerProvider.java"/>
120 <filename name="com/sun/jndi/url/iiop/iiopURLContextFactory.java"/>
121 <filename name="sun/rmi/rmic/RMIGenerator.java"/>
122 <filename name="sun/management/jmxremote/ConnectorBootstrap.java"/>
123 <filename name="sun/management/Agent.java"/>
124 <filename name="sun/management/snmp/AdaptorBootstrap.java"/>
125 <filename name="javax/rmi/CORBA/**"/>
126 <filename name="com/sun/org/omg/**"/>
127 <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
128 <filename name="com/sun/jndi/url/iiop/iiopURLContext.java"/>
129 <filename name="sun/rmi/rmic/iiop/**"/>
132 <selector refid="tools"/>
133 <selector refid="deprecated7"/>
138 <selector id="beans">
141 <filename name="java/beans/**"/>
142 <filename name="sun/beans/**"/>
143 <filename name="com/sun/beans/**"/>
146 <selector refid="applet"/>
147 <selector refid="deprecated7"/>
153 <selector id="client">
156 <filename name="java/awt/**"/>
157 <filename name="sun/awt/**"/>
158 <filename name="com/sun/awt/**"/>
159 <filename name="javax/imageio/**"/>
160 <filename name="javax/print/**"/>
161 <filename name="javax/accessibility/**"/>
162 <filename name="com/sun/imageio/**"/>
163 <filename name="javax/swing/**"/>
164 <filename name="sun/swing/**"/>
165 <filename name="sun/java2d/**"/>
166 <filename name="sun/print/**"/>
167 <filename name="sun/font/**"/>
168 <filename name="sun/beans/**"/>
169 <filename name="sun/awt/shell/**"/>
170 <filename name="com/sun/swing/**"/>
171 <filename name="com/sun/java/swing/**"/>
172 <filename name="com/sun/xml/internal/xsom/impl/util/**"/>
173 <filename name="com/sun/security/auth/callback/DialogCallbackHandler*"/>
174 <filename name="com/sun/inputmethods/internal/**"/>
175 <filename name="com/sun/xml/internal/bind/**"/>
177 <filename name="com/sun/xml/internal/messaging/saaj/**"/>
178 <filename name="com/sun/xml/internal/org/jvnet/staxex/**"/>
179 <filename name="com/sun/xml/internal/stream/buffer/stax/**"/>
180 <filename name="com/sun/xml/internal/ws/**"/>
181 <filename name="com/sun/istack/internal/**"/>
182 <filename name="com/sun/xml/internal/stream/buffer/**"/>
183 <!-- <filename name="com/sun/xml/internal/stream/**"/>-->
184 <filename name="com/sun/xml/internal/xsom/**"/>
186 <filename name="javax/xml/soap/**"/>
187 <filename name="javax/xml/bind/**"/>
188 <filename name="javax/xml/ws/**"/>
189 <filename name="javax/activation/**"/>
191 <filename name="sun/net/www/content/image/**"/>
193 <!--<filename name="com/sun/naming/internal/**"/>-->
195 <!-- input method has JFrame in signature -->
196 <filename name="sun/awt/im/**"/>
197 <filename name="sun/awt/X11/**"/>
199 <filename name="java/beans/javax_swing*"/>
200 <filename name="java/beans/**"/>
201 <filename name="com/sun/beans/**"/>
202 <!-- bridge between jmx and beans -->
203 <filename name="META-INF/services/com.sun.jmx.mbeanserver.IntrospectorProxy"/>
204 <!-- bridge between java.text and java.awt.font for Bidi -->
205 <filename name="META-INF/services/sun.text.BidiProxy"/>
208 <filename name="java/awt/AWTPermission*"/>
210 <filename name="java/beans/ConstructorProperties*"/>
211 <filename name="java/beans/PropertyChangeListener*"/>
212 <filename name="java/beans/PropertyChangeEvent*"/>
213 <filename name="java/beans/IndexedPropertyChangeEvent*"/>
214 <filename name="java/beans/PropertyChangeSupport*"/>
215 <filename name="java/beans/ChangeListenerMap*"/>
217 <!-- remove classes from other modules -->
218 <selector refid="applet"/>
219 <selector refid="corba"/>
220 <selector refid="tools"/>
221 <selector refid="deprecated7"/>
229 <filename name="META-INF/services/sun.util.xml*"/>
231 <filename name="org/w3c/**"/>
232 <filename name="org/sax/**"/>
233 <filename name="com/sun/org/apache/xml/internal/**"/>
234 <filename name="com/sun/org/apache/xpath/internal/**"/>
235 <filename name="com/sun/org/apache/xalan/internal/**"/>
236 <filename name="com/sun/org/apache/xerces/internal/**"/>
237 <filename name="com/sun/xml/internal/**"/>
238 <filename name="org/jcp/xml/dsig/internal/**"/>
239 <filename name="javax/xml/**"/>
240 <filename name="com/sun/servicetag/**"/>
241 <filename name="com/sun/java/browser/**"/>
243 <!-- SQL seems to have dependency on XML,
244 so including it here too for now
246 <filename name="com/sun/rowset/**"/>
247 <filename name="java/sql/**"/>
248 <filename name="javax/sql/**"/>
251 <!-- remove classes from other modules -->
252 <selector refid="applet"/>
253 <selector refid="client"/>
254 <selector refid="corba"/>
255 <selector refid="tools"/>
256 <selector refid="deprecated7"/>
261 <selector id="tools">
263 <filename name="sun/security/tools/**"/>
264 <filename name="com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl*"/>
265 <filename name="com/sun/tools/**"/>
266 <filename name="com/sun/jdi/**"/>
267 <filename name="sun/tools/**"/>
268 <filename name="sun/rmi/rmic/**"/>
272 <selector id="deprecated7">
274 <!-- deprecated as it contains one method
275 that references Applet
277 <filename name="java/beans/Beans*"/>
278 <!-- deprecated as it contains one method
279 that references Applet
281 <filename name="javax/swing/RepaintManager*"/>
287 <!-- exclude classes from other modules -->
288 <selector refid="corba"/>
289 <selector refid="applet"/>
290 <selector refid="client"/>
291 <selector refid="xml"/>
292 <selector refid="tools"/>
293 <selector refid="deprecated7"/>
295 <selector refid="client"/>
296 <selector refid="enterprise"/>
297 <selector refid="deprecated7"/>
301 <!-- non-important non-API things
302 which cannot be compiled easily
304 <filename name="**/*-*"/>
305 <filename name="java/dyn/**"/>
306 <filename name="sun/dyn/**"/>
308 <filename name="com/sun/script/javascript/**"/>
309 <filename name="sun/dc/**"/>
310 <filename name="sun/nio/fs/Solaris**"/>
311 <filename name="sun/tracing/**"/>
312 <filename name="com/sun/tracing/ProviderFactory*"/>
316 <!-- individual compilation tasks -->
318 <target name="deprecated7">
319 <antcall target="-compile-one-module">
320 <param name="module" value="deprecated7"/>
321 <param name="depends" value="base:applet:client"/>
324 <target name="applet">
325 <antcall target="-compile-one-module">
326 <param name="module" value="applet"/>
327 <param name="depends" value="base:client"/>
331 <target name="beans">
332 <antcall target="-compile-one-module">
333 <param name="module" value="beans"/>
337 <target name="client">
338 <antcall target="-compile-one-module">
339 <param name="module" value="client"/>
340 <param name="depends" value="base"/>
343 <target name="corba">
344 <antcall target="-compile-one-module">
345 <param name="module" value="corba"/>
346 <param name="depends" value="base:client:applet"/>
349 <target name="tools">
350 <antcall target="-compile-one-module">
351 <param name="module" value="tools"/>
352 <param name="depends" value="base:client:applet:corba"/>
356 <antcall target="-compile-one-module">
357 <param name="module" value="xml"/>
358 <param name="depends" value="base"/>
362 <antcall target="-compile-one-module">
363 <param name="module" value="base"/>
367 <!-- basic sanity tests -->
369 <mkdir dir="${test.dir}"/>
370 <javac srcdir="test/java/util/Properties" destdir="${test.dir}"
371 includeantruntime="false" includejavaruntime="false"
372 debug="true" debuglevel="lines,vars,source"
374 <bootclasspath refid="boot"/>
376 <javac srcdir="test/java/util/prefs/Preferences" destdir="${test.dir}"
377 includeantruntime="false" includejavaruntime="false"
378 debug="true" debuglevel="lines,vars,source"
380 <bootclasspath refid="boot"/>
383 <java classname="XMLReadAndWriteTest" fork="true">
384 <jvmarg value="-ea"/>
387 <pathelement location="${test.dir}"/>
390 <java classname="XMLPreferencesTest" fork="true">
391 <jvmarg value="-ea"/>
394 <pathelement location="${test.dir}"/>
399 <!-- shared routine to compile one of the modules -->
400 <target name="-compile-one-module">
401 <mkdir dir="${build.dir}/classes/${module}"/>
402 <pathconvert pathsep=":" property="module.cp">
403 <path path="${depends}"/>
404 <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
407 basedir="${build.dir}/classes/${module}"
408 destfile="${build.dir}/empty.jar"
414 bootclasspath="${build.dir}/empty.jar"
416 destdir="${build.dir}/classes/${module}"
417 includejavaruntime="false"
418 includeantruntime="false"
419 classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
421 debuglevel="lines,vars,source"
423 <src refid="src.path"/>
425 <selector refid="${module}"/>
426 <not><filename name="**/*-template.java"/></not>
429 <copy todir="${build.dir}/classes/${module}">
430 <fileset dir="src/share/classes">
432 <selector refid="${module}"/>
434 <filename name="**/*.java"/>
441 basedir="${build.dir}/classes/${module}"
442 destfile="${build.dir}/${module}.jar"
447 <!-- clean everything -->
448 <target name="clean">
449 <delete dir="${build.dir}"/>