Skip to content
S4 repository
Java Shell Groovy Scala Perl Python
Latest commit 45efb82 Nov 28, 2011 Bruce Robbins matthieu's checkpointing test fix: adding AbstractPE.keyValueString a…
…s part of reference PE, because keyValueString was set as checkpointable in a recent commit

S4 - Stream Computing Platform

For more information, see


  • Linux
  • Java 1.6

Build Instructions

  • Build using Gradle

    • USAGE: gradlew TASK1, TASK2, ...

    • Main Tasks:

      • clean: deletes all the build dirs
      • jar: creates all the jars in PROJECT/build/libs
      • binImage: creates an image in the ./build subdir that includes jars, scripts, and other resources required to run the S4 server and sample applications.
      • binTgz: same in a gzipped tar file in ./build/distributions.
      • allImage: creates an image in the ./build subdir that includes what is in binImage plus sources, javadoc, and other documents.
      • allTgz: same in a gzipped tar file in ./build/distributions.
      • install: installs jars and POMs in local Maven repo (eg. ~/.m2)

The S4 Image Structure


                           driver jar
                           dependencies jars
                           java examples jar
                           python, perl, and shell scripts

Running the Twitter Topic Count Example

#  Download the project files from the repository.
git clone

# Create image
./gradlew allImage

# set the S4_IMAGE environmental variable
cd build/s4-image/
export S4_IMAGE=`pwd`

# get the sample application
git clone git://

# build the sample application
./gradlew install

# deploy the sample application into the S4 image (relies in the S4_IMAGE environmental variable)
./gradlew deploy

# set the TWIT_LISTENER environmental variable
cd build/install/twitter_feed_listener
export TWIT_LISTENER=`pwd`

# Start server with twittertopiccount app
$S4_IMAGE/scripts/ -r client-adapter &

# start the client adapter
$S4_IMAGE/scripts/ -s client-adapter -g s4 -d $S4_IMAGE/s4-core/conf/default/client-stub-conf.xml &

# run a client to send events into the S4 cluster. Replace *your-twitter-user* and *your-twitter-password* with your Twitter userid and password.
$TWIT_LISTENER/bin/twitter_feed_listener *your-twitter-user* *your-twitter-password* &

# Check output
cat /tmp/top_n_hashtags

Developing with Eclipse

The command gradle eclipse will create an eclipse project that you can import from the Eclipse IDE.

There is now a Gradle plugin for the Eclipse IDE. To install Gradle without installing the full Spring development environment follow the instructions under the heading "Installing from update site". There is also a discussion in the Gradle mailing list.

Something went wrong with that request. Please try again.