Using code injection to separate XML related operations on Properties and Preferences outside of base module. Default implementation is still missing.
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 <!-- basic parameters -->
16 <property name="plugs" value="../../plugs"/>
17 <fail message="You need to provide location of plugs">
18 <condition><not><available file="${plugs}/jre/lib/rt-closed.jar"/></not></condition>
21 <target name="merge-sources"
22 description="Copies sources from all over the JDK tree into one place"
24 <pathconvert property="gensrc">
26 <dirset dir="../build">
27 <include name="*/gensrc"/>
31 <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
34 <available file="${gensrc}"/>
38 <mkdir dir="build/sources"/>
39 <copy todir="build/sources">
40 <fileset dir="${gensrc}"/>
41 <fileset dir="${gensrc}/../impsrc">
42 <exclude name="org/relaxng/datatype/**"/>
44 <fileset dir="../jaxp/src/share/classes/">
45 <exclude name="org/relaxng/datatype/**"/>
47 <fileset dir="../langtools/src/share/classes/">
48 <exclude name="org/relaxng/datatype/**"/>
50 <fileset dir="../jaxws/src/share/classes/">
51 <exclude name="org/relaxng/datatype/**"/>
53 <fileset dir="../corba/src/share/classes/"/>
58 <pathelement location="src/share/classes"/>
59 <pathelement location="build/sources"/>
60 <pathelement location="src/solaris/classes"/>
61 <!-- <pathelement location="src/windows/classes"/> -->
63 <property name="build.dir" location="build/modularize"/>
65 <!-- this is the core of the separation - definition
66 of what classes belong into what compilation group.
68 <selector id="applet">
71 <filename name="java/beans/AppletInitializer*"/>
72 <filename name="java/applet/**"/>
73 <filename name="javax/swing/JApplet*"/>
74 <filename name="sun/applet/**"/>
75 <filename name="META-INF/services/sun.beans.AppletProxy"/>
76 <!-- either this or include AudioClip in client package
77 <filename name="sun/net/www/content/audio/**"/>
81 <filename name="java/applet/AudioClip*"/>
82 <filename name="sun/applet/AppletAudioClip*"/>
89 <filename name="org/omg/**"/>
90 <filename name="com/sun/corba/**"/>
91 <filename name="com/sun/jmx/remote/internal/ProxyInputStream.java"/>
92 <filename name="com/sun/jndi/cosnaming/**"/>
93 <filename name="com/sun/jndi/toolkit/corba/**"/>
94 <filename name="com/sun/jndi/url/iiop/**"/>
95 <filename name="com/sun/jndi/url/iiopname/**"/>
96 <filename name="com/sun/jndi/url/corbaname/**"/>
97 <filename name="javax/management/remote/rmi/RMIConnector.java"/>
98 <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
99 <filename name="javax/management/remote/rmi/RMIServerImpl.java"/>
100 <filename name="javax/management/remote/rmi/RMIIIOPServerImpl.java"/>
101 <filename name="javax/management/remote/rmi/RMIConnectionImpl.java"/>
102 <filename name="javax/management/remote/rmi/RMIJRMPServerImpl.java"/>
103 <filename name="javax/rmi/PortableRemoteObject.java"/>
104 <filename name="com/sun/jmx/remote/security/FileLoginModule.java"/>
105 <filename name="com/sun/jmx/remote/security/JMXPluggableAuthenticator.java"/>
106 <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
107 <filename name="com/sun/jmx/remote/protocol/rmi/ClientProvider.java"/>
108 <filename name="com/sun/jmx/remote/protocol/iiop/ClientProvider.java"/>
109 <filename name="com/sun/jmx/remote/protocol/iiop/ServerProvider.java"/>
110 <filename name="com/sun/jmx/remote/protocol/rmi/ServerProvider.java"/>
111 <filename name="com/sun/jndi/url/iiop/iiopURLContextFactory.java"/>
112 <filename name="sun/rmi/rmic/RMIGenerator.java"/>
113 <filename name="sun/management/jmxremote/ConnectorBootstrap.java"/>
114 <filename name="sun/management/Agent.java"/>
115 <filename name="sun/management/snmp/AdaptorBootstrap.java"/>
116 <filename name="javax/rmi/CORBA/**"/>
117 <filename name="com/sun/org/omg/**"/>
118 <filename name="javax/management/remote/rmi/RMIConnectorServer.java"/>
119 <filename name="com/sun/jndi/url/iiop/iiopURLContext.java"/>
120 <filename name="sun/rmi/rmic/iiop/**"/>
123 <selector refid="tools"/>
124 <selector refid="deprecated7"/>
129 <selector id="beans">
132 <filename name="java/beans/**"/>
133 <filename name="sun/beans/**"/>
134 <filename name="com/sun/beans/**"/>
137 <selector refid="applet"/>
138 <selector refid="deprecated7"/>
144 <selector id="client">
147 <filename name="java/awt/**"/>
148 <filename name="sun/awt/**"/>
149 <filename name="com/sun/awt/**"/>
150 <filename name="javax/imageio/**"/>
151 <filename name="javax/print/**"/>
152 <filename name="javax/accessibility/**"/>
153 <filename name="com/sun/imageio/**"/>
154 <filename name="javax/swing/**"/>
155 <filename name="sun/swing/**"/>
156 <filename name="sun/java2d/**"/>
157 <filename name="sun/print/**"/>
158 <filename name="sun/font/**"/>
159 <filename name="sun/beans/**"/>
160 <filename name="sun/awt/shell/**"/>
161 <filename name="com/sun/swing/**"/>
162 <filename name="com/sun/java/swing/**"/>
163 <filename name="com/sun/xml/internal/xsom/impl/util/**"/>
164 <filename name="com/sun/security/auth/callback/DialogCallbackHandler*"/>
165 <filename name="com/sun/inputmethods/internal/**"/>
166 <filename name="com/sun/xml/internal/bind/**"/>
168 <filename name="com/sun/xml/internal/messaging/saaj/**"/>
169 <filename name="com/sun/xml/internal/org/jvnet/staxex/**"/>
170 <filename name="com/sun/xml/internal/stream/buffer/stax/**"/>
171 <filename name="com/sun/xml/internal/ws/**"/>
172 <filename name="com/sun/istack/internal/**"/>
173 <filename name="com/sun/xml/internal/stream/buffer/**"/>
174 <!-- <filename name="com/sun/xml/internal/stream/**"/>-->
175 <filename name="com/sun/xml/internal/xsom/**"/>
177 <filename name="javax/xml/soap/**"/>
178 <filename name="javax/xml/bind/**"/>
179 <filename name="javax/xml/ws/**"/>
180 <filename name="javax/activation/**"/>
182 <filename name="sun/net/www/content/image/**"/>
184 <!--<filename name="com/sun/naming/internal/**"/>-->
186 <!-- input method has JFrame in signature -->
187 <filename name="sun/awt/im/**"/>
188 <filename name="sun/awt/X11/**"/>
190 <filename name="java/beans/javax_swing*"/>
191 <filename name="java/beans/**"/>
192 <filename name="com/sun/beans/**"/>
193 <!-- bridge between jmx and beans -->
194 <filename name="META-INF/services/com.sun.jmx.mbeanserver.IntrospectorProxy"/>
195 <!-- bridge between java.text and java.awt.font for Bidi -->
196 <filename name="META-INF/services/sun.text.BidiProxy"/>
199 <filename name="java/awt/AWTPermission*"/>
201 <filename name="java/beans/ConstructorProperties*"/>
202 <filename name="java/beans/PropertyChangeListener*"/>
203 <filename name="java/beans/PropertyChangeEvent*"/>
204 <filename name="java/beans/IndexedPropertyChangeEvent*"/>
205 <filename name="java/beans/PropertyChangeSupport*"/>
206 <filename name="java/beans/ChangeListenerMap*"/>
208 <!-- remove classes from other modules -->
209 <selector refid="applet"/>
210 <selector refid="corba"/>
211 <selector refid="tools"/>
212 <selector refid="deprecated7"/>
220 <filename name="META-INF/services/sun.util.xml*"/>
222 <filename name="org/w3c/**"/>
223 <filename name="org/sax/**"/>
224 <filename name="com/sun/org/apache/xml/internal/**"/>
225 <filename name="com/sun/org/apache/xpath/internal/**"/>
226 <filename name="com/sun/org/apache/xalan/internal/**"/>
227 <filename name="com/sun/org/apache/xerces/internal/**"/>
228 <filename name="com/sun/xml/internal/**"/>
229 <filename name="org/jcp/xml/dsig/internal/**"/>
230 <filename name="javax/xml/**"/>
231 <filename name="com/sun/servicetag/**"/>
232 <filename name="com/sun/java/browser/**"/>
234 <!-- SQL seems to have dependency on XML,
235 so including it here too for now
237 <filename name="com/sun/rowset/**"/>
238 <filename name="java/sql/**"/>
239 <filename name="javax/sql/**"/>
242 <!-- remove classes from other modules -->
243 <selector refid="applet"/>
244 <selector refid="client"/>
245 <selector refid="corba"/>
246 <selector refid="tools"/>
247 <selector refid="deprecated7"/>
252 <selector id="tools">
254 <filename name="sun/security/tools/**"/>
255 <filename name="com/sun/istack/internal/ws/AnnotationProcessorFactoryImpl*"/>
256 <filename name="com/sun/tools/**"/>
257 <filename name="com/sun/jdi/**"/>
258 <filename name="sun/tools/**"/>
259 <filename name="sun/rmi/rmic/**"/>
263 <selector id="deprecated7">
265 <!-- deprecated as it contains one method
266 that references Applet
268 <filename name="java/beans/Beans*"/>
269 <!-- deprecated as it contains one method
270 that references Applet
272 <filename name="javax/swing/RepaintManager*"/>
278 <!-- exclude classes from other modules -->
279 <selector refid="corba"/>
280 <selector refid="applet"/>
281 <selector refid="client"/>
282 <selector refid="xml"/>
283 <selector refid="tools"/>
284 <selector refid="deprecated7"/>
286 <selector refid="client"/>
287 <selector refid="enterprise"/>
288 <selector refid="deprecated7"/>
292 <!-- non-important non-API things
293 which cannot be compiled easily
295 <filename name="**/*-*"/>
296 <filename name="java/dyn/**"/>
297 <filename name="sun/dyn/**"/>
299 <filename name="com/sun/script/javascript/**"/>
300 <filename name="sun/dc/**"/>
301 <filename name="sun/nio/fs/Solaris**"/>
302 <filename name="sun/tracing/**"/>
303 <filename name="com/sun/tracing/ProviderFactory*"/>
307 <!-- individual compilation tasks -->
309 <target name="deprecated7">
310 <antcall target="-compile-one-module">
311 <param name="module" value="deprecated7"/>
312 <param name="depends" value="base:applet:client"/>
315 <target name="applet">
316 <antcall target="-compile-one-module">
317 <param name="module" value="applet"/>
318 <param name="depends" value="base:client"/>
322 <target name="beans">
323 <antcall target="-compile-one-module">
324 <param name="module" value="beans"/>
328 <target name="client">
329 <antcall target="-compile-one-module">
330 <param name="module" value="client"/>
331 <param name="depends" value="base"/>
334 <target name="corba">
335 <antcall target="-compile-one-module">
336 <param name="module" value="corba"/>
337 <param name="depends" value="base:client:applet"/>
340 <target name="tools">
341 <antcall target="-compile-one-module">
342 <param name="module" value="tools"/>
343 <param name="depends" value="base:client:applet:corba"/>
347 <antcall target="-compile-one-module">
348 <param name="module" value="xml"/>
349 <param name="depends" value="base"/>
353 <antcall target="-compile-one-module">
354 <param name="module" value="base"/>
358 <!-- shared routine to compile one of the modules -->
359 <target name="-compile-one-module">
360 <mkdir dir="${build.dir}/classes/${module}"/>
361 <pathconvert pathsep=":" property="module.cp">
362 <path path="${depends}"/>
363 <mapper type="regexp" from=".*[/\\]([^/\\]*)" to="${build.dir}/\1.jar"/>
366 basedir="${build.dir}/classes/${module}"
367 destfile="${build.dir}/empty.jar"
373 bootclasspath="${build.dir}/empty.jar"
375 destdir="${build.dir}/classes/${module}"
376 includejavaruntime="false"
377 includeantruntime="false"
378 classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
380 <src refid="src.path"/>
382 <selector refid="${module}"/>
383 <not><filename name="**/*-template.java"/></not>
386 <copy todir="${build.dir}/classes/${module}">
387 <fileset dir="src/share/classes">
389 <selector refid="${module}"/>
391 <filename name="**/*.java"/>
398 basedir="${build.dir}/classes/${module}"
399 destfile="${build.dir}/${module}.jar"
404 <!-- clean everything -->
405 <target name="clean">
406 <delete dir="${build.dir}"/>