aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bigtop.bom368
-rw-r--r--bigtop.mk404
-rw-r--r--buildSrc/src/main/groovy/org/apache/bigtop/BuildUtils.groovy53
-rw-r--r--buildSrc/src/test/groovy/org/apache/bigtop/TestBuildUtils.groovy81
-rw-r--r--packages.gradle153
5 files changed, 449 insertions, 610 deletions
diff --git a/bigtop.bom b/bigtop.bom
new file mode 100644
index 00000000..ddc1894c
--- /dev/null
+++ b/bigtop.bom
@@ -0,0 +1,368 @@
+/*
+ * 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.
+ */
+
+/** DSL documentation
+ The structure of this configuration DSL is pretty self-explanatory. The main
+ section is 'components' that contains the description of all things included
+ into the stack. The following words are considered terminals and shouldn't be
+ modified as it will affect the parsing behavior:
+ - bigtop
+ - version
+ - stack
+ - version_base
+ - apache
+ - pkg
+ - tarball, source, destinations
+ - url, download_path, site, archive
+ Also, the following are base constants and if renamed will affect the some of
+ the stack's definitions
+ - APACHE_MIRROR
+ - APACHE_ARCHIVE
+
+ bigtop { // *the name should be change: the parsing code depends on it*
+ version = "STACK-VERSION" // *required*
+ stack { // *required* Fundamental properties of the Stack: JDK, SDK, GDK, etc
+ 'jdk' { version = '1.7'; version_base = version }
+ 'scala' { version = '2.10.3'; version_base = version }
+ }
+ apache { // *required* These shoudn't be modified unless ASF Infra demands changes
+ APACHE_MIRROR = "http://apache.osuosl.org"
+ APACHE_ARCHIVE = "http://archive.apache.org/dist"
+ }
+ components { *required; preserve the name* if empty, nothing will be built
+ 'label' { // label could be anything; it's a good practice to make it same as the name
+ name = 'component1' // *required* the name of the component
+ // 'pkg' value is optional and will be set to that of 'name' i.e. [pkg := name]
+ pkg = name // *optional* and will be set to the 'name' value
+ // 'base' is required; [pkg := base ]; [release := 1 ]
+ version { base = 'x.y.z'; pkg = base; release = 1 }
+ tarball {
+ source = "apache-component1-${version.base}.tar.gz" // *optional*
+ destination = source
+ }
+ url { // *optional*
+ download_path = "/component1/component1-${version.base}"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}"
+ }
+ }
+ }
+ }
+ End of DSL Documentation */
+
+bigtop {
+/** Base Configuration of the mirror and archives */
+ version = "1.1.0-SNAPSHOT"
+ stack {
+ 'jdk' { version = '1.7'; version_base = version }
+ 'scala' { version = '2.10.3'; version_base = version }
+ }
+ apache {
+ APACHE_MIRROR = "http://apache.osuosl.org"
+ APACHE_ARCHIVE = "http://archive.apache.org/dist"
+ }
+/** End of Base Configuration */
+
+ components {
+ 'zookeeper' {
+ name = 'zookeeper'
+ pkg = name
+ version {
+ base = '3.4.6'
+ pkg = base
+ release = 1
+ }
+ tarball {
+ source = "zookeeper-${version.base}.tar.gz"
+ destination = source
+ }
+ url {
+ download_path = "/zookeeper/zookeeper-${version.base}"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}"
+ }
+ }
+ 'hadoop' {
+ name = 'hadoop'
+ relNotes = 'Apache Hadoop'
+ version { base = '2.7.1'; pkg = base; release = 1 }
+ tarball { destination = "${name}-${version.base}.tar.gz"
+ source = "${name}-${version.base}-src.tar.gz" }
+ url { download_path = "/$name/common/$name-${version.base}"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'ignite' {
+ name = 'ignite-hadoop'
+ relNotes = 'Apache Ignite in-memory data fabric'
+ version { base = '1.3.0'; pkg = base; release = 1 }
+ tarball { destination = "${name}-${version.base}.tar.gz"
+ source = "apache-ignite-${version.base}-incubating-src.zip" }
+ url { download_path = "/incubator/ignite/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+
+ 'hbase' {
+ name = 'hbase'
+ relNotes = 'Apache HBase'
+ version { base = '0.98.12'; pkg = base; release = 1 }
+ tarball { destination = "${name}-${version.base}.tar.gz"
+ source = "${name}-${version.base}-src.tar.gz" }
+ url { download_path = "/$name/$name-${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+
+ 'pig' {
+ name = 'pig'
+ pkg = 'pig'
+ relNotes = 'Apache Pig'
+ version { base = '0.14.0'; pkg = base; release = 1 }
+ tarball { destination = "${name}-${version.base}.tar.gz"
+ source = "${name}-${version.base}-src.tar.gz" }
+ url { download_path = "/$name/$name-${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'hive' {
+ name = 'hive'
+ relNotes = 'Apache Hive'
+ version { base = '1.0.0'; pkg = base; release = 1 }
+ tarball { destination = "apache-${name}-${version.base}-src.tar.gz"
+ source = destination }
+ url { download_path = "/$name/$name-${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'tez' {
+ name = 'tez'
+ relNotes = 'Apache TEZ'
+ version { base = '0.6.2'; pkg = base; release = 1 }
+ tarball { destination = "apache-${name}-${version.base}-src.tar.gz"
+ source = destination }
+ url { download_path = "/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'sqoop' {
+ name = 'sqoop'
+ relNotes = 'Apache Sqoop v1'
+ version { base = '1.4.5'; pkg = base; release = 1 }
+ tarball { destination = "${name}-${version.base}.tar.gz"
+ source = destination }
+ url { download_path = "/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'sqoop2' {
+ name = 'sqoop2'
+ relNotes = 'Apache Sqoop v2'
+ version { base = '1.99.4'; pkg = base; release = 1 }
+ tarball { destination = "${sqoop.name}-${version.base}.tar.gz"
+ source = destination }
+ url { download_path = "/${sqoop.name}/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'oozie' {
+ name = 'oozie'
+ relNotes = 'Apache Oozie'
+ version { base = '4.0.1'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = destination }
+ url { download_path = "/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'mahout' {
+ name = 'mahout'
+ relNotes = 'Apache Mahout'
+ version { base = '0.11.0'; pkg = base; release = 1 }
+ tarball { destination = "apache-$name-distribution-${version.base}-src.tar.gz"
+ source = destination }
+ url { download_path = "/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'flume' {
+ name = 'flume'
+ relNotes = 'Apache Flume'
+ version { base = '1.6.0'; pkg = base; release = 1 }
+ tarball { destination = "apache-$name-${version.base}-src.tar.gz"
+ source = destination }
+ url { download_path = "/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'giraph' {
+ name = 'giraph'
+ relNotes = 'Apache Giraph'
+ version { base = '1.1.0'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "$name-dist-${version.base}-src.tar.gz" }
+ url { download_path = "/$name/$name-${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'hue' {
+ name = 'hue'
+ relNotes = 'Hadoop User Interface'
+ version { base = '3.8.1'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "release-${version.base}.tar.gz" }
+ url { site = "https://github.com/cloudera/hue/archive"
+ archive = site }
+ }
+ 'datafu' {
+ name = 'datafu'
+ pkg = 'pig-udf-datafu'
+ relNotes = 'Pig UDF Datafu'
+ version { base = '1.0.0'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "${version.base}.tar.gz" }
+ url { site = "https://github.com/linkedin/datafu/archive"
+ archive = site }
+ }
+ 'solr' {
+ name = 'solr'
+ relNotes = 'Apache Solr'
+ version { base = '4.9.0'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}-src.tar.gz"
+ source = destination }
+ url { download_path = "/lucene/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'crunch' {
+ name = 'crunch'
+ relNotes = 'Apache Crunch'
+ version { base = '0.12.0'; pkg = base; release = 1 }
+ tarball { destination = "apache-$name-${version.base}-src.tar.gz"
+ source = destination }
+ url { download_path = "/$name/$name-${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'spark' {
+ name = 'spark'
+ relNotes = 'Apache Spark'
+ version { base = '1.3.1'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "$name-${version.base}.tgz" }
+ url { download_path = "/$name/$name-${version.base}"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'phoenix' {
+ name = 'phoenix'
+ relNotes = 'Apache Phoenix: A SQL skin over HBase'
+ version { base = '4.4.0'; pkg = base; release = 1 }
+ phoenix.hbase ='HBase-0.98'
+ tarball { destination = "$name-${version.base}-${phoenix.hbase}-src.tar.gz"
+ source = destination }
+ url { download_path = "/$name/$name-${version.base}-${phoenix.hbase}/src"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'bigtop-groovy' {
+ name = 'bigtop-groovy'
+ version { base = '2.4.4'; pkg = '2.4.4'; release = 1}
+ relNotes = "Groovy: a dynamic language for the Java platform"
+ tarball { destination = "$name-${version.base}.tar.gz";
+ source = "apache-groovy-binary-${version.base}.zip"}
+ url { site = "http://dl.bintray.com/groovy/maven/"; archive = site }
+ // Optional, as only null values are specified
+ git { repo = null; ref = null; dir = null}
+ }
+ 'bigtop-utils' {
+ name = "bigtop-utils"
+ relNotes = "Service package for Apache Bigtop runtime"
+ version { base = bigtop.version; pkg = base-"-SNAPSHOT"; release = 1 }
+ tarball { destination = "bigtop-utils-${version.base}.tar.gz" }
+ }
+ 'bigtop-jsvc' {
+ name = "bigtop-jsvc"
+ relNotes = "Apache Common Daemon (jsvc) service package"
+ version { base = '1.0.15'; pkg = base; release = 1 }
+ tarball { source = "commons-daemon-${version.base}-native-src.tar.gz"
+ destination = "commons-daemon-${version.base}.tar.gz" }
+ url { download_path = "/commons/daemon/source"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'bigtop-tomcat' {
+ name = "bigtop-tomcat"
+ relNotes = "Apache Tomcat"
+ version { base = '6.0.36'; pkg = base; release = 1 }
+ tarball { source = "apache-tomcat-${version.base}-src.tar.gz"
+ destination = "apache-tomcat-${version.base}.tar.gz" }
+ url { download_path = "/tomcat/tomcat-6/v${version.base}/src"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'tachyon' {
+ name = "tachyon"
+ name = "tachyon-tfs"
+ relNotes = "Tachyon: a memory-centric distributed file system"
+ version { base = '0.6.0'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "v${version.base}.tar.gz" }
+ url { site = "https://github.com/amplab/tachyon/archive"
+ archive = site }
+ }
+ 'kafka' {
+ name = 'kafka'
+ relNotes = 'Apache Kafka'
+ version { base = '0.8.1.1'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "$name-${version.base}-src.tar.gz" }
+ url { download_path = "/$name/${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ 'ycsb' {
+ name = 'ycsb'
+ relNotes = 'Yahoo! Cloud Serving Benchmark'
+ version { base = '0.1.4'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "${version.base}.tar.gz" }
+ url { site = "https://github.com/brianfrankcooper/YCSB/archive"
+ archive = site }
+ }
+ 'kite' {
+ name = 'kite'
+ relNotes = 'Kite Software Development Kit'
+ version { base = '1.1.0'; pkg = base; release = 1 }
+ tarball { destination = "$name-${version.base}.tar.gz"
+ source = "release-${version.base}.tar.gz" }
+ url { site = "https://github.com/kite-sdk/kite/archive"
+ archive = site }
+ }
+ 'hama' {
+ name = 'hama'
+ relNotes = 'Apache Hama'
+ version { base = '0.7.0'; pkg = base; release = 1 }
+ tarball { destination = "$name-dist-${version.base}.tar.gz"
+ source = "$name-dist-${version.base}-src.tar.gz" }
+ url { download_path = "/$name/$name-${version.base}/"
+ site = "${apache.APACHE_MIRROR}/${download_path}"
+ archive = "${apache.APACHE_ARCHIVE}/${download_path}" }
+ }
+ }
+}
diff --git a/bigtop.mk b/bigtop.mk
deleted file mode 100644
index 19eb2f6e..00000000
--- a/bigtop.mk
+++ /dev/null
@@ -1,404 +0,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.
-
-BIGTOP_VERSION=1.1.0-SNAPSHOT
-
-# JDK Version
-JDK_VERSION=1.7
-JDK_BASE_VERSION=$(JDK_VERSION)
-
-# Scala Version
-SCALA_VERSION=2.10.3
-SCALA_BASE_VERSION=$(SCALA_VERSION)
-
-# ZooKeeper
-ZOOKEEPER_NAME=zookeeper
-ZOOKEEPER_RELNOTES_NAME=Apache Zookeeper
-ZOOKEEPER_PKG_NAME=zookeeper
-ZOOKEEPER_BASE_VERSION=3.4.6
-ZOOKEEPER_PKG_VERSION=3.4.6
-ZOOKEEPER_RELEASE_VERSION=1
-ZOOKEEPER_TARBALL_DST=zookeeper-$(ZOOKEEPER_BASE_VERSION).tar.gz
-ZOOKEEPER_TARBALL_SRC=$(ZOOKEEPER_TARBALL_DST)
-ZOOKEEPER_DOWNLOAD_PATH=/zookeeper/zookeeper-$(ZOOKEEPER_BASE_VERSION)
-ZOOKEEPER_SITE=$(APACHE_MIRROR)$(ZOOKEEPER_DOWNLOAD_PATH)
-ZOOKEEPER_ARCHIVE=$(APACHE_ARCHIVE)$(ZOOKEEPER_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,zookeeper,ZOOKEEPER))
-
-# Hadoop 0.20.0-based hadoop package
-HADOOP_NAME=hadoop
-HADOOP_RELNOTES_NAME=Apache Hadoop
-HADOOP_BASE_VERSION=2.7.1
-HADOOP_PKG_VERSION=2.7.1
-HADOOP_RELEASE_VERSION=1
-HADOOP_TARBALL_DST=$(HADOOP_NAME)-$(HADOOP_BASE_VERSION).tar.gz
-HADOOP_TARBALL_SRC=$(HADOOP_NAME)-$(HADOOP_BASE_VERSION)-src.tar.gz
-HADOOP_DOWNLOAD_PATH=/hadoop/common/$(HADOOP_NAME)-$(HADOOP_BASE_VERSION)
-HADOOP_SITE=$(APACHE_MIRROR)$(HADOOP_DOWNLOAD_PATH)
-HADOOP_ARCHIVE=$(APACHE_ARCHIVE)$(HADOOP_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,hadoop,HADOOP))
-
-# Apache Ignite
-IGNITE_HADOOP_NAME=ignite-hadoop
-IGNITE_HADOOP_RELNOTES_NAME=Ignite
-IGNITE_HADOOP_PKG_NAME=$(IGNITE_HADOOP_NAME)
-IGNITE_HADOOP_BASE_VERSION=1.3.0
-IGNITE_HADOOP_PKG_VERSION=$(IGNITE_HADOOP_BASE_VERSION)
-IGNITE_HADOOP_RELEASE_VERSION=1
-IGNITE_HADOOP_TARBALL_DST=$(IGNITE_HADOOP_NAME)-$(IGNITE_HADOOP_BASE_VERSION).tar.gz
-IGNITE_HADOOP_TARBALL_SRC=apache-ignite-$(IGNITE_HADOOP_BASE_VERSION)-incubating-src.zip
-IGNITE_HADOOP_DOWNLOAD_PATH=/incubator/ignite/$(IGNITE_HADOOP_BASE_VERSION)/
-IGNITE_HADOOP_SITE=$(APACHE_MIRROR)$(IGNITE_HADOOP_DOWNLOAD_PATH)
-IGNITE_HADOOP_ARCHIVE=$(APACHE_ARCHIVE)$(IGNITE_HADOOP_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,ignite-hadoop,IGNITE_HADOOP))
-
-# HBase
-HBASE_NAME=hbase
-HBASE_RELNOTES_NAME=Apache HBase
-HBASE_PKG_NAME=hbase
-HBASE_BASE_VERSION=0.98.12
-HBASE_PKG_VERSION=$(HBASE_BASE_VERSION)
-HBASE_RELEASE_VERSION=1
-HBASE_TARBALL_DST=hbase-$(HBASE_BASE_VERSION).tar.gz
-HBASE_TARBALL_SRC=hbase-$(HBASE_BASE_VERSION)-src.tar.gz
-HBASE_DOWNLOAD_PATH=/hbase/hbase-$(HBASE_BASE_VERSION)
-HBASE_SITE=$(APACHE_MIRROR)$(HBASE_DOWNLOAD_PATH)
-HBASE_ARCHIVE=$(APACHE_ARCHIVE)$(HBASE_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,hbase,HBASE))
-
-# Pig
-PIG_BASE_VERSION=0.14.0
-PIG_PKG_VERSION=$(PIG_BASE_VERSION)
-PIG_RELEASE_VERSION=1
-PIG_NAME=pig
-PIG_RELNOTES_NAME=Apache Pig
-PIG_PKG_NAME=pig
-PIG_TARBALL_DST=pig-$(PIG_BASE_VERSION)-src.tar.gz
-PIG_TARBALL_SRC=$(PIG_TARBALL_DST)
-PIG_DOWNLOAD_PATH=/pig/pig-$(PIG_BASE_VERSION)
-PIG_SITE=$(APACHE_MIRROR)$(PIG_DOWNLOAD_PATH)
-PIG_ARCHIVE=$(APACHE_ARCHIVE)$(PIG_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,pig,PIG))
-
-# Hive
-HIVE_NAME=hive
-HIVE_RELNOTES_NAME=Apache Hive
-HIVE_PKG_NAME=hive
-HIVE_BASE_VERSION=1.0.0
-HIVE_PKG_VERSION=$(HIVE_BASE_VERSION)
-HIVE_RELEASE_VERSION=1
-HIVE_TARBALL_DST=apache-hive-$(HIVE_BASE_VERSION)-src.tar.gz
-HIVE_TARBALL_SRC=$(HIVE_TARBALL_DST)
-HIVE_DOWNLOAD_PATH=/hive/hive-$(HIVE_BASE_VERSION)
-HIVE_SITE=$(APACHE_MIRROR)$(HIVE_DOWNLOAD_PATH)
-HIVE_ARCHIVE=$(APACHE_ARCHIVE)$(HIVE_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,hive,HIVE))
-
-# TEZ
-TEZ_NAME=tez
-TEZ_RELNOTES_NAME=Apache TEZ
-TEZ_PKG_NAME=tez
-TEZ_BASE_VERSION=0.6.2
-TEZ_PKG_VERSION=$(TEZ_BASE_VERSION)
-TEZ_RELEASE_VERSION=1
-TEZ_TARBALL_DST=apache-tez-$(TEZ_BASE_VERSION)-src.tar.gz
-TEZ_TARBALL_SRC=$(TEZ_TARBALL_DST)
-TEZ_DOWNLOAD_PATH=/tez/$(TEZ_BASE_VERSION)
-TEZ_SITE=$(APACHE_MIRROR)$(TEZ_DOWNLOAD_PATH)
-TEZ_ARCHIVE=$(APACHE_ARCHIVE)$(TEZ_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,tez,TEZ))
-
-# Sqoop
-SQOOP_NAME=sqoop
-SQOOP_RELNOTES_NAME=Sqoop
-SQOOP_PKG_NAME=sqoop
-SQOOP_BASE_VERSION=1.4.5
-SQOOP_PKG_VERSION=$(SQOOP_BASE_VERSION)
-SQOOP_RELEASE_VERSION=1
-SQOOP_TARBALL_DST=$(SQOOP_NAME)-$(SQOOP_BASE_VERSION).tar.gz
-SQOOP_TARBALL_SRC=$(SQOOP_TARBALL_DST)
-SQOOP_DOWNLOAD_PATH=/sqoop/$(SQOOP_BASE_VERSION)
-SQOOP_SITE=$(APACHE_MIRROR)$(SQOOP_DOWNLOAD_PATH)
-SQOOP_ARCHIVE=$(APACHE_ARCHIVE)$(SQOOP_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,sqoop,SQOOP))
-
-# Sqoop 2
-SQOOP2_NAME=sqoop2
-SQOOP2_RELNOTES_NAME=Sqoop 2
-SQOOP2_PKG_NAME=sqoop2
-SQOOP2_BASE_VERSION=1.99.4
-SQOOP2_PKG_VERSION=$(SQOOP2_BASE_VERSION)
-SQOOP2_RELEASE_VERSION=1
-SQOOP2_TARBALL_DST=$(SQOOP_NAME)-$(SQOOP2_BASE_VERSION).tar.gz
-SQOOP2_TARBALL_SRC=$(SQOOP2_TARBALL_DST)
-SQOOP2_DOWNLOAD_PATH=/sqoop/$(SQOOP2_BASE_VERSION)
-SQOOP2_SITE=$(APACHE_MIRROR)$(SQOOP2_DOWNLOAD_PATH)
-SQOOP2_ARCHIVE=$(APACHE_ARCHIVE)$(SQOOP2_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,sqoop2,SQOOP2))
-
-# Oozie
-OOZIE_NAME=oozie
-OOZIE_RELNOTES_NAME=Apache Oozie
-OOZIE_PKG_NAME=oozie
-OOZIE_BASE_VERSION=4.0.1
-OOZIE_PKG_VERSION=$(OOZIE_BASE_VERSION)
-OOZIE_RELEASE_VERSION=1
-OOZIE_TARBALL_DST=oozie-$(OOZIE_BASE_VERSION).tar.gz
-OOZIE_TARBALL_SRC=$(OOZIE_TARBALL_DST)
-OOZIE_DOWNLOAD_PATH=/$(OOZIE_NAME)/$(OOZIE_BASE_VERSION)
-OOZIE_SITE=$(APACHE_MIRROR)$(OOZIE_DOWNLOAD_PATH)
-OOZIE_ARCHIVE=$(APACHE_ARCHIVE)$(OOZIE_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,oozie,OOZIE))
-
-# Mahout
-MAHOUT_NAME=mahout
-MAHOUT_RELNOTES_NAME=Apache Mahout
-MAHOUT_PKG_NAME=mahout
-MAHOUT_BASE_VERSION=0.11.0
-MAHOUT_PKG_VERSION=0.11.0
-MAHOUT_RELEASE_VERSION=1
-MAHOUT_TARBALL_DST=apache-mahout-distribution-$(MAHOUT_BASE_VERSION)-src.tar.gz
-MAHOUT_TARBALL_SRC=$(MAHOUT_TARBALL_DST)
-MAHOUT_DOWNLOAD_PATH=/mahout/$(MAHOUT_BASE_VERSION)
-MAHOUT_SITE=$(APACHE_MIRROR)$(MAHOUT_DOWNLOAD_PATH)
-MAHOUT_ARCHIVE=$(APACHE_ARCHIVE)$(MAHOUT_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,mahout,MAHOUT))
-
-# Flume
-FLUME_NAME=flume
-FLUME_RELNOTES_NAME=Flume
-FLUME_PKG_NAME=flume
-FLUME_BASE_VERSION=1.6.0
-FLUME_PKG_VERSION=1.6.0
-FLUME_RELEASE_VERSION=1
-FLUME_TARBALL_DST=apache-$(FLUME_NAME)-$(FLUME_BASE_VERSION)-src.tar.gz
-FLUME_TARBALL_SRC=$(FLUME_TARBALL_DST)
-FLUME_DOWNLOAD_PATH=/flume/$(FLUME_BASE_VERSION)
-FLUME_SITE=$(APACHE_MIRROR)$(FLUME_DOWNLOAD_PATH)
-FLUME_ARCHIVE=$(APACHE_ARCHIVE)$(FLUME_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,flume,FLUME))
-
-# Giraph
-GIRAPH_NAME=giraph
-GIRAPH_RELNOTES_NAME=Giraph
-GIRAPH_PKG_NAME=giraph
-GIRAPH_BASE_VERSION=1.1.0
-GIRAPH_PKG_VERSION=1.1.0
-GIRAPH_RELEASE_VERSION=1
-GIRAPH_TARBALL_DST=$(GIRAPH_NAME)-$(GIRAPH_BASE_VERSION).tar.gz
-GIRAPH_TARBALL_SRC=$(GIRAPH_NAME)-dist-$(GIRAPH_BASE_VERSION)-src.tar.gz
-GIRAPH_DOWNLOAD_PATH=/giraph/$(GIRAPH_PKG_NAME)-$(GIRAPH_BASE_VERSION)
-GIRAPH_SITE=$(APACHE_MIRROR)$(GIRAPH_DOWNLOAD_PATH)
-GIRAPH_ARCHIVE=$(APACHE_ARCHIVE)$(GIRAPH_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,giraph,GIRAPH))
-
-# Hue
-HUE_NAME=hue
-HUE_RELNOTES_NAME=Hadoop User Experience
-HUE_PKG_NAME=hue
-HUE_BASE_VERSION=3.8.1
-HUE_PKG_VERSION=3.8.1
-HUE_RELEASE_VERSION=1
-HUE_TARBALL_DST=hue-$(HUE_BASE_VERSION).tar.gz
-HUE_TARBALL_SRC=release-$(HUE_BASE_VERSION).tar.gz
-HUE_SITE=https://github.com/cloudera/hue/archive
-HUE_ARCHIVE=$(HUE_SITE)
-$(eval $(call PACKAGE,hue,HUE))
-
-# DataFu
-DATAFU_NAME=datafu
-DATAFU_RELNOTES_NAME=Collection of user-defined functions
-DATAFU_PKG_NAME=pig-udf-datafu
-DATAFU_BASE_VERSION=1.0.0
-DATAFU_PKG_VERSION=1.0.0
-DATAFU_RELEASE_VERSION=1
-DATAFU_TARBALL_DST=datafu-$(DATAFU_BASE_VERSION).tar.gz
-DATAFU_TARBALL_SRC=v$(DATAFU_BASE_VERSION).tar.gz
-DATAFU_SITE=https://github.com/linkedin/datafu/archive
-DATAFU_ARCHIVE=$(DATAFU_SITE)
-$(eval $(call PACKAGE,datafu,DATAFU))
-
-# Solr
-SOLR_NAME=solr
-SOLR_RELNOTES_NAME=Search engine server
-SOLR_PKG_NAME=solr
-SOLR_BASE_VERSION=4.9.0
-SOLR_PKG_VERSION=$(SOLR_BASE_VERSION)
-SOLR_RELEASE_VERSION=1
-SOLR_TARBALL_DST=solr-$(SOLR_BASE_VERSION)-src.tgz
-SOLR_TARBALL_SRC=$(SOLR_TARBALL_DST)
-SOLR_DOWNLOAD_PATH=/lucene/solr/$(SOLR_BASE_VERSION)
-SOLR_SITE=$(APACHE_MIRROR)$(SOLR_DOWNLOAD_PATH)
-SOLR_ARCHIVE=$(APACHE_ARCHIVE)$(SOLR_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,solr,SOLR))
-
-# Crunch
-CRUNCH_NAME=crunch
-CRUNCH_RELNOTES_NAME=Java library for MapReduce pipelines
-CRUNCH_PKG_NAME=crunch
-CRUNCH_BASE_VERSION=0.12.0
-CRUNCH_PKG_VERSION=$(CRUNCH_BASE_VERSION)
-CRUNCH_RELEASE_VERSION=1
-CRUNCH_TARBALL_DST=apache-crunch-$(CRUNCH_BASE_VERSION)-src.tar.gz
-CRUNCH_TARBALL_SRC=$(CRUNCH_TARBALL_DST)
-CRUNCH_DOWNLOAD_PATH=/crunch/crunch-$(CRUNCH_BASE_VERSION)
-CRUNCH_SITE=$(APACHE_MIRROR)$(CRUNCH_DOWNLOAD_PATH)
-CRUNCH_ARCHIVE=$(APACHE_ARCHIVE)$(CRUNCH_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,crunch,CRUNCH))
-
-# Spark
-SPARK_NAME=spark
-SPARK_RELNOTES_NAME=Spark
-SPARK_PKG_NAME=spark-core
-SPARK_BASE_VERSION=1.3.1
-SPARK_PKG_VERSION=1.3.1
-SPARK_RELEASE_VERSION=1
-SPARK_TARBALL_DST=spark-$(SPARK_BASE_VERSION).tar.gz
-SPARK_TARBALL_SRC=spark-$(SPARK_BASE_VERSION).tgz
-SPARK_DOWNLOAD_PATH=/spark/spark-$(SPARK_BASE_VERSION)
-SPARK_SITE=$(APACHE_MIRROR)$(SPARK_DOWNLOAD_PATH)
-SPARK_ARCHIVE=$(APACHE_ARCHIVE)$(SPARK_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,spark,SPARK))
-
-# Phoenix
-PHOENIX_NAME=phoenix
-PHOENIX_RELNOTES_NAME=Phoenix: A SQL skin over HBase
-PHOENIX_PKG_NAME=phoenix
-PHOENIX_BASE_VERSION=4.4.0
-PHOENIX_PKG_VERSION=$(PHOENIX_BASE_VERSION)
-PHOENIX_RELEASE_VERSION=1
-PHOENIX_HBASE_VERSION=HBase-0.98
-PHOENIX_TARBALL_DST=phoenix-$(PHOENIX_BASE_VERSION)-$(PHOENIX_HBASE_VERSION)-src.tar.gz
-PHOENIX_TARBALL_SRC=$(PHOENIX_TARBALL_DST)
-PHOENIX_DOWNLOAD_PATH=/phoenix/phoenix-$(PHOENIX_BASE_VERSION)-$(PHOENIX_HBASE_VERSION)/src/
-PHOENIX_SITE=$(APACHE_MIRROR)$(PHOENIX_DOWNLOAD_PATH)
-PHOENIX_ARCHIVE=$(APACHE_ARCHIVE)$(PHOENIX_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,phoenix,PHOENIX))
-
-# Groovy
-BIGTOP_GROOVY_NAME=bigtop-groovy
-BIGTOP_GROOVY_RELNOTES_NAME=Grovvy: a dynamic language for the Java platform
-BIGTOP_GROOVY_PKG_NAME=bigtop-groovy
-BIGTOP_GROOVY_BASE_VERSION=2.4.4
-BIGTOP_GROOVY_PKG_VERSION=$(BIGTOP_GROOVY_BASE_VERSION)
-BIGTOP_GROOVY_RELEASE_VERSION=1
-BIGTOP_GROOVY_TARBALL_DST=$(BIGTOP_GROOVY_NAME)-$(BIGTOP_GROOVY_BASE_VERSION).tar.gz
-BIGTOP_GROOVY_TARBALL_SRC=apache-groovy-binary-$(BIGTOP_GROOVY_BASE_VERSION).zip
-BIGTOP_GROOVY_SITE=http://dl.bintray.com/groovy/maven/
-BIGTOP_GROOVY_ARCHIVE=$(BIGTOP_GROOVY_SITE)
-$(eval $(call PACKAGE,bigtop-groovy,BIGTOP_GROOVY))
-
-# Bigtop-utils
-BIGTOP_UTILS_NAME=bigtop-utils
-BIGTOP_UTILS__RELNOTES_NAME=Bigtop-utils
-BIGTOP_UTILS_PKG_NAME=bigtop-utils
-BIGTOP_UTILS_BASE_VERSION=$(subst -,.,$(BIGTOP_VERSION))
-BIGTOP_UTILS_PKG_VERSION=$(BIGTOP_UTILS_BASE_VERSION)
-BIGTOP_UTILS_RELEASE_VERSION=1
-BIGTOP_UTILS_TARBALL_DST=$(BIGTOP_UTILS_PKG_NAME)-$(BIGTOP_UTILS_BASE_VERSION).tar.gz
-$(eval $(call PACKAGE,bigtop-utils,BIGTOP_UTILS))
-
-# Bigtop-jsvc
-BIGTOP_JSVC_NAME=bigtop-jsvc
-BIGTOP_JSVC_RELNOTES_NAME=Apache Commons Daemon (jsvc)
-BIGTOP_JSVC_PKG_NAME=bigtop-jsvc
-BIGTOP_JSVC_BASE_VERSION=1.0.15
-BIGTOP_JSVC_PKG_VERSION=$(BIGTOP_JSVC_BASE_VERSION)
-BIGTOP_JSVC_RELEASE_VERSION=1
-BIGTOP_JSVC_TARBALL_SRC=commons-daemon-$(BIGTOP_JSVC_BASE_VERSION)-native-src.tar.gz
-BIGTOP_JSVC_TARBALL_DST=commons-daemon-$(BIGTOP_JSVC_BASE_VERSION).tar.gz
-BIGTOP_JSVC_SITE=$(APACHE_MIRROR)/commons/daemon/source/
-BIGTOP_JSVC_ARCHIVE=$(APACHE_ARCHIVE)/commons/daemon/source/
-$(eval $(call PACKAGE,bigtop-jsvc,BIGTOP_JSVC))
-
-# Bigtop-tomcat
-BIGTOP_TOMCAT_NAME=bigtop-tomcat
-BIGTOP_TOMCAT_RELNOTES_NAME=Apache Tomcat
-BIGTOP_TOMCAT_PKG_NAME=bigtop-tomcat
-BIGTOP_TOMCAT_BASE_VERSION=6.0.36
-BIGTOP_TOMCAT_PKG_VERSION=$(BIGTOP_TOMCAT_BASE_VERSION)
-BIGTOP_TOMCAT_RELEASE_VERSION=1
-BIGTOP_TOMCAT_TARBALL_SRC=apache-tomcat-$(BIGTOP_TOMCAT_BASE_VERSION)-src.tar.gz
-BIGTOP_TOMCAT_TARBALL_DST=apache-tomcat-$(BIGTOP_TOMCAT_BASE_VERSION).tar.gz
-BIGTOP_TOMCAT_SITE=$(APACHE_MIRROR)/tomcat/tomcat-6/v$(BIGTOP_TOMCAT_BASE_VERSION)/src/
-BIGTOP_TOMCAT_ARCHIVE=$(APACHE_ARCHIVE)/tomcat/tomcat-6/v$(BIGTOP_TOMCAT_BASE_VERSION)/src/
-$(eval $(call PACKAGE,bigtop-tomcat,BIGTOP_TOMCAT))
-
-# Tachyon
-TACHYON_NAME=tachyon-tfs
-TACHYON_RELNOTES_NAME=Tachyon: a memory-centric distributed file system
-TACHYON_PKG_NAME=tachyon-tfs
-TACHYON_BASE_VERSION=0.6.0
-TACHYON_PKG_VERSION=0.6.0
-TACHYON_RELEASE_VERSION=1
-TACHYON_TARBALL_DST=tachyon-$(TACHYON_BASE_VERSION).tar.gz
-TACHYON_TARBALL_SRC=v$(TACHYON_BASE_VERSION).tar.gz
-TACHYON_SITE=https://github.com/amplab/tachyon/archive
-TACHYON_ARCHIVE=$(TACHYON_SITE)
-$(eval $(call PACKAGE,tachyon,TACHYON))
-
-# Kafka
-KAFKA_NAME=kafka
-KAFKA_RELNOTES_NAME=Apache Kafka
-KAFKA_PKG_NAME=kafka
-KAFKA_BASE_VERSION=0.8.1.1
-KAFKA_PKG_VERSION=$(KAFKA_BASE_VERSION)
-KAFKA_RELEASE_VERSION=1
-KAFKA_TARBALL_DST=kafka-$(KAFKA_BASE_VERSION).tar.gz
-KAFKA_TARBALL_SRC=kafka-$(KAFKA_BASE_VERSION)-src.tgz
-KAFKA_DOWNLOAD_PATH=/kafka/$(KAFKA_BASE_VERSION)
-KAFKA_SITE=$(APACHE_MIRROR)$(KAFKA_DOWNLOAD_PATH)
-KAFKA_ARCHIVE=$(APACHE_ARCHIVE)$(KAFKA_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,kafka,KAFKA))
-
-# YCSB
-YCSB_NAME=YCSB
-YCSB_RELNOTES_NAME=Yahoo! Cloud Serving Benchmark
-YCSB_PKG_NAME=ycsb
-YCSB_BASE_VERSION=0.1.4
-YCSB_PKG_VERSION=0.1.4
-YCSB_RELEASE_VERSION=1
-YCSB_TARBALL_DST=ycsb-$(YCSB_BASE_VERSION).tar.gz
-YCSB_TARBALL_SRC=$(YCSB_BASE_VERSION).tar.gz
-YCSB_SITE=https://github.com/brianfrankcooper/YCSB/archive
-YCSB_ARCHIVE=$(YCSB_SITE)
-$(eval $(call PACKAGE,ycsb,YCSB))
-
-# Kite
-KITE_NAME=kite
-KITE_RELNOTES_NAME=Kite Software Development Kit
-KITE_PKG_NAME=kite
-KITE_BASE_VERSION=1.1.0
-KITE_PKG_VERSION=$(KITE_BASE_VERSION)
-KITE_RELEASE_VERSION=1
-KITE_TARBALL_SRC=release-$(KITE_BASE_VERSION).tar.gz
-KITE_TARBALL_DST=kite-$(KITE_BASE_VERSION).tar.gz
-KITE_SITE=https://github.com/kite-sdk/kite/archive
-KITE_ARCHIVE=$(KITE_SITE)
-$(eval $(call PACKAGE,kite,KITE))
-
-# Hama
-HAMA_NAME=hama
-HAMA_RELNOTES_NAME=Apache Hama
-HAMA_PKG_NAME=hama
-HAMA_BASE_VERSION=0.7.0
-HAMA_PKG_VERSION=$(HAMA_BASE_VERSION)
-HAMA_RELEASE_VERSION=1
-HAMA_TARBALL_DST=hama-dist-$(HAMA_BASE_VERSION).tar.gz
-HAMA_TARBALL_SRC=hama-dist-$(HAMA_BASE_VERSION)-src.tar.gz
-HAMA_DOWNLOAD_PATH=/hama/hama-$(HAMA_BASE_VERSION)
-HAMA_SITE=$(APACHE_MIRROR)$(HAMA_DOWNLOAD_PATH)
-HAMA_ARCHIVE=$(APACHE_ARCHIVE)$(HAMA_DOWNLOAD_PATH)
-$(eval $(call PACKAGE,hama,HAMA))
diff --git a/buildSrc/src/main/groovy/org/apache/bigtop/BuildUtils.groovy b/buildSrc/src/main/groovy/org/apache/bigtop/BuildUtils.groovy
deleted file mode 100644
index 11c6a48b..00000000
--- a/buildSrc/src/main/groovy/org/apache/bigtop/BuildUtils.groovy
+++ /dev/null
@@ -1,53 +0,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.
- */
-package org.apache.bigtop
-
-class BuildUtils {
-
- def evaluateBOM = { map, eval ->
- if (eval.contains("\$(")) {
- // Crazy case of using make's subst
- if (eval.contains("\$(subst")) {
- // Extracting name of the var from something like
- // $(subst -,.,$(BIGTOP_VERSION))
- def pattern = ~ /.*\$\(subst (.*),(.*),\$\((\w+[-]?\w+?)\)\)/
- def m = eval =~ pattern
- def token = ""
- if (m.matches()) {
- token = m[0][3]
- }
- eval = map.get(token).replaceAll(m[0][1], m[0][2])
- return eval
- }
- // Extracting all variable names that might or not be separated by dash
- def pattern = ~/\$\((\w+[-]?\w+?)\)/
- def m = eval =~ pattern
- def counter = 0
- // Moving forward while matches are found
- while (m.find()) {
- eval = eval.replaceAll(/\$\(/, "").replaceAll(/\)/,"")
- (1..m.groupCount()).each { i ->
- def token = m[counter++][i]
- assert map.get(token) != null
- eval = eval.replaceAll(token, map.get(token))
- }
- }
- }
- eval
- }
-} \ No newline at end of file
diff --git a/buildSrc/src/test/groovy/org/apache/bigtop/TestBuildUtils.groovy b/buildSrc/src/test/groovy/org/apache/bigtop/TestBuildUtils.groovy
deleted file mode 100644
index 8d98c057..00000000
--- a/buildSrc/src/test/groovy/org/apache/bigtop/TestBuildUtils.groovy
+++ /dev/null
@@ -1,81 +0,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.
- */
-package org.apache.bigtop
-
-import org.junit.Assert
-import org.junit.Test
-
-class TestBuildUtils {
-
- def final PREFIX = "BIGTOP_UTILS"
- def input = [
- 'BIGTOP_VERSION=0.9.0-3',
- 'BIGTOP_GROOVY=2.4-SNAPSHOT',
- 'BIGTOP_UTILS_NAME=bigtop-utils',
- 'BIGTOP_UTILS__RELNOTES_NAME=Bigtop-utils',
- 'BIGTOP_UTILS_PKG_NAME=bigtop-utils',
- 'BIGTOP_UTILS_BASE_VERSION=$(subst -,.,$(BIGTOP_VERSION))',
- 'BIGTOP_GROOVY_BASE_VERSION=$(subst -SNAPSHOT,,$(BIGTOP_GROOVY))',
- 'BIGTOP_GROOVY_BASE_VERSION=$(BIGTOP_GROOVY_BASE_VERSION)',
- 'BIGTOP_UTILS_PKG_VERSION=$(BIGTOP_UTILS_BASE_VERSION)',
- 'BIGTOP_UTILS_RELEASE_VERSION=1',
- 'HADOOP_SITE=$(APACHE_MIRROR)/$(BIGTOP_UTILS_RELEASE_VERSION)/hadoop-2.0.6-alpha-src.tar.gz',
- 'BIGTOP_BUILD_STAMP=1'
- ]
- Map map = [
- APACHE_MIRROR: "http://apache.osuosl.org",
- APACHE_ARCHIVE: "http://archive.apache.org/dist",
- ]
-
- @Test
- void testEvaluateBOM () {
- BuildUtils buildUtils = new BuildUtils()
- def envs = []
- input.each { line ->
- envs = line?.split("=")
- map.put(envs[0], buildUtils.evaluateBOM(map, envs[1]))
- }
-
- Assert.assertEquals("2.4", map.get("BIGTOP_GROOVY_BASE_VERSION"))
- Assert.assertEquals("0.9.0.3", map.get("BIGTOP_UTILS_BASE_VERSION"))
- Assert.assertEquals("0.9.0.3", map.get("BIGTOP_UTILS_PKG_VERSION"))
- Assert.assertEquals("http://apache.osuosl.org/1/hadoop-2.0.6-alpha-src.tar.gz", map.get("HADOOP_SITE"))
- }
-
- @Test
- void testOverrideBOM () {
- System.setProperty("BIGTOP_UTILS_BASE_VERSION", "10.1.0")
- System.setProperty("BIGTOP_BUILD_STAMP", "12")
- System.setProperty("HADOOP_SITE", "http://www.apache.org")
- BuildUtils buildUtils = new BuildUtils()
- def envs = []
- input.each { line ->
- envs = line?.split("=")
- def value = buildUtils.evaluateBOM(map, envs[1])
- value = System.getProperty(envs[0]) ?: value
- map.put(envs[0], value)
- }
-
- Assert.assertEquals("10.1.0", map.get("BIGTOP_UTILS_BASE_VERSION"))
- Assert.assertEquals("12", map.get("BIGTOP_BUILD_STAMP"))
- Assert.assertEquals("http://www.apache.org", map.get("HADOOP_SITE"))
- System.clearProperty("HADOOP_SITE")
- System.clearProperty("BIGTOP_BUILD_STAMP")
- System.clearProperty("BIGTOP_UTILS_BASE_VERSION")
- }
-}
diff --git a/packages.gradle b/packages.gradle
index 74b84d91..ce5e1102 100644
--- a/packages.gradle
+++ b/packages.gradle
@@ -36,12 +36,11 @@ apply plugin: 'groovy'
def PACKAGES_GROUP = 'package'
final String VERBOSE = "verbose"
-final String BOM = "$rootDir/bigtop.mk"
+final String BOM = "$rootDir/bigtop.bom"
+def final config
//HashMap <String, String>
def BOM_map = [
- APACHE_MIRROR: "http://apache.osuosl.org",
- APACHE_ARCHIVE: "http://archive.apache.org/dist",
BASE_DIR: projectDir.absolutePath,
BUILD_DIR: projectDir.absolutePath + "/build",
OUTPUT_DIR: projectDir.absolutePath + "/output",
@@ -51,7 +50,8 @@ def BOM_map = [
BIGTOP_BUILD_STAMP: 1
]
-def final BIGTOP_BOM = 'BIGTOP_BOM'
+def final BIGTOP_VERSION = 'BIGTOP_VERSION'
+def final BIGTOP_BOM_VERSIONS = 'BIGTOP_BOM'
def final BASE_DIR = BOM_map['BASE_DIR']
def final REPO_DIR = "${BOM_map['BASE_DIR']}/bigtop-repos"
@@ -105,21 +105,21 @@ task "bom-json" (description: "List the components of the stack in json format")
[
name: [
project: BOM_map[it + '_NAME'],
- pkg: BOM_map[it + '_PKG_NAME'],
- relNotes: BOM_map[it + '_RELNOTES_NAME'],
+ pkg: BOM_map[it + '_PKG'],
+ relNotes: BOM_map[it + '_RELNOTES'],
],
tarball: [
- destination: BOM_map[it + '_TARBALL_DST'],
- source: BOM_map[it + '_TARBALL_SRC'],
+ destination: BOM_map[it + '_TARBALL_DESTINATION'],
+ source: BOM_map[it + '_TARBALL_SOURCE'],
],
url: [
- site: BOM_map[it + '_SITE'],
- archive: BOM_map[it + '_ARCHIVE'],
+ site: BOM_map[it + '_URL_SITE'],
+ archive: BOM_map[it + '_URL_ARCHIVE'],
],
version: [
- base: BOM_map[it + '_BASE_VERSION'],
- pkg: BOM_map[it + '_PKG_VERSION'],
- release: BOM_map[it + '_RELEASE_VERSION'],
+ base: BOM_map[it + '_VERSION_BASE'],
+ pkg: BOM_map[it + '_VERSION_PKG'],
+ release: BOM_map[it + '_VERSION_RELEASE'],
],
git: [
repo: BOM_map[it + '_GIT_REPO'],
@@ -129,7 +129,7 @@ task "bom-json" (description: "List the components of the stack in json format")
]
}
def fullDefinition = [
- version: BOM_map['BIGTOP_VERSION'],
+ version: BOM_map[BIGTOP_VERSION],
components: componentObjects
]
def json = JsonOutput.toJson(fullDefinition)
@@ -137,9 +137,9 @@ task "bom-json" (description: "List the components of the stack in json format")
}
task "all-components" (description: "List the components of the stack") << {
- println "${project.name} ${BOM_map['BIGTOP_VERSION']} stack includes the following components"
+ println "${project.name} ${BOM_map[BIGTOP_VERSION]} stack includes the following components"
components.sort().each { comp ->
- println sprintf ('\t%1$s %2$s', comp.toLowerCase().padRight(20), BOM_map[comp + "_BASE_VERSION"].padLeft(10))
+ println sprintf ('\t%1$s %2$s', comp.toLowerCase().padRight(20), BOM_map[comp + "_VERSION_BASE"].padLeft(15))
}
}
@@ -148,7 +148,7 @@ def genTasks = { target, variable ->
description: "Download $target artifacts",
group: PACKAGES_GROUP) << {
- def final TARBALL_SRC = BOM_map[variable + '_TARBALL_SRC']
+ def final TARBALL_SRC = BOM_map[variable + '_TARBALL_SOURCE']
def final DOWNLOAD_DST = BOM_map[variable + '_DOWNLOAD_DST']
def final DOWNLOAD_URL = BOM_map[variable + '_DOWNLOAD_URL']
@@ -198,7 +198,7 @@ def genTasks = { target, variable ->
return
}
def final TAR_DIR = BOM_map[variable + '_TAR_DIR']
- def final TARBALL_SRC = BOM_map[variable + '_TARBALL_SRC'] ?: ""
+ def final TARBALL_SRC = BOM_map[variable + '_TARBALL_SOURCE'] ?: ""
def final DOWNLOAD_DST = BOM_map[variable + '_DOWNLOAD_DST'] ?: ""
def final SEED_TAR = BOM_map[variable + '_SEED_TAR']
@@ -253,11 +253,11 @@ def genTasks = { target, variable ->
println "\tNothing to do. Exiting..."
return
}
- def final PKG_NAME = BOM_map[variable + '_PKG_NAME']
+ def final PKG_NAME = BOM_map[variable + '_PKG']
def final PKG_RELEASE = BOM_map[variable + '_PKG_RELEASE']
- def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
+ def final PKG_VERSION = BOM_map[variable + '_VERSION_PKG']
def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
- def final BASE_VERSION = BOM_map[variable + '_BASE_VERSION']
+ def final BASE_VERSION = BOM_map[variable + '_VERSION_BASE']
def final SRCDEB = "${PKG_NAME}_$PKG_VERSION-${BIGTOP_BUILD_STAMP}.dsc"
exec {
@@ -302,18 +302,20 @@ def genTasks = { target, variable ->
}
def final PKG_BUILD_DIR = BOM_map[variable + '_BUILD_DIR']
def final NAME = BOM_map[variable + '_NAME']
- def final PKG_NAME = BOM_map[variable + '_PKG_NAME']
+ def final PKG_NAME = BOM_map[variable + '_PKG']
def final SEED_TAR = BOM_map[variable + '_SEED_TAR']
- def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
+ def final PKG_VERSION = BOM_map[variable + '_VERSION_PKG']
def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
delete ("$PKG_BUILD_DIR/deb")
def final DEB_BLD_DIR = "$PKG_BUILD_DIR/deb/$NAME-${PKG_VERSION}"
def final DEB_PKG_DIR = "$PKG_BUILD_DIR/deb/$PKG_NAME-${PKG_VERSION}-${BIGTOP_BUILD_STAMP}"
mkdir (DEB_BLD_DIR)
- copy {
+ println BOM_map[variable + '_TARBALL_DESTINATION'] + " " + "${PKG_NAME}_${PKG_VERSION}.orig.tar.gz"
+
+ copy {
from SEED_TAR
into "$PKG_BUILD_DIR/deb/"
- rename BOM_map[variable + '_TARBALL_DST'], "${PKG_NAME}_${PKG_VERSION}.orig.tar.gz"
+ rename BOM_map[variable + '_TARBALL_DESTINATION'], "${PKG_NAME}_${PKG_VERSION}.orig.tar.gz"
}
exec {
workingDir DEB_BLD_DIR
@@ -331,7 +333,7 @@ def genTasks = { target, variable ->
}.copy { into "$DEB_BLD_DIR/debian" }
// Prepeare bom file with all the versions
def bomWriter = new File("$DEB_BLD_DIR/debian/bigtop.bom").newWriter()
- BOM_map[BIGTOP_BOM].split(" ").each { bomWriter << "$it\n"}
+ BOM_map[BIGTOP_BOM_VERSIONS].split(" ").each { bomWriter << "$it\n"}
bomWriter.close()
// Create changelog
def changelog = new File("$DEB_BLD_DIR/debian/changelog").newWriter()
@@ -375,10 +377,10 @@ def genTasks = { target, variable ->
}
def final PKG_BUILD_DIR = BOM_map[variable + '_BUILD_DIR']
def final NAME = BOM_map[variable + '_NAME']
- def final PKG_NAME = BOM_map[variable + '_PKG_NAME']
+ def final PKG_NAME = BOM_map[variable + '_PKG']
def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
- def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
- def final BASE_VERSION = BOM_map[variable + '_BASE_VERSION']
+ def final PKG_VERSION = BOM_map[variable + '_VERSION_PKG']
+ def final BASE_VERSION = BOM_map[variable + '_VERSION_BASE']
def RELEASE_DIST = "rpmbuild --eval '%{?dist}' 2>/dev/null".execute().text.trim().replaceAll("'",'')
def SRCRPM="$PKG_OUTPUT_DIR/$PKG_NAME-${PKG_VERSION}-$BIGTOP_BUILD_STAMP${RELEASE_DIST}.src.rpm"
@@ -410,12 +412,12 @@ def genTasks = { target, variable ->
return
}
def final NAME = BOM_map[variable + '_NAME']
- def final PKG_NAME = BOM_map[variable + '_PKG_NAME']
+ def final PKG_NAME = BOM_map[variable + '_PKG']
def final PKG_NAME_FOR_PKG = BOM_map[variable + '_NAME'].replaceAll("-", "_")
def final PKG_BUILD_DIR = BOM_map[variable + '_BUILD_DIR']
def final SEED_TAR = BOM_map[variable + '_SEED_TAR']
- def final PKG_VERSION = BOM_map[variable + '_PKG_VERSION']
- def final BASE_VERSION = BOM_map[variable + '_BASE_VERSION']
+ def final PKG_VERSION = BOM_map[variable + '_VERSION_PKG']
+ def final BASE_VERSION = BOM_map[variable + '_VERSION_BASE']
def final PKG_OUTPUT_DIR = BOM_map[variable + '_OUTPUT_DIR']
delete ("$PKG_BUILD_DIR/rpm")
['INSTALL','SOURCES','BUILD','SRPMS','RPMS'].each { rpmdir ->
@@ -437,7 +439,7 @@ def genTasks = { target, variable ->
}.copy { into "$PKG_BUILD_DIR/rpm/SOURCES" }
// Writing bigtop.bom files with all the versions
def bomWriter = new File("$PKG_BUILD_DIR/rpm/SOURCES/bigtop.bom").newWriter()
- BOM_map[BIGTOP_BOM].split(" ").each { bomWriter << "$it\n"}
+ BOM_map[BIGTOP_BOM_VERSIONS].split(" ").each { bomWriter << "$it\n"}
bomWriter.close()
def specFileName = "${PKG_BUILD_DIR}/rpm/SPECS/${NAME}.spec"
@@ -500,30 +502,33 @@ def genTasks = { target, variable ->
}
}
task "$target-version" (description: "Show version of $target component", group: PACKAGES_GROUP) << {
- println "Base: ${BOM_map[variable + '_BASE_VERSION']}"
+ println "Base: ${BOM_map[variable + '_VERSION_BASE']}"
}
task "${target}_vardefines" << {
BOM_map[variable + '_NAME'] = target
- if (!BOM_map[variable + '_PKG_NAME']) {
- BOM_map[variable + '_PKG_NAME'] = BOM_map[variable + '_NAME']
+ if (!BOM_map[variable + '_PKG']) {
+ BOM_map[variable + '_PKG'] = BOM_map[variable + '_NAME']
+ }
+ if (!BOM_map[variable + '_VERSION_PKG']) {
+ BOM_map[variable + '_VERSION_PKG'] = BOM_map[variable + '_VERSION_BASE']
}
BOM_map[variable + '_PKG_RELEASE'] = '1'
BOM_map[variable + '_BUILD_DIR'] = BOM_map['BUILD_DIR'] + "/$target"
BOM_map[variable + '_OUTPUT_DIR'] = BOM_map['OUTPUT_DIR'] + "/$target"
BOM_map[variable + '_SOURCE_DIR'] = BOM_map['BUILD_DIR'] + "/source"
- BOM_map[variable + '_TAR_DIR'] = BOM_map['BUILD_DIR'] + "/$target/tar/${target}-${BOM_map[variable + '_BASE_VERSION']}"
- BOM_map[variable + '_SEED_TAR'] = BOM_map['BUILD_DIR'] + "/$target/tar/" + BOM_map[variable + '_TARBALL_DST']
+ BOM_map[variable + '_TAR_DIR'] = BOM_map['BUILD_DIR'] + "/$target/tar/${target}-${BOM_map[variable + '_VERSION_BASE']}"
+ BOM_map[variable + '_SEED_TAR'] = BOM_map['BUILD_DIR'] + "/$target/tar/" + BOM_map[variable + '_TARBALL_DESTINATION']
BOM_map[variable + '_DOWNLOAD_URL'] =
- (BOM_map[variable + '_SITE'] != null && BOM_map[variable + '_TARBALL_SRC'] != null) ?
- BOM_map[variable + '_SITE'] + '/' + BOM_map[variable + '_TARBALL_SRC'] : null
- BOM_map[variable + '_DOWNLOAD_DST'] = (BOM_map[variable + '_TARBALL_SRC'] != null) ?
- DL_DIR + '/' + BOM_map[variable + '_TARBALL_SRC'] : null
+ (BOM_map[variable + '_URL_SITE'] != null && BOM_map[variable + '_TARBALL_SOURCE'] != null) ?
+ BOM_map[variable + '_URL_SITE'] + '/' + BOM_map[variable + '_TARBALL_SOURCE'] : null
+ BOM_map[variable + '_DOWNLOAD_DST'] = (BOM_map[variable + '_TARBALL_SOURCE'] != null) ?
+ DL_DIR + '/' + BOM_map[variable + '_TARBALL_SOURCE'] : null
// test that the download url will return http 200. If it does not, use the ARCHIVE url instead of the MIRROR SITE url
if (!ifExists(BOM_map[variable + '_DOWNLOAD_URL'])) {
- BOM_map[variable + '_DOWNLOAD_URL'] = BOM_map[variable + '_ARCHIVE'] + '/' + BOM_map[variable + '_TARBALL_SRC']
+ BOM_map[variable + '_DOWNLOAD_URL'] = BOM_map[variable + '_URL_ARCHIVE'] + '/' + BOM_map[variable + '_TARBALL_SOURCE']
}
BOM_map[variable + '_TARGET_DL'] = BOM_map[variable + '_BUILD_DIR'] + '/.download'
@@ -550,7 +555,7 @@ def genTasks = { target, variable ->
println " Then unpack into ${BOM_map[variable + '_SOURCE_DIR']}"
println " And create a seed tarball ${BOM_map[variable + '_SEED_TAR']}"
- println "Version: " + BOM_map[variable + '_BASE_VERSION']
+ println "Version: " + BOM_map[variable + '_VERSION_BASE']
//TODO more about stamping
}
task "$target-relnotes" (description: "Preparing release notes for $target. No yet implemented!!!", group: PACKAGES_GROUP)<< {
@@ -567,32 +572,35 @@ def genTasks = { target, variable ->
}
def readBOM = {
-
- def buildUtils = new org.apache.bigtop.BuildUtils()
- def bomfile = new File(BOM)
- def envs = []
-
- bomfile.eachLine {
- if (!it.startsWith("#") && !it.isEmpty()) {
- if (it.startsWith("\$(eval")) {
- def pattern = ~/.*call PACKAGE,(\w+[-\w+]*),(\w+)/
- def m = it =~ pattern
- assert m.size() == 1
- def target = m[0][1]
- def variable = m[0][2]
- genTasks(target, variable)
- targets.add(target)
- // Store the component name in the list
- // TODO - we might not need them components anymore: version are calculated differently now
- components.add(variable)
- return
- }
- envs = it?.split("=")
- def value = buildUtils.evaluateBOM(BOM_map, envs[1])
- value = System.getProperty(envs[0]) ?: value
- BOM_map.put(envs[0], value)
+ config = new ConfigSlurper().parse(new URL("file:$BOM"))
+ doValidateBOM(config)
+ BOM_map[BIGTOP_VERSION] = config.bigtop.version
+ config.bigtop.apache.each { name, value ->
+ BOM_map[name] = value
+ }
+ config.bigtop.stack.each { name, comp ->
+ comp.toProperties(name).each {k, v ->
+ BOM_map[(k.replaceAll("\\.", "_").toUpperCase())] = v
}
}
+ config.bigtop.components.each { label, comp ->
+ // while closure name in the component's config could include '-'; the prefix in the BOM_map shouldn't
+ def prefix = comp.name.replaceAll("\\-", "_").toUpperCase()
+// TODO?: To avoid changing every bit of the builds logic, let's stick to the old naming format
+ comp.toProperties(prefix).each {comp_config_key, comp_config_value ->
+ BOM_map[(comp_config_key.replaceAll("\\.", "_").toUpperCase())] = comp_config_value
+ }
+ genTasks(comp.name, prefix)
+ components.add(prefix)
+ }
+}
+
+// Let's enforce some of the configuration requirements
+private void doValidateBOM(config) {
+ assert config.bigtop.version
+ assert config.bigtop.stack.jdk
+ assert config.bigtop.stack.scala
+ assert config.bigtop.apache.size() != 0
}
// We need to make sure that all dynamic tasks are available for invocation
@@ -602,11 +610,12 @@ project.afterEvaluate {
// Versions need to be preserved for more than just component:
// - there are JDK version requirement
// - possibly more in the future
- BOM_map.keySet().findAll { it ==~ /.*_BASE_VERSION/ }.each { base_version ->
- bomVersions += "${base_version.replaceAll('_BASE', '')}=${BOM_map[base_version]} "
+ BOM_map.keySet().findAll { it ==~ /.*VERSION_BASE/ }.each { version_base ->
+ bomVersions += "${version_base.replaceAll('_BASE', '')}=${BOM_map[version_base]} "
}
- BOM_map[BIGTOP_BOM] = bomVersions
- if (System.getProperty(VERBOSE))println "BIGTOP_BOM:\n${BOM_map[BIGTOP_BOM]}"
+ BOM_map[BIGTOP_BOM_VERSIONS] = bomVersions
+ if (System.getProperty(VERBOSE))println "BIGTOP_BOM_VERSIONS:\n${BOM_map[BIGTOP_BOM_VERSIONS]}"
+ if (System.getProperty(VERBOSE))println "Full content:\n${BOM_map}"
// Putting all targets of different types into one common target
task "srpm" (dependsOn: tasks.findAll { alltask -> alltask.name.endsWith("-srpm")}*.name,
description: "Build all SRPM packages for the stack components",