This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 63541
Collapse All | Expand All

(-)apisupport/harness/build.xml (-6 / +4 lines)
Lines 15-24 Link Here
15
15
16
    <import file="../../nbbuild/templates/projectized.xml"/>
16
    <import file="../../nbbuild/templates/projectized.xml"/>
17
17
18
    <target name="common.xml" depends="init">
19
        <copy file="${nb_all}/nbbuild/templates/common.xml" tofile="${cluster}/common.xml"/>
20
    </target>
21
    
22
    <target name="nbantext" depends="init">
18
    <target name="nbantext" depends="init">
23
        <jar jarfile="${cluster}/tasks.jar" compress="${build.package.compress}" index="${build.package.index}">
19
        <jar jarfile="${cluster}/tasks.jar" compress="${build.package.compress}" index="${build.package.index}">
24
            <!-- XXX would be more maintainable to use depfind.sf.net / genjar.sf.net / sadun-util.sf.net/pack.html -->
20
            <!-- XXX would be more maintainable to use depfind.sf.net / genjar.sf.net / sadun-util.sf.net/pack.html -->
Lines 27-34 Link Here
27
        </jar>
23
        </jar>
28
    </target>
24
    </target>
29
25
30
    <target name="netbeans-extra" depends="common.xml,nbantext,jar-jnlp-launcher"/>
26
    <target name="netbeans-extra" depends="init,nbantext,jar-jnlp-launcher">
31
   
27
        <copy file="${nb_all}/nbbuild/templates/common.xml" tofile="${cluster}/common.xml"/>
28
        <copy file="${nb_all}/nbbuild/jdk.xml" tofile="${cluster}/jdk.xml"/>
29
    </target>
32
 
30
 
33
    <target name="compile-jnlp-launcher" depends="init,compile">
31
    <target name="compile-jnlp-launcher" depends="init,compile">
34
        <mkdir dir="build/jnlp-launcher-classes"/>
32
        <mkdir dir="build/jnlp-launcher-classes"/>
(-)apisupport/harness/manifest.mf (-1 / +1 lines)
Lines 1-5 Link Here
1
Manifest-Version: 1.0
1
Manifest-Version: 1.0
2
OpenIDE-Module: org.netbeans.modules.apisupport.harness
2
OpenIDE-Module: org.netbeans.modules.apisupport.harness
3
OpenIDE-Module-Specification-Version: 1.7
3
OpenIDE-Module-Specification-Version: 1.8
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/apisupport/harness/Bundle.properties
4
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/apisupport/harness/Bundle.properties
5
5
(-)apisupport/harness/nbproject/project.properties (+1 lines)
Lines 12-17 Link Here
12
extra.module.files=\
12
extra.module.files=\
13
    jnlp/jnlp-launcher.jar,\
13
    jnlp/jnlp-launcher.jar,\
14
    common.xml,\
14
    common.xml,\
15
    jdk.xml,\
15
    tasks.jar
16
    tasks.jar
16
17
17
# Just to keep it from being enabled (it does nothing as a module, and the cluster
18
# Just to keep it from being enabled (it does nothing as a module, and the cluster
(-)apisupport/harness/release/README (-1 / +21 lines)
Lines 550-555 Link Here
550
nbm.needs.restart - set to "true" if NBM cannot be installed (even for the first
550
nbm.needs.restart - set to "true" if NBM cannot be installed (even for the first
551
time) without restarting the IDE.
551
time) without restarting the IDE.
552
552
553
nbplatform.active - optional name of a NB platform to build and run against. See
554
discussion above for details of how this is used.
555
553
netbeans.dest.dir - absolute pathname of NB platform (or IDE or whatever) that
556
netbeans.dest.dir - absolute pathname of NB platform (or IDE or whatever) that
554
you are building your module against, and into which your module will be built.
557
you are building your module against, and into which your module will be built.
555
Available in project.properties (and in all properties files for netbeans.org
558
Available in project.properties (and in all properties files for netbeans.org
Lines 558-563 Link Here
558
netbeans.home - location of "platform*" cluster of the NetBeans IDE installation
561
netbeans.home - location of "platform*" cluster of the NetBeans IDE installation
559
you are running. *Only defined* when you run an Ant script *inside* the IDE.
562
you are running. *Only defined* when you run an Ant script *inside* the IDE.
560
563
564
nbjdk.active - name of a Java platform (JDK) to use when building and
565
running. Will try to load from ${user.properties.file} the properties
566
567
  ${platforms.${nbjdk.active}.home} - JDK (not JRE!) home directory
568
  ${platforms.${nbjdk.active}.bootclasspath} [optional] - JRE JARs, e.g. rt.jar
569
  ${platforms.${nbjdk.active}.java} [optional] - java executable
570
  ${platforms.${nbjdk.active}.javac} [optional] - javac executable
571
  ${platforms.${nbjdk.active}.javadoc} [optional] - javadoc executable
572
573
if they are not already defined. Uses <presetdef> to make <java>, <javac>,
574
<javadoc>, <junit>, and <nbjpdastart> use this JDK. Optional; if unset, will use
575
the current VM's Java platform instead. Will do the same if platform is defined
576
but invalid, after issuing a warning. Define in platform.properties (in a
577
standalone module, or in the suite for a suite component module). Alternately,
578
you may define just ${nbjdk.home} directly, without ${nbjdk.active}.
579
561
release.dir - "${basedir}/release"; location of a directory full of files to
580
release.dir - "${basedir}/release"; location of a directory full of files to
562
copy unmodified to the output cluster.
581
copy unmodified to the output cluster.
563
582
Lines 570-576 Link Here
570
run.args.extra - empty; any added arguments to pass to the launcher.
589
run.args.extra - empty; any added arguments to pass to the launcher.
571
590
572
run.jdkhome - location of JDK to run application with for interactive testing.
591
run.jdkhome - location of JDK to run application with for interactive testing.
573
Defaults to JDK the Ant script was using.
592
Defaults to JDK the Ant script was using, or that selected by ${nbjdk.active}.
593
DEPRECATED - for compatibility only. Use ${nbjdk.active} instead.
574
594
575
spec.version.base - this is a little subtle. If you export an implementation
595
spec.version.base - this is a little subtle. If you export an implementation
576
dependency to other modules, *and/or* depend on one or more other modules using
596
dependency to other modules, *and/or* depend on one or more other modules using
(-)apisupport/harness/release/build.xml (-3 / +4 lines)
Lines 14-19 Link Here
14
<project name="harness" basedir="." default="netbeans">
14
<project name="harness" basedir="." default="netbeans">
15
15
16
    <import file="common.xml"/>
16
    <import file="common.xml"/>
17
    <import file="jdk.xml"/>
17
    
18
    
18
    <target name="taskdefs" unless="harness.taskdefs.done">
19
    <target name="taskdefs" unless="harness.taskdefs.done">
19
        <dirname property="harness.dir" file="${harness.file}"/>
20
        <dirname property="harness.dir" file="${harness.file}"/>
Lines 40-46 Link Here
40
        <echo file="${license.file}">[NO LICENSE SPECIFIED]</echo>
41
        <echo file="${license.file}">[NO LICENSE SPECIFIED]</echo>
41
    </target>
42
    </target>
42
43
43
    <target name="build-init" depends="basic-init,nbm-license-init">
44
    <target name="build-init" depends="basic-init,-jdk-init,nbm-license-init">
44
        <!-- Similar to projectized.xml but does not try to set NBM homepage/distribution, nor is javahelp.excludes predefined, but javadoc.title is defaulted. -->
45
        <!-- Similar to projectized.xml but does not try to set NBM homepage/distribution, nor is javahelp.excludes predefined, but javadoc.title is defaulted. -->
45
        <parseprojectxml project="." publicpackagesproperty="public.packages" friendsproperty="friends" javadocpackagesproperty="module.javadoc.packages" idedependenciesproperty="ide.dependencies" moduledependenciesproperty="module.dependencies" moduleclasspathproperty="module.classpath" classpathextensionsproperty="class.path.extensions"/>
46
        <parseprojectxml project="." publicpackagesproperty="public.packages" friendsproperty="friends" javadocpackagesproperty="module.javadoc.packages" idedependenciesproperty="ide.dependencies" moduledependenciesproperty="module.dependencies" moduleclasspathproperty="module.classpath" classpathextensionsproperty="class.path.extensions"/>
46
        <condition property="is.regular">
47
        <condition property="is.regular">
Lines 148-158 Link Here
148
        <ant antfile="${harness.dir}/run.xml" target="run"/>
149
        <ant antfile="${harness.dir}/run.xml" target="run"/>
149
    </target>
150
    </target>
150
151
151
    <target name="profile" depends="netbeans" >
152
    <target name="profile" depends="netbeans,-jdk-presetdef-nbprofiledirect">
152
        <ant antfile="${harness.dir}/run.xml" target="profile"/>
153
        <ant antfile="${harness.dir}/run.xml" target="profile"/>
153
    </target>
154
    </target>
154
    
155
    
155
    <target name="debug" depends="netbeans">
156
    <target name="debug" depends="netbeans,-jdk-presetdef-nbjpdastart">
156
        <ant antfile="${harness.dir}/run.xml" target="debug"/>
157
        <ant antfile="${harness.dir}/run.xml" target="debug"/>
157
    </target>
158
    </target>
158
    
159
    
(-)apisupport/harness/release/jnlp.xml (-3 / +6 lines)
Lines 110-116 Link Here
110
            depends="build-jnlp-nowar"
110
            depends="build-jnlp-nowar"
111
            description="Build JNLP files and signed JARs for all modules in the suite."
111
            description="Build JNLP files and signed JARs for all modules in the suite."
112
    >
112
    >
113
        <property name="jnlp.servlet.jar" location="${java.home}/../sample/jnlp/servlet/jnlp-servlet.jar"/>
113
        <property name="jnlp.servlet.jar" location="${nbjdk.home}/sample/jnlp/servlet/jnlp-servlet.jar"/>
114
        <fail message="Point -Djnlp.servlet.jar to your jnlp-servlet.jar, usually in $$JDKHOME/sample/jnlp/servlet/jnlp-servlet.jar">
114
        <fail message="Point -Djnlp.servlet.jar to your jnlp-servlet.jar, usually in $$JDKHOME/sample/jnlp/servlet/jnlp-servlet.jar">
115
            <condition>
115
            <condition>
116
                <not>
116
                <not>
Lines 250-257 Link Here
250
    </target>
250
    </target>
251
    
251
    
252
    <target name="run" depends="build-jnlp-local" description="Executes this suite as JNLP application">
252
    <target name="run" depends="build-jnlp-local" description="Executes this suite as JNLP application">
253
        <condition property="run.javaws" value="${java.home}/javaws/javaws">
253
        <condition property="run.javaws" value="${nbjdk.home}/jre/javaws/javaws">
254
            <available file="${java.home}/javaws/javaws"/>
254
            <available file="${nbjdk.home}/jre/javaws/javaws"/>
255
        </condition>
256
        <condition property="run.javaws" value="${nbjdk.home}/javaws/javaws">
257
            <available file="${nbjdk.home}/javaws/javaws"/>
255
        </condition>
258
        </condition>
256
        <property name="run.javaws" value="javaws"/>
259
        <property name="run.javaws" value="javaws"/>
257
        <property name="run.args" value=""/>
260
        <property name="run.args" value=""/>
(-)apisupport/harness/release/run.xml (-1 / +2 lines)
Lines 14-20 Link Here
14
<project name="run" basedir=".">
14
<project name="run" basedir=".">
15
15
16
    <target name="-init">
16
    <target name="-init">
17
        <property name="run.jdkhome" location="${java.home}/.."/>
17
        <property name="run.jdkhome" location="${nbjdk.home}"/>
18
        <condition property="test.user.dir" value="${suite.dir}/build/testuserdir">
18
        <condition property="test.user.dir" value="${suite.dir}/build/testuserdir">
19
            <isset property="suite.dir"/>
19
            <isset property="suite.dir"/>
20
        </condition>
20
        </condition>
Lines 118-123 Link Here
118
        <exec os="Mac OS X" dir="." executable="sh" failonerror="yes">
118
        <exec os="Mac OS X" dir="." executable="sh" failonerror="yes">
119
            <arg value="${run.sh}"/>
119
            <arg value="${run.sh}"/>
120
            <arg value="--jdkhome"/>
120
            <arg value="--jdkhome"/>
121
            <!-- XXX why does ${run.jdkhome} not work? -->
121
            <arg file="/Library/Java/Home"/>
122
            <arg file="/Library/Java/Home"/>
122
            <arg line="${run.args.common}"/>
123
            <arg line="${run.args.common}"/>
123
            <arg line="${run.args.prepared}"/>
124
            <arg line="${run.args.prepared}"/>
(-)apisupport/harness/release/suite.xml (-6 / +8 lines)
Lines 13-18 Link Here
13
-->
13
-->
14
<project name="suite" basedir=".">
14
<project name="suite" basedir=".">
15
15
16
    <import file="jdk.xml"/>
17
    
16
    <target name="-taskdefs" unless="harness.taskdefs.done">
18
    <target name="-taskdefs" unless="harness.taskdefs.done">
17
        <dirname property="harness.dir" file="${suite.file}"/>
19
        <dirname property="harness.dir" file="${suite.file}"/>
18
        <echo level="verbose">Using build harness in ${harness.dir}</echo>
20
        <echo level="verbose">Using build harness in ${harness.dir}</echo>
Lines 159-185 Link Here
159
        <branding cluster="${cluster}" overrides="${branding.dir}" token="${branding.token}"/>
161
        <branding cluster="${cluster}" overrides="${branding.dir}" token="${branding.token}"/>
160
    </target>
162
    </target>
161
163
162
    <target name="run" depends="build" description="Runs this suite in place.">
164
    <target name="run" depends="build,-jdk-init" description="Runs this suite in place.">
163
        <ant antfile="${harness.dir}/run.xml" target="run"/>
165
        <ant antfile="${harness.dir}/run.xml" target="run"/>
164
    </target>
166
    </target>
165
        
167
        
166
    <target name="debug" depends="build" description="Runs this suite in place in the debugger.">
168
    <target name="debug" depends="build,-jdk-init,-jdk-presetdef-nbjpdastart" description="Runs this suite in place in the debugger.">
167
        <ant antfile="${harness.dir}/run.xml" target="debug"/>
169
        <ant antfile="${harness.dir}/run.xml" target="debug"/>
168
    </target>
170
    </target>
169
171
170
    <target name="profile" depends="build" description="Runs this suite in place in the profiler.">
172
    <target name="profile" depends="build,-jdk-init,-jdk-presetdef-nbprofiledirect" description="Runs this suite in place in the profiler.">
171
        <ant antfile="${harness.dir}/run.xml" target="profile"/>
173
        <ant antfile="${harness.dir}/run.xml" target="profile"/>
172
    </target>
174
    </target>
173
    
175
    
174
    <target name="build-jnlp" depends="build" description="Packages this suite as a JNLP application.">
176
    <target name="build-jnlp" depends="build,-jdk-init" description="Packages this suite as a JNLP application.">
175
        <ant antfile="${harness.dir}/jnlp.xml" target="build"/>
177
        <ant antfile="${harness.dir}/jnlp.xml" target="build"/>
176
    </target>
178
    </target>
177
    
179
    
178
    <target name="run-jnlp" depends="build" description="Runs this suite as a JNLP application.">
180
    <target name="run-jnlp" depends="build,-jdk-init" description="Runs this suite as a JNLP application.">
179
        <ant antfile="${harness.dir}/jnlp.xml" target="run"/>
181
        <ant antfile="${harness.dir}/jnlp.xml" target="run"/>
180
    </target>
182
    </target>
181
    
183
    
182
    <target name="debug-jnlp" depends="build" description="Runs this suite as a JNLP application in the debugger.">
184
    <target name="debug-jnlp" depends="build,-jdk-init,-jdk-presetdef-nbjpdastart" description="Runs this suite as a JNLP application in the debugger.">
183
        <ant antfile="${harness.dir}/jnlp.xml" target="debug"/>
185
        <ant antfile="${harness.dir}/jnlp.xml" target="debug"/>
184
    </target>
186
    </target>
185
    
187
    
(-)nbbuild/build.xml (-42 / +18 lines)
Lines 29-61 Link Here
29
29
30
  <target name="assure-ant">
30
  <target name="assure-ant">
31
      <condition property="ant.version.is.good">
31
      <condition property="ant.version.is.good">
32
          <!-- this is in 1.6 only -->
32
          <!-- this is in 1.6.3 only -->
33
          <available classname="org.apache.tools.ant.util.FileUtils"/>
33
          <!-- actually needed for 'executable' attr on <javadoc>, at least -->
34
          <available classname="org.apache.tools.ant.types.mappers.FilterMapper"/>
34
    </condition>
35
    </condition>
35
    <fail unless="ant.version.is.good">
36
    <fail unless="ant.version.is.good">
36
        You need to have ant 1.6 at least to build NetBeans.
37
        You need to have ant 1.6.3 at least to build NetBeans.
37
    </fail>
38
    </fail>
38
  </target>
39
  </target>
39
  
40
  
40
  <target name="check-for-jdk-1.4">
41
    <available property="have-jdk-1.4" classname="java.lang.CharSequence"/>
42
    <available property="have-jdk-1.5" classname="java.lang.StringBuilder"/>
43
  </target>
44
  <target name="assure-jdk-1.4" depends="check-for-jdk-1.4" unless="have-jdk-1.4">
45
    <fail>You need JDK 1.4 or higher to build NetBeans.</fail>
46
  </target>
47
48
  <target name="bootstrap"
41
  <target name="bootstrap"
49
          description="Bootstrap NetBeans-specific Ant extensions."
42
          description="Bootstrap NetBeans-specific Ant extensions."
50
          depends="assure-jdk-1.4,assure-ant">
43
          depends="-jdk-init,-assure-jdk-1.4,assure-ant">
51
    <!-- First things first: read the user's and/or -->
52
    <!-- the site's build properties files.         -->
53
    <property file="user.build.properties"/>
54
    <property file="site.build.properties"/>
55
    
56
    <!-- Now read the standard properties file. -->
57
    <property file="build.properties"/>
44
    <property file="build.properties"/>
58
59
    <echo message="Bootstrapping NetBeans-specific Ant extensions..."/>
45
    <echo message="Bootstrapping NetBeans-specific Ant extensions..."/>
60
    <property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
46
    <property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
61
    <path id="bootstrap-cp">
47
    <path id="bootstrap-cp">
Lines 97-103 Link Here
97
    </jar>
83
    </jar>
98
  </target>
84
  </target>
99
85
100
  <target name="init-module-list" depends="bootstrap,setup-jdkhome">
86
  <target name="init-module-list" depends="bootstrap">
101
    <!-- Define modules. -->
87
    <!-- Define modules. -->
102
    <resolve name="modules" value="config.modules.${moduleconfig}"/>
88
    <resolve name="modules" value="config.modules.${moduleconfig}"/>
103
    <resolve name="fixedmodules" value="config.fixedmodules.${moduleconfig}"/>
89
    <resolve name="fixedmodules" value="config.fixedmodules.${moduleconfig}"/>
Lines 424-431 Link Here
424
    <echo message="Starting a build for NetBeans (build ${buildnum}, config '${moduleconfig}') ..."/>
410
    <echo message="Starting a build for NetBeans (build ${buildnum}, config '${moduleconfig}') ..."/>
425
    <echo message="Selected modules: ${modules}"/>
411
    <echo message="Selected modules: ${modules}"/>
426
    <echo message="OS: ${os.name} ${os.version}  Locale: ${user.language}_${user.region}"/>
412
    <echo message="OS: ${os.name} ${os.version}  Locale: ${user.language}_${user.region}"/>
427
    <echo message="Java: ${java.vendor} ${java.version} in ${java.home}; for NetBeans: ${jdkhome}"/>
413
    <echo message="Java: ${nbjdk.home}"/>
428
    <echo message="Classpath: ${java.class.path}"/>
429
  </target>
414
  </target>
430
  
415
  
431
  <!-- Use of nbmerge target has the effect of automatically depending on all-X for every module. -->
416
  <!-- Use of nbmerge target has the effect of automatically depending on all-X for every module. -->
Lines 756-762 Link Here
756
      <fail>Will not delete ${test.user.dir} because ${test.user.dir.lock} still exists; kill any running process and delete lock file if necessary</fail>
741
      <fail>Will not delete ${test.user.dir} because ${test.user.dir.lock} still exists; kill any running process and delete lock file if necessary</fail>
757
    </target>
742
    </target>
758
  <target name="testuserdir-delete" depends="-testuserdir-delete-ok,-testuserdir-delete-fail"/>
743
  <target name="testuserdir-delete" depends="-testuserdir-delete-ok,-testuserdir-delete-fail"/>
759
  <target name="sanity-start" depends="init,maybe-build-nozip">
744
  <target name="sanity-start" depends="init,maybe-build-nozip,-jdk-init">
760
    <mkdir dir="${test.user.dir}"/>
745
    <mkdir dir="${test.user.dir}"/>
761
    <echo>Starting the IDE as a sanity check...</echo>
746
    <echo>Starting the IDE as a sanity check...</echo>
762
    <echo>WARNING - the sanity-start target is deprecated. Use commit-validation instead.</echo>
747
    <echo>WARNING - the sanity-start target is deprecated. Use commit-validation instead.</echo>
Lines 766-772 Link Here
766
    <!-- a deadlock from hanging an automated build: -->
751
    <!-- a deadlock from hanging an automated build: -->
767
    <exec os="Windows NT Windows 95 Windows 98 Windows 2000 Windows 2003 Windows XP" executable="${netbeans.dest.abs}/bin/nb.exe" failonerror="yes" timeout="600000">
752
    <exec os="Windows NT Windows 95 Windows 98 Windows 2000 Windows 2003 Windows XP" executable="${netbeans.dest.abs}/bin/nb.exe" failonerror="yes" timeout="600000">
768
      <arg value="--jdkhome"/>
753
      <arg value="--jdkhome"/>
769
      <arg file="${jdkhome}"/>
754
      <arg file="${nbjdk.home}"/>
770
      <arg value="--userdir"/>
755
      <arg value="--userdir"/>
771
      <arg file="${test.user.dir}"/>
756
      <arg file="${test.user.dir}"/>
772
      <arg line="${sanitystart.args}"/>
757
      <arg line="${sanitystart.args}"/>
Lines 774-780 Link Here
774
    <exec os="Linux SunOS Solaris Mac OS X" dir="." executable="sh" failonerror="yes" timeout="600000">
759
    <exec os="Linux SunOS Solaris Mac OS X" dir="." executable="sh" failonerror="yes" timeout="600000">
775
      <arg value="${netbeans.dest.abs}/bin/netbeans"/>
760
      <arg value="${netbeans.dest.abs}/bin/netbeans"/>
776
      <arg value="--jdkhome"/>
761
      <arg value="--jdkhome"/>
777
      <arg file="${jdkhome}"/>
762
      <arg file="${nbjdk.home}"/>
778
      <arg value="--userdir"/>
763
      <arg value="--userdir"/>
779
      <arg file="${test.user.dir}"/>
764
      <arg file="${test.user.dir}"/>
780
      <arg line="${sanitystart.args}"/>
765
      <arg line="${sanitystart.args}"/>
Lines 801-807 Link Here
801
    <property name="tryme.debug.args" value="-J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,suspend=${debug.pause},server=${debug.server},address=${debug.port}" />
786
    <property name="tryme.debug.args" value="-J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,suspend=${debug.pause},server=${debug.server},address=${debug.port}" />
802
  </target>
787
  </target>
803
          
788
          
804
  <target name="tryme-debug" description="Start IDE in debugger. May only be called from within IDE.">
789
  <target name="tryme-debug" depends="-jdk-presetdef-nbjpdastart" description="Start IDE in debugger. May only be called from within IDE.">
805
    <nbjpdastart name="NetBeans" addressproperty="debug.port" transport="dt_socket">
790
    <nbjpdastart name="NetBeans" addressproperty="debug.port" transport="dt_socket">
806
      <classpath>
791
      <classpath>
807
        <fileset dir="${netbeans.dest.dir}">
792
        <fileset dir="${netbeans.dest.dir}">
Lines 813-819 Link Here
813
    <antcall target="tryme"/>
798
    <antcall target="tryme"/>
814
  </target>
799
  </target>
815
    
800
    
816
  <target name="tryme-profile" description="Start IDE in debugger. May only be called from within IDE.">
801
  <target name="tryme-profile" depends="-jdk-presetdef-nbprofiledirect" description="Start IDE in debugger. May only be called from within IDE.">
817
    <property name="profiler.roots.path" value="profiler.roots.all" />
802
    <property name="profiler.roots.path" value="profiler.roots.all" />
818
    <fileset id="profiler.roots.all" dir="${netbeans.dest.dir}">
803
    <fileset id="profiler.roots.all" dir="${netbeans.dest.dir}">
819
        <include name="**/*.jar"/>
804
        <include name="**/*.jar"/>
Lines 838-844 Link Here
838
    </antcall>
823
    </antcall>
839
  </target>
824
  </target>
840
  
825
  
841
  <target name="tryme" depends="init,maybe-build-nozip,tryme-setup-debug-args"
826
  <target name="tryme" depends="init,maybe-build-nozip,tryme-setup-debug-args,-jdk-init"
842
          description="Try running the IDE interactively (build it first if needed).
827
          description="Try running the IDE interactively (build it first if needed).
843
It is possible to use -Ddebug.port=3234 -Ddebug.pause=y to start the system in debug mode" 
828
It is possible to use -Ddebug.port=3234 -Ddebug.pause=y to start the system in debug mode" 
844
   >
829
   >
Lines 846-870 Link Here
846
  
831
  
847
    <exec os="Windows NT Windows 95 Windows 98 Windows 2000 Windows 2003 Windows XP" executable="${netbeans.dest.abs}/bin/nb.exe" failonerror="yes">
832
    <exec os="Windows NT Windows 95 Windows 98 Windows 2000 Windows 2003 Windows XP" executable="${netbeans.dest.abs}/bin/nb.exe" failonerror="yes">
848
      <arg value="--jdkhome"/>
833
      <arg value="--jdkhome"/>
849
      <arg file="${jdkhome}"/>
834
      <arg file="${nbjdk.home}"/>
850
      <arg value="--userdir"/>
851
      <arg file="${test.user.dir}"/>
852
      <arg line="${tryme.args}"/>
853
      <arg line="${tryme.debug.args}" />
854
    </exec>
855
    <exec os="Linux SunOS Solaris" dir="." executable="sh" failonerror="yes">
856
      <arg value="${netbeans.dest}/bin/netbeans"/>
857
      <arg value="--jdkhome"/>
858
      <arg file="${jdkhome}"/>
859
      <arg value="--userdir"/>
835
      <arg value="--userdir"/>
860
      <arg file="${test.user.dir}"/>
836
      <arg file="${test.user.dir}"/>
861
      <arg line="${tryme.args}"/>
837
      <arg line="${tryme.args}"/>
862
      <arg line="${tryme.debug.args}" />
838
      <arg line="${tryme.debug.args}" />
863
    </exec>
839
    </exec>
864
    <exec os="Mac OS X" dir="." executable="sh" failonerror="yes">
840
    <exec os="Linux SunOS Solaris Mac OS X" dir="." executable="sh" failonerror="yes">
865
      <arg value="${netbeans.dest}/bin/netbeans"/>
841
      <arg value="${netbeans.dest}/bin/netbeans"/>
866
      <arg value="--jdkhome"/>
842
      <arg value="--jdkhome"/>
867
      <arg file="/Library/Java/Home"/>
843
      <arg file="${nbjdk.home}"/>
868
      <arg value="--userdir"/>
844
      <arg value="--userdir"/>
869
      <arg file="${test.user.dir}"/>
845
      <arg file="${test.user.dir}"/>
870
      <arg line="${tryme.args}"/>
846
      <arg line="${tryme.args}"/>
Lines 985-991 Link Here
985
    <ant dir="test" target="runtests"/>
961
    <ant dir="test" target="runtests"/>
986
    <nbbrowse file="test/results/index.html"/>
962
    <nbbrowse file="test/results/index.html"/>
987
  </target>
963
  </target>
988
  <target name="localtest-single-nb-debug" depends="bootstrap">
964
  <target name="localtest-single-nb-debug" depends="bootstrap,-jdk-presetdef-nbjpdastart">
989
    <property name="unit.test.base" location="test/unit/src"/>
965
    <property name="unit.test.base" location="test/unit/src"/>
990
    <pathconvert property="xtest.includes" pathsep=",">
966
    <pathconvert property="xtest.includes" pathsep=",">
991
        <path path="${includes}"/>
967
        <path path="${includes}"/>
Lines 1419-1425 Link Here
1419
    </fail>
1395
    </fail>
1420
  </target>
1396
  </target>
1421
  
1397
  
1422
  <target name="check-shared-packages" depends="generate-golden-files" unless="have-jdk-1.5" >
1398
  <target name="check-shared-packages" depends="generate-golden-files,-jdk-init" unless="have-jdk-1.5" >
1423
    <property name="check.shared.packages.golden" location="${golden.files.dir}/shared-packages.txt" />
1399
    <property name="check.shared.packages.golden" location="${golden.files.dir}/shared-packages.txt" />
1424
    <property name="check.shared.packages.template" location="${template.files.dir}/shared-packages.txt" />
1400
    <property name="check.shared.packages.template" location="${template.files.dir}/shared-packages.txt" />
1425
    <property name="check.shared.packages.generated" location="${generated.files.dir}/shared-packages.txt" />
1401
    <property name="check.shared.packages.generated" location="${generated.files.dir}/shared-packages.txt" />
(-)nbbuild/default-properties.xml (+5 lines)
Lines 28-31 Link Here
28
28
29
  <property file="${clusters.list.file}"/>
29
  <property file="${clusters.list.file}"/>
30
  <property file="${moduleCluster.file}"/>
30
  <property file="${moduleCluster.file}"/>
31
32
  <!-- Have to be read here, so that they will affect even module builds (e.g. when setting JDK): -->
33
  <property file="${nb_all}/nbbuild/user.build.properties"/>
34
  <property file="${nb_all}/nbbuild/site.build.properties"/>
35
  
31
</project>
36
</project>
(-)nbbuild/default.xml (-27 / +2 lines)
Lines 13-18 Link Here
13
-->
13
-->
14
<project name="default" default="init" basedir=".">
14
<project name="default" default="init" basedir=".">
15
  <import file="default-properties.xml"/>
15
  <import file="default-properties.xml"/>
16
  <import file="jdk.xml"/>
16
17
17
  <target name="init-tasks" unless="tasks-already-set">
18
  <target name="init-tasks" unless="tasks-already-set">
18
    <taskdef name="jhindexer"
19
    <taskdef name="jhindexer"
Lines 63-69 Link Here
63
    <property name="tasks-already-set" value="true"/>
64
    <property name="tasks-already-set" value="true"/>
64
  </target>
65
  </target>
65
  
66
  
66
  <target name="init" depends="init-tasks,setup-jdkhome">
67
  <target name="init" depends="init-tasks">
67
    <!-- Gets the module name -->
68
    <!-- Gets the module name -->
68
    <getmodulename name="module.name" root="${nb_all}"/>
69
    <getmodulename name="module.name" root="${nb_all}"/>
69
    
70
    
Lines 80-110 Link Here
80
      <entry  key="${module.name}.dir" value="$${netbeans.dest.dir}/${cluster.dir}"/>
81
      <entry  key="${module.name}.dir" value="$${netbeans.dest.dir}/${cluster.dir}"/>
81
    </propertyfile>
82
    </propertyfile>
82
  </target>
83
  </target>
83
84
  <target name="setup-jdkhome-1">
85
    <!-- Note: user-configured -Djavahome=... will always override this: -->
86
    <property name="javahome" location="${java.home}"/>
87
    <condition property="jdkhome" value="${javahome}">
88
        <or>
89
            <available file="${javahome}/lib/tools.jar"/>
90
            <!-- on Mac -->
91
            <available file="${javahome}/../Classes/classes.jar"/>
92
        </or>
93
    </condition>
94
  </target>
95
  
84
  
96
  <target name="setup-jdkhome-2" unless="jdkhome">
97
    <property name="javahomeParent" location="${java.home}/.."/>
98
    <condition property="jdkhome" value="${javahomeParent}">
99
        <or>
100
            <available file="${javahomeParent}/lib/tools.jar"/>
101
            <!-- on Mac -->
102
            <available file="${javahomeParent}/../Classes/classes.jar"/>
103
        </or>
104
    </condition>
105
  </target>
106
107
  <target name="setup-jdkhome" depends="setup-jdkhome-1,setup-jdkhome-2" unless="jdkhome">
108
    <fail message="No tools.jar or classes.jar found in ${javahome}! Set -Djavahome=... as needed."/>
109
  </target>
110
</project>
85
</project>
(-)nbbuild/jdk.xml (+141 lines)
Added Link Here
1
<?xml version="1.0" encoding="UTF-8"?>
2
<!--
3
                Sun Public License Notice
4
5
The contents of this file are subject to the Sun Public License
6
Version 1.0 (the "License"). You may not use this file except in
7
compliance with the License. A copy of the License is available at
8
http://www.sun.com/
9
10
The Original Code is NetBeans. The Initial Developer of the Original
11
Code is Sun Microsystems, Inc. Portions Copyright 1997-2005 Sun
12
Microsystems, Inc. All Rights Reserved.
13
-->
14
<project name="jdk" basedir=".">
15
    
16
    <target name="-jdk-pre-preinit">
17
        <condition property="nbjdk.active-or-nbjdk.home">
18
            <or>
19
                <isset property="nbjdk.active"/>
20
                <isset property="nbjdk.home"/>
21
            </or>
22
        </condition>
23
    </target>
24
25
    <target name="-jdk-preinit" depends="-jdk-pre-preinit" if="nbjdk.active-or-nbjdk.home" xmlns:common="http://nbbuild.netbeans.org/jdk.xml">
26
        <macrodef name="property" uri="http://nbbuild.netbeans.org/jdk.xml">
27
            <attribute name="name"/>
28
            <attribute name="value"/>
29
            <sequential>
30
                <property name="@{name}" value="${@{value}}"/>
31
            </sequential>
32
        </macrodef>
33
        <common:property name="nbjdk.home" value="platforms.${nbjdk.active}.home"/>
34
        <common:property name="nbjdk.javac.tmp" value="platforms.${nbjdk.active}.javac"/>
35
        <condition property="nbjdk.javac" value="${nbjdk.home}/bin/javac">
36
            <equals arg1="${nbjdk.javac.tmp}" arg2="$${platforms.${nbjdk.active}.javac}"/>
37
        </condition>
38
        <property name="nbjdk.javac" value="${nbjdk.javac.tmp}"/>
39
        <common:property name="nbjdk.java.tmp" value="platforms.${nbjdk.active}.java"/>
40
        <condition property="nbjdk.java" value="${nbjdk.home}/bin/java">
41
            <equals arg1="${nbjdk.java.tmp}" arg2="$${platforms.${nbjdk.active}.java}"/>
42
        </condition>
43
        <property name="nbjdk.java" value="${nbjdk.java.tmp}"/>
44
        <common:property name="nbjdk.javadoc.tmp" value="platforms.${nbjdk.active}.javadoc"/>
45
        <condition property="nbjdk.javadoc" value="${nbjdk.home}/bin/javadoc">
46
            <equals arg1="${nbjdk.javadoc.tmp}" arg2="$${platforms.${nbjdk.active}.javadoc}"/>
47
        </condition>
48
        <property name="nbjdk.javadoc" value="${nbjdk.javadoc.tmp}"/>
49
        <common:property name="nbjdk.bootclasspath.tmp" value="platforms.${nbjdk.active}.bootclasspath"/>
50
        <condition property="nbjdk.bootclasspath" value="${nbjdk.home}/jre/lib/rt.jar">
51
            <equals arg1="${nbjdk.bootclasspath.tmp}" arg2="$${platforms.${nbjdk.active}.bootclasspath}"/>
52
        </condition>
53
        <property name="nbjdk.bootclasspath" value="${nbjdk.bootclasspath.tmp}"/>
54
        <condition property="nbjdk.valid">
55
            <and>
56
                <available file="${nbjdk.home}" type="dir"/>
57
                <available file="${nbjdk.javac}" type="file"/>
58
                <available file="${nbjdk.java}" type="file"/>
59
                <available file="${nbjdk.javadoc}" type="file"/>
60
                <!-- XXX probably cannot use <available resource="..." classpath="${nbjdk.bootclasspath}"/> since would always find it in this VM -->
61
            </and>
62
        </condition>
63
        <!-- Cannot use classname="...": "SecurityException: Prohibited package name: java.lang" from ClassLoader.defineClass from AntClassLoader2.defineClassFromData -->
64
        <!-- XXX will match spuriously if host JDK is newer than target JDK -->
65
        <available property="have-jdk-1.4" resource="java/lang/CharSequence.class" classpath="${nbjdk.bootclasspath}"/>
66
        <available property="have-jdk-1.5" resource="java/lang/StringBuilder.class" classpath="${nbjdk.bootclasspath}"/>
67
        <echo level="verbose">nbjdk.active=${nbjdk.active} nbjdk.home=${nbjdk.home} nbjdk.java=${nbjdk.java} nbjdk.javac=${nbjdk.javac} nbjdk.javadoc=${nbjdk.javadoc} nbjdk.bootclasspath=${nbjdk.bootclasspath} nbjdk.valid=${nbjdk.valid} have-jdk-1.4=${have-jdk-1.4} have-jdk-1.5=${have-jdk-1.5}</echo>
68
    </target>
69
70
    <target name="-jdk-warn" depends="-jdk-preinit" if="nbjdk.active-or-nbjdk.home" unless="nbjdk.valid">
71
        <property name="jdkhome.presumed" location="${java.home}/.."/>
72
        <echo level="warning">Warning: nbjdk.active=${nbjdk.active} is an invalid Java platform; ignoring and using ${jdkhome.presumed}</echo>
73
    </target>
74
    
75
    <target name="-jdk-presetdef-basic" depends="-jdk-preinit" if="nbjdk.valid">
76
        <presetdef name="javac">
77
            <javac fork="yes" executable="${nbjdk.javac}"/>
78
        </presetdef>
79
        <presetdef name="java">
80
            <java jvm="${nbjdk.java}"/>
81
        </presetdef>
82
        <presetdef name="javadoc">
83
            <javadoc executable="${nbjdk.javadoc}"/>
84
        </presetdef>
85
        <presetdef name="junit">
86
            <junit jvm="${nbjdk.java}"/>
87
        </presetdef>
88
    </target>
89
    
90
    <target name="-jdk-presetdef-nbjpdastart" depends="-jdk-preinit" if="nbjdk.valid">
91
        <presetdef name="nbjpdastart">
92
            <nbjpdastart>
93
                <bootclasspath>
94
                    <path path="${nbjdk.bootclasspath}"/>
95
                </bootclasspath>
96
            </nbjpdastart>
97
        </presetdef>
98
    </target>
99
    
100
    <target name="-jdk-presetdef-nbprofiledirect" depends="-jdk-preinit" if="nbjdk.valid">
101
        <!-- XXX disable for now, but could be considered:
102
        <presetdef name="nbprofiledirect">
103
            <nbprofiledirect jvmproperty="${nbjdk.java}"/>
104
        </presetdef>
105
        -->
106
    </target>
107
    
108
    <target name="-jdk-default" unless="nbjdk.active-or-nbjdk.home">
109
        <!-- Define fallback values of some things. -->
110
        <property name="java.home.parent" location="${java.home}/.."/>
111
        <condition property="nbjdk.home" value="${java.home.parent}">
112
            <available file="${java.home.parent}/lib/tools.jar" type="file"/>
113
        </condition>
114
        <condition property="nbjdk.home" value="${java.home}">
115
            <available file="${java.home}/lib/tools.jar" type="file"/>
116
        </condition>
117
        <!-- Mac OS X -->
118
        <condition property="nbjdk.home" value="/Library/Java/Home">
119
            <available file="/Library/Java/Home" type="dir"/>
120
        </condition>
121
        <!-- Fallback? -->
122
        <property name="nbjdk.home" location="${java.home.parent}"/>
123
        <available property="have-jdk-1.4" classname="java.lang.CharSequence"/>
124
        <available property="have-jdk-1.5" classname="java.lang.StringBuilder"/>
125
    </target>
126
127
    <target name="-jdk-init" depends="-jdk-preinit,-jdk-warn,-jdk-presetdef-basic,-jdk-default">
128
        <!-- Will be bogus on Mac OS X, but doesn't matter - Classes/classes.jar should have this anyway -->
129
        <property name="tools.jar" location="${nbjdk.home}/lib/tools.jar"/>
130
        <!--<echo level="info">Using JDK: ${nbjdk.home}</echo>-->
131
    </target>
132
    
133
    <target name="-assure-jdk-1.4" depends="-jdk-init" unless="have-jdk-1.4">
134
        <fail>You need JDK 1.4 or higher to build NetBeans.</fail>
135
    </target>
136
137
    <target name="-assure-jdk-1.5" depends="-jdk-init" unless="have-jdk-1.5">
138
        <fail>You need JDK 1.5 or higher to build NetBeans.</fail>
139
    </target>
140
141
</project>
(-)nbbuild/misc/full-build-linux.sh (-1 / +2 lines)
Lines 272-278 Link Here
272
    echo "----------BUILDING NETBEANS----------" 1>&2
272
    echo "----------BUILDING NETBEANS----------" 1>&2
273
    # Intentionally skipping check-commit-validation.
273
    # Intentionally skipping check-commit-validation.
274
    # Running sanity-start just so you have a good chance to see deprecation messages etc.
274
    # Running sanity-start just so you have a good chance to see deprecation messages etc.
275
    $antcmd -f $sources/nbbuild/build.xml nozip-check commit-verification
275
    # Make sure to explicitly set JDK (ignore any definition in user.build.properties).
276
    $antcmd -f $sources/nbbuild/build.xml -Dnbjdk.home=$nbjdk nozip-check commit-verification
276
    status=$?
277
    status=$?
277
    if [ $status != 0 ]
278
    if [ $status != 0 ]
278
    then
279
    then
(-)nbbuild/nbproject/project.xml (+1 lines)
Lines 370-375 Link Here
370
            <compilation-unit>
370
            <compilation-unit>
371
                <package-root>antsrc</package-root>
371
                <package-root>antsrc</package-root>
372
                <classpath mode="compile">${ant.home}/lib/ant.jar</classpath>
372
                <classpath mode="compile">${ant.home}/lib/ant.jar</classpath>
373
                <!-- XXX specify mode="boot" if feasible (see jdk.xml) -->
373
                <built-to>build/antclasses</built-to>
374
                <built-to>build/antclasses</built-to>
374
                <built-to>nbantext.jar</built-to>
375
                <built-to>nbantext.jar</built-to>
375
                <source-level>1.4</source-level>
376
                <source-level>1.4</source-level>
(-)nbbuild/templates/common.xml (-2 / +2 lines)
Lines 404-410 Link Here
404
404
405
    <target name="debug-test-single" depends="init,test-init,test-build,do-debug-test-single"/>
405
    <target name="debug-test-single" depends="init,test-init,test-build,do-debug-test-single"/>
406
406
407
    <target name="debug-test-single-nb" depends="init,test-init,test-build" if="netbeans.home">
407
    <target name="debug-test-single-nb" depends="init,test-init,test-build,-jdk-presetdef-nbjpdastart" if="netbeans.home">
408
        <fail unless="test.class">Must set test.class</fail>
408
        <fail unless="test.class">Must set test.class</fail>
409
        <nbjpdastart transport="dt_socket" addressproperty="jpda.address" name="${test.class}">
409
        <nbjpdastart transport="dt_socket" addressproperty="jpda.address" name="${test.class}">
410
            <classpath>
410
            <classpath>
Lines 432-438 Link Here
432
        </nbjpdareload>
432
        </nbjpdareload>
433
    </target>
433
    </target>
434
434
435
    <target name="profile-test-single-nb" depends="init,test-init,test-build">
435
    <target name="profile-test-single-nb" depends="init,test-init,test-build,-jdk-presetdef-nbprofiledirect">
436
        <fail unless="profile.class">Must set profile.class</fail>
436
        <fail unless="profile.class">Must set profile.class</fail>
437
        <mkdir dir="${build.test.unit.results.dir}"/>
437
        <mkdir dir="${build.test.unit.results.dir}"/>
438
        <nbprofiledirect
438
        <nbprofiledirect
(-)nbbuild/templates/projectized.xml (-1 / +1 lines)
Lines 19-25 Link Here
19
    <target name="common-init" depends="default.init"/>
19
    <target name="common-init" depends="default.init"/>
20
    <target name="init" depends="basic-init,files-init,build-init"/>
20
    <target name="init" depends="basic-init,files-init,build-init"/>
21
    
21
    
22
    <target name="build-init" depends="basic-init">
22
    <target name="build-init" depends="basic-init,-jdk-init">
23
        <parseprojectxml project="." publicpackagesproperty="public.packages" friendsproperty="friends" javadocpackagesproperty="module.javadoc.packages" idedependenciesproperty="ide.dependencies" moduledependenciesproperty="module.dependencies" moduleclasspathproperty="module.classpath" domainproperty="nbm.domain" classpathextensionsproperty="class.path.extensions"/>
23
        <parseprojectxml project="." publicpackagesproperty="public.packages" friendsproperty="friends" javadocpackagesproperty="module.javadoc.packages" idedependenciesproperty="ide.dependencies" moduledependenciesproperty="module.dependencies" moduleclasspathproperty="module.classpath" domainproperty="nbm.domain" classpathextensionsproperty="class.path.extensions"/>
24
        <condition property="is.regular">
24
        <condition property="is.regular">
25
            <not>
25
            <not>

Return to bug 63541