Anonymous avatar Anonymous committed 6405434

No need to checkout opensymphony alongside us now

Comments (0)

Files changed (3)

Empty file added.

   <property name="src.test" location="src/test"/>
   <property name="jar.manifest" value="src/etc/deployment/ejb/manifest.txt" />
   
-  <property name="common.build" value="../opensymphony/common/osbuild.xml"/>
+  <property name="common.build" value="osbuild.xml"/>
   <import file="${common.build}"/>
   
   <path id="jalopy.classpath">
 
   <target name="webstart" depends="client-jar" description="Build webstart files">
     <mkdir dir="${dist.docs}/designer" />
+    <property name="designer.jars" value="lib/designer/" />
     <jar jarfile="${build}/designer.jar" update="true">
       <manifest>
         <attribute name="Built-By" value="${user.name}"/>
         <attribute name="Main-Class" value="com.opensymphony.workflow.designer.Launcher" />
-        <attribute name="Class-Path" value="looks.jar forms.jar syntax.jar jgraph.jar foxtrot.jar" />
+        <attribute name="Class-Path" 
+                   value="${designer.jars}looks.jar ${designer.jars}forms.jar ${designer.jars}syntax.jar ${designer.jars}jgraph.jar ${designer.jars}foxtrot.jar" />
       </manifest>
     </jar>
     <my.signjar signedjar="${dist.docs}/designer/designer.jar" jar="${build}/designer.jar" />
+<project name="common" default="jar" basedir=".">
+    <!--
+    OpenSymphony Common Build
+    =========================
+    TODO (Introduction)
+
+    Layout
+    =========================
+    TODO
+
+    Overriding
+    =========================
+    TODO
+    Example: <target name="compile" depends="myPreCompile,common.compile,myPostCompile"/>
+
+    -->
+    <!-- NOTE: this property is purely here to make a clear distinction in IDEA where the common build is -->
+    <property name="------common-properties-below------" value="Common properties below:"/>
+
+    <property name="compile.version" value="1.3"/>
+    <property name="test.compile.version" value="1.3"/>
+
+    <dirname property="common.dir" file="${ant.file.common}"/>
+    <property file="build.properties"/>
+    <property file="release.properties"/>
+    <property file="ivyrep.properties"/>
+
+    <property name="lib" location="lib"/>
+    <property name="lib.core" value="${lib}/core"/>
+    <property name="lib.build" value="${lib}/build"/>
+    <property name="lib.optional" value="${lib}/optional"/>
+
+    <property name="src" location="src"/>
+    <property name="src.java" value="${src}/java"/>
+
+    <property name="test" value="${src}/test"/>
+    <property name="src.test" value="${test}/java"/>
+
+    <property name="build" location="build"/>
+    <property name="build.test" value="${build}/test"/>
+    <property name="build.java-test" value="${build}/java-test"/>
+    <property name="build.java" value="${build}/java"/>
+    <property name="build.clover" value="${build}/clover"/>
+    <property name="dist" location="dist"/>
+
+    <property name="docs" location="docs"/>
+    <property name="docs.packages" value="com.opensymphony.*"/>
+
+    <property name="jar.manifest" value="${common.dir}/EMPTY.MF"/>
+    <property name="jar.excludes" value=""/>
+
+    <property name="testcase" value="*"/>
+    <patternset id="src.test.pattern">
+        <exclude name="**/Abstract*.java"/>
+        <include name="**/${testcase}Test.java"/>
+        <include name="**/${testcase}TestCase.java"/>
+    </patternset>
+
+    <path id="cp">
+        <fileset dir="lib">
+            <include name="**/*.jar"/>
+            <include name="**/*.zip"/>
+            <exclude name="**/jalopy/**"/>
+        </fileset>
+    </path>
+
+    <path id="junit.cp">
+        <pathelement location="${build.test}"/>
+        <pathelement location="${build.java-test}"/>
+        <path refid="cp"/>
+    </path>
+
+    <available property="junit.available" classname="junit.framework.TestCase"/>
+    <available property="clover.available" classname="org.apache.tools.ant.taskdefs.CloverCompilerAdapter"/>
+
+    <target name="init" depends="init-anthill, init-standalone">
+        <tstamp/>
+    </target>
+
+    <!-- in Anthill, the docs should be the Intranet copyDir -->
+    <target name="init-anthill" if="anthill.copyDir">
+        <property name="dist.docs" value="${anthill.copyDir}"/>
+    </target>
+
+    <!-- when building Standalone, the docs should be the normal place -->
+    <target name="init-standalone" unless="anthill.copyDir">
+        <property name="dist.docs" value="${dist}/docs"/>
+    </target>
+
+    <target name="junit-check" depends="init" unless="junit.available">
+        <fail message="Cannot run test cases. Please copy lib/build/junit-3.8.1.jar to ${ant.home}/lib"/>
+    </target>
+
+    <target name="clover-check" depends="init" unless="clover.available">
+        <fail message="Cannot run coverage tests. Please copy lib/build/clover.jar and lib/build/clover.license (if it exists) to ${ant.home}/lib"/>
+    </target>
+
+    <target name="clean" depends="init">
+        <delete dir="${build}"/>
+        <delete dir="${dist}"/>
+    </target>
+
+    <target name="precompile"/>
+
+    <macrodef name="compile">
+        <attribute name="srcdir"/>
+        <attribute name="destdir"/>
+        <attribute name="classpath" default=""/>
+        <attribute name="classpathref" default="cp"/>
+        <attribute name="excludes" default=""/>
+        <attribute name="source" default="${compile.version}"/>
+        <attribute name="target" default="${compile.version}"/>
+        <sequential>
+            <mkdir dir="@{destdir}"/>
+            <javac srcdir="@{srcdir}" destdir="@{destdir}" classpath="@{classpath}" classpathref="@{classpathref}"
+                   debug="on" source="@{source}" target="@{target}"/>
+            <copy filtering="no" todir="@{destdir}">
+                <fileset dir="@{srcdir}">
+                    <exclude name="**/*.java"/>
+                    <exclude name="**/package.html"/>
+                </fileset>
+            </copy>
+        </sequential>
+    </macrodef>
+
+    <target name="compile" depends="init,precompile" description="compile project">
+        <compile srcdir="${src.java}" destdir="${build.java}"/>
+    </target>
+
+    <target name="jar" depends="compile" description="build the project jar file">
+        <mkdir dir="${build}"/>
+
+        <jar basedir="${build.java}" excludes="${jar.excludes}" jarfile="${build}/${name}-${version}.jar"
+             manifest="${jar.manifest}">
+            <manifest>
+                <attribute name="Implementation-Title" value="${fullname}"/>
+                <attribute name="Implementation-Version" value="${version}"/>
+                <attribute name="Implementation-Vendor" value="OpenSymphony"/>
+            </manifest>
+        </jar>
+        <!--        <jar basedir="${src.java}" jarfile="${build}/${name}-${version}-src.jar">
+           <manifest>
+               <attribute name="Implementation-Title" value="${fullname}" />
+               <attribute name="Implementation-Version" value="${version}" />
+               <attribute name="Implementation-Vendor" value="OpenSymphony" />
+           </manifest>
+       </jar> -->
+    </target>
+
+    <target name="src-jar" depends="init" description="build a jar of the project source code">
+        <mkdir dir="${build}"/>
+        <jar basedir="${src.java}" jarfile="${build}/${name}-${version}-src.jar">
+            <manifest>
+                <attribute name="Implementation-Title" value="${fullname}"/>
+                <attribute name="Implementation-Version" value="${version}"/>
+                <attribute name="Implementation-Vendor" value="OpenSymphony"/>
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="test-compile" unless="skip.tests">
+        <compile srcdir="${src.test}" destdir="${build.test}" classpath="${build.java}"
+                 source="${test.compile.version}" target="${test.compile.version}"/>
+
+        <taskdef resource="clovertasks"/>
+        <taskdef name="junit" classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
+
+        <mkdir dir="${build.clover}"/>
+        <clover-setup initString="${build.clover}/coverage.db">
+            <files>
+                <exclude name="${src.test}/**/*.java"/>
+            </files>
+        </clover-setup>
+
+        <compile srcdir="${src.java}" destdir="${build.java-test}"/>
+    </target>
+
+    <target name="test" depends="junit-check, clover-check, compile, test-compile" description="run tests"
+            unless="skip.tests">
+        <run-junit />
+    </target>
+
+    <macrodef name="run-junit">
+        <attribute name="classpathref" default="junit.cp" />
+        <sequential>
+          <mkdir dir="${dist.docs}/junit"/>
+          <junit haltonfailure="no" haltonerror="yes" fork="yes" forkmode="once" failureproperty="test.failure">
+              <jvmarg value="-Djava.awt.headless=true"/>
+              <jvmarg value="-Dorg.xml.sax.driver=org.apache.crimson.parser.XMLReaderImpl"/>
+              <classpath>
+                  <path refid="@{classpathref}"/>
+              </classpath>
+
+              <formatter type="plain" useFile="false"/>
+              <formatter type="xml"/>
+
+              <batchtest todir="${dist.docs}/junit">
+                  <fileset dir="${src.test}">
+                      <patternset refid="src.test.pattern"/>
+                  </fileset>
+              </batchtest>
+          </junit>          
+        </sequential>
+    </macrodef>
+  
+    <target name="javadocs" description="generate javadocs" depends="init">
+        <mkdir dir="${dist.docs}/api"/>
+        <javadoc sourcepath="${src.java}"
+                 destdir="${dist.docs}/api"
+                 packagenames="${docs.packages}"
+                 classpathref="cp"
+                 author="true"
+                 version="true"
+                 overview="${src.java}/overview.html"
+                 windowTitle="${fullname} API - ${version}"
+                 doctitle="${fullname} API (${version})"
+                 footer="&lt;a href=&quot;http://www.opensymphony.com/${name}/&quot; target=&quot;_top&quot;&gt;${fullname} Project Page&lt;/a&gt;"
+                 use="true"
+                 verbose="false">
+            <link href="http://java.sun.com/j2se/${compile.version}/docs/api/"/>
+            <link href="http://java.sun.com/j2ee/${compile.version}/docs/api/"/>
+        </javadoc>
+        <!-- <copy overwrite="yes" file="${docs}/main.css" tofile="${docs}/api/stylesheet.css"/> -->
+    </target>
+
+    <target name="docs.impl">
+        <copy todir="${dist.docs}">
+            <fileset dir="${docs}"/>
+        </copy>
+    </target>
+
+    <target name="reports" depends="junit.report, clover.report, javadocs"
+            description="generate javadocs and junit and coverage reports"/>
+
+    <target name="docs" depends="reports, docs.impl"/>
+
+    <target name="clover.report" depends="test" description="generate coverage reports" unless="skip.tests">
+        <clover-report>
+            <current outfile="${dist.docs}/clover">
+                <format type="html"/>
+            </current>
+        </clover-report>
+    </target>
+
+    <target name="clover.historical" depends="clover.report" description="generate coverage historical reports"
+            unless="skip.tests">
+        <clover-historypoint historyDir="${build.clover}"/>
+
+        <clover-report>
+            <historical outfile="${dist.docs}/clover" historyDir="${build.clover}">
+                <format type="html"/>
+            </historical>
+        </clover-report>
+    </target>
+
+    <target name="junit.report" depends="test" description="generate junit reports" unless="skip.tests">
+        <junitreport todir="${dist.docs}/junit">
+            <fileset dir="${dist.docs}/junit">
+                <include name="TEST-*.xml"/>
+            </fileset>
+            <report format="frames" todir="${dist.docs}/junit"/>
+        </junitreport>
+
+        <!-- we fail here (instead of in the test target) so that the reports get generated first) -->
+        <fail if="test.failure" message="Tests did not all pass, failing!"/>
+    </target>
+
+    <target name="predist"/>
+
+    <target name="predist.zip"/>
+
+    <target name="dist" depends="jar, docs, predist" description="generate distribution zip file">
+        <copy todir="${dist}">
+            <fileset dir="${build}">
+                <include name="*.jar"/>
+            </fileset>
+        </copy>
+
+        <copy todir="${dist}/src">
+            <fileset dir="${src}"/>
+        </copy>
+
+        <mkdir dir="${dist}/lib"/>
+        <copy todir="${dist}/lib">
+            <fileset dir="${lib}">
+                <exclude name="**/no_dist/**"/>
+            </fileset>
+        </copy>
+
+        <copy todir="${dist}">
+            <fileset dir="${basedir}">
+                <include name="*build.*"/>
+                <include name="readme.txt"/>
+                <include name="license.txt"/>
+            </fileset>
+        </copy>
+
+        <!-- give a chance for project builds to do more before the zip is made. -->
+        <antcall target="predist.zip"/>
+
+        <zip zipfile="${build}/${name}-${version}.zip" basedir="${dist}">
+            <exclude name="docs/clover/**/*"/>
+            <exclude name="docs/junit/**/*"/>
+        </zip>
+    </target>
+
+    <target name="website" depends="javadocs, docs.impl"/>
+
+    <target name="ivyrep" depends="jar">
+        <tstamp>
+            <format property="TIME" pattern="yyyyMMddHHmmss"/>
+        </tstamp>
+
+        <!-- make sure we have the latest -->
+        <echo>svn update</echo>
+        <exec executable="svn">
+            <arg value="update"/>
+            <arg line="${ivyrep.path}/opensymphony/${name}"/>
+        </exec>
+
+        <!-- delete the old timestamped builds and commit -->
+        <fileset dir="${ivyrep.path}/opensymphony/${name}" id="filesref">
+            <include name="${name}-${version}-*"/>
+            <include name="ivy-${version}-*"/>
+        </fileset>
+        <pathconvert property="files" refid="filesref" pathsep=" "/>
+        <echo>svn delete: ${files}</echo>
+        <exec executable="svn">
+            <arg value="delete"/>
+            <arg line="${files}"/>
+        </exec>
+
+        <!-- copy over the new build -->
+        <copy file="${build}/${name}-${version}.jar"
+              tofile="${ivyrep.path}/opensymphony/${name}/${name}-${version}-${TIME}.jar"/>
+        <echo>svn add (jar)</echo>
+        <exec executable="svn">
+            <arg value="add"/>
+            <arg value="${ivyrep.path}/opensymphony/${name}/${name}-${version}-${TIME}.jar"/>
+        </exec>
+
+        <antcall target="ivyrep.copy-ivy"/>
+        <exec executable="svn">
+            <arg value="add"/>
+            <arg value="${ivyrep.path}/opensymphony/${name}/ivy-${version}-${TIME}.xml"/>
+        </exec>
+
+        <!-- now commit everything -->
+        <echo>svn commit</echo>
+        <exec executable="svn">
+            <arg value="commit"/>
+            <arg value="--username"/>
+            <arg value="${ivyrep.username}"/>
+            <arg value="--password"/>
+            <arg value="${ivyrep.password}"/>
+            <arg value="--non-interactive"/>
+            <arg value="-m"/>
+            <arg value="automatic commit"/>
+            <arg value="${ivyrep.path}/opensymphony/${name}"/>
+        </exec>
+    </target>
+
+    <target name="ivyrep.copy-ivy">
+        <!--
+        Note: Default implementation does not use Ivy itself to generate these files.
+              However, Ivy is really the best way to generate these, so projects that
+              do use Ivy should override this target like so:
+
+              <ivy-deliver deliverpattern="${ivyrep.path}/opensymphony/${name}/[artifact]-[revision].[ext]"
+                           pubrevision="${version}-${TIME}" pubdate="${TIME}"/>
+
+              Over time as more projects adopt Ivy, this may become built in to the
+              common build.
+        -->
+        <copy file="ivy.xml" tofile="${ivyrep.path}/opensymphony/${name}/ivy-${version}-${TIME}.xml">
+            <filterset id="ivy.filter">
+                <filter token="VERSION" value="${version}-${TIME}"/>
+                <filter token="STATUS" value="${status}"/>
+                <filter token="PUBLICATION" value="${TIME}"/>
+            </filterset>
+        </copy>
+    </target>
+</project>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.