This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/flume.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 88d2b95a6 FLUME-3456 - Create Bill of Materials. FLUME 3455 - Move 
Twitter source to its own repo
88d2b95a6 is described below

commit 88d2b95a638df7d2dd8f4bbed0f82d4f75cea88d
Author: Ralph Goers <[email protected]>
AuthorDate: Sat Mar 18 23:02:53 2023 -0700

    FLUME-3456 - Create Bill of Materials. FLUME 3455 - Move Twitter source to 
its own repo
---
 flume-bom/pom.xml                                  |  236 +++
 flume-ng-dist/pom.xml                              |    2 +-
 flume-ng-sources/flume-twitter-source/pom.xml      |   74 -
 .../apache/flume/source/twitter/TwitterSource.java |  346 ----
 .../flume/source/twitter/TestTwitterSource.java    |  133 --
 .../src/test/resources/log4j2.xml                  |   37 -
 .../src/test/resources/twitter-flume.conf          |   92 -
 flume-ng-sources/pom.xml                           |    1 -
 pom.xml => flume-parent/pom.xml                    |   51 +-
 pom.xml                                            | 1821 +-------------------
 10 files changed, 251 insertions(+), 2542 deletions(-)

diff --git a/flume-bom/pom.xml b/flume-bom/pom.xml
new file mode 100644
index 000000000..1d0036497
--- /dev/null
+++ b/flume-bom/pom.xml
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+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 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";>
+
+  <parent>
+    <groupId>org.apache.flume</groupId>
+    <artifactId>flume-project</artifactId>
+    <version>1.11.1-SNAPSHOT</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.flume</groupId>
+  <artifactId>flume-dependencies</artifactId>
+  <packaging>pom</packaging>
+
+  <name>Apache Flume Artifacts</name>
+
+  <properties>
+    <flume-hadoop.version>1.11.1-SNAPSHOT</flume-hadoop.version>
+    <flume-http.version>1.11.1-SNAPSHOT</flume-http.version>
+    <flume-irc.version>1.11.1-SNAPSHOT</flume-irc.version>
+    <flume-jdbc.version>1.11.1-SNAPSHOT</flume-jdbc.version>
+    <flume-jms.version>1.11.1-SNAPSHOT</flume-jms.version>
+    <flume-kafka.version>1.11.1-SNAPSHOT</flume-kafka.version>
+    <flume-log4jappender.version>1.11.1-SNAPSHOT</flume-log4jappender.version>
+    <flume-scribe.version>1.11.1-SNAPSHOT</flume-scribe.version>
+    <flume-spring-boot.version>2.0.0-SNAPSHOT</flume-spring-boot.version>
+    <flume-taildir.version>1.11.1-SNAPSHOT</flume-taildir.version>
+    <flume-tools.version>1.11.1-SNAPSHOT</flume-tools.version>
+    <flume-twitter.version>2.0.0-SNAPSHOT</flume-twitter.version>
+    <legacy.version>1.11.1-SNAPSHOT</legacy.version>
+    <morphline.version>1.11.1-SNAPSHOT</morphline.version>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-auth</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-configfilters</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-configuration</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-embedded-agent</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-config-filter-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-environment-variable-config-filter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-external-process-config-filter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-hadoop-credential-store-config-filter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-sdk</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-node</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-sdk</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-spring-boot</artifactId>
+        <version>${flume-spring-boot.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-twitter-source</artifactId>
+        <version>${flume-twitter.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-jdbc-channel</artifactId>
+        <version>$flume-jdbc.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-file-channel</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-kafka-channel</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-recoverable-memory-channel</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-spillable-memory-channel</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-clients</groupId>
+        <artifactId>flume-ng-log4jappender</artifactId>
+        <version>${flume-log4jappender.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-legacy-sources</groupId>
+        <artifactId>flume-thrift-source</artifactId>
+        <version>${legacy.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-legacy-sources</groupId>
+        <artifactId>flume-avro-source</artifactId>
+        <version>${legacy.verison}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-ng-morphline-solr-sink</artifactId>
+        <version>${morphline.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-hdfs-sink</artifactId>
+        <version>${flume-hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-hive-sink</artifactId>
+        <version>${flume-hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-http-sink</artifactId>
+        <version>${flume-http.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-irc-sink</artifactId>
+        <version>${flume-irc.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-ng-hbase2-sink</artifactId>
+        <version>${flume-hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-ng-hbase-sink</artifactId>
+        <version>${flume-hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-ng-kafka-sink</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-ng-kudu-sink</artifactId>
+        <version>${flume-hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <artifactId>flume-jms-source</artifactId>
+        <version>${flume-jms.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <artifactId>flume-scribe-source</artifactId>
+        <version>${flume-scribe.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <artifactId>flume-taildir-source</artifactId>
+        <version>${flume-taildir.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-shared</groupId>
+        <artifactId>flume-shared-kafka</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-tools</artifactId>
+        <version>${flume-tools.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+</project>
diff --git a/flume-ng-dist/pom.xml b/flume-ng-dist/pom.xml
index 7d6d9dbd1..60d30e19d 100644
--- a/flume-ng-dist/pom.xml
+++ b/flume-ng-dist/pom.xml
@@ -172,7 +172,7 @@
       <artifactId>flume-jms-source</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.flume.flume-ng-sources</groupId>
+      <groupId>org.apache.flume</groupId>
       <artifactId>flume-twitter-source</artifactId>
     </dependency>
     <dependency>
diff --git a/flume-ng-sources/flume-twitter-source/pom.xml 
b/flume-ng-sources/flume-twitter-source/pom.xml
deleted file mode 100644
index 814bf32cb..000000000
--- a/flume-ng-sources/flume-twitter-source/pom.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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 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";>
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <artifactId>flume-ng-sources</artifactId>
-    <groupId>org.apache.flume</groupId>
-    <version>1.11.1-SNAPSHOT</version>
-  </parent>
-
-  <groupId>org.apache.flume.flume-ng-sources</groupId>
-  <artifactId>flume-twitter-source</artifactId>
-  <name>Flume Twitter Source</name>
-
-  <properties>
-    <!-- TODO fix spotbugs/pmd violations -->
-    <spotbugs.maxAllowedViolations>4</spotbugs.maxAllowedViolations>
-    <pmd.maxAllowedViolations>2</pmd.maxAllowedViolations>
-    <module.name>org.apache.flume.source.twitter</module.name>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.flume</groupId>
-      <artifactId>flume-ng-core</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.easytesting</groupId>
-      <artifactId>fest-reflect</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.twitter4j</groupId>
-      <artifactId>twitter4j-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.twitter4j</groupId>
-      <artifactId>twitter4j-media-support</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.twitter4j</groupId>
-      <artifactId>twitter4j-stream</artifactId>
-    </dependency>
-  </dependencies>
-
-  <build>
-  </build>
-</project>
diff --git 
a/flume-ng-sources/flume-twitter-source/src/main/java/org/apache/flume/source/twitter/TwitterSource.java
 
b/flume-ng-sources/flume-twitter-source/src/main/java/org/apache/flume/source/twitter/TwitterSource.java
deleted file mode 100644
index 04849bb7b..000000000
--- 
a/flume-ng-sources/flume-twitter-source/src/main/java/org/apache/flume/source/twitter/TwitterSource.java
+++ /dev/null
@@ -1,346 +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.flume.source.twitter;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.apache.avro.Schema;
-import org.apache.avro.Schema.Field;
-import org.apache.avro.Schema.Type;
-import org.apache.avro.file.DataFileWriter;
-import org.apache.avro.generic.GenericData.Record;
-import org.apache.avro.generic.GenericDatumWriter;
-import org.apache.avro.generic.GenericRecord;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.EventDrivenSource;
-import org.apache.flume.annotations.InterfaceAudience;
-import org.apache.flume.annotations.InterfaceStability;
-import org.apache.flume.conf.BatchSizeSupported;
-import org.apache.flume.conf.Configurable;
-import org.apache.flume.event.EventBuilder;
-import org.apache.flume.instrumentation.SourceCounter;
-import org.apache.flume.source.AbstractSource;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import twitter4j.MediaEntity;
-import twitter4j.StallWarning;
-import twitter4j.Status;
-import twitter4j.StatusDeletionNotice;
-import twitter4j.StatusListener;
-import twitter4j.TwitterStream;
-import twitter4j.TwitterStreamFactory;
-import twitter4j.User;
-import twitter4j.auth.AccessToken;
-
-/**
- * Demo Flume source that connects via Streaming API to the 1% sample twitter
- * firehose, continuously downloads tweets, converts them to Avro format and
- * sends Avro events to a downstream Flume sink.
- *
- * Requires the consumer and access tokens and secrets of a Twitter developer
- * account
- */
-
[email protected]
[email protected]
-public class TwitterSource
-    extends AbstractSource
-    implements EventDrivenSource, Configurable, StatusListener, 
BatchSizeSupported {
-
-  private TwitterStream twitterStream;
-  private Schema avroSchema;
-
-  private long docCount = 0;
-  private long startTime = 0;
-  private long exceptionCount = 0;
-  private long totalTextIndexed = 0;
-  private long skippedDocs = 0;
-  private long batchEndTime = 0;
-  private final List<Record> docs = new ArrayList<Record>();
-  private final ByteArrayOutputStream serializationBuffer =
-      new ByteArrayOutputStream();
-  private DataFileWriter<GenericRecord> dataFileWriter;
-
-  private int maxBatchSize = 1000;
-  private int maxBatchDurationMillis = 1000;
-
-  private SourceCounter sourceCounter;
-
-  // Fri May 14 02:52:55 +0000 2010
-  private SimpleDateFormat formatterTo =
-      new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
-  private DecimalFormat numFormatter = new DecimalFormat("###,###.###");
-
-  private static int REPORT_INTERVAL = 100;
-  private static int STATS_INTERVAL = REPORT_INTERVAL * 10;
-  private static final Logger LOGGER =
-      LoggerFactory.getLogger(TwitterSource.class);
-
-  public TwitterSource() {
-  }
-
-  @Override
-  public void configure(Context context) {
-    String consumerKey = context.getString("consumerKey");
-    String consumerSecret = context.getString("consumerSecret");
-    String accessToken = context.getString("accessToken");
-    String accessTokenSecret = context.getString("accessTokenSecret");
-
-    twitterStream = new TwitterStreamFactory().getInstance();
-    twitterStream.setOAuthConsumer(consumerKey, consumerSecret);
-    twitterStream.setOAuthAccessToken(new AccessToken(accessToken,
-                                                      accessTokenSecret));
-    twitterStream.addListener(this);
-    avroSchema = createAvroSchema();
-    dataFileWriter = new DataFileWriter<GenericRecord>(
-        new GenericDatumWriter<GenericRecord>(avroSchema));
-
-    maxBatchSize = context.getInteger("maxBatchSize", maxBatchSize);
-    maxBatchDurationMillis = context.getInteger("maxBatchDurationMillis",
-                                                maxBatchDurationMillis);
-
-    if (sourceCounter == null) {
-      sourceCounter = new SourceCounter(getName());
-    }
-  }
-
-  @Override
-  public synchronized void start() {
-    LOGGER.info("Starting twitter source {} ...", this);
-    docCount = 0;
-    startTime = System.currentTimeMillis();
-    exceptionCount = 0;
-    totalTextIndexed = 0;
-    skippedDocs = 0;
-    batchEndTime = System.currentTimeMillis() + maxBatchDurationMillis;
-    twitterStream.sample();
-    LOGGER.info("Twitter source {} started.", getName());
-    // This should happen at the end of the start method, since this will 
-    // change the lifecycle status of the component to tell the Flume 
-    // framework that this component has started. Doing this any earlier 
-    // tells the framework that the component started successfully, even 
-    // if the method actually fails later.
-    super.start();
-  }
-
-  @Override
-  public synchronized void stop() {
-    LOGGER.info("Twitter source {} stopping...", getName());
-    twitterStream.shutdown();
-    super.stop();
-    LOGGER.info("Twitter source {} stopped.", getName());
-  }
-
-  public void onStatus(Status status)  {
-    Record doc = extractRecord("", avroSchema, status);
-    if (doc == null) {
-      return; // skip
-    }
-    docs.add(doc);
-    if (docs.size() >= maxBatchSize ||
-        System.currentTimeMillis() >= batchEndTime) {
-      sourceCounter.addToEventReceivedCount(docs.size());
-      batchEndTime = System.currentTimeMillis() + maxBatchDurationMillis;
-      byte[] bytes;
-      try {
-        bytes = serializeToAvro(avroSchema, docs);
-      } catch (IOException e) {
-        sourceCounter.incrementGenericProcessingFail();
-        LOGGER.error("Exception while serializing tweet", e);
-        return; //skip
-      }
-      Event event = EventBuilder.withBody(bytes);
-      getChannelProcessor().processEvent(event); // send event to the flume 
sink
-      docs.clear();
-      sourceCounter.addToEventAcceptedCount(docs.size());
-    }
-    docCount++;
-    if ((docCount % REPORT_INTERVAL) == 0) {
-      LOGGER.info(String.format("Processed %s docs",
-                                numFormatter.format(docCount)));
-    }
-    if ((docCount % STATS_INTERVAL) == 0) {
-      logStats();
-    }
-  }
-
-  private Schema createAvroSchema() {
-    Schema avroSchema = Schema.createRecord("Doc", "adoc", null, false);
-    List<Field> fields = new ArrayList<Field>();
-    fields.add(new Field("id", Schema.create(Type.STRING), null, null));
-    fields.add(new Field("user_friends_count",
-                         createOptional(Schema.create(Type.INT)),
-                         null, null));
-    fields.add(new Field("user_location",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("user_description",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("user_statuses_count",
-                         createOptional(Schema.create(Type.INT)),
-                         null, null));
-    fields.add(new Field("user_followers_count",
-                         createOptional(Schema.create(Type.INT)),
-                         null, null));
-    fields.add(new Field("user_name",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("user_screen_name",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("created_at",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("text",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("retweet_count",
-                         createOptional(Schema.create(Type.LONG)),
-                         null, null));
-    fields.add(new Field("retweeted",
-                         createOptional(Schema.create(Type.BOOLEAN)),
-                         null, null));
-    fields.add(new Field("in_reply_to_user_id",
-                         createOptional(Schema.create(Type.LONG)),
-                         null, null));
-    fields.add(new Field("source",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("in_reply_to_status_id",
-                         createOptional(Schema.create(Type.LONG)),
-                         null, null));
-    fields.add(new Field("media_url_https",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    fields.add(new Field("expanded_url",
-                         createOptional(Schema.create(Type.STRING)),
-                         null, null));
-    avroSchema.setFields(fields);
-    return avroSchema;
-  }
-
-  private Record extractRecord(String idPrefix, Schema avroSchema, Status 
status) {
-    User user = status.getUser();
-    Record doc = new Record(avroSchema);
-
-    doc.put("id", idPrefix + status.getId());
-    doc.put("created_at", formatterTo.format(status.getCreatedAt()));
-    doc.put("retweet_count", Long.valueOf(status.getRetweetCount()));
-    doc.put("retweeted", status.isRetweet());
-    doc.put("in_reply_to_user_id", status.getInReplyToUserId());
-    doc.put("in_reply_to_status_id", status.getInReplyToStatusId());
-
-    addString(doc, "source", status.getSource());
-    addString(doc, "text", status.getText());
-
-    MediaEntity[] mediaEntities = status.getMediaEntities();
-    if (mediaEntities.length > 0) {
-      addString(doc, "media_url_https", mediaEntities[0].getMediaURLHttps());
-      addString(doc, "expanded_url", mediaEntities[0].getExpandedURL());
-    }
-
-    doc.put("user_friends_count", user.getFriendsCount());
-    doc.put("user_statuses_count", user.getStatusesCount());
-    doc.put("user_followers_count", user.getFollowersCount());
-    addString(doc, "user_location", user.getLocation());
-    addString(doc, "user_description", user.getDescription());
-    addString(doc, "user_screen_name", user.getScreenName());
-    addString(doc, "user_name", user.getName());
-    return doc;
-  }
-
-  private byte[] serializeToAvro(Schema avroSchema, List<Record> docList)
-      throws IOException {
-    serializationBuffer.reset();
-    dataFileWriter.create(avroSchema, serializationBuffer);
-    try {
-      for (Record doc2 : docList) {
-        dataFileWriter.append(doc2);
-      }
-    } finally {
-      dataFileWriter.close();
-    }
-    return serializationBuffer.toByteArray();
-  }
-
-  private Schema createOptional(Schema schema) {
-    return Schema.createUnion(Arrays.asList(
-        new Schema[] { schema, Schema.create(Type.NULL) }));
-  }
-
-  private void addString(Record doc, String avroField, String val) {
-    if (val == null) {
-      return;
-    }
-    doc.put(avroField, val);
-    totalTextIndexed += val.length();
-  }
-
-  private void logStats() {
-    double mbIndexed = totalTextIndexed / (1024 * 1024.0);
-    long seconds = (System.currentTimeMillis() - startTime) / 1000;
-    seconds = Math.max(seconds, 1);
-    LOGGER.info(String.format("Total docs indexed: %s, total skipped docs: %s",
-                numFormatter.format(docCount), 
numFormatter.format(skippedDocs)));
-    LOGGER.info(String.format("    %s docs/second",
-                numFormatter.format(docCount / seconds)));
-    LOGGER.info(String.format("Run took %s seconds and processed:",
-                numFormatter.format(seconds)));
-    LOGGER.info(String.format("    %s MB/sec sent to index",
-                numFormatter.format(((float) totalTextIndexed / (1024 * 1024)) 
/ seconds)));
-    LOGGER.info(String.format("    %s MB text sent to index",
-                numFormatter.format(mbIndexed)));
-    LOGGER.info(String.format("There were %s exceptions ignored: ",
-                numFormatter.format(exceptionCount)));
-  }
-
-  public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
-    // Do nothing...
-  }
-
-  public void onScrubGeo(long userId, long upToStatusId) {
-    // Do nothing...
-  }
-
-  public void onStallWarning(StallWarning warning) {
-    // Do nothing...
-  }
-
-  public void onTrackLimitationNotice(int numberOfLimitedStatuses) {
-    // Do nothing...
-  }
-
-  public void onException(Exception e) {
-    LOGGER.error("Exception while streaming tweets", e);
-  }
-
-  @Override
-  public long getBatchSize() {
-    return maxBatchSize;
-  }
-}
diff --git 
a/flume-ng-sources/flume-twitter-source/src/test/java/org/apache/flume/source/twitter/TestTwitterSource.java
 
b/flume-ng-sources/flume-twitter-source/src/test/java/org/apache/flume/source/twitter/TestTwitterSource.java
deleted file mode 100644
index 4ffe5e218..000000000
--- 
a/flume-ng-sources/flume-twitter-source/src/test/java/org/apache/flume/source/twitter/TestTwitterSource.java
+++ /dev/null
@@ -1,133 +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.flume.source.twitter;
-
-import static org.fest.reflect.core.Reflection.field;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.text.SimpleDateFormat;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.flume.Channel;
-import org.apache.flume.ChannelSelector;
-import org.apache.flume.Context;
-import org.apache.flume.Sink;
-import org.apache.flume.SinkRunner;
-import org.apache.flume.channel.ChannelProcessor;
-import org.apache.flume.channel.MemoryChannel;
-import org.apache.flume.channel.ReplicatingChannelSelector;
-import org.apache.flume.conf.Configurables;
-import org.apache.flume.instrumentation.ChannelCounter;
-import org.apache.flume.instrumentation.SourceCounter;
-import org.apache.flume.sink.DefaultSinkProcessor;
-import org.apache.flume.sink.LoggerSink;
-import org.junit.Assert;
-import org.junit.Assume;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-public class TestTwitterSource extends Assert {
-
-  @BeforeClass
-  public static void setUp() {
-    try {
-      Assume.assumeNotNull(InetAddress.getByName("stream.twitter.com"));
-    } catch (UnknownHostException e) {
-      Assume.assumeTrue(false); // ignore Test if twitter is unreachable
-    }
-  }
-  
-  @Test
-  public void testBasic() throws Exception {
-    String consumerKey = System.getProperty("twitter.consumerKey");
-    Assume.assumeNotNull(consumerKey);
-
-    String consumerSecret = System.getProperty("twitter.consumerSecret");
-    Assume.assumeNotNull(consumerSecret);
-
-    String accessToken = System.getProperty("twitter.accessToken");
-    Assume.assumeNotNull(accessToken);
-
-    String accessTokenSecret = System.getProperty("twitter.accessTokenSecret");
-    Assume.assumeNotNull(accessTokenSecret);
-
-    Context context = new Context();
-    context.put("consumerKey", consumerKey);
-    context.put("consumerSecret", consumerSecret);
-    context.put("accessToken", accessToken);
-    context.put("accessTokenSecret", accessTokenSecret);
-    context.put("maxBatchDurationMillis", "1000");
-    context.put("maxBatchSize", "1");
-
-    TwitterSource source = new TwitterSource();
-    source.configure(context);
-
-    Map<String, String> channelContext = new HashMap();
-    channelContext.put("capacity", "1000000");
-    channelContext.put("keep-alive", "0"); // for faster tests
-    Channel channel = new MemoryChannel();
-    Configurables.configure(channel, new Context(channelContext));
-
-    Sink sink = new LoggerSink();
-    sink.setChannel(channel);
-    sink.start();
-    DefaultSinkProcessor proc = new DefaultSinkProcessor();
-    proc.setSinks(Collections.singletonList(sink));
-    SinkRunner sinkRunner = new SinkRunner(proc);
-    sinkRunner.start();
-
-    ChannelSelector rcs = new ReplicatingChannelSelector();
-    rcs.setChannels(Collections.singletonList(channel));
-    ChannelProcessor chp = new ChannelProcessor(rcs);
-    source.setChannelProcessor(chp);
-    source.start();
-
-    Thread.sleep(5000);
-    source.stop();
-    sinkRunner.stop();
-    sink.stop();
-
-    long successfulEvents = 
getTwitterCounterGroup(source).getEventReceivedCount();
-    long receivedEvents = 
getTwitterCounterGroup(source).getEventReceivedCount();
-    long channelEvents = 
getMemoryChannelCounterGroup((MemoryChannel)channel).getEventPutAttemptCount();
-
-    assertEquals("Received vs. Success:", receivedEvents, successfulEvents);
-    assertEquals("Success vs. Channel", channelEvents, successfulEvents);
-
-  }
-
-  private SourceCounter getTwitterCounterGroup(TwitterSource source) {
-    return field("sourceCounter").ofType(SourceCounter.class).in(source).get();
-  }
-
-
-  private ChannelCounter getMemoryChannelCounterGroup(MemoryChannel source) {
-    return 
field("channelCounter").ofType(ChannelCounter.class).in(source).get();
-  }
-
-  @Test
-  public void testCarrotDateFormatBug() throws Exception {
-    SimpleDateFormat formatterFrom = new SimpleDateFormat("EEE MMM dd HH:mm:ss 
Z yyyy", Locale.ENGLISH);
-    formatterFrom.parse("Fri Oct 26 22:53:55 +0000 2012");
-  }
-
-}
diff --git 
a/flume-ng-sources/flume-twitter-source/src/test/resources/log4j2.xml 
b/flume-ng-sources/flume-twitter-source/src/test/resources/log4j2.xml
deleted file mode 100644
index 0f3d3841d..000000000
--- a/flume-ng-sources/flume-twitter-source/src/test/resources/log4j2.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
-
--->
-<Configuration status="OFF">
-  <Appenders>
-    <Console name="Console" target="SYSTEM_OUT">
-      <PatternLayout pattern="%-4r [%t] %-5p %c %x - %m%n" />
-    </Console>
-  </Appenders>
-  <Loggers>
-    <Logger name="org.apache.flume.sink" level="INFO"/>
-    <Logger name="org.apache.solr" level="INFO"/>
-    <Logger name="org.apache.solr.morphline" level="DEBUG"/>
-    <Logger name="org.apache.solr" level="DEBUG"/>
-    <Logger name="org.apache.solr.update.processor.LogUpdateProcessor" 
level="WARN"/>
-    <Logger name="org.apache.solr.core.SolrCore" level="WARN"/>
-    <Logger name="org.apache.solr.search.SolrIndexSearcher" level="ERROR"/>
-    <Root level="WARN">
-      <AppenderRef ref="Console" />
-    </Root>
-  </Loggers>
-</Configuration>
\ No newline at end of file
diff --git 
a/flume-ng-sources/flume-twitter-source/src/test/resources/twitter-flume.conf 
b/flume-ng-sources/flume-twitter-source/src/test/resources/twitter-flume.conf
deleted file mode 100644
index 72fe4efc9..000000000
--- 
a/flume-ng-sources/flume-twitter-source/src/test/resources/twitter-flume.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-# Licensed 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.
-
-
-# The configuration file needs to define the sources, 
-# the channels and the sinks.
-# Sources, channels and sinks are defined per agent, 
-# in this case called 'agent'
-
-agent.sources = twitterSrc
-#agent.sources = httpSrc
-#agent.sources = spoolSrc
-#agent.sources = avroSrc
-agent.channels = memoryChannel
-agent.sinks = solrSink
-#agent.sinks = loggerSink
-
-agent.sources.twitterSrc.type = org.apache.flume.source.twitter.TwitterSource
-agent.sources.twitterSrc.consumerKey = YOUR_TWITTER_CONSUMER_KEY
-agent.sources.twitterSrc.consumerSecret = YOUR_TWITTER_CONSUMER_SECRET
-agent.sources.twitterSrc.accessToken = YOUR_TWITTER_ACCESS_TOKEN
-agent.sources.twitterSrc.accessTokenSecret = YOUR_TWITTER_ACCESS_TOKEN_SECRET
-agent.sources.twitterSrc.maxBatchDurationMillis = 200
-agent.sources.twitterSrc.channels = memoryChannel
-
-agent.sources.httpSrc.type = org.apache.flume.source.http.HTTPSource
-agent.sources.httpSrc.port = 5140
-agent.sources.httpSrc.handler = 
org.apache.flume.sink.solr.morphline.BlobHandler
-agent.sources.httpSrc.handler.maxBlobLength = 2000000000
-#agent.sources.httpSrc.interceptors = uuidinterceptor
-#agent.sources.httpSrc.interceptors.uuidinterceptor.type = 
org.apache.flume.sink.solr.morphline.UUIDInterceptor$Builder
-#agent.sources.httpSrc.interceptors.uuidinterceptor.headerName = id
-##agent.sources.httpSrc.interceptors.uuidinterceptor.preserveExisting = false
-##agent.sources.httpSrc.interceptors.uuidinterceptor.prefix = myhostname
-agent.sources.httpSrc.channels = memoryChannel
-
-agent.sources.spoolSrc.type = spooldir
-agent.sources.spoolSrc.spoolDir = /tmp/myspooldir
-agent.sources.spoolSrc.ignorePattern = \.
-agent.sources.spoolSrc.deserializer = 
org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder
-agent.sources.spoolSrc.deserializer.maxBlobLength = 2000000000
-agent.sources.spoolSrc.batchSize = 1
-agent.sources.spoolSrc.fileHeader = true
-agent.sources.spoolSrc.fileHeaderKey = resourceName
-#agent.sources.spoolSrc.interceptors = uuidinterceptor
-#agent.sources.spoolSrc.interceptors.uuidinterceptor.type = 
org.apache.flume.sink.solr.morphline.UUIDInterceptor$Builder
-#agent.sources.spoolSrc.interceptors.uuidinterceptor.headerName = id
-##agent.sources.spoolSrc.interceptors.uuidinterceptor.preserveExisting = false
-##agent.sources.spoolSrc.interceptors.uuidinterceptor.prefix = myhostname
-agent.sources.spoolSrc.channels = memoryChannel
-
-agent.sources.avroSrc.type = avro
-agent.sources.avroSrc.bind = 127.0.0.1
-agent.sources.avroSrc.port = 10000
-agent.sources.avroSrc.channels = memoryChannel
-agent.sources.avroSrc.interceptors = uuidinterceptor
-agent.sources.avroSrc.interceptors.uuidinterceptor.type = 
org.apache.flume.sink.solr.morphline.UUIDInterceptor$Builder
-agent.sources.avroSrc.interceptors.uuidinterceptor.headerName = id
-#agent.sources.avroSrc.interceptors.uuidinterceptor.preserveExisting = false
-#agent.sources.avroSrc.interceptors.uuidinterceptor.prefix = myhostname
-#agent.sources.avroSrc.interceptors = morphlineinterceptor
-#agent.sources.avroSrc.interceptors.morphlineinterceptor.type = 
org.apache.flume.sink.solr.morphline.MorphlineInterceptor$Builder
-#agent.sources.avroSrc.interceptors.morphlineinterceptor.morphlineFile = 
/etc/flume-ng/conf/morphline.conf
-#agent.sources.avroSrc.interceptors.morphlineinterceptor.morphlineId = 
morphline1
-
-agent.channels.memoryChannel.type = memory
-agent.channels.memoryChannel.capacity = 10000
-agent.channels.memoryChannel.transactionCapacity = 1000
-
-#agent.channels.fileChannel.type = file
-#agent.channels.fileChannel.capacity = 1000000
-#agent.channels.fileChannel.transactionCapacity = 1000
-#agent.channels.fileChannel.write-timeout = 1
-
-agent.sinks.solrSink.type = 
org.apache.flume.sink.solr.morphline.MorphlineSolrSink
-agent.sinks.solrSink.channel = memoryChannel
-#agent.sinks.solrSink.batchSize = 1000
-#agent.sinks.solrSink.batchDurationMillis = 1000
-agent.sinks.solrSink.morphlineFile = /etc/flume-ng/conf/morphline.conf
-#agent.sinks.solrSink.morphlineId = morphline1
-
-#agent.sinks.loggerSink.type = logger
-#agent.sinks.loggerSink.channel = memoryChannel
diff --git a/flume-ng-sources/pom.xml b/flume-ng-sources/pom.xml
index 7e8e34356..cc4bd95ab 100644
--- a/flume-ng-sources/pom.xml
+++ b/flume-ng-sources/pom.xml
@@ -34,7 +34,6 @@ limitations under the License.
   <modules>
     <module>flume-scribe-source</module>
     <module>flume-jms-source</module>
-    <module>flume-twitter-source</module>
     <module>flume-kafka-source</module>
     <module>flume-taildir-source</module>
   </modules>
diff --git a/pom.xml b/flume-parent/pom.xml
similarity index 97%
copy from pom.xml
copy to flume-parent/pom.xml
index 0e5d1a60e..d46a7d1b8 100644
--- a/pom.xml
+++ b/flume-parent/pom.xml
@@ -124,8 +124,7 @@ limitations under the License.
     <slf4j.version>1.7.32</slf4j.version>
     <system-rules.version>1.17.0</system-rules.version>
     <thrift.version>0.14.2</thrift.version>
-    <twitter4j.version>4.0.7</twitter4j.version>
-    <twitter4j-media.version>4.0.6</twitter4j-media.version>
+    <twitter-source.version>2.0.0</twitter-source.version>
     <wiremock.version>1.53</wiremock.version>
     <zlib.version>1.1.3</zlib.version>
     <zookeeper.version>3.6.2</zookeeper.version>
@@ -133,26 +132,6 @@ limitations under the License.
     <redirectTestOutput>true</redirectTestOutput>
   </properties>
 
-  <modules>
-    <module>flume-ng-core</module>
-    <module>flume-ng-configuration</module>
-    <module>flume-ng-embedded-agent</module>
-    <module>flume-ng-sinks</module>
-    <module>flume-ng-sources</module>
-    <module>flume-ng-node</module>
-    <module>flume-ng-dist</module>
-    <module>flume-ng-channels</module>
-    <module>flume-ng-legacy-sources</module>
-    <module>flume-ng-clients</module>
-    <module>flume-ng-sdk</module>
-    <module>flume-ng-tests</module>
-    <module>flume-tools</module>
-    <module>flume-ng-auth</module>
-    <module>flume-shared</module>
-    <module>flume-ng-configfilters</module>
-    <module>build-support</module>
-  </modules>
-
   <profiles>
 
     <profile>
@@ -756,6 +735,13 @@ limitations under the License.
   <dependencyManagement>
     <dependencies>
 
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-dependencies</artifactId>
+        <version>${project.version}</version>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
       <!-- Dependencies: build -->
       <dependency>
         <groupId>junit</groupId>
@@ -1206,9 +1192,9 @@ limitations under the License.
       </dependency>
 
       <dependency>
-        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <groupId>org.apache.flume</groupId>
         <artifactId>flume-twitter-source</artifactId>
-        <version>${project.version}</version>
+        <version>${twitter-source.version}</version>
       </dependency>
 
       <dependency>
@@ -1362,23 +1348,6 @@ limitations under the License.
         <version>${solr-global.version}</version>
       </dependency>
 
-      <!-- Dependencies of the Twitter source -->
-      <dependency>
-        <groupId>org.twitter4j</groupId>
-        <artifactId>twitter4j-core</artifactId>
-        <version>${twitter4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.twitter4j</groupId>
-        <artifactId>twitter4j-media-support</artifactId>
-        <version>${twitter4j-media.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.twitter4j</groupId>
-        <artifactId>twitter4j-stream</artifactId>
-        <version>${twitter4j.version}</version>
-      </dependency>
-
       <!-- Dependencies of Kafka source -->
       <dependency>
         <groupId>org.apache.kafka</groupId>
diff --git a/pom.xml b/pom.xml
index 0e5d1a60e..13537d27f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,114 +26,15 @@ limitations under the License.
 
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.flume</groupId>
-  <artifactId>flume-parent</artifactId>
+  <artifactId>flume-project</artifactId>
   <version>1.11.1-SNAPSHOT</version>
   <packaging>pom</packaging>
 
-  <name>Apache Flume</name>
-
-  <properties>
-    <!-- Update for year of distribution. Should be set by the 
maven-release-plugin at release time. -->
-    
<project.build.outputTimestamp>2022-01-02T00:00:00Z</project.build.outputTimestamp>
-    <!-- Set default encoding to UTF-8 to remove maven complaints -->
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
-    <!-- Java compiler configuration -->
-    <sourceJavaVersion>1.8</sourceJavaVersion>
-    <targetJavaVersion>1.8</targetJavaVersion>
-
-    <!-- Signing User for release -->
-    <GPGSigningUserName>[email protected]</GPGSigningUserName>
-
-    <!-- defaults for flaky test and focused test exclusions -->
-    <test.exclude.pattern>$</test.exclude.pattern> <!-- junk pattern -->
-    <test.include.pattern>**/Test*.java</test.include.pattern>
-    <stagingDirectory>${project.basedir}/target/docs</stagingDirectory>
-
-    <activemq.version>5.7.0</activemq.version>
-    <asynchbase.version>1.8.2</asynchbase.version>
-    <avro.version>1.11.0</avro.version>
-    <bundle-plugin.version>2.3.7</bundle-plugin.version>
-    <checkstyle.tool.version>8.45.1</checkstyle.tool.version>
-    <commons-cli.version>1.5.0</commons-cli.version>
-    <commons-codec.version>1.15</commons-codec.version>
-    <commons-collections.version>3.2.2</commons-collections.version>
-    <commons-compress.version>1.21</commons-compress.version>
-    <commons-dbcp.version>1.4</commons-dbcp.version>
-    <commons-io.version>2.11.0</commons-io.version>
-    <commons-lang.version>2.6</commons-lang.version>
-    <commons-text.version>1.10.0</commons-text.version>
-    <curator.version>5.1.0</curator.version>
-    <derby.version>10.14.2.0</derby.version>
-    <dropwizard-metrics.version>4.1.18</dropwizard-metrics.version>
-    <fasterxml.jackson.version>2.13.2</fasterxml.jackson.version>
-    
<fasterxml.jackson.databind.version>2.13.2.1</fasterxml.jackson.databind.version>
-    <fest-reflect.version>1.4</fest-reflect.version>
-    <geronimo-jms.version>1.1.1</geronimo-jms.version>
-    <gson.version>2.9.1</gson.version>
-    <guava.version>18.0</guava.version>
-    <guava-old.version>11.0.2</guava-old.version>
-    <hadoop.version>2.10.1</hadoop.version>
-    <hbase.version>1.7.1</hbase.version>
-    <hbase2.version>2.4.11</hbase2.version>
-    <hive.version>1.2.2</hive.version>
-    <httpcore.version>4.4.15</httpcore.version>
-    <httpclient.version>4.5.13</httpclient.version>
-    <irclib.version>1.10</irclib.version>
-    <jersey.version>1.8</jersey.version>
-    <jetty.version>9.4.41.v20210516</jetty.version>
-    <jdom.version>1.1.3</jdom.version>
-    <joda-time.version>2.9.9</joda-time.version>
-    <junit.version>4.13.2</junit.version>
-    <kafka.version>3.3.1</kafka.version>
-    <kite.version>1.1.0</kite.version>
-    <kudu.version>1.10.0</kudu.version>
-    <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
-    <log4j.version>2.18.0</log4j.version>
-    <mapdb.version>0.9.9</mapdb.version>
-    <mina.version>2.1.5</mina.version>
-    <mockito.version>1.9.0</mockito.version>
-    <mvn-antrun-plugin.version>1.8</mvn-antrun-plugin.version>
-    <!-- Do not upgrade the assumbly plugin version until MASSEMBLY-941 is 
fixed -->
-    <mvn-assembly-plugin.version>3.1.0</mvn-assembly-plugin.version>
-    <mvn-build-helper-plugin>3.0.0</mvn-build-helper-plugin>
-    <mvn-checkstyle-plugin.version>3.1.2</mvn-checkstyle-plugin.version>
-    <mvn-checksum-plugin.version>1.7</mvn-checksum-plugin.version>
-    <mvn-clean-plugin.version>3.1.0</mvn-clean-plugin.version>
-    <mvn-compiler-plugin.version>3.8.1</mvn-compiler-plugin.version>
-    <mvn-deploy-plugin.version>2.8.2</mvn-deploy-plugin.version>
-    <mvn-gpg-plugin.version>1.6</mvn-gpg-plugin.version>
-    <mvn-jar-plugin.version>3.2.2</mvn-jar-plugin.version>
-    <mvn-javadoc-plugin.version>2.9</mvn-javadoc-plugin.version>
-    <mvn-paranamer-plugin.version>2.8</mvn-paranamer-plugin.version>
-    <mvn-pmd-plugin.version>3.15.0</mvn-pmd-plugin.version>
-    <mvn-site-plugin.version>3.7.1</mvn-site-plugin.version>
-    <mvn-spotbugs-plugin.version>4.2.0</mvn-spotbugs-plugin.version>
-    <mvn-surefire-plugin.version>2.22.2</mvn-surefire-plugin.version>
-    <!--<netty.version>3.10.6.Final</netty.version>-->
-    <netty-all.version>4.1.72.Final</netty-all.version>
-    <parquet.version>1.11.2</parquet.version>
-    <external.protobuf.version>2.5.0</external.protobuf.version>
-    <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
-    <prometheus.version>0.15.0</prometheus.version>
-    <rat.version>0.12</rat.version>
-    <scala.version>2.13</scala.version>
-    <scala-library.version>2.13.9</scala-library.version>
-    <snappy-java.version>1.1.8.4</snappy-java.version>
-    <solr-global.version>4.3.0</solr-global.version>
-    <slf4j.version>1.7.32</slf4j.version>
-    <system-rules.version>1.17.0</system-rules.version>
-    <thrift.version>0.14.2</thrift.version>
-    <twitter4j.version>4.0.7</twitter4j.version>
-    <twitter4j-media.version>4.0.6</twitter4j-media.version>
-    <wiremock.version>1.53</wiremock.version>
-    <zlib.version>1.1.3</zlib.version>
-    <zookeeper.version>3.6.2</zookeeper.version>
-    <os.maven.version>1.5.0.Final</os.maven.version>
-    <redirectTestOutput>true</redirectTestOutput>
-  </properties>
+  <name>Apache Flume Project</name>
 
   <modules>
+    <module>flume-parent</module>
+    <module>flume-bom</module>
     <module>flume-ng-core</module>
     <module>flume-ng-configuration</module>
     <module>flume-ng-embedded-agent</module>
@@ -153,1718 +54,4 @@ limitations under the License.
     <module>build-support</module>
   </modules>
 
-  <profiles>
-
-    <profile>
-      <id>compileThriftLegacy</id>
-      <activation>
-        <activeByDefault>false</activeByDefault>
-      </activation>
-      <properties>
-        <thrift.executable>${env.THRIFT_HOME}/bin/thrift</thrift.executable>
-      </properties>
-    </profile>
-
-    <profile>
-      <id>not-windows</id>
-      <activation>
-        <os>
-          <family>!Windows</family>
-        </os>
-      </activation>
-    </profile>
-
-    <profile>
-      <id>windows</id>
-      <activation>
-        <os>
-          <family>Windows</family>
-        </os>
-      </activation>
-    </profile>
-
-    <profile>
-      <id>sign</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-gpg-plugin</artifactId>
-            <executions>
-              <execution>
-                <phase>verify</phase>
-                <goals>
-                  <goal>sign</goal>
-                </goals>
-                <configuration>
-                  <keyname>${GPGSigningUserName}</keyname>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-
-    <profile>
-      <id>site</id>
-
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-javadoc-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>javadoc-jar</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>aggregate-jar</goal>
-                </goals>
-              </execution>
-            </executions>
-            <configuration>
-              <additionalparam>-Xdoclint:none</additionalparam>
-            </configuration>
-          </plugin>
-
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-site-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>flume-site</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>site</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-
-    </profile>
-
-    <profile>
-      <id>skipChecks</id>
-      <properties>
-        <checkstyle.skip>true</checkstyle.skip>
-        <spotbugs.skip>true</spotbugs.skip>
-        <pmd.skip>true</pmd.skip>
-        <rat.skip>true</rat.skip>
-      </properties>
-
-    </profile>
-  </profiles>
-
-  <inceptionYear>2009</inceptionYear>
-
-  <issueManagement>
-    <system>JIRA</system>
-    <url>https://issues.apache.org/jira/browse/FLUME</url>
-  </issueManagement>
-
-  <licenses>
-    <license>
-      <name>The Apache Software License, Version 2.0</name>
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-    </license>
-  </licenses>
-
-  <mailingLists>
-    <mailingList>
-      <archive>http://mail-archives.apache.org/mod_mbox/flume-user/</archive>
-      <name>Flume User List</name>
-      <post>[email protected]</post>
-      <subscribe>[email protected]</subscribe>
-      <unsubscribe>[email protected]</unsubscribe>
-    </mailingList>
-    <mailingList>
-      <archive>http://mail-archives.apache.org/mod_mbox/flume-dev/</archive>
-      <name>Flume Developer List</name>
-      <post>[email protected]</post>
-      <subscribe>[email protected]</subscribe>
-      <unsubscribe>[email protected]</unsubscribe>
-    </mailingList>
-    <mailingList>
-      
<archive>http://mail-archives.apache.org/mod_mbox/flume-commits/</archive>
-      <name>Flume Commits</name>
-      <post>[email protected]</post>
-      <subscribe>[email protected]</subscribe>
-      <unsubscribe>[email protected]</unsubscribe>
-    </mailingList>
-  </mailingLists>
-
-  <scm>
-    
<url>https://git-wip-us.apache.org/repos/asf?p=flume.git;a=tree;h=refs/heads/trunk;hb=trunk</url>
-    
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/flume.git</developerConnection>
-    
<connection>scm:git:http://git-wip-us.apache.org/repos/asf/flume.git</connection>
-  </scm>
-
-  <ciManagement>
-    <system>jenkins</system>
-    <url>https://builds.apache.org/job/flume-trunk</url>
-  </ciManagement>
-
-  <developers>
-    <developer>
-      <name>Andrew Bayer</name>
-      <id>abayer</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Ahmed Radwan</name>
-      <id>ahmed</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Arvind Prabhakar</name>
-      <id>arvind</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Brock Noland</name>
-      <id>brock</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Bruce Mitchener</name>
-      <id>brucem</id>
-      <email>[email protected]</email>
-      <organization>-</organization>
-    </developer>
-    <developer>
-      <name>Derek Deeter</name>
-      <id>ddeeter</id>
-      <email>[email protected]</email>
-      <organization>Intuit</organization>
-    </developer>
-    <developer>
-      <name>Eric Sammer</name>
-      <id>esammer</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Henry Robinson</name>
-      <id>henry</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Hari Shreedharan</name>
-      <id>hshreedharan</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Jaroslav Cecho</name>
-      <id>jarcec</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Jonathan Hsieh</name>
-      <id>jmhsieh</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Juhani Connolly</name>
-      <id>juhanic</id>
-      <email>[email protected]</email>
-      <organization>CyberAgent</organization>
-    </developer>
-    <developer>
-      <name>Aaron Kimball</name>
-      <id>kimballa</id>
-      <email>[email protected]</email>
-      <organization>Odiago</organization>
-    </developer>
-    <developer>
-      <name>Mingjie Lai</name>
-      <id>mlai</id>
-      <email>[email protected]</email>
-      <organization>Trend Micro</organization>
-    </developer>
-    <developer>
-      <name>Mike Percy</name>
-      <id>mpercy</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Nick Verbeck</name>
-      <id>nerdynick</id>
-      <email>[email protected]</email>
-      <organization>-</organization>
-    </developer>
-    <developer>
-      <name>Patrick Hunt</name>
-      <id>phunt</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Prasad Mujumdar</name>
-      <id>prasadm</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Ralph Goers</name>
-      <id>rgoers</id>
-      <email>[email protected]</email>
-      <organization>Intuit</organization>
-    </developer>
-    <developer>
-      <name>Will McQueen</name>
-      <id>will</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Roshan</name>
-      <id>roshannaik</id>
-      <email>[email protected]</email>
-      <organization>Hortonworks</organization>
-    </developer>
-  </developers>
-
-  <organization>
-    <name>Apache Software Foundation</name>
-    <url>http://www.apache.org</url>
-  </organization>
-
-  <build>
-    <extensions>
-      <extension>
-        <groupId>kr.motd.maven</groupId>
-        <artifactId>os-maven-plugin</artifactId>
-        <version>${os.maven.version}</version>
-      </extension>
-    </extensions>
-    <plugins>
-
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <dependencies>
-          <dependency>
-            <groupId>com.puppycrawl.tools</groupId>
-            <artifactId>checkstyle</artifactId>
-            <version>${checkstyle.tool.version}</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-      <plugin>
-        <groupId>com.github.spotbugs</groupId>
-        <artifactId>spotbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
-    </plugins>
-
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-antrun-plugin</artifactId>
-          <version>${mvn-antrun-plugin.version}</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-gpg-plugin</artifactId>
-          <version>${mvn-gpg-plugin.version}</version>
-          <configuration>
-              <excludes>
-                  <exclude>**/*.sha512</exclude>
-              </excludes>
-            <keyname>${GPGSigningUserName}</keyname>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>${mvn-compiler-plugin.version}</version>
-          <configuration>
-            <source>${sourceJavaVersion}</source>
-            <target>${targetJavaVersion}</target>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>${mvn-jar-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>default-jar</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-              <configuration>
-                <archive>
-                  <manifestEntries>
-                    <Specification-Title>${project.name}</Specification-Title>
-                    
<Specification-Version>${project.version}</Specification-Version>
-                    
<Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                    
<Implementation-Title>${project.name}</Implementation-Title>
-                    
<Implementation-Version>${project.version}</Implementation-Version>
-                    
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                    
<Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
-                    
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
-                    
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
-                  </manifestEntries>
-                </archive>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.xolstice.maven.plugins</groupId>
-          <artifactId>protobuf-maven-plugin</artifactId>
-          <version>${protobuf.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${mvn-surefire-plugin.version}</version>
-          <configuration>
-            <reuseForks>false</reuseForks>
-            <forkCount>1</forkCount>
-            <!--<rerunFailingTestsCount>10</rerunFailingTestsCount>-->
-            <forkedProcessTimeoutInSeconds>900</forkedProcessTimeoutInSeconds>
-            
<redirectTestOutputToFile>${redirectTestOutput}</redirectTestOutputToFile>
-            <argLine>-Djava.net.preferIPv4Stack=true</argLine>
-            <includes>
-              <include>${test.include.pattern}</include>
-            </includes>
-            <excludes>
-              <exclude>**/*$*</exclude>
-              <exclude>${test.exclude.pattern}</exclude>
-            </excludes>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.rat</groupId>
-          <artifactId>apache-rat-plugin</artifactId>
-          <version>${rat.version}</version>
-          <configuration>
-            <excludes>
-              <exclude>**/.idea/</exclude>
-              <exclude>**/*.iml</exclude>
-              <exclude>src/main/resources/META-INF/services/**/*</exclude>
-              <exclude>**/nb-configuration.xml</exclude>
-              <exclude>.git/</exclude>
-              <exclude>patchprocess/</exclude>
-              <exclude>.gitignore</exclude>
-              <exclude>**/*.yml</exclude>
-              <exclude>**/*.yaml</exclude>
-              <exclude>**/*.json</exclude>
-              <!-- ASF jenkins box puts the Maven repo in our root directory. 
-->
-              <exclude>.repository/</exclude>
-              <exclude>**/*.diff</exclude>
-              <exclude>**/*.patch</exclude>
-              <exclude>**/*.avsc</exclude>
-              <exclude>**/*.avro</exclude>
-              <exclude>**/docs/**</exclude>
-              <exclude>**/test/resources/**</exclude>
-              <exclude>**/.settings/*</exclude>
-              <exclude>**/.classpath</exclude>
-              <exclude>**/.project</exclude>
-              <exclude>**/target/**</exclude>
-              <exclude>**/derby.log</exclude>
-              <exclude>**/metastore_db/</exclude>
-              <exclude>.mvn/**</exclude>
-              <exclude>**/exclude-pmd.properties</exclude>
-            </excludes>
-            <consoleOutput>true</consoleOutput>
-          </configuration>
-          <executions>
-            <execution>
-              <id>verify.rat</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>${mvn-checkstyle-plugin.version}</version>
-          <dependencies>
-            <!-- The build-support module adds the checkstyle config files to 
the classpath. -->
-            <dependency>
-              <groupId>org.apache.flume</groupId>
-              <artifactId>build-support</artifactId>
-              <version>${project.version}</version>
-            </dependency>
-            <!-- Newer versions of puppycrawl checkstyle have more features. 
Pull in a more recent
-                 version than is specified in the maven-checkstyle-plugin pom 
file. -->
-            <dependency>
-              <groupId>com.puppycrawl.tools</groupId>
-              <artifactId>checkstyle</artifactId>
-              <version>${checkstyle.tool.version}</version>
-            </dependency>
-          </dependencies>
-          <executions>
-            <execution>
-              <id>verify.checkstyle</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <configLocation>config/checkstyle/checkstyle.xml</configLocation>
-            
<suppressionsLocation>config/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
-            
<suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
-            <encoding>UTF-8</encoding>
-            <includeTestSourceDirectory>true</includeTestSourceDirectory>
-            <linkXRef>false</linkXRef>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>${mvn-javadoc-plugin.version}</version>
-          <configuration>
-            
<outputDirectory>${project.build.directory}/site/apidocs</outputDirectory>
-            <!-- switch on dependency-driven aggregation -->
-            <includeDependencySources>true</includeDependencySources>
-
-            <dependencySourceIncludes>
-              <!-- include ONLY flume multi-module dependencies -->
-              
<dependencySourceInclude>org.apache.flume:*</dependencySourceInclude>
-            </dependencySourceIncludes>
-            <additionalparam>-Xdoclint:none</additionalparam>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-assembly-plugin</artifactId>
-          <version>${mvn-assembly-plugin.version}</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.avro</groupId>
-          <artifactId>avro-maven-plugin</artifactId>
-          <version>${avro.version}</version>
-        </plugin>
-
-        <plugin>
-          <groupId>com.thoughtworks.paranamer</groupId>
-          <artifactId>paranamer-maven-plugin</artifactId>
-          <version>${mvn-paranamer-plugin.version}</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>${mvn-site-plugin.version}</version>
-          <configuration>
-            <siteDirectory>${project.basedir}/flume-ng-doc</siteDirectory>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>${mvn-clean-plugin.version}</version>
-          <configuration>
-            <filesets>
-              <fileset>
-                <directory>docs</directory>
-                <includes>
-                  <include>**</include>
-                </includes>
-              </fileset>
-            </filesets>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>com.github.spotbugs</groupId>
-          <artifactId>spotbugs-maven-plugin</artifactId>
-          <version>${mvn-spotbugs-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>verify.spotbugs</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <effort>Max</effort>
-            <threshold>Low</threshold>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-pmd-plugin</artifactId>
-          <version>${mvn-pmd-plugin.version}</version>
-          <configuration>
-            <targetJdk>${targetJavaVersion}</targetJdk>
-            <excludeRoots>
-              
<excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
-            </excludeRoots>
-          </configuration>
-          <executions>
-            <execution>
-              <id>verify.pmd</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <plugin>
-          <groupId>net.nicoulaj.maven.plugins</groupId>
-          <artifactId>checksum-maven-plugin</artifactId>
-          <version>${mvn-checksum-plugin.version}</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-
-  </build>
-
-  <dependencyManagement>
-    <dependencies>
-
-      <!-- Dependencies: build -->
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.mockito</groupId>
-        <artifactId>mockito-all</artifactId>
-        <version>${mockito.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.easytesting</groupId>
-        <artifactId>fest-reflect</artifactId>
-        <version>${fest-reflect.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>com.github.stefanbirkner</groupId>
-        <artifactId>system-rules</artifactId>
-        <version>${system-rules.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-minikdc</artifactId>
-        <version>${hadoop.version}</version>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-          <exclusion>
-            <!-- exclude this from hadoop minikdc as the minikdc depends on
-            the apacheds-jdbm1 bundle, which is not available in maven 
central-->
-            <groupId>org.apache.directory.jdbm</groupId>
-            <artifactId>apacheds-jdbm1</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <!-- add this to satisfy the dependency requirement of apacheds-jdbm1 
in minikdc-->
-        <groupId>org.apache.directory.jdbm</groupId>
-        <artifactId>apacheds-jdbm1</artifactId>
-        <version>2.0.0-M2</version>
-        <scope>test</scope>
-      </dependency>
-
-      <!-- Dependencies: compile -->
-
-      <dependency>
-        <groupId>commons-cli</groupId>
-        <artifactId>commons-cli</artifactId>
-        <version>${commons-cli.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-lang</groupId>
-        <artifactId>commons-lang</artifactId>
-        <version>${commons-lang.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-text</artifactId>
-        <version>${commons-text.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.google.guava</groupId>
-        <artifactId>guava</artifactId>
-        <version>${guava-old.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-api</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-slf4j-impl</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-1.2-api</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jcl</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-jul</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.avro</groupId>
-        <artifactId>avro</artifactId>
-        <version>${avro.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.avro</groupId>
-        <artifactId>avro-compiler</artifactId>
-        <version>${avro.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.avro</groupId>
-        <artifactId>avro-ipc-netty</artifactId>
-        <version>${avro.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>io.netty</groupId>
-            <artifactId>netty</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.avro</groupId>
-        <artifactId>avro-ipc-jetty</artifactId>
-        <version>${avro.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.mortbay.jetty</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.thrift</groupId>
-        <artifactId>libthrift</artifactId>
-        <version>${thrift.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>com.google.protobuf</groupId>
-        <artifactId>protobuf-java</artifactId>
-        <scope>compile</scope>
-        <version>${external.protobuf.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-servlet</artifactId>
-        <version>${jetty.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-util</artifactId>
-        <version>${jetty.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-server</artifactId>
-        <version>${jetty.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.eclipse.jetty</groupId>
-        <artifactId>jetty-jmx</artifactId>
-        <version>${jetty.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient</artifactId>
-        <version>${httpclient.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpcore</artifactId>
-        <version>${httpcore.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.mapdb</groupId>
-        <artifactId>mapdb</artifactId>
-        <version>${mapdb.version}</version>
-      </dependency>
-
-      <!--  Gson: Java to Json conversion -->
-      <dependency>
-        <groupId>com.google.code.gson</groupId>
-        <artifactId>gson</artifactId>
-        <version>${gson.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>${commons-codec.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>${commons-io.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-dbcp</groupId>
-        <artifactId>commons-dbcp</artifactId>
-        <version>${commons-dbcp.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>commons-collections</groupId>
-        <artifactId>commons-collections</artifactId>
-        <version>${commons-collections.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.derby</groupId>
-        <artifactId>derby</artifactId>
-        <version>${derby.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-annotations</artifactId>
-        <version>${fasterxml.jackson.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-core</artifactId>
-        <version>${fasterxml.jackson.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.fasterxml.jackson.core</groupId>
-        <artifactId>jackson-databind</artifactId>
-        <version>${fasterxml.jackson.databind.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.schwering</groupId>
-        <artifactId>irclib</artifactId>
-        <version>${irclib.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>joda-time</groupId>
-        <artifactId>joda-time</artifactId>
-        <version>${joda-time.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.geronimo.specs</groupId>
-        <artifactId>geronimo-jms_1.1_spec</artifactId>
-        <version>${geronimo-jms.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.activemq</groupId>
-        <artifactId>activemq-core</artifactId>
-        <version>${activemq.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.jcraft</groupId>
-        <artifactId>jzlib</artifactId>
-        <version>${zlib.version}</version>
-      </dependency>
-
-      <!-- internal module dependencies -->
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-configuration</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-core</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>build-support</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-tools</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-node</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-file-channel</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-jdbc-channel</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-kafka-channel</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-channels</groupId>
-        <artifactId>flume-spillable-memory-channel</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-shared</groupId>
-        <artifactId>flume-shared-kafka</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-shared</groupId>
-        <artifactId>flume-shared-kafka-test</artifactId>
-        <version>${project.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-hdfs-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-hive-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-http-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-irc-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-ng-hbase-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-ng-hbase2-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-ng-morphline-solr-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-ng-kafka-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-ng-kafka-sink</artifactId>
-        <version>${project.version}</version>
-        <classifier>tests</classifier>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sinks</groupId>
-        <artifactId>flume-dataset-sink</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sources</groupId>
-        <artifactId>flume-scribe-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sources</groupId>
-        <artifactId>flume-jms-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sources</groupId>
-        <artifactId>flume-twitter-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-legacy-sources</groupId>
-        <artifactId>flume-thrift-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sources</groupId>
-        <artifactId>flume-kafka-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-legacy-sources</groupId>
-        <artifactId>flume-avro-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-sdk</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-sources</groupId>
-        <artifactId>flume-taildir-source</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-sdk</artifactId>
-        <version>${project.version}</version>
-        <classifier>tests</classifier>
-        <scope>test</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-auth</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-clients</groupId>
-        <artifactId>flume-ng-log4jappender</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume.flume-ng-clients</groupId>
-        <artifactId>flume-ng-log4jappender</artifactId>
-        <version>${project.version}</version>
-        <classifier>jar-with-dependencies</classifier>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-embedded-agent</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-environment-variable-config-filter</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-hadoop-credential-store-config-filter</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-external-process-config-filter</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.flume</groupId>
-        <artifactId>flume-ng-config-filter-api</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>com.sun.jersey</groupId>
-        <artifactId>jersey-core</artifactId>
-        <version>${jersey.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>${commons-compress.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.mina</groupId>
-        <artifactId>mina-core</artifactId>
-        <version>${mina.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.hbase</groupId>
-        <artifactId>asynchbase</artifactId>
-        <version>${asynchbase.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>log4j-over-slf4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.jboss.netty</groupId>
-            <artifactId>netty</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <!--<dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty</artifactId>
-        <version>${netty.version}</version>
-      </dependency>-->
-
-      <dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty-all</artifactId>
-        <version>${netty-all.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>io.prometheus</groupId>
-        <artifactId>simpleclient</artifactId>
-        <version>${prometheus.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>io.prometheus</groupId>
-        <artifactId>simpleclient_servlet</artifactId>
-        <version>${prometheus.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.solr</groupId>
-        <artifactId>solr-cell</artifactId>
-        <version>${solr-global.version}</version>
-      </dependency>
-
-      <!-- Dependencies of the Twitter source -->
-      <dependency>
-        <groupId>org.twitter4j</groupId>
-        <artifactId>twitter4j-core</artifactId>
-        <version>${twitter4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.twitter4j</groupId>
-        <artifactId>twitter4j-media-support</artifactId>
-        <version>${twitter4j-media.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.twitter4j</groupId>
-        <artifactId>twitter4j-stream</artifactId>
-        <version>${twitter4j.version}</version>
-      </dependency>
-
-      <!-- Dependencies of Kafka source -->
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka_${scala.version}</artifactId>
-        <version>${kafka.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka_${scala.version}</artifactId>
-        <version>${kafka.version}</version>
-        <classifier>test</classifier>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kafka</groupId>
-        <artifactId>kafka-clients</artifactId>
-        <version>${kafka.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.scala-lang</groupId>
-        <artifactId>scala-library</artifactId>
-        <version>${scala-library.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.xerial.snappy</groupId>
-        <artifactId>snappy-java</artifactId>
-        <version>${snappy-java.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hive.hcatalog</groupId>
-        <artifactId>hive-hcatalog-streaming</artifactId>
-        <version>${hive.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hive.hcatalog</groupId>
-        <artifactId>hive-hcatalog-core</artifactId>
-        <version>${hive.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hive</groupId>
-        <artifactId>hive-cli</artifactId>
-        <version>${hive.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <!-- Dependency for Zk provider -->
-      <dependency>
-        <groupId>org.apache.curator</groupId>
-        <artifactId>curator-framework</artifactId>
-        <version>${curator.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.curator</groupId>
-        <artifactId>curator-recipes</artifactId>
-        <version>${curator.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.curator</groupId>
-        <artifactId>curator-test</artifactId>
-        <version>${curator.version}</version>
-        <scope>test</scope>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-common</artifactId>
-        <version>${hadoop.version}</version>
-        <optional>true</optional>
-        <exclusions>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-compiler</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-runtime</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-hdfs</artifactId>
-        <version>${hadoop.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-compiler</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-runtime</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-minicluster</artifactId>
-        <scope>test</scope>
-        <version>${hadoop.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-compiler</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-runtime</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-client</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-annotations</artifactId>
-        <version>${hadoop.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-auth</artifactId>
-        <version>${hadoop.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.hadoop</groupId>
-        <artifactId>hadoop-mapreduce-client-core</artifactId>
-        <scope>test</scope>
-        <version>${hadoop.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <!-- Ideally this should be optional, but making it optional causes
-      build to fail.
-      -->
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-client</artifactId>
-        <version>${hbase.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-client</artifactId>
-        <version>${hbase.version}</version>
-        <classifier>tests</classifier>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-testing-util</artifactId>
-        <version>${hbase.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <!-- There should be no need for Flume to include the following two
-       artifacts, but HBase pom has a bug which causes these to not get
-       pulled in. So we have to pull it in. Ideally this should be optional,
-       but making it optional causes build to fail.
-      -->
-
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-common</artifactId>
-        <version>${hbase.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-common</artifactId>
-        <version>${hbase.version}</version>
-        <classifier>tests</classifier>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-server</artifactId>
-        <version>${hbase.version}</version>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-compiler</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-runtime</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.hbase</groupId>
-        <artifactId>hbase-server</artifactId>
-        <version>${hbase.version}</version>
-        <classifier>tests</classifier>
-        <scope>test</scope>
-        <exclusions>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-compiler</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>tomcat</groupId>
-            <artifactId>jasper-runtime</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.apache.zookeeper</groupId>
-        <artifactId>zookeeper</artifactId>
-        <version>${zookeeper.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>org.jdom</groupId>
-        <artifactId>jdom</artifactId>
-        <version>${jdom.version}</version>
-      </dependency>
-
-      <dependency>
-        <groupId>io.dropwizard.metrics</groupId>
-        <artifactId>metrics-core</artifactId>
-        <version>${dropwizard-metrics.version}</version>
-      </dependency>
-
-      <!-- Required for the morphlines-solr-sink via the kite-sdk -->
-      <dependency>
-        <groupId>org.apache.parquet</groupId>
-        <artifactId>parquet-hive-bundle</artifactId>
-        <version>${parquet.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-core</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.parquet</groupId>
-        <artifactId>parquet-avro</artifactId>
-        <version>${parquet.version}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.hadoop</groupId>
-            <artifactId>hadoop-core</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-
-      <dependency>
-        <groupId>net.jcip</groupId>
-        <artifactId>jcip-annotations</artifactId>
-        <version>1.0</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>com.github.spotbugs</groupId>
-        <artifactId>spotbugs-annotations</artifactId>
-        <version>${mvn-spotbugs-plugin.version}</version>
-        <optional>true</optional>
-      </dependency>
-      <dependency>
-        <groupId>org.mock-server</groupId>
-        <artifactId>mockserver-netty</artifactId>
-        <version>3.10.8</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.mock-server</groupId>
-        <artifactId>mockserver-client-java</artifactId>
-        <version>3.10.8</version>
-        <scope>test</scope>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>ci-management</report>
-              <report>distribution-management</report>
-              <report>team</report>
-              <report>mailing-lists</report>
-              <report>issue-management</report>
-              <report>licenses</report>
-              <report>scm</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>com.github.spotbugs</groupId>
-        <artifactId>spotbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-
 </project>

Reply via email to