summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Farrell <jfarrell@apache.org>2011-04-20 16:35:20 +0000
committerJake Farrell <jfarrell@apache.org>2011-04-20 16:35:20 +0000
commit209d6dcc0e2fece7e28e3092a8d7c52a7ab0d23f (patch)
tree691ee8e4f7e51c4511d822784279676d9002f0b0
parent11676adeb37b8f13c0abd6b2dade85cadcc58382 (diff)
downloadthrift-209d6dcc0e2fece7e28e3092a8d7c52a7ab0d23f.tar.gz
Thrift-1133: Java and JavaScript tutorial is broken since we have Java maven deployment
patch: jfarrell client: js Fixing build.xml for the js test cases to use ant-tasks. git-svn-id: https://svn.apache.org/repos/asf/thrift/branches/0.6.x@1095454 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--lib/js/test/build.xml127
-rw-r--r--lib/js/test/ivy.xml22
2 files changed, 70 insertions, 79 deletions
diff --git a/lib/js/test/build.xml b/lib/js/test/build.xml
index ee38edbe0..bd2faf25a 100644
--- a/lib/js/test/build.xml
+++ b/lib/js/test/build.xml
@@ -7,7 +7,7 @@
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
+ http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
@@ -17,8 +17,8 @@
under the License.
-->
<project name="Java Script Test" default="test" basedir="."
- xmlns:ivy="antlib:org.apache.ivy.ant"
- xmlns:artifact="antlib:org.apache.maven.artifact.ant">
+ xmlns:artifact="antlib:org.apache.maven.artifact.ant"
+ xmlns:jsl="antlib:com.googlecode.jslint4java">
<description>Java Script Test based on Thrift Java Library</description>
@@ -32,16 +32,19 @@
<property name="thrift.dir" location="../../../" />
<property name="thrift.java.dir" location="${thrift.dir}/lib/java" />
- <property name="thrift.compiler" location="${thrift.dir}/compiler/cpp/thrift" />
+ <!-- Include the base java properties file -->
+ <property file="${thrift.java.dir}/build.properties" />
- <!-- take ivy from java, test depends anyway on java! -->
- <property name="ivy.dir" location="${thrift.java.dir}/build/ivy" />
- <property name="ivy.lib.dir" location="${ivy.dir}/lib" />
+ <property name="thrift.compiler" location="${thrift.dir}/compiler/cpp/thrift" />
<path id="libs.classpath">
- <pathelement path="${thrift.java.dir}/libthrift.jar" />
- <pathelement path="${thrift.java.dir}/libthrift-test.jar" />
- <fileset dir="${thrift.java.dir}/build/ivy/lib">
+ <fileset dir="${thrift.java.dir}/build/">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${thrift.java.dir}/build/lib">
+ <include name="*.jar" />
+ </fileset>
+ <fileset dir="${build}/lib">
<include name="*.jar" />
</fileset>
</path>
@@ -55,29 +58,19 @@
<fail>
<condition>
<not>
- <resourcecount count="1">
- <fileset id="fs" dir="${thrift.java.dir}" includes="libthrift.jar"/>
+ <resourcecount count="2">
+ <fileset id="fs" dir="${thrift.java.dir}/build" includes="libthrift*.jar"/>
</resourcecount>
</not>
</condition>
- You need libthrift.jar located at
- ${thrift.java.dir}
+ You need libthrift*.jar and libthrift*test.jar located at
+ ${thrift.java.dir}/build
Did you compile Thrift Java library and its test suite by "ant compile-test"?
</fail>
<fail>
<condition>
<not>
<resourcecount count="1">
- <fileset id="fs" dir="${ivy.dir}" includes="ivy-2*.jar"/>
- </resourcecount>
- </not>
- </condition>
- ivy is missing at ${ivy.dir}
- </fail>
- <fail>
- <condition>
- <not>
- <resourcecount count="1">
<fileset id="fs" dir="${thrift.dir}" includes="compiler/cpp/thrift"/>
</resourcecount>
</not>
@@ -89,6 +82,7 @@
<target name="init" depends="dependencies">
<tstamp />
<mkdir dir="${build}"/>
+ <mkdir dir="${build}/lib"/>
</target>
<target name="compile" description="compile the test suite" depends="init, generate, resolve">
@@ -96,11 +90,11 @@
<javac srcdir="${src}" destdir="${build}" classpathref="libs.classpath" />
</target>
- <target name="jstest" description="" depends="compile">
+ <target name="jstest" description="" depends="compile, lint">
<jar jarfile="${jar.file}" basedir="${build}"/>
</target>
- <target name="test" description="run the test server" depends="jstest">
+ <target name="testserver" description="run the test server" depends="jstest">
<java classname="test.Httpd" fork="true"
classpathref="test.classpath" failonerror="true">
<arg value="../" />
@@ -112,46 +106,65 @@
<arg line="--gen java ${thrift.dir}/test/ThriftTest.thrift" />
</exec>
<exec executable="${thrift.compiler}" failonerror="true">
- <arg line="--gen js ${thrift.dir}/test/ThriftTest.thrift" />
+ <arg line="--gen js:jquery ${thrift.dir}/test/ThriftTest.thrift" />
</exec>
</target>
- <target name="clean">
- <delete dir="${build}" />
- <delete dir="${genjava}" />
- <delete dir="${genjs}" />
- <delete file="${jar.file}" />
+ <!-- @TODO QUnit tests as part of the testsuite-->
+ <target name="test" description="run test suite" depends="init, generate, resolve, lint"/>
+
+ <target name="lint" description="code quality checks" depends="generate, gjslint, jslint"/>
+
+ <target name="jslint">
+ <taskdef uri="antlib:com.googlecode.jslint4java" resource="com/googlecode/jslint4java/antlib.xml" classpathref="libs.classpath" />
+ <!--
+ the following options would probably make sense in the future:
+ browser,undef,eqeqeq,plusplus,bitwise,regexp,strict,newcap,immed
+ -->
+ <jsl:jslint options="evil,forin,browser,bitwise,regexp,newcap,immed">
+ <formatter type="plain" />
+ <fileset dir="${genjs}" includes="**/*.js" />
+ <fileset dir=".." includes="thrift.js" />
+ </jsl:jslint>
</target>
- <!-- ivy tasks from java build.xml ... don't know how to import them instead of copying -->
- <target name="resolve" depends="ivy-init-antlib" description="retrieve dependencies with ivy" unless="noivy">
- <ivy:retrieve />
+ <target name="check-gjslint">
+ <echo>check if gjslint is available:</echo>
+ <exec executable="gjslint" failifexecutionfails="no" resultproperty="gjslint.present" failonerror="false">
+ <arg line="--helpshort"/>
+ </exec>
</target>
- <target name="ivy-probe-antlib">
- <condition property="ivy.found">
- <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
- </condition>
+ <target name="gjslint" depends="check-gjslint" if="gjslint.present">
+ <exec executable="gjslint" failifexecutionfails="no">
+ <arg line="--nojsdoc"/>
+ <arg line="${genjs}/*.js"/>
+ <arg line="../thrift.js"/>
+ </exec>
</target>
- <target name="ivy-init-antlib" depends="ivy-probe-antlib" unless="ivy.found">
- <typedef uri="antlib:org.apache.ivy.ant" onerror="fail"
- loaderRef="ivyLoader">
- <classpath>
- <fileset dir="${ivy.dir}">
- <include name="ivy-2.*.jar" />
- </fileset>
- </classpath>
- </typedef>
- <fail>
- <condition >
- <not>
- <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
- </not>
- </condition>
- You need Apache Ivy 2.0 or later from http://ant.apache.org/
- It could not be loaded from ${ivy_repo_url}
- </fail>
+ <target name="clean">
+ <delete dir="${build}" />
+ <delete dir="${genjava}" />
+ <delete dir="${genjs}" />
+ <delete file="${jar.file}" />
</target>
+ <target name="resolve" unless="mvn.finished">
+ <typedef uri="antlib:org.apache.maven.artifact.ant" classpath="${thrift.java.dir}/build/tools/${mvn.ant.task.jar}"/>
+
+ <artifact:dependencies filesetId="js.test.dependency.jars">
+ <dependency groupId="org.apache.httpcomponents" artifactId="httpclient" version="4.0.1"/>
+ <dependency groupId="com.googlecode.jslint4java" artifactId="jslint4java-ant" version="1.4.6"/>
+ </artifact:dependencies>
+
+ <!-- Copy the dependencies to the build/lib dir -->
+ <copy todir="${build}/lib">
+ <fileset refid="js.test.dependency.jars"/>
+ <mapper type="flatten"/>
+ </copy>
+
+ <property name="mvn.finished" value="true"/>
+ </target>
</project>
+
diff --git a/lib/js/test/ivy.xml b/lib/js/test/ivy.xml
deleted file mode 100644
index fdd2d9024..000000000
--- a/lib/js/test/ivy.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<ivy-module version="2.0">
- <info organisation="org.apache.thrift" module="jstest"/>
- <dependencies>
- <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.0.1" conf="* -> *,!sources,!javadoc"/>
- </dependencies>
-</ivy-module>