build.xml
author Jaroslav Tulach <jtulach@netbeans.org>
Wed, 24 Jun 2009 17:29:29 +0200
branchxml-sax-and-dom-2
changeset 1263 24b6c30fbf71
parent 1262 52864f10883d
child 1266 4dfe5e86d509
permissions -rw-r--r--
Simple output of Preferences is the same as the original one via DOM
     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>
     4 
     5     <target name="all">
     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"/>
    13 
    14 
    15         <antcall target="test"/>
    16     </target>
    17 
    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>
    22     </fail>
    23 
    24     <target name="merge-sources"
    25         description="Copies sources from all over the JDK tree into one place"
    26     >
    27         <pathconvert property="gensrc">
    28             <path>
    29                 <dirset dir="../build">
    30                     <include name="*/gensrc"/>
    31                 </dirset>
    32             </path>
    33         </pathconvert>
    34         <fail message="You need to provide location of JDK's generated sources via -Dgensrc=...">
    35             <condition>
    36                 <not>
    37                     <available file="${gensrc}"/>
    38                 </not>
    39             </condition>
    40         </fail>
    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/**"/>
    46             </fileset>
    47             <fileset dir="../jaxp/src/share/classes/">
    48                 <exclude name="org/relaxng/datatype/**"/>
    49             </fileset>
    50             <fileset dir="../langtools/src/share/classes/">
    51                 <exclude name="org/relaxng/datatype/**"/>
    52             </fileset>
    53             <fileset dir="../jaxws/src/share/classes/">
    54                 <exclude name="org/relaxng/datatype/**"/>
    55             </fileset>
    56             <fileset dir="../corba/src/share/classes/"/>
    57         </copy>
    58     </target>
    59 
    60     <path id="src.path">
    61         <pathelement location="src/share/classes"/>
    62         <pathelement location="build/sources"/>
    63         <pathelement location="src/solaris/classes"/>
    64 <!--        <pathelement location="src/windows/classes"/> -->
    65     </path>
    66     <property name="build.dir" location="${ant.file.modularize}/../build/modularize"/>
    67     <path id="boot">
    68         <fileset dir="${build.dir}">
    69             <include name="*.jar"/>
    70         </fileset>
    71     </path>
    72     <property name="test.dir" value="${ant.file.modularize}/../build/test"/>
    73 
    74     <!-- this is the core of the separation - definition
    75       of what classes belong into what compilation group.
    76     -->
    77     <selector id="applet">
    78         <and>
    79             <or>
    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/**"/>
    87                 -->
    88             </or>
    89             <none>
    90                 <filename name="java/applet/AudioClip*"/>
    91                 <filename name="sun/applet/AppletAudioClip*"/>
    92             </none>
    93         </and>
    94     </selector>
    95     <selector id="corba">
    96         <and>
    97             <or>
    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/**"/>
   130             </or>
   131             <none>
   132                 <selector refid="tools"/>
   133                 <selector refid="deprecated7"/>
   134             </none>
   135         </and>
   136     </selector>
   137     <!--
   138     <selector id="beans">
   139         <and>
   140             <or>
   141                 <filename name="java/beans/**"/>
   142                 <filename name="sun/beans/**"/>
   143                 <filename name="com/sun/beans/**"/>
   144             </or>
   145             <none>
   146                 <selector refid="applet"/>
   147                 <selector refid="deprecated7"/>
   148             </none>
   149         </and>
   150     </selector>
   151     -->
   152     
   153     <selector id="client">
   154         <and>
   155             <or>
   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/**"/>
   176                 
   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/**"/>
   185                 
   186                 <filename name="javax/xml/soap/**"/>
   187                 <filename name="javax/xml/bind/**"/>
   188                 <filename name="javax/xml/ws/**"/>
   189                 <filename name="javax/activation/**"/>
   190 
   191                 <filename name="sun/net/www/content/image/**"/>
   192 
   193                 <!--<filename name="com/sun/naming/internal/**"/>-->
   194 
   195                 <!-- input method has JFrame in signature -->
   196                 <filename name="sun/awt/im/**"/>
   197                 <filename name="sun/awt/X11/**"/>
   198 
   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"/>
   206             </or>
   207             <none>
   208                 <filename name="java/awt/AWTPermission*"/>
   209 
   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*"/>
   216 
   217                 <!-- remove classes from other modules -->
   218                 <selector refid="applet"/>
   219                 <selector refid="corba"/>
   220                 <selector refid="tools"/>
   221                 <selector refid="deprecated7"/>
   222             </none>
   223         </and>
   224     </selector>
   225 
   226     <selector id="xml">
   227         <and>
   228             <or>
   229                 <filename name="META-INF/services/sun.util.xml*"/>
   230 
   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/**"/>
   242 
   243                 <!-- SQL seems to have dependency on XML,
   244                     so including it here too for now
   245                 -->
   246                 <filename name="com/sun/rowset/**"/>
   247                 <filename name="java/sql/**"/>
   248                 <filename name="javax/sql/**"/>
   249             </or>
   250             <none>
   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"/>
   257             </none>
   258          </and>
   259     </selector>
   260 
   261     <selector id="tools">
   262         <or>
   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/**"/>
   269         </or>
   270     </selector>
   271 
   272     <selector id="deprecated7">
   273         <or>
   274             <!-- deprecated as it contains one method
   275             that references Applet
   276             -->
   277             <filename name="java/beans/Beans*"/>
   278             <!-- deprecated as it contains one method
   279             that references Applet
   280             -->
   281             <filename name="javax/swing/RepaintManager*"/>
   282         </or>
   283     </selector>
   284 
   285     <selector id="base">
   286         <none>
   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"/>
   294         <!--
   295             <selector refid="client"/>
   296             <selector refid="enterprise"/>
   297             <selector refid="deprecated7"/>
   298             -->
   299 
   300 
   301             <!-- non-important non-API things
   302                 which cannot be compiled easily
   303             -->
   304             <filename name="**/*-*"/>
   305             <filename name="java/dyn/**"/>
   306             <filename name="sun/dyn/**"/>
   307             
   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*"/>
   313         </none>
   314     </selector>
   315 
   316     <!-- individual compilation tasks -->
   317 
   318     <target name="deprecated7">
   319         <antcall target="-compile-one-module">
   320             <param name="module" value="deprecated7"/>
   321             <param name="depends" value="base:applet:client"/>
   322         </antcall>
   323     </target>
   324     <target name="applet">
   325         <antcall target="-compile-one-module">
   326             <param name="module" value="applet"/>
   327             <param name="depends" value="base:client"/>
   328         </antcall>
   329     </target>
   330     <!--
   331     <target name="beans">
   332         <antcall target="-compile-one-module">
   333             <param name="module" value="beans"/>
   334         </antcall>
   335     </target>
   336     -->
   337     <target name="client">
   338         <antcall target="-compile-one-module">
   339             <param name="module" value="client"/>
   340             <param name="depends" value="base"/>
   341         </antcall>
   342     </target>
   343     <target name="corba">
   344         <antcall target="-compile-one-module">
   345             <param name="module" value="corba"/>
   346             <param name="depends" value="base:client:applet"/>
   347         </antcall>
   348     </target>
   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"/>
   353         </antcall>
   354     </target>
   355     <target name="xml">
   356         <antcall target="-compile-one-module">
   357             <param name="module" value="xml"/>
   358             <param name="depends" value="base"/>
   359         </antcall>
   360     </target>
   361     <target name="base">
   362         <antcall target="-compile-one-module">
   363             <param name="module" value="base"/>
   364         </antcall>
   365     </target>
   366 
   367     <!-- basic sanity tests -->
   368     <target name="test">
   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"
   373         >
   374             <bootclasspath refid="boot"/>
   375         </javac>
   376         <javac srcdir="test/java/util/prefs/Preferences" destdir="${test.dir}"
   377             includeantruntime="false" includejavaruntime="false"
   378             debug="true" debuglevel="lines,vars,source"
   379         >
   380             <bootclasspath refid="boot"/>
   381         </javac>
   382 
   383         <java classname="XMLReadAndWriteTest" fork="true">
   384             <jvmarg value="-ea"/>
   385             <classpath>
   386                 <path refid="boot"/>
   387                 <pathelement location="${test.dir}"/>
   388             </classpath>
   389         </java>
   390         <java classname="XMLPreferencesTest" fork="true">
   391             <jvmarg value="-ea"/>
   392             <classpath>
   393                 <path refid="boot"/>
   394                 <pathelement location="${test.dir}"/>
   395             </classpath>
   396         </java>
   397     </target>
   398 
   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"/>
   405         </pathconvert>
   406         <jar
   407             basedir="${build.dir}/classes/${module}"
   408             destfile="${build.dir}/empty.jar"
   409             compress="false"
   410         >
   411             <exclude name="**"/>
   412         </jar>
   413         <javac
   414             bootclasspath="${build.dir}/empty.jar"
   415             sourcepath=""
   416             destdir="${build.dir}/classes/${module}"
   417             includejavaruntime="false"
   418             includeantruntime="false"
   419             classpath="${module.cp}:${plugs}/jre/lib/rt-closed.jar"
   420             debug="true"
   421             debuglevel="lines,vars,source"
   422         >
   423             <src refid="src.path"/>
   424             <and>
   425                 <selector refid="${module}"/>
   426                 <not><filename name="**/*-template.java"/></not>
   427             </and>
   428         </javac>
   429         <copy todir="${build.dir}/classes/${module}">
   430             <fileset dir="src/share/classes">
   431                 <and>
   432                     <selector refid="${module}"/>
   433                     <not>
   434                         <filename name="**/*.java"/>
   435                     </not>
   436                 </and>
   437             </fileset>
   438         </copy>
   439 
   440         <jar 
   441             basedir="${build.dir}/classes/${module}"
   442             destfile="${build.dir}/${module}.jar"
   443             compress="false"
   444         />
   445     </target>
   446 
   447     <!-- clean everything -->
   448     <target name="clean">
   449         <delete dir="${build.dir}"/>
   450     </target>
   451 </project>