|
@@ -1,851 +0,0 @@
|
|
|
-<?xml version="1.0" ?>
|
|
|
-
|
|
|
-<!--
|
|
|
- Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
- contributor license agreements. See the NOTICE file distributed with
|
|
|
- this work for additional information regarding copyright ownership.
|
|
|
- The ASF licenses this file to You under the Apache License, Version 2.0
|
|
|
- (the "License"); you may not use this file except in compliance with
|
|
|
- the License. You may obtain a copy of the License at
|
|
|
-
|
|
|
- http://www.apache.org/licenses/LICENSE-2.0
|
|
|
-
|
|
|
- Unless required by applicable law or agreed to in writing, software
|
|
|
- distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
- See the License for the specific language governing permissions and
|
|
|
- limitations under the License.
|
|
|
--->
|
|
|
-
|
|
|
-<project name="chukwa" default="main"
|
|
|
- xmlns:ivy="antlib:org.apache.ivy.ant">
|
|
|
-
|
|
|
- <property name="name" value="chukwa"/>
|
|
|
- <property name="chukwaVersion" value="0.1.1"/>
|
|
|
- <property name="final.name" value="${name}-${chukwaVersion}"/>
|
|
|
-
|
|
|
- <import file="../build-contrib.xml" optional="true"/>
|
|
|
- <available file="../build-contrib.xml" property="present"/>
|
|
|
-
|
|
|
- <property file="build.properties"/>
|
|
|
- <property file="default.properties"/>
|
|
|
-
|
|
|
- <condition property="standaloneMode">
|
|
|
- <and><not><available file="../build-contrib.xml" property="present"/></not></and>
|
|
|
- </condition>
|
|
|
-
|
|
|
- <condition property="hadoopMode">
|
|
|
- <and><available file="../build-contrib.xml" property="present"/></and>
|
|
|
- </condition>
|
|
|
-
|
|
|
- <target name="init-standalone" depends="ivy-retrieve" if="standaloneMode">
|
|
|
- <echo>Standalone Mode</echo>
|
|
|
- <property environment="env"/>
|
|
|
- <property name="basedir" value="."/>
|
|
|
- <!--SET UP HADOOP JARS-->
|
|
|
- <property name="hadoop.home.dir" value="${env.HADOOP_HOME}"/>
|
|
|
- <echo message="HADOOP_HOME set to: ${hadoop.home.dir}"/>
|
|
|
- <property name="hadoop.default.jars.dir" value="${basedir}/hadoopjars"/>
|
|
|
-
|
|
|
- <condition property="hadoop.home.jars.dir" value="${hadoop.home.dir}/build" else="${basedir}/hadoopjars">
|
|
|
- <available file="${hadoop.home.dir}/build"/>
|
|
|
- </condition>
|
|
|
- <echo message="hadoop.home.jars.dir set to ${hadoop.home.jars.dir}"/>
|
|
|
-
|
|
|
- <property name="build.dir" value="${basedir}/build"/>
|
|
|
- <property name="build.classes" value="${basedir}/build/classes"/>
|
|
|
- <property name="test.build.dir" value="${build.dir}/test"/>
|
|
|
- <property name="test.build.classes" value="${test.build.dir}/classes"/>
|
|
|
- <property name="lib.dir" value="${basedir}/lib"/>
|
|
|
- <path id="classpath">
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.default.jars.dir}"> <!-- ASR -->
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/*core*.jar" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.home.jars.dir}"> <!-- ASR -->
|
|
|
- <include name="**/*core*.jar" />
|
|
|
- </fileset>
|
|
|
- <path refid="contrib-classpath"/>
|
|
|
- </path>
|
|
|
- <path id="testClasspath">
|
|
|
- <pathelement location="${build.classes}"/>
|
|
|
- <pathelement location="${test.build.classes}"/>
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.default.jars.dir}"> <!-- ASR -->
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/*core*.jar" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.home.jars.dir}"> <!-- ASR -->
|
|
|
- <include name="**/*core*.jar" />
|
|
|
- </fileset>
|
|
|
- <path refid="contrib-classpath"/>
|
|
|
- </path>
|
|
|
- <path id="testDemuxClasspath">
|
|
|
- <pathelement location="${build.classes}"/>
|
|
|
- <pathelement location="${test.build.classes}"/>
|
|
|
- <fileset dir="${hadoop.jar}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <path refid="contrib-classpath"/>
|
|
|
- </path>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-init-properties-local" description="to initiate ivy properties">
|
|
|
- <property name="ivy.dir" location="ivy" />
|
|
|
- <property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml"/>
|
|
|
- <loadproperties srcfile="${ivy.dir}/libraries.properties"/>
|
|
|
- <loadproperties srcfile="${ivy.dir}/libraries.properties"/>
|
|
|
- <property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/>
|
|
|
- <property name="ivy_repo_url"
|
|
|
- value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar" />
|
|
|
- <property name="build.dir" location="build" />
|
|
|
- <property name="build.ivy.dir" location="${build.dir}/ivy" />
|
|
|
- <property name="build.ivy.lib.dir" location="${build.ivy.dir}/lib" />
|
|
|
- <property name="build.ivy.report.dir" location="${build.ivy.dir}/report" />
|
|
|
- <property name="common.ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}/common"/>
|
|
|
-
|
|
|
- <!--this is the naming policy for artifacts we want pulled down-->
|
|
|
- <property name="ivy.artifact.retrieve.pattern"
|
|
|
- value="${ant.project.name}/[conf]/[artifact]-[revision].[ext]"/>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-download-local" description="To download ivy"
|
|
|
- unless="offline">
|
|
|
- <get src="${ivy_repo_url}" dest="${ivy.jar}" usetimestamp="true"/>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-init-dirs-local" depends="ivy-init-properties-local">
|
|
|
- <mkdir dir="${build.ivy.dir}" />
|
|
|
- <mkdir dir="${build.ivy.lib.dir}" />
|
|
|
- <mkdir dir="${build.ivy.report.dir}" />
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-probe-antlib-local" >
|
|
|
- <condition property="ivy.found.local">
|
|
|
- <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
|
|
|
- </condition>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-init-antlib-local" depends="ivy-init-dirs-local,ivy-download-local,ivy-probe-antlib-local" unless="ivy.found.local">
|
|
|
- <typedef uri="antlib:org.apache.ivy.ant" onerror="fail" loaderRef="ivyLoader">
|
|
|
- <classpath>
|
|
|
- <pathelement location="${ivy.jar}"/>
|
|
|
- </classpath>
|
|
|
- </typedef>
|
|
|
- <fail>
|
|
|
- <condition>
|
|
|
- <not>
|
|
|
- <typefound uri="antlib:org.apache.ivy.ant" name="cleancache"/>
|
|
|
- </not>
|
|
|
- </condition>
|
|
|
- You need Apache Ivy 2.0 or later from http://ant.apache.org/
|
|
|
- It could not be loaded from ${ivy_repo_url}
|
|
|
- </fail>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-init-local" depends="ivy-init-antlib-local">
|
|
|
- <ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override="true"/>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-resolve" depends="ivy-init-local">
|
|
|
- <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="common"/>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="ivy-retrieve" depends="ivy-resolve"
|
|
|
- description="Retrieve Ivy-managed artifacts for the compile/test configurations">
|
|
|
- <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
|
|
|
- pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}" sync="true" />
|
|
|
- <ivy:cachepath pathid="contrib-classpath" conf="common" />
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="init-hadoop" if="hadoopMode">
|
|
|
- <antcall target="ivy-retrieve-common"/>
|
|
|
- <echo>Hadoop Mode</echo>
|
|
|
- <property name="build.dir" value="${basedir}/build"/>
|
|
|
- <property name="build.classes" value="${basedir}/build/classes"/>
|
|
|
- <property name="test.build.dir" value="${build.dir}/test"/>
|
|
|
- <property name="test.build.classes" value="${test.build.dir}/classes"/>
|
|
|
- <delete file="${build.dir}/${final.name}/hadoop-*-core.jar" />
|
|
|
- <property name="lib.dir" value="${basedir}/lib"/>
|
|
|
- <path id="classpath">
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.root}/lib">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <pathelement location="${hadoop.root}/build/classes"/>
|
|
|
- <path refid="contrib-classpath"/>
|
|
|
- </path>
|
|
|
- <path id="testClasspath">
|
|
|
- <pathelement location="${build.classes}"/>
|
|
|
- <pathelement location="${test.build.classes}"/>
|
|
|
- <path refid="contrib-classpath"/>
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.root}/lib">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <pathelement location="${hadoop.root}/build/classes"/>
|
|
|
- <pathelement location="${hadoop.root}/build/test/classes"/>
|
|
|
- </path>
|
|
|
-
|
|
|
- <path id="testDemuxClasspath">
|
|
|
- <pathelement location="${build.classes}"/>
|
|
|
- <pathelement location="${test.build.classes}"/>
|
|
|
- <path refid="contrib-classpath"/>
|
|
|
- <fileset dir="${hadoop.root}/lib">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <pathelement location="${hadoop.root}/build/classes"/>
|
|
|
- <pathelement location="${hadoop.root}/build/test/classes"/>
|
|
|
- </path>
|
|
|
-
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="init" depends="init-standalone,init-hadoop">
|
|
|
- <property name="src.dir" value="${basedir}/src"/>
|
|
|
- <property name="build.classes" value="${build.dir}/classes"/>
|
|
|
- <property name="conf.dir" value="${basedir}/conf"/>
|
|
|
- <property name="docs.dir" value="${basedir}/docs"/>
|
|
|
- <property name="tools.dir" value="${basedir}/tools"/>
|
|
|
- <property name="dist.dir" value="${basedir}/dist"/>
|
|
|
- <property name="opt.dir" value="${basedir}/opt"/>
|
|
|
- <property name="javac.debug" value="on"/>
|
|
|
- <property name="javac.version" value="1.6"/>
|
|
|
- <property name="test.src.dir" value="${basedir}/src/test"/>
|
|
|
- <property name="test.lib.dir" value="${basedir}/src/test/lib"/>
|
|
|
- <property name="test.build.dir" value="${build.dir}/test"/>
|
|
|
- <property name="test.generated.dir" value="${test.build.dir}/src"/>
|
|
|
- <property name="test.build.data" value="${test.build.dir}/data"/>
|
|
|
- <property name="test.cache.data" value="${test.build.dir}/cache"/>
|
|
|
- <property name="test.debug.data" value="${test.build.dir}/debug"/>
|
|
|
- <property name="test.log.dir" value="${test.build.dir}/logs"/>
|
|
|
- <property name="test.build.classes" value="${test.build.dir}/classes"/>
|
|
|
- <property name="test.build.testjar" value="${test.build.dir}/testjar"/>
|
|
|
- <property name="test.include" value="Test*"/>
|
|
|
- <property name="test.classpath.id" value="test.classpath"/>
|
|
|
- <property name="test.output" value="yes"/>
|
|
|
- <!--<property name="test.timeout" value="900000"/> -->
|
|
|
- <property name="test.timeout" value="5000"/>
|
|
|
- <property name="test.junit.output.format" value="plain"/>
|
|
|
- <property name="test.junit.fork.mode" value="perTest" />
|
|
|
- <property name="test.junit.printsummary" value="yes" />
|
|
|
- <property name="test.junit.haltonfailure" value="yes" />
|
|
|
- <property name="test.junit.maxmemory" value="256m" />
|
|
|
- <mkdir dir="${build.dir}"/>
|
|
|
- <mkdir dir="${build.classes}"/>
|
|
|
- <mkdir dir="${build.dir}/test"/>
|
|
|
- <exec executable="echo" output="${basedir}/bin/VERSION">
|
|
|
- <arg line="${chukwaVersion}" />
|
|
|
- </exec>
|
|
|
-
|
|
|
- <mkdir dir="${dist.dir}"/>
|
|
|
-
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="main" depends="init, compile, compress" description="Main target">
|
|
|
- <echo>
|
|
|
- Building the .jar files.
|
|
|
- </echo>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="compile" depends="init" description="Compilation target">
|
|
|
- <mkdir dir="${build.dir}"/>
|
|
|
- <mkdir dir="${build.classes}"/>
|
|
|
- <mkdir dir="${build.dir}/test"/>
|
|
|
- <javac srcdir="src/java/org/apache/hadoop" destdir="${build.classes}" excludes="**/ChukwaTTInstru.java" debug="${javac.debug}">
|
|
|
- <classpath refid="classpath" />
|
|
|
- </javac>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="compile-test" depends="init" description="Test target">
|
|
|
-
|
|
|
- <delete dir="${test.build.dir}"/>
|
|
|
- <mkdir dir="${test.build.dir}"/>
|
|
|
- <delete dir="${test.log.dir}"/>
|
|
|
- <mkdir dir="${test.log.dir}"/>
|
|
|
- <delete dir="${test.build.classes}"/>
|
|
|
- <mkdir dir="${test.build.classes}"/>
|
|
|
-
|
|
|
- <javac srcdir="${test.src.dir}/org/apache/hadoop/chukwa" destdir="${test.build.dir}/classes" debug="${javac.debug}">
|
|
|
- <classpath refid="testClasspath" />
|
|
|
- <classpath refid="testDemuxClasspath" />
|
|
|
- </javac>
|
|
|
- </target>
|
|
|
-
|
|
|
- <!--printsummary="${test.junit.printsummary}" -->
|
|
|
-
|
|
|
- <target name="test-chukwa" depends="compile,compile-test" description="Run Chukwa unit tests">
|
|
|
- <mkdir dir="${basedir}/var"/>
|
|
|
- <junit showoutput="yes"
|
|
|
- fork="yes"
|
|
|
- printsummary="withOutAndErr"
|
|
|
- forkmode="${test.junit.fork.mode}"
|
|
|
- maxmemory="${test.junit.maxmemory}"
|
|
|
- dir="${test.build.dir}/classes/" timeout="${test.timeout}"
|
|
|
- errorProperty="tests.failed" failureProperty="tests.failed">
|
|
|
- <classpath refid="testClasspath"/>
|
|
|
- <sysproperty key="test.src.dir" value="${test.src.dir}"/>
|
|
|
- <formatter type="${test.junit.output.format}" />
|
|
|
- <batchtest todir="${test.build.dir}" unless="testcase">
|
|
|
- <fileset dir="${test.src.dir}">
|
|
|
- <include name="**/${test.include}.java"/>
|
|
|
- <exclude name="**/${test.exclude}.java"/>
|
|
|
- </fileset>
|
|
|
- </batchtest>
|
|
|
- <batchtest todir="${test.build.dir}" if="testcase">
|
|
|
- <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
|
|
|
- </batchtest>
|
|
|
- </junit>
|
|
|
- <fail if="tests.failed">Tests failed!</fail>
|
|
|
- <delete>
|
|
|
- <fileset dir="${basedir}/var" includes="*"/>
|
|
|
- </delete>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="collector" depends="compile" description="Prepare collector.war">
|
|
|
- <mkdir dir="${build.dir}/collector"/>
|
|
|
- <mkdir dir="${build.dir}/collector/WEB-INF"/>
|
|
|
- <mkdir dir="${build.dir}/collector/WEB-INF/classes"/>
|
|
|
- <mkdir dir="${build.dir}/collector/WEB-INF/lib"/>
|
|
|
- <mkdir dir="${build.dir}/collector/META-INF"/>
|
|
|
- <copy todir="${build.dir}/collector/WEB-INF/classes">
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/conf/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/extraction/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/conf/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/extraction/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.java" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/collector">
|
|
|
- <fileset dir="${basedir}/src/web/collector">
|
|
|
- <include name="**" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/collector/WEB-INF/lib">
|
|
|
- <fileset dir="${basedir}/lib">
|
|
|
- <include name="log4j-${log4j.version}.jar" />
|
|
|
- <include name="${build.dir}/${final.name}-core.jar" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="collector_jar" depends="compile, collector" description="Create collector jar">
|
|
|
- <jar jarfile="${build.dir}/collector-${chukwaVersion}.war" basedir="${build.dir}/collector">
|
|
|
- <fileset dir="${build.dir}/collector" includes="**" />
|
|
|
- </jar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="tools_jar" depends="compile, collector" description="Create tools jar">
|
|
|
- <jar jarfile="${build.dir}/tools-${chukwaVersion}.jar" basedir="${build.classes}" includes="org/apache/hadoop/chukwa/inputtools/**/*.class">
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- </jar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="agent_jar" depends="compile, collector" description="Create agent jar">
|
|
|
- <jar jarfile="${build.dir}/chukwa-agent-${chukwaVersion}.jar" basedir="${build.classes}" includes="org/apache/hadoop/chukwa/client/**/*.class" >
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="org/apache/hadoop/chukwa/conf/**/*.class"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.class"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/**/*.class"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/**/*.class"/>
|
|
|
- </fileset>
|
|
|
-
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/client/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/**/*.java"/>
|
|
|
- <exclude name="org/apache/hadoop/chukwa/datacollection/collector/**/*.java"/>
|
|
|
- <exclude name="org/apache/hadoop/chukwa/datacollection/writer/**/*.java"/>
|
|
|
- </fileset>
|
|
|
-
|
|
|
- </jar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="chukwa_jar" depends="compile, collector" description="Create chukwa-core jar">
|
|
|
- <jar jarfile="${build.dir}/chukwa-core-${chukwaVersion}.jar" basedir="${build.classes}" includes="org/apache/hadoop/chukwa/datacollection/**/*.class" >
|
|
|
- <manifest>
|
|
|
- <section name="org/apache/hadoop/chukwa">
|
|
|
- <attribute name="Implementation-Title" value="Chukwa"/>
|
|
|
- <attribute name="Implementation-Version" value="${version}"/>
|
|
|
- <attribute name="Implementation-Vendor" value="Apache"/>
|
|
|
- </section>
|
|
|
- </manifest>
|
|
|
-
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/**/*.class"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- </jar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="chukwa-hadoop_jar" depends="compile" description="Create chukwa_hadoop jar for use with getting hadoop to use chukwa">
|
|
|
-
|
|
|
- <jar jarfile="${build.dir}/chukwa-hadoop-${chukwaVersion}-client.jar" basedir="${build.classes}" includes="org/apache/hadoop/chukwa/inputtools/log4j/**/*.class">
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/mapred/**/*.java"/>
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/log4j/**/*.java"/>
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/client/**/*.java"/>
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.java"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/conf">
|
|
|
- <include name="chukwa-hadoop-metrics-log4j.properties"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/mapred/**/*.class"/>
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/client/**/*.class"/>
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.class"/>
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/controller/*.class"/>
|
|
|
- </fileset>
|
|
|
- </jar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="hicc" depends="compile, chukwa_jar, package-hadoop, package-standalone" description="Prepare hicc.war">
|
|
|
- <mkdir dir="${build.dir}/hicc"/>
|
|
|
- <mkdir dir="${build.dir}/hicc/WEB-INF"/>
|
|
|
- <mkdir dir="${build.dir}/hicc/WEB-INF/classes"/>
|
|
|
- <mkdir dir="${build.dir}/hicc/WEB-INF/lib"/>
|
|
|
- <mkdir dir="${build.dir}/hicc/META-INF"/>
|
|
|
- <copy todir="${build.dir}/hicc">
|
|
|
- <fileset dir="${basedir}/src/web/hicc">
|
|
|
- <include name="**" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- <copy todir="${build.dir}/hicc/WEB-INF/classes">
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/hicc/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/conf/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/extraction/engine/**/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/*.class" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.classes}">
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.class" />
|
|
|
- </fileset>
|
|
|
-
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/hicc/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/conf/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/datacollection/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/extraction/engine/**/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/inputtools/*.java" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${basedir}/src/java">
|
|
|
- <include name="org/apache/hadoop/chukwa/util/**/*.java" />
|
|
|
- </fileset>
|
|
|
-
|
|
|
- </copy>
|
|
|
- <copy todir="${build.dir}/hicc/WEB-INF/lib">
|
|
|
- <fileset dir="${basedir}/lib">
|
|
|
- <include name="json.jar" />
|
|
|
- <include name="jstl.jar" />
|
|
|
- <include name="servlet.jar" />
|
|
|
- <include name="taglibs.jar" />
|
|
|
- <include name="commons-fileupload-*.jar" />
|
|
|
- <include name="commons-httpclient-*.jar" />
|
|
|
- <include name="commons-logging-adapters-*.jar" />
|
|
|
- <include name="commons-io-*.jar" />
|
|
|
- <include name="commons-logging-api-*.jar" />
|
|
|
- <include name="commons-logging.jar" />
|
|
|
- <include name="log4j-*.jar" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="${name}-core-${chukwaVersion}.jar" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.dir}/${final.name}/hadoopjars">
|
|
|
- <include name="*.jar" />
|
|
|
- <exclude name="jasper-*.jar" />
|
|
|
- <exclude name="jetty-*.jar" />
|
|
|
- <exclude name="jsp-api.jar" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="hicc_war" depends="compile, hicc" description="Create hicc jar">
|
|
|
- <jar jarfile="${build.dir}/hicc.war" basedir="${build.dir}/hicc">
|
|
|
- <fileset dir="${build.dir}/hicc" includes="**" />
|
|
|
- </jar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="compress" depends="compile,collector,collector_jar,hicc_war,tools_jar,agent_jar,chukwa_jar,chukwa-hadoop_jar" description="Compression target">
|
|
|
- <copy todir="." includeEmptyDirs="false">
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <exclude name="**" />
|
|
|
- <include name="**/*.jar" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="test" depends="compile,compile-test,test-chukwa" description="Automated Test Framework">
|
|
|
- </target>
|
|
|
-
|
|
|
- <!-- ================================================================== -->
|
|
|
- <!-- Clean. Delete the build files, and their directories -->
|
|
|
- <!-- ================================================================== -->
|
|
|
- <target name="clean" depends="init" description="Clean. Delete the build files, and their directories">
|
|
|
- <delete dir="${build.dir}"/>
|
|
|
- <delete dir="${build.ivy.lib.dir}/${ant.project.home}"/>
|
|
|
- <delete dir="build"/>
|
|
|
- <delete dir="${docs.src}/build"/>
|
|
|
- </target>
|
|
|
- <!-- ====================================================== -->
|
|
|
- <!-- Macro definitions -->
|
|
|
- <!-- ====================================================== -->
|
|
|
- <macrodef name="macro_tar" description="Worker Macro for tar">
|
|
|
- <attribute name="param.destfile"/>
|
|
|
- <element name="param.listofitems"/>
|
|
|
- <sequential>
|
|
|
- <tar compression="gzip" longfile="gnu"
|
|
|
- destfile="@{param.destfile}">
|
|
|
- <param.listofitems/>
|
|
|
- </tar>
|
|
|
- </sequential>
|
|
|
- </macrodef>
|
|
|
-
|
|
|
- <!-- ================================================================== -->
|
|
|
- <!-- D I S T R I B U T I O N -->
|
|
|
- <!-- ================================================================== -->
|
|
|
- <!-- -->
|
|
|
- <!-- ================================================================== -->
|
|
|
-
|
|
|
- <target name="package-hadoop" description="package hadoop from hadoop source" if="hadoopMode">
|
|
|
- <mkdir dir="${build.dir}/${final.name}/hadoopjars"/>
|
|
|
- <copy toDir="${build.dir}/${final.name}/hadoopjars">
|
|
|
- <fileset dir="${hadoop.root}/build">
|
|
|
- <include name="hadoop-*-core.jar" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="${build.ivy.lib.dir}\Hadoop\common">
|
|
|
-
|
|
|
- <include name="jetty-*.jar" />
|
|
|
- <include name="commons-httpclient-*.jar" />
|
|
|
- <include name="commons-logging-*.jar" />
|
|
|
- <include name="commons-net-*.jar" />
|
|
|
- <include name="jasper-*.jar" />
|
|
|
- <include name="commons-el.jar" />
|
|
|
- <include name="commons-codec-*.jar" />
|
|
|
- </fileset>
|
|
|
- <fileset dir="lib">
|
|
|
- <include name="jsp-api.jar"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${hadoop.root}/lib">
|
|
|
- <include name="commons-cli-*.jar"/>
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="package-standalone" description="package hadoop from hadoop source" if="standaloneMode">
|
|
|
- <mkdir dir="${build.dir}/${final.name}/hadoopjars"/>
|
|
|
- <copy todir="${build.dir}/${final.name}/hadoopjars" includeEmptyDirs="false">
|
|
|
- <fileset dir="${basedir}/hadoopjars">
|
|
|
- <include name="**/*.jar" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="package" depends="compress,package-hadoop,package-standalone" description="Build distribution">
|
|
|
- <mkdir dir="${build.dir}/${final.name}"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/lib"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/bin"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/opt"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/tools"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/var"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/var/run"/>
|
|
|
- <mkdir dir="${build.dir}/${final.name}/logs"/>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}" includeEmptyDirs="false">
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <include name="**/*.war" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- <copy todir="${build.dir}/${final.name}/lib" includeEmptyDirs="false">
|
|
|
- <fileset dir="lib">
|
|
|
- <exclude name="**/native/**"/>
|
|
|
- </fileset>
|
|
|
- <fileset dir="${common.ivy.lib.dir}">
|
|
|
- <include name="*.jar"/>
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <exec dir="${dist.dir}" executable="sh" failonerror="true">
|
|
|
- <env key="BASE_NATIVE_LIB_DIR" value="${lib.dir}/native"/>
|
|
|
- <env key="BUILD_NATIVE_DIR" value="${build.dir}/native"/>
|
|
|
- <env key="DIST_LIB_DIR" value="${dist.dir}/lib/native"/>
|
|
|
- </exec>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}/bin">
|
|
|
- <fileset dir="${basedir}/bin"/>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}/conf">
|
|
|
- <fileset dir="${basedir}/conf"/>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}/docs">
|
|
|
- <fileset dir="${docs.dir}" />
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}/opt">
|
|
|
- <fileset dir="${opt.dir}" />
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}/tools">
|
|
|
- <fileset dir="${tools.dir}" />
|
|
|
- </copy>
|
|
|
-
|
|
|
- <chmod perm="ugo+x" type="file" parallel="false">
|
|
|
- <fileset dir="${build.dir}/${final.name}/tools">
|
|
|
- <include name="**" />
|
|
|
- </fileset>
|
|
|
- </chmod>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}">
|
|
|
- <fileset dir=".">
|
|
|
- <include name="*.txt" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}/src" includeEmptyDirs="true">
|
|
|
- <fileset dir="src" excludes="**/*.template **/docs/build/**/*"/>
|
|
|
- </copy>
|
|
|
-
|
|
|
- <copy todir="${build.dir}/${final.name}" file="build.xml"/>
|
|
|
-
|
|
|
- </target>
|
|
|
-
|
|
|
- <!-- ================================================================== -->
|
|
|
- <!-- Make release tarball -->
|
|
|
- <!-- ================================================================== -->
|
|
|
- <target name="tar" depends="package" description="Make release tarball">
|
|
|
- <macro_tar param.destfile="${build.dir}/${final.name}.tar.gz">
|
|
|
- <param.listofitems>
|
|
|
- <tarfileset dir="${build.dir}" mode="664">
|
|
|
- <exclude name="${final.name}/bin/*" />
|
|
|
- <exclude name="${final.name}/org/*" />
|
|
|
- <exclude name="${final.name}/collector/**" />
|
|
|
- <exclude name="${final.name}/${final.name}/**" />
|
|
|
- <exclude name="${final.name}/tools/**" />
|
|
|
- <exclude name="${final.name}/hicc/*" />
|
|
|
- <include name="${final.name}/**" />
|
|
|
- </tarfileset>
|
|
|
- <tarfileset dir="${build.dir}" mode="755">
|
|
|
- <include name="${final.name}/bin/*" />
|
|
|
- <include name="${final.name}/tools/**" />
|
|
|
- </tarfileset>
|
|
|
- </param.listofitems>
|
|
|
- </macro_tar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="binary" depends="package" description="Make tarball without source and documentation">
|
|
|
- <macro_tar param.destfile="${build.dir}/${final.name}-bin.tar.gz">
|
|
|
- <param.listofitems>
|
|
|
- <tarfileset dir="${build.dir}" mode="664">
|
|
|
- <exclude name="${final.name}/bin/*" />
|
|
|
- <exclude name="${final.name}/org/*" />
|
|
|
- <exclude name="${final.name}/collector/**" />
|
|
|
- <exclude name="${final.name}/${final.name}/**" />
|
|
|
- <exclude name="${final.name}/tools/**" />
|
|
|
- <exclude name="${final.name}/hicc/*" />
|
|
|
- <exclude name="${final.name}/src/**" />
|
|
|
- <exclude name="${final.name}/docs/**" />
|
|
|
- <include name="${final.name}/**" />
|
|
|
- </tarfileset>
|
|
|
- <tarfileset dir="${build.dir}" mode="755">
|
|
|
- <include name="${final.name}/bin/*" />
|
|
|
- <include name="${final.name}/tools/**" />
|
|
|
- </tarfileset>
|
|
|
- </param.listofitems>
|
|
|
- </macro_tar>
|
|
|
- </target>
|
|
|
-
|
|
|
- <target name="rpm" depends="clean,tar" description="Make release rpm">
|
|
|
- <mkdir dir="${build.dir}/BUILD"/>
|
|
|
- <mkdir dir="${build.dir}/RPMS"/>
|
|
|
- <mkdir dir="${build.dir}/SOURCES"/>
|
|
|
- <mkdir dir="${build.dir}/SPECS"/>
|
|
|
- <copy todir="${build.dir}/SOURCES">
|
|
|
- <fileset dir="${build.dir}">
|
|
|
- <include name="${final.name}.tar.gz" />
|
|
|
- </fileset>
|
|
|
- </copy>
|
|
|
- <echo file="${build.dir}/SPECS/chukwa.spec" append="false">
|
|
|
-# RPM Spec file for Chukwa v.${chukwaVersion}
|
|
|
-
|
|
|
-%define _topdir ${build.dir}
|
|
|
-%define _prefix ${rpm.prefix}
|
|
|
-%define uid ${rpm.uid}
|
|
|
-%define gid ${rpm.gid}
|
|
|
-%define name chukwa
|
|
|
-%define summary Distributed Computing Monitoring Framework.
|
|
|
-%define version ${chukwaVersion}
|
|
|
-%define release 1
|
|
|
-%define license ASF 2.0
|
|
|
-%define group Development/Monitoring
|
|
|
-%define source %{name}-%{version}.tar.gz
|
|
|
-%define vendor Apache Software Fundation
|
|
|
-%define packager Eric Yang
|
|
|
-%define buildroot %{_topdir}/BUILD
|
|
|
-
|
|
|
-Name: %{name}
|
|
|
-Version: %{version}
|
|
|
-Release: %{release}
|
|
|
-Packager: %{packager}
|
|
|
-Vendor: %{vendor}
|
|
|
-License: %{license}
|
|
|
-Summary: %{summary}
|
|
|
-Group: %{group}
|
|
|
-Source0: %{source}
|
|
|
-Prefix: %{_prefix}
|
|
|
-Buildroot: %{buildroot}
|
|
|
-
|
|
|
-%description
|
|
|
-Chukwa is the monitoring framework for large scale distributed
|
|
|
-clusters.
|
|
|
-
|
|
|
-%prep
|
|
|
-%setup -q
|
|
|
-%build
|
|
|
-mkdir -p %{buildroot}%{_prefix}
|
|
|
-if [ -d %{buildroot}%{_prefix} ]; then
|
|
|
- rm -rf %{buildroot}%{_prefix}
|
|
|
-fi
|
|
|
-mv %{buildroot}/%{name}-%{version} %{buildroot}%{_prefix}
|
|
|
-cd %{buildroot}%{_prefix}
|
|
|
-mkdir -p %{buildroot}/etc/init.d
|
|
|
-cat %{buildroot}%{_prefix}/tools/init.d/chukwa-data-processors | \
|
|
|
-sed 's:- chukwa -c:- %{uid} -c:' | \
|
|
|
-sed 's:CHUKWA_HOME=/usr/local:CHUKWA_HOME=%{_prefix}:' | \
|
|
|
-sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' > %{buildroot}/etc/init.d/chukwa-data-processors
|
|
|
-cat %{buildroot}%{_prefix}/tools/init.d/chukwa-collector | \
|
|
|
-sed 's:- chukwa -c:- %{uid} -c:' | \
|
|
|
-sed 's:CHUKWA_HOME=/usr/local:CHUKWA_HOME=%{_prefix}:' | \
|
|
|
-sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' > %{buildroot}/etc/init.d/chukwa-collector
|
|
|
-cat %{buildroot}%{_prefix}/tools/init.d/chukwa-agent | \
|
|
|
-sed 's:- chukwa -c:- %{uid} -c:' | \
|
|
|
-sed 's:CHUKWA_HOME=/usr/local:CHUKWA_HOME=%{_prefix}:' | \
|
|
|
-sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' > %{buildroot}/etc/init.d/chukwa-agent
|
|
|
-cat %{buildroot}%{_prefix}/tools/init.d/chukwa-system-metrics | \
|
|
|
-sed 's:- chukwa -c:- %{uid} -c:' | \
|
|
|
-sed 's:CHUKWA_HOME=/usr/local:CHUKWA_HOME=%{_prefix}:' | \
|
|
|
-sed 's:CHUKWA_CONF_DIR=/usr/local/chukwa/conf:CHUKWA_CONF_DIR=%{_conf_dir}:' > %{buildroot}/etc/init.d/chukwa-system-metrics
|
|
|
-chmod a+x %{buildroot}/etc/init.d/chukwa-*
|
|
|
-rm -rf %{buildroot}%{_prefix}/src
|
|
|
-rm -rf %{buildroot}%{_prefix}/build.xml
|
|
|
-%post
|
|
|
-mkdir -p %{_prefix}
|
|
|
-echo "Congratulation! You have successfully installed Chukwa."
|
|
|
-echo ""
|
|
|
-echo "To collect Data : /etc/init.d/chukwa-system-metrics start"
|
|
|
-echo "To run Chukwa Agent : /etc/init.d/chukwa-agent start"
|
|
|
-echo "To run Chukwa Collector : /etc/init.d/chukwa-collector start"
|
|
|
-echo "To run Chukwa Data Processor: /etc/init.d/chukwa-data-processors start"
|
|
|
-%preun
|
|
|
-/etc/init.d/chukwa-data-processors stop
|
|
|
-/etc/init.d/chukwa-system-metrics stop
|
|
|
-/etc/init.d/chukwa-agent stop
|
|
|
-/etc/init.d/chukwa-collector stop
|
|
|
-echo
|
|
|
-%postun
|
|
|
-%files
|
|
|
-%defattr(-,%{uid},%{gid})
|
|
|
-%{_prefix}
|
|
|
-%{_prefix}/*
|
|
|
-%defattr(-,root,root)
|
|
|
-/etc/init.d/chukwa-data-processors
|
|
|
-/etc/init.d/chukwa-collector
|
|
|
-/etc/init.d/chukwa-agent
|
|
|
-/etc/init.d/chukwa-system-metrics
|
|
|
- </echo>
|
|
|
- <rpm specFile="chukwa.spec" topDir="${build.dir}" cleanBuildDir="true" failOnError="true"/>
|
|
|
- </target>
|
|
|
-
|
|
|
- <!-- the normal classpath -->
|
|
|
- <path id="classpath">
|
|
|
- <pathelement location="${build.classes}"/>
|
|
|
- <fileset dir="${lib.dir}">
|
|
|
- <include name="**/*.jar" />
|
|
|
- <exclude name="**/excluded/" />
|
|
|
- </fileset>
|
|
|
- <pathelement location="${conf.dir}"/>
|
|
|
- </path>
|
|
|
-
|
|
|
-</project>
|