Some more fixes on Issue 16 - handling a CastException. Also working Issue 14 - when...
[pithos] / build.xml
index 9adaef3..64522a0 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -3,39 +3,53 @@
        <description>The GSS project build file</description>
 
        <property file="build.properties"/>
-
+    <property name="deps.dir" value="dependencies"/>
+
+       <!-- User-editable settings. These are the only settings in this file that
+       a user may consider changing. Note that these can also be configured
+       through command line parameters (e.g. "ant -Dgwt.workers=2") or a
+       build.properties file. -->
+    <property name="gwt.workers" value="1" />
+    <property name="jboss.home" value="${deps.dir}/jboss-5.1.0.GA" />
+    <property name="jboss.args" value="" />
+
+       <!-- Library and runtime dependencies -->
+    <property name="jboss.version" value="5.1.0" />
+    <property name="jboss.filename" value="jboss-5.1.0.GA-jdk6.zip"/>
+       <property name="jboss.download.url" value="http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip/download"/>
+    <property name="gwt.path" value="${deps.dir}/gwt-2.0.4"/>
+    <property name="gwt.filename" value="gwt-2.0.4.zip"/>
+       <property name="gwt.download.url" value="http://google-web-toolkit.googlecode.com/files/gwt-2.0.4.zip"/>
+    <property name="hornetq.path" value="${deps.dir}/hornetq-2.0.0.GA" />
+    <property name="hornetq.filename" value="hornetq-2.0.0.GA.zip/"/>
+    <property name="hornetq.download.url" value="http://sourceforge.net/projects/hornetq/files/2.0.0.GA/hornetq-2.0.0.GA.zip/download"/>
+    <property name="junit.path" value="${deps.dir}/junit3.8.1" />
+    <property name="junit.filename" value="junit3.8.1.zip"/>
+    <property name="junit.download.url" value="http://sourceforge.net/projects/junit/files/junit/3.8.1/junit3.8.1.zip/download"/>
+    <property name="gwt-dnd.filename" value="gwt-dnd-3.0.1.jar"/>
+    <property name="gwt-dnd.download.url" value="http://gwt-dnd.googlecode.com/files/gwt-dnd-3.0.1.jar"/>
+    <property name="gwt-gears.path" value="${deps.dir}/gwt-gears-1.3.0" />
+    <property name="gwt-gears.filename" value="gwt-gears-1.3.0.zip"/>
+    <property name="gwt-gears.download.url" value="http://gwt-google-apis.googlecode.com/files/gwt-gears-1.3.0.zip"/>
+    <property name="gwt-visualization.path" value="${deps.dir}/gwt-visualization-1.1.0" />
+    <property name="gwt-visualization.filename" value="gwt-visualization-1.1.0.zip"/>
+    <property name="gwt-visualization.download.url" value="http://gwt-google-apis.googlecode.com/files/gwt-visualization-1.1.0.zip"/>
+    <property name="gwt-incubator.filename" value="gwt-incubator-20100204-r1747.jar"/>
+    <property name="gwt-incubator.download.url" value="http://google-web-toolkit-incubator.googlecode.com/files/gwt-incubator-20100204-r1747.jar"/>
+
+       <!-- Source and runtime layout configuration -->
        <property name="jboss_run_configuration" value="default" />
-       <property name="root.context" value="gss" />
-       <property name="gwt.module" value="gr.ebs.gss.GSS" />
-       <property name="gwt.module.class" value="GSS" />
-       <property name="gwt.admin.module" value="gr.ebs.gss.admin.TwoAdmin" />
-       <property name="gwt.admin.module.class" value="TwoAdmin" />
-       <property name="gwt.workers" value="1" />
-
-       <property environment="env" />
-
-       <!-- Application server specific configuration -->
-       <property name="jboss-spec.dir" value="${basedir}/jboss" />
-       <property name="jboss-spec.conf.dir" value="${jboss-spec.dir}/conf" />
-       <property name="jboss-spec.bin.dir" value="${jboss-spec.dir}/bin" />
-       <property name="jboss-spec.deploy.dir" value="${jboss-spec.dir}/deploy" />
-       <property name="jboss-spec.lib.dir" value="${jboss-spec.dir}/lib" />
-
-       <!-- Production deployment specific configuration -->
-       <property name="jboss-spec.prod.dir" value="${basedir}/jboss-production" />
-       <property name="jboss-spec.prod.conf.dir" value="${jboss-spec.prod.dir}/conf" />
-       <property name="jboss-spec.prod.bin.dir" value="${jboss-spec.prod.dir}/bin" />
-       <property name="jboss-spec.prod.deploy.dir" value="${jboss-spec.prod.dir}/deploy" />
-       <property name="jboss-spec.prod.lib.dir" value="${jboss-spec.prod.dir}/lib" />
-
-       <!-- Jboss dirs -->
-       <property name="jboss.home" value="${env.JBOSS_HOME}" />
-       <property name="jboss.prod.home" value="${env.JBOSS_PROD_HOME}" />
-       <property name="jboss.version" value="${env.JBOSS_VERSION}" />
-       <property name="gwt.path" value="${env.GWT_PATH}" />
-       <property name="hornetq.path" value="${env.HORNETQ_PATH}" />
+    <property name="root.context" value="gss" />
+    <property name="gwt.module" value="gr.ebs.gss.GSS" />
+    <property name="gwt.module.class" value="GSS" />
+    <property name="gwt.admin.module" value="gr.ebs.gss.admin.TwoAdmin" />
+    <property name="gwt.admin.module.class" value="TwoAdmin" />
        <property name="src.dir" value="${basedir}/src"/>
-
+    <property name="jboss-spec.dir" value="${basedir}/jboss" />
+    <property name="jboss-spec.conf.dir" value="${jboss-spec.dir}/conf" />
+    <property name="jboss-spec.bin.dir" value="${jboss-spec.dir}/bin" />
+    <property name="jboss-spec.deploy.dir" value="${jboss-spec.dir}/deploy" />
+    <property name="jboss-spec.lib.dir" value="${jboss-spec.dir}/lib" />
        <property name="jboss.project" value="${basedir}/jboss-config/${jboss.version}" />
        <property name="jboss.bin.dir" value="${jboss.home}/bin" />
        <property name="jboss.conf.dir" value="${jboss.home}/server/${jboss_run_configuration}/conf" />
        <property name="jboss.lib.dir" value="${jboss.home}/lib" />
        <property name="jboss.common.lib.dir" value="${jboss.home}/common/lib" />
 
-       <property name="jboss.prod.bin.dir" value="${jboss.prod.home}/bin" />
-       <property name="jboss.prod.conf.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/conf" />
-       <property name="jboss.prod.deploy.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/deploy" />
-       <property name="jboss.prod.run_conf.lib.dir" value="${jboss.prod.home}/server/${jboss_run_configuration}/lib" />
-       <property name="jboss.prod.lib.dir" value="${jboss.prod.home}/lib" />
-       <property name="jboss.prod.common.lib.dir" value="${jboss.prod.home}/common/lib" />
-
        <!-- MBeans -->
        <property name="mbeans.dir" value="${basedir}/mbeans"/>
        <property name="mbeans.meta-inf.dir" value="${mbeans.dir}/META-INF"/>
@@ -70,7 +77,6 @@
        <property name="dist.admin.war" value="${ant.project.name}-admin.war"/>
        <property name="webdav.war" value="webdav.war"/>
        <property name="dist.ear" value="${ant.project.name}.ear"/>
-
        <property name="war.dir" value="${basedir}/war" />
        <property name="war.web-inf.dir" value="${war.dir}/WEB-INF"/>
        <property name="war.lib.dir" value="${war.web-inf.dir}/lib"/>
@@ -82,7 +88,6 @@
        <property name="webdav.war.lib.dir" value="${webdav.war.web-inf.dir}/lib"/>
        <property name="ear.dir" value="${basedir}/ear" />
        <property name="ear.lib.dir" value="${ear.dir}/lib" />
-       
        <property name="mbeans.dist.file" value="${ant.project.name}-mbeans.sar"/>
 
        <!-- set classpath -->
                <pathelement location="${ear.lib.dir}/commons-lang.jar"/>
                <pathelement location="${ear.lib.dir}/ldap.jar"/>
                <pathelement location="${junit.path}/junit.jar"/>
-               <pathelement location="${basedir}/lib/gwt-dnd-3.0.1.jar"/>
-               <pathelement location="${basedir}/lib/gwt-gears.jar"/>
-               <pathelement location="${basedir}/lib/gwt-incubator-20100204-r1747.jar"/>
-               <pathelement location="${basedir}/lib/gwt-visualization.jar"/>
+               <pathelement location="${deps.dir}/${gwt-dnd.filename}"/>
+               <pathelement location="${gwt-gears.path}/gwt-gears.jar"/>
+               <pathelement location="${deps.dir}/${gwt-incubator.filename}"/>
+               <pathelement location="${gwt-visualization.path}/gwt-visualization.jar"/>
        </path>
 
-       <target name="install" description="Installs the configuration files of the application server">
+       <target name="check-jboss">
+               <available file="${jboss.home}" type="dir" property="jboss.home.present"/>
+       </target>
+
+    <target name="fetch-dependencies" description="Fetch the dpendencies" unless="jboss.home.present" depends="check-jboss">
+       <mkdir dir="${deps.dir}"/>
+        <get src="${gwt.download.url}" dest="${deps.dir}/${gwt.filename}" usetimestamp="true"/>
+        <get src="${gwt-dnd.download.url}" dest="${deps.dir}/${gwt-dnd.filename}" usetimestamp="true"/>
+        <get src="${gwt-gears.download.url}" dest="${deps.dir}/${gwt-gears.filename}" usetimestamp="true"/>
+        <get src="${gwt-visualization.download.url}" dest="${deps.dir}/${gwt-visualization.filename}" usetimestamp="true"/>
+        <get src="${gwt-incubator.download.url}" dest="${deps.dir}/${gwt-incubator.filename}" usetimestamp="true"/>
+        <get src="${hornetq.download.url}" dest="${deps.dir}/${hornetq.filename}" usetimestamp="true"/>
+        <get src="${junit.download.url}" dest="${deps.dir}/${junit.filename}" usetimestamp="true"/>
+        <get src="${jboss.download.url}" dest="${deps.dir}/${jboss.filename}" usetimestamp="true"/>
+       <unzip src="${deps.dir}/${gwt.filename}" dest="${deps.dir}"/>
+        <unzip src="${deps.dir}/${gwt-gears.filename}" dest="${deps.dir}"/>
+        <unzip src="${deps.dir}/${gwt-visualization.filename}" dest="${deps.dir}"/>
+        <unzip src="${deps.dir}/${hornetq.filename}" dest="${deps.dir}"/>
+        <unzip src="${deps.dir}/${junit.filename}" dest="${deps.dir}"/>
+        <unzip src="${deps.dir}/${jboss.filename}" dest="${jboss.home}/.."/>
+    </target>
+
+       <target name="install" depends="fetch-dependencies" description="Installs the configuration files of the application server">
                <!-- Install HornetQ configuration -->
                <copy todir="${jboss.run_conf.lib.dir}">
                        <fileset dir="${hornetq.path}/lib">
                <copy todir="${jboss.deploy.dir}" overwrite="true" failonerror="false">
                        <fileset dir="${jboss-spec.deploy.dir}" />
                </copy>
-       </target>
-
-       <target name="install-production" description="Installs the configuration files for the production deployment of the application server">
-               <!-- Install HornetQ configuration -->
-               <copy todir="${jboss.prod.run_conf.lib.dir}">
-                       <fileset dir="${hornetq.path}/lib">
-                               <include name="hornetq-*.jar"/>
-                               <include name="netty*.jar"/>
-                       </fileset>
-               </copy>
-               <property name="hornetq.prod.sar.dir" value="${jboss.prod.deploy.dir}/hornetq.sar"/>
-               <mkdir dir="${hornetq.prod.sar.dir}"/>
-               <copy todir="${hornetq.prod.sar.dir}">
-                       <fileset dir="${hornetq.path}/config/jboss-as/non-clustered" includes="*" excludes="**/jboss-as-4/**"/>
-               </copy>
-               <unzip src="${hornetq.path}/lib/hornetq-ra.rar" dest="${jboss.prod.deploy.dir}/hornetq-ra.rar"/>
-               <delete dir="${jboss.prod.deploy.dir}/messaging" failonerror="false"/>
-               <mkdir dir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x86"/>
-               <mkdir dir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x64"/>
-               <copy todir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x86" file="${hornetq.path}/bin/libHornetQAIO32.so"/>
-               <copy todir="${jboss.prod.bin.dir}/META-INF/lib/linux2/x64" file="${hornetq.path}/bin/libHornetQAIO64.so"/>
-               <!-- Install gss configuration -->
-               <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss.project}/bin"/>
-               </copy>
-               <copy todir="${jboss.prod.bin.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss-spec.prod.bin.dir}" />
-               </copy>
-               <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss.project}/conf"/>
-               </copy>
-               <copy todir="${jboss.prod.conf.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss-spec.prod.conf.dir}"/>
-               </copy>
-               <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss.project}/lib"/>
-               </copy>
-               <copy todir="${jboss.prod.run_conf.lib.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss-spec.prod.lib.dir}" />
-               </copy>
-               <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss.project}/deploy"/>
-               </copy>
-               <copy todir="${jboss.prod.deploy.dir}" overwrite="true" failonerror="false">
-                       <fileset dir="${jboss-spec.prod.deploy.dir}" />
-               </copy>
+        <!-- Make run.sh executable again -->
+        <chmod file="${jboss.bin.dir}/run.sh" perm="ugo+x"/>
        </target>
 
        <target name="compile" description="Compile src to bin">
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}"/>
        </target>
 
-       <target name="deploy-production" depends="package-ear" description="Deploy the project to the production server">
-               <copy todir="${jboss.prod.deploy.dir}" file="${build.dir}/${dist.ear}"/>
-       </target>
-
        <target name="redeploy" depends="package-ear" description="Redeploy the project to the server">
                <copy todir="${jboss.deploy.dir}" file="${build.dir}/${dist.ear}" overwrite="yes"/>
        </target>
        </target>
 
        <target name="clean" description="Delete the contents of the bin and www directories">
-               <delete dir="${build.dir}" />
-               <delete dir="${gwt.www.dir}" />
-               <delete dir="${gwt.www.admin.dir}" />
+               <delete dir="${build.dir}"/>
+               <delete dir="${gwt.www.dir}"/>
+               <delete dir="${gwt.www.admin.dir}"/>
        </target>
 
+    <target name="deinstall"
+       description="Delete the contents of the JBoss home directory">
+        <delete dir="${jboss.home}"/>
+    </target>
+
+    <target name="distclean" depends="deinstall, clean"
+        description="Delete the contents of the JBoss home directory and all downloaded artifacts">
+        <delete dir="${deps.dir}"/>
+    </target>
+
        <target name="test" description="Performs unit tests on the project" depends="compile">
                <available
                      property="junit.present"
 
                </junit>
        </target>
-       
+
+       <target name="run" description="Starts the server" depends="deploy">
+        <exec executable="${jboss.bin.dir}/run.sh" osfamily="unix">
+            <arg line="${jboss.args}"/>
+        </exec>
+               <exec executable="cmd" osfamily="windows">
+                   <arg value="/c"/>
+                   <arg value="${jboss.bin.dir}/run.bat"/>
+            <arg line="${jboss.args}"/>
+               </exec>
+    </target>
 </project>