forked from aaronfeng/trixx
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.xml
171 lines (149 loc) · 7.06 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?xml version="1.0" encoding="UTF-8"?>
<project name="trixx" default="jar" basedir=".">
<property file="build.properties" />
<property name="project.name" value="trixx" />
<property name="project.version" value="0.1.0" />
<property name="project.url" value="http://github.com/aaronfeng/trixx/tree/master" />
<property name="source.dir" value="${basedir}/src" />
<property name="build.dir" value="${basedir}/classes" />
<property name="deps.dir" value="${basedir}/deps" />
<property name="target.dir" value="${basedir}/build/lib" />
<property name="jar.file.name" value="${project.name}-${project.version}.jar" />
<property name="rabbitmq.base.dir" value="${basedir}/rabbitmq" />
<property name="rabbitmq.server.dir" value="${rabbitmq.base.dir}/rabbitmq-server" />
<property name="build.deps.file" value="trixx-deps.zip" />
<property name="build.deps.url" value="http://cloud.github.com/downloads/aaronfeng/trixx/${build.deps.file}" />
<property name="erlang.cookie.file" value="${user.home}/.erlang.cookie" />
<loadfile property="com.leftrightfold.trixx.cookie" srcFile="${erlang.cookie.file}" />
<property name="com.leftrightfold.trixx.rabbit-server" value="localhost" />
<property name="com.leftrightfold.trixx.rabbit-instance" value="rabbit" />
<path id="classpath">
<path location="${build.dir}" />
<path location="${source.dir}" />
<fileset dir="${deps.dir}">
<include name="*.jar" />
</fileset>
</path>
<path id="emma.lib">
<fileset dir="${basedir}/deps/test">
<include name="*.jar" />
</fileset>
</path>
<!-- directory that contains emma.jar and emma_ant.jar: -->
<property name="emma.dir" value="${basedir}/deps/test" />
<path id="emma.lib" >
<pathelement location="${emma.dir}/emma.jar" />
<pathelement location="${emma.dir}/emma_ant.jar" />
</path>
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
<target name="compile-rabbit-server" description="Compile RabbitMQ Server">
<exec executable="make" dir="${rabbitmq.server.dir}">
<arg value="srcdist" />
<arg value="all" />
</exec>
<copy file="${rabbitmq.server.dir}/INSTALL.in" tofile="${rabbitmq.server.dir}/INSTALL" />
<exec executable="make" dir="${rabbitmq.server.dir}">
<arg value="TARGET_DIR=../local/" />
<arg value="SBIN_DIR=../local/sbin" />
<arg value="MAN_DIR=../local/man" />
<arg value="install" />
</exec>
</target>
<target name="compile" depends="compile-trixx" description="Compile project." />
<target name="compile-trixx" description="Compile Trixx (clojure.lang.Compile)">
<mkdir dir="${build.dir}" />
<java classname="clojure.lang.Compile" fork="true">
<sysproperty key="clojure.compile.path" value="${build.dir}" />
<classpath refid="classpath" />
<arg value="com.leftrightfold.trixx" />
</java>
</target>
<target name="jar" depends="compile" description="Assemble the JAR">
<mkdir dir="${target.dir}" />
<jar jarfile="${target.dir}/${jar.file.name}">
<fileset dir="${source.dir}" includes="**/*.clj" />
<fileset dir="${build.dir}" includes="**/*.class" />
</jar>
</target>
<target name="clean" description="Clean the output directory">
<delete dir="${build.dir}" />
<delete dir="${target.dir}" />
</target>
<target name="fetch-deps" description="download dependencies">
<get usetimestamp="true" description="Trixx dependencies." src="${build.deps.url}" dest="${build.deps.file}" />
<unzip src="${build.deps.file}" dest="." />
</target>
<target name="run-trixx" description="Run the compojure server" >
<echo message="Ensure you've run rabbit before this task..." />
<java classname="clojure.main" fork="true">
<sysproperty key="com.leftrightfold.trixx.cookie" value="${com.leftrightfold.trixx.cookie}" />
<sysproperty key="com.leftrightfold.trixx.rabbit-server" value="${com.leftrightfold.trixx.rabbit-server}" />
<sysproperty key="com.leftrightfold.trixx.rabbit-instance" value="${com.leftrightfold.trixx.rabbit-instance}" />
<arg value="src/com/leftrightfold/services.clj" />
<classpath>
<path refid="classpath" />
<path location="${target.dir}/${jar.file.name}" />
</classpath>
</java>
</target>
<target name="run-rabbit" description="Run the RabbitMQ Server">
<echo message="run-rabbit: dir=${rabbitmq.base.dir}/local/sbin executable=./rabbitmq-server" />
<exec executable="bash" searchpath="true" dir="${rabbitmq.base.dir}/local/sbin">
<env key="RABBITMQ_MNESIA_DIR" value="${rabbitmq.base.dir}/local/mnesia" />
<env key="RABBITMQ_LOG_BASE" value="${rabbitmq.base.dir}/local/log" />
<env key="RABBITMQ_SERVER_START_ARGS" value= "-s rabbit" />
<arg value="./rabbitmq-server" />
</exec>
</target>
<target name="run-www" description="Run the Ruby Console Web App">
<exec executable="ruby" searchpath="true" dir="${basedir}">
<arg value="src/com/leftrightfold/web/trixx-web/script/server" />
</exec>
</target>
<target name="emma" description="turns on EMMA instrumentation/reporting" >
<property name="emma.enabled" value="true" />
</target>
<target name="test" depends="jar" >
<mkdir dir="${basedir}/build/emma" />
<!-- run rabbit... -->
<echo message="Ensure you've run rabbit before this task..." />
<emmajava classname="clojure.main" fork="true" libclasspathref="emma.lib"
fullmetadata="yes" sourcepath="${source.dir}"
enabled="${emma.enabled}" >
<filter includes="com.leftrightfold.*" />
<html outfile="${basedir}/build/emma/coverage.html"/>
<xml outfile="${basedir}/build/emma/coverage.xml" />
<txt outfile="${basedir}/build/emma/coverage.txt" />
<sysproperty key="com.leftrightfold.trixx.cookie" value="${com.leftrightfold.trixx.cookie}" />
<sysproperty key="com.leftrightfold.trixx.rabbit-server" value="${com.leftrightfold.trixx.rabbit-server}" />
<sysproperty key="com.leftrightfold.trixx.rabbit-instance" value="${com.leftrightfold.trixx.rabbit-instance}" />
<arg value="test/src/com/leftrightfold/trixx_test.clj" />
<classpath>
<path refid="classpath" />
</classpath>
</emmajava>
<!-- bring rabbit down... -->
</target>
<!-- Expiremental: generate Java/Clojure structure definitions /
parsers from the Erlang/RabbitMQ record declarations -->
<target name="gen-rec-structs" description="Generate the RabbitMQ Structure Definitions">
<mkdir dir="build/ebin" />
<exec executable="erlc" searchpath="true" dir="${basedir}">
<arg value="-I" />
<arg value="rabbitmq/rabbitmq-server/include" />
<arg value="-o" />
<arg value="build/ebin" />
<arg value="src/erl/rgen.erl" />
</exec>
<exec executable="erl" searchpath="true" dir="${basedir}">
<arg value="-pa" />
<arg value="build/ebin" />
<arg value="-noinput" />
<arg value="-hidden" />
<arg value="-sname" />
<arg value="rgen" />
<arg value="-s" />
<arg value="rgen" />
</exec>
</target>
</project>