diff --git a/.rat-excludes b/.rat-excludes new file mode 100644 index 000000000000..01d629817c8a --- /dev/null +++ b/.rat-excludes @@ -0,0 +1,26 @@ +.rat-excludes +rat.out +sbt +sbt.boot.lock +README* +.gitignore +.git +.svn +build.properties +target +src_managed +update.log +clients/target +core/target +contrib/target +project/plugins/target +project/build/target +*.iml +*.csproj +TODO +Makefile* +*.html +*.xml +*expected.out +*.kafka + diff --git a/bin/run-rat.sh b/bin/run-rat.sh new file mode 100644 index 000000000000..b8e8fdf6cae8 --- /dev/null +++ b/bin/run-rat.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# 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. + +base_dir=$(dirname $0)/.. +rat_excludes_file=$base_dir/.rat-excludes + +if [ -z "$JAVA_HOME" ]; then + JAVA="java" +else + JAVA="$JAVA_HOME/bin/java" +fi + +rat_command="$JAVA -jar $base_dir/lib/apache-rat-0.8-SNAPSHOT.jar --dir $base_dir " + +for f in $(cat $rat_excludes_file); +do + rat_command="${rat_command} -e $f" +done + +echo "Running " $rat_command +$rat_command > $base_dir/rat.out + diff --git a/lib/apache-rat-0.8-SNAPSHOT.jar b/lib/apache-rat-0.8-SNAPSHOT.jar new file mode 100644 index 000000000000..b6b07f73ba28 Binary files /dev/null and b/lib/apache-rat-0.8-SNAPSHOT.jar differ diff --git a/project/build/KafkaProject.scala b/project/build/KafkaProject.scala index 9f1df7725191..0d99c2e31f5c 100644 --- a/project/build/KafkaProject.scala +++ b/project/build/KafkaProject.scala @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import sbt._ class KafkaProject(info: ProjectInfo) extends ParentProject(info) with IdeaProject { @@ -27,6 +28,17 @@ class KafkaProject(info: ProjectInfo) extends ParentProject(info) with IdeaProje lazy val releaseZip = releaseZipTask dependsOn(core.corePackageAction, core.test, examples.examplesPackageAction, contrib.producerPackageAction, contrib.consumerPackageAction) describedAs releaseZipDescription + // Not sure why rat does not get pulled from a Maven repo automatically. + val rat = "org.apache.rat" % "apache-rat-project" % "0.7" + + val runRatDescription = "Runs Apache rat on Kafka" + lazy val runRatTask = task { + val rat = "org.apache.rat" % "apache-rat-project" % "0.7" + Runtime.getRuntime().exec("bin/run-rat.sh") + None + } describedAs runRatDescription + + class CoreKafkaProject(info: ProjectInfo) extends DefaultProject(info) with IdeaProject with CoreDependencies with TestDependencies { val corePackageAction = packageAllAction @@ -108,6 +120,7 @@ class KafkaProject(info: ProjectInfo) extends ParentProject(info) with IdeaProje List(JavaCompileOption("-source"), JavaCompileOption("1.5")) override def packageAction = super.packageAction dependsOn (testCompileAction) + } class KafkaExamplesProject(info: ProjectInfo) extends DefaultProject(info)