Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

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
  • Loading branch information...
commit fa89932a49f80ddea079c783232f6d304c59352e 1 parent 8d410de
@bufferoverflow bufferoverflow authored
View
2  Makefile.am
@@ -19,7 +19,7 @@
ACLOCAL_AMFLAGS = -I ./aclocal
-SUBDIRS = compiler/cpp lib
+SUBDIRS = compiler/cpp lib tutorial
if WITH_TESTS
SUBDIRS += test
View
3  configure.ac
@@ -611,6 +611,9 @@ AC_CONFIG_FILES([
test/py/Makefile
test/py.twisted/Makefile
test/rb/Makefile
+ tutorial/Makefile
+ tutorial/java/Makefile
+ tutorial/js/Makefile
])
AC_OUTPUT
View
56 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
View
26 tutorial/java/JavaServer → 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
View
37 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
View
62 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">
View
15 tutorial/java/JavaClient → 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
View
13 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" />
View
8 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>
Please sign in to comment.
Something went wrong with that request. Please try again.