diff options
author | Roger Meier <roger@apache.org> | 2012-10-22 19:27:38 +0000 |
---|---|---|
committer | Roger Meier <roger@apache.org> | 2012-10-22 19:27:38 +0000 |
commit | fa89932a49f80ddea079c783232f6d304c59352e (patch) | |
tree | 53555241d1c9efd42dd284b02acb71a3ef01590d /tutorial | |
parent | 8d410de0a057e301505c870a9a67e0e73510d0a0 (diff) | |
download | thrift-fa89932a49f80ddea079c783232f6d304c59352e.tar.gz |
THRIFT-1735 integrate tutorial into regular build
Patch: Roger Meier
git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1401032 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tutorial')
-rwxr-xr-x | tutorial/Makefile.am | 56 | ||||
-rwxr-xr-x | tutorial/java/Makefile.am (renamed from tutorial/java/JavaServer) | 26 | ||||
-rw-r--r-- | tutorial/java/README | 37 | ||||
-rw-r--r-- | tutorial/java/build.xml | 62 | ||||
-rwxr-xr-x | tutorial/js/Makefile.am (renamed from tutorial/java/JavaClient) | 15 | ||||
-rw-r--r-- | tutorial/js/build.xml | 13 | ||||
-rw-r--r-- | tutorial/js/tutorial.html | 8 |
7 files changed, 171 insertions, 46 deletions
diff --git a/tutorial/Makefile.am b/tutorial/Makefile.am new file mode 100755 index 000000000..a6ff7c5ce --- /dev/null +++ b/tutorial/Makefile.am @@ -0,0 +1,56 @@ +# +# 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. +# + +SUBDIRS = + +if WITH_CPP +#SUBDIRS += cpp +endif + +if WITH_JAVA +SUBDIRS += java +SUBDIRS += js +endif + +if WITH_PERL +#SUBDIRS += perl +endif + +if WITH_PHP +#SUBDIRS += php +endif + +if WITH_PYTHON +#SUBDIRS += py +#SUBDIRS += py.twisted +endif + +if WITH_RUBY +#SUBDIRS += rb +endif + +if WITH_HASKELL +#SUBDIRS += hs +endif + +# +# generate html for ThriftTest.thrift +# +check-local: + $(top_builddir)/compiler/cpp/thrift --gen html -r $(top_srcdir)/tutorial/tutorial.thrift diff --git a/tutorial/java/JavaServer b/tutorial/java/Makefile.am index cf977caaa..16ae399c6 100755 --- a/tutorial/java/JavaServer +++ b/tutorial/java/Makefile.am @@ -1,5 +1,3 @@ -#!/bin/sh - # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -19,11 +17,21 @@ # under the License. # -# Optionally the following properties could be set for SSL instead -# of configuring it in the code -# -Djavax.net.ssl.trustStore=../../lib/java/test/.truststore -# -Djavax.net.ssl.trustStorePassword=thrift -# -Djavax.net.ssl.keyStore=../../lib/java/test/.keystore -# -Djavax.net.ssl.keyStorePassword=thrift +export CLASSPATH + +# Make sure this doesn't fail if ant is not configured. +clean-local: + ANT=$(ANT) ; if test -z "$$ANT" ; then ANT=: ; fi ; \ + $$ANT $(ANT_FLAGS) clean + +check-local: all + $(ANT) $(ANT_FLAGS) test + +tutorial: all + $(ANT) $(ANT_FLAGS) tutorial + +tutorialserver: all + $(ANT) $(ANT_FLAGS) tutorialserver -java -cp ../../lib/java/build/lib/*:../../lib/java/build/*:tutorial.jar JavaServer +tutorialclient: all + $(ANT) $(ANT_FLAGS) tutorialclient
\ No newline at end of file diff --git a/tutorial/java/README b/tutorial/java/README index 9f03ba7f1..c0811f7f2 100644 --- a/tutorial/java/README +++ b/tutorial/java/README @@ -1,29 +1,20 @@ -Steps for Java tutorial +Thrift Java Tutorial ================================================== +1) Compile the Java library -1) Make sure thrift is compiled, both the compiler and the Java library. You should -be able to verify the following: +thrift/lib/java$ make +or: +thrift/lib/java$ ant -thrift/tutorial/java$ file ../../lib/java/build/libthrift-${version}-${release}.jar -../../lib/java/libthrift.jar: Zip archive data, at least v1.0 to extract +4) Run the tutorial: -thrift/tutorial/java$ file ../../compiler/cpp/thrift -../../compiler/cpp/thrift: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped +start server and client with one step: +thrift/tutorial/java$ make tutorial -thrift/tutorial/java$ ls ../../lib/java/build/ivy/lib/ -commons-lang-2.5.jar junit-4.4.jar servlet-api-2.5.jar slf4j-api-1.5.8.jar slf4j-simple-1.5.8.jar +or: +thrift/tutorial/java$ make tutorialserver +thrift/tutorial/java$ make tutorialclient - -2) Generate code for java: - -thrift/tutorial/java$ cd .. -thrift/tutorial$ thrift -r -gen java tutorial.thrift - -3) Compile example - -thrift/tutorial/java$ ant - -4) Run example: - -thrift/tutorial/java$ ./JavaServer & -thrift/tutorial/java$ ./JavaClient +or: +thrift/tutorial/java$ ant tutorialserver +thrift/tutorial/java$ ant tutorialclient diff --git a/tutorial/java/build.xml b/tutorial/java/build.xml index 2ee11c0c2..28c3bd64f 100644 --- a/tutorial/java/build.xml +++ b/tutorial/java/build.xml @@ -18,10 +18,10 @@ --> <project name="tutorial" default="tutorial" basedir="."> - <description>Thrift Tutorial</description> + <description>Thrift Java Tutorial</description> <property name="src" location="src" /> - <property name="gen" location="../gen-java" /> + <property name="gen" location="gen-java" /> <property name="build" location="build" /> <path id="libs.classpath"> @@ -37,19 +37,71 @@ <path refid="libs.classpath" /> <pathelement path="${gen}" /> </path> - + <path id="tutorial.classpath"> + <path refid="build.classpath" /> + <pathelement path="${build}" /> + <pathelement path="tutorial.jar" /> + </path> + <target name="init"> <tstamp /> <mkdir dir="${build}"/> + <mkdir dir="${build}/log"/> </target> - <target name="compile" depends="init"> + <target name="compile" depends="init, generate"> <javac srcdir="${gen}" destdir="${build}" classpathref="libs.classpath" /> <javac srcdir="${src}" destdir="${build}" classpathref="build.classpath" /> </target> - <target name="tutorial" depends="compile"> + <target name="test" depends="tutorial" /> + + <target name="tutorial" description="Run the tutorial" depends="compile"> <jar jarfile="tutorial.jar" basedir="${build}"/> + <parallel> + <java classname="JavaServer" fork="true" timeout="10000" + classpathref="tutorial.classpath" failonerror="false" output="${build}/log/tutorial.log"> + </java> + <sequential> + <sleep seconds="2"/> + <echo>tutorial client simple:</echo> + <java classname="JavaClient" + classpathref="tutorial.classpath" failonerror="true"> + <arg line="simple"/> + </java> + <echo>tutorial client secure:</echo> + <java classname="JavaClient" + classpathref="tutorial.classpath" failonerror="true"> + <arg line="secure"/> + </java> + </sequential> + </parallel> + </target> + + <target name="generate"> + <!-- Generate the thrift gen-java source --> + <exec executable="../../compiler/cpp/thrift" failonerror="true"> + <arg line="--gen java -r ../tutorial.thrift"/> + </exec> + </target> + + <target name="tutorialclient" description="Run a tutorial client" depends="compile"> + <echo>tutorial client simple:</echo> + <java classname="JavaClient" + classpathref="tutorial.classpath" failonerror="true"> + <arg line="simple"/> + </java> + <echo>tutorial client secure:</echo> + <java classname="JavaClient" + classpathref="tutorial.classpath" failonerror="true"> + <arg line="secure"/> + </java> + </target> + + <target name="tutorialserver" description="Run a tutorial server" depends="compile"> + <java classname="JavaServer" fork="true" + classpathref="tutorial.classpath" failonerror="false" output="${build}/log/tutorial.log"> + </java> </target> <target name="clean"> diff --git a/tutorial/java/JavaClient b/tutorial/js/Makefile.am index dae515e44..1f57f205f 100755 --- a/tutorial/java/JavaClient +++ b/tutorial/js/Makefile.am @@ -1,5 +1,3 @@ -#!/bin/sh - # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file @@ -19,4 +17,15 @@ # under the License. # -java -cp ../../lib/java/build/lib/*:../../lib/java/build/*:tutorial.jar JavaClient $1 +export CLASSPATH + +# Make sure this doesn't fail if ant is not configured. +clean-local: + ANT=$(ANT) ; if test -z "$$ANT" ; then ANT=: ; fi ; \ + $$ANT $(ANT_FLAGS) clean + +check-local: all + $(ANT) $(ANT_FLAGS) test + +tutorialserver: all + $(ANT) $(ANT_FLAGS) tutorialserver diff --git a/tutorial/js/build.xml b/tutorial/js/build.xml index f75778957..348f22933 100644 --- a/tutorial/js/build.xml +++ b/tutorial/js/build.xml @@ -22,11 +22,12 @@ <property name="src" location="src" /> <property name="javasrc" location="../java/src" /> - <property name="gen" location="../gen-java" /> + <property name="gen" location="../java/gen-java" /> <property name="build" location="build" /> <!-- the root directory, where you unpack thrift distibution (e.g. thrift-0.x.x.tar.gz) --> <property name="thrift.dir" location="../../" /> + <!-- JavaScript tutorial depends on the java tutorial thrift handler and server infrastructure --> <property name="thrift.java.dir" location="${thrift.dir}/lib/java" /> <path id="libs.classpath"> @@ -61,17 +62,25 @@ </javac> </target> + <target name="test" depends="tutorial" /> + <target name="tutorial" depends="compile"> <jar jarfile="tutorial-js.jar" basedir="${build}"/> </target> - <target name="test" description="run the test server" depends="tutorial"> + <target name="tutorialserver" description="run the test server" depends="tutorial, generate"> <java classname="Httpd" fork="true" classpathref="build.classpath" failonerror="true"> <arg value="../../" /> </java> </target> + <target name="generate"> + <exec executable="../../compiler/cpp/thrift" failonerror="true"> + <arg line="--gen js -r ../tutorial.thrift"/> + </exec> + </target> + <target name="clean"> <delete dir="${build}" /> <delete file="tutorial-js.jar" /> diff --git a/tutorial/js/tutorial.html b/tutorial/js/tutorial.html index a34c9f383..e9004214e 100644 --- a/tutorial/js/tutorial.html +++ b/tutorial/js/tutorial.html @@ -23,10 +23,10 @@ <title>Thrift Javascript Bindings - Tutorial Example</title> <script src="../../lib/js/thrift.js" type="text/javascript"></script> - <script src="../gen-js/tutorial_types.js" type="text/javascript"></script> - <script src="../gen-js/shared_types.js" type="text/javascript"></script> - <script src="../gen-js/SharedService.js" type="text/javascript"></script> - <script src="../gen-js/Calculator.js" type="text/javascript"></script> + <script src="gen-js/tutorial_types.js" type="text/javascript"></script> + <script src="gen-js/shared_types.js" type="text/javascript"></script> + <script src="gen-js/SharedService.js" type="text/javascript"></script> + <script src="gen-js/Calculator.js" type="text/javascript"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> |