HBASE-4336 Convert source tree into maven modules

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1342856 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael Stack 2012-05-26 05:56:04 +00:00
parent 1ba1b77ae8
commit 390f32d79f
1299 changed files with 4765 additions and 1567 deletions

9
.gitignore vendored
View File

@ -1,12 +1,13 @@
/.arc_jira_lib
/.classpath
/.externalToolBuilders
/.project
/.settings
.project
*.settings/
.classpath
/build
/.idea/
/logs
/target
*target/
*.iml
*.orig
*~
hbase-*/test

View File

@ -124,12 +124,19 @@ if [ "$HBASE_HEAPSIZE" != "" ]; then
fi
# so that filenames w/ spaces are handled correctly in loops below
ORIG_IFS=$IFS
IFS=
# CLASSPATH initially contains $HBASE_CONF_DIR
CLASSPATH="${HBASE_CONF_DIR}"
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
add_to_cp_if_exists() {
if [ -d "$@" ]; then
CLASSPATH=${CLASSPATH}:"$@"
fi
}
add_maven_deps_to_classpath() {
# Need to generate classpath from maven pom. This is costly so generate it
# and cache it. Save the file into our target dir so a mvn clean will get
@ -142,18 +149,25 @@ add_maven_deps_to_classpath() {
CLASSPATH=${CLASSPATH}:`cat "${f}"`
}
add_maven_main_classes_to_classpath() {
if [ -d "$HBASE_HOME/target/classes" ]; then
CLASSPATH=${CLASSPATH}:$HBASE_HOME/target/classes
fi
# assumes all modules are named hbase-* in the top level directory
IFS=$ORIG_IFS
for module in `ls $HBASE_HOME | grep 'hbase-*'`
do
add_to_cp_if_exists "$HBASE_HOME/$module/target/classes"
# Add the root dir too. We need to do this so we can find hbase-webapps
#add_to_cp_if_exists "$HBASE_HOME/$module/target/"
done
}
add_maven_test_classes_to_classpath() {
# For developers, add hbase classes to CLASSPATH
f="$HBASE_HOME/target/test-classes"
if [ -d "${f}" ]; then
CLASSPATH=${CLASSPATH}:${f}
fi
add_maven_test_classes_to_classpath(){
# assumes all modules are named hbase-* in the top level directory
IFS=$ORIG_IFS
for module in `ls $HBASE_HOME | grep 'hbase-*'`
do
add_to_cp_if_exists "$HBASE_HOME/$module/target/test-classes"
done
}
# Add maven target directory
@ -165,14 +179,16 @@ fi
# For releases, add hbase & webapps to CLASSPATH
# Webapps must come first else it messes up Jetty
if [ -d "$HBASE_HOME/hbase-webapps" ]; then
CLASSPATH=${CLASSPATH}:$HBASE_HOME
if [ -d "$HBASE_HOME/hbase-server/src/main/resources/hbase-webapps" ]; then
add_to_cp_if_exists "$HBASE_HOME/hbase-server/"
fi
if [ -d "$HBASE_HOME/target/hbase-webapps" ]; then
CLASSPATH="${CLASSPATH}:${HBASE_HOME}/target"
if [ -d "$HBASE_HOME/hbase-server/target/hbase-webapps" ]; then
add_to_cp_if_exists "${HBASE_HOME}/hbase-server/target"
fi
for f in $HBASE_HOME/hbase*.jar; do
if [[ $f = *sources.jar ]]
#add the hbase jars for each module
for f in $HBASE_HOME/hbase-jars/hbase*.jar; do
if [[ $f = *sources.jar ]]
then
: # Skip sources.jar
elif [ -f $f ]
@ -254,6 +270,12 @@ if [ "$COMMAND" = "shell" ] ; then
if [ "$JRUBY_HOME" != "" ] ; then
CLASSPATH="$JRUBY_HOME/lib/jruby.jar:$CLASSPATH"
HBASE_OPTS="$HBASE_OPTS -Djruby.home=$JRUBY_HOME -Djruby.lib=$JRUBY_HOME/lib"
fi
#find the hbase ruby sources
if [ -d "$HBASE_HOME/lib/ruby" ]; then
HBASE_OPTS="$HBASE_OPTS -Dhbase.ruby.sources=$HBASE_HOME/lib/ruby"
else
HBASE_OPTS="$HBASE_OPTS -Dhbase.ruby.sources=$HBASE_HOME/hbase-server/src/main/ruby"
fi
CLASS="org.jruby.Main -X+O ${JRUBY_OPTS} ${HBASE_HOME}/bin/hirb.rb"
elif [ "$COMMAND" = "hbck" ] ; then

View File

@ -36,14 +36,12 @@ include Java
# Some goodies for hirb. Should these be left up to the user's discretion?
require 'irb/completion'
require 'pathname'
# Add the $HBASE_HOME/lib/ruby OR $HBASE_HOME/src/main/ruby/lib directory
# Add the directory names in hbase.jruby.sources commandline option
# to the ruby load path so I can load up my HBase ruby modules
if File.exists?(File.join(File.dirname(__FILE__), "..", "lib", "ruby", "hbase.rb"))
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib", "ruby")
else
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "src", "main", "ruby")
end
sources = java.lang.System.getProperty('hbase.ruby.sources')
$LOAD_PATH.unshift Pathname.new(sources)
#
# FIXME: Switch args processing to getopt

View File

337
hbase-assembly/pom.xml Normal file
View File

@ -0,0 +1,337 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--
/**
* 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.
*/
-->
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>hbase</artifactId>
<groupId>org.apache.hbase</groupId>
<version>0.95-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>hbase-assembly</artifactId>
<name>HBase - Assembly</name>
<description>Assembly all HBase modules into deployable packages</description>
<properties>
<!-- Have to hardcode the final here because the submodule can't seem to resolve parent in ant tasks -->
<final.dir.name>hbase-${project.version}</final.dir.name>
</properties>
<build>
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only.
It has no influence on the Maven build itself.
Ensures that we don't error on the plugins as unrecognized-->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.6,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Run the ant packaging to build the directory to tar -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<skipAssembly>false</skipAssembly>
<attach>false</attach>
<tarLongFileMode>gnu</tarLongFileMode>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/assembly/all.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>prepare-package</id>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- Include the arc integration in an early phase -->
<execution>
<id>arc-setup</id>
<phase>initialize</phase>
<configuration>
<tasks if="arc">
<get dest="${project.build.directory}/arc-jira.tar.gz"
src="https://github.com/facebook/arc-jira/tarball/master" />
<untar src="${project.build.directory}/arc-jira.tar.gz"
compression="gzip" dest="${project.build.directory}">
<patternset>
<include name="facebook-arc-jira-*/arc_jira_lib/**" />
</patternset>
</untar>
<move todir="${basedir}">
<fileset dir="${project.build.directory}">
<include name="facebook-arc-jira-*/arc_jira_lib/**" />
</fileset>
<mapper type="regexp" from="^facebook-arc-jira-([^/])*/(.*)"
to="\.\2" />
</move>
<delete includeemptydirs="true">
<fileset dir="${project.build.directory}">
<include name="facebook-arc-jira-*" />
<include name="arc-jira.tar.gz" />
</fileset>
</delete>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- Do the final packaging steps -->
<execution>
<id>package</id>
<phase>package</phase>
<configuration>
<target>
<!-- Complements the assembly -->
<mkdir
dir="${project.build.directory}/${project.build.finalName}/lib/native/${build.platform}" />
<!-- Using Unix cp to preserve symlinks, using script to handle wildcards
to manage movement of the nativelibs -->
<echo file="${project.build.directory}/copynativelibs.sh">
if [ `ls ${project.build.directory}/nativelib |
wc -l` -ne 0 ]; then
cp -PR
${project.build.directory}/nativelib/lib*
${project.build.directory}/${project.build.finalName}/${project.build.finalName}/lib/native/${build.platform}
fi
</echo>
<!-- Do the native lib copying -->
<exec executable="sh" dir="${project.build.directory}"
failonerror="true">
<arg line="./copynativelibs.sh" />
</exec>
<!-- move the output directory to the 'final' one -->
<move todir="${project.build.directory}/${final.dir.name}">
<fileset dir="${project.build.directory}/${project.build.finalName}" />
</move>
<!-- Using Unix tar to preserve symlinks when building final tarball -->
<!-- This puts the tarball in the parent directory, so we don't need to move it later -->
<exec executable="tar" failonerror="yes"
dir="${project.build.directory}">
<arg value="czf" />
<arg value="${basedir}/../target/${final.dir.name}.tar.gz" />
<arg value="${final.dir.name}" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<artifactId>hbase-server</artifactId>
<groupId>org.apache.hbase</groupId>
<scope>compile</scope>
</dependency>
<!-- This should be added back in when maven fixes intra-project dependencies -->
<!-- See http://jira.codehaus.org/browse/MNG-2045 and http://jira.codehaus.org/browse/MNG-3559 -->
<!-- <dependency>
<artifactId>hbase-core</artifactId>
<groupId>org.apache.hbase</groupId>
<type>test-jar</type>
<scope>runtime</scope>
</dependency> -->
</dependencies>
<profiles>
<!-- Building packages -->
<profile>
<id>rpm</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>build-rpm</id>
<phase>package</phase>
<configuration>
<target>
<ant antfile="${basedir}/src/packages/build.xml">
<target name="package-rpm" />
<target name="package-conf-pseudo-rpm" />
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>deb</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>build-deb</id>
<phase>package</phase>
<configuration>
<target>
<property name="artifactId" value="${project.artifactId}" />
<ant antfile="${basedir}/src/packages/build.xml">
<target name="package-deb"/>
<target name="package-conf-pseudo-deb"/>
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.vafer</groupId>
<artifactId>jdeb</artifactId>
<version>0.8</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<!-- Special builds -->
<!-- Including the snappy library -->
<profile>
<id>hadoop-snappy</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>snappy</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-snappy</artifactId>
<version>${hadoop-snappy.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Add the snappy resources if the snappy goal is enabled -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<target description="Include the snappy libs as a tarball">
<exec executable="tar" dir="${project.build.directory}/nativelib"
failonerror="false">
<arg value="xf" />
<arg value="hadoop-snappy-nativelibs.tar" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>get-hadoop-snappy-native</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-snappy</artifactId>
<version>${hadoop-snappy.version}</version>
<classifier>${build.platform}</classifier>
<type>tar</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/nativelib</outputDirectory>
<destFileName>hadoop-snappy-nativelibs.tar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -0,0 +1,183 @@
<?xml version="1.0"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd">
<!--
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<!--This 'all' id is not appended to the produced bundle because
we do this: http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#required-classifiers -->
<id>all</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- Include top level text files -->
<fileSets>
<fileSet>
<directory>${parent.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>*.txt</include>
<include>pom.xml</include>
</includes>
</fileSet>
<!-- Include the top level conf directory -->
<fileSet>
<directory>${parent.basedir}/conf</directory>
<outputDirectory>conf</outputDirectory>
<fileMode>0644</fileMode>
<directoryMode>0755</directoryMode>
</fileSet>
<!-- Include top level bin directory -->
<fileSet>
<directory>${parent.basedir}/bin</directory>
<outputDirectory>bin</outputDirectory>
<fileMode>0755</fileMode>
<directoryMode>0755</directoryMode>
</fileSet>
<!-- Move the ruby code over -->
<fileSet>
<directory>${parent.basedir}/hbase-server/src/main/ruby</directory>
<outputDirectory>lib/ruby</outputDirectory>
<fileMode>0644</fileMode>
<directoryMode>0755</directoryMode>
</fileSet>
<!-- Move the webapps to the webapp dir -->
<fileSet>
<directory>${parent.basedir}/hbase-server/target/hbase-webapps</directory>
<outputDirectory>hbase-webapps</outputDirectory>
<fileMode>0644</fileMode>
<directoryMode>0755</directoryMode>
</fileSet>
<!-- Move the site to docs -->
<fileSet>
<directory>${parent.basedir}/hbase-server/target/site</directory>
<outputDirectory>docs</outputDirectory>
<fileMode>0644</fileMode>
<directoryMode>0644</directoryMode>
</fileSet>
<!-- Move update script to sbin -->
<fileSet>
<directory>src/packages</directory>
<outputDirectory>sbin</outputDirectory>
<fileMode>755</fileMode>
<includes>
<include>update-hbase-env.sh</include>
</includes>
</fileSet>
<!-- This is only necessary until maven fixes the intra-project dependency bug
in maven 3.0. Until then, we have to include the test jars for sub-projects. When
fixed, the below dependencySet stuff is sufficient for pulling in the test jars as
well, as long as they are added as dependencies in this project. Right now, we only
have 1 submodule to accumulate, but we can copy/paste as necessary until maven is
fixed. -->
<fileSet>
<directory>${parent.basedir}/hbase-server/target/</directory>
<outputDirectory>hbase-jars/</outputDirectory>
<includes>
<include>${server.test.jar}</include>
</includes>
<fileMode>0644</fileMode>
</fileSet>
</fileSets>
<!-- Copy in all non-hbase jars to the lib directory -->
<dependencySets>
<dependencySet>
<outputDirectory>/lib</outputDirectory>
<unpack>false</unpack>
<scope>runtime</scope>
<excludes>
<exclude>org.apache.hbase:hbase-*</exclude>
</excludes>
<fileMode>0644</fileMode>
<directoryMode>0644</directoryMode>
</dependencySet>
</dependencySets>
<!-- Do all the work for including the other modules -->
<moduleSets>
<moduleSet>
<!-- Enable access to all projects in the current multimodule build. Eclipse
says this is an error, but builds from the command line just fine. -->
<useAllReactorProjects>true</useAllReactorProjects>
<!-- This should work with more than 1 source module -->
<!-- Now, select which projects to include in this module-set. -->
<!-- Just add future modules here assuming the wildcare doesn't match -->
<includes>
<include>org.apache.hbase:hbase-*</include>
</includes>
<excludes>
<exclude>org.apache.hbase:hbase-assembly</exclude>
</excludes>
<!-- Include all the sources in the top directory -->
<sources>
<fileSets>
<fileSet>
<excludes>
<exclude>target/</exclude>
<exclude>test/</exclude>
<exclude>.classpath</exclude>
<exclude>.project</exclude>
<exclude>.settings/</exclude>
</excludes>
</fileSet>
</fileSets>
</sources>
<!-- Binaries for the dependencies also go in the hbase-jars directory -->
<binaries>
<outputDirectory>hbase-jars/</outputDirectory>
<unpack>false</unpack>
</binaries>
</moduleSet>
<!-- Special module just for assembly -->
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>org.apache.hbase:hbase-assembly</include>
</includes>
<!-- Include all the sources in the top directory -->
<sources>
<fileSets>
<fileSet>
<excludes>
<!-- Add new modules here -->
<exclude>hbase-server-${project.version}.jar</exclude>
<exclude>target/</exclude>
<exclude>test/</exclude>
<exclude>.classpath</exclude>
<exclude>.project</exclude>
<exclude>.settings/</exclude>
</excludes>
</fileSet>
</fileSets>
</sources>
</moduleSet>
</moduleSets>
</assembly>

599
hbase-server/pom.xml Normal file
View File

@ -0,0 +1,599 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--
/**
* 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.
*/
-->
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>hbase</artifactId>
<groupId>org.apache.hbase</groupId>
<version>0.95-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>hbase-server</artifactId>
<name>HBase - Server</name>
<description>Main functionality for HBase</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-avro-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>schema</goal>
<goal>protocol</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>${project.build.directory}/generated-sources/java</outputDirectory>
</configuration>
</plugin>
<!-- Run with -Dmaven.test.skip.exec=true to build -tests.jar without running
tests (this is needed for upstream projects whose tests need this jar simply for
compilation) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>org/apache/hadoop/hbase/mapreduce/Driver</mainClass>
</manifest>
</archive>
<!-- Exclude these 2 packages, because their dependency _binary_ files
include the sources, and Maven 2.2 appears to add them to the sources to compile,
weird -->
<excludes>
<exclude>org/apache/jute/**</exclude>
<exclude>org/apache/zookeeper/**</exclude>
<exclude>**/*.jsp</exclude>
<exclude>hbase-site.xml</exclude>
<exclude>log4j.properties</exclude>
<exclude>mapred-queues.xml</exclude>
</excludes>
</configuration>
</plugin>
<!-- Make a jar and put the sources in the jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<!-- General ant tasks, bound to different build phases -->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- Generate web app sources -->
<execution>
<id>generate</id>
<phase>generate-sources</phase>
<configuration>
<target>
<property name="build.webapps"
location="${project.build.directory}/hbase-webapps" />
<property name="src.webapps"
location="${basedir}/src/main/resources/hbase-webapps" />
<property name="generated.sources"
location="${project.build.directory}/generated-sources" />
<mkdir dir="${build.webapps}" />
<copy todir="${build.webapps}">
<fileset dir="${src.webapps}">
<exclude name="**/*.jsp" />
<exclude name="**/.*" />
<exclude name="**/*~" />
</fileset>
</copy>
<!--The compile.classpath is passed in by maven -->
<taskdef classname="org.apache.jasper.JspC" name="jspcompiler"
classpathref="maven.compile.classpath" />
<mkdir dir="${build.webapps}/master/WEB-INF" />
<jspcompiler uriroot="${src.webapps}/master"
outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.master"
webxml="${build.webapps}/master/WEB-INF/web.xml" />
<mkdir dir="${build.webapps}/regionserver/WEB-INF" />
<jspcompiler uriroot="${src.webapps}/regionserver"
outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.regionserver"
webxml="${build.webapps}/regionserver/WEB-INF/web.xml" />
<exec executable="sh">
<arg
line="${basedir}/src/saveVersion.sh ${project.version} ${generated.sources}/java" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<!-- Update the default config with a version-->
<execution>
<phase>process-resources</phase>
<configuration>
<target>
<replace file="${project.build.outputDirectory}/hbase-default.xml"
token="@@@VERSION@@@" value="${project.version}" />
<mkdir dir="${project.build.directory}/nativelib" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<!-- Add the generated sources -->
<execution>
<id>jspcSource-packageInfo-Avro-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-jamon</source>
<source>${project.build.directory}/generated-sources/java</source>
</sources>
</configuration>
</execution>
<!-- Add hbase-site to the test resources -->
<execution>
<id>add-test-resource</id>
<goals>
<goal>add-test-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/test/resources</directory>
<includes>
<include>hbase-site.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jamon</groupId>
<artifactId>jamon-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>translate</goal>
</goals>
<configuration>
<templateSourceDir>src/main/jamon</templateSourceDir>
<templateOutputDir>target/generated-jamon</templateOutputDir>
</configuration>
</execution>
</executions>
</plugin>
<!-- General plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<additionalProjectnatures>
<projectnature>org.jamon.project.jamonnature</projectnature>
</additionalProjectnatures>
<buildcommands>
<buildcommand>org.jamon.project.templateBuilder</buildcommand>
<buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
<buildcommand>org.jamon.project.markerUpdater</buildcommand>
</buildcommands>
<additionalConfig>
<file>
<name>.settings/org.jamon.prefs</name>
<content># now
eclipse.preferences.version=1
templateSourceDir=src/main/jamon
templateOutputDir=target/generated-jamon
</content>
</file>
</additionalConfig>
</configuration>
</plugin>
<!-- Run findbugs -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
</plugin>
<!-- Testing plugins -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
<!-- General Resources -->
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on
the Maven build itself and needs to be kept in plugin management, not in the actual plugins. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jamon</groupId>
<artifactId>jamon-maven-plugin</artifactId>
<versionRange>[2.3.4,)</versionRange>
<goals>
<goal>translate</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<versionRange>[1.6,)</versionRange>
<goals>
<goal>run</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.avro</groupId>
<artifactId>avro-maven-plugin</artifactId>
<versionRange>[1.5.3,)</versionRange>
<goals>
<goal>schema</goal>
<goal>protocol</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<!-- General dependencies -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
</dependency>
<dependency>
<groupId>com.github.stephenc.high-scale-lib</groupId>
<artifactId>high-scale-lib</artifactId>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro-ipc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1</artifactId>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api-2.5</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
</dependency>
<dependency>
<groupId>org.jamon</groupId>
<artifactId>jamon-runtime</artifactId>
</dependency>
<!-- REST dependencies -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</dependency>
</dependencies>
<profiles>
<!-- Special builds -->
<profile>
<id>hadoop-snappy</id>
<activation>
<activeByDefault>false</activeByDefault>
<property>
<name>snappy</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-snappy</artifactId>
<version>${hadoop-snappy.version}</version>
</dependency>
</dependencies>
</profile>
<!-- Profiles for building against different hadoop versions -->
<!-- There are a lot of common dependencies used here, should investigate
if we can combine these profiles somehow -->
<!-- profile against Hadoop 1.0.x: This is the default. It has to have the same
activation property as the parent Hadoop 1.0.x profile to make sure it gets run at
the same time. -->
<profile>
<id>hadoop-1.0</id>
<activation>
<property>
<name>!hadoop.profile</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
</dependency>
</dependencies>
</profile>
<!--
profile for building against Hadoop 0.23.0. Activate using:
mvn -Dhadoop.profile=23
-->
<profile>
<id>hadoop-2.0</id>
<activation>
<property>
<name>hadoop.profile</name>
<value>2.0</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minicluster</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>create-mrapp-generated-classpath</id>
<phase>generate-test-resources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<!-- needed to run the unit test for DS to generate
the required classpath that is required in the env
of the launch container in the mini mr/yarn cluster
-->
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!--
profile for building against Hadoop 3.0.x. Activate using:
mvn -Dhadoop.profile=3.0
-->
<profile>
<id>hadoop-3.0</id>
<activation>
<property>
<name>hadoop.profile</name>
<value>3.0</value>
</property>
</activation>
<properties>
<hadoop.version>3.0-SNAPSHOT</hadoop.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-minicluster</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>create-mrapp-generated-classpath</id>
<phase>generate-test-resources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<!-- needed to run the unit test for DS to generate
the required classpath that is required in the env
of the launch container in the mini mr/yarn cluster
-->
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

Some files were not shown because too many files have changed in this diff Show More