geode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@apache.org
Subject [50/51] [partial] incubator-geode git commit: SGA #2
Date Fri, 03 Jul 2015 19:21:51 GMT
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 345a55a..9e31b3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,12 +4,10 @@
 #
 # see git help gitignore for more details
 build/
-.idea/
 .gradle/
 .classpath
 .project
 .settings/
-.idea/
 build-eclipse/
 /tags
 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/CODE_SOURCES.txt
----------------------------------------------------------------------
diff --git a/CODE_SOURCES.txt b/CODE_SOURCES.txt
new file mode 100644
index 0000000..022b501
--- /dev/null
+++ b/CODE_SOURCES.txt
@@ -0,0 +1,13 @@
+This branch contains several directories with code that was pulled from other
+repositories. Below are the revisions from the other repositories. The code is
+also tagged with asf-incubation-release-5-28-2015 in each of the other
+repositories.
+
+
+pulse - 5517e639ad87000a2de1c8e1bca96c08f13c67ab
+modules - 97ab922430486346ebcdb356a81e67254ad5ae14
+logcollectionutil - a29f0103fcb33e0e9a2a5c6ace7b5f8653ba2546
+jvsd - fc9ed702ac412b13d8a0b7c367836d345604a49e
+jvsdfx-mm - 2c4642302a9c3e4e67fb655385cbc0f6209ba7e8
+gemfire-spark-connector - 48c4471c6f0c90776ed6a6d944ae693227b756d5
+databrowser - 3160 (svn revision)

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/COMPILING.txt
----------------------------------------------------------------------
diff --git a/COMPILING.txt b/COMPILING.txt
index d2556ca..89f44f4 100644
--- a/COMPILING.txt
+++ b/COMPILING.txt
@@ -2,11 +2,6 @@ To build with gradle, just run
 
 ./gradlew build
 
-This will create the binary artifacts and run all of the tests but 
-if for some reason you want to skip running the tests include -Dskip.tests=true on the gradle invocation. For example:
-
-./gradlew build -Dskip.tests=true
-
 To create a distribution run
 
 ./gradlew distTar
@@ -16,7 +11,3 @@ or
 ./gradlew distZip
 
 the distribution archives will be located in gemfire-assembly/build/distributions/.
-
-To create an unzipped distribution run
-
-./gradlew installDist

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
old mode 100755
new mode 100644
index 8ac89a0..7941ea4
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Overview
 
-Geode is a data management platform that provides real-time, consistent access to data-intensive applications throughout widely distributed cloud architectures.
+Geode is a data management platform that provides real-time, consistent access to data-intensive applications throughout widely distributed cloud architectures.  
 
 Geode pools memory, CPU, network resources, and optionally local disk across multiple processes to manage application objects and behavior. It uses dynamic replication and data partitioning techniques to implement high availability, improved performance, scalability, and fault tolerance. In addition to being a distributed data container, Geode is an in-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
 
@@ -31,14 +31,14 @@ Geode includes the following features:
 
 # Geode in 5 minutes
 
-Extract and build from source (note: currently Geode supports jdk1.7.75):
+Obtain the source archive from Pivotal.  Extract and build from source (note: currently Geode supports jdk1.7.75):
 
     $ cd geode
     $ ./gradlew build installDist
 
 Start a locator and server:
 
-    $ cd gemfire-assembly/build/install/apache-geode
+    $ cd gemfire-assembly/build/install/geode
     $ ./bin/gfsh
     gfsh> start locator --name=locator
     gfsh> start server --name=server
@@ -54,7 +54,7 @@ _HelloWorld.java_
     import java.util.Map;
     import com.gemstone.gemfire.cache.Region;
     import com.gemstone.gemfire.cache.client.*;
-
+    
     public class HelloWorld {
       public static void main(String[] args) throws Exception {
         ClientCache cache = new ClientCacheFactory()
@@ -63,10 +63,10 @@ _HelloWorld.java_
         Region<String, String> region = cache
           .<String, String>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
           .create("region");
-
+    
         region.put("1", "Hello");
         region.put("2", "World");
-
+        
         for (Map.Entry<String, String>  entry : region.entrySet()) {
           System.out.format("key = %s, value = %s\n", entry.getKey(), entry.getValue());
         }
@@ -86,5 +86,5 @@ Geode applications can be written in a number of client technologies:
 * Java using the Geode client API or embedded using the Geode peer API
 * [Spring Data GemFire](http://projects.spring.io/spring-data-gemfire/) or [Spring Cache](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html)
 * [Python](https://github.com/gemfire/py-gemfire-rest)
-* [REST](http://geode-docs.cfapps.io/docs/geode_rest/book_intro.html)
+* REST
 * [[memcached|Moving from memcached to gemcached]]

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/RUNNING.txt
----------------------------------------------------------------------
diff --git a/RUNNING.txt b/RUNNING.txt
old mode 100755
new mode 100644
index 8286657..fb52883
--- a/RUNNING.txt
+++ b/RUNNING.txt
@@ -4,7 +4,7 @@ Create a distribution archive using
 
 Unpack the archive found in gemfire-assembly/build/distributions and run the gfsh shell
 
-cd apache-geode-*
+cd geode-*
 bin/gfsh
 
 OR

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index bd0ec18..61a35c7 100755
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,7 @@
 apply plugin: 'wrapper'
 
 allprojects {
+  version = versionNumber + '-' + releaseType
   // We want to see all test results.  This is equivalatent to setting --continue
   // on the command line.
   gradle.startParameter.continueOnFailure = true
@@ -31,7 +32,14 @@ allprojects {
       tar.compression = Compression.GZIP
       tar.extension = 'tar.gz'
     }
-  })
+  } )
+}
+
+task clean (type: Delete) {
+  delete rootProject.buildDir
+  if (!buildRoot.isEmpty()) {
+    delete buildRoot
+  }  
 }
 
 def testResultsDir(def parent, def name) {
@@ -50,6 +58,19 @@ def writeTestProperties(def parent, def name) {
 
 }
 
+task combineReports(type: TestReport) {
+  description 'Combines the test reports.'
+  destinationDir = file "${rootProject.buildDir}/reports/combined"
+
+  doLast {
+    println "All test reports at ${rootProject.buildDir}/reports/combined"
+  }
+}
+
+gradle.taskGraph.whenReady({ graph ->
+  tasks.getByName('combineReports').reportOn rootProject.subprojects.collect{ it.tasks.withType(Test) }.flatten()
+})
+
 subprojects {
   apply plugin: 'java'
 
@@ -103,7 +124,98 @@ subprojects {
       }
     }
   }
-  
+ 
+  // Configuration for Checkstyle, FindBugs
+  if (project.hasProperty("staticAnalysis")) {
+    apply plugin: 'checkstyle'
+
+    //Checkstyle configuration
+    configurations.checkstyle {
+      dependencies.all { dep ->
+        dep.transitive = true
+      }
+    }
+    
+    //Findbugs configuration
+    apply plugin: 'findbugs'
+ 
+    configurations.findbugs {
+      dependencies.all { dep ->
+        dep.transitive = true
+      }
+    }
+
+    // Switch default Findbugs report to HTML for developers
+    def findbugsXmlEnabled = false
+    def findbugsHtmlEnabled = true
+
+    // Provide ability to change report type to XML for ingesting into other ap
+    if ( project.hasProperty("findbugsXmlReport") ) {
+      findbugsXmlEnabled = true
+      findbugsHtmlEnabled = false
+    }
+
+    configurations.findbugs {
+      dependencies.all { dep ->
+        dep.transitive = true
+      }
+      findbugs.effort = 'max'
+      findbugs.reportLevel = 'high'
+    }
+ 
+    tasks.withType(FindBugs) {
+      reports {
+        xml.enabled = findbugsXmlEnabled
+        html.enabled = findbugsHtmlEnabled
+      }
+    }
+  }
+
+  // JaCoCo configuration
+  if (project.hasProperty("codeCoverage")) {
+    apply plugin: 'jacoco'
+    
+    configurations.jacocoAnt {
+      dependencies.all { dep ->
+          dep.transitive = true
+      }
+    }
+
+    jacocoTestReport {
+      reports { 
+        csv.enabled false
+        html.destination "${buildDir}/jacocoTestHtml"
+      }
+    }
+    
+    task jacocoIntegrationTestReport (type: JacocoReport) {
+      reports { 
+        csv.enabled false
+        sourceSets project.sourceSets.main
+        html.destination "${buildDir}/jacocoIntegrationTestHtml"
+        executionData = fileTree(dir: 'build/jacoco', include: '**/integrationTest.exec')
+      }
+    }
+    
+    task jacocoDistributedTestReport (type: JacocoReport) {
+      reports { 
+        csv.enabled false
+        sourceSets project.sourceSets.main
+        html.destination "${buildDir}/jacocoDistributedTestHtml"
+        executionData = fileTree(dir: 'build/jacoco', include: '**/distributedTest.exec')
+      }
+    }
+    
+    task jacocoOverallTestReport (type: JacocoReport) {
+      reports { 
+        csv.enabled false
+        sourceSets project.sourceSets.main
+        html.destination "${buildDir}/jacocoOverallTestHtml"
+        executionData = fileTree(dir: 'build/jacoco', include: '**/*.exec')
+      }
+    }
+  }
+ 
   eclipse {
     classpath {
       defaultOutputDir = file('build-eclipse')
@@ -125,6 +237,8 @@ subprojects {
     delete '.settings/org.eclipse.core.resources.prefs'
   }
 
+  tasks.eclipse.dependsOn(cleanEclipse)
+
   idea {
     module {
       downloadSources = true
@@ -160,23 +274,26 @@ subprojects {
     compile 'org.springframework:spring-expression:3.2.12.RELEASE'
     compile 'org.springframework:spring-web:3.2.12.RELEASE'
     compile 'org.springframework:spring-webmvc:3.2.12.RELEASE'
-    
-    testCompile 'junit:junit:4.11'
-    testCompile 'org.hamcrest:hamcrest-core:1.1'
-    testCompile 'org.hamcrest:hamcrest-library:1.1'
-    testCompile 'org.jmock:jmock:2.5.1'
-    testCompile 'org.jmock:jmock-legacy:2.5.1'
+
+    testCompile 'com.github.stefanbirkner:system-rules:1.9.0'
     testCompile 'edu.umd.cs.mtc:multithreadedtc:1.01'
-    testRuntime 'cglib:cglib-nodep:2.1_3'
-    testRuntime 'org.objenesis:objenesis:1.0'
+    testCompile 'junit:junit:4.12'
+    testCompile 'org.hamcrest:hamcrest-all:1.3'
+    testCompile 'org.jmock:jmock:2.8.1'
+    testCompile 'org.jmock:jmock-junit4:2.8.1'
+    testCompile 'org.jmock:jmock-legacy:2.8.1'
+    
+    testRuntime 'cglib:cglib-nodep:3.1'
+    testRuntime 'org.objenesis:objenesis:2.1'
+    testRuntime 'org.ow2.asm:asm:5.0.3'
   }
 
   test {
     include '**/*JUnitTest.class'
     useJUnit {
-      includeCategories 'com.gemstone.junit.UnitTest'
-      excludeCategories 'com.gemstone.junit.IntegrationTest'
-      excludeCategories 'com.gemstone.junit.DistributedTest'
+      includeCategories 'com.gemstone.gemfire.test.junit.categories.UnitTest'
+      excludeCategories 'com.gemstone.gemfire.test.junit.categories.IntegrationTest'
+      excludeCategories 'com.gemstone.gemfire.test.junit.categories.DistributedTest'
     }    
     
     // run each test in its own vm to avoid interference issues if a test doesn't clean up
@@ -188,12 +305,27 @@ subprojects {
     }
   }
 
+  //This target does not run any tests. Rather, it validates that there are no
+  //tests that are missing a category annotation
+  task checkMissedTests(type: Test) {
+    include '**/*JUnitTest.class'
+    useJUnit {
+      excludeCategories 'com.gemstone.gemfire.test.junit.categories.UnitTest'
+      excludeCategories 'com.gemstone.gemfire.test.junit.categories.IntegrationTest'
+    }    
+
+    beforeTest { descriptor ->
+      throw new GradleException("The test " + descriptor.getClassName() + "." + descriptor.getName() + " does not include a junit category.");
+    }
+    
+  }
+
   task integrationTest(type:Test) {
     include '**/*JUnitTest.class'
     useJUnit {
-      excludeCategories 'com.gemstone.junit.UnitTest'
-      includeCategories 'com.gemstone.junit.IntegrationTest'
-      excludeCategories 'com.gemstone.junit.DistributedTest'
+      excludeCategories 'com.gemstone.gemfire.test.junit.categories.UnitTest'
+      includeCategories 'com.gemstone.gemfire.test.junit.categories.IntegrationTest'
+      excludeCategories 'com.gemstone.gemfire.test.junit.categories.DistributedTest'
     }    
 
     forkEvery 1
@@ -208,15 +340,15 @@ subprojects {
     
 // TODO add @Category(DistributedTest.class) to dunit tests
 //    useJUnit {
-//      excludeCategories 'com.gemstone.junit.UnitTest'
-//      excludeCategories 'com.gemstone.junit.IntegrationTest'
-//      includeCategories 'com.gemstone.junit.DistributedTest'
+//      excludeCategories 'com.gemstone.gemfire.test.junit.categories.UnitTest'
+//      excludeCategories 'com.gemstone.gemfire.test.junit.categories.IntegrationTest'
+//      includeCategories 'com.gemstone.gemfire.test.junit.categories.DistributedTest'
 //    }    
     
     //I'm hoping this might deal with SOME OOMEs I've seen
     forkEvery 30
   }
-
+  
   // apply common test configuration
   gradle.taskGraph.whenReady( { graph ->
     tasks.withType(Test).each { test ->
@@ -259,16 +391,19 @@ subprojects {
       }
     }
   })
-  
+
   check.dependsOn integrationTest
-  check.dependsOn distributedTest
-}
+  check.dependsOn distributedTest 
+  check.dependsOn checkMissedTests
+  combineReports.mustRunAfter check, test, integrationTest, distributedTest,checkMissedTests
+  build.finalizedBy combineReports
+  check.finalizedBy combineReports
+  test.finalizedBy combineReports
+  integrationTest.finalizedBy combineReports
+  distributedTest.finalizedBy combineReports
+  checkMissedTests.finalizedBy combineReports
 
-task combineReports(type: TestReport) {
-  description 'Combines the test reports.'
-  destinationDir = file "$buildDir/reports/combined"
+  // Make sure clean task for rootProject runs last
+  clean.finalizedBy rootProject.clean
 }
 
-gradle.taskGraph.whenReady({ graph ->
-  tasks.getByName('combineReports').reportOn rootProject.subprojects.collect{ it.tasks.withType(Test) }.flatten()
-})

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/databrowser/META-INF/MANIFEST.MF b/databrowser/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f0f5484
--- /dev/null
+++ b/databrowser/META-INF/MANIFEST.MF
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Main-Class: com.gemstone.gemfire.mgmt.DataBrowser.app.DataBrowserApp
+
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/build.sh
----------------------------------------------------------------------
diff --git a/databrowser/build.sh b/databrowser/build.sh
new file mode 100755
index 0000000..52d8d8e
--- /dev/null
+++ b/databrowser/build.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+# Set BASEDIR to be the toplevel checkout directory.
+# We do this so that BASEDIR can be used elsewhere if needed
+#set -xv
+
+BASEDIR=`/usr/bin/dirname $0`
+OLDPWD=$PWD
+cd $BASEDIR
+export BASEDIR=`/usr/bin/dirname $PWD`
+cd $OLDPWD
+
+unset GEMFIRE
+export GEMFIRE
+
+export GCMDIR=${GCMDIR:-"/gcm"}
+
+if [ `uname` = "SunOS" ]; then
+  export JAVA_HOME=${ALT_JAVA_HOME:-$GCMDIR/where/jdk/1.6.0_26/sparc.Solaris}
+  logfile=buildSol.log
+elif [ `uname` = "Darwin" ]; then
+  export JAVA_HOME=${ALT_JAVA_HOME:-/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home}
+  logfile=buildMac.log
+elif [ `uname` = "Linux" ]; then
+  export JAVA_HOME=${ALT_JAVA_HOME:-$GCMDIR/where/jdk/1.6.0_26/x86.linux}
+  logfile=buildLinux.log
+else
+  echo "Defaulting to Windows build"
+  export GCMDIR=${GCMDIR:-"J:\\"}
+  export JAVA_HOME=${ALT_JAVA_HOME:-$GCMDIR/where/jdk/1.6.0_26/x86.Windows_NT}
+  logfile=buildWin.log
+  if [ ! -d "$GCMDIR" ]; then
+    echo "ERROR: unable to locate GCMDIR "$GCMDIR" maybe you forgot to map the J: network drive to //samba/gcm"
+    exit 1
+  fi
+#  NO_BUILD_LOG=1
+fi
+
+export ANT_HOME=${ALT_ANT_HOME:-$GCMDIR/where/java/ant/apache-ant-1.8.2}
+export PATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATH
+export CLASSPATH=${TASKDEFS:-$GCMDIR/where/java/ant/gemstoneExtensions/lib/ant-contrib-1.0b3.jar}
+
+
+export ANT_OPTS="-Xmx384m"
+
+function logant {
+#  if [[ `uname` == "SunOS" || `uname` == "Linux" ]]; then
+    rm -f .xbuildfailure
+    ( $ANT_HOME/bin/ant --noconfig "$@" || echo "$?" > .xbuildfailure ) 2>&1 | tee $logfile
+    if [ -r .xbuildfailure ]; then
+      read stat <.xbuildfailure
+      rm -f .xbuildfailure
+      exit $stat
+    fi
+#
+    # cygwin tee causes hang on windows
+#    $ANT_HOME/bin/ant --noconfig -DuseSSH=false "$@"
+#  fi
+}
+
+echo "JAVA_HOME = $JAVA_HOME"
+echo "ANT_HOME  = $ANT_HOME"
+date
+
+# ant likes to be in the directory that build.xml is in
+if [[ "x$NO_BUILD_LOG" = "x" ]]; then
+  logant "$@"
+else
+  echo "running $ANT_HOME/bin/ant "
+  $ANT_HOME/bin/ant --noconfig "$@"
+fi
+

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/build.xml
----------------------------------------------------------------------
diff --git a/databrowser/build.xml b/databrowser/build.xml
new file mode 100644
index 0000000..9f8622d
--- /dev/null
+++ b/databrowser/build.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="main-build" default="usage">
+
+  <taskdef resource="com/gemstone/tools/ant/taskdefs/buildtasks.properties"
+           classpath="${basedir}/buildfiles/taskdefsV10.jar"/>
+  <property environment="myenv"/>  <!-- Get environment variables -->
+  <property name="gcm.dir" value="${myenv.GCMDIR}"/>
+ 
+  <!-- include external xml files here -->
+  <import file="buildfiles/dependencies.xml"/>
+  <import file="buildfiles/utilities.xml"/>
+  <import file="buildfiles/generic.xml"/>
+  <import file="buildfiles/impl.xml"/>
+  <!-- end of include section -->
+
+  <target name="build-all" 
+          depends="build-all-impl"
+          description="Build the product and test code"/>
+  <target name="build-installer" 
+          depends="build-installer-impl"
+          description="Builds a self extracting jar installer"/>
+  <target name="build-product" 
+          depends="build-product-impl"
+          description="Build product tree into {osbuild.dir}"/>
+  <target name="clean" 
+          depends="clean-impl" 
+          description="Cleans all byproducts of building"/>
+  <target name="clean-tests" 
+          depends=""
+          description="Clears all output from compile-tests"/>
+  <target name="compile-tests" 
+          depends="compile-tests-impl"
+          description="Compiles all test code"/>
+  <target name="execute-battery" 
+          depends="execute-battery-impl"
+          description="Compiles test code then runs a Hydra test&#10;
+                         -Dbt.file=[bt to run]     (required)&#10;
+                         -Dbt.result.dir=[dir]     (optional)&#10;
+                         -Dlocal.conf=[file]       (optional)&#10;
+                         -DmergeLogFiles=[boolean] (default=false)&#10;
+                         -DNukeHungTests=[boolean] (default=false)&#10;
+                         -DlogLevel=[log level]    (default=fine)"/> 
+  <target name="execute-battery-nobuild" 
+          depends="execute-battery-nobuild-impl"
+          description="Run bt without compiling tests"/>
+  <target name="update-svn" 
+          depends="update-svn-impl"
+          description="Updates this SVN checkout"/>
+  <target name="precheckin" 
+          depends="precheckin-impl"
+          description="svn update, build, and run unit tests"/>
+  <target name="run-all-tests" 
+          depends="run-all-tests-impl"
+          description="Run all of the unit tests"/>
+  <target name="run-dunit-tests" 
+          depends="run-dunit-tests-impl"
+          description="Runs the Distributed unit tests&#10;
+                         -Ddunit.testcase=tClass  (optional)&#10;
+                         -Ddunit.testcase=pattern (optional)"/>
+  <target name="run-junit-tests" 
+          depends="run-junit-tests-impl"
+          description="Runs the Java unit tests&#10;
+                         -Djunit.testcase=tClass  (optional)&#10;
+                         -Djunit.excludes=pattern (optional)"/>
+  <target name="usage" 
+          depends="usage-impl"
+          description="Display all public ant targets"/>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/buildfiles/.eclipseproduct
----------------------------------------------------------------------
diff --git a/databrowser/buildfiles/.eclipseproduct b/databrowser/buildfiles/.eclipseproduct
new file mode 100644
index 0000000..1b715bf
--- /dev/null
+++ b/databrowser/buildfiles/.eclipseproduct
@@ -0,0 +1,5 @@
+#Eclipse Product File
+#Thu Apr 24 19:59:14 GMT+05:30 2008
+version=1.0.0
+name=Data Browser
+id=com.gemstone.gemfire.tools.product

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/buildfiles/config.properties
----------------------------------------------------------------------
diff --git a/databrowser/buildfiles/config.properties b/databrowser/buildfiles/config.properties
new file mode 100644
index 0000000..b521f73
--- /dev/null
+++ b/databrowser/buildfiles/config.properties
@@ -0,0 +1,72 @@
+#product specific
+product.short.name=vFabric_GFDataBrowser
+product.short.name.lowercase=databrowser
+product.long.name=vFabric GemFire DataBrowser
+product.manifest=${osbuild.dir}/Manifest.mf
+product.main-class=com.gemstone.gemfire.mgmt.DataBrowser.app.DataBrowserApp
+product.jvmarch-class=com.gemstone.gemfire.mgmt.DataBrowser.utils.JVMArch
+script.name=${product.short.name.lowercase}
+product.version=7.0.1
+product.about.resource=about${product.short.name}.txt
+product.jar.name=${product.short.name.lowercase}_${product.version}.jar
+installer.classname=${product.short.name}ZipSelfExtractor
+product.version.filename=${product.short.name}Version.properties
+
+#javac/java options
+jdk.dir=where/jdk
+javac.primary.version=1.6.0_26
+javac.secondary.version=1.6.0_26
+java.test.version=1.6.0_26
+javac.deprecation=off
+javac.debug=true
+javac.mmx=160m
+javac.target=5
+
+#common
+build.dir=${basedir}/build-artifacts
+osbuild.dir=${build.dir}/${gf.os}
+last.update.file=${build.dir}/lastUpdate.txt
+svn.logfile=update-svn.log
+svn.hist.logfile=.svn-history.log
+hidden.dir=${osbuild.dir}/hidden
+hiddenlib.dir=${hidden.dir}/lib
+product.dir=${osbuild.dir}/product
+external.dir=${osbuild.dir}/dependencies
+hydra.dir=${gemfire.dir}/tests
+junit.dir=${osbuild.dir}/dependencies/classes
+
+eclipse.root=${gcm.dir}/where/eclipse/3.4.1
+eclipse.dir.x86.linux=${eclipse.root}/x86.linux
+eclipse.dir.x86_64.linux=${eclipse.root}/x86_64.linux
+eclipse.dir.x86.Windows_NT=${eclipse.root}/x86.Windows_NT
+eclipse.dir.x86_64.Windows_NT=${eclipse.root}/x86_64.Windows_NT
+
+#src
+scripts.dir=${basedir}/release/scripts
+src.dir=${basedir}/src
+classes.dir=${osbuild.dir}/classes
+
+#installer
+installer.dir=${osbuild.dir}/installer
+installer.tmp=${osbuild.dir}/installer_tmp
+installer.src.dir=${basedir}/release/installer
+installer.classes.dir=${installer.tmp}
+installer.vernum=${installer.tmp}/vernum.properties
+installer.oss.jar=oss.jar
+
+
+#tests
+tests.src.dir=${basedir}/tests
+tests.out.dir=${osbuild.dir}/tests
+tests.junit.classes.dir=${tests.out.dir}/junit/classes
+tests.dunit.classes.dir=${tests.out.dir}/dunit/classes
+tests.battery.classes.dir=${tests.out.dir}/battery/classes
+tests.results.dir=${tests.out.dir}/results
+dunit.inc.file=${tests.src.dir}/dunit/config/databrowser.inc
+logLevel=fine
+haltOnFailure=true
+NukeHungTests=false
+useSSH=true
+junit.timeout=600
+dunitSites=1
+dunit-jvm-args=-Ddummy=true

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/buildfiles/dependencies.xml
----------------------------------------------------------------------
diff --git a/databrowser/buildfiles/dependencies.xml b/databrowser/buildfiles/dependencies.xml
new file mode 100644
index 0000000..1258fb4
--- /dev/null
+++ b/databrowser/buildfiles/dependencies.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="dependencies">
+  
+  <dependency property="svnant.dir" artifact="where/java/svnant/svnant-1.4.dev"/>
+  <dependency property="ant-contrib.jar" artifact="where/java/ant/ant-contrib/ant-contrib-1.0b3/ant-contrib-1.0b3.jar"/>
+  <dependency property="antelopeTasks.dir" artifact="where/java/AntelopeTasks_3.5.1"/>
+  
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/buildfiles/generic.xml
----------------------------------------------------------------------
diff --git a/databrowser/buildfiles/generic.xml b/databrowser/buildfiles/generic.xml
new file mode 100644
index 0000000..db8d807
--- /dev/null
+++ b/databrowser/buildfiles/generic.xml
@@ -0,0 +1,736 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="generic-build-targets">
+
+  <!-- determine OS -->
+  <condition property="gf.os" value="sol">
+    <os name="SunOs"/>
+  </condition>
+  <condition property="gf.os" value="linux">
+    <os name="Linux"/>
+  </condition>
+  <condition property="gf.os" value="mac">
+    <os family="mac"/>
+  </condition>
+  <condition property="gf.os" value="win">
+    <os family="windows"/>
+  </condition>
+  <condition property="gf.os" value="aix">
+    <os name="AIX"/>
+  </condition>
+  
+  <property file="${basedir}/build${gf.os}.properties"/>
+    <available file="${basedir}/build${gf.os}.properties" 
+               property="build.os.exists"/>
+    <conditional if="build.os.exists"> 
+      <echo message="Loading properties from ${basedir}/build${gf.os}.properties:" level="info"/>
+      <concat>
+        <filelist dir="${basedir}" files="build${gf.os}.properties"/>
+      </concat>
+    </conditional> 
+   
+    <property file="${basedir}/build.properties"/>
+    <available file="${basedir}/build.properties" property="build.props.exists"/>  
+    <conditional if="build.props.exists">
+      <echo message="Loading properties from ${basedir}/build.properties:" 
+            level="info"/> 
+      <concat>
+        <filelist dir="${basedir}" files="build.properties"/>
+      </concat>
+    </conditional>
+    <property file="${basedir}/buildfiles/config.properties"/>
+    
+	<dependency property="javac.primary"
+                jdkVersion="${javac.primary.version}"
+                is64Bit="false" artifact="where/jdk"/>
+    <dependency property="javac.secondary"
+                jdkVersion="${javac.secondary.version}"
+                is64Bit="false" artifact="where/jdk"/>
+    <dependency property="default.testVM"
+                jdkVersion="${java.test.version}"
+                is64Bit="false" artifact="where/jdk"/>
+    <dependency property="default.testVM64"
+                jdkVersion="${java.test.version}"
+                is64Bit="true" artifact="where/jdk"/>
+	
+  <target name="build-all-impl" depends="build-product, compile-tests"/>
+  <target name="build-installer-impl" depends="props, define-classpath-refids">
+    <property file="${build.dir}/build.number" prefix="installer."/>
+    <!-- basic clean up and setup -->
+    <delete dir="${installer.dir}" quiet="true"/>
+    <delete dir="${installer.tmp}" quiet="true"/>
+    <mkdir dir="${installer.dir}"/>
+    <mkdir dir="${installer.tmp}"/>
+    <copy todir="${installer.tmp}">
+      <fileset dir="${basedir}/release/installer">
+        <include name="i18n*.properties"/>
+        <include name="EULA.txt"/>
+        <include name="INSTALL.txt"/>
+        <include name="build.xml"/>
+      </fileset>
+    </copy>
+    <touch file="${installer.vernum}"/>
+    <echo file="${installer.vernum}" level="info">installer_vernum=${product.short.name}${product.version}
+    </echo>
+    <replace file="${installer.vernum}" token="." value=""/>
+    <replace file="${installer.vernum}" token=" " value=""/>
+
+    <property file="${installer.vernum}"/>
+    <property name="installer.name" value="${installer_vernum}_Installer"/>
+    <property name="installer.jar" value="${installer.name}.jar"/>
+
+    <!-- Build and copy the INSTALL.txt into place -->
+    <copy todir="${installer.tmp}">
+      <fileset dir="${basedir}/release/installer">
+        <include name="INSTALL.txt"/>
+      </fileset>
+    </copy>
+
+    <replace file="${installer.tmp}/INSTALL.txt" token="__JAR_NAME__"
+      value="${installer.jar}" summary="yes"/>
+    <replace file="${installer.tmp}/INSTALL.txt" token="__VERSION__"
+      value="${product.version} build ${installer.build.number}" summary="yes"/>
+    <replace file="${installer.tmp}/INSTALL.txt" token="__SIZE__"
+      value="10" summary="yes"/>
+    <replace file="${installer.tmp}/INSTALL.txt" token="__PRODUCT_DIR__"
+      value="${installer_vernum}" summary="yes"/>
+    <replace file="${installer.tmp}/i18n.properties" token="__PRODUCT_DIR__"
+      value="${installer_vernum}" summary="yes"/>
+    <replace file="${installer.tmp}/i18n.properties" token="__PRODUCT_NAME__"
+        value="${product.short.name.lowercase}" summary="yes"/>
+
+    <copy file="${installer.tmp}/INSTALL.txt" tofile="${product.dir}/docs/${installer_vernum}_INSTALL.txt"/>
+    <copy file="${installer.tmp}/INSTALL.txt" tofile="${installer.dir}/${installer_vernum}_INSTALL.txt"/>
+
+    <compile-java src.dir="${installer.src.dir}" 
+                  output.dir="${installer.classes.dir}"
+                  classpath.refid="empty.classpath"/>
+    <mkdir dir="${installer.tmp}/${installer_vernum}/opensource"/>
+    <jar destfile="${installer.tmp}/${installer_vernum}/opensource/${installer.oss.jar}">
+      <manifest/>
+    </jar>
+
+    <jar destfile="${installer.dir}/${installer.jar}">
+      <manifest>
+        <attribute name="Main-Class" value="${installer.classname}"/>
+      </manifest>
+      <zipfileset dir="${product.dir}" prefix="${installer_vernum}"/>
+      <fileset dir="${installer.tmp}">
+        <include name="**.class"/>
+        <include name="${installer_vernum}/opensource/${installer.oss.jar}"/>
+        <include name="i18n*.properties"/>
+        <include name="EULA.txt"/>
+      </fileset>
+    </jar>
+  </target>    
+  <target name="build-product-impl" 
+          depends="jar-product, pack-core"/>
+  <target name="clean-impl" depends="props">
+    <echo message="Cleaning osbuild.dir excludes=saved-results" level="info"/>
+
+    <!-- Remove osbuild.dir now with exclude -->
+    <delete includeEmptyDirs="true">
+      <fileset dir="${osbuild.dir}" 
+               defaultexcludes="false" 
+               excludes="**/saved-results/**"/>
+    </delete>
+  </target>
+  <target name="clean-tests-impl" depends="props">
+    <delete dir="${tests.junit.classes.dir}"/>
+    <delete dir="${tests.dunit.classes.dir}"/>
+    <delete dir="${tests.battery.classes.dir}"/>
+  </target>
+  <target name="compile-tests-impl" depends="define-classpath-refids">
+    <compile-java src.dir="${tests.src.dir}/junit" 
+                  output.dir="${tests.junit.classes.dir}" 
+                  classpath.refid="tests.classpath"/>
+    <compile-java src.dir="${tests.src.dir}/dunit" 
+                  output.dir="${tests.dunit.classes.dir}"
+                  classpath.refid="tests.classpath"/>
+    <compile-java src.dir="${tests.src.dir}/battery"
+                  output.dir="${tests.battery.classes.dir}"
+                  classpath.refid="tests.classpath"/>
+    <!-- Copy all bt, conf, inc, and props into osbuild.dir -->
+    <copy todir="${tests.battery.classes.dir}">
+      <fileset dir="${tests.src.dir}/battery">
+        <include name="**/*.bt"/>
+        <include name="**/*.conf"/>
+        <include name="**/*.inc"/>
+        <include name="**/*.properties"/>
+        <include name="**/*.props"/>
+      </fileset>
+    </copy>
+  </target>
+  <target name="execute-battery-impl" 
+          depends="compile-tests, execute-battery-nobuild"/>
+  <target name="execute-battery-nobuild-impl" 
+          depends="props, define-classpath-refids, clean-hydra-results">
+      <mkdir dir="${bt.result.dir}"/>
+
+      <!-- Execute a hydra test (single .conf file) -->
+      <conditional if="hydra.conf">
+        <property name="bt.file" location="${bt.result.dir}/exec_hydra.bt"/>
+        <echo file="${bt.file}" message="${hydra.conf}" level="info"/>
+      </conditional>
+
+      <echo message="Executing .bt file  ${bt.file}" level="info"/>
+
+      <conditional if="local.conf">
+        <copy file="${local.conf}" tofile="${bt.result.dir}/local.conf"/>
+      </conditional>
+      <conditional if="mergeLogFiles">
+        <echo append="true" 
+              file="${bt.result.dir}/local.conf" 
+              message="hydra.log.LogPrms-mergeLogFiles = true;" 
+              level="info"/>
+      </conditional>
+      <conditional unless="mergeLogFiles">
+          <conditional unless="local.conf">
+            <echo file="${bt.result.dir}/local.conf" 
+                  message="hydra.log.LogPrms-mergeLogFiles = onFailure;" 
+                  level="info"/>
+          </conditional>
+      </conditional>
+      <conditional if="bt.args">
+        <property name="extra.bt.args" value="${bt.args}"/>
+      </conditional> 
+      <conditional unless="bt.args">
+        <property name="extra.bt.args" value=""/>
+      </conditional> 
+      <conditional if="myenv.JPROBE_HOME">
+        <property name="jprobe.home" value="${myenv.JPROBE_HOME}"/>
+      </conditional> 
+      <conditional unless="jprobe.home">
+        <property name="jprobe.home" value="/dummyjprobedir"/>
+      </conditional>
+      <property name="bt.log" location="${bt.result.dir}/batterytest.log"/>
+      <property name="oneliner.txt" location="${bt.result.dir}/oneliner.txt"/>
+      <property name="bt.nukeHungTest" value="${NukeHungTests}"/>
+      <property name="bt.numTimesToRun" value="1"/>
+  
+      <parallel>
+        <sequential> 
+          <java classname="batterytest.BatteryTest" 
+                jvm="${testJVM}" fork="true"
+                dir="${bt.result.dir}" failonerror="false">
+            <classpath>
+              <pathelement location="${classes.dir}"/>
+              <pathelement location="${external.dir}/classes"/>
+              <pathelement location="${tests.battery.classes.dir}"/>
+              <pathelement location="${junit.dir}/junit.jar"/>
+              <path refid="src.classpath"/>
+            </classpath>
+
+            <env key="GEMFIRE" value="${external.dir}/product"/>
+            <env key="${library.path}" value="${hiddenlib.dir}"/>
+            <env key="PATH" 
+                 path="${product.dir}/bin;${hiddenlib.dir};${myenv.PATH}"/>
+            <sysproperty key="GEMFIRE" value="${external.dir}/product"/>
+            <sysproperty key="JPROBE" value="${jprobe.home}"/>
+  
+            <sysproperty key="JTESTS" value="${external.dir}/classes"/>
+            <sysproperty key="EXTRA_JTESTS" value="${tests.battery.classes.dir}"/>
+            <sysproperty key="testFileName" value="${bt.file}"/>
+            <sysproperty key="resultDir" value="${bt.result.dir}"/>
+            <sysproperty key="numTimesToRun" value="${bt.numTimesToRun}"/>
+    
+            <sysproperty key="nukeHungTest" value="${bt.nukeHungTest}"/>
+            <sysproperty key="useSSH" value="${useSSH}"/>
+  
+            <arg line="${extra.bt.args}"/>
+          </java>
+          <!-- find the output and determine if we failed. -->
+          <loadfile property="bt.log.content" srcFile="${bt.log}"/>
+          <condition property="bt.test.failed">
+            <contains string="${bt.log.content}" substring="runbattery() returned false"/>
+          </condition>
+          <loadfile property="oneliner.txt.content" srcFile="${oneliner.txt}"/>
+          <echo message="${oneliner.txt.content}" level="info"/>
+          <if>
+            <istrue value="${bt.isdunit}"/>
+            <then>
+              <conditional if="bt.test.failed">
+                <property name="dunit.tests.failed" value="${bt.test.failed}"/>
+                <antcall target="dunit-list-failures"/>
+              </conditional>
+            </then>
+          <else>
+            <fail if="bt.test.failed"/>
+          </else>
+        </if>
+      </sequential>
+      <sequential>
+        <waitfor maxwait="30" maxwaitunit="second">
+          <available file="${bt.log}"/>
+        </waitfor>
+        <echo message="Started batterytest, see log ${bt.log}" level="info"/>
+      </sequential>
+    </parallel>
+  </target>
+  <target name="precheckin-impl"
+          depends="update-svn, clean, build-all, run-all-tests"/>
+  <target name="run-all-tests-impl" 
+          depends="run-junit-tests, run-dunit-tests"/>
+  <target name="run-junit-tests-impl" 
+          depends="props, -keep-going, define-test-groups">
+    <run-junit results="${tests.results.dir}/junit"/>
+  </target> 
+  <target name="run-dunit-tests-impl" 
+          depends="props, -keep-going, 
+                   define-classpath-refids, define-test-groups">
+    <delete dir="${tests.results.dir}/dunit"/>
+    <dunit-generate-config/>
+    <unitTest-battery type="dunit" 
+                      bt.file="${tests.results.dir}/dunit/dunit-tests.bt"
+                      resultsDir="${tests.results.dir}"
+                      skipHydraClean="true"/>
+  </target> 
+  <target name="update-svn-impl" depends="props">
+    <delete file="${svn.logfile}" quiet="true"/>
+
+    <!-- failonerror set to false for svn update because it may actually
+         perform a lot of updates before failing, and we need to capture
+         those in .svn-history.log -->
+    <exec executable="svn" failonerror="false" output="${svn.logfile}">
+      <arg value="update"/>
+    </exec>
+
+    <exec executable="svn" append="true" output="${svn.logfile}">
+      <arg value="status"/>
+    </exec>
+
+    <antcall inheritAll="true" target="make-last-update"/>
+
+    <concat append="true" fixlastline="true" destfile="${svn.hist.logfile}" >
+==============================
+</concat>  <!-- Leave the two lines above as is so they concat properly -->
+
+    <concat append="true" fixlastline="true" destfile="${svn.hist.logfile}">
+      <filelist dir="${basedir}" files="build-artifacts/build.number"/>
+      <filelist dir="${basedir}" files="${svn.logfile}"/>
+    </concat>
+
+    <echo message="Checking for update conflicts in ${svn.logfile}" level="info"/>
+
+    <exec executable="grep" resultproperty="grepExitStatus">
+      <arg value="^C "/>
+      <arg value="${svn.logfile}"/>
+    </exec>
+    <condition property="grepFailed">
+      <equals arg1="${grepExitStatus}" arg2="0"/>
+    </condition>
+
+    <fail if="grepFailed" message="SVN update conflicts detected."/>
+  </target>
+  <target name="usage-impl">
+    <java classname="org.apache.tools.ant.Main">
+      <arg value="-projecthelp"/>
+      <classpath>
+        <fileset dir="${ant.library.dir}">
+          <include name="**/*.jar"/>
+        </fileset>
+      </classpath>
+    </java>
+  </target>
+
+  <!-- Begin support target definitions -->
+  <target name="-keep-going" depends="props">
+    <keepgoing haltOnFailure="${haltOnFailure}"/>
+  </target>
+  <target depends="props" name="clean-hydra-results">
+    <if>
+      <istrue value="${skip.hydra.clean}"/>
+    <then>
+    </then>
+    <else>
+      <property location="${tests.results.dir}/battery" name="bt.result.dir"/>
+      <delete dir="${bt.result.dir}"/>
+    </else>
+    </if>
+  </target>
+  <target name="check-gemfire-dir" 
+          depends="props, gemfire-dir-exists" 
+          unless="gemfire.dir.exists">
+    <fail message="Directory &quot;${gemfire.dir}&quot; does not exist. Check your &#36;{gemfire.dir} setting."/>
+  </target>
+  <target name="gemfire-dir-exists">
+    <available file="${gemfire.dir}" 
+               property="gemfire.dir.exists"/>
+  </target>
+  <target name="fetch-dependencies" depends="props,check-gemfire-dir">
+    <copy todir="${hidden.dir}">
+      <fileset dir="${hydra.dir}/../hidden">
+        <include name="gemfireLicense.zip"/>
+      </fileset>
+    </copy>
+    <copy todir="${external.dir}">
+      <!-- Gemfire and license -->
+      <fileset dir="${gemfire.dir}">
+        <include name="product/lib/*.jar"/>
+        <include name="product/lib/*.properties"/>
+        <include name="hidden/**"/>
+      </fileset>
+
+      <!-- Hydra -->
+      <fileset dir="${hydra.dir}">
+        <include name="classes/com/**"/>
+        <include name="classes/admin/jmx/**"/>
+        <include name="classes/bsh/**"/>
+        <include name="classes/batterytest/**"/>
+        <include name="classes/bt/**"/>
+        <include name="classes/hydra*/**"/>
+        <include name="classes/lib/*.dll"/>
+        <include name="classes/util/**"/>
+        <include name="classes/perffmwk/**"/>
+        <include name="classes/junit.jar"/>
+        <include name="classes/diskReg/**"/>
+        <include name="classes/objects/**"/>
+        <include name="classes/query/**"/>
+        <include name="classes/resultsUtil/**"/>
+        <include name="classes/swarm/**"/>
+      </fileset>
+
+      <!-- DUnit -->
+      <fileset dir="${hydra.dir}">
+        <include name="classes/dunit/*.class"/>
+        <include name="classes/dunit/impl/*.class"/>
+        <include name="classes/dunit/impl/dunit.inc"/>
+        <include name="classes/dunit/impl/dunitN.inc"/>
+        <include name="classes/dunit/eclipse/*.class"/>
+      </fileset>
+    </copy>
+  </target>
+  <target name="make-last-update" unless="skipLastUpdate">
+    <property name="build.dir" value="${basedir}/build-artifacts"/>
+    <property name="last.update.file" value="${build.dir}/lastUpdate.txt"/>
+    <mkdir dir="${build.dir}"/>
+    <echo message="Creating new lastUpdate.txt file..." level="info"/>
+    <delete file="${last.update.file}" quiet="true"/>
+    <!-- Make Last Update File with SVN workspace -->
+    <if>
+      <available file=".svn" type="dir"/>
+      <then>
+        <echo level="info" message="Querying SVN Workspace Information" />
+        <svnSetting client="cli" dateformatter="MM/dd/yyyy HH:mm:ss z" id="svn.settings"/>
+        <!-- Get svn info of the SVN workspace -->
+        <svn refid="svn.settings">
+          <info target="${basedir}"/>
+        </svn>
+        <propertyregex property="source.branch"
+          input="${svn.info.url}"
+          regexp="^https\:\/\/svn\.gemstone\.com\/repos\/"
+          replace=""
+          casesensitive="false" />
+        
+        <!-- Create LastUpdate Property File -->
+        <propertyfile comment="Information about an SVN Checkout" file="${last.update.file}">
+          <entry key="source.branch" value="${source.branch}"/>
+          <entry key="source.date" value="${svn.info.lastDate}"/>
+          <entry key="source.revision" value="${svn.info.lastRev}"/>
+        </propertyfile>
+      </then>
+      <else>
+        <property name="source.branch" value="UNKNOWN"/>
+        <property name="source.date" value="UNKNOWN"/>
+        <property name="source.revision" value="UNKNOWN"/>
+        <property name="build.number" value="DEV"/>
+      </else>
+    </if>
+    
+    <!-- The svn revision number now becomes the build.number -->
+    <property file="${last.update.file}"/>
+    <propertyfile comment="Build Number File" file="${build.dir}/build.number">
+      <entry key="build.number" value="${source.revision}"/>
+    </propertyfile>
+
+    <property file="${build.dir}/build.number"/>
+    <echo message=""/>
+    <echo message="========================================="/>
+    <echo message="Version: ${product.version} ${user.name} ${build.number}"/>
+    <echo message="Source-branch: ${source.branch}"/>
+    <echo message="Source-Date: ${source.date}"/>
+    <echo message="Source-Svn-Revision: ${source.revision}"/>
+    <echo message="========================================="/>
+  </target>
+
+  <target name="props" unless="props.already.done">
+    <property name="props.already.done" value="flag to prevent repetition"/>
+
+    <property name="testJVM" value="${default.testVM}/bin/java"/>
+
+    <condition property="library.path" value="DYLD_LIBRARY_PATH">
+        <os family="mac"/>
+    </condition>
+
+    <condition property="library.path" value="LD_LIBRARY_PATH">
+        <not><os family="mac"/></not>
+    </condition>
+
+    <exec executable="bash" outputproperty="host.name" failonerror="true" failifexecutionfails="true">
+      <arg line="-c hostname"/>
+    </exec>
+
+    <echo message="osbuild.dir is ${osbuild.dir}" level="info"/>
+    <echo message="Running on ${host.name}" level="info"/>
+
+    <!-- Do not allow build artifacts to be place on the filer -->
+    <fail message="Build artifacts cannot reside on the filer (${osbuild.dir}).  Please use a build properties file">
+      <condition>
+        <contains string="${osbuild.dir}" substring="shared_build"
+                  casesensitive="false"/>
+      </condition>
+    </fail>
+
+    <mkdir dir="${osbuild.dir}"/>
+
+    <!-- If a "last update" file doesn't exist, then create one -->
+    <available file="${build.dir}/${last.update.file}" 
+               property="last.update.exists"/>
+
+    <conditional unless="last.update.exists">
+      <echo message="Updating lastUpdate.txt as it doesn't exist..." 
+            level="info"/>
+      <antcall target="make-last-update"/>
+      <property name="skipLastUpdate"  value="true"/>
+    </conditional>
+
+    <!-- If svn was manually run then update lastUpdate.txt and build.number -->
+    <uptodate property="makelastupdate.Required"
+      srcfile="${last.update.file}"
+      targetfile="${basedir}/.svn/entries"/>
+
+    <conditional if="makelastupdate.Required">
+      <antcall target="make-last-update"/>
+      <property name="skipLastUpdate"  value="true"/>
+    </conditional>
+  </target>
+  
+  <!-- Begin macrodef definitions -->
+  <macrodef name="compile-java">
+    <attribute name="src.dir"/>
+    <attribute name="output.dir"/>
+    <attribute name="classpath.refid"/>
+    <sequential>
+      <mkdir dir="@{output.dir}"/>
+      <javac executable="${javac.primary}/bin/javac" 
+             fork="yes" 
+             memoryMaximumSize="${javac.mmx}"
+             debug="${javac.debug}"
+             deprecation="${javac.deprecation}"
+             destdir="@{output.dir}" 
+             includeAntRuntime="false"
+             nowarn="off" optimize="off" encoding="UTF-8" target="${javac.target}">
+        <src path="@{src.dir}"/>
+        <include name="**/*.java"/>
+        <classpath>
+          <path refid="@{classpath.refid}"/>
+        </classpath>
+      </javac>
+    </sequential>
+  </macrodef>
+  <macrodef name="dunit-generate-config">
+    <attribute name="dunitOutDir" default="${tests.results.dir}/dunit"/>
+    <attribute name="dunit.testlist" default="${dunit.testlist}"/>
+    <attribute name="dunit.classes.dir" default="${tests.dunit.classes.dir}"/>
+    <attribute name="extra-classpath-ref" default="empty.classpath"/>
+    <sequential>
+      <mkdir dir="@{dunitOutDir}"/>
+ 
+      <conditional if="myenv.JPROBE_HOME">
+        <property name="jprobe.home" value="${myenv.JPROBE_HOME}"/>
+      </conditional>
+      <conditional unless="jprobe.home">
+        <property name="jprobe.home" value="/dummyjprobedir"/>
+      </conditional>
+
+      <echo message="Running dunit tests in @{dunitOutDir}..." level="info"/>
+
+      <!-- Load the DUnit config task. -->
+      <taskdef classname="dunit.impl.DUnitConfigAntTask" name="dunitconfig">
+        <classpath>
+          <pathelement location="${external.dir}/product/lib/gemfire.jar"/>
+          <pathelement location="${external.dir}/classes"/>
+        </classpath>
+
+      </taskdef>
+
+      <property name="dunitconfig.classes.dir" value="@{dunit.classes.dir}"/>
+      <property name="dunit.extra.product.jar" value=""/>
+
+      <dunitconfig btFile="@{dunitOutDir}/dunit-tests.bt"
+           confFile="@{dunitOutDir}/dunit-tests.conf" debugJavaGroups="false"
+           includeFile="${dunit.inc.file}"
+           logLevel="${logLevel}"
+           dunitSites="${dunitSites}"
+           systemCount="2"
+           verbose="true"
+           useIPv6="${useIPv6}"
+           extraVMArgs="-ea -Xms125m -Xmx250m ${dunit-jvm-args} -Dgemfire.DEFAULT_MAX_OPLOG_SIZE=10000000 -Dp2p.defaultConcurrencyLevel=6 -DBridgeServer.SELECTOR=false -DBridgeServer.SELECTOR_POOL_SIZE=10 -DDUNIT.MAX_PUTTERS=100 -DDUNIT.MAX_PUT_OPS=50000 -DDUNIT.PUT_SIZE=1 -DDUNIT.PUT_TIMEOUT=10000 -DBridgeServer.MAX_INCOMING_DATA=-1 -DBridgeServer.MAX_INCOMING_MSGS=-1 -Dgemfire.disable-event-old-value=false -Dgemfire.enable-time-statistics=true -Dgemfire.ack-wait-threshold=60 -DJUnitTestSuite.maxRunSecs=${junit.timeout} -Dack-threshold-exception=false -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y -DBridgeServer.handShakeTimeout=3000 -Dgemfire.statsDisabled=false
+                   -DDistributionManager.DISCONNECT_WAIT=20000 -Dgemfire.disallowMcastDefaults=true -Dgf.ldap.server=ldap -Dgf.ldap.basedn=ou=ldapTesting,dc=pune,dc=gemstone,dc=com" > 
+
+        <extraClientClassPath>
+          <pathelement location="${classes.dir}"/>
+          <pathelement location="${tests.dunit.classes.dir}"/>
+          <pathelement location="${external.dir}/classes"/>
+          <pathelement location="${ant.home}/lib/ant.jar"/>
+          <pathelement location="${ant.home}/lib/ant-junit.jar"/>
+          <pathelement location="${junit.dir}/junit.jar"/>
+          <path refid="src.classpath"/>
+          <path refid="@{extra-classpath-ref}"/>
+        </extraClientClassPath>
+
+        <tests dir="${dunitconfig.classes.dir}">
+          <patternset refid="@{dunit.testlist}"/>
+        </tests>
+      </dunitconfig>
+    </sequential>
+  </macrodef>
+  <macrodef name="run-junit">
+    <attribute name="testGroup" default="${junit.testlist}"/>
+    <attribute name="results" default="NOT_SET"/>
+    <attribute name="extra-classpath-ref" default="empty.classpath"/>
+    <attribute name="suite" default="junit"/>
+
+    <attribute name="jvm" default="${testJVM}"/>
+    <attribute name="junitTestsDir" default="${tests.junit.classes.dir}"/>
+    <attribute name="dprop" default="${d32prop}"/>
+    <attribute name="ld.library.dir"
+    default="${product.library.dir}${path.separator}${hiddenlib.dir}"/>
+    <attribute name="extra.jtests.dir" default="NOT_SET"/>
+
+    <sequential>  
+      <delete dir="@{results}" quiet="true"/>
+      <mkdir dir="@{results}/failures"/>
+      <mkdir dir="@{results}/xml-reports"/>
+      <!-- check for empty fileset -->
+      <fileset dir="@{junitTestsDir}" id="@{suite}.fileset">
+        <patternset refid="@{testGroup}"/>
+      </fileset>
+      <pathconvert targetos="unix" refid="@{suite}.fileset" 
+                   property="@{suite}.fileset.notempty" setonempty="false"/>
+      <fail message="Empty testGroup for @{suite}, @{testgroup}. You may have mistyped your testcase."
+            unless="@{suite}.fileset.notempty"/>
+      <taskdef classname="com.gemstone.gemfire.internal.AvailablePortTask" 
+               classpath="${product.dir}/lib/gemfire.jar" 
+               name="available-port"/>
+      <available-port portProperty="jg.port" protocol="socket"/>
+
+      <echo file="@{results}/gemfire.properties" level="info">
+            mcast-port=${jg.port}
+            log-level=${logLevel}
+      </echo>
+
+      <echo message="Running @{suite} tests  ... " level="info"/>
+      <junit dir="@{results}"
+             failureProperty="@{suite}.unit.tests.failed"
+             haltOnFailure="false" jvm="bash"
+             includeantruntime="false" tempdir="@{results}">
+        <jvmarg value="--norc"/>
+        <assertions> <enable/> </assertions>
+        <jvmarg value="${tests.bin.dir}/runtest.sh"/>
+        <jvmarg value="${product.dir}"/>
+        <jvmarg value="@{results}/failures"/>
+        <jvmarg value="@{jvm}"/>
+        <classpath>
+          <pathelement location="${tests.out.dir}/classes/junit.jar"/>
+          <pathelement location="${product.dir}/lib/gemfire.jar"/>
+          <pathelement location="${product.dir}/lib/mail.jar"/>
+          <pathelement location="${product.dir}/lib/gfSecurityImpl.jar"/>
+          <pathelement location="${ant.home}/lib/ant-junit.jar"/>
+          <pathelement location="${ant.home}/lib/ant.jar"/>
+          <pathelement location="${tests.lib.dir}/XMLJUnitFormatterTerse.jar"/>
+          <pathelement location="${tests.lib.dir}/derby.jar"/>
+          <pathelement location="${tests.lib.dir}/cache.xml"/>
+          <pathelement location="${hiddenlib.dir}/license.jar"/>
+          <pathelement location="${tests.out.dir}/classes"/>
+          <pathelement location="${product.dir}/examples/dist/classes"/>
+          <pathelement location="${product.dir}/lib/antlr.jar"/>
+          <pathelement location="@{results}"/>
+          <path refid="@{extra-classpath-ref}"/>
+        </classpath>
+        <env key="GEMFIRE" value="${product.dir}"/>
+        <env key="QUERYXMLFILE" value="${tests.lib.dir}/cachequery.xml"/>
+        <env key="JTAXMLFILE" value="${tests.lib.dir}/cachejta.xml"/>
+        <env key="${library.path}" value="@{ld.library.dir}"/>
+        <env key="PATH" value="${product.dir}/bin${path.separator}${myenv.PATH}"/>
+        <sysproperty key="GEMFIRE" value="${product.dir}"/>
+        <sysproperty key="QUERYXMLFILE" value="${tests.lib.dir}/cachequery.xml"/>
+        <sysproperty key="JTAXMLFILE" value="${tests.lib.dir}/cachejta.xml"/>
+        <sysproperty key="EXTRA_JTESTS" value="@{extra.jtests.dir}"/>
+        <sysproperty key="TESTDIR" value="${tests.src.dir}"/>
+        <sysproperty key="DistributionManager.VERBOSE" value="true"/>
+        <sysproperty key="gemfire.DEFAULT_MAX_OPLOG_SIZE" value="10000000"/>
+        <sysproperty key="gemfire.disallowMcastDefaults" value="true"/>
+        <sysproperty key="gemfire.debug" value="${gemfire.debug}"/>
+        <sysproperty key="java.library.path" value="${product.library.dir}${path.separator}${hiddenlib.dir}${path.separator}${java.library.path}"/>
+
+        <jvmarg value="-Xmx256M"/>
+        <jvmarg value="@{dprop}"/>
+        <jvmarg line="${dunit-extra-jvm-args}"/>
+
+        <!--  we set usefile to false because the runtest.sh takes care of
+              creating the output file -->
+        <formatter type="plain" usefile="false"/>
+        <formatter classname="org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatterTerse" extension=".xml"/>
+        <!-- Use the above batchtest if the 'testcase' system property is defined, otherwise use the batchtest below. -->
+        <batchtest fork="yes" todir="@{results}/xml-reports">
+          <fileset dir="@{junitTestsDir}">
+            <patternset refid="@{testGroup}"/>
+          </fileset>
+        </batchtest>
+      </junit>
+
+      <available file="@{results}/com.gemstone.gemfire.admin.internal.BindDistributedSystemTest.txt" property="@{suite}.txtFile.exists"/>
+      <conditional if="@{suite}.txtFile.exists">
+        <move file="@{results}/com.gemstone.gemfire.admin.internal.BindDistributedSystemTest.txt" tofile="@{results}/com.gemstone.gemfire.admin.internal.BindDistributedSystemTest" failonerror="false"/>
+      </conditional>
+
+      <conditional if="@{suite}.unit.tests.failed">
+        <echo message="FAILED: @{suite} tests failures in @{results}/failures" level="error"/>
+        <echo append="true" file="@{results}/TestFailures" message="FAILED: @{suite} tests failures in @{results}/failures" level="error"/>
+        <fail message="FAILED: One or more @{suite} tests failed"/>
+      </conditional>
+      <conditional unless="@{suite}.unit.tests.failed">
+        <echo level="info" message="Info: all @{suite} tests ran successfully."/>
+        <delete dir="@{results}/failures" quiet="true"/>
+      </conditional>
+    </sequential>  
+  </macrodef>
+  <macrodef name="unitTest-battery">
+    <attribute name="resultsDir"/>
+    <attribute name="jvm" default="${testJVM}"/>
+    <attribute name="bt.file"/>
+    <attribute name="type"/>
+    <attribute name="dprop" default="${d32prop}"/>
+    <!-- Needed because dunit-tests.bt is generated within the results directory -->
+    <attribute name="skipHydraClean" default=""/>
+    <attribute name="extra.dtests.dir" default=""/>
+    <attribute name="threshold.dunit" default="${default.threshold}"/>
+    <sequential>
+      <if>
+        <and>
+          <equals arg1="${os.name}" arg2="SunOS"/>
+          <equals arg1="@{dprop}" arg2="${d64prop}"/>
+        </and>
+        <then>
+          <!--touch the file so the append succeeds.-->
+          <mkdir dir="@{resultsDir}/@{type}"/>
+          <touch file="@{resultsDir}/@{type}/local.conf"/>
+          <echo append="true"
+                file="@{resultsDir}/@{type}/local.conf" level="info">
+hydra.VmPrms-type = d64;
+          </echo>
+        </then>
+      </if>
+      <antcall target="execute-battery-nobuild">
+        <param name="skip.hydra.clean" value="@{skipHydraClean}"/>
+        <param name="testJVM" value="@{jvm}"/>
+        <param name="bt.file" value="@{bt.file}"/>
+        <param name="bt.result.dir" value="@{resultsDir}/@{type}"/>
+        <param name="bt.nukeHungTest" value="${NukeHungTests}"/>
+        <param name="unittest.type" value="@{type}"/>
+        <param name="extra.jtests.dir" value="@{extra.dtests.dir}"/>
+        <param name="threshold.dunit" value="@{threshold.dunit}"/>
+      </antcall>
+    </sequential>
+  </macrodef>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/buildfiles/impl.xml
----------------------------------------------------------------------
diff --git a/databrowser/buildfiles/impl.xml b/databrowser/buildfiles/impl.xml
new file mode 100644
index 0000000..db4069f
--- /dev/null
+++ b/databrowser/buildfiles/impl.xml
@@ -0,0 +1,267 @@
+<project name="impl">
+  <target name="compile-src" 
+          depends="define-classpath-refids, fetch-dependencies, pack-lib">
+    <compile-java src.dir="${src.dir}"
+                  output.dir="${classes.dir}"
+                  classpath.refid="src.classpath"/>
+  </target>
+  <target name="create-version-file" depends="props">
+    <tstamp>
+       <format pattern="yyyy-MM-dd-hh-mm-ss-SSS" property="sys.build.time"/>
+       <format pattern="MM/dd/yyyy HH:mm:ss z" property="build.time"/>
+    </tstamp>
+
+    <!-- load property file to define source.date property -->
+    <property file="${last.update.file}" prefix="version."/>
+    <property file="${build.dir}/build.number" prefix="version."/>
+    <property file="${external.dir}/product/lib/GemFireVersion.properties" prefix="version."/>
+    <mkdir dir="${classes.dir}/com/gemstone/gemfire/tools/utilities"/>
+    <property name="version.resource.file" value="${classes.dir}/com/gemstone/gemfire/tools/utilities/${product.version.filename}"/>
+    <delete file="${version.resource.file}" quiet="true"/>
+    <propertyfile file="${version.resource.file}" comment="Properties that report the ${product.short.name} version. Do not modify these properties.">
+      <entry key="Product-Name" value="${product.long.name}"/>
+      <entry key="${product.short.name}-Product-Version" 
+             value="${product.version}"/>
+      <entry key="Gemfire-Jar-Version" value="${version.gemfire.jar}"/>
+      <entry key="Build-Id" value="${user.name} ${version.build.number}"/>
+      <entry key="Build-Date" value="${build.time}"/>
+      <entry key="Build-Platform" value="${gf.os}"/>
+      <entry key="Build-Java-Version" value="${javac.primary.version}"/>
+      <entry key="Source-Date" value="${version.source.date}"/>
+      <entry key="Source-Revision" value="${version.source.revision}"/>
+      <entry key="Source-Repository" value="${version.source.branch}"/>
+    </propertyfile>
+  </target>
+  <target name="define-test-groups">
+    <conditional if="dunit.testcase">
+      <property name="dunit.testlist" value="dunit-custom-tests"/>
+    </conditional>
+    <conditional unless="dunit.testcase">
+      <property name="dunit.testlist" value="dunit-default-tests"/>
+    </conditional>
+    <conditional if="junit.testcase">
+      <property name="junit.testlist" value="junit-custom-tests"/>
+    </conditional>
+    <conditional unless="junit.testcase">
+      <property name="junit.testlist" value="junit-default-tests"/>
+    </conditional>
+    <!-- custom junit -->
+    <patternset id="junit-custom-tests">
+      <include name="${junit.testcase}"/> 
+      <exclude name="${junit.excludes}" if="junit.excludes"/>
+    </patternset>
+    
+    <!-- standard junit -->
+    <patternset id="junit-default-tests">
+       <include name="**/*Test.class"/> 
+    </patternset>
+
+    <!-- custom dunit -->
+    <patternset id="dunit-custom-tests">
+      <include name="${dunit.testcase}"/> 
+      <exclude name="${dunit.excludes}" if="dunit.excludes"/>
+    </patternset>
+
+    <!-- standard dunit -->
+    <patternset id="dunit-default-tests">
+      <include name="**/*Test.class"/> 
+    </patternset>
+
+  </target>
+  <target name="define-classpath-refids" depends="props">
+    <path id="empty.classpath"/>
+    <path id="gemfire.lib.jars">
+      <pathelement location="${external.dir}/product/lib/gemfire.jar"/>
+      <pathelement location="${external.dir}/product/lib/mx4j.jar"/>
+      <pathelement location="${external.dir}/product/lib/mx4j-remote.jar"/>
+      <pathelement location="${external.dir}/product/lib/mx4j-tools.jar"/>
+      <pathelement location="${external.dir}/product/lib/antlr.jar"/>
+      <pathelement location="${external.dir}/product/lib/commons-logging.jar"/>
+      <pathelement location="${external.dir}/product/lib/commons-modeler-2.0.jar"/>   
+      <pathelement location="${external.dir}/product/lib/gfSecurityImpl.jar"/>
+      <pathelement location="${external.dir}/product/lib/log4j.jar"/>
+    </path>
+    <!-- use Linux as the base copy -->
+    <path id="eclipse.plugins.general">
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/org.eclipse.swt_3.4.1.v3449c.jar"/>
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/org.eclipse.jface_3.4.1.M20080827-2000.jar"/>
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/org.eclipse.core.commands_3.4.0.I20080509-2000.jar"/>
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/org.eclipse.core.jobs_3.4.0.v20080512.jar"/>
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar"/>
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar"/>
+    </path>
+    <property name="swt.x86.Windows_NT.jar" 
+              value="org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar"/>
+    <property name="swt.x86_64.Windows_NT.jar" 
+              value="org.eclipse.swt.win32.win32.x86_64_3.4.1.v3449c.jar"/>  	
+    <property name="swt.x86.linux.jar" 
+              value="org.eclipse.swt.gtk.linux.x86_3.4.1.v3449c.jar"/>
+    <property name="swt.x86_64.linux.jar" 
+              value="org.eclipse.swt.gtk.linux.x86_64_3.4.1.v3449c.jar"/>
+    <property name="swt.x86_64.linux.jar" 
+              value="org.eclipse.swt.gtk.linux.x86_64_3.4.1.v3449c.jar"/>
+    <property name="swt.x86.macosx.jar" 
+              value="org.eclipse.swt.carbon.macosx_3.4.1.v3449c.jar"/>
+    <path id="eclipse.plugins.x86.Windows_NT">
+      <pathelement location="${eclipse.dir.x86.Windows_NT}/plugins/${swt.x86.Windows_NT.jar}"/>
+    </path>
+    <path id="eclipse.plugins.x86_64.Windows_NT">
+      <pathelement location="${eclipse.dir.x86_64.Windows_NT}/plugins/${swt.x86_64.Windows_NT.jar}"/>
+    </path>  	
+    <path id="eclipse.plugins.x86.linux">
+      <pathelement location="${eclipse.dir.x86.linux}/plugins/${swt.x86.linux.jar}"/>
+    </path>
+    <path id="eclipse.plugins.x86_64.linux">
+      <pathelement location="${eclipse.dir.x86_64.linux}/plugins/${swt.x86_64.linux.jar}"/>
+    </path>
+    <!-- ordinarily eclipse.dir.x86.macosx is not set so this is a noop.
+         It is retained to allow debugging on macbooks, not for releases.-->
+    <path id="eclipse.plugins.x86.macosx">
+      <pathelement location="${eclipse.dir.x86.macosx}/plugins/${swt.x86.macosx.jar}"/>
+    </path>
+    <path id="eclipse.plugins">
+      <path refid="eclipse.plugins.general"/>
+      <path refid="eclipse.plugins.x86.linux"/>
+      <path refid="eclipse.plugins.x86_64.linux"/>
+      <path refid="eclipse.plugins.x86.Windows_NT"/>
+      <path refid="eclipse.plugins.x86_64.Windows_NT"/>
+      <!-- Path to macosx plugin causes build failure since eclipse.dir.x86.macosx is not defined -->
+      <!--<path refid="eclipse.plugins.x86.macosx"/>-->
+    </path>
+    <path id="src.classpath">
+      <fileset dir="${product.dir}/lib">
+        <include name="*.jar"/>
+      </fileset>
+      <fileset dir="${external.dir}/product/lib">
+        <include name="antlr.jar"/>
+        <include name="gemfire.jar"/>
+      </fileset>
+    </path>
+    <path id="tests.classpath">
+      <path refid="src.classpath"/>
+      <pathelement location="${tests.junit.classes.dir}"/>
+      <pathelement location="${tests.dunit.classes.dir}"/>
+      <pathelement location="${tests.battery.classes.dir}"/>
+      <pathelement location="${external.dir}/classes"/>
+      <pathelement location="${external.dir}/classes/junit.jar"/>
+    </path>
+  </target>
+  <target name="create-about-file" 
+          depends="create-version-file"> 
+    <concat destfile="${classes.dir}/resources/${product.about.resource}">
+${product.long.name} version ${product.version} ${user.name} ${version.build.number}
+Built on ${build.time} with Java Version ${javac.primary.version}
+Compiled with Gemfire Version ${version.gemfire.jar}
+
+</concat>
+  </target>
+
+  <target name="jar-product" 
+          depends="compile-src, create-about-file"> 
+    <copy todir="${classes.dir}">
+      <fileset dir="${basedir}">
+        <include name="resources/**"/>
+      </fileset>
+    </copy>
+    <manifest file="${product.manifest}">
+      <attribute name="Manifest-Version" value="1.0"/>
+      <attribute name="Created-By" value="GemStone Systems, Inc."/>
+    </manifest>
+    <jar jarfile="${product.dir}/lib/${product.jar.name}"
+         manifest="${product.manifest}">
+      <fileset dir="${classes.dir}">
+        <include name="**" />
+      </fileset> 
+    </jar>
+  </target>
+  <target name="pack-core" depends="pack-bin, pack-docs">
+    <!-- Add open source license file to product-->
+      <copy todir="${product.dir}"
+        file="${basedir}/release/3rdparty_licenses/open_source_licenses-VMware_vFabric_GemFire_DataBrowser_7.0.1.txt"/>
+  </target>
+  <target name="pack-docs" depends="props">
+    <mkdir dir="${product.dir}/docs"/>
+    <copy todir="${product.dir}/docs"
+          file="${basedir}/release/docfiles/index.html"/>
+    <copy todir="${product.dir}/docs"
+          file="${basedir}/release/docfiles/VMwareLogo.png"/>
+  </target>
+  <target name="pack-lib" depends="define-classpath-refids">
+    <mkdir dir="${product.dir}/lib"/>
+    <copy todir="${product.dir}/lib">
+      <path refid="eclipse.plugins"/>
+      <mapper type="flatten"/>
+    </copy>
+  </target>
+  <target name="pack-bin" depends="props">
+    <mkdir dir="${product.dir}/bin"/>
+    <copy todir="${product.dir}/bin">
+      <fileset dir="${basedir}/release/scripts">
+        <include name="${script.name}"/>
+        <include name="${script.name}.bat"/>
+      </fileset>
+    </copy>
+    <fileset id="product.jars.refid" dir="${product.dir}/lib">
+      <include name="*.jar"/> 
+      <exclude name="${product.jar.name}"/> 
+      <exclude name="*win32*"/> 
+      <exclude name="*gtk*"/> 
+      <exclude name="*macosx*"/> 
+    </fileset>
+    <pathconvert property="script.windows.jars" 
+                 pathsep=";&#37;databrowser&#37;\lib\" dirsep="\"
+                 refid="product.jars.refid">
+      <mapper type="flatten"/>
+    </pathconvert>
+    <pathconvert property="script.unix.jars" 
+                 pathsep=":&#36;&#123;databrowser&#125;/lib/" dirsep="/"
+                 refid="product.jars.refid">
+      <mapper type="flatten"/>
+    </pathconvert>
+   
+    <!-- unix script --> 
+    <replace file="${product.dir}/bin/${script.name}" 
+             token="__MAIN_CLASS__"
+             value="${product.main-class}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}" 
+             token="__JVMARCH_CLASS__"
+             value="${product.jvmarch-class}" summary="yes"/>  	
+    <replace file="${product.dir}/bin/${script.name}" 
+             token="__JAR_NAME__"
+             value="${product.jar.name}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}" 
+             token="__UNIX_JARS__"
+             value="${script.unix.jars}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}" 
+             token="__SWT_x86.linux__"
+             value="${swt.x86.linux.jar}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}" 
+             token="__SWT_x86_64.linux__"
+             value="${swt.x86_64.linux.jar}" summary="yes"/>
+
+    <!-- windows script --> 
+    <replace file="${product.dir}/bin/${script.name}.bat" 
+             token="__MAIN_CLASS__"
+             value="${product.main-class}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}.bat" 
+                 token="__JVMARCH_CLASS__"
+                 value="${product.jvmarch-class}" summary="yes"/>  	
+    <replace file="${product.dir}/bin/${script.name}.bat" 
+             token="__JAR_NAME__"
+             value="${product.jar.name}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}.bat" 
+             token="__Windows_NT_JARS__"
+             value="${script.windows.jars}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}.bat" 
+             token="__SWT_x86.Windows_NT__"
+             value="${swt.x86.Windows_NT.jar}" summary="yes"/>
+    <replace file="${product.dir}/bin/${script.name}.bat" 
+             token="__SWT_x86_64.Windows_NT__"
+             value="${swt.x86_64.Windows_NT.jar}" summary="yes"/>  	
+    <chmod perm="a+x">
+      <fileset dir="${product.dir}/bin">
+        <include name="*"/>
+      </fileset>
+    </chmod>
+  </target>
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/buildfiles/utilities.xml
----------------------------------------------------------------------
diff --git a/databrowser/buildfiles/utilities.xml b/databrowser/buildfiles/utilities.xml
new file mode 100644
index 0000000..1187e47
--- /dev/null
+++ b/databrowser/buildfiles/utilities.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project name="utilities">
+  <description>
+    The Utilities Ant XML build script file defines reusable and useful utility functions/tasks for use inside other
+    GemFire build targets.
+  </description>
+
+  <path id="path.svnant">
+    <pathelement location="${svnant.dir}/lib/svnant.jar"/>
+	<pathelement location="${svnant.dir}/lib/svnClientAdapter.jar"/>
+	<pathelement location="${svnant.dir}/lib/svnkit-javahl16-1.7.5-v1.jar"/>
+	<pathelement location="${svnant.dir}/lib/svnkit-1.7.5-v1.jar"/>
+	<pathelement location="${svnant.dir}/lib/sqljet-1.1.4.jar"/>
+	<pathelement location="${svnant.dir}/lib/svnkit-cli-1.7.5-v1.jar"/>
+	<pathelement location="${svnant.dir}/lib/jna-3.4.0.jar"/>
+	<pathelement location="${svnant.dir}/lib/antlr-runtime-3.4.jar"/>
+	<pathelement location="${svnant.dir}/lib/sequence-library-1.0.2.jar"/>
+   </path>
+   
+  <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" 
+           classpathref="path.svnant" />
+  
+  <condition property="antcontrib.taskfile" value="net/sf/antcontrib/antlib.xml">
+    <antversion atleast="1.8"/>
+  </condition>
+  
+  <!-- If antcontrib.taskfile is not set -->
+  <property name="antcontrib.taskfile" value="net/sf/antcontrib/antcontrib.properties"/>
+  
+  <taskdef resource="${antcontrib.taskfile}" classpath="${ant-contrib.jar}"/>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/qa/DataBrowser Test Spec.xls
----------------------------------------------------------------------
diff --git a/databrowser/qa/DataBrowser Test Spec.xls b/databrowser/qa/DataBrowser Test Spec.xls
new file mode 100644
index 0000000..89addb4
Binary files /dev/null and b/databrowser/qa/DataBrowser Test Spec.xls differ

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/release/3rdparty_licenses/ICU4J_license.txt
----------------------------------------------------------------------
diff --git a/databrowser/release/3rdparty_licenses/ICU4J_license.txt b/databrowser/release/3rdparty_licenses/ICU4J_license.txt
new file mode 100644
index 0000000..4be5636
--- /dev/null
+++ b/databrowser/release/3rdparty_licenses/ICU4J_license.txt
@@ -0,0 +1,21 @@
+===============================================================================
+ICU4J license - ICU4J 1.3.1 and later
+http://source.icu-project.org/repos/icu/icu/trunk/license.html
+===============================================================================
+
+COPYRIGHT AND PERMISSION NOTICE
+
+
+Copyright (c) 1995-2006 International Business Machines Corporation and others 
+
+
+All rights reserved. 
+
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. 
+
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 
+
+
+Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. 

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1709e627/databrowser/release/3rdparty_licenses/apache20_license.txt
----------------------------------------------------------------------
diff --git a/databrowser/release/3rdparty_licenses/apache20_license.txt b/databrowser/release/3rdparty_licenses/apache20_license.txt
new file mode 100644
index 0000000..f123094
--- /dev/null
+++ b/databrowser/release/3rdparty_licenses/apache20_license.txt
@@ -0,0 +1,209 @@
+
+===============================================================================
+The Apache Software License, Version 2.0 January 2004
+http://www.apache.org/licenses/LICENSE-2.0
+===============================================================================
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed 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.
+
+


Mime
View raw message