]> source.dussan.org Git - aspectj.git/commitdiff
proposed refactored script - still using targets in release/build.xml for now
authorwisberg <wisberg>
Fri, 3 Jun 2005 10:33:22 +0000 (10:33 +0000)
committerwisberg <wisberg>
Fri, 3 Jun 2005 10:33:22 +0000 (10:33 +0000)
eclipse.plugin/build.xml [new file with mode: 0644]
eclipse.plugin/diff-build-results.sh [new file with mode: 0644]

diff --git a/eclipse.plugin/build.xml b/eclipse.plugin/build.xml
new file mode 100644 (file)
index 0000000..cbb70b9
--- /dev/null
@@ -0,0 +1,156 @@
+<!-- ====================================================================== -->
+<!-- Copyright (c) 2005 Contributors                                        -->
+<!-- All rights reserved.                                                   -->
+<!-- This program and the accompanying materials are made available         -->
+<!-- under the terms of the Eclipse Public License v1.0                     -->
+<!-- which accompanies this distribution and is available at                -->
+<!-- http://www.eclipse.org/legal/epl-v10.html                              -->
+<!--                                                                        -->
+<!-- Contributors: (See CVS checkin's)                                      -->
+<!-- ====================================================================== -->
+
+<project name="eclipse.plugins" default="eclipse.plugins" basedir=".">
+    <import file="${basedir}/../build/build-properties.xml" />
+
+    <target name="info">
+        <echo>
+  Assembles the Eclipse plugins.
+            
+  Relies on ../build/build-properties.xml for some definitions, and
+  the build must have produced the AspectJ distribution already.
+  
+  Define $${build.version.eclipse.plugins} to avoid "9.9.9" for
+  "DEVELOPMENT" (the default).
+        </echo>
+    </target>
+
+    <target name="init-eclipse-plugins" depends="init-properties">
+        <property name="ep.dir"
+                  location="${aspectj.modules.dir}/eclipse.plugin"
+        />
+
+        <condition property="build.version.eclipse.plugins"
+                   value="9.9.9"
+        >
+            <equals arg1="DEVELOPMENT" arg2="${build.version.long}" />
+        </condition>
+        <condition property="build.version.eclipse.plugins"
+                   value="${build.version.long}"
+        >
+            <not>
+                <equals arg1="DEVELOPMENT"
+                        arg2="${build.version.long}"
+                />
+            </not>
+        </condition>
+        <jar-property name="ep.aspectjrt.jar"
+                      location="${aj.dist.dir}/tools/lib/aspectjrt.jar"
+        />
+        <property name="ep.eclipse.dist.dir"
+                  location="${aj.dist.dir}/ide/eclipse"
+        />
+    </target>
+
+    <target name="eclipse.plugins"
+            depends="do-rt,do-source,do-ajde,do-doc"
+    />
+
+    <target name="do-rt" depends="init-eclipse-plugins">
+
+        <property name="name.rt" value="org.aspectj.aspectjrt" />
+        <mkdir dir="${ep.eclipse.dist.dir}/${name.rt}" />
+        <copy todir="${ep.eclipse.dist.dir}/${name.rt}"
+              file="${ep.aspectjrt.jar}"
+        />
+        <build-eclipse-plugin name="${name.rt}" />
+    </target>
+
+    <target name="do-source" depends="init-eclipse-plugins">
+        <property name="name.source"
+                  value="org.aspectj.ajde.source"
+        />
+        <clean-dir dir="${ep.eclipse.dist.dir}/${name.source}/src" />
+        <copy todir="${ep.eclipse.dist.dir}/${name.source}/src"
+              file="${aspectj.modules.dir}/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip"
+        />
+        <!-- verify source dirs included:
+        grep 'kind="src"' */.classpath | sed '/testsrc/d;/path="\//d;s|\/.*path="|\/|;s|".*||'
+        -->
+        <zip destfile="${ep.eclipse.dist.dir}/${name.source}/src/aspectjsrc.zip"
+        >
+            <fileset dir="${aspectj.modules.dir}/ajbrowser/src" />
+            <fileset dir="${aspectj.modules.dir}/ajde/src" />
+            <fileset dir="${aspectj.modules.dir}/ajdoc/src" />
+            <fileset dir="${aspectj.modules.dir}/asm/src" />
+            <fileset dir="${aspectj.modules.dir}/aspectj5rt/java5-src"
+            />
+            <fileset dir="${aspectj.modules.dir}/aspectj5rt/src" />
+            <fileset dir="${aspectj.modules.dir}/bridge/src" />
+            <fileset dir="${aspectj.modules.dir}/loadtime/src" />
+            <fileset dir="${aspectj.modules.dir}/loadtime5/java5-src"
+            />
+            <fileset dir="${aspectj.modules.dir}/org.aspectj.ajdt.core/src"
+            />
+            <fileset dir="${aspectj.modules.dir}/org.aspectj.lib/src"
+            />
+            <fileset dir="${aspectj.modules.dir}/runtime/src" />
+            <fileset dir="${aspectj.modules.dir}/taskdefs/src" />
+            <fileset dir="${aspectj.modules.dir}/util/src" />
+            <fileset dir="${aspectj.modules.dir}/weaver/src" />
+        </zip>
+        <build-eclipse-plugin name="${name.source}" />
+    </target>
+
+    <target name="do-ajde" depends="init-eclipse-plugins">
+        <property name="name.ajde" value="org.aspectj.ajde" />
+        <jar-property name="ep.aspectjtools.jar"
+                      location="${aj.dist.dir}/tools/lib/aspectjtools.jar"
+        />
+        <clean-dir dir="${ep.eclipse.dist.dir}/${name.ajde}" />
+        <copy todir="${ep.eclipse.dist.dir}/${name.ajde}">
+            <fileset file="${ep.aspectjrt.jar}" />
+            <fileset file="${ep.aspectjtools.jar}" />
+        </copy>
+        <jar destfile="${ep.eclipse.dist.dir}/${name.ajde}/ajde.jar">
+            <zipfileset src="${ep.aspectjtools.jar}"
+                        includes="org/aspectj/**"
+            />
+            <!-- TODO dangerous assumption: only org.aspectj?  not org.eclipse or org.osgi? -->
+        </jar>
+        <build-eclipse-plugin name="${name.ajde}" />
+    </target>
+
+    <target name="do-doc" depends="init-eclipse-plugins">
+        <available property="ep.docs.available"
+                   file="${aj.dist.dir}/docs/doc/examples/build.xml"
+        />
+        <fail unless="ep.docs.available"
+              message="no doc in ${aj.dist.dir}"
+        />
+        <property name="name.doc" value="org.aspectj.ajde.doc" />
+        <clean-dir dir="${ep.eclipse.dist.dir}/${name.doc}/doc" />
+        <copy todir="${ep.eclipse.dist.dir}/${name.doc}/doc">
+            <fileset dir="${aj.dist.dir}/docs/doc" />
+        </copy>
+        <build-eclipse-plugin name="${name.doc}" />
+    </target>
+
+    <macrodef name="build-eclipse-plugin">
+        <attribute name="name" />
+        <sequential>
+            <mkdir dir="${ep.eclipse.dist.dir}/@{name}" />
+            <copy todir="${ep.eclipse.dist.dir}/@{name}">
+                <fileset dir="${ep.dir}/@{name}" />
+            </copy>
+            <replace file="${ep.eclipse.dist.dir}/@{name}/plugin.xml"
+                     token="build.version.eclipse.plugins"
+                     value="${build.version.eclipse.plugins}"
+            />
+            <jar destfile="${ep.eclipse.dist.dir}/@{name}_${build.version.eclipse.plugins}.jar"
+            >
+                <fileset dir="${ep.eclipse.dist.dir}/@{name}" />
+            </jar>
+        </sequential>
+    </macrodef>
+
+</project>
\ No newline at end of file
diff --git a/eclipse.plugin/diff-build-results.sh b/eclipse.plugin/diff-build-results.sh
new file mode 100644 (file)
index 0000000..e5ae6d0
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/bash
+# Regression test when changing the build script.
+# Compare new.zip and old.zip, assuming they contain build results
+# aj-build/dist/ide/eclipse for two different versions of the build script
+# (and comparing only the contents of the .jar files).
+# [There must be a better way: diff support that recurses into .jar/.zip files]
+
+[ -n "$DEBUG" ] && set -vx 
+
+jar="${JAVA_HOME}/bin/jar"
+
+errExit() {
+  echo "ERROR $1: $2"
+  exit "$1"
+}
+
+# make this empty to avoid unzipping new.zip and old.zip
+dozip="yes"
+if [ -z "${dozip}" ] ; then
+       cd temp
+else
+       rm -rf temp
+       mkdir temp
+       cd temp
+       for d in new old; do
+               [ -f ../$d.zip ] || errExit 2 "make $d.zip";
+               mkdir $d
+               cd $d
+               $jar -xf ../../$d.zip
+               cd eclipse
+               ls *.jar | sort > ../../$d-names.txt
+               cd ../..
+       done
+fi
+
+  diff *-names.txt > /dev/null || errExit 3 "expected same products"
+  for j in `cat new-names.txt`; do
+     mkdir $j-dir;
+     cd $j-dir
+     for d in new old; do 
+            mkdir $d
+            cd $d
+            $jar xf ../../$d/eclipse/$j
+            dirpath=`pwd | sed 's|/cygdrive/c|c:|'`
+            for z in `find . -type f -name \*.jar -o -name \*.zip`; do
+               mkdir ${z}-dir
+               pushd ${z}-dir
+               $jar -xf $dirpath/${z}
+               popd
+            done
+            cd ..
+     done
+        diff -qr new old > diffs.txt
+     cd ..
+  done
+  cat */diffs.txt
+  wc -l */diffs.txt
+
+
+
+