From 2124181079daf4058f7100f2c7fd6db2c0fc665a Mon Sep 17 00:00:00 2001
From: Jonathan Hsieh <jon@cloudera.com>
Date: Wed, 22 Jun 2011 21:25:22 -0700
Subject: [PATCH] FLUME-677: Update build instructions in devnotes

---
 .gitignore                                         |   13 +-
 DEVNOTES                                           |  388 +++++++++++---------
 bin/flume                                          |   10 -
 pom.xml                                            |    2 +-
 src/examples/tutorial.flume                        |  119 ------
 src/javatest/all-tests-file                        |    1 -
 .../com/cloudera/flume/mapreduce/FlumeDataJob.java |   22 --
 src/saveVersion.sh                                 |   62 ---
 8 files changed, 223 insertions(+), 394 deletions(-)
 delete mode 100644 src/examples/tutorial.flume
 delete mode 100644 src/javatest/all-tests-file
 delete mode 100644 src/mapreduce/com/cloudera/flume/mapreduce/FlumeDataJob.java
 delete mode 100755 src/saveVersion.sh

diff --git a/.gitignore b/.gitignore
index 7fde071..aeea03a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,5 @@
 # Lines that start with '#' are comments.
 *~
-src/java/com/cloudera/flume/package-info.java
-src/gen-java/com/cloudera/flume/conf/RuntimeRecognitionException.java
-build/
-build_eclipse/
 *.diff
 *#
 .classpath
@@ -12,11 +8,8 @@ build_eclipse/
 bin/flume-env.sh
 conf/flume-site.xml
 bin/.settings
-libtest/
-lib/ivy-*.jar
-src/avro-gen-java
-src/avro/*.avpr
-/docs/
 .eclipse
 pmd_report.html
-target
+*/bin
+/plugins/*/bin
+/plugins/*/target
\ No newline at end of file
diff --git a/DEVNOTES b/DEVNOTES
index 76d7086..c7b2d4e 100644
--- a/DEVNOTES
+++ b/DEVNOTES
@@ -1,256 +1,295 @@
 Flume Developer Notes
 =====================
-Jonathan Hsieh <jon@cloudera.com>
-6/29/10
-
+Jonathan Hsieh <jmhsieh@apache.org>
+6/22/11
 
 // This is in asciidoc markup
 
-== Introduction 
+== Introduction
 
 This is meant to be a a guide for issues that occur when building,
 debugging and setting up flume as developer.
 
 == High level directory and file structure.
 
+Flume is a maven build system based project and has components broken
+down into modules.
+
 ----
-./bin/                  flume scripts
-./conf/                 flume configuration files
-./lib/                  libraries used by flume
-./libbuild/             libraries used by flume for building
-./libtest/              libraries used by flume for testing
-./src/ahocorasick       a library for multple string search
-./src/antlr             flume config language ANTLR grammer files
-./src/gen-java          autogenrated java source files (from antlr/thrift)
-./src/java              flume java source code
+./bin/                  flume startup scripts
+./conf/                 flume configuration file samples
+./contrib/flogger	flume logger: a flume client implemented in C
+./docs/man		flume man pages
+./flume-config-web	flume master configuration servlet module
+./flume-core		flume core module
+./flume-distribution	flume distribution package module
+./flume-docs		flume documentation generation module
+./flume-log4j-appender  flume log4j-avro appender module
+./flume-node-web	flume node status servlet module
+./flume-windows-dist	flume node windows distribution package module
+./plugins/    	        flume plugin modules (hello world skeleton and hbase)
 ./src/javaperf          flume performance tests (out of date)
-./src/javatest          flume unit tests
 ./src/javatest-torture  flume reliability tests (out of date)
-./src/thrift            flume thrift idl files (for rpc)
-./src/webapps           flume webapp jsp source code
 ----
 
-Files created by build:
+The files exclusions in `.gitignore` are either autogenerated by maven or eclipse.
+
+== Building and Testing Flume
+
+=== Prerequisites
+
+There are several tools required to do a full build of flume but only
+the thrift compiler is required for development and testing builds.
+
+To build documentation, you will need to have asciidoc installed.
+
+To build windows installers, you will need to have makensis installed.
+
+==== Building thrift
+
+The thrift compiler is required to build flume and currently does not
+have a binary packages avaiblle for linux based platforms.  (Windows
+is available in binary).  There are several requirements necesary to
+build it.  Here's a link to the requirements
+
+http://wiki.apache.org/thrift/ThriftRequirements
+
+This page also contains links explaining how to install the
+requirements for various platforms.
+
+=== Using maven
+
+We are using maven v2.x.x.  The maven build system steps through
+several phases to create build artefacts.  At the highest level, the
+phases that are relevent to most devs are "compile" -> "test" ->
+"package" -> "install".
+
+There are several options and "profiles" available in the flume build.
+The default profile is a "dev" profile.  Below we include a examples
+of common build command lines to build different profiles.
+
+A development build that runs unit tests and installs to local maven
+repo.  This builds and tests all plugins, but excludes modules that
+have aren't needed during development (eg. windows installer,
+documentation).
+
 ----
-./build
+mvn install
 ----
 
-== Files in `.gitignore` 
+A developement build that skips the excution of unit tests.
 
-The exclusions in .gitignore are either autogenerated or build/eclipse
-specific
-
-== eclipse project setup.
+----
+mvn install -DskipTests
+----
 
-Run "ant eclipse", then create a new java project in eclipse with the
-current directory as the base project directory.
+A development build that runs unit test (no package generation)
 
 ----
-./.eclipse              default working directory for eclipse
+mvn test
 ----
 
-Note: eclipse class files are not used by bin/flume, you must either
-a) compile via ant for bin/flume to pick up your modified code, or b)
-specify eclipse on the flume classpath, e.g.:
+A development build that runs unit tests including only specific tests
+(where <TestFile> is a regex of a class name without .java or .class
+or path).
+
+----
+mvn test -Dtest=<ClassRegex>
+----
 
-FLUME_CLASSPATH=./.eclipse/classes-main:./.eclipse/classes-test bin/flume
+Window node build, skipping unit tests (requires makensis).
 
-== Building thrift
+NOTE: makensis is available on linux and mac homebrew so this can be
+build while running in these operating systems.
 
-This will create a repository in ./apache-thrift
 ----
-git clone git://git.apache.org/thrift.git
-cd thrift
-git fetch
-git checkout -b thrift-0.2.0 origin/tags/thrift-0.2.0
-bootstrap.sh
-configure
-make
-sudo make install
+mvn install -Pwindows -DskipTests
 ----
 
-Problem: During bootstrap.sh
+Full build, skipping unit tests (requires asciidoc), and does not build windows.
+
 ----
-configure.ac:44: error: possibly undefined macro: AC_PROG_LIBTOOL
-      If this token and others are legitimate, please use m4_pattern_allow.
-      See the Autoconf documentation.
+mvn install -Pfull-build -DskipTests
 ----
-Solution: install libtool
+
+Full build, make both docs and windows.
+
 ----
-sudo apt-get install libtool
+mvn install -Pfull-build,windows
 ----
 
-== Generated source
+==== Pointing the maven build at the proper thrift executable
+
+Flume has over time changed to newer versions of thrift. The maven
+build requires a pointer to the proper thrift compiler.
 
-These files should not be checked in unless their source files are modified.  
+If you install thrift in a non-standard location (not
+/usr/local/thrift/bin), you will need to provide the build some extra
+information.  This may be the case if you overrode the standard thrift
+install (+make install+ 's default target) or are running thrift from
+a home directory.
+
+One way to provide this is via the maven command line by setting the
+thrift.executable variable (this assumes that we made different dirs
+for different versions of thrift):
 
-For ANTLR
 ----
-src/gen-java/com/cloudera/flume/conf/FlumeDeployLexer.java
-src/gen-java/com/cloudera/flume/conf/FlumeDeployParser.java
+mvn install -Dthrift.executable=/usr/local/thrift-0.6.0/bin/thrift
 ----
 
-== Running test with ant.
+Another way to provide this information to your maven build is to
+modifiy your maven profile by adding/modifiying your
+~/.m2/settings.xml file and overriding the default thrift.executable
+setting to point to your thrift compiler executable.  In the example
+below, we install different versions of the thrift compiler in
+different directories and thus need to change the setting.
 
 ----
-ant test
+<settings>
+  <profiles>
+    <profile>
+      <id>flume</id>
+      <properties>
+        <thrift.executable>/usr/local/thrift-0.6.0/bin/thrift</thrift.executable>
+      </properties>
+    </profile>
+  </profiles>
+
+  <activeProfiles>
+    <activeProfile>flume</activeProfile>
+  </activeProfiles>
+</settings>
 ----
 
-=== Running only specified test cases from ant
+=== Running the most recent build
+
+To run the most recent build of Flume, first build the distribuion
+packages.
 
 ----
-ant test -Dtestcase=<TestFile>
+mvn install -DskipTests
 ----
 
-where <TestFile> is  a class name without .java or .class or path.
+You can then traverse into
+./flume-distribution/target/flume-distribution-<version>-bin/flume-distribution-<version>.
+This directory is setup exactly as the tarball installation of flume
+would be.
 
-(How do is specify just a function?)
 
-== origin/master invariants
+=== Building on Windows platforms
 
-Always should build. 
+Building flume in windows is possible.  One can generate packages and
+installer executable on windows.  This build assumes a cygwin
+envrionment, but may not require it.
 
-Ideally tests all pass
+This build requires
 
-== Push invariants
+* maven for windows
+* makensis (for windows installer build)
+* java 1.6+
 
-We should tag pushes with JIRA nubmers.
+You should be able run the normal mvn commands.
 
-== Flume's web application
+The current windows installer executable does not handle all error
+handling situations and does not checks to see if not run as
+administrator.
 
+=== Building documentation
 
-The default setup for flume is to run its servlets from precompiled
-jsps.  The default configuration points jetty (a jsp server) to
-information found in the ./webapps directory.  We assume that most
-developers and users will be in core, so at the git project root dir,
-./webapps is a symlink that points to the build/webapps directory.
-This is where static files and auto-generated files that are generated when
-flume is compiled.  Using this symlink makes the flume webapp use
-precompiled jsp pages.
+Documentation for Flume is written in asciidoc.  It relies on several
+libraries to generate images.
 
-One can debug the jsp pages or have them autogenerate at runtime
-(useful for development) by changing this symlink to point to
-src/webapps.  This directory has subapps and jsp source
-code. Debugging is easier when it is more dynamic and our servlet
-container Jetty can dyamically comile jsp pages to hasten the
-debugging process.  
+* asciidoc v8.5.2
+* graphviz (dot) v2.26.3
+* xmlto
 
-Here are some tips for getting the web apps for Flume Master or Flume
-Node running from inside eclipse.
+Documents can be built by running 'mvn -Pfull-build'
 
-* Make sure `tools.jar` is in your java classpath.  If JAVA_HOME is
-  set to a JDK JVM path (as opposed to a JRE) this jar should be
-  included.  This jar includes the java compiler which is required to
-  enable the compilation of jsp's so they can be served on the fly.
-* Ant is used to compile jsps.  Make sure some version of
-  ant-launcher.jar and ant-1.x.x.jar is in your build path. (if you
-  are in eclipse for example).  These files live in ./libbuild
-* The default is to point to a the web app at a precompiled version of
-  of the servlets.  There is a hook in flume-site.xml to point the
-  jetty at a directory full of jsps.  It assumes that hte flume
-  directory is the base for relative paths or can use a fully
-  qualified path
 
-Environment variables can be set in the +bin/flume-env.sh+ script.
-----
-# bin/flume-env.sh for Ubuntu installs
-export JAVA_HOME=/usr/lib/jvm/java-6-sun
-----
+== Integrated Development Environments for Flume
 
-Alternately, instead of using symlnks, one can set the following
-property in the system's flume-site.conf file, like below.
+Currently most Flume developers use the Eclipse IDE. We have included
+some instructions for getting started with eclipse.
 
-----
-  <property>
-    <name>flume.webapps.path</name>
-    <value>src/webapps</value>
-    <description>This is the path use to the web apps that display
-    flume node/master data
+=== Setting up a Flume Eclipse projects from the Maven POMs.
 
-      Use src webapps for development.
-    </description>
-  </property>
-----
+If you use eclipse we suggest you use the m2eclipse plugin available
+here to properly create an environment for dev and testing in eclipse.
 
-=== Problems when compiling JSPs
-
-BUILD FAILED
-/home/jon/flume/build.xml:471: java.lang.ExceptionInInitializerError
-        at org.apache.jasper.JspCompilationContext.createCompiler(JspCompilationContext.java:197)
-        at org.apache.jasper.JspC.processFile(JspC.java:772)
-        at org.apache.jasper.JspC.execute(JspC.java:908)
-        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
-        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
-        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
-...
- 
-Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category) (Caused by org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@31554233 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Category))
-        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
-        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
-        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
-        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
-        at org.apache.jasper.compiler.Compiler.<clinit>(Compiler.java:55)
-        ... 25 more
-
-  
-Make sure that log4j-xxx.jar is in your CLASSPATH.
-
-== Avro.  
-
-Using a post 1.2.0 version that has reflection that supports
-Strings, byte[]'s and extracting fields defined in super classes.
-
-requires (in repo):
-----
-lib/avro-1.2.0-dev.jar      # (trunk hash 8911c848 ; more avro 1.3 than 1.2)
-lib/paranamer-1.5.jar       # extra reflection stuff
-lib/jackson-core-asl-1.1.1.jar    # json parser    
-lib/jackson-mapper-asl-1.1.1.jar  # json parser
-----
+http://m2eclipse.sonatype.org/
 
-== Developer mode.
+After installing it in eclipse you will want to "Import" the Flume
+pom.xml project.
 
-This is an option in the bin/flume for using eclipse built class files
-instead of ant built class files.  
+This can be done by going to the Eclipse applications menu, navigating
+to File > Import... > Existing Maven Projects.  From there, browse to
+and select the directory that contains the root of the flume project.
 
-in bash one would set FLUME_DEVMODE to true:
+The build requires the location of the thrift compiler executable --
+see the instructions about .m2/settings.xml files in the building
+flume section for more details.
 
-----
-$ declare -x FLUME_DEVMODE=true
-----
+The flume-core project will have errors -- these can be resolved by manually adding these dirs to you build source dirs:
 
-It is assumed that the eclipse build path is build_eclipse/.
+* ./flume-core/target/generated-sources/antlr3
+* ./flume-core/target/generated-sources/avro
+* ./flume-core/target/generated-sources/thrift
+* ./flume-core/target/generated-sources/version
 
-== Building Windows packages
+== Debugging Flume
 
-Building a full windows package and installer executable requires a
-few steps.  A cygwin envrionment is currently assumed.
+=== Flume's web applications
 
-1) Build flume jars ('ant tar').
+The default setup for flume is to run its servlets from .WAR files
+that include precompiled jsps.
 
-2) Update the installer script to add versioning information ('ant
-winstall-filter').  This generates ./flume.nsi.
+On can have the node or master start specfic servlets .WARs, by
+pointing the following propertoes in the system's flume-site.conf
+file, like below.
 
-3) Run nsis compiler on the generated flume.nsi.  We've used v2.46 http://nsis.sourceforge.net/Download. 
+----
+  <property>
+    <name>flume.master.webapps.root</name>
+    <value>webapps/flumemaster.war</value>
+    <description>
+    Path where flume master war lives.  If a file it will load the
+    war, if a dir it will load all *.war in that dir.
+    </description>
+  </property>
 
-The current cut does not deal with differences between 32-bit vs
-64-bit versions, proper error handling situations, or checks to see if
-not run as administrator.
+  <property>
+    <name>flume.node.webapps.root</name>
+    <value>webapps/flumemaster.war</value>
+    <description>
+    Path where flume node war lives.  If a file it will load the
+    war, if a dir it will load all *.war in that dir.
+    </description>
+  </property>
 
-== Building documentation
+----
 
-Documentation for Flume is written in asciidoc.  It relys on several
-libraries to generate images.
+// TODO document how to debug JSPs while in Eclipse
 
-* asciidoc v8.5.2
-* graphviz (dot) v2.26.3
+== Rules of the Repository
+
+We have a few basic rules for code in the repository.
 
-Documents can be built by running 'ant docs'
+The master/trunk pointer:
 
-== License
+* MUST always build.
+* SHOULD always pass all unit tests
 
-All source files must include the following header:
+When commitng code we tag pushes with JIRA numbers, and their short descriptions.
+Generally these are in the following format:
 
+----
+FLUME-42: Description from the jira
+----
+
+All source files must include the following header (or a variant
+dending on comment characters):
+
+----
 /**
  * Licensed to Cloudera, Inc. under one
  * or more contributor license agreements.  See the NOTICE file
@@ -268,3 +307,14 @@ All source files must include the following header:
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+----
+
+No build generated files should be checked in.  Here are some examples
+of generate files that should not be checked:
+
+* html documentation
+* thrift-generated source
+* avro-generated source
+* antlr generated source
+* auto-generated versioning annotations
+
diff --git a/bin/flume b/bin/flume
index 2559d01..183cf70 100755
--- a/bin/flume
+++ b/bin/flume
@@ -164,11 +164,6 @@ if [ "$cygwin" == false ] ; then
 
   CLASSPATH="${CLASSPATH}:$JAVA_HOME/lib/tools.jar"
 
-  if [ "$FLUME_DEVMODE" == true ] ; then
-    # allow Jetty to compile servlets in dev mode
-      append_jars_onto_classpath "$CMDPATH/libbuild"
-  fi
-
   if [ -z "$ZOOKEEPER_HOME" ]; then
     export ZOOKEEPER_HOME="/usr/lib/zookeeper"
   fi
@@ -188,11 +183,6 @@ else
   append_jars_onto_classpath "$CMDPATH/lib"
   append_jars_onto_classpath "$CMDPATH/libtest"
 
-  if [ "$FLUME_DEVMODE" == true ] ; then
-    # allow Jetty to compile servlets in dev mode
-    append_jars_onto_classpath "$CMDPATH/libbuild"
-  fi
-
 fi
 
 export CLASSPATH
diff --git a/pom.xml b/pom.xml
index c30c05f..c51555c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
   <properties>
     <!-- NB: The version of the thrift compiler must match that of the dependency 
       on the jar file below. -->
-    <thrift.executable>/usr/local/thrift-0.6.0/bin/thrift</thrift.executable>
+    <thrift.executable>/usr/local/bin/thrift</thrift.executable>
 
     <!-- Set default encoding to UTF-8 to remove maven complaints -->
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/src/examples/tutorial.flume b/src/examples/tutorial.flume
deleted file mode 100644
index fb62bb3..0000000
--- a/src/examples/tutorial.flume
+++ /dev/null
@@ -1,119 +0,0 @@
-// Licensed to Cloudera, Inc. under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  Cloudera, Inc. 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.
-
-// This is a quick tutorial on flume's specification language.
-
-// Basic syntax:
-// <node name 1> : <source spec> | <sink spec> ;
-
-
-// Simple example -- tails syslog file and sends to collector's console
-collector : tsource | console ;
-node1 : tail("/var/log/syslog") | tsink("collector");
-
-
-// Simple example2 -- node2 listens on tcp 5140 syslog(-ng) data.
-collector : tsource | console ;
-node1 : syslogTcp(5140) | tsink("collector");
-
-// Simple eample 3 -- many tailers writing to aggregated syslog-many file
-collector : tsource | text("syslog-many");
-node1 : tail("/var/log/syslog") : tsink("collector");
-node2 : tail("/var/log/syslog") : tsink("collector");
-node3 : tail("/var/log/syslog") : tsink("collector");
-node4 : tail("/var/log/syslog") : tsink("collector");
-
-// Fan out.
-report1 : tsource | counter("counts") ;
-collector : tsource | text("syslog-many");
-node1 : tail("/var/log/syslog") : [ tsink("collector"), tsink("report1") ];
-
-// Fan in.
-collector : tsource | text("syslog-userlog");
-// TODO -- allow parallel source/sinks on a node.
-node1 : [tail("/var/log/syslog"), tail("/var/log/user.log")] | tsink("collector;
-
-// Fail over, store and forward
-collector : tsource | text("syslog-many");
-// TODO -- add forwarding checker.
-node1 : < tsink("collector") ? seqfile("/var/flume/store") > 
-
-
-// Decorators 
-report1 : tsource | counter("counts") ;
-collector : tsource | text("syslog-many");
-node1 : tail("/var/log/syslog") :  { intervalSampler(10) -> tsink("report1") } ;
-node2 : tail("/var/log/syslog") :  { reservoirSampler(10) -> tsink("report1") } ;
-node3 : tail("/var/log/syslog") :  { flakeyAppend(.10) -> tsink("report1") } ;
-
-//// Sources 
-/**
-
-tsource([port=])	flume thrift source
-text(file)		read a text file, one event per line
-seqfile(file)		read a hadoop sequence file, one event per record
-tail(file)		tail a file name, works through file rotations.
-syslogUdp([port])	listen for syslog Udp packets, defaults to udp 514
-syslogTcp([port])	listen for syslog Tcp connections, defaults to tcp 514
-syslogUdp([port])	listen for syslog a single tcp connetion, default is tcp  514
-pcap([nic, [filter]])	listen on nic, for packets that satisfy filter (Tcpdump format)
-pcapfile(file)		dump contents of a .pcap formatted file.
-ampqPoll(exchange, routing)	amqp via polling (pull)
-amqpSub(exchange, routing)	amqp via subscription (push)
-**/
-
-// // Sinks
-/**
-null			Drops incoming events
-seqfile(file)		Writes events to local file in seqfile format
-dfs(file)		Writes events to hadoop path uri in seqfile format
-tsink(host,port)	Writes events to network via thrift to host:port
-trawsink(host,port)	Alternate thrift sink to host:port (hadoop serialization)
-tacksink(host,port)	Alternate thrift sink to host:port (stop-and-wait acks)
-console			Write to stdout
-text(file)		Writes to a file, newline between events
-amqp(exchange, routing)	AMQP sink [experiemental]
-**/
-
-// // Reporting Sinks
-/**
-counter(name)			Counts events appended
-counterHistory(name)			Counts events appended
-multigrep(name, str1[, str2...]	Histogram of greps for multple strings
-multigrepspec(name, specfile)	Histogram of greps from spec file.
-regexhisto(name, regex, idx)	Histogram of capture group idx from regex
-regexhistospec(name, specfile)	Histogram of specified regexes
-**/
-
-// // Sink Decorators
-/**
-intervalSampler(n)	Take every nth event
-probSampler(prob)	Take each element with probability prob
-reservoirSampler(k)	Take at most k elements with equal probability
-inistentOpen(max)	Periodically attempt to open until max millis has expired
-flakeyAppend(prob)	Appends fail with probability prob by throwing IOExceptimon
-mult(n)			Send each appended message n times. (excludes benchmarks)
-benchinject		Injects start/end benchmark events into the stream
-benchreport(name)	Extracts inject benchmark start/end events and reports   
-inmem			Buffers events until flush/close and then flushes.
-batch(bsize,maxwait)	Batches bsize event into a single event
-unbatch			Unbatches batched events, and pass through all others.
-gzip			gzips events
-gunzip			gunzips gzip'ed events and pass through all others.
-delay(xxx)
-latch(xxX)
-**/
-
diff --git a/src/javatest/all-tests-file b/src/javatest/all-tests-file
deleted file mode 100644
index e2f9d49..0000000
--- a/src/javatest/all-tests-file
+++ /dev/null
@@ -1 +0,0 @@
-**/Test*.java
\ No newline at end of file
diff --git a/src/mapreduce/com/cloudera/flume/mapreduce/FlumeDataJob.java b/src/mapreduce/com/cloudera/flume/mapreduce/FlumeDataJob.java
deleted file mode 100644
index 018fd0e..0000000
--- a/src/mapreduce/com/cloudera/flume/mapreduce/FlumeDataJob.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * Licensed to Cloudera, Inc. under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  Cloudera, Inc. 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.
- */
-package com.cloudera.flume.mapreduce;
-
-public class FlumeDataJob {
-
-}
diff --git a/src/saveVersion.sh b/src/saveVersion.sh
deleted file mode 100755
index 502d509..0000000
--- a/src/saveVersion.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-
-# This file is used to generate the BuildStamp.java class that
-# records the user, url, revision and timestamp.
-version=$1
-revision=$HADOOP_REVISION
-#if [ -z "$revision" ] ; then
-#  revision=`svn info | sed -n -e 's/Last Changed Rev: \(.*\)/\1/p'`
-#fi
-if [ -z "$revision" ]  ; then
-  revision=`git rev-parse HEAD`
-fi
-#url=`svn info | sed -n -e 's/URL: \(.*\)/\1/p'`
-url=`git config --list | sed -n -e 's/remote.origin.url=\(.*\)/\1/p'`
-user=`whoami`
-date=`date`
-mkdir -p src/java/com/cloudera/flume
-cat << EOF | \
-  sed -e "s/VERSION/$version/" -e "s/USER/$user/" -e "s/DATE/$date/" \
-      -e "s|URL|$url|" -e "s/REV/$revision/" \
-      > src/java/com/cloudera/flume/package-info.java
-/**
- * Licensed to Cloudera, Inc. under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  Cloudera, Inc. 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.
- */
-
-/*
- * Generated by src/saveVersion.sh
- */
-@FlumeVersionAnnotation(version="VERSION", revision="REV", 
-                         user="USER", date="DATE", url="URL")
-package com.cloudera.flume;
-EOF
-- 
1.7.1

