Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
kkrugler committed Jul 9, 2013
1 parent 04520df commit d5ba78a
Show file tree
Hide file tree
Showing 25 changed files with 7,999 additions and 1 deletion.
15 changes: 15 additions & 0 deletions .gitignore
@@ -0,0 +1,15 @@
.DS_Store
.classpath
.project
.settings/
.local.*
build
target
src/gen
build.sh
*.iml
*.dot
*.hprof
trash
private
junit*.properties
2 changes: 1 addition & 1 deletion README.md
@@ -1,4 +1,4 @@
text-similarity
===============

Source code for blog post series on text features for similarity calculation
Source code for blog post series on text features for similarity calculation.
37 changes: 37 additions & 0 deletions build.properties
@@ -0,0 +1,37 @@
#
# Copyright (c) 2013 Scale Unlimited
#
# All rights reserved.
#
name=${ant.project.name}
version=1.0-SNAPSHOT

jar.name=${ant.project.name}-${version}.jar
job.name=${ant.project.name}-job-${version}.jar

main.src.dir=src/main/java
test.src.dir=src/test/java

main.res.dir=src/main/resources
test.res.dir=src/test/resources

lib.dir=lib

build.dir=build
build.dir.main-classes=${build.dir}/classes-main
build.dir.test-classes=${build.dir}/classes-test

build.dir.main-classes-eclipse=${build.dir}/classes-main-eclipse
build.dir.test-classes-eclipse=${build.dir}/classes-test-eclipse

build.dir.test-reports=${build.dir}/test
build.dir.dist=${build.dir}/${name}-dist
build.release.file=${build.dir}/${name}.tgz

javac.debug=on
javac.optimize=on
javac.deprecation=off
javac.version=1.6
javac.args=
javac.args.warnings=-Xlint:none
build.encoding=UTF-8
295 changes: 295 additions & 0 deletions build.xml
@@ -0,0 +1,295 @@
<!--
Copyright (c) 2013 Scale Unlimited
All rights reserved.
-->

<project name="text-similarity" default="test">

<property name="root.dir" value="${basedir}" />
<property file="${root.dir}/build.properties" />
<property name="target.dir" location="target"/>

<!-- ================================================================== -->
<!-- General cleaning sources -->
<!-- ================================================================== -->

<target name="clean" description="--> clean the project">
<echo>cleaning ${ant.project.name}</echo>
<delete includeemptydirs="true" failonerror="false">
<fileset dir="${build.dir}" excludes="classes-*-eclipse/" />
<fileset dir="${target.dir}" />
</delete>
</target>

<!-- ================================================================== -->
<!-- Maven -->
<!-- ================================================================== -->

<property name="maven-artifact-ant.bootstrap.jar"
location="${target.dir}/maven-ant-tasks-2.1.3.jar"/>

<target name="check-get-maven-artifact-ant">
<available property="get-maven-artifact-ant-done"
file="${maven-artifact-ant.bootstrap.jar}"/>
</target>

<target name="get-maven-artifact-ant"
depends="check-get-maven-artifact-ant"
unless="get-maven-artifact-ant-done">
<mkdir dir="${target.dir}"/>
<get src="http://repo1.maven.org/maven2/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.jar"
dest="${maven-artifact-ant.bootstrap.jar}"/>
</target>

<target name="mvn-init"
unless="mvn.compile.classpath"
depends="get-maven-artifact-ant"
xmlns:artifact="urn:maven-artifact-ant">
<path id="maven.ant.tasks.classpath" path="${maven-artifact-ant.bootstrap.jar}" />

<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant"
classpathref="maven.ant.tasks.classpath"/>

<condition property="maven.repo.local"
value="${maven.repo.local}"
else="${user.home}/.m2/repository">
<isset property="maven.repo.local"/>
</condition>

<artifact:localRepository id="local.repository" path="${maven.repo.local}"/>
<artifact:pom file="pom.xml" id="maven.project"/>
<artifact:dependencies pathId="compile.classpath" filesetId="compile.fileset" useScope="compile">
<pom refid="maven.project"/>
<localRepository refid="local.repository"/>
</artifact:dependencies>
<artifact:dependencies pathId="test.classpath" filesetId="test.fileset" useScope="test">
<pom refid="maven.project"/>
<localRepository refid="local.repository"/>
</artifact:dependencies>
<artifact:dependencies pathId="runtime.classpath" filesetId="runtime.fileset" useScope="runtime">
<pom refid="maven.project"/>
<localRepository refid="local.repository"/>
</artifact:dependencies>
</target>

<!-- ================================================================== -->
<!-- Build sources -->
<!-- ================================================================== -->

<target name="compile"
depends="mvn-init"
description="--> compile main classes">
<mkdir dir="${build.dir.main-classes}" />
<javac encoding="${build.encoding}"
srcdir="${main.src.dir}"
includes="**/*.java"
destdir="${build.dir.main-classes}"
debug="${javac.debug}"
optimize="${javac.optimize}"
target="${javac.version}"
source="${javac.version}"
includeantruntime="false"
deprecation="${javac.deprecation}">
<compilerarg line="${javac.args} ${javac.args.warnings}" />
<classpath refid="compile.classpath" />
</javac>
</target>


<!-- ================================================================== -->
<!-- Unit Tests -->
<!-- ================================================================== -->

<target name="compile-test" depends="compile">
<echo>*** Building Unit Tests Sources ***</echo>
<mkdir dir="${build.dir.test-classes}" />
<path id="test.path">
<pathelement location="${build.dir.main-classes}" />
</path>

<javac encoding="${build.encoding}"
srcdir="${test.src.dir}"
includes="**/*.java"
destdir="${build.dir.test-classes}"
debug="${javac.debug}"
optimize="${javac.optimize}"
target="${javac.version}"
source="${javac.version}"
includeantruntime="false"
deprecation="${javac.deprecation}">
<compilerarg line="${javac.args} ${javac.args.warnings}" />
<classpath refid="test.classpath" />
<classpath refid="test.path" />
</javac>
</target>

<target name="test" depends="compile-test" description="--> run unit tests">
<delete dir="${build.dir.test-reports}" />
<mkdir dir="${build.dir.test-reports}" />

<junit showoutput="false"
printsummary="yes"
haltonfailure="no"
fork="yes"
maxmemory="256m"
dir="${basedir}"
errorProperty="tests.failed"
failureProperty="tests.failed">
<sysproperty key="java.security.krb5.realm" value="" />
<sysproperty key="java.security.krb5.kdc" value="" />
<classpath>
<pathelement location="${build.dir.main-classes}" />
<pathelement location="${build.dir.test-classes}" />
<pathelement location="${test.res.dir}" />
<pathelement location="${main.res.dir}" />
<path refid="test.classpath" />
</classpath>
<formatter type="plain" />
<batchtest fork="yes" todir="${build.dir.test-reports}" unless="testcase">
<fileset dir="${test.src.dir}">
<include name="**/*Test.java" unless="testcase" />
<exclude name="**/Abstract*.java" unless="testcase" />
<include name="${testcase}" if="testcase" />
</fileset>
</batchtest>
<batchtest fork="yes" todir="${build.dir.test-reports}" if="testcase">
<fileset dir="${test.src.dir}" includes="**/${testcase}.java" />
</batchtest>
</junit>
<fail if="tests.failed">Tests failed!</fail>
</target>

<!-- ================================================================== -->
<!-- Distribution -->
<!-- ================================================================== -->

<target name="dist"
depends="test"
description="--> create a tarball distribution">

<delete dir="${build.dir.dist}" />

<!-- create target directory -->
<mkdir dir="${build.dir.dist}" />
<mkdir dir="${build.dir.dist}/doc" />
<mkdir dir="${build.dir.dist}/lib" />
<mkdir dir="${build.dir.dist}/src" />

<!-- copy libs -->
<copy todir="${build.dir.dist}/lib" flatten="true">
<fileset dir="${basedir}/lib" />
<path refId="compile.classpath" />
<path refId="runtime.classpath" />
<path refId="test.classpath" />
</copy>

<!-- copy src -->
<copy todir="${build.dir.dist}/src">
<fileset dir="${basedir}/src" />
</copy>

<!-- copy documents -->
<copy todir="${build.dir.dist}/doc">
<fileset dir="${basedir}/doc" />
</copy>

<!-- copy the build files -->
<copy todir="${build.dir.dist}">
<fileset file="${basedir}/build.xml" />
</copy>

<!-- copy the build properties -->
<copy todir="${build.dir.dist}">
<fileset file="${basedir}/build.properties" />
</copy>

<tar longfile="gnu" compression="gzip" destfile="${build.release.file}">
<tarfileset dir="${build.dir.dist}" prefix="${name}/">
<include name="**" />
</tarfileset>
</tar>
</target>


<!-- ================================================================== -->
<!-- Hadoop job jar -->
<!-- ================================================================== -->

<target name="job"
depends="compile"
description="--> create a Hadoop ready jar with all dependencies">

<!-- Make sure lib/ dir starts out empty, so we don't get multiple
copies of jars with slightly different versions
-->
<delete dir="${build.dir}/lib" />
<mkdir dir="${build.dir}/lib" />

<copy todir="${build.dir}/lib" flatten="true">
<path refid="runtime.classpath" />
</copy>

<jar destfile="${build.dir}/${job.name}" compress="true">
<fileset dir="${build.dir.main-classes}" />
<fileset dir="${main.res.dir}" />
<fileset dir="${build.dir}" includes="lib/" />
</jar>
</target>


<!-- ================================================================== -->
<!-- Generating eclipse file -->
<!-- ================================================================== -->

<target name="eclipse"
depends="mvn-init, clean-eclipse"
description="--> create the Eclipse project files">

<taskdef name="eclipse"
classname="prantl.ant.eclipse.EclipseTask"
classpathref="compile.classpath" />
<mkdir dir="${build.dir.main-classes-eclipse}" />
<mkdir dir="${build.dir.test-classes-eclipse}" />

<eclipse>
<settings>
<jdtcore compilercompliance="6.0" />
<resources encoding="UTF-8" />
</settings>
<project name="${ant.project.name}" />
<classpath>
<container path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6" />

<source path="${main.src.dir}"
output="${build.dir.main-classes-eclipse}" />

<!-- TODO use build.properties (with more consistent names) for these paths -->
<source path="${basedir}/src/main/resources"
output="${build.dir.main-classes-eclipse}" />
<source path="${basedir}/src/test/java"
output="${build.dir.test-classes-eclipse}" />
<source path="${basedir}/src/test/resources"
output="${build.dir.test-classes-eclipse}" />

<output path="${build.dir.main-classes-eclipse}" />
<library pathref="test.classpath" exported="false" />
</classpath>
</eclipse>

<concat destfile="${root.dir}/.settings/org.eclipse.jdt.core.prefs"
append="true">
<filelist dir="${root.dir}/doc/" files="eclipse-formatter.properties" />
</concat>
</target>

<target name="clean-eclipse" description="--> clean the Eclipse project files">
<delete file=".classpath" />
<delete file=".eclipse" />
<delete file=".project" />
<delete dir=".settings" />
</target>


</project>

0 comments on commit d5ba78a

Please sign in to comment.