diff options
author | Jake Farrell <jfarrell@apache.org> | 2011-04-20 16:35:20 +0000 |
---|---|---|
committer | Jake Farrell <jfarrell@apache.org> | 2011-04-20 16:35:20 +0000 |
commit | 209d6dcc0e2fece7e28e3092a8d7c52a7ab0d23f (patch) | |
tree | 691ee8e4f7e51c4511d822784279676d9002f0b0 | |
parent | 11676adeb37b8f13c0abd6b2dade85cadcc58382 (diff) | |
download | thrift-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.xml | 127 | ||||
-rw-r--r-- | lib/js/test/ivy.xml | 22 |
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> |