You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2026/05/19 18:25:05 UTC
(logging-flume) branch feat/remove-morphline created (now 33c33e053)
This is an automated email from the ASF dual-hosted git repository.
ppkarwasz pushed a change to branch feat/remove-morphline
in repository https://gitbox.apache.org/repos/asf/logging-flume.git
at 33c33e053 FLUME-3466: Remove morphline-solr-sink module (moved to its own repo)
This branch includes the following new commits:
new 33c33e053 FLUME-3466: Remove morphline-solr-sink module (moved to its own repo)
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(logging-flume) 01/01: FLUME-3466: Remove morphline-solr-sink module (moved to its own repo)
Posted by pk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ppkarwasz pushed a commit to branch feat/remove-morphline
in repository https://gitbox.apache.org/repos/asf/logging-flume.git
commit 33c33e0538f348a371b7935f3b9a3d90f4e01e92
Author: Piotr P. Karwasz <pk...@apache.org>
AuthorDate: Tue May 19 20:21:16 2026 +0200
FLUME-3466: Remove morphline-solr-sink module (moved to its own repo)
The Morphline Solr Sink has been split out of the Flume monorepo into
its own repository:
https://github.com/apache/logging-flume-morphline
This removes the duplicated in-tree copy under `flume-ng-sinks/flume-ng-morphline-solr-sink`.
---
flume-bom/pom.xml | 8 +-
flume-ng-dist/pom.xml | 4 +-
.../flume-ng-morphline-solr-sink/README.md | 20 -
.../flume-ng-morphline-solr-sink/pom.xml | 186 --
.../sink/solr/morphline/BlobDeserializer.java | 161 --
.../flume/sink/solr/morphline/BlobHandler.java | 129 --
.../sink/solr/morphline/MorphlineHandler.java | 62 -
.../sink/solr/morphline/MorphlineHandlerImpl.java | 163 --
.../sink/solr/morphline/MorphlineInterceptor.java | 239 ---
.../flume/sink/solr/morphline/MorphlineSink.java | 211 ---
.../sink/solr/morphline/MorphlineSolrSink.java | 48 -
.../flume/sink/solr/morphline/UUIDInterceptor.java | 114 --
.../src/test/appended-resources/META-INF/LICENSE | 42 -
.../flume/sink/solr/morphline/EmbeddedSource.java | 45 -
.../morphline/FlumeHttpServletRequestWrapper.java | 424 -----
.../morphline/ResettableTestStringInputStream.java | 89 -
.../sink/solr/morphline/TestBlobDeserializer.java | 122 --
.../flume/sink/solr/morphline/TestBlobHandler.java | 60 -
.../flume/sink/solr/morphline/TestEnvironment.java | 33 -
.../solr/morphline/TestMorphlineInterceptor.java | 167 --
.../sink/solr/morphline/TestMorphlineSolrSink.java | 450 -----
.../sink/solr/morphline/TestUUIDInterceptor.java | 63 -
.../src/test/resources/custom-mimetypes.xml | 38 -
.../src/test/resources/log4j2.xml | 38 -
.../resources/solr/collection1/conf/currency.xml | 67 -
.../resources/solr/collection1/conf/elevate.xml | 38 -
.../solr/collection1/conf/lang/contractions_ca.txt | 8 -
.../solr/collection1/conf/lang/contractions_fr.txt | 9 -
.../solr/collection1/conf/lang/contractions_ga.txt | 5 -
.../solr/collection1/conf/lang/contractions_it.txt | 23 -
.../solr/collection1/conf/lang/hyphenations_ga.txt | 5 -
.../solr/collection1/conf/lang/stemdict_nl.txt | 6 -
.../solr/collection1/conf/lang/stoptags_ja.txt | 420 -----
.../solr/collection1/conf/lang/stopwords_ar.txt | 125 --
.../solr/collection1/conf/lang/stopwords_bg.txt | 193 ---
.../solr/collection1/conf/lang/stopwords_ca.txt | 220 ---
.../solr/collection1/conf/lang/stopwords_cz.txt | 172 --
.../solr/collection1/conf/lang/stopwords_da.txt | 108 --
.../solr/collection1/conf/lang/stopwords_de.txt | 292 ----
.../solr/collection1/conf/lang/stopwords_el.txt | 78 -
.../solr/collection1/conf/lang/stopwords_en.txt | 54 -
.../solr/collection1/conf/lang/stopwords_es.txt | 354 ----
.../solr/collection1/conf/lang/stopwords_eu.txt | 99 --
.../solr/collection1/conf/lang/stopwords_fa.txt | 313 ----
.../solr/collection1/conf/lang/stopwords_fi.txt | 95 -
.../solr/collection1/conf/lang/stopwords_fr.txt | 183 --
.../solr/collection1/conf/lang/stopwords_ga.txt | 110 --
.../solr/collection1/conf/lang/stopwords_gl.txt | 161 --
.../solr/collection1/conf/lang/stopwords_hi.txt | 235 ---
.../solr/collection1/conf/lang/stopwords_hu.txt | 209 ---
.../solr/collection1/conf/lang/stopwords_hy.txt | 46 -
.../solr/collection1/conf/lang/stopwords_id.txt | 359 ----
.../solr/collection1/conf/lang/stopwords_it.txt | 301 ----
.../solr/collection1/conf/lang/stopwords_ja.txt | 127 --
.../solr/collection1/conf/lang/stopwords_lv.txt | 172 --
.../solr/collection1/conf/lang/stopwords_nl.txt | 117 --
.../solr/collection1/conf/lang/stopwords_no.txt | 192 --
.../solr/collection1/conf/lang/stopwords_pt.txt | 251 ---
.../solr/collection1/conf/lang/stopwords_ro.txt | 233 ---
.../solr/collection1/conf/lang/stopwords_ru.txt | 241 ---
.../solr/collection1/conf/lang/stopwords_sv.txt | 131 --
.../solr/collection1/conf/lang/stopwords_th.txt | 119 --
.../solr/collection1/conf/lang/stopwords_tr.txt | 212 ---
.../solr/collection1/conf/lang/userdict_ja.txt | 29 -
.../resources/solr/collection1/conf/protwords.txt | 21 -
.../resources/solr/collection1/conf/schema.xml | 947 ----------
.../resources/solr/collection1/conf/solrconfig.xml | 1828 --------------------
.../resources/solr/collection1/conf/stopwords.txt | 14 -
.../resources/solr/collection1/conf/synonyms.txt | 29 -
.../test/resources/test-documents/NullHeader.docx | Bin 4355 -> 0 bytes
.../test/resources/test-documents/boilerplate.html | 41 -
.../src/test/resources/test-documents/cars.csv | 6 -
.../src/test/resources/test-documents/cars.csv.gz | Bin 167 -> 0 bytes
.../src/test/resources/test-documents/cars.ssv | 6 -
.../src/test/resources/test-documents/cars.tar.gz | Bin 10240 -> 0 bytes
.../src/test/resources/test-documents/cars.tsv | 6 -
.../src/test/resources/test-documents/complex.mbox | 291 ----
.../test-documents/multiline-sessions.log | 9 -
.../multiline-stacktrace-expected-long-event.log | 25 -
.../test-documents/multiline-stacktrace.log | 30 -
...length-delimited-20130430-234145-tweets.json.gz | Bin 955 -> 0 bytes
.../src/test/resources/test-documents/rsstest.rss | 36 -
.../test-documents/sample-statuses-20120906-141433 | 4 -
.../sample-statuses-20120906-141433-medium.avro | Bin 249540 -> 0 bytes
.../sample-statuses-20120906-141433-subschema.avsc | 12 -
.../sample-statuses-20120906-141433.avro | Bin 1208 -> 0 bytes
.../sample-statuses-20120906-141433.avsc | 57 -
.../sample-statuses-20120906-141433.bz2 | Bin 1054 -> 0 bytes
.../sample-statuses-20120906-141433.gz | Bin 907 -> 0 bytes
.../resources/test-documents/test-documents.7z | Bin 71931 -> 0 bytes
.../resources/test-documents/test-documents.cpio | Bin 116224 -> 0 bytes
.../resources/test-documents/test-documents.tar | Bin 133120 -> 0 bytes
.../resources/test-documents/test-documents.tbz2 | Bin 71127 -> 0 bytes
.../resources/test-documents/test-documents.tgz | Bin 69060 -> 0 bytes
.../resources/test-documents/test-documents.zip | Bin 68403 -> 0 bytes
.../test/resources/test-documents/test-outlook.msg | Bin 19968 -> 0 bytes
.../resources/test-documents/test-zip-of-zip.zip | Bin 299 -> 0 bytes
.../src/test/resources/test-documents/testAIFF.aif | Bin 3894 -> 0 bytes
.../src/test/resources/test-documents/testBMP.bmp | Bin 22554 -> 0 bytes
.../test/resources/test-documents/testBMPfp.txt | 3 -
.../test/resources/test-documents/testDITA.dita | 34 -
.../test/resources/test-documents/testEMLX.emlx | 55 -
.../test/resources/test-documents/testEXCEL.xls | Bin 13824 -> 0 bytes
.../test/resources/test-documents/testEXCEL.xlsx | Bin 9453 -> 0 bytes
.../test/resources/test-documents/testFLAC.flac | Bin 10604 -> 0 bytes
.../src/test/resources/test-documents/testFLAC.oga | Bin 10820 -> 0 bytes
.../src/test/resources/test-documents/testFLV.flv | Bin 90580 -> 0 bytes
.../src/test/resources/test-documents/testGIF.gif | Bin 8495 -> 0 bytes
.../src/test/resources/test-documents/testJAR.jar | Bin 441 -> 0 bytes
.../resources/test-documents/testJPEG_EXIF.jpg | Bin 16357 -> 0 bytes
.../resources/test-documents/testJPEG_EXIF.jpg.gz | Bin 8595 -> 0 bytes
.../test-documents/testJPEG_EXIF.jpg.tar.gz | Bin 8722 -> 0 bytes
.../src/test/resources/test-documents/testKML.kml | 917 ----------
.../test/resources/test-documents/testKeynote.key | Bin 221745 -> 0 bytes
.../test/resources/test-documents/testMP3i18n.mp3 | Bin 40832 -> 0 bytes
.../src/test/resources/test-documents/testMP4.m4a | Bin 4770 -> 0 bytes
.../resources/test-documents/testNumbers.numbers | Bin 134571 -> 0 bytes
.../src/test/resources/test-documents/testPDF.pdf | Bin 34824 -> 0 bytes
.../src/test/resources/test-documents/testPNG.png | Bin 17041 -> 0 bytes
.../src/test/resources/test-documents/testPPM.ppm | 4 -
.../resources/test-documents/testPPT_various.ppt | Bin 164352 -> 0 bytes
.../resources/test-documents/testPPT_various.pptx | Bin 56659 -> 0 bytes
.../src/test/resources/test-documents/testPSD.psd | Bin 69410 -> 0 bytes
.../test/resources/test-documents/testPages.pages | Bin 134152 -> 0 bytes
.../src/test/resources/test-documents/testRDF.rdf | 23 -
.../src/test/resources/test-documents/testRFC822 | 41 -
.../resources/test-documents/testRTFVarious.rtf | 329 ----
.../src/test/resources/test-documents/testSVG.svg | 7 -
.../src/test/resources/test-documents/testTIFF.tif | Bin 25584 -> 0 bytes
.../test/resources/test-documents/testTrueType.ttf | Bin 98724 -> 0 bytes
.../test/resources/test-documents/testVISIO.vsd | Bin 45568 -> 0 bytes
.../test/resources/test-documents/testVORBIS.ogg | Bin 4241 -> 0 bytes
.../src/test/resources/test-documents/testWAR.war | Bin 1003 -> 0 bytes
.../src/test/resources/test-documents/testWAV.wav | Bin 3884 -> 0 bytes
.../test/resources/test-documents/testWINMAIL.dat | Bin 66276 -> 0 bytes
.../src/test/resources/test-documents/testWMA.wma | Bin 27747 -> 0 bytes
.../src/test/resources/test-documents/testWMF.wmf | Bin 51590 -> 0 bytes
.../src/test/resources/test-documents/testWMV.wmv | Bin 113878 -> 0 bytes
.../resources/test-documents/testWORD_various.doc | Bin 35328 -> 0 bytes
.../test-documents/testWindows-x86-32.exe | Bin 11723 -> 0 bytes
.../src/test/resources/test-documents/testXML.xml | 48 -
.../test-morphlines/grokIfNotMatchDropRecord.conf | 75 -
.../test-morphlines/ifDetectMimeType.conf | 74 -
.../resources/test-morphlines/noOperation.conf | 27 -
.../test/resources/test-morphlines/readClob.conf | 32 -
.../test-morphlines/solrCellDocumentTypes.conf | 260 ---
flume-ng-sinks/pom.xml | 1 -
147 files changed, 6 insertions(+), 14314 deletions(-)
diff --git a/flume-bom/pom.xml b/flume-bom/pom.xml
index 2d803c846..d05d2aff0 100644
--- a/flume-bom/pom.xml
+++ b/flume-bom/pom.xml
@@ -45,7 +45,7 @@ limitations under the License.
<flume-tools.version>1.11.1-SNAPSHOT</flume-tools.version>
<flume-twitter.version>2.0.0-SNAPSHOT</flume-twitter.version>
<flume-legacy.version>2.0.0-SNAPSHOT</flume-legacy.version>
- <morphline.version>1.11.1-SNAPSHOT</morphline.version>
+ <flume-morphline.version>2.0.0-SNAPSHOT</flume-morphline.version>
</properties>
<dependencyManagement>
@@ -167,9 +167,9 @@ limitations under the License.
<version>${flume-legacy.version}</version>
</dependency>
<dependency>
- <groupId>org.apache.flume.flume-ng-sinks</groupId>
- <artifactId>flume-ng-morphline-solr-sink</artifactId>
- <version>${morphline.version}</version>
+ <groupId>org.apache.flume</groupId>
+ <artifactId>flume-morphline-solr-sink</artifactId>
+ <version>${flume-morphline.version}</version>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
diff --git a/flume-ng-dist/pom.xml b/flume-ng-dist/pom.xml
index 373b499fe..b2e400250 100644
--- a/flume-ng-dist/pom.xml
+++ b/flume-ng-dist/pom.xml
@@ -149,8 +149,8 @@
<artifactId>flume-http-sink</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.flume.flume-ng-sinks</groupId>
- <artifactId>flume-ng-morphline-solr-sink</artifactId>
+ <groupId>org.apache.flume</groupId>
+ <artifactId>flume-morphline-solr-sink</artifactId>
</dependency>
<dependency>
<groupId>org.apache.flume</groupId>
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md b/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md
deleted file mode 100644
index ede3ab773..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/README.md
+++ /dev/null
@@ -1,20 +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.
-
-# Flume Morphline Solr Sink
-
-This module contains a Flume Morphline Solr Sink that extracts search documents from Flume events, transforms them and loads them in Near Real Time into Apache Solr, typically a SolrCloud. This sink is intended to be used alongside the HdfsSink. It is designed to process not just structured data, but also arbitrary raw data, including data from many heterogeneous data sources.
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml
deleted file mode 100644
index d77434966..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml
+++ /dev/null
@@ -1,186 +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-sinks</artifactId>
- <groupId>org.apache.flume</groupId>
- <version>1.11.1-SNAPSHOT</version>
- </parent>
-
- <groupId>org.apache.flume.flume-ng-sinks</groupId>
- <artifactId>flume-ng-morphline-solr-sink</artifactId>
- <name>Flume NG Morphline Solr Sink</name>
-
- <properties>
- <!-- TODO fix spotbugspmd violations -->
- <spotbugs.maxAllowedViolations>6</spotbugs.maxAllowedViolations>
- <pmd.maxAllowedViolations>6</pmd.maxAllowedViolations>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <solr.version>${solr-global.version}</solr.version>
- <solr.expected.version>${solr-global.version}</solr.expected.version> <!-- sanity check to verify we actually run against the expected version rather than some outdated version -->
- <module.name>org.apache.flume.sink.solr.morphline</module.name>
- </properties>
-
- <repositories>
- <!-- Morphlines needs the ua-parser library, which isn't published to Maven central.
- This repo from Twitter is where Morphlines gets this dependency from normally,
- but we need to specify HTTPS so that Maven won't ignore the repo.
- -->
- <repository>
- <id>maven-twttr</id>
- <name>Twitter Public Maven Repo</name>
- <url>https://maven.twttr.com</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- <!-- Morphlines brings in a version of solr-core that needs the restlet jar which isn't
- in Maven central. We need to include the HTTPS version of the repo Solr gives in
- order to keep Maven using the repo.
- -->
- <repository>
- <id>maven-restlet</id>
- <name>Restlet Public Maven Repo</name>
- <url>https://maven.restlet.talend.com</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
-
- <dependencies>
-
- <dependency>
- <groupId>org.apache.flume</groupId>
- <artifactId>flume-ng-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.kitesdk</groupId>
- <artifactId>kite-morphlines-all</artifactId>
- <version>${kite.version}</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.twitter</groupId>
- <artifactId>parquet-avro</artifactId>
- </exclusion>
- </exclusions>
- <type>pom</type>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.apache.parquet</groupId>
- <artifactId>parquet-avro</artifactId>
- <scope>runtime</scope>
- <optional>true</optional>
- </dependency>
-
- <dependency> <!-- see http://lucene.apache.org/solr -->
- <groupId>org.apache.solr</groupId>
- <artifactId>solr-test-framework</artifactId>
- <version>${solr.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-jdk14</artifactId> <!-- instead use slf4j on top of log4j or logback -->
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.jdom</groupId>
- <artifactId>jdom</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.kitesdk</groupId>
- <artifactId>kite-morphlines-solr-core</artifactId>
- <version>${kite.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-jcl</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-1.2-api</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <argLine>-Dtests.locale=en_us</argLine>
- <redirectTestOutputToFile>true</redirectTestOutputToFile>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>src/test/resources/**</exclude>
- </excludes>
- </configuration>
- </plugin>
-
-
- </plugins>
- </build>
-</project>
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java
deleted file mode 100644
index 9cfe9dbfd..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobDeserializer.java
+++ /dev/null
@@ -1,161 +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.sink.solr.morphline;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.annotations.InterfaceAudience;
-import org.apache.flume.annotations.InterfaceStability;
-import org.apache.flume.conf.ConfigurationException;
-import org.apache.flume.event.EventBuilder;
-import org.apache.flume.serialization.EventDeserializer;
-import org.apache.flume.serialization.ResettableInputStream;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.Lists;
-
-/**
- * A deserializer that reads a Binary Large Object (BLOB) per event, typically
- * one BLOB per file; To be used in conjunction with Flume SpoolDirectorySource.
- * <p>
- * Note that this approach is not suitable for very large objects because it
- * buffers up the entire BLOB.
- */
-@InterfaceAudience.Private
-@InterfaceStability.Evolving
-public class BlobDeserializer implements EventDeserializer {
-
- private ResettableInputStream in;
- private final int maxBlobLength;
- private volatile boolean isOpen;
-
- public static final String MAX_BLOB_LENGTH_KEY = "maxBlobLength";
- public static final int MAX_BLOB_LENGTH_DEFAULT = 100 * 1000 * 1000;
-
- private static final int DEFAULT_BUFFER_SIZE = 1024 * 8;
- private static final Logger LOGGER = LoggerFactory.getLogger(BlobDeserializer.class);
-
- protected BlobDeserializer(Context context, ResettableInputStream in) {
- this.in = in;
- this.maxBlobLength = context.getInteger(MAX_BLOB_LENGTH_KEY, MAX_BLOB_LENGTH_DEFAULT);
- if (this.maxBlobLength <= 0) {
- throw new ConfigurationException("Configuration parameter " + MAX_BLOB_LENGTH_KEY
- + " must be greater than zero: " + maxBlobLength);
- }
- this.isOpen = true;
- }
-
- /**
- * Reads a BLOB from a file and returns an event
- * @return Event containing a BLOB
- * @throws IOException
- */
- @SuppressWarnings("resource")
- @Override
- public Event readEvent() throws IOException {
- ensureOpen();
- ByteArrayOutputStream blob = null;
- byte[] buf = new byte[Math.min(maxBlobLength, DEFAULT_BUFFER_SIZE)];
- int blobLength = 0;
- int n = 0;
- while ((n = in.read(buf, 0, Math.min(buf.length, maxBlobLength - blobLength))) != -1) {
- if (blob == null) {
- blob = new ByteArrayOutputStream(n);
- }
- blob.write(buf, 0, n);
- blobLength += n;
- if (blobLength >= maxBlobLength) {
- LOGGER.warn("File length exceeds maxBlobLength ({}), truncating BLOB event!",
- maxBlobLength);
- break;
- }
- }
-
- if (blob == null) {
- return null;
- } else {
- return EventBuilder.withBody(blob.toByteArray());
- }
- }
-
- /**
- * Batch BLOB read
- * @param numEvents Maximum number of events to return.
- * @return List of events containing read BLOBs
- * @throws IOException
- */
- @Override
- public List<Event> readEvents(int numEvents) throws IOException {
- ensureOpen();
- List<Event> events = Lists.newLinkedList();
- for (int i = 0; i < numEvents; i++) {
- Event event = readEvent();
- if (event != null) {
- events.add(event);
- } else {
- break;
- }
- }
- return events;
- }
-
- @Override
- public void mark() throws IOException {
- ensureOpen();
- in.mark();
- }
-
- @Override
- public void reset() throws IOException {
- ensureOpen();
- in.reset();
- }
-
- @Override
- public void close() throws IOException {
- if (isOpen) {
- reset();
- in.close();
- isOpen = false;
- }
- }
-
- private void ensureOpen() {
- if (!isOpen) {
- throw new IllegalStateException("Serializer has been closed");
- }
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- /** Builder implementations MUST have a public no-arg constructor */
- public static class Builder implements EventDeserializer.Builder {
-
- @Override
- public BlobDeserializer build(Context context, ResettableInputStream in) {
- return new BlobDeserializer(context, in);
- }
-
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java
deleted file mode 100644
index fe9874699..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/BlobHandler.java
+++ /dev/null
@@ -1,129 +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.sink.solr.morphline;
-
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.io.output.ByteArrayOutputStream;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.conf.ConfigurationException;
-import org.apache.flume.conf.LogPrivacyUtil;
-import org.apache.flume.event.EventBuilder;
-import org.apache.flume.source.http.HTTPSourceHandler;
-import org.apache.tika.metadata.Metadata;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * BlobHandler for HTTPSource that returns event that contains the request
- * parameters as well as the Binary Large Object (BLOB) uploaded with this
- * request.
- * <p>
- * Note that this approach is not suitable for very large objects because it
- * buffers up the entire BLOB.
- * <p>
- * Example client usage:
- * <pre>
- * curl --data-binary @sample-statuses-20120906-141433-medium.avro 'http://127.0.0.1:5140?resourceName=sample-statuses-20120906-141433-medium.avro' --header 'Content-Type:application/octet-stream' --verbose
- * </pre>
- */
-public class BlobHandler implements HTTPSourceHandler {
-
- private int maxBlobLength = MAX_BLOB_LENGTH_DEFAULT;
-
- public static final String MAX_BLOB_LENGTH_KEY = "maxBlobLength";
- public static final int MAX_BLOB_LENGTH_DEFAULT = 100 * 1000 * 1000;
-
- private static final int DEFAULT_BUFFER_SIZE = 1024 * 8;
- private static final Logger LOGGER = LoggerFactory.getLogger(BlobHandler.class);
-
- public BlobHandler() {
- }
-
- @Override
- public void configure(Context context) {
- this.maxBlobLength = context.getInteger(MAX_BLOB_LENGTH_KEY, MAX_BLOB_LENGTH_DEFAULT);
- if (this.maxBlobLength <= 0) {
- throw new ConfigurationException("Configuration parameter " + MAX_BLOB_LENGTH_KEY
- + " must be greater than zero: " + maxBlobLength);
- }
- }
-
- @SuppressWarnings("resource")
- @Override
- public List<Event> getEvents(HttpServletRequest request) throws Exception {
- Map<String, String> headers = getHeaders(request);
- InputStream in = request.getInputStream();
- try {
- ByteArrayOutputStream blob = null;
- byte[] buf = new byte[Math.min(maxBlobLength, DEFAULT_BUFFER_SIZE)];
- int blobLength = 0;
- int n = 0;
- while ((n = in.read(buf, 0, Math.min(buf.length, maxBlobLength - blobLength))) != -1) {
- if (blob == null) {
- blob = new ByteArrayOutputStream(n);
- }
- blob.write(buf, 0, n);
- blobLength += n;
- if (blobLength >= maxBlobLength) {
- LOGGER.warn("Request length exceeds maxBlobLength ({}), truncating BLOB event!",
- maxBlobLength);
- break;
- }
- }
-
- byte[] array = blob != null ? blob.toByteArray() : new byte[0];
- Event event = EventBuilder.withBody(array, headers);
- if (LOGGER.isDebugEnabled() && LogPrivacyUtil.allowLogRawData()) {
- LOGGER.debug("blobEvent: {}", event);
- }
- return Collections.singletonList(event);
- } finally {
- in.close();
- }
- }
-
- private Map<String, String> getHeaders(HttpServletRequest request) {
- if (LOGGER.isDebugEnabled() && LogPrivacyUtil.allowLogRawData()) {
- Map requestHeaders = new HashMap();
- Enumeration iter = request.getHeaderNames();
- while (iter.hasMoreElements()) {
- String name = (String) iter.nextElement();
- requestHeaders.put(name, request.getHeader(name));
- }
- LOGGER.debug("requestHeaders: {}", requestHeaders);
- }
- Map<String, String> headers = new HashMap();
- if (request.getContentType() != null) {
- headers.put(Metadata.CONTENT_TYPE, request.getContentType());
- }
- Enumeration iter = request.getParameterNames();
- while (iter.hasMoreElements()) {
- String name = (String) iter.nextElement();
- headers.put(name, request.getParameter(name));
- }
- return headers;
- }
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java
deleted file mode 100644
index bb5191d1c..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandler.java
+++ /dev/null
@@ -1,62 +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.sink.solr.morphline;
-
-import java.io.IOException;
-
-import org.apache.flume.Event;
-import org.apache.flume.conf.Configurable;
-
-/**
- * Interface to load Flume events into Solr
- */
-public interface MorphlineHandler extends Configurable {
-
- /** Begins a transaction */
- public void beginTransaction();
-
- /** Loads the given event into Solr */
- public void process(Event event);
-
- /**
- * Sends any outstanding documents to Solr and waits for a positive
- * or negative ack (i.e. exception). Depending on the outcome the caller
- * should then commit or rollback the current flume transaction
- * correspondingly.
- *
- * @throws IOException
- * If there is a low-level I/O error.
- */
- public void commitTransaction();
-
- /**
- * Performs a rollback of all non-committed documents pending.
- * <p>
- * Note that this is not a true rollback as in databases. Content you have previously added to
- * Solr may have already been committed due to autoCommit, buffer full, other client performing a
- * commit etc. So this is only a best-effort rollback.
- *
- * @throws IOException
- * If there is a low-level I/O error.
- */
- public void rollbackTransaction();
-
- /** Releases allocated resources */
- public void stop();
-
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java
deleted file mode 100644
index d87781414..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineHandlerImpl.java
+++ /dev/null
@@ -1,163 +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.sink.solr.morphline;
-
-import java.io.File;
-import java.util.Map.Entry;
-
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.kitesdk.morphline.api.Command;
-import org.kitesdk.morphline.api.MorphlineCompilationException;
-import org.kitesdk.morphline.api.MorphlineContext;
-import org.kitesdk.morphline.api.Record;
-import org.kitesdk.morphline.base.Compiler;
-import org.kitesdk.morphline.base.FaultTolerance;
-import org.kitesdk.morphline.base.Fields;
-import org.kitesdk.morphline.base.Metrics;
-import org.kitesdk.morphline.base.Notifications;
-import com.codahale.metrics.Meter;
-import com.codahale.metrics.MetricRegistry;
-import com.codahale.metrics.SharedMetricRegistries;
-import com.codahale.metrics.Timer;
-import com.typesafe.config.Config;
-import com.typesafe.config.ConfigFactory;
-
-/**
- * A {@link MorphlineHandler} that processes it's events using a morphline {@link Command} chain.
- */
-public class MorphlineHandlerImpl implements MorphlineHandler {
-
- private MorphlineContext morphlineContext;
- private Command morphline;
- private Command finalChild;
- private String morphlineFileAndId;
-
- private Timer mappingTimer;
- private Meter numRecords;
- private Meter numFailedRecords;
- private Meter numExceptionRecords;
-
- public static final String MORPHLINE_FILE_PARAM = "morphlineFile";
- public static final String MORPHLINE_ID_PARAM = "morphlineId";
-
- /**
- * Morphline variables can be passed from flume.conf to the morphline, e.g.:
- * agent.sinks.solrSink.morphlineVariable.zkHost=127.0.0.1:2181/solr
- */
- public static final String MORPHLINE_VARIABLE_PARAM = "morphlineVariable";
-
- private static final Logger LOG = LoggerFactory.getLogger(MorphlineHandlerImpl.class);
-
- // For test injection
- void setMorphlineContext(MorphlineContext morphlineContext) {
- this.morphlineContext = morphlineContext;
- }
-
- // for interceptor
- void setFinalChild(Command finalChild) {
- this.finalChild = finalChild;
- }
-
- @Override
- public void configure(Context context) {
- String morphlineFile = context.getString(MORPHLINE_FILE_PARAM);
- String morphlineId = context.getString(MORPHLINE_ID_PARAM);
- if (morphlineFile == null || morphlineFile.trim().length() == 0) {
- throw new MorphlineCompilationException("Missing parameter: " + MORPHLINE_FILE_PARAM, null);
- }
- morphlineFileAndId = morphlineFile + "@" + morphlineId;
-
- if (morphlineContext == null) {
- FaultTolerance faultTolerance = new FaultTolerance(
- context.getBoolean(FaultTolerance.IS_PRODUCTION_MODE, false),
- context.getBoolean(FaultTolerance.IS_IGNORING_RECOVERABLE_EXCEPTIONS, false),
- context.getString(FaultTolerance.RECOVERABLE_EXCEPTION_CLASSES));
-
- morphlineContext = new MorphlineContext.Builder()
- .setExceptionHandler(faultTolerance)
- .setMetricRegistry(SharedMetricRegistries.getOrCreate(morphlineFileAndId))
- .build();
- }
-
- Config override = ConfigFactory.parseMap(
- context.getSubProperties(MORPHLINE_VARIABLE_PARAM + "."));
- morphline = new Compiler().compile(
- new File(morphlineFile), morphlineId, morphlineContext, finalChild, override);
-
- this.mappingTimer = morphlineContext.getMetricRegistry().timer(
- MetricRegistry.name("morphline.app", Metrics.ELAPSED_TIME));
- this.numRecords = morphlineContext.getMetricRegistry().meter(
- MetricRegistry.name("morphline.app", Metrics.NUM_RECORDS));
- this.numFailedRecords = morphlineContext.getMetricRegistry().meter(
- MetricRegistry.name("morphline.app", "numFailedRecords"));
- this.numExceptionRecords = morphlineContext.getMetricRegistry().meter(
- MetricRegistry.name("morphline.app", "numExceptionRecords"));
- }
-
- @Override
- public void process(Event event) {
- numRecords.mark();
- Timer.Context timerContext = mappingTimer.time();
- try {
- Record record = new Record();
- for (Entry<String, String> entry : event.getHeaders().entrySet()) {
- record.put(entry.getKey(), entry.getValue());
- }
- byte[] bytes = event.getBody();
- if (bytes != null && bytes.length > 0) {
- record.put(Fields.ATTACHMENT_BODY, bytes);
- }
- try {
- Notifications.notifyStartSession(morphline);
- if (!morphline.process(record)) {
- numFailedRecords.mark();
- LOG.warn("Morphline {} failed to process record: {}", morphlineFileAndId, record);
- }
- } catch (RuntimeException t) {
- numExceptionRecords.mark();
- morphlineContext.getExceptionHandler().handleException(t, record);
- }
- } finally {
- timerContext.stop();
- }
- }
-
- @Override
- public void beginTransaction() {
- Notifications.notifyBeginTransaction(morphline);
- }
-
- @Override
- public void commitTransaction() {
- Notifications.notifyCommitTransaction(morphline);
- }
-
- @Override
- public void rollbackTransaction() {
- Notifications.notifyRollbackTransaction(morphline);
- }
-
- @Override
- public void stop() {
- Notifications.notifyShutdown(morphline);
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java
deleted file mode 100644
index d8f0f1188..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineInterceptor.java
+++ /dev/null
@@ -1,239 +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.sink.solr.morphline;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.FlumeException;
-import org.apache.flume.event.EventBuilder;
-import org.apache.flume.interceptor.Interceptor;
-import org.kitesdk.morphline.api.Command;
-import org.kitesdk.morphline.api.Record;
-import org.kitesdk.morphline.base.Fields;
-
-import com.google.common.base.Preconditions;
-import com.google.common.io.ByteStreams;
-
-/**
- * Flume Interceptor that executes a morphline on events that are intercepted.
- *
- * Currently, there is a restriction in that the morphline must not generate more than one output
- * record for each input event.
- */
-public class MorphlineInterceptor implements Interceptor {
-
- private final Context context;
- private final Queue<LocalMorphlineInterceptor> pool = new ConcurrentLinkedQueue<>();
-
- protected MorphlineInterceptor(Context context) {
- Preconditions.checkNotNull(context);
- this.context = context;
- // fail fast on morphline compilation exception
- returnToPool(new LocalMorphlineInterceptor(context));
- }
-
- @Override
- public void initialize() {
- }
-
- @Override
- public void close() {
- LocalMorphlineInterceptor interceptor;
- while ((interceptor = pool.poll()) != null) {
- interceptor.close();
- }
- }
-
- @Override
- public List<Event> intercept(List<Event> events) {
- LocalMorphlineInterceptor interceptor = borrowFromPool();
- List<Event> results = interceptor.intercept(events);
- returnToPool(interceptor);
- return results;
- }
-
- @Override
- public Event intercept(Event event) {
- LocalMorphlineInterceptor interceptor = borrowFromPool();
- Event result = interceptor.intercept(event);
- returnToPool(interceptor);
- return result;
- }
-
- private void returnToPool(LocalMorphlineInterceptor interceptor) {
- pool.add(interceptor);
- }
-
- private LocalMorphlineInterceptor borrowFromPool() {
- LocalMorphlineInterceptor interceptor = pool.poll();
- if (interceptor == null) {
- interceptor = new LocalMorphlineInterceptor(context);
- }
- return interceptor;
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- /** Builder implementations MUST have a public no-arg constructor */
- public static class Builder implements Interceptor.Builder {
-
- private Context context;
-
- public Builder() {
- }
-
- @Override
- public MorphlineInterceptor build() {
- return new MorphlineInterceptor(context);
- }
-
- @Override
- public void configure(Context context) {
- this.context = context;
- }
-
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- private static final class LocalMorphlineInterceptor implements Interceptor {
-
- private final MorphlineHandlerImpl morphline;
- private final Collector collector;
-
- protected LocalMorphlineInterceptor(Context context) {
- this.morphline = new MorphlineHandlerImpl();
- this.collector = new Collector();
- this.morphline.setFinalChild(collector);
- this.morphline.configure(context);
- }
-
- @Override
- public void initialize() {
- }
-
- @Override
- public void close() {
- morphline.stop();
- }
-
- @Override
- public List<Event> intercept(List<Event> events) {
- List results = new ArrayList(events.size());
- for (Event event : events) {
- event = intercept(event);
- if (event != null) {
- results.add(event);
- }
- }
- return results;
- }
-
- @Override
- public Event intercept(Event event) {
- collector.reset();
- morphline.process(event);
- List<Record> results = collector.getRecords();
- if (results.size() == 0) {
- return null;
- }
- if (results.size() > 1) {
- throw new FlumeException(getClass().getName() +
- " must not generate more than one output record per input event");
- }
- Event result = toEvent(results.get(0));
- return result;
- }
-
- private Event toEvent(Record record) {
- Map<String, String> headers = new HashMap();
- Map<String, Collection<Object>> recordMap = record.getFields().asMap();
- byte[] body = null;
- for (Map.Entry<String, Collection<Object>> entry : recordMap.entrySet()) {
- if (entry.getValue().size() > 1) {
- throw new FlumeException(getClass().getName()
- + " must not generate more than one output value per record field");
- }
- assert entry.getValue().size() != 0; // guava guarantees that
- Object firstValue = entry.getValue().iterator().next();
- if (Fields.ATTACHMENT_BODY.equals(entry.getKey())) {
- if (firstValue instanceof byte[]) {
- body = (byte[]) firstValue;
- } else if (firstValue instanceof InputStream) {
- try {
- body = ByteStreams.toByteArray((InputStream) firstValue);
- } catch (IOException e) {
- throw new FlumeException(e);
- }
- } else {
- throw new FlumeException(getClass().getName()
- + " must non generate attachments that are not a byte[] or InputStream");
- }
- } else {
- headers.put(entry.getKey(), firstValue.toString());
- }
- }
- return EventBuilder.withBody(body, headers);
- }
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- private static final class Collector implements Command {
-
- private final List<Record> results = new ArrayList();
-
- public List<Record> getRecords() {
- return results;
- }
-
- public void reset() {
- results.clear();
- }
-
- @Override
- public Command getParent() {
- return null;
- }
-
- @Override
- public void notify(Record notification) {
- }
-
- @Override
- public boolean process(Record record) {
- Preconditions.checkNotNull(record);
- results.add(record);
- return true;
- }
-
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java
deleted file mode 100644
index 9f1d62c59..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSink.java
+++ /dev/null
@@ -1,211 +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.sink.solr.morphline;
-
-import org.apache.flume.Channel;
-import org.apache.flume.ChannelException;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.EventDeliveryException;
-import org.apache.flume.Transaction;
-import org.apache.flume.conf.BatchSizeSupported;
-import org.apache.flume.conf.Configurable;
-import org.apache.flume.conf.ConfigurationException;
-import org.apache.flume.conf.LogPrivacyUtil;
-import org.apache.flume.instrumentation.SinkCounter;
-import org.apache.flume.sink.AbstractSink;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.kitesdk.morphline.api.Command;
-
-/**
- * Flume sink that extracts search documents from Flume events and processes them using a morphline
- * {@link Command} chain.
- */
-public class MorphlineSink extends AbstractSink implements Configurable, BatchSizeSupported {
-
- private int maxBatchSize = 1000;
- private long maxBatchDurationMillis = 1000;
- private String handlerClass;
- private MorphlineHandler handler;
- private Context context;
- private SinkCounter sinkCounter;
-
- public static final String BATCH_SIZE = "batchSize";
- public static final String BATCH_DURATION_MILLIS = "batchDurationMillis";
- public static final String HANDLER_CLASS = "handlerClass";
-
- private static final Logger LOGGER = LoggerFactory.getLogger(MorphlineSink.class);
-
- public MorphlineSink() {
- this(null);
- }
-
- /** For testing only */
- protected MorphlineSink(MorphlineHandler handler) {
- this.handler = handler;
- }
-
- @Override
- public void configure(Context context) {
- this.context = context;
- maxBatchSize = context.getInteger(BATCH_SIZE, maxBatchSize);
- maxBatchDurationMillis = context.getLong(BATCH_DURATION_MILLIS, maxBatchDurationMillis);
- handlerClass = context.getString(HANDLER_CLASS, MorphlineHandlerImpl.class.getName());
- if (sinkCounter == null) {
- sinkCounter = new SinkCounter(getName());
- }
- }
-
- /**
- * Returns the maximum number of events to take per flume transaction;
- * override to customize
- */
- private int getMaxBatchSize() {
- return maxBatchSize;
- }
-
- /** Returns the maximum duration per flume transaction; override to customize */
- private long getMaxBatchDurationMillis() {
- return maxBatchDurationMillis;
- }
-
- @Override
- public synchronized void start() {
- LOGGER.info("Starting Morphline Sink {} ...", this);
- sinkCounter.start();
- if (handler == null) {
- MorphlineHandler tmpHandler;
- try {
- tmpHandler = (MorphlineHandler) Class.forName(handlerClass).newInstance();
- } catch (Exception e) {
- throw new ConfigurationException(e);
- }
- tmpHandler.configure(context);
- handler = tmpHandler;
- }
- super.start();
- LOGGER.info("Morphline Sink {} started.", getName());
- }
-
- @Override
- public synchronized void stop() {
- LOGGER.info("Morphline Sink {} stopping...", getName());
- try {
- if (handler != null) {
- handler.stop();
- }
- sinkCounter.stop();
- LOGGER.info("Morphline Sink {} stopped. Metrics: {}", getName(), sinkCounter);
- } finally {
- super.stop();
- }
- }
-
- @Override
- public Status process() throws EventDeliveryException {
- int batchSize = getMaxBatchSize();
- long batchEndTime = System.currentTimeMillis() + getMaxBatchDurationMillis();
- Channel myChannel = getChannel();
- Transaction txn = myChannel.getTransaction();
- txn.begin();
- boolean isMorphlineTransactionCommitted = true;
- try {
- int numEventsTaken = 0;
- handler.beginTransaction();
- isMorphlineTransactionCommitted = false;
-
- // repeatedly take and process events from the Flume queue
- for (int i = 0; i < batchSize; i++) {
- Event event = myChannel.take();
- if (event == null) {
- break;
- }
- sinkCounter.incrementEventDrainAttemptCount();
- numEventsTaken++;
- if (LOGGER.isTraceEnabled() && LogPrivacyUtil.allowLogRawData()) {
- LOGGER.trace("Flume event arrived {}", event);
- }
-
- //StreamEvent streamEvent = createStreamEvent(event);
- handler.process(event);
- if (System.currentTimeMillis() >= batchEndTime) {
- break;
- }
- }
-
- // update metrics
- if (numEventsTaken == 0) {
- sinkCounter.incrementBatchEmptyCount();
- }
- if (numEventsTaken < batchSize) {
- sinkCounter.incrementBatchUnderflowCount();
- } else {
- sinkCounter.incrementBatchCompleteCount();
- }
- handler.commitTransaction();
- isMorphlineTransactionCommitted = true;
- txn.commit();
- sinkCounter.addToEventDrainSuccessCount(numEventsTaken);
- return numEventsTaken == 0 ? Status.BACKOFF : Status.READY;
- } catch (Throwable t) {
- // Ooops - need to rollback and back off
- LOGGER.error("Morphline Sink " + getName() + ": Unable to process event from channel " +
- myChannel.getName() + ". Exception follows.", t);
- sinkCounter.incrementEventWriteOrChannelFail(t);
- try {
- if (!isMorphlineTransactionCommitted) {
- handler.rollbackTransaction();
- }
- } catch (Throwable t2) {
- LOGGER.error("Morphline Sink " + getName() +
- ": Unable to rollback morphline transaction. Exception follows.", t2);
- } finally {
- try {
- txn.rollback();
- } catch (Throwable t4) {
- LOGGER.error("Morphline Sink " + getName() + ": Unable to rollback Flume transaction. " +
- "Exception follows.", t4);
- }
- }
-
- if (t instanceof Error) {
- throw (Error) t; // rethrow original exception
- } else if (t instanceof ChannelException) {
- return Status.BACKOFF;
- } else {
- throw new EventDeliveryException("Failed to send events", t); // rethrow and backoff
- }
- } finally {
- txn.close();
- }
- }
-
- @Override
- public long getBatchSize() {
- return getMaxBatchSize();
- }
-
- @Override
- public String toString() {
- int i = getClass().getName().lastIndexOf('.') + 1;
- String shortClassName = getClass().getName().substring(i);
- return getName() + " (" + shortClassName + ")";
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java
deleted file mode 100644
index 5fa105339..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/MorphlineSolrSink.java
+++ /dev/null
@@ -1,48 +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.sink.solr.morphline;
-
-import org.apache.flume.Context;
-
-import org.kitesdk.morphline.api.Command;
-import org.kitesdk.morphline.base.FaultTolerance;
-
-/**
- * Flume sink that extracts search documents from Flume events, processes them using a morphline
- * {@link Command} chain, and loads them into Apache Solr.
- */
-public class MorphlineSolrSink extends MorphlineSink {
-
- public MorphlineSolrSink() {
- super();
- }
-
- /** For testing only */
- protected MorphlineSolrSink(MorphlineHandler handler) {
- super(handler);
- }
-
- @Override
- public void configure(Context context) {
- if (context.getString(FaultTolerance.RECOVERABLE_EXCEPTION_CLASSES) == null) {
- context.put(FaultTolerance.RECOVERABLE_EXCEPTION_CLASSES,
- "org.apache.solr.client.solrj.SolrServerException");
- }
- super.configure(context);
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java
deleted file mode 100644
index f2be53b72..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/main/java/org/apache/flume/sink/solr/morphline/UUIDInterceptor.java
+++ /dev/null
@@ -1,114 +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.sink.solr.morphline;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.interceptor.Interceptor;
-
-/**
- * Flume Interceptor that sets a universally unique identifier on all events
- * that are intercepted. By default this event header is named "id".
- */
-public class UUIDInterceptor implements Interceptor {
-
- private String headerName;
- private boolean preserveExisting;
- private String prefix;
-
- public static final String HEADER_NAME = "headerName";
- public static final String PRESERVE_EXISTING_NAME = "preserveExisting";
- public static final String PREFIX_NAME = "prefix";
-
- protected UUIDInterceptor(Context context) {
- headerName = context.getString(HEADER_NAME, "id");
- preserveExisting = context.getBoolean(PRESERVE_EXISTING_NAME, true);
- prefix = context.getString(PREFIX_NAME, "");
- }
-
- @Override
- public void initialize() {
- }
-
- protected String getPrefix() {
- return prefix;
- }
-
- protected String generateUUID() {
- return getPrefix() + UUID.randomUUID().toString();
- }
-
- protected boolean isMatch(Event event) {
- return true;
- }
-
- @Override
- public Event intercept(Event event) {
- Map<String, String> headers = event.getHeaders();
- if (preserveExisting && headers.containsKey(headerName)) {
- // we must preserve the existing id
- } else if (isMatch(event)) {
- headers.put(headerName, generateUUID());
- }
- return event;
- }
-
- @Override
- public List<Event> intercept(List<Event> events) {
- List results = new ArrayList(events.size());
- for (Event event : events) {
- event = intercept(event);
- if (event != null) {
- results.add(event);
- }
- }
- return results;
- }
-
- @Override
- public void close() {
- }
-
- ///////////////////////////////////////////////////////////////////////////////
- // Nested classes:
- ///////////////////////////////////////////////////////////////////////////////
- /** Builder implementations MUST have a public no-arg constructor */
- public static class Builder implements Interceptor.Builder {
-
- private Context context;
-
- public Builder() {
- }
-
- @Override
- public UUIDInterceptor build() {
- return new UUIDInterceptor(context);
- }
-
- @Override
- public void configure(Context context) {
- this.context = context;
- }
-
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/appended-resources/META-INF/LICENSE b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/appended-resources/META-INF/LICENSE
deleted file mode 100644
index 2c63fb124..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/appended-resources/META-INF/LICENSE
+++ /dev/null
@@ -1,42 +0,0 @@
-====
-
-The following files are included under the 2-Clause BSD License
-
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt
-flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation and/or
-other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java
deleted file mode 100644
index b30fecedf..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/EmbeddedSource.java
+++ /dev/null
@@ -1,45 +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.sink.solr.morphline;
-
-import java.util.List;
-
-import org.apache.flume.Event;
-import org.apache.flume.EventDeliveryException;
-import org.apache.flume.EventDrivenSource;
-import org.apache.flume.Sink;
-import org.apache.flume.source.AbstractSource;
-
-class EmbeddedSource extends AbstractSource implements EventDrivenSource {
-
- private Sink sink;
-
- public EmbeddedSource(Sink sink) {
- this.sink = sink;
- }
-
- public void load(Event event) throws EventDeliveryException {
- getChannelProcessor().processEvent(event);
- sink.process();
- }
-
- public void load(List<Event> events) throws EventDeliveryException {
- getChannelProcessor().processEventBatch(events);
- sink.process();
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java
deleted file mode 100644
index 5c7c8e3a6..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/FlumeHttpServletRequestWrapper.java
+++ /dev/null
@@ -1,424 +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.sink.solr.morphline;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.security.Principal;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.ReadListener;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Part;
-
-class FlumeHttpServletRequestWrapper implements HttpServletRequest {
-
- private ServletInputStream stream;
- private String charset;
-
- public FlumeHttpServletRequestWrapper(final byte[] data) {
- stream = new ServletInputStream() {
- @Override
- public boolean isFinished() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isReady() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void setReadListener(ReadListener readListener) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- private final InputStream in = new ByteArrayInputStream(data);
- @Override
- public int read() throws IOException {
- return in.read();
- }
- };
- }
-
- @Override
- public String getAuthType() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Cookie[] getCookies() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public long getDateHeader(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getHeader(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Enumeration getHeaders(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Enumeration getHeaderNames() {
- return Collections.enumeration(Collections.EMPTY_LIST);
- }
-
- @Override
- public int getIntHeader(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getMethod() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getPathInfo() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getPathTranslated() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getContextPath() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getQueryString() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getRemoteUser() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isUserInRole(String role) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Principal getUserPrincipal() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getRequestedSessionId() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getRequestURI() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public StringBuffer getRequestURL() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getServletPath() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public HttpSession getSession(boolean create) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public HttpSession getSession() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String changeSessionId() {
- return null;
- }
-
- @Override
- public boolean isRequestedSessionIdValid() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isRequestedSessionIdFromCookie() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isRequestedSessionIdFromURL() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isRequestedSessionIdFromUrl() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void login(String username, String password) throws ServletException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void logout() throws ServletException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Collection<Part> getParts() throws IOException, ServletException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Part getPart(String name) throws IOException, ServletException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass)
- throws IOException, ServletException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Object getAttribute(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Enumeration<String> getAttributeNames() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getCharacterEncoding() {
- return charset;
- }
-
- @Override
- public void setCharacterEncoding(String env) throws UnsupportedEncodingException {
- this.charset = env;
- }
-
- @Override
- public int getContentLength() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public long getContentLengthLong() {
- return 0;
- }
-
- @Override
- public String getContentType() {
- return null;
- }
-
- @Override
- public ServletInputStream getInputStream() throws IOException {
- return stream;
- }
-
- @Override
- public String getParameter(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Enumeration getParameterNames() {
- return Collections.enumeration(Collections.EMPTY_LIST);
- }
-
- @Override
- public String[] getParameterValues(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Map getParameterMap() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getProtocol() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getScheme() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getServerName() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public int getServerPort() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public BufferedReader getReader() throws IOException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getRemoteAddr() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getRemoteHost() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void setAttribute(String name, Object o) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void removeAttribute(String name) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Locale getLocale() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public Enumeration<Locale> getLocales() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isSecure() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(String path) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getRealPath(String path) {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public int getRemotePort() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getLocalName() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public String getLocalAddr() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public int getLocalPort() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public ServletContext getServletContext() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public AsyncContext startAsync() throws IllegalStateException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
- throws IllegalStateException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isAsyncStarted() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean isAsyncSupported() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public AsyncContext getAsyncContext() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public DispatcherType getDispatcherType() {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java
deleted file mode 100644
index e6ee9b9ec..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/ResettableTestStringInputStream.java
+++ /dev/null
@@ -1,89 +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.sink.solr.morphline;
-
-import java.io.IOException;
-
-import org.apache.flume.serialization.ResettableInputStream;
-
-class ResettableTestStringInputStream extends ResettableInputStream {
-
- private String str;
- private int markPos = 0;
- private int curPos = 0;
-
- /**
- * Warning: This test class does not handle character/byte conversion at all!
- * @param str String to use for testing
- */
- public ResettableTestStringInputStream(String str) {
- this.str = str;
- }
-
- @Override
- public int readChar() throws IOException {
- throw new UnsupportedOperationException("This test class doesn't return " +
- "strings!");
- }
-
- @Override
- public void mark() throws IOException {
- markPos = curPos;
- }
-
- @Override
- public void reset() throws IOException {
- curPos = markPos;
- }
-
- @Override
- public void seek(long position) throws IOException {
- throw new UnsupportedOperationException("Unimplemented in test class");
- }
-
- @Override
- public long tell() throws IOException {
- throw new UnsupportedOperationException("Unimplemented in test class");
- }
-
- @Override
- public int read() throws IOException {
- if (curPos >= str.length()) {
- return -1;
- }
- return str.charAt(curPos++);
- }
-
- @Override
- public int read(byte[] b, int off, int len) throws IOException {
- if (curPos >= str.length()) {
- return -1;
- }
- int n = 0;
- while (len > 0 && curPos < str.length()) {
- b[off++] = (byte) str.charAt(curPos++);
- n++;
- len--;
- }
- return n;
- }
-
- @Override
- public void close() throws IOException {
- // no-op
- }
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java
deleted file mode 100644
index be377baad..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobDeserializer.java
+++ /dev/null
@@ -1,122 +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.sink.solr.morphline;
-
-import com.google.common.base.Charsets;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.serialization.EventDeserializer;
-import org.apache.flume.serialization.EventDeserializerFactory;
-import org.apache.flume.serialization.ResettableInputStream;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-public class TestBlobDeserializer extends Assert {
-
- private String mini;
-
- @Before
- public void setup() {
- StringBuilder sb = new StringBuilder();
- sb.append("line 1\n");
- sb.append("line 2\n");
- mini = sb.toString();
- }
-
- @Test
- public void testSimple() throws IOException {
- ResettableInputStream in = new ResettableTestStringInputStream(mini);
- EventDeserializer des = new BlobDeserializer(new Context(), in);
- validateMiniParse(des);
- }
-
- @Test
- public void testSimpleViaBuilder() throws IOException {
- ResettableInputStream in = new ResettableTestStringInputStream(mini);
- EventDeserializer.Builder builder = new BlobDeserializer.Builder();
- EventDeserializer des = builder.build(new Context(), in);
- validateMiniParse(des);
- }
-
- @Test
- public void testSimpleViaFactory() throws IOException {
- ResettableInputStream in = new ResettableTestStringInputStream(mini);
- EventDeserializer des;
- des = EventDeserializerFactory.getInstance(BlobDeserializer.Builder.class.getName(),
- new Context(), in);
- validateMiniParse(des);
- }
-
- @Test
- public void testBatch() throws IOException {
- ResettableInputStream in = new ResettableTestStringInputStream(mini);
- EventDeserializer des = new BlobDeserializer(new Context(), in);
- List<Event> events;
-
- events = des.readEvents(10); // try to read more than we should have
- assertEquals(1, events.size());
- assertEventBodyEquals(mini, events.get(0));
-
- des.mark();
- des.close();
- }
-
- // truncation occurs at maxLineLength boundaries
- @Test
- public void testMaxLineLength() throws IOException {
- String longLine = "abcdefghijklmnopqrstuvwxyz\n";
- Context ctx = new Context();
- ctx.put(BlobDeserializer.MAX_BLOB_LENGTH_KEY, "10");
-
- ResettableInputStream in = new ResettableTestStringInputStream(longLine);
- EventDeserializer des = new BlobDeserializer(ctx, in);
-
- assertEventBodyEquals("abcdefghij", des.readEvent());
- assertEventBodyEquals("klmnopqrst", des.readEvent());
- assertEventBodyEquals("uvwxyz\n", des.readEvent());
- assertNull(des.readEvent());
- }
-
- private void assertEventBodyEquals(String expected, Event event) {
- String bodyStr = new String(event.getBody(), Charsets.UTF_8);
- assertEquals(expected, bodyStr);
- }
-
- private void validateMiniParse(EventDeserializer des) throws IOException {
- Event evt;
-
- des.mark();
- evt = des.readEvent();
- assertEquals(new String(evt.getBody()), mini);
- des.reset(); // reset!
-
- evt = des.readEvent();
- assertEquals("data should be repeated, " +
- "because we reset() the stream", new String(evt.getBody()), mini);
-
- evt = des.readEvent();
- assertNull("Event should be null because there are no lines " +
- "left to read", evt);
-
- des.mark();
- des.close();
- }
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java
deleted file mode 100644
index 3e7de99c5..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestBlobHandler.java
+++ /dev/null
@@ -1,60 +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.sink.solr.morphline;
-
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.flume.Event;
-import org.apache.flume.source.http.HTTPSourceHandler;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-public class TestBlobHandler extends Assert {
-
- private HTTPSourceHandler handler;
-
- @Before
- public void setUp() {
- handler = new BlobHandler();
- }
-
- @Test
- public void testSingleEvent() throws Exception {
- byte[] json = "foo".getBytes("UTF-8");
- HttpServletRequest req = new FlumeHttpServletRequestWrapper(json);
- List<Event> deserialized = handler.getEvents(req);
- assertEquals(1, deserialized.size());
- Event e = deserialized.get(0);
- assertEquals(0, e.getHeaders().size());
- assertEquals("foo", new String(e.getBody(),"UTF-8"));
- }
-
- @Test
- public void testEmptyEvent() throws Exception {
- byte[] json = "".getBytes("UTF-8");
- HttpServletRequest req = new FlumeHttpServletRequestWrapper(json);
- List<Event> deserialized = handler.getEvents(req);
- assertEquals(1, deserialized.size());
- Event e = deserialized.get(0);
- assertEquals(0, e.getHeaders().size());
- assertEquals("", new String(e.getBody(),"UTF-8"));
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java
deleted file mode 100644
index 933a6b1df..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestEnvironment.java
+++ /dev/null
@@ -1,33 +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.sink.solr.morphline;
-
-import java.net.UnknownHostException;
-
-import org.junit.Test;
-
-import org.kitesdk.morphline.solr.EnvironmentTest;
-
-/** Print and verify some info about the environment in which the unit tests are running */
-public class TestEnvironment extends EnvironmentTest {
-
- @Test
- public void testEnvironment() throws UnknownHostException {
- super.testEnvironment();
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java
deleted file mode 100644
index 8d62d38f6..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineInterceptor.java
+++ /dev/null
@@ -1,167 +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.sink.solr.morphline;
-
-import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.io.Files;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.event.EventBuilder;
-import org.junit.Assert;
-import org.junit.Test;
-import org.kitesdk.morphline.base.Fields;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class TestMorphlineInterceptor extends Assert {
-
- private static final String RESOURCES_DIR = "target/test-classes";
-
- @Test
- public void testNoOperation() throws Exception {
- Context context = new Context();
- context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM,
- RESOURCES_DIR + "/test-morphlines/noOperation.conf");
- Event input = EventBuilder.withBody("foo", Charsets.UTF_8);
- input.getHeaders().put("name", "nadja");
- MorphlineInterceptor interceptor = build(context);
- Event actual = interceptor.intercept(input);
- interceptor.close();
- Event expected = EventBuilder.withBody("foo".getBytes("UTF-8"),
- ImmutableMap.of("name", "nadja"));
- assertEqualsEvent(expected, actual);
-
- List<Event> actualList = build(context).intercept(Collections.singletonList(input));
- List<Event> expectedList = Collections.singletonList(expected);
- assertEqualsEventList(expectedList, actualList);
- }
-
- @Test
- public void testReadClob() throws Exception {
- Context context = new Context();
- context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM,
- RESOURCES_DIR + "/test-morphlines/readClob.conf");
- Event input = EventBuilder.withBody("foo", Charsets.UTF_8);
- input.getHeaders().put("name", "nadja");
- Event actual = build(context).intercept(input);
- Event expected = EventBuilder.withBody(null,
- ImmutableMap.of("name", "nadja", Fields.MESSAGE, "foo"));
- assertEqualsEvent(expected, actual);
-
- List<Event> actualList = build(context).intercept(Collections.singletonList(input));
- List<Event> expectedList = Collections.singletonList(expected);
- assertEqualsEventList(expectedList, actualList);
- }
-
- @Test
- public void testGrokIfNotMatchDropEventRetain() throws Exception {
- Context context = new Context();
- context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM,
- RESOURCES_DIR + "/test-morphlines/grokIfNotMatchDropRecord.conf");
-
- String msg = "<164>Feb 4 10:46:14 syslog sshd[607]: Server listening on 0.0.0.0 port 22.";
- Event input = EventBuilder.withBody(null, ImmutableMap.of(Fields.MESSAGE, msg));
- Event actual = build(context).intercept(input);
-
- Map<String, String> expected = new HashMap();
- expected.put(Fields.MESSAGE, msg);
- expected.put("syslog_pri", "164");
- expected.put("syslog_timestamp", "Feb 4 10:46:14");
- expected.put("syslog_hostname", "syslog");
- expected.put("syslog_program", "sshd");
- expected.put("syslog_pid", "607");
- expected.put("syslog_message", "Server listening on 0.0.0.0 port 22.");
- Event expectedEvent = EventBuilder.withBody(null, expected);
- assertEqualsEvent(expectedEvent, actual);
- }
-
- @Test
- /* leading XXXXX does not match regex, thus we expect the event to be dropped */
- public void testGrokIfNotMatchDropEventDrop() throws Exception {
- Context context = new Context();
- context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM,
- RESOURCES_DIR + "/test-morphlines/grokIfNotMatchDropRecord.conf");
- String msg = "<XXXXXXXXXXXXX164>Feb 4 10:46:14 syslog sshd[607]: Server listening on 0.0.0.0" +
- " port 22.";
- Event input = EventBuilder.withBody(null, ImmutableMap.of(Fields.MESSAGE, msg));
- Event actual = build(context).intercept(input);
- assertNull(actual);
- }
-
- @Test
- /** morphline says route to southpole if it's an avro file, otherwise route to northpole */
- public void testIfDetectMimeTypeRouteToSouthPole() throws Exception {
- Context context = new Context();
- context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM,
- RESOURCES_DIR + "/test-morphlines/ifDetectMimeType.conf");
- context.put(MorphlineHandlerImpl.MORPHLINE_VARIABLE_PARAM + ".MY.MIME_TYPE", "avro/binary");
-
- Event input = EventBuilder.withBody(Files.toByteArray(
- new File(RESOURCES_DIR + "/test-documents/sample-statuses-20120906-141433.avro")));
- Event actual = build(context).intercept(input);
-
- Map<String, String> expected = new HashMap();
- expected.put(Fields.ATTACHMENT_MIME_TYPE, "avro/binary");
- expected.put("flume.selector.header", "goToSouthPole");
- Event expectedEvent = EventBuilder.withBody(input.getBody(), expected);
- assertEqualsEvent(expectedEvent, actual);
- }
-
- @Test
- /** morphline says route to southpole if it's an avro file, otherwise route to northpole */
- public void testIfDetectMimeTypeRouteToNorthPole() throws Exception {
- Context context = new Context();
- context.put(MorphlineHandlerImpl.MORPHLINE_FILE_PARAM,
- RESOURCES_DIR + "/test-morphlines/ifDetectMimeType.conf");
- context.put(MorphlineHandlerImpl.MORPHLINE_VARIABLE_PARAM + ".MY.MIME_TYPE", "avro/binary");
-
- Event input = EventBuilder.withBody(
- Files.toByteArray(new File(RESOURCES_DIR + "/test-documents/testPDF.pdf")));
- Event actual = build(context).intercept(input);
-
- Map<String, String> expected = new HashMap();
- expected.put(Fields.ATTACHMENT_MIME_TYPE, "application/pdf");
- expected.put("flume.selector.header", "goToNorthPole");
- Event expectedEvent = EventBuilder.withBody(input.getBody(), expected);
- assertEqualsEvent(expectedEvent, actual);
- }
-
- private MorphlineInterceptor build(Context context) {
- MorphlineInterceptor.Builder builder = new MorphlineInterceptor.Builder();
- builder.configure(context);
- return builder.build();
- }
-
- // b/c SimpleEvent doesn't implement equals() method :-(
- private void assertEqualsEvent(Event x, Event y) {
- assertEquals(x.getHeaders(), y.getHeaders());
- assertArrayEquals(x.getBody(), y.getBody());
- }
-
- private void assertEqualsEventList(List<Event> x, List<Event> y) {
- assertEquals(x.size(), y.size());
- for (int i = 0; i < x.size(); i++) {
- assertEqualsEvent(x.get(i), y.get(i));
- }
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java
deleted file mode 100644
index 100e82e82..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestMorphlineSolrSink.java
+++ /dev/null
@@ -1,450 +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.sink.solr.morphline;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.flume.Channel;
-import org.apache.flume.ChannelException;
-import org.apache.flume.ChannelSelector;
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.EventDeliveryException;
-import org.apache.flume.Transaction;
-import org.apache.flume.channel.BasicTransactionSemantics;
-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.event.EventBuilder;
-import org.apache.flume.instrumentation.SinkCounter;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.client.solrj.SolrQuery;
-import org.apache.solr.client.solrj.SolrServer;
-import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.response.QueryResponse;
-import org.apache.solr.common.SolrDocument;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.kitesdk.morphline.api.MorphlineContext;
-import org.kitesdk.morphline.api.Record;
-import org.kitesdk.morphline.base.FaultTolerance;
-import org.kitesdk.morphline.base.Fields;
-import org.kitesdk.morphline.solr.DocumentLoader;
-import org.kitesdk.morphline.solr.SolrLocator;
-import org.kitesdk.morphline.solr.SolrMorphlineContext;
-import org.kitesdk.morphline.solr.SolrServerDocumentLoader;
-import org.kitesdk.morphline.solr.TestEmbeddedSolrServer;
-import com.codahale.metrics.MetricRegistry;
-import com.google.common.base.Charsets;
-import com.google.common.collect.ImmutableListMultimap;
-import com.google.common.collect.ListMultimap;
-import com.google.common.io.Files;
-
-public class TestMorphlineSolrSink extends SolrTestCaseJ4 {
-
- private EmbeddedSource source;
- private SolrServer solrServer;
- private MorphlineSink sink;
- private Map<String,Integer> expectedRecords;
-
- private File tmpFile;
- private static final boolean TEST_WITH_EMBEDDED_SOLR_SERVER = true;
- private static final String EXTERNAL_SOLR_SERVER_URL = System.getProperty("externalSolrServer");
-//private static final String EXTERNAL_SOLR_SERVER_URL = "http://127.0.0.1:8983/solr";
- private static final String RESOURCES_DIR = "target/test-classes";
-//private static final String RESOURCES_DIR = "src/test/resources";
- private static final AtomicInteger SEQ_NUM = new AtomicInteger();
- private static final AtomicInteger SEQ_NUM2 = new AtomicInteger();
- private static final Logger LOGGER = LoggerFactory.getLogger(TestMorphlineSolrSink.class);
-
- @BeforeClass
- public static void beforeClass() throws Exception {
- initCore(
- RESOURCES_DIR + "/solr/collection1/conf/solrconfig.xml",
- RESOURCES_DIR + "/solr/collection1/conf/schema.xml",
- RESOURCES_DIR + "/solr");
- }
-
- @Before
- @Override
- public void setUp() throws Exception {
- super.setUp();
- String path = RESOURCES_DIR + "/test-documents";
- expectedRecords = new HashMap();
- expectedRecords.put(path + "/sample-statuses-20120906-141433.avro", 2);
- expectedRecords.put(path + "/sample-statuses-20120906-141433", 2);
- expectedRecords.put(path + "/sample-statuses-20120906-141433.gz", 2);
- expectedRecords.put(path + "/sample-statuses-20120906-141433.bz2", 2);
- expectedRecords.put(path + "/cars.csv", 5);
- expectedRecords.put(path + "/cars.csv.gz", 5);
- expectedRecords.put(path + "/cars.tar.gz", 4);
- expectedRecords.put(path + "/cars.tsv", 5);
- expectedRecords.put(path + "/cars.ssv", 5);
-
- final Map<String, String> context = new HashMap();
-
- if (EXTERNAL_SOLR_SERVER_URL != null) {
- throw new UnsupportedOperationException();
- //solrServer = new ConcurrentUpdateSolrServer(EXTERNAL_SOLR_SERVER_URL, 2, 2);
- //solrServer = new SafeConcurrentUpdateSolrServer(EXTERNAL_SOLR_SERVER_URL, 2, 2);
- //solrServer = new HttpSolrServer(EXTERNAL_SOLR_SERVER_URL);
- } else {
- if (TEST_WITH_EMBEDDED_SOLR_SERVER) {
- solrServer = new TestEmbeddedSolrServer(h.getCoreContainer(), "");
- } else {
- throw new RuntimeException("Not yet implemented");
- //solrServer = new TestSolrServer(getSolrServer());
- }
- }
-
- Map<String, String> channelContext = new HashMap();
- channelContext.put("capacity", "1000000");
- channelContext.put("keep-alive", "0"); // for faster tests
- Channel channel = new MemoryChannel();
- channel.setName(channel.getClass().getName() + SEQ_NUM.getAndIncrement());
- Configurables.configure(channel, new Context(channelContext));
-
- class MySolrSink extends MorphlineSolrSink {
- public MySolrSink(MorphlineHandlerImpl indexer) {
- super(indexer);
- }
- }
-
- int batchSize = SEQ_NUM2.incrementAndGet() % 2 == 0 ? 100 : 1;
- DocumentLoader testServer = new SolrServerDocumentLoader(solrServer, batchSize);
- MorphlineContext solrMorphlineContext = new SolrMorphlineContext.Builder()
- .setDocumentLoader(testServer)
- .setExceptionHandler(new FaultTolerance(false, false, SolrServerException.class.getName()))
- .setMetricRegistry(new MetricRegistry()).build();
-
- MorphlineHandlerImpl impl = new MorphlineHandlerImpl();
- impl.setMorphlineContext(solrMorphlineContext);
-
- class MySolrLocator extends SolrLocator { // trick to access protected ctor
- public MySolrLocator(MorphlineContext indexer) {
- super(indexer);
- }
- }
-
- SolrLocator locator = new MySolrLocator(solrMorphlineContext);
- locator.setSolrHomeDir(testSolrHome + "/collection1");
- String str1 = "SOLR_LOCATOR : " + locator.toString();
- //File solrLocatorFile = new File("target/test-classes/test-morphlines/solrLocator.conf");
- //String str1 = Files.toString(solrLocatorFile, Charsets.UTF_8);
- File morphlineFile = new File("target/test-classes/test-morphlines/solrCellDocumentTypes.conf");
- String str2 = Files.toString(morphlineFile, Charsets.UTF_8);
- tmpFile = File.createTempFile("morphline", ".conf");
- tmpFile.deleteOnExit();
- Files.write(str1 + "\n" + str2, tmpFile, Charsets.UTF_8);
- context.put("morphlineFile", tmpFile.getPath());
-
- impl.configure(new Context(context));
- sink = new MySolrSink(impl);
- sink.setName(sink.getClass().getName() + SEQ_NUM.getAndIncrement());
- sink.configure(new Context(context));
- sink.setChannel(channel);
- sink.start();
-
- source = new EmbeddedSource(sink);
- ChannelSelector rcs = new ReplicatingChannelSelector();
- rcs.setChannels(Collections.singletonList(channel));
- ChannelProcessor chp = new ChannelProcessor(rcs);
- Context chpContext = new Context();
- chpContext.put("interceptors", "uuidinterceptor");
- chpContext.put("interceptors.uuidinterceptor.type", UUIDInterceptor.Builder.class.getName());
- chp.configure(chpContext);
- source.setChannelProcessor(chp);
-
- deleteAllDocuments();
- }
-
- private void deleteAllDocuments() throws SolrServerException, IOException {
- SolrServer s = solrServer;
- s.deleteByQuery("*:*"); // delete everything!
- s.commit();
- }
-
- @After
- @Override
- public void tearDown() throws Exception {
- try {
- if (source != null) {
- source.stop();
- source = null;
- }
- if (sink != null) {
- sink.stop();
- sink = null;
- }
- if (tmpFile != null) {
- tmpFile.delete();
- }
- } finally {
- solrServer = null;
- expectedRecords = null;
- super.tearDown();
- }
- }
-
- @Test
- public void testDocumentTypes() throws Exception {
- String path = RESOURCES_DIR + "/test-documents";
- String[] files = new String[] {
- path + "/testBMPfp.txt",
- path + "/boilerplate.html",
- path + "/NullHeader.docx",
- path + "/testWORD_various.doc",
- path + "/testPDF.pdf",
- path + "/testJPEG_EXIF.jpg",
- path + "/testXML.xml",
-// path + "/cars.csv",
-// path + "/cars.tsv",
-// path + "/cars.ssv",
-// path + "/cars.csv.gz",
-// path + "/cars.tar.gz",
- path + "/sample-statuses-20120906-141433.avro",
- path + "/sample-statuses-20120906-141433",
- path + "/sample-statuses-20120906-141433.gz",
- path + "/sample-statuses-20120906-141433.bz2",
- };
- testDocumentTypesInternal(files);
- }
-
- @Test
- public void testDocumentTypes2() throws Exception {
- String path = RESOURCES_DIR + "/test-documents";
- String[] files = new String[] {
- path + "/testPPT_various.ppt",
- path + "/testPPT_various.pptx",
- path + "/testEXCEL.xlsx",
- path + "/testEXCEL.xls",
- path + "/testPages.pages",
- path + "/testNumbers.numbers",
- path + "/testKeynote.key",
-
- path + "/testRTFVarious.rtf",
- path + "/complex.mbox",
- path + "/test-outlook.msg",
- path + "/testEMLX.emlx",
-// path + "/testRFC822",
- path + "/rsstest.rss",
-// path + "/testDITA.dita",
-
- path + "/testMP3i18n.mp3",
- path + "/testAIFF.aif",
- path + "/testFLAC.flac",
-// path + "/testFLAC.oga",
-// path + "/testVORBIS.ogg",
- path + "/testMP4.m4a",
- path + "/testWAV.wav",
-// path + "/testWMA.wma",
-
- path + "/testFLV.flv",
-// path + "/testWMV.wmv",
-
- path + "/testBMP.bmp",
- path + "/testPNG.png",
- path + "/testPSD.psd",
- path + "/testSVG.svg",
- path + "/testTIFF.tif",
-
-// path + "/test-documents.7z",
-// path + "/test-documents.cpio",
-// path + "/test-documents.tar",
-// path + "/test-documents.tbz2",
-// path + "/test-documents.tgz",
-// path + "/test-documents.zip",
-// path + "/test-zip-of-zip.zip",
-// path + "/testJAR.jar",
-
-// path + "/testKML.kml",
-// path + "/testRDF.rdf",
- path + "/testTrueType.ttf",
- path + "/testVISIO.vsd",
-// path + "/testWAR.war",
-// path + "/testWindows-x86-32.exe",
-// path + "/testWINMAIL.dat",
-// path + "/testWMF.wmf",
- };
- testDocumentTypesInternal(files);
- }
-
- @Test
- public void testErrorCounters() throws Exception {
- Channel channel = Mockito.mock(Channel.class);
- Mockito.when(channel.take()).thenThrow(new ChannelException("dummy"));
- Transaction transaction = Mockito.mock(BasicTransactionSemantics.class);
- Mockito.when(channel.getTransaction()).thenReturn(transaction);
- sink.setChannel(channel);
- sink.process();
-
- SinkCounter sinkCounter = (SinkCounter) Whitebox.getInternalState(sink, "sinkCounter");
- assertEquals(1, sinkCounter.getChannelReadFail());
- }
-
- @Test
- public void testAvroRoundTrip() throws Exception {
- String file = RESOURCES_DIR + "/test-documents" + "/sample-statuses-20120906-141433.avro";
- testDocumentTypesInternal(file);
- QueryResponse rsp = query("*:*");
- Iterator<SolrDocument> iter = rsp.getResults().iterator();
- ListMultimap<String, String> expectedFieldValues;
- expectedFieldValues = ImmutableListMultimap.of("id", "1234567890", "text", "sample tweet one",
- "user_screen_name", "fake_user1");
- assertEquals(expectedFieldValues, next(iter));
- expectedFieldValues = ImmutableListMultimap.of("id", "2345678901", "text", "sample tweet two",
- "user_screen_name", "fake_user2");
- assertEquals(expectedFieldValues, next(iter));
- assertFalse(iter.hasNext());
- }
-
- private ListMultimap<String, Object> next(Iterator<SolrDocument> iter) {
- SolrDocument doc = iter.next();
- Record record = toRecord(doc);
- record.removeAll("_version_"); // the values of this field are unknown and internal to solr
- return record.getFields();
- }
-
- private Record toRecord(SolrDocument doc) {
- Record record = new Record();
- for (String key : doc.keySet()) {
- record.getFields().replaceValues(key, doc.getFieldValues(key));
- }
- return record;
- }
-
- private void testDocumentTypesInternal(String... files) throws Exception {
- int numDocs = 0;
- long startTime = System.currentTimeMillis();
-
- assertEquals(numDocs, queryResultSetSize("*:*"));
-// assertQ(req("*:*"), "//*[@numFound='0']");
- for (int i = 0; i < 1; i++) {
- for (String file : files) {
- File f = new File(file);
- byte[] body = Files.toByteArray(f);
- Event event = EventBuilder.withBody(body);
- event.getHeaders().put(Fields.ATTACHMENT_NAME, f.getName());
- load(event);
- Integer count = expectedRecords.get(file);
- if (count != null) {
- numDocs += count;
- } else {
- numDocs++;
- }
- assertEquals(numDocs, queryResultSetSize("*:*"));
- }
- LOGGER.trace("iter: {}", i);
- }
- LOGGER.trace("all done with put at {}", System.currentTimeMillis() - startTime);
- assertEquals(numDocs, queryResultSetSize("*:*"));
- LOGGER.trace("sink: ", sink);
- }
-
-// @Test
- public void benchmarkDocumentTypes() throws Exception {
- int iters = 200;
-
-// LogManager.getLogger(getClass().getPackage().getName()).setLevel(Level.INFO);
-
- assertEquals(0, queryResultSetSize("*:*"));
- String path = RESOURCES_DIR + "/test-documents";
- String[] files = new String[] {
-// path + "/testBMPfp.txt",
-// path + "/boilerplate.html",
-// path + "/NullHeader.docx",
-// path + "/testWORD_various.doc",
-// path + "/testPDF.pdf",
-// path + "/testJPEG_EXIF.jpg",
-// path + "/testXML.xml",
-// path + "/cars.csv",
-// path + "/cars.csv.gz",
-// path + "/cars.tar.gz",
-// path + "/sample-statuses-20120906-141433.avro",
- path + "/sample-statuses-20120906-141433-medium.avro",
- };
-
- List<Event> events = new ArrayList();
- for (String file : files) {
- File f = new File(file);
- byte[] body = Files.toByteArray(f);
- Event event = EventBuilder.withBody(body);
-// event.getHeaders().put(Metadata.RESOURCE_NAME_KEY, f.getName());
- events.add(event);
- }
-
- long startTime = System.currentTimeMillis();
- for (int i = 0; i < iters; i++) {
- if (i % 10000 == 0) {
- LOGGER.info("iter: {}", i);
- }
- for (Event event : events) {
- event = EventBuilder.withBody(event.getBody(), new HashMap(event.getHeaders()));
- event.getHeaders().put("id", UUID.randomUUID().toString());
- load(event);
- }
- }
-
- float secs = (System.currentTimeMillis() - startTime) / 1000.0f;
- long numDocs = queryResultSetSize("*:*");
- LOGGER.info("Took secs: " + secs + ", iters/sec: " + (iters / secs));
- LOGGER.info("Took secs: " + secs + ", docs/sec: " + (numDocs / secs));
- LOGGER.info("Iterations: " + iters + ", numDocs: " + numDocs);
- LOGGER.info("sink: ", sink);
- }
-
- private void load(Event event) throws EventDeliveryException {
- source.load(event);
- }
-
- private void commit() throws SolrServerException, IOException {
- solrServer.commit(false, true, true);
- }
-
- private int queryResultSetSize(String query) throws SolrServerException, IOException {
- commit();
- QueryResponse rsp = query(query);
- LOGGER.debug("rsp: {}", rsp);
- int size = rsp.getResults().size();
- return size;
- }
-
- private QueryResponse query(String query) throws SolrServerException, IOException {
- commit();
- QueryResponse rsp = solrServer.query(new SolrQuery(query).setRows(Integer.MAX_VALUE));
- LOGGER.debug("rsp: {}", rsp);
- return rsp;
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java
deleted file mode 100644
index ceff02841..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/java/org/apache/flume/sink/solr/morphline/TestUUIDInterceptor.java
+++ /dev/null
@@ -1,63 +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.sink.solr.morphline;
-
-import org.apache.flume.Context;
-import org.apache.flume.Event;
-import org.apache.flume.event.SimpleEvent;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class TestUUIDInterceptor extends Assert {
-
- private static final String ID = "id";
-
- @Test
- public void testBasic() throws Exception {
- Context context = new Context();
- context.put(UUIDInterceptor.HEADER_NAME, ID);
- context.put(UUIDInterceptor.PRESERVE_EXISTING_NAME, "true");
- Event event = new SimpleEvent();
- assertTrue(build(context).intercept(event).getHeaders().get(ID).length() > 0);
- }
-
- @Test
- public void testPreserveExisting() throws Exception {
- Context context = new Context();
- context.put(UUIDInterceptor.HEADER_NAME, ID);
- context.put(UUIDInterceptor.PRESERVE_EXISTING_NAME, "true");
- Event event = new SimpleEvent();
- event.getHeaders().put(ID, "foo");
- assertEquals("foo", build(context).intercept(event).getHeaders().get(ID));
- }
-
- @Test
- public void testPrefix() throws Exception {
- Context context = new Context();
- context.put(UUIDInterceptor.HEADER_NAME, ID);
- context.put(UUIDInterceptor.PREFIX_NAME, "bar#");
- Event event = new SimpleEvent();
- assertTrue(build(context).intercept(event).getHeaders().get(ID).startsWith("bar#"));
- }
-
- private UUIDInterceptor build(Context context) {
- UUIDInterceptor.Builder builder = new UUIDInterceptor.Builder();
- builder.configure(context);
- return builder.build();
- }
-
-}
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml
deleted file mode 100644
index 4ee476a5d..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/custom-mimetypes.xml
+++ /dev/null
@@ -1,38 +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. -->
-
-<mime-info>
-
- <mime-type type="text/space-separated-values">
- <glob pattern="*.ssv"/>
- </mime-type>
-
- <mime-type type="avro/binary">
- <magic priority="50">
- <match value="0x4f626a01" type="string" offset="0"/>
- </magic>
- <glob pattern="*.avro"/>
- </mime-type>
-
- <mime-type type="mytwittertest/json+delimited+length">
- <magic priority="50">
- <match value="[0-9]+(\r)?\n\\{"" type="regex" offset="0:16"/>
- </magic>
- </mime-type>
-
- <mime-type type="application/hadoop-sequence-file">
- <magic priority="50">
- <match value="SEQ[\0-\6]" type="regex" offset="0"/>
- </magic>
- </mime-type>
-
-</mime-info>
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j2.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j2.xml
deleted file mode 100644
index 61de2283d..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/log4j2.xml
+++ /dev/null
@@ -1,38 +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="DEBUG"/>
- <Logger name="org.kitesdk.morphline" level="DEBUG"/>
- <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-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml
deleted file mode 100644
index 654de41fa..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/currency.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" ?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- Example exchange rates file for CurrencyField type named "currency" in example schema -->
-
-<currencyConfig version="1.0">
- <rates>
- <!-- Updated from http://www.exchangerate.com/ at 2011-09-27 -->
- <rate from="USD" to="ARS" rate="4.333871" comment="ARGENTINA Peso" />
- <rate from="USD" to="AUD" rate="1.025768" comment="AUSTRALIA Dollar" />
- <rate from="USD" to="EUR" rate="0.743676" comment="European Euro" />
- <rate from="USD" to="BRL" rate="1.881093" comment="BRAZIL Real" />
- <rate from="USD" to="CAD" rate="1.030815" comment="CANADA Dollar" />
- <rate from="USD" to="CLP" rate="519.0996" comment="CHILE Peso" />
- <rate from="USD" to="CNY" rate="6.387310" comment="CHINA Yuan" />
- <rate from="USD" to="CZK" rate="18.47134" comment="CZECH REP. Koruna" />
- <rate from="USD" to="DKK" rate="5.515436" comment="DENMARK Krone" />
- <rate from="USD" to="HKD" rate="7.801922" comment="HONG KONG Dollar" />
- <rate from="USD" to="HUF" rate="215.6169" comment="HUNGARY Forint" />
- <rate from="USD" to="ISK" rate="118.1280" comment="ICELAND Krona" />
- <rate from="USD" to="INR" rate="49.49088" comment="INDIA Rupee" />
- <rate from="USD" to="XDR" rate="0.641358" comment="INTNL MON. FUND SDR" />
- <rate from="USD" to="ILS" rate="3.709739" comment="ISRAEL Sheqel" />
- <rate from="USD" to="JPY" rate="76.32419" comment="JAPAN Yen" />
- <rate from="USD" to="KRW" rate="1169.173" comment="KOREA (SOUTH) Won" />
- <rate from="USD" to="KWD" rate="0.275142" comment="KUWAIT Dinar" />
- <rate from="USD" to="MXN" rate="13.85895" comment="MEXICO Peso" />
- <rate from="USD" to="NZD" rate="1.285159" comment="NEW ZEALAND Dollar" />
- <rate from="USD" to="NOK" rate="5.859035" comment="NORWAY Krone" />
- <rate from="USD" to="PKR" rate="87.57007" comment="PAKISTAN Rupee" />
- <rate from="USD" to="PEN" rate="2.730683" comment="PERU Sol" />
- <rate from="USD" to="PHP" rate="43.62039" comment="PHILIPPINES Peso" />
- <rate from="USD" to="PLN" rate="3.310139" comment="POLAND Zloty" />
- <rate from="USD" to="RON" rate="3.100932" comment="ROMANIA Leu" />
- <rate from="USD" to="RUB" rate="32.14663" comment="RUSSIA Ruble" />
- <rate from="USD" to="SAR" rate="3.750465" comment="SAUDI ARABIA Riyal" />
- <rate from="USD" to="SGD" rate="1.299352" comment="SINGAPORE Dollar" />
- <rate from="USD" to="ZAR" rate="8.329761" comment="SOUTH AFRICA Rand" />
- <rate from="USD" to="SEK" rate="6.883442" comment="SWEDEN Krona" />
- <rate from="USD" to="CHF" rate="0.906035" comment="SWITZERLAND Franc" />
- <rate from="USD" to="TWD" rate="30.40283" comment="TAIWAN Dollar" />
- <rate from="USD" to="THB" rate="30.89487" comment="THAILAND Baht" />
- <rate from="USD" to="AED" rate="3.672955" comment="U.A.E. Dirham" />
- <rate from="USD" to="UAH" rate="7.988582" comment="UKRAINE Hryvnia" />
- <rate from="USD" to="GBP" rate="0.647910" comment="UNITED KINGDOM Pound" />
-
- <!-- Cross-rates for some common currencies -->
- <rate from="EUR" to="GBP" rate="0.869914" />
- <rate from="EUR" to="NOK" rate="7.800095" />
- <rate from="GBP" to="NOK" rate="8.966508" />
- </rates>
-</currencyConfig>
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml
deleted file mode 100644
index 8f3aa80fa..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/elevate.xml
+++ /dev/null
@@ -1,38 +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.
--->
-
-<!-- If this file is found in the config directory, it will only be
- loaded once at startup. If it is found in Solr's data
- directory, it will be re-loaded every commit.
-
- See http://wiki.apache.org/solr/QueryElevationComponent for more info
-
--->
-<elevate>
- <query text="foo bar">
- <doc id="1" />
- <doc id="2" />
- <doc id="3" />
- </query>
-
- <query text="ipod">
- <doc id="MA147LL/A" /> <!-- put the actual ipod at the top -->
- <doc id="IW-02" exclude="true" /> <!-- exclude this cable -->
- </query>
-
-</elevate>
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt
deleted file mode 100644
index 307a85f91..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ca.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Set of Catalan contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-d
-l
-m
-n
-s
-t
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt
deleted file mode 100644
index 722db5883..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_fr.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Set of French contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-l
-m
-t
-qu
-n
-s
-j
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt
deleted file mode 100644
index 9ebe7fa34..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_ga.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set of Irish contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-d
-m
-b
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt
deleted file mode 100644
index cac040953..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/contractions_it.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-# Set of Italian contractions for ElisionFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-c
-l
-all
-dall
-dell
-nell
-sull
-coll
-pell
-gl
-agl
-dagl
-degl
-negl
-sugl
-un
-m
-t
-s
-v
-d
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt
deleted file mode 100644
index 4d2642cc5..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/hyphenations_ga.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set of Irish hyphenations for StopFilter
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-h
-n
-t
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt
deleted file mode 100644
index 441072971..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stemdict_nl.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-# Set of overrides for the dutch stemmer
-# TODO: load this as a resource from the analyzer and sync it in build.xml
-fiets fiets
-bromfiets bromfiets
-ei eier
-kind kinder
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt
deleted file mode 100644
index 71b750845..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stoptags_ja.txt
+++ /dev/null
@@ -1,420 +0,0 @@
-#
-# This file defines a Japanese stoptag set for JapanesePartOfSpeechStopFilter.
-#
-# Any token with a part-of-speech tag that exactly matches those defined in this
-# file are removed from the token stream.
-#
-# Set your own stoptags by uncommenting the lines below. Note that comments are
-# not allowed on the same line as a stoptag. See LUCENE-3745 for frequency lists,
-# etc. that can be useful for building you own stoptag set.
-#
-# The entire possible tagset is provided below for convenience.
-#
-#####
-# noun: unclassified nouns
-#名詞
-#
-# noun-common: Common nouns or nouns where the sub-classification is undefined
-#名詞-一般
-#
-# noun-proper: Proper nouns where the sub-classification is undefined
-#名詞-固有名詞
-#
-# noun-proper-misc: miscellaneous proper nouns
-#名詞-固有名詞-一般
-#
-# noun-proper-person: Personal names where the sub-classification is undefined
-#名詞-固有名詞-人名
-#
-# noun-proper-person-misc: names that cannot be divided into surname and
-# given name; foreign names; names where the surname or given name is unknown.
-# e.g. お市の方
-#名詞-固有名詞-人名-一般
-#
-# noun-proper-person-surname: Mainly Japanese surnames.
-# e.g. 山田
-#名詞-固有名詞-人名-姓
-#
-# noun-proper-person-given_name: Mainly Japanese given names.
-# e.g. 太郎
-#名詞-固有名詞-人名-名
-#
-# noun-proper-organization: Names representing organizations.
-# e.g. 通産省, NHK
-#名詞-固有名詞-組織
-#
-# noun-proper-place: Place names where the sub-classification is undefined
-#名詞-固有名詞-地域
-#
-# noun-proper-place-misc: Place names excluding countries.
-# e.g. アジア, バルセロナ, 京都
-#名詞-固有名詞-地域-一般
-#
-# noun-proper-place-country: Country names.
-# e.g. 日本, オーストラリア
-#名詞-固有名詞-地域-国
-#
-# noun-pronoun: Pronouns where the sub-classification is undefined
-#名詞-代名詞
-#
-# noun-pronoun-misc: miscellaneous pronouns:
-# e.g. それ, ここ, あいつ, あなた, あちこち, いくつ, どこか, なに, みなさん, みんな, わたくし, われわれ
-#名詞-代名詞-一般
-#
-# noun-pronoun-contraction: Spoken language contraction made by combining a
-# pronoun and the particle 'wa'.
-# e.g. ありゃ, こりゃ, こりゃあ, そりゃ, そりゃあ
-#名詞-代名詞-縮約
-#
-# noun-adverbial: Temporal nouns such as names of days or months that behave
-# like adverbs. Nouns that represent amount or ratios and can be used adverbially,
-# e.g. 金曜, 一月, 午後, 少量
-#名詞-副詞可能
-#
-# noun-verbal: Nouns that take arguments with case and can appear followed by
-# 'suru' and related verbs (する, できる, なさる, くださる)
-# e.g. インプット, 愛着, 悪化, 悪戦苦闘, 一安心, 下取り
-#名詞-サ変接続
-#
-# noun-adjective-base: The base form of adjectives, words that appear before な ("na")
-# e.g. 健康, 安易, 駄目, だめ
-#名詞-形容動詞語幹
-#
-# noun-numeric: Arabic numbers, Chinese numerals, and counters like 何 (回), 数.
-# e.g. 0, 1, 2, 何, 数, 幾
-#名詞-数
-#
-# noun-affix: noun affixes where the sub-classification is undefined
-#名詞-非自立
-#
-# noun-affix-misc: Of adnominalizers, the case-marker の ("no"), and words that
-# attach to the base form of inflectional words, words that cannot be classified
-# into any of the other categories below. This category includes indefinite nouns.
-# e.g. あかつき, 暁, かい, 甲斐, 気, きらい, 嫌い, くせ, 癖, こと, 事, ごと, 毎, しだい, 次第,
-# 順, せい, 所為, ついで, 序で, つもり, 積もり, 点, どころ, の, はず, 筈, はずみ, 弾み,
-# 拍子, ふう, ふり, 振り, ほう, 方, 旨, もの, 物, 者, ゆえ, 故, ゆえん, 所以, わけ, 訳,
-# わり, 割り, 割, ん-口語/, もん-口語/
-#名詞-非自立-一般
-#
-# noun-affix-adverbial: noun affixes that that can behave as adverbs.
-# e.g. あいだ, 間, あげく, 挙げ句, あと, 後, 余り, 以外, 以降, 以後, 以上, 以前, 一方, うえ,
-# 上, うち, 内, おり, 折り, かぎり, 限り, きり, っきり, 結果, ころ, 頃, さい, 際, 最中, さなか,
-# 最中, じたい, 自体, たび, 度, ため, 為, つど, 都度, とおり, 通り, とき, 時, ところ, 所,
-# とたん, 途端, なか, 中, のち, 後, ばあい, 場合, 日, ぶん, 分, ほか, 他, まえ, 前, まま,
-# 儘, 侭, みぎり, 矢先
-#名詞-非自立-副詞可能
-#
-# noun-affix-aux: noun affixes treated as 助動詞 ("auxiliary verb") in school grammars
-# with the stem よう(だ) ("you(da)").
-# e.g. よう, やう, 様 (よう)
-#名詞-非自立-助動詞語幹
-#
-# noun-affix-adjective-base: noun affixes that can connect to the indeclinable
-# connection form な (aux "da").
-# e.g. みたい, ふう
-#名詞-非自立-形容動詞語幹
-#
-# noun-special: special nouns where the sub-classification is undefined.
-#名詞-特殊
-#
-# noun-special-aux: The そうだ ("souda") stem form that is used for reporting news, is
-# treated as 助動詞 ("auxiliary verb") in school grammars, and attach to the base
-# form of inflectional words.
-# e.g. そう
-#名詞-特殊-助動詞語幹
-#
-# noun-suffix: noun suffixes where the sub-classification is undefined.
-#名詞-接尾
-#
-# noun-suffix-misc: Of the nouns or stem forms of other parts of speech that connect
-# to ガル or タイ and can combine into compound nouns, words that cannot be classified into
-# any of the other categories below. In general, this category is more inclusive than
-# 接尾語 ("suffix") and is usually the last element in a compound noun.
-# e.g. おき, かた, 方, 甲斐 (がい), がかり, ぎみ, 気味, ぐるみ, (~した) さ, 次第, 済 (ず) み,
-# よう, (でき)っこ, 感, 観, 性, 学, 類, 面, 用
-#名詞-接尾-一般
-#
-# noun-suffix-person: Suffixes that form nouns and attach to person names more often
-# than other nouns.
-# e.g. 君, 様, 著
-#名詞-接尾-人名
-#
-# noun-suffix-place: Suffixes that form nouns and attach to place names more often
-# than other nouns.
-# e.g. 町, 市, 県
-#名詞-接尾-地域
-#
-# noun-suffix-verbal: Of the suffixes that attach to nouns and form nouns, those that
-# can appear before スル ("suru").
-# e.g. 化, 視, 分け, 入り, 落ち, 買い
-#名詞-接尾-サ変接続
-#
-# noun-suffix-aux: The stem form of そうだ (様態) that is used to indicate conditions,
-# is treated as 助動詞 ("auxiliary verb") in school grammars, and attach to the
-# conjunctive form of inflectional words.
-# e.g. そう
-#名詞-接尾-助動詞語幹
-#
-# noun-suffix-adjective-base: Suffixes that attach to other nouns or the conjunctive
-# form of inflectional words and appear before the copula だ ("da").
-# e.g. 的, げ, がち
-#名詞-接尾-形容動詞語幹
-#
-# noun-suffix-adverbial: Suffixes that attach to other nouns and can behave as adverbs.
-# e.g. 後 (ご), 以後, 以降, 以前, 前後, 中, 末, 上, 時 (じ)
-#名詞-接尾-副詞可能
-#
-# noun-suffix-classifier: Suffixes that attach to numbers and form nouns. This category
-# is more inclusive than 助数詞 ("classifier") and includes common nouns that attach
-# to numbers.
-# e.g. 個, つ, 本, 冊, パーセント, cm, kg, カ月, か国, 区画, 時間, 時半
-#名詞-接尾-助数詞
-#
-# noun-suffix-special: Special suffixes that mainly attach to inflecting words.
-# e.g. (楽し) さ, (考え) 方
-#名詞-接尾-特殊
-#
-# noun-suffix-conjunctive: Nouns that behave like conjunctions and join two words
-# together.
-# e.g. (日本) 対 (アメリカ), 対 (アメリカ), (3) 対 (5), (女優) 兼 (主婦)
-#名詞-接続詞的
-#
-# noun-verbal_aux: Nouns that attach to the conjunctive particle て ("te") and are
-# semantically verb-like.
-# e.g. ごらん, ご覧, 御覧, 頂戴
-#名詞-動詞非自立的
-#
-# noun-quotation: text that cannot be segmented into words, proverbs, Chinese poetry,
-# dialects, English, etc. Currently, the only entry for 名詞 引用文字列 ("noun quotation")
-# is いわく ("iwaku").
-#名詞-引用文字列
-#
-# noun-nai_adjective: Words that appear before the auxiliary verb ない ("nai") and
-# behave like an adjective.
-# e.g. 申し訳, 仕方, とんでも, 違い
-#名詞-ナイ形容詞語幹
-#
-#####
-# prefix: unclassified prefixes
-#接頭詞
-#
-# prefix-nominal: Prefixes that attach to nouns (including adjective stem forms)
-# excluding numerical expressions.
-# e.g. お (水), 某 (氏), 同 (社), 故 (~氏), 高 (品質), お (見事), ご (立派)
-#接頭詞-名詞接続
-#
-# prefix-verbal: Prefixes that attach to the imperative form of a verb or a verb
-# in conjunctive form followed by なる/なさる/くださる.
-# e.g. お (読みなさい), お (座り)
-#接頭詞-動詞接続
-#
-# prefix-adjectival: Prefixes that attach to adjectives.
-# e.g. お (寒いですねえ), バカ (でかい)
-#接頭詞-形容詞接続
-#
-# prefix-numerical: Prefixes that attach to numerical expressions.
-# e.g. 約, およそ, 毎時
-#接頭詞-数接続
-#
-#####
-# verb: unclassified verbs
-#動詞
-#
-# verb-main:
-#動詞-自立
-#
-# verb-auxiliary:
-#動詞-非自立
-#
-# verb-suffix:
-#動詞-接尾
-#
-#####
-# adjective: unclassified adjectives
-#形容詞
-#
-# adjective-main:
-#形容詞-自立
-#
-# adjective-auxiliary:
-#形容詞-非自立
-#
-# adjective-suffix:
-#形容詞-接尾
-#
-#####
-# adverb: unclassified adverbs
-#副詞
-#
-# adverb-misc: Words that can be segmented into one unit and where adnominal
-# modification is not possible.
-# e.g. あいかわらず, 多分
-#副詞-一般
-#
-# adverb-particle_conjunction: Adverbs that can be followed by の, は, に,
-# な, する, だ, etc.
-# e.g. こんなに, そんなに, あんなに, なにか, なんでも
-#副詞-助詞類接続
-#
-#####
-# adnominal: Words that only have noun-modifying forms.
-# e.g. この, その, あの, どの, いわゆる, なんらかの, 何らかの, いろんな, こういう, そういう, ああいう,
-# どういう, こんな, そんな, あんな, どんな, 大きな, 小さな, おかしな, ほんの, たいした,
-# 「(, も) さる (ことながら)」, 微々たる, 堂々たる, 単なる, いかなる, 我が」「同じ, 亡き
-#連体詞
-#
-#####
-# conjunction: Conjunctions that can occur independently.
-# e.g. が, けれども, そして, じゃあ, それどころか
-接続詞
-#
-#####
-# particle: unclassified particles.
-助詞
-#
-# particle-case: case particles where the subclassification is undefined.
-助詞-格助詞
-#
-# particle-case-misc: Case particles.
-# e.g. から, が, で, と, に, へ, より, を, の, にて
-助詞-格助詞-一般
-#
-# particle-case-quote: the "to" that appears after nouns, a person’s speech,
-# quotation marks, expressions of decisions from a meeting, reasons, judgements,
-# conjectures, etc.
-# e.g. ( だ) と (述べた.), ( である) と (して執行猶予...)
-助詞-格助詞-引用
-#
-# particle-case-compound: Compounds of particles and verbs that mainly behave
-# like case particles.
-# e.g. という, といった, とかいう, として, とともに, と共に, でもって, にあたって, に当たって, に当って,
-# にあたり, に当たり, に当り, に当たる, にあたる, において, に於いて,に於て, における, に於ける,
-# にかけ, にかけて, にかんし, に関し, にかんして, に関して, にかんする, に関する, に際し,
-# に際して, にしたがい, に従い, に従う, にしたがって, に従って, にたいし, に対し, にたいして,
-# に対して, にたいする, に対する, について, につき, につけ, につけて, につれ, につれて, にとって,
-# にとり, にまつわる, によって, に依って, に因って, により, に依り, に因り, による, に依る, に因る,
-# にわたって, にわたる, をもって, を以って, を通じ, を通じて, を通して, をめぐって, をめぐり, をめぐる,
-# って-口語/, ちゅう-関西弁「という」/, (何) ていう (人)-口語/, っていう-口語/, といふ, とかいふ
-助詞-格助詞-連語
-#
-# particle-conjunctive:
-# e.g. から, からには, が, けれど, けれども, けど, し, つつ, て, で, と, ところが, どころか, とも, ども,
-# ながら, なり, ので, のに, ば, ものの, や ( した), やいなや, (ころん) じゃ(いけない)-口語/,
-# (行っ) ちゃ(いけない)-口語/, (言っ) たって (しかたがない)-口語/, (それがなく)ったって (平気)-口語/
-助詞-接続助詞
-#
-# particle-dependency:
-# e.g. こそ, さえ, しか, すら, は, も, ぞ
-助詞-係助詞
-#
-# particle-adverbial:
-# e.g. がてら, かも, くらい, 位, ぐらい, しも, (学校) じゃ(これが流行っている)-口語/,
-# (それ)じゃあ (よくない)-口語/, ずつ, (私) なぞ, など, (私) なり (に), (先生) なんか (大嫌い)-口語/,
-# (私) なんぞ, (先生) なんて (大嫌い)-口語/, のみ, だけ, (私) だって-口語/, だに,
-# (彼)ったら-口語/, (お茶) でも (いかが), 等 (とう), (今後) とも, ばかり, ばっか-口語/, ばっかり-口語/,
-# ほど, 程, まで, 迄, (誰) も (が)([助詞-格助詞] および [助詞-係助詞] の前に位置する「も」)
-助詞-副助詞
-#
-# particle-interjective: particles with interjective grammatical roles.
-# e.g. (松島) や
-助詞-間投助詞
-#
-# particle-coordinate:
-# e.g. と, たり, だの, だり, とか, なり, や, やら
-助詞-並立助詞
-#
-# particle-final:
-# e.g. かい, かしら, さ, ぜ, (だ)っけ-口語/, (とまってる) で-方言/, な, ナ, なあ-口語/, ぞ, ね, ネ,
-# ねぇ-口語/, ねえ-口語/, ねん-方言/, の, のう-口語/, や, よ, ヨ, よぉ-口語/, わ, わい-口語/
-助詞-終助詞
-#
-# particle-adverbial/conjunctive/final: The particle "ka" when unknown whether it is
-# adverbial, conjunctive, or sentence final. For example:
-# (a) 「A か B か」. Ex:「(国内で運用する) か,(海外で運用する) か (.)」
-# (b) Inside an adverb phrase. Ex:「(幸いという) か (, 死者はいなかった.)」
-# 「(祈りが届いたせい) か (, 試験に合格した.)」
-# (c) 「かのように」. Ex:「(何もなかった) か (のように振る舞った.)」
-# e.g. か
-助詞-副助詞/並立助詞/終助詞
-#
-# particle-adnominalizer: The "no" that attaches to nouns and modifies
-# non-inflectional words.
-助詞-連体化
-#
-# particle-adnominalizer: The "ni" and "to" that appear following nouns and adverbs
-# that are giongo, giseigo, or gitaigo.
-# e.g. に, と
-助詞-副詞化
-#
-# particle-special: A particle that does not fit into one of the above classifications.
-# This includes particles that are used in Tanka, Haiku, and other poetry.
-# e.g. かな, けむ, ( しただろう) に, (あんた) にゃ(わからん), (俺) ん (家)
-助詞-特殊
-#
-#####
-# auxiliary-verb:
-助動詞
-#
-#####
-# interjection: Greetings and other exclamations.
-# e.g. おはよう, おはようございます, こんにちは, こんばんは, ありがとう, どうもありがとう, ありがとうございます,
-# いただきます, ごちそうさま, さよなら, さようなら, はい, いいえ, ごめん, ごめんなさい
-#感動詞
-#
-#####
-# symbol: unclassified Symbols.
-記号
-#
-# symbol-misc: A general symbol not in one of the categories below.
-# e.g. [○◎@$〒→+]
-記号-一般
-#
-# symbol-comma: Commas
-# e.g. [,、]
-記号-読点
-#
-# symbol-period: Periods and full stops.
-# e.g. [..。]
-記号-句点
-#
-# symbol-space: Full-width whitespace.
-記号-空白
-#
-# symbol-open_bracket:
-# e.g. [({‘“『【]
-記号-括弧開
-#
-# symbol-close_bracket:
-# e.g. [)}’”』」】]
-記号-括弧閉
-#
-# symbol-alphabetic:
-#記号-アルファベット
-#
-#####
-# other: unclassified other
-#その他
-#
-# other-interjection: Words that are hard to classify as noun-suffixes or
-# sentence-final particles.
-# e.g. (だ)ァ
-その他-間投
-#
-#####
-# filler: Aizuchi that occurs during a conversation or sounds inserted as filler.
-# e.g. あの, うんと, えと
-フィラー
-#
-#####
-# non-verbal: non-verbal sound.
-非言語音
-#
-#####
-# fragment:
-#語断片
-#
-#####
-# unknown: unknown part of speech.
-#未知語
-#
-##### End of file
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt
deleted file mode 100644
index 046829db6..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ar.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-# Cleaned on October 11, 2009 (not normalized, so use before normalization)
-# This means that when modifying this list, you might need to add some
-# redundant entries, for example containing forms with both أ and ا
-من
-ومن
-منها
-منه
-في
-وفي
-فيها
-فيه
-و
-ف
-ثم
-او
-أو
-ب
-بها
-به
-ا
-أ
-اى
-اي
-أي
-أى
-لا
-ولا
-الا
-ألا
-إلا
-لكن
-ما
-وما
-كما
-فما
-عن
-مع
-اذا
-إذا
-ان
-أن
-إن
-انها
-أنها
-إنها
-انه
-أنه
-إنه
-بان
-بأن
-فان
-فأن
-وان
-وأن
-وإن
-التى
-التي
-الذى
-الذي
-الذين
-الى
-الي
-إلى
-إلي
-على
-عليها
-عليه
-اما
-أما
-إما
-ايضا
-أيضا
-كل
-وكل
-لم
-ولم
-لن
-ولن
-هى
-هي
-هو
-وهى
-وهي
-وهو
-فهى
-فهي
-فهو
-انت
-أنت
-لك
-لها
-له
-هذه
-هذا
-تلك
-ذلك
-هناك
-كانت
-كان
-يكون
-تكون
-وكانت
-وكان
-غير
-بعض
-قد
-نحو
-بين
-بينما
-منذ
-ضمن
-حيث
-الان
-الآن
-خلال
-بعد
-قبل
-حتى
-عند
-عندما
-لدى
-جميع
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt
deleted file mode 100644
index 1ae4ba2ae..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_bg.txt
+++ /dev/null
@@ -1,193 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-а
-аз
-ако
-ала
-бе
-без
-беше
-би
-бил
-била
-били
-било
-близо
-бъдат
-бъде
-бяха
-в
-вас
-ваш
-ваша
-вероятно
-вече
-взема
-ви
-вие
-винаги
-все
-всеки
-всички
-всичко
-всяка
-във
-въпреки
-върху
-г
-ги
-главно
-го
-д
-да
-дали
-до
-докато
-докога
-дори
-досега
-доста
-е
-едва
-един
-ето
-за
-зад
-заедно
-заради
-засега
-затова
-защо
-защото
-и
-из
-или
-им
-има
-имат
-иска
-й
-каза
-как
-каква
-какво
-както
-какъв
-като
-кога
-когато
-което
-които
-кой
-който
-колко
-която
-къде
-където
-към
-ли
-м
-ме
-между
-мен
-ми
-мнозина
-мога
-могат
-може
-моля
-момента
-му
-н
-на
-над
-назад
-най
-направи
-напред
-например
-нас
-не
-него
-нея
-ни
-ние
-никой
-нито
-но
-някои
-някой
-няма
-обаче
-около
-освен
-особено
-от
-отгоре
-отново
-още
-пак
-по
-повече
-повечето
-под
-поне
-поради
-после
-почти
-прави
-пред
-преди
-през
-при
-пък
-първо
-с
-са
-само
-се
-сега
-си
-скоро
-след
-сме
-според
-сред
-срещу
-сте
-съм
-със
-също
-т
-тази
-така
-такива
-такъв
-там
-твой
-те
-тези
-ти
-тн
-то
-това
-тогава
-този
-той
-толкова
-точно
-трябва
-тук
-тъй
-тя
-тях
-у
-харесва
-ч
-че
-често
-чрез
-ще
-щом
-я
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt
deleted file mode 100644
index 3da65deaf..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ca.txt
+++ /dev/null
@@ -1,220 +0,0 @@
-# Catalan stopwords from http://github.com/vcl/cue.language (Apache 2 Licensed)
-a
-abans
-ací
-ah
-així
-això
-al
-als
-aleshores
-algun
-alguna
-algunes
-alguns
-alhora
-allà
-allí
-allò
-altra
-altre
-altres
-amb
-ambdós
-ambdues
-apa
-aquell
-aquella
-aquelles
-aquells
-aquest
-aquesta
-aquestes
-aquests
-aquí
-baix
-cada
-cadascú
-cadascuna
-cadascunes
-cadascuns
-com
-contra
-d'un
-d'una
-d'unes
-d'uns
-dalt
-de
-del
-dels
-des
-després
-dins
-dintre
-donat
-doncs
-durant
-e
-eh
-el
-els
-em
-en
-encara
-ens
-entre
-érem
-eren
-éreu
-es
-és
-esta
-està
-estàvem
-estaven
-estàveu
-esteu
-et
-etc
-ets
-fins
-fora
-gairebé
-ha
-han
-has
-havia
-he
-hem
-heu
-hi
-ho
-i
-igual
-iguals
-ja
-l'hi
-la
-les
-li
-li'n
-llavors
-m'he
-ma
-mal
-malgrat
-mateix
-mateixa
-mateixes
-mateixos
-me
-mentre
-més
-meu
-meus
-meva
-meves
-molt
-molta
-moltes
-molts
-mon
-mons
-n'he
-n'hi
-ne
-ni
-no
-nogensmenys
-només
-nosaltres
-nostra
-nostre
-nostres
-o
-oh
-oi
-on
-pas
-pel
-pels
-per
-però
-perquè
-poc
-poca
-pocs
-poques
-potser
-propi
-qual
-quals
-quan
-quant
-que
-què
-quelcom
-qui
-quin
-quina
-quines
-quins
-s'ha
-s'han
-sa
-semblant
-semblants
-ses
-seu
-seus
-seva
-seva
-seves
-si
-sobre
-sobretot
-sóc
-solament
-sols
-son
-són
-sons
-sota
-sou
-t'ha
-t'han
-t'he
-ta
-tal
-també
-tampoc
-tan
-tant
-tanta
-tantes
-teu
-teus
-teva
-teves
-ton
-tons
-tot
-tota
-totes
-tots
-un
-una
-unes
-uns
-us
-va
-vaig
-vam
-van
-vas
-veu
-vosaltres
-vostra
-vostre
-vostres
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt
deleted file mode 100644
index 53c6097da..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_cz.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-a
-s
-k
-o
-i
-u
-v
-z
-dnes
-cz
-tímto
-budeš
-budem
-byli
-jseš
-můj
-svým
-ta
-tomto
-tohle
-tuto
-tyto
-jej
-zda
-proč
-máte
-tato
-kam
-tohoto
-kdo
-kteří
-mi
-nám
-tom
-tomuto
-mít
-nic
-proto
-kterou
-byla
-toho
-protože
-asi
-ho
-naši
-napište
-re
-což
-tím
-takže
-svých
-její
-svými
-jste
-aj
-tu
-tedy
-teto
-bylo
-kde
-ke
-pravé
-ji
-nad
-nejsou
-či
-pod
-téma
-mezi
-přes
-ty
-pak
-vám
-ani
-když
-však
-neg
-jsem
-tento
-článku
-články
-aby
-jsme
-před
-pta
-jejich
-byl
-ještě
-až
-bez
-také
-pouze
-první
-vaše
-která
-nás
-nový
-tipy
-pokud
-může
-strana
-jeho
-své
-jiné
-zprávy
-nové
-není
-vás
-jen
-podle
-zde
-už
-být
-více
-bude
-již
-než
-který
-by
-které
-co
-nebo
-ten
-tak
-má
-při
-od
-po
-jsou
-jak
-další
-ale
-si
-se
-ve
-to
-jako
-za
-zpět
-ze
-do
-pro
-je
-na
-atd
-atp
-jakmile
-přičemž
-já
-on
-ona
-ono
-oni
-ony
-my
-vy
-jí
-ji
-mě
-mne
-jemu
-tomu
-těm
-těmu
-němu
-němuž
-jehož
-jíž
-jelikož
-jež
-jakož
-načež
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt
deleted file mode 100644
index a3ff5fe12..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_da.txt
+++ /dev/null
@@ -1,108 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/danish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A Danish stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This is a ranked list (commonest to rarest) of stopwords derived from
- | a large text sample.
-
-
-og | and
-i | in
-jeg | I
-det | that (dem. pronoun)/it (pers. pronoun)
-at | that (in front of a sentence)/to (with infinitive)
-en | a/an
-den | it (pers. pronoun)/that (dem. pronoun)
-til | to/at/for/until/against/by/of/into, more
-er | present tense of "to be"
-som | who, as
-på | on/upon/in/on/at/to/after/of/with/for, on
-de | they
-med | with/by/in, along
-han | he
-af | of/by/from/off/for/in/with/on, off
-for | at/for/to/from/by/of/ago, in front/before, because
-ikke | not
-der | who/which, there/those
-var | past tense of "to be"
-mig | me/myself
-sig | oneself/himself/herself/itself/themselves
-men | but
-et | a/an/one, one (number), someone/somebody/one
-har | present tense of "to have"
-om | round/about/for/in/a, about/around/down, if
-vi | we
-min | my
-havde | past tense of "to have"
-ham | him
-hun | she
-nu | now
-over | over/above/across/by/beyond/past/on/about, over/past
-da | then, when/as/since
-fra | from/off/since, off, since
-du | you
-ud | out
-sin | his/her/its/one's
-dem | them
-os | us/ourselves
-op | up
-man | you/one
-hans | his
-hvor | where
-eller | or
-hvad | what
-skal | must/shall etc.
-selv | myself/youself/herself/ourselves etc., even
-her | here
-alle | all/everyone/everybody etc.
-vil | will (verb)
-blev | past tense of "to stay/to remain/to get/to become"
-kunne | could
-ind | in
-når | when
-være | present tense of "to be"
-dog | however/yet/after all
-noget | something
-ville | would
-jo | you know/you see (adv), yes
-deres | their/theirs
-efter | after/behind/according to/for/by/from, later/afterwards
-ned | down
-skulle | should
-denne | this
-end | than
-dette | this
-mit | my/mine
-også | also
-under | under/beneath/below/during, below/underneath
-have | have
-dig | you
-anden | other
-hende | her
-mine | my
-alt | everything
-meget | much/very, plenty of
-sit | his, her, its, one's
-sine | his, her, its, one's
-vor | our
-mod | against
-disse | these
-hvis | if
-din | your/yours
-nogle | some
-hos | by/at
-blive | be/become
-mange | many
-ad | by/through
-bliver | present tense of "to be/to become"
-hendes | her/hers
-været | be
-thi | for (conj)
-jer | you
-sådan | such, like this/like that
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt
deleted file mode 100644
index f77038418..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_de.txt
+++ /dev/null
@@ -1,292 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/german/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A German stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | The number of forms in this list is reduced significantly by passing it
- | through the German stemmer.
-
-
-aber | but
-
-alle | all
-allem
-allen
-aller
-alles
-
-als | than, as
-also | so
-am | an + dem
-an | at
-
-ander | other
-andere
-anderem
-anderen
-anderer
-anderes
-anderm
-andern
-anderr
-anders
-
-auch | also
-auf | on
-aus | out of
-bei | by
-bin | am
-bis | until
-bist | art
-da | there
-damit | with it
-dann | then
-
-der | the
-den
-des
-dem
-die
-das
-
-daß | that
-
-derselbe | the same
-derselben
-denselben
-desselben
-demselben
-dieselbe
-dieselben
-dasselbe
-
-dazu | to that
-
-dein | thy
-deine
-deinem
-deinen
-deiner
-deines
-
-denn | because
-
-derer | of those
-dessen | of him
-
-dich | thee
-dir | to thee
-du | thou
-
-dies | this
-diese
-diesem
-diesen
-dieser
-dieses
-
-
-doch | (several meanings)
-dort | (over) there
-
-
-durch | through
-
-ein | a
-eine
-einem
-einen
-einer
-eines
-
-einig | some
-einige
-einigem
-einigen
-einiger
-einiges
-
-einmal | once
-
-er | he
-ihn | him
-ihm | to him
-
-es | it
-etwas | something
-
-euer | your
-eure
-eurem
-euren
-eurer
-eures
-
-für | for
-gegen | towards
-gewesen | p.p. of sein
-hab | have
-habe | have
-haben | have
-hat | has
-hatte | had
-hatten | had
-hier | here
-hin | there
-hinter | behind
-
-ich | I
-mich | me
-mir | to me
-
-
-ihr | you, to her
-ihre
-ihrem
-ihren
-ihrer
-ihres
-euch | to you
-
-im | in + dem
-in | in
-indem | while
-ins | in + das
-ist | is
-
-jede | each, every
-jedem
-jeden
-jeder
-jedes
-
-jene | that
-jenem
-jenen
-jener
-jenes
-
-jetzt | now
-kann | can
-
-kein | no
-keine
-keinem
-keinen
-keiner
-keines
-
-können | can
-könnte | could
-machen | do
-man | one
-
-manche | some, many a
-manchem
-manchen
-mancher
-manches
-
-mein | my
-meine
-meinem
-meinen
-meiner
-meines
-
-mit | with
-muss | must
-musste | had to
-nach | to(wards)
-nicht | not
-nichts | nothing
-noch | still, yet
-nun | now
-nur | only
-ob | whether
-oder | or
-ohne | without
-sehr | very
-
-sein | his
-seine
-seinem
-seinen
-seiner
-seines
-
-selbst | self
-sich | herself
-
-sie | they, she
-ihnen | to them
-
-sind | are
-so | so
-
-solche | such
-solchem
-solchen
-solcher
-solches
-
-soll | shall
-sollte | should
-sondern | but
-sonst | else
-über | over
-um | about, around
-und | and
-
-uns | us
-unse
-unsem
-unsen
-unser
-unses
-
-unter | under
-viel | much
-vom | von + dem
-von | from
-vor | before
-während | while
-war | was
-waren | were
-warst | wast
-was | what
-weg | away, off
-weil | because
-weiter | further
-
-welche | which
-welchem
-welchen
-welcher
-welches
-
-wenn | when
-werde | will
-werden | will
-wie | how
-wieder | again
-will | want
-wir | we
-wird | will
-wirst | willst
-wo | where
-wollen | want
-wollte | wanted
-würde | would
-würden | would
-zu | to
-zum | zu + dem
-zur | zu + der
-zwar | indeed
-zwischen | between
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt
deleted file mode 100644
index 232681f5b..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_el.txt
+++ /dev/null
@@ -1,78 +0,0 @@
-# Lucene Greek Stopwords list
-# Note: by default this file is used after GreekLowerCaseFilter,
-# so when modifying this file use 'σ' instead of 'ς'
-ο
-η
-το
-οι
-τα
-του
-τησ
-των
-τον
-την
-και
-κι
-κ
-ειμαι
-εισαι
-ειναι
-ειμαστε
-ειστε
-στο
-στον
-στη
-στην
-μα
-αλλα
-απο
-για
-προσ
-με
-σε
-ωσ
-παρα
-αντι
-κατα
-μετα
-θα
-να
-δε
-δεν
-μη
-μην
-επι
-ενω
-εαν
-αν
-τοτε
-που
-πωσ
-ποιοσ
-ποια
-ποιο
-ποιοι
-ποιεσ
-ποιων
-ποιουσ
-αυτοσ
-αυτη
-αυτο
-αυτοι
-αυτων
-αυτουσ
-αυτεσ
-αυτα
-εκεινοσ
-εκεινη
-εκεινο
-εκεινοι
-εκεινεσ
-εκεινα
-εκεινων
-εκεινουσ
-οπωσ
-ομωσ
-ισωσ
-οσο
-οτι
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt
deleted file mode 100644
index 2c164c0b2..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_en.txt
+++ /dev/null
@@ -1,54 +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.
-
-# a couple of test stopwords to test that the words are really being
-# configured from this file:
-stopworda
-stopwordb
-
-# Standard english stop words taken from Lucene's StopAnalyzer
-a
-an
-and
-are
-as
-at
-be
-but
-by
-for
-if
-in
-into
-is
-it
-no
-not
-of
-on
-or
-such
-that
-the
-their
-then
-there
-these
-they
-this
-to
-was
-will
-with
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt
deleted file mode 100644
index 2db147600..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_es.txt
+++ /dev/null
@@ -1,354 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/spanish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A Spanish stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-
- | The following is a ranked list (commonest to rarest) of stopwords
- | deriving from a large sample of text.
-
- | Extra words have been added at the end.
-
-de | from, of
-la | the, her
-que | who, that
-el | the
-en | in
-y | and
-a | to
-los | the, them
-del | de + el
-se | himself, from him etc
-las | the, them
-por | for, by, etc
-un | a
-para | for
-con | with
-no | no
-una | a
-su | his, her
-al | a + el
- | es from SER
-lo | him
-como | how
-más | more
-pero | pero
-sus | su plural
-le | to him, her
-ya | already
-o | or
- | fue from SER
-este | this
- | ha from HABER
-sí | himself etc
-porque | because
-esta | this
- | son from SER
-entre | between
- | está from ESTAR
-cuando | when
-muy | very
-sin | without
-sobre | on
- | ser from SER
- | tiene from TENER
-también | also
-me | me
-hasta | until
-hay | there is/are
-donde | where
- | han from HABER
-quien | whom, that
- | están from ESTAR
- | estado from ESTAR
-desde | from
-todo | all
-nos | us
-durante | during
- | estados from ESTAR
-todos | all
-uno | a
-les | to them
-ni | nor
-contra | against
-otros | other
- | fueron from SER
-ese | that
-eso | that
- | había from HABER
-ante | before
-ellos | they
-e | and (variant of y)
-esto | this
-mí | me
-antes | before
-algunos | some
-qué | what?
-unos | a
-yo | I
-otro | other
-otras | other
-otra | other
-él | he
-tanto | so much, many
-esa | that
-estos | these
-mucho | much, many
-quienes | who
-nada | nothing
-muchos | many
-cual | who
- | sea from SER
-poco | few
-ella | she
-estar | to be
- | haber from HABER
-estas | these
- | estaba from ESTAR
- | estamos from ESTAR
-algunas | some
-algo | something
-nosotros | we
-
- | other forms
-
-mi | me
-mis | mi plural
-tú | thou
-te | thee
-ti | thee
-tu | thy
-tus | tu plural
-ellas | they
-nosotras | we
-vosotros | you
-vosotras | you
-os | you
-mío | mine
-mía |
-míos |
-mías |
-tuyo | thine
-tuya |
-tuyos |
-tuyas |
-suyo | his, hers, theirs
-suya |
-suyos |
-suyas |
-nuestro | ours
-nuestra |
-nuestros |
-nuestras |
-vuestro | yours
-vuestra |
-vuestros |
-vuestras |
-esos | those
-esas | those
-
- | forms of estar, to be (not including the infinitive):
-estoy
-estás
-está
-estamos
-estáis
-están
-esté
-estés
-estemos
-estéis
-estén
-estaré
-estarás
-estará
-estaremos
-estaréis
-estarán
-estaría
-estarías
-estaríamos
-estaríais
-estarían
-estaba
-estabas
-estábamos
-estabais
-estaban
-estuve
-estuviste
-estuvo
-estuvimos
-estuvisteis
-estuvieron
-estuviera
-estuvieras
-estuviéramos
-estuvierais
-estuvieran
-estuviese
-estuvieses
-estuviésemos
-estuvieseis
-estuviesen
-estando
-estado
-estada
-estados
-estadas
-estad
-
- | forms of haber, to have (not including the infinitive):
-he
-has
-ha
-hemos
-habéis
-han
-haya
-hayas
-hayamos
-hayáis
-hayan
-habré
-habrás
-habrá
-habremos
-habréis
-habrán
-habría
-habrías
-habríamos
-habríais
-habrían
-había
-habías
-habíamos
-habíais
-habían
-hube
-hubiste
-hubo
-hubimos
-hubisteis
-hubieron
-hubiera
-hubieras
-hubiéramos
-hubierais
-hubieran
-hubiese
-hubieses
-hubiésemos
-hubieseis
-hubiesen
-habiendo
-habido
-habida
-habidos
-habidas
-
- | forms of ser, to be (not including the infinitive):
-soy
-eres
-es
-somos
-sois
-son
-sea
-seas
-seamos
-seáis
-sean
-seré
-serás
-será
-seremos
-seréis
-serán
-sería
-serías
-seríamos
-seríais
-serían
-era
-eras
-éramos
-erais
-eran
-fui
-fuiste
-fue
-fuimos
-fuisteis
-fueron
-fuera
-fueras
-fuéramos
-fuerais
-fueran
-fuese
-fueses
-fuésemos
-fueseis
-fuesen
-siendo
-sido
- | sed also means 'thirst'
-
- | forms of tener, to have (not including the infinitive):
-tengo
-tienes
-tiene
-tenemos
-tenéis
-tienen
-tenga
-tengas
-tengamos
-tengáis
-tengan
-tendré
-tendrás
-tendrá
-tendremos
-tendréis
-tendrán
-tendría
-tendrías
-tendríamos
-tendríais
-tendrían
-tenía
-tenías
-teníamos
-teníais
-tenían
-tuve
-tuviste
-tuvo
-tuvimos
-tuvisteis
-tuvieron
-tuviera
-tuvieras
-tuviéramos
-tuvierais
-tuvieran
-tuviese
-tuvieses
-tuviésemos
-tuvieseis
-tuviesen
-teniendo
-tenido
-tenida
-tenidos
-tenidas
-tened
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt
deleted file mode 100644
index 25f1db934..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_eu.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-# example set of basque stopwords
-al
-anitz
-arabera
-asko
-baina
-bat
-batean
-batek
-bati
-batzuei
-batzuek
-batzuetan
-batzuk
-bera
-beraiek
-berau
-berauek
-bere
-berori
-beroriek
-beste
-bezala
-da
-dago
-dira
-ditu
-du
-dute
-edo
-egin
-ere
-eta
-eurak
-ez
-gainera
-gu
-gutxi
-guzti
-haiei
-haiek
-haietan
-hainbeste
-hala
-han
-handik
-hango
-hara
-hari
-hark
-hartan
-hau
-hauei
-hauek
-hauetan
-hemen
-hemendik
-hemengo
-hi
-hona
-honek
-honela
-honetan
-honi
-hor
-hori
-horiei
-horiek
-horietan
-horko
-horra
-horrek
-horrela
-horretan
-horri
-hortik
-hura
-izan
-ni
-noiz
-nola
-non
-nondik
-nongo
-nor
-nora
-ze
-zein
-zen
-zenbait
-zenbat
-zer
-zergatik
-ziren
-zituen
-zu
-zuek
-zuen
-zuten
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt
deleted file mode 100644
index 723641c6d..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fa.txt
+++ /dev/null
@@ -1,313 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-# Note: by default this file is used after normalization, so when adding entries
-# to this file, use the arabic 'ي' instead of 'ی'
-انان
-نداشته
-سراسر
-خياه
-ايشان
-وي
-تاكنون
-بيشتري
-دوم
-پس
-ناشي
-وگو
-يا
-داشتند
-سپس
-هنگام
-هرگز
-پنج
-نشان
-امسال
-ديگر
-گروهي
-شدند
-چطور
-ده
-و
-دو
-نخستين
-ولي
-چرا
-چه
-وسط
-ه
-كدام
-قابل
-يك
-رفت
-هفت
-همچنين
-در
-هزار
-بله
-بلي
-شايد
-اما
-شناسي
-گرفته
-دهد
-داشته
-دانست
-داشتن
-خواهيم
-ميليارد
-وقتيكه
-امد
-خواهد
-جز
-اورده
-شده
-بلكه
-خدمات
-شدن
-برخي
-نبود
-بسياري
-جلوگيري
-حق
-كردند
-نوعي
-بعري
-نكرده
-نظير
-نبايد
-بوده
-بودن
-داد
-اورد
-هست
-جايي
-شود
-دنبال
-داده
-بايد
-سابق
-هيچ
-همان
-انجا
-كمتر
-كجاست
-گردد
-كسي
-تر
-مردم
-تان
-دادن
-بودند
-سري
-جدا
-ندارند
-مگر
-يكديگر
-دارد
-دهند
-بنابراين
-هنگامي
-سمت
-جا
-انچه
-خود
-دادند
-زياد
-دارند
-اثر
-بدون
-بهترين
-بيشتر
-البته
-به
-براساس
-بيرون
-كرد
-بعضي
-گرفت
-توي
-اي
-ميليون
-او
-جريان
-تول
-بر
-مانند
-برابر
-باشيم
-مدتي
-گويند
-اكنون
-تا
-تنها
-جديد
-چند
-بي
-نشده
-كردن
-كردم
-گويد
-كرده
-كنيم
-نمي
-نزد
-روي
-قصد
-فقط
-بالاي
-ديگران
-اين
-ديروز
-توسط
-سوم
-ايم
-دانند
-سوي
-استفاده
-شما
-كنار
-داريم
-ساخته
-طور
-امده
-رفته
-نخست
-بيست
-نزديك
-طي
-كنيد
-از
-انها
-تمامي
-داشت
-يكي
-طريق
-اش
-چيست
-روب
-نمايد
-گفت
-چندين
-چيزي
-تواند
-ام
-ايا
-با
-ان
-ايد
-ترين
-اينكه
-ديگري
-راه
-هايي
-بروز
-همچنان
-پاعين
-كس
-حدود
-مختلف
-مقابل
-چيز
-گيرد
-ندارد
-ضد
-همچون
-سازي
-شان
-مورد
-باره
-مرسي
-خويش
-برخوردار
-چون
-خارج
-شش
-هنوز
-تحت
-ضمن
-هستيم
-گفته
-فكر
-بسيار
-پيش
-براي
-روزهاي
-انكه
-نخواهد
-بالا
-كل
-وقتي
-كي
-چنين
-كه
-گيري
-نيست
-است
-كجا
-كند
-نيز
-يابد
-بندي
-حتي
-توانند
-عقب
-خواست
-كنند
-بين
-تمام
-همه
-ما
-باشند
-مثل
-شد
-اري
-باشد
-اره
-طبق
-بعد
-اگر
-صورت
-غير
-جاي
-بيش
-ريزي
-اند
-زيرا
-چگونه
-بار
-لطفا
-مي
-درباره
-من
-ديده
-همين
-گذاري
-برداري
-علت
-گذاشته
-هم
-فوق
-نه
-ها
-شوند
-اباد
-همواره
-هر
-اول
-خواهند
-چهار
-نام
-امروز
-مان
-هاي
-قبل
-كنم
-سعي
-تازه
-را
-هستند
-زير
-جلوي
-عنوان
-بود
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt
deleted file mode 100644
index addad798c..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fi.txt
+++ /dev/null
@@ -1,95 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/finnish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
-| forms of BE
-
-olla
-olen
-olet
-on
-olemme
-olette
-ovat
-ole | negative form
-
-oli
-olisi
-olisit
-olisin
-olisimme
-olisitte
-olisivat
-olit
-olin
-olimme
-olitte
-olivat
-ollut
-olleet
-
-en | negation
-et
-ei
-emme
-ette
-eivät
-
-|Nom Gen Acc Part Iness Elat Illat Adess Ablat Allat Ess Trans
-minä minun minut minua minussa minusta minuun minulla minulta minulle | I
-sinä sinun sinut sinua sinussa sinusta sinuun sinulla sinulta sinulle | you
-hän hänen hänet häntä hänessä hänestä häneen hänellä häneltä hänelle | he she
-me meidän meidät meitä meissä meistä meihin meillä meiltä meille | we
-te teidän teidät teitä teissä teistä teihin teillä teiltä teille | you
-he heidän heidät heitä heissä heistä heihin heillä heiltä heille | they
-
-tämä tämän tätä tässä tästä tähän tallä tältä tälle tänä täksi | this
-tuo tuon tuotä tuossa tuosta tuohon tuolla tuolta tuolle tuona tuoksi | that
-se sen sitä siinä siitä siihen sillä siltä sille sinä siksi | it
-nämä näiden näitä näissä näistä näihin näillä näiltä näille näinä näiksi | these
-nuo noiden noita noissa noista noihin noilla noilta noille noina noiksi | those
-ne niiden niitä niissä niistä niihin niillä niiltä niille niinä niiksi | they
-
-kuka kenen kenet ketä kenessä kenestä keneen kenellä keneltä kenelle kenenä keneksi| who
-ketkä keiden ketkä keitä keissä keistä keihin keillä keiltä keille keinä keiksi | (pl)
-mikä minkä minkä mitä missä mistä mihin millä miltä mille minä miksi | which what
-mitkä | (pl)
-
-joka jonka jota jossa josta johon jolla jolta jolle jona joksi | who which
-jotka joiden joita joissa joista joihin joilla joilta joille joina joiksi | (pl)
-
-| conjunctions
-
-että | that
-ja | and
-jos | if
-koska | because
-kuin | than
-mutta | but
-niin | so
-sekä | and
-sillä | for
-tai | or
-vaan | but
-vai | or
-vaikka | although
-
-
-| prepositions
-
-kanssa | with
-mukaan | according to
-noin | about
-poikki | across
-yli | over, across
-
-| other
-
-kun | when
-niin | so
-nyt | now
-itse | self
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt
deleted file mode 100644
index c00837ea9..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_fr.txt
+++ /dev/null
@@ -1,183 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/french/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A French stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-au | a + le
-aux | a + les
-avec | with
-ce | this
-ces | these
-dans | with
-de | of
-des | de + les
-du | de + le
-elle | she
-en | `of them' etc
-et | and
-eux | them
-il | he
-je | I
-la | the
-le | the
-leur | their
-lui | him
-ma | my (fem)
-mais | but
-me | me
-même | same; as in moi-même (myself) etc
-mes | me (pl)
-moi | me
-mon | my (masc)
-ne | not
-nos | our (pl)
-notre | our
-nous | we
-on | one
-ou | where
-par | by
-pas | not
-pour | for
-qu | que before vowel
-que | that
-qui | who
-sa | his, her (fem)
-se | oneself
-ses | his (pl)
-son | his, her (masc)
-sur | on
-ta | thy (fem)
-te | thee
-tes | thy (pl)
-toi | thee
-ton | thy (masc)
-tu | thou
-un | a
-une | a
-vos | your (pl)
-votre | your
-vous | you
-
- | single letter forms
-
-c | c'
-d | d'
-j | j'
-l | l'
-à | to, at
-m | m'
-n | n'
-s | s'
-t | t'
-y | there
-
- | forms of être (not including the infinitive):
-été
-étée
-étées
-étés
-étant
-suis
-es
-est
-sommes
-êtes
-sont
-serai
-seras
-sera
-serons
-serez
-seront
-serais
-serait
-serions
-seriez
-seraient
-étais
-était
-étions
-étiez
-étaient
-fus
-fut
-fûmes
-fûtes
-furent
-sois
-soit
-soyons
-soyez
-soient
-fusse
-fusses
-fût
-fussions
-fussiez
-fussent
-
- | forms of avoir (not including the infinitive):
-ayant
-eu
-eue
-eues
-eus
-ai
-as
-avons
-avez
-ont
-aurai
-auras
-aura
-aurons
-aurez
-auront
-aurais
-aurait
-aurions
-auriez
-auraient
-avais
-avait
-avions
-aviez
-avaient
-eut
-eûmes
-eûtes
-eurent
-aie
-aies
-ait
-ayons
-ayez
-aient
-eusse
-eusses
-eût
-eussions
-eussiez
-eussent
-
- | Later additions (from Jean-Christophe Deschamps)
-ceci | this
-celà | that
-cet | this
-cette | this
-ici | here
-ils | they
-les | the (pl)
-leurs | their (pl)
-quel | which
-quels | which
-quelle | which
-quelles | which
-sans | without
-soi | oneself
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt
deleted file mode 100644
index 9ff88d747..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ga.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-
-a
-ach
-ag
-agus
-an
-aon
-ar
-arna
-as
-b'
-ba
-beirt
-bhúr
-caoga
-ceathair
-ceathrar
-chomh
-chtó
-chuig
-chun
-cois
-céad
-cúig
-cúigear
-d'
-daichead
-dar
-de
-deich
-deichniúr
-den
-dhá
-do
-don
-dtí
-dá
-dár
-dó
-faoi
-faoin
-faoina
-faoinár
-fara
-fiche
-gach
-gan
-go
-gur
-haon
-hocht
-i
-iad
-idir
-in
-ina
-ins
-inár
-is
-le
-leis
-lena
-lenár
-m'
-mar
-mo
-mé
-na
-nach
-naoi
-naonúr
-ná
-ní
-níor
-nó
-nócha
-ocht
-ochtar
-os
-roimh
-sa
-seacht
-seachtar
-seachtó
-seasca
-seisear
-siad
-sibh
-sinn
-sna
-sé
-sí
-tar
-thar
-thú
-triúr
-trí
-trína
-trínár
-tríocha
-tú
-um
-ár
-é
-éis
-í
-ó
-ón
-óna
-ónár
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt
deleted file mode 100644
index d8760b12c..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_gl.txt
+++ /dev/null
@@ -1,161 +0,0 @@
-# galican stopwords
-a
-aínda
-alí
-aquel
-aquela
-aquelas
-aqueles
-aquilo
-aquí
-ao
-aos
-as
-así
-á
-ben
-cando
-che
-co
-coa
-comigo
-con
-connosco
-contigo
-convosco
-coas
-cos
-cun
-cuns
-cunha
-cunhas
-da
-dalgunha
-dalgunhas
-dalgún
-dalgúns
-das
-de
-del
-dela
-delas
-deles
-desde
-deste
-do
-dos
-dun
-duns
-dunha
-dunhas
-e
-el
-ela
-elas
-eles
-en
-era
-eran
-esa
-esas
-ese
-eses
-esta
-estar
-estaba
-está
-están
-este
-estes
-estiven
-estou
-eu
-é
-facer
-foi
-foron
-fun
-había
-hai
-iso
-isto
-la
-las
-lle
-lles
-lo
-los
-mais
-me
-meu
-meus
-min
-miña
-miñas
-moi
-na
-nas
-neste
-nin
-no
-non
-nos
-nosa
-nosas
-noso
-nosos
-nós
-nun
-nunha
-nuns
-nunhas
-o
-os
-ou
-ó
-ós
-para
-pero
-pode
-pois
-pola
-polas
-polo
-polos
-por
-que
-se
-senón
-ser
-seu
-seus
-sexa
-sido
-sobre
-súa
-súas
-tamén
-tan
-te
-ten
-teñen
-teño
-ter
-teu
-teus
-ti
-tido
-tiña
-tiven
-túa
-túas
-un
-unha
-unhas
-uns
-vos
-vosa
-vosas
-voso
-vosos
-vós
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt
deleted file mode 100644
index 86286bb08..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hi.txt
+++ /dev/null
@@ -1,235 +0,0 @@
-# Also see http://www.opensource.org/licenses/bsd-license.html
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# Note: by default this file also contains forms normalized by HindiNormalizer
-# for spelling variation (see section below), such that it can be used whether or
-# not you enable that feature. When adding additional entries to this list,
-# please add the normalized form as well.
-अंदर
-अत
-अपना
-अपनी
-अपने
-अभी
-आदि
-आप
-इत्यादि
-इन
-इनका
-इन्हीं
-इन्हें
-इन्हों
-इस
-इसका
-इसकी
-इसके
-इसमें
-इसी
-इसे
-उन
-उनका
-उनकी
-उनके
-उनको
-उन्हीं
-उन्हें
-उन्हों
-उस
-उसके
-उसी
-उसे
-एक
-एवं
-एस
-ऐसे
-और
-कई
-कर
-करता
-करते
-करना
-करने
-करें
-कहते
-कहा
-का
-काफ़ी
-कि
-कितना
-किन्हें
-किन्हों
-किया
-किर
-किस
-किसी
-किसे
-की
-कुछ
-कुल
-के
-को
-कोई
-कौन
-कौनसा
-गया
-घर
-जब
-जहाँ
-जा
-जितना
-जिन
-जिन्हें
-जिन्हों
-जिस
-जिसे
-जीधर
-जैसा
-जैसे
-जो
-तक
-तब
-तरह
-तिन
-तिन्हें
-तिन्हों
-तिस
-तिसे
-तो
-था
-थी
-थे
-दबारा
-दिया
-दुसरा
-दूसरे
-दो
-द्वारा
-न
-नहीं
-ना
-निहायत
-नीचे
-ने
-पर
-पर
-पहले
-पूरा
-पे
-फिर
-बनी
-बही
-बहुत
-बाद
-बाला
-बिलकुल
-भी
-भीतर
-मगर
-मानो
-मे
-में
-यदि
-यह
-यहाँ
-यही
-या
-यिह
-ये
-रखें
-रहा
-रहे
-ऱ्वासा
-लिए
-लिये
-लेकिन
-व
-वर्ग
-वह
-वह
-वहाँ
-वहीं
-वाले
-वुह
-वे
-वग़ैरह
-संग
-सकता
-सकते
-सबसे
-सभी
-साथ
-साबुत
-साभ
-सारा
-से
-सो
-ही
-हुआ
-हुई
-हुए
-है
-हैं
-हो
-होता
-होती
-होते
-होना
-होने
-# additional normalized forms of the above
-अपनि
-जेसे
-होति
-सभि
-तिंहों
-इंहों
-दवारा
-इसि
-किंहें
-थि
-उंहों
-ओर
-जिंहें
-वहिं
-अभि
-बनि
-हि
-उंहिं
-उंहें
-हें
-वगेरह
-एसे
-रवासा
-कोन
-निचे
-काफि
-उसि
-पुरा
-भितर
-हे
-बहि
-वहां
-कोइ
-यहां
-जिंहों
-तिंहें
-किसि
-कइ
-यहि
-इंहिं
-जिधर
-इंहें
-अदि
-इतयादि
-हुइ
-कोनसा
-इसकि
-दुसरे
-जहां
-अप
-किंहों
-उनकि
-भि
-वरग
-हुअ
-जेसा
-नहिं
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt
deleted file mode 100644
index 1a96f1db6..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hu.txt
+++ /dev/null
@@ -1,209 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/hungarian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
-| Hungarian stop word list
-| prepared by Anna Tordai
-
-a
-ahogy
-ahol
-aki
-akik
-akkor
-alatt
-által
-általában
-amely
-amelyek
-amelyekben
-amelyeket
-amelyet
-amelynek
-ami
-amit
-amolyan
-amíg
-amikor
-át
-abban
-ahhoz
-annak
-arra
-arról
-az
-azok
-azon
-azt
-azzal
-azért
-aztán
-azután
-azonban
-bár
-be
-belül
-benne
-cikk
-cikkek
-cikkeket
-csak
-de
-e
-eddig
-egész
-egy
-egyes
-egyetlen
-egyéb
-egyik
-egyre
-ekkor
-el
-elég
-ellen
-elő
-először
-előtt
-első
-én
-éppen
-ebben
-ehhez
-emilyen
-ennek
-erre
-ez
-ezt
-ezek
-ezen
-ezzel
-ezért
-és
-fel
-felé
-hanem
-hiszen
-hogy
-hogyan
-igen
-így
-illetve
-ill.
-ill
-ilyen
-ilyenkor
-ison
-ismét
-itt
-jó
-jól
-jobban
-kell
-kellett
-keresztül
-keressünk
-ki
-kívül
-között
-közül
-legalább
-lehet
-lehetett
-legyen
-lenne
-lenni
-lesz
-lett
-maga
-magát
-majd
-majd
-már
-más
-másik
-meg
-még
-mellett
-mert
-mely
-melyek
-mi
-mit
-míg
-miért
-milyen
-mikor
-minden
-mindent
-mindenki
-mindig
-mint
-mintha
-mivel
-most
-nagy
-nagyobb
-nagyon
-ne
-néha
-nekem
-neki
-nem
-néhány
-nélkül
-nincs
-olyan
-ott
-össze
-ő
-ők
-őket
-pedig
-persze
-rá
-s
-saját
-sem
-semmi
-sok
-sokat
-sokkal
-számára
-szemben
-szerint
-szinte
-talán
-tehát
-teljes
-tovább
-továbbá
-több
-úgy
-ugyanis
-új
-újabb
-újra
-után
-utána
-utolsó
-vagy
-vagyis
-valaki
-valami
-valamint
-való
-vagyok
-van
-vannak
-volt
-voltam
-voltak
-voltunk
-vissza
-vele
-viszont
-volna
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt
deleted file mode 100644
index 60c1c50fb..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_hy.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-# example set of Armenian stopwords.
-այդ
-այլ
-այն
-այս
-դու
-դուք
-եմ
-են
-ենք
-ես
-եք
-է
-էի
-էին
-էինք
-էիր
-էիք
-էր
-ըստ
-թ
-ի
-ին
-իսկ
-իր
-կամ
-համար
-հետ
-հետո
-մենք
-մեջ
-մի
-ն
-նա
-նաև
-նրա
-նրանք
-որ
-որը
-որոնք
-որպես
-ու
-ում
-պիտի
-վրա
-և
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt
deleted file mode 100644
index 4617f83a5..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_id.txt
+++ /dev/null
@@ -1,359 +0,0 @@
-# from appendix D of: A Study of Stemming Effects on Information
-# Retrieval in Bahasa Indonesia
-ada
-adanya
-adalah
-adapun
-agak
-agaknya
-agar
-akan
-akankah
-akhirnya
-aku
-akulah
-amat
-amatlah
-anda
-andalah
-antar
-diantaranya
-antara
-antaranya
-diantara
-apa
-apaan
-mengapa
-apabila
-apakah
-apalagi
-apatah
-atau
-ataukah
-ataupun
-bagai
-bagaikan
-sebagai
-sebagainya
-bagaimana
-bagaimanapun
-sebagaimana
-bagaimanakah
-bagi
-bahkan
-bahwa
-bahwasanya
-sebaliknya
-banyak
-sebanyak
-beberapa
-seberapa
-begini
-beginian
-beginikah
-beginilah
-sebegini
-begitu
-begitukah
-begitulah
-begitupun
-sebegitu
-belum
-belumlah
-sebelum
-sebelumnya
-sebenarnya
-berapa
-berapakah
-berapalah
-berapapun
-betulkah
-sebetulnya
-biasa
-biasanya
-bila
-bilakah
-bisa
-bisakah
-sebisanya
-boleh
-bolehkah
-bolehlah
-buat
-bukan
-bukankah
-bukanlah
-bukannya
-cuma
-percuma
-dahulu
-dalam
-dan
-dapat
-dari
-daripada
-dekat
-demi
-demikian
-demikianlah
-sedemikian
-dengan
-depan
-di
-dia
-dialah
-dini
-diri
-dirinya
-terdiri
-dong
-dulu
-enggak
-enggaknya
-entah
-entahlah
-terhadap
-terhadapnya
-hal
-hampir
-hanya
-hanyalah
-harus
-haruslah
-harusnya
-seharusnya
-hendak
-hendaklah
-hendaknya
-hingga
-sehingga
-ia
-ialah
-ibarat
-ingin
-inginkah
-inginkan
-ini
-inikah
-inilah
-itu
-itukah
-itulah
-jangan
-jangankan
-janganlah
-jika
-jikalau
-juga
-justru
-kala
-kalau
-kalaulah
-kalaupun
-kalian
-kami
-kamilah
-kamu
-kamulah
-kan
-kapan
-kapankah
-kapanpun
-dikarenakan
-karena
-karenanya
-ke
-kecil
-kemudian
-kenapa
-kepada
-kepadanya
-ketika
-seketika
-khususnya
-kini
-kinilah
-kiranya
-sekiranya
-kita
-kitalah
-kok
-lagi
-lagian
-selagi
-lah
-lain
-lainnya
-melainkan
-selaku
-lalu
-melalui
-terlalu
-lama
-lamanya
-selama
-selama
-selamanya
-lebih
-terlebih
-bermacam
-macam
-semacam
-maka
-makanya
-makin
-malah
-malahan
-mampu
-mampukah
-mana
-manakala
-manalagi
-masih
-masihkah
-semasih
-masing
-mau
-maupun
-semaunya
-memang
-mereka
-merekalah
-meski
-meskipun
-semula
-mungkin
-mungkinkah
-nah
-namun
-nanti
-nantinya
-nyaris
-oleh
-olehnya
-seorang
-seseorang
-pada
-padanya
-padahal
-paling
-sepanjang
-pantas
-sepantasnya
-sepantasnyalah
-para
-pasti
-pastilah
-per
-pernah
-pula
-pun
-merupakan
-rupanya
-serupa
-saat
-saatnya
-sesaat
-saja
-sajalah
-saling
-bersama
-sama
-sesama
-sambil
-sampai
-sana
-sangat
-sangatlah
-saya
-sayalah
-se
-sebab
-sebabnya
-sebuah
-tersebut
-tersebutlah
-sedang
-sedangkan
-sedikit
-sedikitnya
-segala
-segalanya
-segera
-sesegera
-sejak
-sejenak
-sekali
-sekalian
-sekalipun
-sesekali
-sekaligus
-sekarang
-sekarang
-sekitar
-sekitarnya
-sela
-selain
-selalu
-seluruh
-seluruhnya
-semakin
-sementara
-sempat
-semua
-semuanya
-sendiri
-sendirinya
-seolah
-seperti
-sepertinya
-sering
-seringnya
-serta
-siapa
-siapakah
-siapapun
-disini
-disinilah
-sini
-sinilah
-sesuatu
-sesuatunya
-suatu
-sesudah
-sesudahnya
-sudah
-sudahkah
-sudahlah
-supaya
-tadi
-tadinya
-tak
-tanpa
-setelah
-telah
-tentang
-tentu
-tentulah
-tentunya
-tertentu
-seterusnya
-tapi
-tetapi
-setiap
-tiap
-setidaknya
-tidak
-tidakkah
-tidaklah
-toh
-waduh
-wah
-wahai
-sewaktu
-walau
-walaupun
-wong
-yaitu
-yakni
-yang
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt
deleted file mode 100644
index 4cb5b0891..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_it.txt
+++ /dev/null
@@ -1,301 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/italian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | An Italian stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-ad | a (to) before vowel
-al | a + il
-allo | a + lo
-ai | a + i
-agli | a + gli
-all | a + l'
-agl | a + gl'
-alla | a + la
-alle | a + le
-con | with
-col | con + il
-coi | con + i (forms collo, cogli etc are now very rare)
-da | from
-dal | da + il
-dallo | da + lo
-dai | da + i
-dagli | da + gli
-dall | da + l'
-dagl | da + gll'
-dalla | da + la
-dalle | da + le
-di | of
-del | di + il
-dello | di + lo
-dei | di + i
-degli | di + gli
-dell | di + l'
-degl | di + gl'
-della | di + la
-delle | di + le
-in | in
-nel | in + el
-nello | in + lo
-nei | in + i
-negli | in + gli
-nell | in + l'
-negl | in + gl'
-nella | in + la
-nelle | in + le
-su | on
-sul | su + il
-sullo | su + lo
-sui | su + i
-sugli | su + gli
-sull | su + l'
-sugl | su + gl'
-sulla | su + la
-sulle | su + le
-per | through, by
-tra | among
-contro | against
-io | I
-tu | thou
-lui | he
-lei | she
-noi | we
-voi | you
-loro | they
-mio | my
-mia |
-miei |
-mie |
-tuo |
-tua |
-tuoi | thy
-tue |
-suo |
-sua |
-suoi | his, her
-sue |
-nostro | our
-nostra |
-nostri |
-nostre |
-vostro | your
-vostra |
-vostri |
-vostre |
-mi | me
-ti | thee
-ci | us, there
-vi | you, there
-lo | him, the
-la | her, the
-li | them
-le | them, the
-gli | to him, the
-ne | from there etc
-il | the
-un | a
-uno | a
-una | a
-ma | but
-ed | and
-se | if
-perché | why, because
-anche | also
-come | how
-dov | where (as dov')
-dove | where
-che | who, that
-chi | who
-cui | whom
-non | not
-più | more
-quale | who, that
-quanto | how much
-quanti |
-quanta |
-quante |
-quello | that
-quelli |
-quella |
-quelle |
-questo | this
-questi |
-questa |
-queste |
-si | yes
-tutto | all
-tutti | all
-
- | single letter forms:
-
-a | at
-c | as c' for ce or ci
-e | and
-i | the
-l | as l'
-o | or
-
- | forms of avere, to have (not including the infinitive):
-
-ho
-hai
-ha
-abbiamo
-avete
-hanno
-abbia
-abbiate
-abbiano
-avrò
-avrai
-avrà
-avremo
-avrete
-avranno
-avrei
-avresti
-avrebbe
-avremmo
-avreste
-avrebbero
-avevo
-avevi
-aveva
-avevamo
-avevate
-avevano
-ebbi
-avesti
-ebbe
-avemmo
-aveste
-ebbero
-avessi
-avesse
-avessimo
-avessero
-avendo
-avuto
-avuta
-avuti
-avute
-
- | forms of essere, to be (not including the infinitive):
-sono
-sei
-è
-siamo
-siete
-sia
-siate
-siano
-sarò
-sarai
-sarà
-saremo
-sarete
-saranno
-sarei
-saresti
-sarebbe
-saremmo
-sareste
-sarebbero
-ero
-eri
-era
-eravamo
-eravate
-erano
-fui
-fosti
-fu
-fummo
-foste
-furono
-fossi
-fosse
-fossimo
-fossero
-essendo
-
- | forms of fare, to do (not including the infinitive, fa, fat-):
-faccio
-fai
-facciamo
-fanno
-faccia
-facciate
-facciano
-farò
-farai
-farà
-faremo
-farete
-faranno
-farei
-faresti
-farebbe
-faremmo
-fareste
-farebbero
-facevo
-facevi
-faceva
-facevamo
-facevate
-facevano
-feci
-facesti
-fece
-facemmo
-faceste
-fecero
-facessi
-facesse
-facessimo
-facessero
-facendo
-
- | forms of stare, to be (not including the infinitive):
-sto
-stai
-sta
-stiamo
-stanno
-stia
-stiate
-stiano
-starò
-starai
-starà
-staremo
-starete
-staranno
-starei
-staresti
-starebbe
-staremmo
-stareste
-starebbero
-stavo
-stavi
-stava
-stavamo
-stavate
-stavano
-stetti
-stesti
-stette
-stemmo
-steste
-stettero
-stessi
-stesse
-stessimo
-stessero
-stando
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt
deleted file mode 100644
index d4321be6b..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ja.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-#
-# This file defines a stopword set for Japanese.
-#
-# This set is made up of hand-picked frequent terms from segmented Japanese Wikipedia.
-# Punctuation characters and frequent kanji have mostly been left out. See LUCENE-3745
-# for frequency lists, etc. that can be useful for making your own set (if desired)
-#
-# Note that there is an overlap between these stopwords and the terms stopped when used
-# in combination with the JapanesePartOfSpeechStopFilter. When editing this file, note
-# that comments are not allowed on the same line as stopwords.
-#
-# Also note that stopping is done in a case-insensitive manner. Change your StopFilter
-# configuration if you need case-sensitive stopping. Lastly, note that stopping is done
-# using the same character width as the entries in this file. Since this StopFilter is
-# normally done after a CJKWidthFilter in your chain, you would usually want your romaji
-# entries to be in half-width and your kana entries to be in full-width.
-#
-の
-に
-は
-を
-た
-が
-で
-て
-と
-し
-れ
-さ
-ある
-いる
-も
-する
-から
-な
-こと
-として
-い
-や
-れる
-など
-なっ
-ない
-この
-ため
-その
-あっ
-よう
-また
-もの
-という
-あり
-まで
-られ
-なる
-へ
-か
-だ
-これ
-によって
-により
-おり
-より
-による
-ず
-なり
-られる
-において
-ば
-なかっ
-なく
-しかし
-について
-せ
-だっ
-その後
-できる
-それ
-う
-ので
-なお
-のみ
-でき
-き
-つ
-における
-および
-いう
-さらに
-でも
-ら
-たり
-その他
-に関する
-たち
-ます
-ん
-なら
-に対して
-特に
-せる
-及び
-これら
-とき
-では
-にて
-ほか
-ながら
-うち
-そして
-とともに
-ただし
-かつて
-それぞれ
-または
-お
-ほど
-ものの
-に対する
-ほとんど
-と共に
-といった
-です
-とも
-ところ
-ここ
-##### End of file
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt
deleted file mode 100644
index e21a23c06..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_lv.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-# Set of Latvian stopwords from A Stemming Algorithm for Latvian, Karlis Kreslins
-# the original list of over 800 forms was refined:
-# pronouns, adverbs, interjections were removed
-#
-# prepositions
-aiz
-ap
-ar
-apakš
-ārpus
-augšpus
-bez
-caur
-dēļ
-gar
-iekš
-iz
-kopš
-labad
-lejpus
-līdz
-no
-otrpus
-pa
-par
-pār
-pēc
-pie
-pirms
-pret
-priekš
-starp
-šaipus
-uz
-viņpus
-virs
-virspus
-zem
-apakšpus
-# Conjunctions
-un
-bet
-jo
-ja
-ka
-lai
-tomēr
-tikko
-turpretī
-arī
-kaut
-gan
-tādēļ
-tā
-ne
-tikvien
-vien
-kā
-ir
-te
-vai
-kamēr
-# Particles
-ar
-diezin
-droši
-diemžēl
-nebūt
-ik
-it
-taču
-nu
-pat
-tiklab
-iekšpus
-nedz
-tik
-nevis
-turpretim
-jeb
-iekam
-iekām
-iekāms
-kolīdz
-līdzko
-tiklīdz
-jebšu
-tālab
-tāpēc
-nekā
-itin
-jā
-jau
-jel
-nē
-nezin
-tad
-tikai
-vis
-tak
-iekams
-vien
-# modal verbs
-būt
-biju
-biji
-bija
-bijām
-bijāt
-esmu
-esi
-esam
-esat
-būšu
-būsi
-būs
-būsim
-būsiet
-tikt
-tiku
-tiki
-tika
-tikām
-tikāt
-tieku
-tiec
-tiek
-tiekam
-tiekat
-tikšu
-tiks
-tiksim
-tiksiet
-tapt
-tapi
-tapāt
-topat
-tapšu
-tapsi
-taps
-tapsim
-tapsiet
-kļūt
-kļuvu
-kļuvi
-kļuva
-kļuvām
-kļuvāt
-kļūstu
-kļūsti
-kļūst
-kļūstam
-kļūstat
-kļūšu
-kļūsi
-kļūs
-kļūsim
-kļūsiet
-# verbs
-varēt
-varēju
-varējām
-varēšu
-varēsim
-var
-varēji
-varējāt
-varēsi
-varēsiet
-varat
-varēja
-varēs
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt
deleted file mode 100644
index f4d61f509..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_nl.txt
+++ /dev/null
@@ -1,117 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/dutch/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A Dutch stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This is a ranked list (commonest to rarest) of stopwords derived from
- | a large sample of Dutch text.
-
- | Dutch stop words frequently exhibit homonym clashes. These are indicated
- | clearly below.
-
-de | the
-en | and
-van | of, from
-ik | I, the ego
-te | (1) chez, at etc, (2) to, (3) too
-dat | that, which
-die | that, those, who, which
-in | in, inside
-een | a, an, one
-hij | he
-het | the, it
-niet | not, nothing, naught
-zijn | (1) to be, being, (2) his, one's, its
-is | is
-was | (1) was, past tense of all persons sing. of 'zijn' (to be) (2) wax, (3) the washing, (4) rise of river
-op | on, upon, at, in, up, used up
-aan | on, upon, to (as dative)
-met | with, by
-als | like, such as, when
-voor | (1) before, in front of, (2) furrow
-had | had, past tense all persons sing. of 'hebben' (have)
-er | there
-maar | but, only
-om | round, about, for etc
-hem | him
-dan | then
-zou | should/would, past tense all persons sing. of 'zullen'
-of | or, whether, if
-wat | what, something, anything
-mijn | possessive and noun 'mine'
-men | people, 'one'
-dit | this
-zo | so, thus, in this way
-door | through by
-over | over, across
-ze | she, her, they, them
-zich | oneself
-bij | (1) a bee, (2) by, near, at
-ook | also, too
-tot | till, until
-je | you
-mij | me
-uit | out of, from
-der | Old Dutch form of 'van der' still found in surnames
-daar | (1) there, (2) because
-haar | (1) her, their, them, (2) hair
-naar | (1) unpleasant, unwell etc, (2) towards, (3) as
-heb | present first person sing. of 'to have'
-hoe | how, why
-heeft | present third person sing. of 'to have'
-hebben | 'to have' and various parts thereof
-deze | this
-u | you
-want | (1) for, (2) mitten, (3) rigging
-nog | yet, still
-zal | 'shall', first and third person sing. of verb 'zullen' (will)
-me | me
-zij | she, they
-nu | now
-ge | 'thou', still used in Belgium and south Netherlands
-geen | none
-omdat | because
-iets | something, somewhat
-worden | to become, grow, get
-toch | yet, still
-al | all, every, each
-waren | (1) 'were' (2) to wander, (3) wares, (3)
-veel | much, many
-meer | (1) more, (2) lake
-doen | to do, to make
-toen | then, when
-moet | noun 'spot/mote' and present form of 'to must'
-ben | (1) am, (2) 'are' in interrogative second person singular of 'to be'
-zonder | without
-kan | noun 'can' and present form of 'to be able'
-hun | their, them
-dus | so, consequently
-alles | all, everything, anything
-onder | under, beneath
-ja | yes, of course
-eens | once, one day
-hier | here
-wie | who
-werd | imperfect third person sing. of 'become'
-altijd | always
-doch | yet, but etc
-wordt | present third person sing. of 'become'
-wezen | (1) to be, (2) 'been' as in 'been fishing', (3) orphans
-kunnen | to be able
-ons | us/our
-zelf | self
-tegen | against, towards, at
-na | after, near
-reeds | already
-wil | (1) present tense of 'want', (2) 'will', noun, (3) fender
-kon | could; past tense of 'to be able'
-niets | nothing
-uw | your
-iemand | somebody
-geweest | been; past participle of 'be'
-andere | other
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt
deleted file mode 100644
index e76f36e69..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_no.txt
+++ /dev/null
@@ -1,192 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/norwegian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A Norwegian stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This stop word list is for the dominant bokmål dialect. Words unique
- | to nynorsk are marked *.
-
- | Revised by Jan Bruusgaard <Ja...@ssb.no>, Jan 2005
-
-og | and
-i | in
-jeg | I
-det | it/this/that
-at | to (w. inf.)
-en | a/an
-et | a/an
-den | it/this/that
-til | to
-er | is/am/are
-som | who/that
-på | on
-de | they / you(formal)
-med | with
-han | he
-av | of
-ikke | not
-ikkje | not *
-der | there
-så | so
-var | was/were
-meg | me
-seg | you
-men | but
-ett | one
-har | have
-om | about
-vi | we
-min | my
-mitt | my
-ha | have
-hadde | had
-hun | she
-nå | now
-over | over
-da | when/as
-ved | by/know
-fra | from
-du | you
-ut | out
-sin | your
-dem | them
-oss | us
-opp | up
-man | you/one
-kan | can
-hans | his
-hvor | where
-eller | or
-hva | what
-skal | shall/must
-selv | self (reflective)
-sjøl | self (reflective)
-her | here
-alle | all
-vil | will
-bli | become
-ble | became
-blei | became *
-blitt | have become
-kunne | could
-inn | in
-når | when
-være | be
-kom | come
-noen | some
-noe | some
-ville | would
-dere | you
-som | who/which/that
-deres | their/theirs
-kun | only/just
-ja | yes
-etter | after
-ned | down
-skulle | should
-denne | this
-for | for/because
-deg | you
-si | hers/his
-sine | hers/his
-sitt | hers/his
-mot | against
-å | to
-meget | much
-hvorfor | why
-dette | this
-disse | these/those
-uten | without
-hvordan | how
-ingen | none
-din | your
-ditt | your
-blir | become
-samme | same
-hvilken | which
-hvilke | which (plural)
-sånn | such a
-inni | inside/within
-mellom | between
-vår | our
-hver | each
-hvem | who
-vors | us/ours
-hvis | whose
-både | both
-bare | only/just
-enn | than
-fordi | as/because
-før | before
-mange | many
-også | also
-slik | just
-vært | been
-være | to be
-båe | both *
-begge | both
-siden | since
-dykk | your *
-dykkar | yours *
-dei | they *
-deira | them *
-deires | theirs *
-deim | them *
-di | your (fem.) *
-då | as/when *
-eg | I *
-ein | a/an *
-eit | a/an *
-eitt | a/an *
-elles | or *
-honom | he *
-hjå | at *
-ho | she *
-hoe | she *
-henne | her
-hennar | her/hers
-hennes | hers
-hoss | how *
-hossen | how *
-ikkje | not *
-ingi | noone *
-inkje | noone *
-korleis | how *
-korso | how *
-kva | what/which *
-kvar | where *
-kvarhelst | where *
-kven | who/whom *
-kvi | why *
-kvifor | why *
-me | we *
-medan | while *
-mi | my *
-mine | my *
-mykje | much *
-no | now *
-nokon | some (masc./neut.) *
-noka | some (fem.) *
-nokor | some *
-noko | some *
-nokre | some *
-si | his/hers *
-sia | since *
-sidan | since *
-so | so *
-somt | some *
-somme | some *
-um | about*
-upp | up *
-vere | be *
-vore | was *
-verte | become *
-vort | become *
-varte | became *
-vart | became *
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt
deleted file mode 100644
index 276c1b446..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_pt.txt
+++ /dev/null
@@ -1,251 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/portuguese/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A Portuguese stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
-
- | The following is a ranked list (commonest to rarest) of stopwords
- | deriving from a large sample of text.
-
- | Extra words have been added at the end.
-
-de | of, from
-a | the; to, at; her
-o | the; him
-que | who, that
-e | and
-do | de + o
-da | de + a
-em | in
-um | a
-para | for
- | é from SER
-com | with
-não | not, no
-uma | a
-os | the; them
-no | em + o
-se | himself etc
-na | em + a
-por | for
-mais | more
-as | the; them
-dos | de + os
-como | as, like
-mas | but
- | foi from SER
-ao | a + o
-ele | he
-das | de + as
- | tem from TER
-à | a + a
-seu | his
-sua | her
-ou | or
- | ser from SER
-quando | when
-muito | much
- | há from HAV
-nos | em + os; us
-já | already, now
- | está from EST
-eu | I
-também | also
-só | only, just
-pelo | per + o
-pela | per + a
-até | up to
-isso | that
-ela | he
-entre | between
- | era from SER
-depois | after
-sem | without
-mesmo | same
-aos | a + os
- | ter from TER
-seus | his
-quem | whom
-nas | em + as
-me | me
-esse | that
-eles | they
- | estão from EST
-você | you
- | tinha from TER
- | foram from SER
-essa | that
-num | em + um
-nem | nor
-suas | her
-meu | my
-às | a + as
-minha | my
- | têm from TER
-numa | em + uma
-pelos | per + os
-elas | they
- | havia from HAV
- | seja from SER
-qual | which
- | será from SER
-nós | we
- | tenho from TER
-lhe | to him, her
-deles | of them
-essas | those
-esses | those
-pelas | per + as
-este | this
- | fosse from SER
-dele | of him
-
- | other words. There are many contractions such as naquele = em+aquele,
- | mo = me+o, but they are rare.
- | Indefinite article plural forms are also rare.
-
-tu | thou
-te | thee
-vocês | you (plural)
-vos | you
-lhes | to them
-meus | my
-minhas
-teu | thy
-tua
-teus
-tuas
-nosso | our
-nossa
-nossos
-nossas
-
-dela | of her
-delas | of them
-
-esta | this
-estes | these
-estas | these
-aquele | that
-aquela | that
-aqueles | those
-aquelas | those
-isto | this
-aquilo | that
-
- | forms of estar, to be (not including the infinitive):
-estou
-está
-estamos
-estão
-estive
-esteve
-estivemos
-estiveram
-estava
-estávamos
-estavam
-estivera
-estivéramos
-esteja
-estejamos
-estejam
-estivesse
-estivéssemos
-estivessem
-estiver
-estivermos
-estiverem
-
- | forms of haver, to have (not including the infinitive):
-hei
-há
-havemos
-hão
-houve
-houvemos
-houveram
-houvera
-houvéramos
-haja
-hajamos
-hajam
-houvesse
-houvéssemos
-houvessem
-houver
-houvermos
-houverem
-houverei
-houverá
-houveremos
-houverão
-houveria
-houveríamos
-houveriam
-
- | forms of ser, to be (not including the infinitive):
-sou
-somos
-são
-era
-éramos
-eram
-fui
-foi
-fomos
-foram
-fora
-fôramos
-seja
-sejamos
-sejam
-fosse
-fôssemos
-fossem
-for
-formos
-forem
-serei
-será
-seremos
-serão
-seria
-seríamos
-seriam
-
- | forms of ter, to have (not including the infinitive):
-tenho
-tem
-temos
-tém
-tinha
-tínhamos
-tinham
-tive
-teve
-tivemos
-tiveram
-tivera
-tivéramos
-tenha
-tenhamos
-tenham
-tivesse
-tivéssemos
-tivessem
-tiver
-tivermos
-tiverem
-terei
-terá
-teremos
-terão
-teria
-teríamos
-teriam
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt
deleted file mode 100644
index 4fdee90a5..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ro.txt
+++ /dev/null
@@ -1,233 +0,0 @@
-# This file was created by Jacques Savoy and is distributed under the BSD license.
-# See http://members.unine.ch/jacques.savoy/clef/index.html.
-# Also see http://www.opensource.org/licenses/bsd-license.html
-acea
-aceasta
-această
-aceea
-acei
-aceia
-acel
-acela
-acele
-acelea
-acest
-acesta
-aceste
-acestea
-aceşti
-aceştia
-acolo
-acum
-ai
-aia
-aibă
-aici
-al
-ăla
-ale
-alea
-ălea
-altceva
-altcineva
-am
-ar
-are
-aş
-aşadar
-asemenea
-asta
-ăsta
-astăzi
-astea
-ăstea
-ăştia
-asupra
-aţi
-au
-avea
-avem
-aveţi
-azi
-bine
-bucur
-bună
-ca
-că
-căci
-când
-care
-cărei
-căror
-cărui
-cât
-câte
-câţi
-către
-câtva
-ce
-cel
-ceva
-chiar
-cînd
-cine
-cineva
-cît
-cîte
-cîţi
-cîtva
-contra
-cu
-cum
-cumva
-curând
-curînd
-da
-dă
-dacă
-dar
-datorită
-de
-deci
-deja
-deoarece
-departe
-deşi
-din
-dinaintea
-dintr
-dintre
-drept
-după
-ea
-ei
-el
-ele
-eram
-este
-eşti
-eu
-face
-fără
-fi
-fie
-fiecare
-fii
-fim
-fiţi
-iar
-ieri
-îi
-îl
-îmi
-împotriva
-în
-înainte
-înaintea
-încât
-încît
-încotro
-între
-întrucât
-întrucît
-îţi
-la
-lângă
-le
-li
-lîngă
-lor
-lui
-mă
-mâine
-mea
-mei
-mele
-mereu
-meu
-mi
-mine
-mult
-multă
-mulţi
-ne
-nicăieri
-nici
-nimeni
-nişte
-noastră
-noastre
-noi
-noştri
-nostru
-nu
-ori
-oricând
-oricare
-oricât
-orice
-oricînd
-oricine
-oricît
-oricum
-oriunde
-până
-pe
-pentru
-peste
-pînă
-poate
-pot
-prea
-prima
-primul
-prin
-printr
-sa
-să
-săi
-sale
-sau
-său
-se
-şi
-sînt
-sîntem
-sînteţi
-spre
-sub
-sunt
-suntem
-sunteţi
-ta
-tăi
-tale
-tău
-te
-ţi
-ţie
-tine
-toată
-toate
-tot
-toţi
-totuşi
-tu
-un
-una
-unde
-undeva
-unei
-unele
-uneori
-unor
-vă
-vi
-voastră
-voastre
-voi
-voştri
-vostru
-vouă
-vreo
-vreun
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt
deleted file mode 100644
index 643076934..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_ru.txt
+++ /dev/null
@@ -1,241 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/russian/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | a russian stop word list. comments begin with vertical bar. each stop
- | word is at the start of a line.
-
- | this is a ranked list (commonest to rarest) of stopwords derived from
- | a large text sample.
-
- | letter `ё' is translated to `е'.
-
-и | and
-в | in/into
-во | alternative form
-не | not
-что | what/that
-он | he
-на | on/onto
-я | i
-с | from
-со | alternative form
-как | how
-а | milder form of `no' (but)
-то | conjunction and form of `that'
-все | all
-она | she
-так | so, thus
-его | him
-но | but
-да | yes/and
-ты | thou
-к | towards, by
-у | around, chez
-же | intensifier particle
-вы | you
-за | beyond, behind
-бы | conditional/subj. particle
-по | up to, along
-только | only
-ее | her
-мне | to me
-было | it was
-вот | here is/are, particle
-от | away from
-меня | me
-еще | still, yet, more
-нет | no, there isnt/arent
-о | about
-из | out of
-ему | to him
-теперь | now
-когда | when
-даже | even
-ну | so, well
-вдруг | suddenly
-ли | interrogative particle
-если | if
-уже | already, but homonym of `narrower'
-или | or
-ни | neither
-быть | to be
-был | he was
-него | prepositional form of его
-до | up to
-вас | you accusative
-нибудь | indef. suffix preceded by hyphen
-опять | again
-уж | already, but homonym of `adder'
-вам | to you
-сказал | he said
-ведь | particle `after all'
-там | there
-потом | then
-себя | oneself
-ничего | nothing
-ей | to her
-может | usually with `быть' as `maybe'
-они | they
-тут | here
-где | where
-есть | there is/are
-надо | got to, must
-ней | prepositional form of ей
-для | for
-мы | we
-тебя | thee
-их | them, their
-чем | than
-была | she was
-сам | self
-чтоб | in order to
-без | without
-будто | as if
-человек | man, person, one
-чего | genitive form of `what'
-раз | once
-тоже | also
-себе | to oneself
-под | beneath
-жизнь | life
-будет | will be
-ж | short form of intensifer particle `же'
-тогда | then
-кто | who
-этот | this
-говорил | was saying
-того | genitive form of `that'
-потому | for that reason
-этого | genitive form of `this'
-какой | which
-совсем | altogether
-ним | prepositional form of `его', `они'
-здесь | here
-этом | prepositional form of `этот'
-один | one
-почти | almost
-мой | my
-тем | instrumental/dative plural of `тот', `то'
-чтобы | full form of `in order that'
-нее | her (acc.)
-кажется | it seems
-сейчас | now
-были | they were
-куда | where to
-зачем | why
-сказать | to say
-всех | all (acc., gen. preposn. plural)
-никогда | never
-сегодня | today
-можно | possible, one can
-при | by
-наконец | finally
-два | two
-об | alternative form of `о', about
-другой | another
-хоть | even
-после | after
-над | above
-больше | more
-тот | that one (masc.)
-через | across, in
-эти | these
-нас | us
-про | about
-всего | in all, only, of all
-них | prepositional form of `они' (they)
-какая | which, feminine
-много | lots
-разве | interrogative particle
-сказала | she said
-три | three
-эту | this, acc. fem. sing.
-моя | my, feminine
-впрочем | moreover, besides
-хорошо | good
-свою | ones own, acc. fem. sing.
-этой | oblique form of `эта', fem. `this'
-перед | in front of
-иногда | sometimes
-лучше | better
-чуть | a little
-том | preposn. form of `that one'
-нельзя | one must not
-такой | such a one
-им | to them
-более | more
-всегда | always
-конечно | of course
-всю | acc. fem. sing of `all'
-между | between
-
-
- | b: some paradigms
- |
- | personal pronouns
- |
- | я меня мне мной [мною]
- | ты тебя тебе тобой [тобою]
- | он его ему им [него, нему, ним]
- | она ее эи ею [нее, нэи, нею]
- | оно его ему им [него, нему, ним]
- |
- | мы нас нам нами
- | вы вас вам вами
- | они их им ими [них, ним, ними]
- |
- | себя себе собой [собою]
- |
- | demonstrative pronouns: этот (this), тот (that)
- |
- | этот эта это эти
- | этого эты это эти
- | этого этой этого этих
- | этому этой этому этим
- | этим этой этим [этою] этими
- | этом этой этом этих
- |
- | тот та то те
- | того ту то те
- | того той того тех
- | тому той тому тем
- | тем той тем [тою] теми
- | том той том тех
- |
- | determinative pronouns
- |
- | (a) весь (all)
- |
- | весь вся все все
- | всего всю все все
- | всего всей всего всех
- | всему всей всему всем
- | всем всей всем [всею] всеми
- | всем всей всем всех
- |
- | (b) сам (himself etc)
- |
- | сам сама само сами
- | самого саму само самих
- | самого самой самого самих
- | самому самой самому самим
- | самим самой самим [самою] самими
- | самом самой самом самих
- |
- | stems of verbs `to be', `to have', `to do' and modal
- |
- | быть бы буд быв есть суть
- | име
- | дел
- | мог мож мочь
- | уме
- | хоч хот
- | долж
- | можн
- | нужн
- | нельзя
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt
deleted file mode 100644
index 22bddfd8c..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_sv.txt
+++ /dev/null
@@ -1,131 +0,0 @@
- | From svn.tartarus.org/snowball/trunk/website/algorithms/swedish/stop.txt
- | This file is distributed under the BSD License.
- | See http://snowball.tartarus.org/license.php
- | Also see http://www.opensource.org/licenses/bsd-license.html
- | - Encoding was converted to UTF-8.
- | - This notice was added.
-
- | A Swedish stop word list. Comments begin with vertical bar. Each stop
- | word is at the start of a line.
-
- | This is a ranked list (commonest to rarest) of stopwords derived from
- | a large text sample.
-
- | Swedish stop words occasionally exhibit homonym clashes. For example
- | så = so, but also seed. These are indicated clearly below.
-
-och | and
-det | it, this/that
-att | to (with infinitive)
-i | in, at
-en | a
-jag | I
-hon | she
-som | who, that
-han | he
-på | on
-den | it, this/that
-med | with
-var | where, each
-sig | him(self) etc
-för | for
-så | so (also: seed)
-till | to
-är | is
-men | but
-ett | a
-om | if; around, about
-hade | had
-de | they, these/those
-av | of
-icke | not, no
-mig | me
-du | you
-henne | her
-då | then, when
-sin | his
-nu | now
-har | have
-inte | inte någon = no one
-hans | his
-honom | him
-skulle | 'sake'
-hennes | her
-där | there
-min | my
-man | one (pronoun)
-ej | nor
-vid | at, by, on (also: vast)
-kunde | could
-något | some etc
-från | from, off
-ut | out
-när | when
-efter | after, behind
-upp | up
-vi | we
-dem | them
-vara | be
-vad | what
-över | over
-än | than
-dig | you
-kan | can
-sina | his
-här | here
-ha | have
-mot | towards
-alla | all
-under | under (also: wonder)
-någon | some etc
-eller | or (else)
-allt | all
-mycket | much
-sedan | since
-ju | why
-denna | this/that
-själv | myself, yourself etc
-detta | this/that
-åt | to
-utan | without
-varit | was
-hur | how
-ingen | no
-mitt | my
-ni | you
-bli | to be, become
-blev | from bli
-oss | us
-din | thy
-dessa | these/those
-några | some etc
-deras | their
-blir | from bli
-mina | my
-samma | (the) same
-vilken | who, that
-er | you, your
-sådan | such a
-vår | our
-blivit | from bli
-dess | its
-inom | within
-mellan | between
-sådant | such a
-varför | why
-varje | each
-vilka | who, that
-ditt | thy
-vem | who
-vilket | who, that
-sitta | his
-sådana | such a
-vart | each
-dina | thy
-vars | whose
-vårt | our
-våra | our
-ert | your
-era | your
-vilkas | whose
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt
deleted file mode 100644
index 07f0fabe6..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_th.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-# Thai stopwords from:
-# "Opinion Detection in Thai Political News Columns
-# Based on Subjectivity Analysis"
-# Khampol Sukhum, Supot Nitsuwat, and Choochart Haruechaiyasak
-ไว้
-ไม่
-ไป
-ได้
-ให้
-ใน
-โดย
-แห่ง
-แล้ว
-และ
-แรก
-แบบ
-แต่
-เอง
-เห็น
-เลย
-เริ่ม
-เรา
-เมื่อ
-เพื่อ
-เพราะ
-เป็นการ
-เป็น
-เปิดเผย
-เปิด
-เนื่องจาก
-เดียวกัน
-เดียว
-เช่น
-เฉพาะ
-เคย
-เข้า
-เขา
-อีก
-อาจ
-อะไร
-ออก
-อย่าง
-อยู่
-อยาก
-หาก
-หลาย
-หลังจาก
-หลัง
-หรือ
-หนึ่ง
-ส่วน
-ส่ง
-สุด
-สําหรับ
-ว่า
-วัน
-ลง
-ร่วม
-ราย
-รับ
-ระหว่าง
-รวม
-ยัง
-มี
-มาก
-มา
-พร้อม
-พบ
-ผ่าน
-ผล
-บาง
-น่า
-นี้
-นํา
-นั้น
-นัก
-นอกจาก
-ทุก
-ที่สุด
-ที่
-ทําให้
-ทํา
-ทาง
-ทั้งนี้
-ทั้ง
-ถ้า
-ถูก
-ถึง
-ต้อง
-ต่างๆ
-ต่าง
-ต่อ
-ตาม
-ตั้งแต่
-ตั้ง
-ด้าน
-ด้วย
-ดัง
-ซึ่ง
-ช่วง
-จึง
-จาก
-จัด
-จะ
-คือ
-ความ
-ครั้ง
-คง
-ขึ้น
-ของ
-ขอ
-ขณะ
-ก่อน
-ก็
-การ
-กับ
-กัน
-กว่า
-กล่าว
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt
deleted file mode 100644
index 84d9408d4..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/stopwords_tr.txt
+++ /dev/null
@@ -1,212 +0,0 @@
-# Turkish stopwords from LUCENE-559
-# merged with the list from "Information Retrieval on Turkish Texts"
-# (http://www.users.muohio.edu/canf/papers/JASIST2008offPrint.pdf)
-acaba
-altmış
-altı
-ama
-ancak
-arada
-aslında
-ayrıca
-bana
-bazı
-belki
-ben
-benden
-beni
-benim
-beri
-beş
-bile
-bin
-bir
-birçok
-biri
-birkaç
-birkez
-birşey
-birşeyi
-biz
-bize
-bizden
-bizi
-bizim
-böyle
-böylece
-bu
-buna
-bunda
-bundan
-bunlar
-bunları
-bunların
-bunu
-bunun
-burada
-çok
-çünkü
-da
-daha
-dahi
-de
-defa
-değil
-diğer
-diye
-doksan
-dokuz
-dolayı
-dolayısıyla
-dört
-edecek
-eden
-ederek
-edilecek
-ediliyor
-edilmesi
-ediyor
-eğer
-elli
-en
-etmesi
-etti
-ettiği
-ettiğini
-gibi
-göre
-halen
-hangi
-hatta
-hem
-henüz
-hep
-hepsi
-her
-herhangi
-herkesin
-hiç
-hiçbir
-için
-iki
-ile
-ilgili
-ise
-işte
-itibaren
-itibariyle
-kadar
-karşın
-katrilyon
-kendi
-kendilerine
-kendini
-kendisi
-kendisine
-kendisini
-kez
-ki
-kim
-kimden
-kime
-kimi
-kimse
-kırk
-milyar
-milyon
-mu
-mü
-mı
-nasıl
-ne
-neden
-nedenle
-nerde
-nerede
-nereye
-niye
-niçin
-o
-olan
-olarak
-oldu
-olduğu
-olduğunu
-olduklarını
-olmadı
-olmadığı
-olmak
-olması
-olmayan
-olmaz
-olsa
-olsun
-olup
-olur
-olursa
-oluyor
-on
-ona
-ondan
-onlar
-onlardan
-onları
-onların
-onu
-onun
-otuz
-oysa
-öyle
-pek
-rağmen
-sadece
-sanki
-sekiz
-seksen
-sen
-senden
-seni
-senin
-siz
-sizden
-sizi
-sizin
-şey
-şeyden
-şeyi
-şeyler
-şöyle
-şu
-şuna
-şunda
-şundan
-şunları
-şunu
-tarafından
-trilyon
-tüm
-üç
-üzere
-var
-vardı
-ve
-veya
-ya
-yani
-yapacak
-yapılan
-yapılması
-yapıyor
-yapmak
-yaptı
-yaptığı
-yaptığını
-yaptıkları
-yedi
-yerine
-yetmiş
-yine
-yirmi
-yoksa
-yüz
-zaten
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt
deleted file mode 100644
index 6f0368e4d..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/lang/userdict_ja.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# This is a sample user dictionary for Kuromoji (JapaneseTokenizer)
-#
-# Add entries to this file in order to override the statistical model in terms
-# of segmentation, readings and part-of-speech tags. Notice that entries do
-# not have weights since they are always used when found. This is by-design
-# in order to maximize ease-of-use.
-#
-# Entries are defined using the following CSV format:
-# <text>,<token 1> ... <token n>,<reading 1> ... <reading n>,<part-of-speech tag>
-#
-# Notice that a single half-width space separates tokens and readings, and
-# that the number tokens and readings must match exactly.
-#
-# Also notice that multiple entries with the same <text> is undefined.
-#
-# Whitespace only lines are ignored. Comments are not allowed on entry lines.
-#
-
-# Custom segmentation for kanji compounds
-日本経済新聞,日本 経済 新聞,ニホン ケイザイ シンブン,カスタム名詞
-関西国際空港,関西 国際 空港,カンサイ コクサイ クウコウ,カスタム名詞
-
-# Custom segmentation for compound katakana
-トートバッグ,トート バッグ,トート バッグ,かずカナ名詞
-ショルダーバッグ,ショルダー バッグ,ショルダー バッグ,かずカナ名詞
-
-# Custom reading for former sumo wrestler
-朝青龍,朝青龍,アサショウリュウ,カスタム人名
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt
deleted file mode 100644
index 1dfc0abec..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/protwords.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-# 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.
-
-#-----------------------------------------------------------------------
-# Use a protected word file to protect against the stemmer reducing two
-# unrelated words to the same base word.
-
-# Some non-words that normally won't be encountered,
-# just to test that they won't be stemmed.
-dontstems
-zwhacky
-
diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml
deleted file mode 100644
index fa5b78864..000000000
--- a/flume-ng-sinks/flume-ng-morphline-solr-sink/src/test/resources/solr/collection1/conf/schema.xml
+++ /dev/null
@@ -1,947 +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.
--->
-
-<!--
- This is the Solr schema file. This file should be named "schema.xml" and
- should be in the conf directory under the solr home
- (i.e. ./solr/conf/schema.xml by default)
- or located where the classloader for the Solr webapp can find it.
-
- This example schema is the recommended starting point for users.
- It should be kept correct and concise, usable out-of-the-box.
-
- For more information, on how to customize this file, please see
- http://wiki.apache.org/solr/SchemaXml
-
- PERFORMANCE NOTE: this schema includes many optional features and should not
- be used for benchmarking. To improve performance one could
- - set stored="false" for all fields possible (esp large fields) when you
- only need to search on the field but don't need to return the original
- value.
- - set indexed="false" if you don't need to search on the field, but only
- return the field as a result of searching on other indexed fields.
- - remove all unneeded copyField statements
- - for best index size and searching performance, set "index" to false
- for all general text fields, use copyField to copy them to the
- catchall "text" field, and use that for searching.
- - For maximum indexing performance, use the StreamingUpdateSolrServer
- java client.
- - Remember to run the JVM in server mode, and use a higher logging level
- that avoids logging every request
--->
-
-<schema name="example" version="1.5">
- <!-- attribute "name" is the name of this schema and is only used for display purposes.
- version="x.y" is Solr's version number for the schema syntax and
- semantics. It should not normally be changed by applications.
-
- 1.0: multiValued attribute did not exist, all fields are multiValued
- by nature
- 1.1: multiValued attribute introduced, false by default
- 1.2: omitTermFreqAndPositions attribute introduced, true by default
- except for text fields.
- 1.3: removed optional field compress feature
- 1.4: autoGeneratePhraseQueries attribute introduced to drive QueryParser
- behavior when a single string produces multiple tokens. Defaults
- to off for version >= 1.4
- 1.5: omitNorms defaults to true for primitive field types
- (int, float, boolean, string...)
- -->
-
- <fields>
- <!-- Valid attributes for fields:
- name: mandatory - the name for the field
- type: mandatory - the name of a field type from the
- <types> fieldType section
- indexed: true if this field should be indexed (searchable or sortable)
- stored: true if this field should be retrievable
- multiValued: true if this field may contain multiple values per document
- omitNorms: (expert) set to true to omit the norms associated with
- this field (this disables length normalization and index-time
- boosting for the field, and saves some memory). Only full-text
- fields or fields that need an index-time boost need norms.
- Norms are omitted for primitive (non-analyzed) types by default.
- termVectors: [false] set to true to store the term vector for a
- given field.
- When using MoreLikeThis, fields used for similarity should be
- stored for best performance.
- termPositions: Store position information with the term vector.
- This will increase storage costs.
- termOffsets: Store offset information with the term vector. This
- will increase storage costs.
- required: The field is required. It will throw an error if the
- value does not exist
- default: a value that should be used if no value is specified
- when adding a document.
- -->
-
- <!-- field names should consist of alphanumeric or underscore characters only and
- not start with a digit. This is not currently strictly enforced,
- but other field names will not have first class support from all components
- and back compatibility is not guaranteed. Names with both leading and
- trailing underscores (e.g. _version_) are reserved.
- -->
-
- <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
- <field name="user_friends_count" type="tint" indexed="true" stored="true" />
- <field name="user_location" type="lowercase" indexed="true" stored="true" />
- <field name="user_description" type="text_en" indexed="true" stored="false"/>
- <field name="user_statuses_count" type="tint" indexed="true" stored="true" />
- <field name="user_followers_count" type="tint" indexed="true" stored="true"/>
- <field name="user_name" type="text_en" indexed="true" stored="true" />
- <field name="user_screen_name" type="text_en" indexed="true" stored="true" />
- <field name="created_at" type="tdate" indexed="true" stored="true" />
- <field name="text" type="text_en" indexed="true" stored="true" multiValued="true" />
- <field name="retweet_count" type="tint" indexed="true" stored="true" />
- <field name="retweeted" type="boolean" indexed="true" stored="false" />
- <field name="in_reply_to_user_id" type="long" indexed="true" stored="true" />
- <field name="source" type="lowercase" indexed="true" stored="true" />
- <field name="in_reply_to_status_id" type="long" indexed="true" stored="true" multiValued="true"/>
- <field name="media_url_https" type="string" indexed="false" stored="true" />
- <field name="expanded_url" type="string" indexed="false" stored="true" />
-
- <!-- file metadata -->
- <field name="file_download_url" type="string" indexed="false" stored="true" />
- <field name="file_upload_url" type="string" indexed="false" stored="true" />
- <field name="file_scheme" type="string" indexed="true" stored="true" />
- <field name="file_host" type="string" indexed="true" stored="true" />
- <field name="file_port" type="int" indexed="true" stored="true" />
- <field name="file_path" type="string" indexed="true" stored="true" />
- <field name="file_name" type="string" indexed="true" stored="true" />
- <field name="file_length" type="tlong" indexed="true" stored="true" />
- <field name="file_last_modified" type="tlong" indexed="true" stored="true" />
- <field name="file_owner" type="string" indexed="true" stored="true" />
- <field name="file_group" type="string" indexed="true" stored="true" />
- <field name="file_permissions_user" type="string" indexed="true" stored="true" />
- <field name="file_permissions_group" type="string" indexed="true" stored="true" />
- <field name="file_permissions_other" type="string" indexed="true" stored="true" />
- <field name="file_permissions_stickybit" type="boolean" indexed="true" stored="true" />
-
- <!-- tika metadata -->
- <field name="content_type" type="lowercase" indexed="true" stored="true" />
-
- <field name="_version_" type="long" indexed="true" stored="true"/>
- <dynamicField name="ignored_*" type="ignored"/>
-
- </fields>
-
-
- <!-- Field to use to determine and enforce document uniqueness.
- Unless this field is marked with required="false", it will be a required field
- -->
- <uniqueKey>id</uniqueKey>
-
- <!-- DEPRECATED: The defaultSearchField is consulted by various query parsers when
- parsing a query string that isn't explicit about the field. Machine (non-user)
- generated queries are best made explicit, or they can use the "df" request parameter
- which takes precedence over this.
- Note: Un-commenting defaultSearchField will be insufficient if your request handler
- in solrconfig.xml defines "df", which takes precedence. That would need to be removed.
- <defaultSearchField>text</defaultSearchField> -->
-
- <!-- DEPRECATED: The defaultOperator (AND|OR) is consulted by various query parsers
- when parsing a query string to determine if a clause of the query should be marked as
- required or optional, assuming the clause isn't already marked by some operator.
- The default is OR, which is generally assumed so it is not a good idea to change it
- globally here. The "q.op" request parameter takes precedence over this.
- <solrQueryParser defaultOperator="OR"/> -->
-
- <!-- copyField commands copy one field to another at the time a document
- is added to the index. It's used either to index the same field differently,
- or to add multiple fields to the same field for easier/faster searching. -->
-
-
- <types>
- <!-- field type definitions. The "name" attribute is
- just a label to be used by field definitions. The "class"
- attribute and any other attributes determine the real
- behavior of the fieldType.
- Class names starting with "solr" refer to java classes in a
- standard package such as org.apache.solr.analysis
- -->
-
- <!-- The StrField type is not analyzed, but indexed/stored verbatim. -->
- <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
-
- <!-- boolean type: "true" or "false" -->
- <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
-
- <!-- sortMissingLast and sortMissingFirst attributes are optional attributes are
- currently supported on types that are sorted internally as strings
- and on numeric types.
- This includes "string","boolean", and, as of 3.5 (and 4.x),
- int, float, long, date, double, including the "Trie" variants.
- - If sortMissingLast="true", then a sort on this field will cause documents
- without the field to come after documents with the field,
- regardless of the requested sort order (asc or desc).
- - If sortMissingFirst="true", then a sort on this field will cause documents
- without the field to come before documents with the field,
- regardless of the requested sort order.
- - If sortMissingLast="false" and sortMissingFirst="false" (the default),
- then default lucene sorting will be used which places docs without the
- field first in an ascending sort and last in a descending sort.
- -->
-
- <!--
- Default numeric field types. For faster range queries, consider the tint/tfloat/tlong/tdouble types.
- -->
- <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
- <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
- <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
- <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>
-
- <!--
- Numeric field types that index each value at various levels of precision
- to accelerate range queries when the number of values between the range
- endpoints is large. See the javadoc for NumericRangeQuery for internal
- implementation details.
-
- Smaller precisionStep values (specified in bits) will lead to more tokens
- indexed per value, slightly larger index size, and faster range queries.
- A precisionStep of 0 disables indexing at different precision levels.
- -->
- <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
- <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
- <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
- <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>
-
- <!-- The format for this date field is of the form 1995-12-31T23:59:59Z, and
- is a more restricted form of the canonical representation of dateTime
- http://www.w3.org/TR/xmlschema-2/#dateTime
- The trailing "Z" designates UTC time and is mandatory.
- Optional fractional seconds are allowed: 1995-12-31T23:59:59.999Z
- All other components are mandatory.
-
- Expressions can also be used to denote calculations that should be
- performed relative to "NOW" to determine the value, ie...
-
- NOW/HOUR
- ... Round to the start of the current hour
- NOW-1DAY
- ... Exactly 1 day prior to now
- NOW/DAY+6MONTHS+3DAYS
- ... 6 months and 3 days in the future from the start of
- the current day
-
- Consult the DateField javadocs for more information.
-
- Note: For faster range queries, consider the tdate type
- -->
- <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
-
- <!-- A Trie based date field for faster date range queries and date faceting. -->
- <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
-
-
- <!--Binary data type. The data should be sent/retrieved in as Base64 encoded Strings -->
- <fieldtype name="binary" class="solr.BinaryField"/>
-
- <!--
- Note:
- These should only be used for compatibility with existing indexes (created with lucene or older Solr versions).
- Use Trie based fields instead. As of Solr 3.5 and 4.x, Trie based fields support sortMissingFirst/Last
-
- Plain numeric field types that store and index the text
- value verbatim (and hence don't correctly support range queries, since the
- lexicographic ordering isn't equal to the numeric ordering)
- -->
- <fieldType name="pint" class="solr.IntField"/>
- <fieldType name="plong" class="solr.LongField"/>
- <fieldType name="pfloat" class="solr.FloatField"/>
- <fieldType name="pdouble" class="solr.DoubleField"/>
- <fieldType name="pdate" class="solr.DateField" sortMissingLast="true"/>
-
- <!-- The "RandomSortField" is not used to store or search any
- data. You can declare fields of this type it in your schema
- to generate pseudo-random orderings of your docs for sorting
- or function purposes. The ordering is generated based on the field
- name and the version of the index. As long as the index version
- remains unchanged, and the same field name is reused,
- the ordering of the docs will be consistent.
- If you want different psuedo-random orderings of documents,
- for the same version of the index, use a dynamicField and
- change the field name in the request.
- -->
- <fieldType name="random" class="solr.RandomSortField" indexed="true" />
-
- <!-- solr.TextField allows the specification of custom text analyzers
- specified as a tokenizer and a list of token filters. Different
- analyzers may be specified for indexing and querying.
-
- The optional positionIncrementGap puts space between multiple fields of
- this type on the same document, with the purpose of preventing false phrase
- matching across fields.
-
- For more info on customizing your analyzer chain, please see
- http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters
- -->
-
- <!-- One can also specify an existing Analyzer class that has a
- default constructor via the class attribute on the analyzer element.
- Example:
- <fieldType name="text_greek" class="solr.TextField">
- <analyzer class="org.apache.lucene.analysis.el.GreekAnalyzer"/>
- </fieldType>
- -->
-
- <!-- A text field that only splits on whitespace for exact matching of words -->
- <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
- <analyzer>
- <tokenizer class="solr.WhitespaceTokenizerFactory"/>
- </analyzer>
- </fieldType>
-
- <!-- A general text field that has reasonable, generic
- cross-language defaults: it tokenizes with StandardTokenizer,
- removes stop words from case-insensitive "stopwords.txt"
- (empty by default), and down cases. At query time only, it
- also applies synonyms. -->
- <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
- <analyzer type="index">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
- <!-- in this example, we will only use synonyms at query time
- <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
- -->
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- <analyzer type="query">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
- <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
- <filter class="solr.LowerCaseFilterFactory"/>
- </analyzer>
- </fieldType>
-
- <!-- A text field with defaults appropriate for English: it
- tokenizes with StandardTokenizer, removes English stop words
- (lang/stopwords_en.txt), down cases, protects words from protwords.txt, and
- finally applies Porter's stemming. The query time analyzer
- also applies synonyms from synonyms.txt. -->
- <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
- <analyzer type="index">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <!-- in this example, we will only use synonyms at query time
- <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
- -->
- <!-- Case insensitive stop word removal.
- add enablePositionIncrements=true in both the index and query
- analyzers to leave a 'gap' for more accurate phrase queries.
- -->
- <filter class="solr.StopFilterFactory"
- ignoreCase="true"
- words="lang/stopwords_en.txt"
- enablePositionIncrements="true"
- />
- <filter class="solr.LowerCaseFilterFactory"/>
- <filter class="solr.EnglishPossessiveFilterFactory"/>
- <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
- <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
- -->
- <filter class="solr.PorterStemFilterFactory"/>
- </analyzer>
- <analyzer type="query">
- <tokenizer class="solr.StandardTokenizerFactory"/>
- <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
- <filter class="solr.StopFilterFactory"
- ignoreCase="true"
- words="lang/stopwords_en.txt"
- enablePositionIncrements="true"
- />
- <filter class="solr.LowerCaseFilterFactory"/>
- <filter class="solr.EnglishPossessiveFilterFactory"/>
- <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
- <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
- <filter class="solr.EnglishMinimalStemFilterFactory"/>
- -->
- <filter class="solr.PorterStemFilterFactory"/>
- </analyzer>
- </fieldType>
... 5297 lines suppressed ...