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 <antcall target="client"/>
8 <antcall target="applet"/>
9 <antcall target="corba"/>
10 <antcall target="deprecated7"/>
13 <!-- basic parameters -->
14 <property name="plugs" value="../../plugs"/>
15 <fail message="You need to provide location of plugs">
16 <condition><not><available file="${plugs}/jre/lib/rt-closed.jar"/></not></condition>
19 <target name="merge-sources"
20 description="Copies sources from all over the JDK tree into one place"
22 <pathconvert property="gensrc">
24 <dirset dir="../build">
25 <include name="*/gensrc"/>
29 <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
32 <available file="${gensrc}"/>
36 <mkdir dir="build/sources"/>
37 <copy todir="build/sources">
38 <fileset dir="${gensrc}"/>
39 <fileset dir="${gensrc}/../impsrc">
40 <exclude name="org/relaxng/datatype/**"/>
42 <fileset dir="../jaxp/src/share/classes/">
43 <exclude name="org/relaxng/datatype/**"/>
45 <fileset dir="../langtools/src/share/classes/">
46 <exclude name="org/relaxng/datatype/**"/>
48 <fileset dir="../jaxws/src/share/classes/">
49 <exclude name="org/relaxng/datatype/**"/>
51 <fileset dir="../corba/src/share/classes/"/>
56 <pathelement location="src/share/classes"/>
57 <pathelement location="build/sources"/>
58 <pathelement location="src/solaris/classes"/>
59 <!-- <pathelement location="src/windows/classes"/> -->
61 <property name="build.dir" location="build/modularize"/>
63 <!-- this is the core of the separation - definition
64 of what classes belong into what compilation group.
66 <selector id="applet">
69 <filename name="java/beans/AppletInitializer*"/>
70 <filename name="java/applet/**"/>
71 <filename name="javax/swing/JApplet*"/>
72 <filename name="sun/applet/**"/>
73 <filename name="META-INF/services/sun.beans.AppletProxy"/>
74 <!-- either this or include AudioClip in client package
75 <filename name="sun/net/www/content/audio/**"/>
79 <filename name="java/applet/AudioClip*"/>
80 <filename name="sun/applet/AppletAudioClip*"/>
87 <filename name="org/omg/**"/>
88 <filename name="com/sun/corba/**"/>
89 <filename name="com/sun/jmx/remote/internal/ProxyInputStream.java"/>
90 <filename name="com/sun/jndi/cosnaming/**"/>
91 <filename name="com/sun/jndi/toolkit/corba/**"/>
92 <filename name="com/sun/jndi/url/iiop/**"/>
93 <filename name="com/sun/jndi/url/iiopname/**"/>
94 <filename name="com/sun/jndi/url/corbaname/**"/>
95 <filename name="javax/management/remote/rmi/RMIConnector.java"/>
96 <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
97 <filename name="javax/management/remote/rmi/RMIServerImpl.java"/>
98 <filename name="javax/management/remote/rmi/RMIIIOPServerImpl.java"/>
99 <filename name="javax/management/remote/rmi/RMIConnectionImpl.java"/>
100 <filename name="javax/management/remote/rmi/RMIJRMPServerImpl.java"/>
101 <filename name="javax/rmi/PortableRemoteObject.java"/>
102 <filename name="com/sun/jmx/remote/security/FileLoginModule.java"/>
103 <filename name="com/sun/jmx/remote/security/JMXPluggableAuthenticator.java"/>
104 <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
105 <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
106 <filename name="com/sun/jmx/remote/protocol/iiop/ClientProvider.java"/>
107 <filename name="com/sun/jmx/remote/protocol/iiop/ServerProvider.java"/>
108 <filename name="com/sun/jmx/remote/protocol/rmi/ServerProvider.java"/>
109 <filename name="com/sun/jndi/url/iiop/iiopURLContextFactory.java"/>
110 <filename name="sun/rmi/rmic/RMIGenerator.java"/>
111 <filename name="sun/management/jmxremote/ConnectorBootstrap.java"/>
112 <filename name="sun/management/Agent.java"/>
113 <filename name="sun/management/snmp/AdaptorBootstrap.java"/>
114 <filename name="javax/rmi/CORBA/**"/>
115 <filename name="com/sun/org/omg/**"/>
116 <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
117 <filename name="com/sun/jndi/url/iiop/iiopURLContext.java"/>
118 <filename name="sun/rmi/rmic/iiop/**"/>
121 <selector refid="deprecated7"/>
125 <selector id="beans">
128 <filename name="java/beans/**"/>
129 <filename name="sun/beans/**"/>
130 <filename name="com/sun/beans/**"/>
133 <selector refid="applet"/>
134 <selector refid="deprecated7"/>
139 <selector id="client">
142 <filename name="java/awt/**"/>
143 <filename name="sun/awt/**"/>
144 <filename name="com/sun/awt/**"/>
145 <filename name="javax/imageio/**"/>
146 <filename name="javax/print/**"/>
147 <filename name="javax/accessibility/**"/>
148 <filename name="com/sun/imageio/**"/>
149 <filename name="javax/swing/**"/>
150 <filename name="sun/swing/**"/>
151 <filename name="sun/java2d/**"/>
152 <filename name="sun/print/**"/>
153 <filename name="sun/font/**"/>
154 <filename name="sun/beans/**"/>
155 <filename name="sun/awt/shell/**"/>
156 <filename name="com/sun/swing/**"/>
157 <filename name="com/sun/java/swing/**"/>
158 <filename name="com/sun/xml/internal/xsom/impl/util/**"/>
159 <filename name="com/sun/security/auth/callback/DialogCallbackHandler*"/>
160 <filename name="com/sun/inputmethods/internal/**"/>
161 <filename name="com/sun/xml/internal/bind/**"/>
163 <filename name="com/sun/xml/internal/messaging/saaj/**"/>
164 <filename name="com/sun/xml/internal/org/jvnet/staxex/**"/>
165 <filename name="com/sun/xml/internal/stream/buffer/stax/**"/>
166 <filename name="com/sun/xml/internal/ws/**"/>
167 <filename name="com/sun/istack/internal/**"/>
168 <filename name="com/sun/xml/internal/stream/buffer/**"/>
169 <!-- <filename name="com/sun/xml/internal/stream/**"/>-->
170 <filename name="com/sun/xml/internal/xsom/**"/>
172 <filename name="javax/xml/soap/**"/>
173 <filename name="javax/xml/bind/**"/>
174 <filename name="javax/xml/ws/**"/>
175 <filename name="javax/activation/**"/>
177 <filename name="sun/net/www/content/image/**"/>
179 <!--<filename name="com/sun/naming/internal/**"/>-->
181 <!-- input method has JFrame in signature -->
182 <filename name="sun/awt/im/**"/>
183 <filename name="sun/awt/X11/**"/>
185 <filename name="java/beans/javax_swing*"/>
186 <filename name="java/beans/**"/>
187 <filename name="com/sun/beans/**"/>
188 <!-- bridge between jmx and beans -->
189 <filename name="META-INF/services/com.sun.jmx.mbeanserver.IntrospectorProxy"/>
190 <!-- bridge between java.text and java.awt.font for Bidi -->
191 <filename name="META-INF/services/sun.text.BidiProxy"/>
194 <filename name="java/awt/AWTPermission*"/>
196 <filename name="java/beans/ConstructorProperties*"/>
197 <filename name="java/beans/PropertyChangeListener*"/>
198 <filename name="java/beans/PropertyChangeEvent*"/>
199 <filename name="java/beans/IndexedPropertyChangeEvent*"/>
200 <filename name="java/beans/PropertyChangeSupport*"/>
201 <filename name="java/beans/ChangeListenerMap*"/>
203 <!-- remove classes from other modules -->
204 <selector refid="applet"/>
205 <selector refid="corba"/>
206 <selector refid="deprecated7"/>
211 <selector id="deprecated7">
213 <!-- deprecated as it contains one method
214 that references Applet
216 <filename name="java/beans/Beans*"/>
217 <!-- deprecated as it contains one method
218 that references Applet
220 <filename name="javax/swing/RepaintManager*"/>
223 <filename name="sun/security/tools/**"/>
224 <filename name="com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl*"/>
225 <filename name="com/sun/tools/**"/>
226 <filename name="com/sun/jdi/**"/>
227 <filename name="sun/tools/**"/>
228 <filename name="sun/rmi/rmic/**"/>
234 <!-- exclude classes from other modules -->
235 <selector refid="corba"/>
236 <selector refid="applet"/>
237 <selector refid="client"/>
238 <selector refid="deprecated7"/>
240 <selector refid="client"/>
241 <selector refid="enterprise"/>
242 <selector refid="deprecated7"/>
246 <!-- non-important non-API things
247 which cannot be compiled easily
249 <filename name="**/*-*"/>
250 <filename name="java/dyn/**"/>
251 <filename name="sun/dyn/**"/>
253 <filename name="com/sun/script/javascript/**"/>
254 <filename name="sun/dc/**"/>
255 <filename name="sun/nio/fs/Solaris**"/>
256 <filename name="sun/tracing/**"/>
257 <filename name="com/sun/tracing/ProviderFactory*"/>
261 <!-- individual compilation tasks -->
263 <target name="deprecated7">
264 <antcall target="-compile-one-module">
265 <param name="module" value="deprecated7"/>
266 <param name="depends" value="base:applet:client:corba"/>
269 <target name="applet">
270 <antcall target="-compile-one-module">
271 <param name="module" value="applet"/>
272 <param name="depends" value="base:client"/>
275 <target name="beans">
276 <antcall target="-compile-one-module">
277 <param name="module" value="beans"/>
280 <target name="client">
281 <antcall target="-compile-one-module">
282 <param name="module" value="client"/>
283 <param name="depends" value="base"/>
286 <target name="corba">
287 <antcall target="-compile-one-module">
288 <param name="module" value="corba"/>
289 <param name="depends" value="base:client:applet"/>
295 <antcall target="-compile-one-module">
296 <param name="module" value="base"/>
300 <!-- shared routine to compile one of the modules -->
301 <target name="-compile-one-module">
302 <mkdir dir="${build.dir}/classes/${module}"/>
303 <pathconvert pathsep=":" property="module.cp">
304 <path path="${depends}"/>
305 <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
308 basedir="${build.dir}/classes/${module}"
309 destfile="${build.dir}/empty.jar"
315 bootclasspath="${build.dir}/empty.jar"
317 destdir="${build.dir}/classes/${module}"
318 includejavaruntime="false"
319 includeantruntime="false"
320 classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
322 <src refid="src.path"/>
324 <selector refid="${module}"/>
325 <not><filename name="**/*-template.java"/></not>
328 <copy todir="${build.dir}/classes/${module}">
329 <fileset dir="src/share/classes">
331 <selector refid="${module}"/>
333 <filename name="**/*.java"/>
340 basedir="${build.dir}/classes/${module}"
341 destfile="${build.dir}/${module}.jar"
346 <!-- clean everything -->
347 <target name="clean">
348 <delete dir="${build.dir}"/>