mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
15.34.2007 e4238ba3e0f71640f9e3cdde4b69dd9622c9869a
Fix for Issue 1349.

QuickSetup classes are not modified using AspectJ. The problem comes from the fact that QuickSetup classes are compiled using the classes that already have been modified by AspectJ and this was causing the problems.

The first part of the fix consists of compiling the three classes (SetupUtils, DynamicConstants and OperatingSystem) that are used by the quicksetup. I have made some tests and this solution detects any modification that can be made to those three classes and that can break the QuickSetup. The second part consists of compiling the quicksetup code *before* we run AspectJ (in the "weave" target) on the server classes.

1 files modified
33 ■■■■■ changed files
opendj-sdk/opends/build.xml 33 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/build.xml
@@ -375,7 +375,7 @@
  <!-- Compile the Directory Server source files. -->
  <target name="cleancompile"
       depends="cleaninit,weave,compilequicksetup,compilestatuspanel"
       depends="cleaninit,compilequicksetup,weave,compilestatuspanel"
       description="Recompile the Directory Server source files.">
  </target>
@@ -421,11 +421,20 @@
  <!-- Compile the Quick Setup source files. -->
  <target name="compilequicksetup" depends="buildtools,weave"
  <target name="compilequicksetup" depends="buildtools,compile"
          description="Compile the Quick Setup source files.">
    <mkdir dir="${quicksetup.classes.dir}" />
    <javac srcdir="${quicksetup.src.dir}" destdir="${quicksetup.classes.dir}"
    <javac srcdir="${src.dir}" destdir="${quicksetup.classes.dir}"
           optimize="true" debug="on" debuglevel="lines,source" source="1.5"
           target="1.5" deprecation="true" fork="true" memoryInitialSize="${MEM}"
           memoryMaximumSize="${MEM}">
                <include name="**/org/opends/server/util/SetupUtils.java"/>
                <include name="**/org/opends/server/util/DynamicConstants.java"/>
                <include name="**/org/opends/server/types/OperatingSystem.java"/>
            <compilerarg value="-Xlint:all" />
    </javac>
    <javac srcdir="${quicksetup.src.dir}" destdir="${quicksetup.classes.dir}"
         optimize="true" debug="on" debuglevel="lines,source" source="1.5"
         target="1.5" deprecation="true" fork="true" memoryInitialSize="${MEM}"
         memoryMaximumSize="${MEM}">
@@ -442,10 +451,6 @@
      <fileset dir="${quicksetup.src.dir}"
               includes="**/*.properties, **/*.gif, **/*.png" />
    </copy>
    <copy todir="${quicksetup.classes.dir}">
      <fileset dir="${classes.dir}"
               includes="**/DynamicConstants.class **/SetupUtils.class **/OperatingSystem.class" />
    </copy>
  </target>
  <!-- Compile the Status Panel source files. -->
@@ -521,6 +526,15 @@
    <!-- Recreate the quicksetup classes directory and recompile into it. -->
    <mkdir dir="${quicksetup.classes.dir}" />
    <javac srcdir="${src.dir}" destdir="${quicksetup.classes.dir}"
               optimize="true" debug="on" debuglevel="lines,source" source="1.5"
               target="1.5" deprecation="true" fork="true" memoryInitialSize="${MEM}"
               memoryMaximumSize="${MEM}">
        <include name="**/org/opends/server/util/SetupUtils.java"/>
        <include name="**/org/opends/server/util/DynamicConstants.java"/>
        <include name="**/org/opends/server/types/OperatingSystem.java"/>
        <compilerarg value="-Xlint:all" />
    </javac>
    <javac srcdir="${quicksetup.src.dir}" destdir="${quicksetup.classes.dir}" optimize="true"
        debug="on" debuglevel="lines,source" source="1.5" target="1.5"
        deprecation="true" fork="true" memoryInitialSize="${MEM}"
@@ -541,11 +555,6 @@
            includes="**/*.properties, **/*.gif, **/*.png"/>
    </copy>
    <copy todir="${quicksetup.classes.dir}">
        <fileset dir="${classes.dir}"
            includes="**/DynamicConstants.class **/SetupUtils.class **/OperatingSystem.class"/>
    </copy>
    <!-- Generate the quicksetup.jar file -->
    <jar jarfile="${pdir}/lib/quicksetup.jar"
         basedir="${quicksetup.classes.dir}" compress="true" index="true" />