Merge branch 'master' into feature/METRON-1416-upgrade-solr

Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/41708876
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/41708876
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/41708876

Branch: refs/heads/master
Commit: 41708876336d009b3a2ff2c533bdf0294af1477b
Parents: f241f87 32d132b
Author: cstella <ceste...@gmail.com>
Authored: Mon Jun 11 17:50:48 2018 -0400
Committer: cstella <ceste...@gmail.com>
Committed: Mon Jun 11 17:50:48 2018 -0400

----------------------------------------------------------------------
 KEYS                                            |    59 +
 Upgrading.md                                    |     2 +-
 dev-utilities/release-utils/metron-rc-check     |    77 +-
 .../release-utils/validate-jira-for-release     |    75 +-
 metron-analytics/metron-maas-common/pom.xml     |     2 +-
 metron-analytics/metron-maas-service/pom.xml    |     2 +-
 metron-analytics/metron-profiler-client/pom.xml |     2 +-
 .../profiler/client/stellar/GetProfileTest.java |     3 +-
 .../client/stellar/ProfilerFunctionsTest.java   |    15 +-
 metron-analytics/metron-profiler-common/pom.xml |     2 +-
 metron-analytics/metron-profiler/README.md      |    15 +
 metron-analytics/metron-profiler/pom.xml        |     2 +-
 .../src/main/flux/profiler/remote.yaml          |     3 +-
 metron-analytics/metron-statistics/pom.xml      |     2 +-
 .../StellarStatisticsFunctionsTest.java         |     5 +-
 .../sampling/SamplerFunctionsTest.java          |     3 +-
 metron-analytics/pom.xml                        |     2 +-
 metron-contrib/metron-docker/pom.xml            |     2 +-
 metron-contrib/metron-performance/pom.xml       |     2 +-
 metron-contrib/pom.xml                          |     2 +-
 metron-deployment/Kerberos-manual-setup.md      |     8 +-
 metron-deployment/README.md                     |    22 +-
 metron-deployment/amazon-ec2/conf/defaults.yml  |     2 +-
 .../ansible/playbooks/docker_probe_install.yml  |     2 +-
 .../roles/ambari_master/defaults/main.yml       |     2 +-
 .../roles/metron_pcapservice/defaults/main.yml  |     2 +-
 metron-deployment/development/centos6/README.md |     8 +-
 .../centos6/ansible/inventory/group_vars/all    |     2 +-
 .../development/ubuntu14/README.md              |     6 +-
 .../ubuntu14/ansible/inventory/group_vars/all   |     2 +-
 .../ambari/elasticsearch-mpack/pom.xml          |     4 +-
 .../packaging/ambari/metron-mpack/pom.xml       |     4 +-
 .../CURRENT/package/files/bro_index.template    |     2 +-
 .../CURRENT/package/files/error_index.template  |     2 +-
 .../package/files/metaalert_index.template      |     2 +-
 .../CURRENT/package/files/snort_index.template  |     2 +-
 .../CURRENT/package/files/yaf_index.template    |     2 +-
 .../CURRENT/package/scripts/metron_service.py   |     5 +
 .../metron-mpack/src/main/resources/mpack.json  |     2 +-
 .../packaging/docker/deb-docker/pom.xml         |     4 +-
 .../packaging/docker/rpm-docker/pom.xml         |     4 +-
 metron-deployment/pom.xml                       |     2 +-
 .../e2e/mock-data/alerts_ui_e2e_index.template  |     2 +-
 metron-interface/metron-alerts/package.json     |     2 +-
 metron-interface/metron-alerts/pom.xml          |     2 +-
 .../alert-details/alert-details.component.ts    |     2 +-
 .../alerts/alerts-list/alerts-list.component.ts |     2 +-
 .../table-view/table-view.component.html        |    10 +-
 .../table-view/table-view.component.ts          |     2 +-
 .../metron-alerts/src/app/model/alert-source.ts |     2 +-
 .../src/app/service/global-config.service.ts    |    10 +-
 metron-interface/metron-config/package.json     |     2 +-
 metron-interface/metron-config/pom.xml          |     2 +-
 .../metron-config/scripts/package.json          |     2 +-
 metron-interface/metron-rest-client/pom.xml     |     2 +-
 metron-interface/metron-rest/pom.xml            |     2 +-
 .../rest/service/impl/SearchServiceImpl.java    |    10 +-
 .../src/main/resources/application.yml          |     2 +-
 .../metron-rest/src/main/scripts/metron-rest.sh |     5 +-
 .../MetaAlertControllerIntegrationTest.java     |     4 +-
 .../service/impl/SearchServiceImplTest.java     |     3 +-
 metron-interface/pom.xml                        |     2 +-
 metron-platform/Performance-tuning-guide.md     |     4 +-
 metron-platform/README.md                       |     2 +-
 metron-platform/elasticsearch-shaded/pom.xml    |     2 +-
 metron-platform/metron-api/pom.xml              |     2 +-
 metron-platform/metron-common/README.md         |     5 +
 metron-platform/metron-common/pom.xml           |     2 +-
 .../org/apache/metron/common/Constants.java     |     1 +
 .../metron/common/bolt/ConfiguredBolt.java      |    14 +-
 .../common/bolt/ConfiguredEnrichmentBolt.java   |    11 +-
 .../common/bolt/ConfiguredIndexingBolt.java     |    13 +-
 .../common/bolt/ConfiguredParserBolt.java       |    13 +-
 .../common/bolt/ConfiguredProfilerBolt.java     |     9 +-
 .../common/configuration/Configurations.java    |     7 +-
 .../configuration/ConfigurationsUtils.java      |     7 +
 .../configuration/EnrichmentConfigurations.java |    26 +
 .../configuration/IndexingConfigurations.java   |    28 +-
 .../configuration/ParserConfigurations.java     |     1 +
 .../enrichment/handler/StellarConfig.java       |    11 +-
 .../profiler/ProfilerConfigurations.java        |    25 +
 .../writer/ConfigurationStrategy.java           |    44 +
 .../writer/ConfigurationsStrategies.java        |   144 +
 .../writer/EnrichmentWriterConfiguration.java   |   110 +
 .../writer/IndexingWriterConfiguration.java     |     5 +
 .../writer/ParserWriterConfiguration.java       |    12 +-
 .../writer/ProfilerWriterConfiguration.java     |   109 +
 .../writer/SingleBatchConfigurationFacade.java  |     6 +
 .../writer/WriterConfiguration.java             |    69 +
 .../common/field/DeDotFieldNameConverter.java   |    46 +
 .../metron/common/field/FieldNameConverter.java |    32 +
 .../common/field/FieldNameConverters.java       |   116 +
 .../common/field/NoopFieldNameConverter.java    |    32 +
 .../common/interfaces/FieldNameConverter.java   |    24 -
 .../src/main/scripts/cluster_info.py            |     2 +-
 .../configuration/ParserConfigurationsTest.java |   120 +
 .../profiler/ProfilerConfigTest.java            |    13 +-
 .../writer/ConfigurationsStrategiesTest.java    |    79 +
 .../EnrichmentWriterConfigurationTest.java      |    54 +
 .../writer/IndexingWriterConfigurationTest.java |    70 +
 .../writer/ParserWriterConfigurationTest.java   |    72 +
 .../writer/ProfilerWriterConfigurationTest.java |    54 +
 .../field/DeDotFieldNameConverterTest.java      |    38 +
 .../common/field/FieldNameConvertersTest.java   |   211 +
 .../StellarTransformationTest.java              |    30 +-
 .../writer/IndexingWriterConfigurationTest.java |    70 -
 .../writer/ParserWriterConfigurationTest.java   |    38 -
 metron-platform/metron-data-management/pom.xml  |     2 +-
 metron-platform/metron-elasticsearch/README.md  |     8 +-
 metron-platform/metron-elasticsearch/pom.xml    |     8 +-
 .../dao/ElasticsearchMetaAlertDao.java          |    33 +-
 .../writer/ElasticsearchFieldNameConverter.java |    32 -
 .../writer/ElasticsearchWriter.java             |    70 +-
 .../ElasticsearchIndexingIntegrationTest.java   |     7 +-
 .../ElasticsearchMetaAlertIntegrationTest.java  |    16 +-
 .../ElasticsearchFieldNameConverterTest.java    |    32 -
 .../metron-enrichment/Performance.md            |     2 +-
 metron-platform/metron-enrichment/README.md     |    15 +-
 metron-platform/metron-enrichment/pom.xml       |     2 +-
 .../main/flux/enrichment/remote-splitjoin.yaml  |     9 +-
 .../main/flux/enrichment/remote-unified.yaml    |     9 +-
 .../adapters/stellar/StellarAdapter.java        |    14 +-
 .../adapters/stellar/StellarAdapterTest.java    |    26 +
 .../bolt/BulkMessageWriterBoltTest.java         |   112 +-
 .../integration/EnrichmentIntegrationTest.java  |     2 +
 metron-platform/metron-hbase-client/pom.xml     |     2 +-
 metron-platform/metron-hbase/pom.xml            |     2 +-
 metron-platform/metron-indexing/README.md       |    20 +-
 metron-platform/metron-indexing/pom.xml         |     2 +-
 .../src/main/flux/indexing/batch/remote.yaml    |     4 +-
 .../flux/indexing/random_access/remote.yaml     |     4 +-
 .../apache/metron/indexing/dao/HBaseDao.java    |     2 +-
 .../dao/metaalert/MetaAlertConstants.java       |     2 +-
 .../indexing/dao/InMemoryMetaAlertDao.java      |     2 +-
 .../integration/HBaseDaoIntegrationTest.java    |    17 +
 .../HDFSIndexingIntegrationTest.java            |     4 +-
 .../integration/IndexingIntegrationTest.java    |     3 +-
 metron-platform/metron-integration-test/pom.xml |     2 +-
 .../main/config/zookeeper/enrichments/test.json |     1 +
 metron-platform/metron-management/pom.xml       |     2 +-
 .../metron/management/KafkaFunctions.java       |   573 +-
 .../management/IndexingConfigFunctionsTest.java |     7 +-
 .../KafkaFunctionsIntegrationTest.java          |   353 +-
 .../management/ThreatTriageFunctionsTest.java   |     7 +-
 .../metron-parsers/3rdPartyParser.md            |   439 +-
 metron-platform/metron-parsers/README.md        |     6 +-
 metron-platform/metron-parsers/pom.xml          |     2 +-
 .../apache/metron/parsers/bolt/ParserBolt.java  |   108 +-
 .../metron/parsers/bolt/WriterHandler.java      |    63 +-
 .../src/main/scripts/start_parser_topology.sh   |    27 +-
 .../metron/parsers/bolt/ParserBoltTest.java     |   176 +-
 .../SimpleHBaseEnrichmentWriterTest.java        |     6 +-
 .../integration/WriterBoltIntegrationTest.java  |     6 +-
 metron-platform/metron-pcap-backend/pom.xml     |     2 +-
 .../src/main/scripts/pcap_zeppelin_run.sh       |     2 +-
 metron-platform/metron-pcap/pom.xml             |     2 +-
 .../metron/pcap/filter/PcapFieldResolver.java   |     5 +
 metron-platform/metron-solr/pom.xml             |     2 +-
 .../SolrIndexingIntegrationTest.java            |     3 +-
 .../schema/SchemaValidationIntegrationTest.java |     5 +
 .../metron-storm-kafka-override/pom.xml         |     2 +-
 metron-platform/metron-storm-kafka/pom.xml      |     2 +-
 metron-platform/metron-test-utilities/pom.xml   |     2 +-
 metron-platform/metron-writer/pom.xml           |     2 +-
 .../metron/writer/BulkWriterComponent.java      |    36 +-
 .../metron/writer/bolt/BatchTimeoutHelper.java  |     6 +-
 .../writer/bolt/BulkMessageWriterBolt.java      |   138 +-
 .../apache/metron/writer/kafka/KafkaWriter.java |    92 +-
 metron-platform/metron-zookeeper/pom.xml        |     2 +-
 metron-platform/pom.xml                         |     2 +-
 metron-stellar/pom.xml                          |     2 +-
 .../stellar-3rd-party-example/pom.xml           |     2 +-
 metron-stellar/stellar-common/README.md         |     5 +-
 metron-stellar/stellar-common/pom.xml           |     2 +-
 .../stellar/common/BaseStellarProcessor.java    |    28 +-
 .../stellar/common/CachingStellarProcessor.java |   141 +-
 .../common/StellarPredicateProcessor.java       |     6 +
 .../metron/stellar/common/utils/ConcatMap.java  |   256 +
 .../common/utils/StellarProcessorUtils.java     |    51 +-
 .../metron/stellar/dsl/MapVariableResolver.java |     8 +
 .../metron/stellar/dsl/VariableResolver.java    |     1 +
 .../dsl/functions/DataStructureFunctions.java   |     4 +
 .../common/CachingStellarProcessorTest.java     |   195 +-
 .../shell/specials/AssignmentCommandTest.java   |     7 +-
 .../stellar/common/utils/ConcatMapTest.java     |    83 +
 .../stellar/dsl/functions/BasicStellarTest.java |    18 +
 .../dsl/functions/OrdinalFunctionsTest.java     |     9 +-
 metron-stellar/stellar-zeppelin/README.md       |     6 +-
 metron-stellar/stellar-zeppelin/pom.xml         |     2 +-
 pom.xml                                         |     5 +-
 site-book/pom.xml                               |     2 +-
 site/current-book/CONTRIBUTING.html             |   157 +
 site/current-book/Upgrading.html                |   354 +-
 .../css/apache-maven-fluido-1.3.0.min.css       |     9 -
 .../css/apache-maven-fluido-1.7.min.css         |    17 +
 site/current-book/css/maven-base.css            |   168 +
 site/current-book/css/maven-theme.css           |   161 +
 site/current-book/css/print.css                 |    11 +-
 .../fonts/glyphicons-halflings-regular.eot      |   Bin 0 -> 35283 bytes
 .../fonts/glyphicons-halflings-regular.svg      |   229 +
 .../fonts/glyphicons-halflings-regular.ttf      |   Bin 0 -> 55016 bytes
 .../fonts/glyphicons-halflings-regular.woff     |   Bin 0 -> 41793 bytes
 .../images/apache-maven-project-2.png           |   Bin 33442 -> 43073 bytes
 site/current-book/images/collapsed.gif          |   Bin 0 -> 53 bytes
 site/current-book/images/expanded.gif           |   Bin 0 -> 52 bytes
 site/current-book/images/external.png           |   Bin 0 -> 230 bytes
 site/current-book/images/icon_error_sml.gif     |   Bin 633 -> 1010 bytes
 site/current-book/images/icon_info_sml.gif      |   Bin 638 -> 606 bytes
 site/current-book/images/icon_success_sml.gif   |   Bin 604 -> 990 bytes
 site/current-book/images/icon_warning_sml.gif   |   Bin 625 -> 576 bytes
 site/current-book/images/newwindow.png          |   Bin 0 -> 220 bytes
 site/current-book/index.html                    |   347 +-
 .../js/apache-maven-fluido-1.3.0.min.js         |    21 -
 .../js/apache-maven-fluido-1.7.min.js           |    25 +
 site/current-book/metron-analytics/index.html   |   303 +-
 .../metron-maas-service/index.html              |   451 +-
 .../metron-profiler-client/index.html           |   888 +-
 .../metron-analytics/metron-profiler/index.html |  1338 +-
 .../metron-statistics/HLLP.html                 | 10962 ++++++-----------
 .../metron-statistics/index.html                |   870 +-
 .../metron-contrib/metron-docker/index.html     |   540 +-
 .../metron-performance/index.html               |   317 +
 .../Kerberos-ambari-setup.html                  |   372 +-
 .../Kerberos-manual-setup.html                  |  1218 +-
 .../metron-deployment/amazon-ec2/index.html     |   755 +-
 .../metron-deployment/ansible/index.html        |   128 +
 .../metron-deployment/ansible/roles/index.html  |   140 +
 .../ansible/roles/opentaxii/index.html          |   301 +
 .../ansible/roles/pcap_replay/index.html        |   172 +
 .../ansible/roles/sensor-stubs/index.html       |   221 +
 .../ansible/roles/sensor-test-mode/index.html   |   156 +
 .../development/centos6/index.html              |   233 +
 .../development/fastcapa/index.html             |   249 +
 .../metron-deployment/development/index.html    |   137 +
 .../development/ubuntu14/index.html             |   233 +
 site/current-book/metron-deployment/index.html  |   691 +-
 .../metron-deployment/other-examples/index.html |   363 +-
 .../manual-install/Manual_Install_CentOS6.html  |  1352 +-
 .../ambari/elasticsearch-mpack/index.html       |   190 +
 .../packaging/ambari/index.html                 |  1150 +-
 .../packaging/ambari/metron-mpack/index.html    |   337 +
 .../packaging/docker/ansible-docker/index.html  |   432 +-
 .../packaging/docker/deb-docker/index.html      |   194 +
 .../packaging/docker/rpm-docker/index.html      |   430 +-
 .../packaging/packer-build/index.html           |   382 +-
 .../metron-deployment/roles/index.html          |   332 -
 .../metron-deployment/roles/monit/index.html    |   388 -
 .../roles/opentaxii/index.html                  |   480 -
 .../roles/pcap_replay/index.html                |   355 -
 .../roles/sensor-stubs/index.html               |   401 -
 .../roles/sensor-test-mode/index.html           |   345 -
 .../vagrant/codelab-platform/index.html         |   383 -
 .../vagrant/fastcapa-test-platform/index.html   |   416 -
 .../vagrant/full-dev-platform/index.html        |   420 -
 .../metron-deployment/vagrant/index.html        |   305 -
 .../vagrant/quick-dev-platform/index.html       |   406 -
 .../metron-interface/metron-alerts/index.html   |   434 +-
 .../metron-interface/metron-config/index.html   |   415 +-
 .../metron-interface/metron-rest/index.html     |  2661 ++--
 .../Performance-tuning-guide.html               |  1123 +-
 site/current-book/metron-platform/index.html    |   346 +-
 .../metron-platform/metron-api/index.html       |   387 +-
 .../metron-platform/metron-common/index.html    |   877 +-
 .../metron-data-management/index.html           |  1348 +-
 .../metron-elasticsearch/index.html             |   706 +-
 .../metron-enrichment/Performance.html          |   802 ++
 .../metron-enrichment/index.html                |   760 +-
 .../metron-platform/metron-indexing/index.html  |   547 +-
 .../metron-management/index.html                |  1178 +-
 .../metron-parsers/3rdPartyParser.html          |   467 +
 .../metron-platform/metron-parsers/index.html   |   870 +-
 .../metron-parsers/parser-testing.html          |   434 +-
 .../metron-pcap-backend/index.html              |   503 +-
 .../metron-platform/metron-writer/index.html    |   377 +-
 .../metron-sensors/bro-plugin-kafka/index.html  |   519 -
 .../metron-sensors/fastcapa/index.html          |  1239 +-
 site/current-book/metron-sensors/index.html     |   299 +-
 .../metron-sensors/pycapa/index.html            |   605 +-
 .../stellar-3rd-party-example/index.html        |   263 +-
 .../stellar-common/3rdPartyStellar.html         |   330 +-
 .../metron-stellar/stellar-common/index.html    |  3603 ++----
 .../metron-stellar/stellar-zeppelin/index.html  |   239 +
 .../use-cases/forensic_clustering/index.html    |   517 +-
 .../geographic_login_outliers/index.html        |   442 +-
 site/current-book/use-cases/index.html          |   283 +-
 .../use-cases/typosquat_detection/index.html    |   545 +
 site/documentation/index.md                     |    14 +-
 287 files changed, 26742 insertions(+), 33226 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-deployment/packaging/ambari/metron-mpack/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-deployment/packaging/ambari/metron-mpack/src/main/resources/common-services/METRON/CURRENT/package/scripts/metron_service.py
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-interface/metron-alerts/src/app/alerts/alert-details/alert-details.component.ts
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/SearchServiceImpl.java
----------------------------------------------------------------------
diff --cc 
metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/SearchServiceImpl.java
index 82b9c11,1c92fcb..54759e4
--- 
a/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/SearchServiceImpl.java
+++ 
b/metron-interface/metron-rest/src/main/java/org/apache/metron/rest/service/impl/SearchServiceImpl.java
@@@ -18,7 -18,8 +18,8 @@@
  package org.apache.metron.rest.service.impl;
  
  import static org.apache.metron.common.Constants.ERROR_TYPE;
 +import static 
org.apache.metron.indexing.dao.metaalert.MetaAlertConstants.METAALERT_TYPE;
+ import static org.apache.metron.common.Constants.SENSOR_TYPE_FIELD_PROPERTY;
 -import static org.apache.metron.indexing.dao.MetaAlertDao.METAALERT_TYPE;
  import static org.apache.metron.rest.MetronRestConstants.INDEX_WRITER_NAME;
  import static 
org.apache.metron.rest.MetronRestConstants.SEARCH_FACET_FIELDS_SPRING_PROPERTY;
  

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-interface/metron-rest/src/main/scripts/metron-rest.sh
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-interface/metron-rest/src/test/java/org/apache/metron/rest/controller/MetaAlertControllerIntegrationTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-elasticsearch/src/main/java/org/apache/metron/elasticsearch/dao/ElasticsearchMetaAlertDao.java
----------------------------------------------------------------------
diff --cc 
metron-platform/metron-elasticsearch/src/main/java/org/apache/metron/elasticsearch/dao/ElasticsearchMetaAlertDao.java
index ab6c40c,ee3ca89..f73a640
--- 
a/metron-platform/metron-elasticsearch/src/main/java/org/apache/metron/elasticsearch/dao/ElasticsearchMetaAlertDao.java
+++ 
b/metron-platform/metron-elasticsearch/src/main/java/org/apache/metron/elasticsearch/dao/ElasticsearchMetaAlertDao.java
@@@ -18,21 -18,17 +18,23 @@@
  
  package org.apache.metron.elasticsearch.dao;
  
 +import java.io.IOException;
 +import java.util.List;
 +import java.util.Map;
 +import java.util.Optional;
+ import org.apache.lucene.search.join.ScoreMode;
  import org.apache.metron.common.Constants;
+ import org.apache.metron.common.configuration.ConfigurationsUtils;
  import org.apache.metron.indexing.dao.AccessConfig;
  import org.apache.metron.indexing.dao.IndexDao;
 -import org.apache.metron.indexing.dao.MetaAlertDao;
  import org.apache.metron.indexing.dao.MultiIndexDao;
 +import org.apache.metron.indexing.dao.RetrieveLatestDao;
 +import org.apache.metron.indexing.dao.metaalert.MetaAlertConfig;
 +import org.apache.metron.indexing.dao.metaalert.MetaAlertConstants;
  import org.apache.metron.indexing.dao.metaalert.MetaAlertCreateRequest;
  import org.apache.metron.indexing.dao.metaalert.MetaAlertCreateResponse;
 +import org.apache.metron.indexing.dao.metaalert.MetaAlertDao;
  import org.apache.metron.indexing.dao.metaalert.MetaAlertStatus;
 -import org.apache.metron.indexing.dao.metaalert.MetaScores;
  import org.apache.metron.indexing.dao.search.FieldType;
  import org.apache.metron.indexing.dao.search.GetRequest;
  import org.apache.metron.indexing.dao.search.GroupRequest;
@@@ -247,4 -714,12 +277,5 @@@ public class ElasticsearchMetaAlertDao 
    public void setPageSize(int pageSize) {
      this.pageSize = pageSize;
    }
+ 
 -  private String getFieldName(String globalConfigKey, String 
defaultFieldName) {
 -    if (this.elasticsearchDao == null || 
this.elasticsearchDao.getAccessConfig() == null) {
 -      return defaultFieldName;
 -    }
 -    Map<String, Object> globalConfig = 
this.elasticsearchDao.getAccessConfig().getGlobalConfigSupplier().get();
 -    return ConfigurationsUtils.getFieldName(globalConfig, globalConfigKey, 
defaultFieldName);
 -  }
  }

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
----------------------------------------------------------------------
diff --cc 
metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
index 6fa6956,adc1a27..99f0490
--- 
a/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
+++ 
b/metron-platform/metron-elasticsearch/src/test/java/org/apache/metron/elasticsearch/integration/ElasticsearchMetaAlertIntegrationTest.java
@@@ -18,14 -18,18 +18,13 @@@
  
  package org.apache.metron.elasticsearch.integration;
  
 -import static org.apache.metron.common.Constants.SENSOR_TYPE;
 -import static org.apache.metron.common.Constants.SENSOR_TYPE_FIELD_PROPERTY;
 -import static org.apache.metron.indexing.dao.MetaAlertDao.ALERT_FIELD;
 -import static org.apache.metron.indexing.dao.MetaAlertDao.METAALERTS_INDEX;
 -import static org.apache.metron.indexing.dao.MetaAlertDao.METAALERT_FIELD;
 -import static org.apache.metron.indexing.dao.MetaAlertDao.METAALERT_TYPE;
 -import static org.apache.metron.indexing.dao.MetaAlertDao.STATUS_FIELD;
 -import static 
org.apache.metron.indexing.dao.MetaAlertDao.THREAT_FIELD_PROPERTY;
 +import static 
org.apache.metron.elasticsearch.dao.ElasticsearchMetaAlertDao.METAALERTS_INDEX;
- import static 
org.apache.metron.elasticsearch.dao.ElasticsearchMetaAlertDao.THREAT_TRIAGE_FIELD;
 +import static 
org.apache.metron.indexing.dao.metaalert.MetaAlertConstants.ALERT_FIELD;
 +import static 
org.apache.metron.indexing.dao.metaalert.MetaAlertConstants.METAALERT_DOC;
 +import static 
org.apache.metron.indexing.dao.metaalert.MetaAlertConstants.METAALERT_FIELD;
 +import static 
org.apache.metron.indexing.dao.metaalert.MetaAlertConstants.METAALERT_TYPE;
  
  import com.fasterxml.jackson.core.JsonProcessingException;
 -import com.google.common.base.Joiner;
 -import com.google.common.collect.Iterables;
  import java.io.File;
  import java.io.IOException;
  import java.text.SimpleDateFormat;
@@@ -46,12 -52,23 +45,13 @@@ import org.apache.metron.elasticsearch.
  import 
org.apache.metron.elasticsearch.integration.components.ElasticSearchComponent;
  import org.apache.metron.indexing.dao.AccessConfig;
  import org.apache.metron.indexing.dao.IndexDao;
 -import org.apache.metron.indexing.dao.MetaAlertDao;
 -import org.apache.metron.indexing.dao.metaalert.MetaAlertCreateRequest;
 -import org.apache.metron.indexing.dao.metaalert.MetaAlertCreateResponse;
++import org.apache.metron.indexing.dao.metaalert.MetaAlertDao;
 +import org.apache.metron.indexing.dao.metaalert.MetaAlertIntegrationTest;
  import org.apache.metron.indexing.dao.metaalert.MetaAlertStatus;
  import org.apache.metron.indexing.dao.search.GetRequest;
 -import org.apache.metron.indexing.dao.search.Group;
 -import org.apache.metron.indexing.dao.search.GroupRequest;
 -import org.apache.metron.indexing.dao.search.GroupResponse;
 -import org.apache.metron.indexing.dao.search.GroupResult;
 -import org.apache.metron.indexing.dao.search.InvalidSearchException;
  import org.apache.metron.indexing.dao.search.SearchRequest;
  import org.apache.metron.indexing.dao.search.SearchResponse;
 -import org.apache.metron.indexing.dao.search.SearchResult;
  import org.apache.metron.indexing.dao.search.SortField;
 -import org.apache.metron.indexing.dao.update.Document;
 -import org.apache.metron.indexing.dao.update.OriginalNotFoundException;
 -import org.apache.metron.indexing.dao.update.PatchRequest;
  import org.junit.After;
  import org.junit.AfterClass;
  import org.junit.Assert;
@@@ -119,6 -196,12 +119,12 @@@ public class ElasticsearchMetaAlertInte
          .withIndexDir(new File(INDEX_DIR))
          .build();
      es.start();
+   }
+ 
+   @Before
+   public void setup() throws IOException {
 -    es.createIndexWithMapping(METAALERTS_INDEX, MetaAlertDao.METAALERT_DOC, 
template.replace("%MAPPING_NAME%", "metaalert"));
++    es.createIndexWithMapping(METAALERTS_INDEX, METAALERT_DOC, 
template.replace("%MAPPING_NAME%", "metaalert"));
+     es.createIndexWithMapping(INDEX, "index_doc", 
template.replace("%MAPPING_NAME%", "index"));
  
      AccessConfig accessConfig = new AccessConfig();
      Map<String, Object> globalConfig = new HashMap<String, Object>() {
@@@ -135,19 -218,9 +141,11 @@@
  
      esDao = new ElasticsearchDao();
      esDao.init(accessConfig);
 -    metaDao = new ElasticsearchMetaAlertDao(esDao);
 +    ElasticsearchMetaAlertDao elasticsearchMetaDao = new 
ElasticsearchMetaAlertDao(esDao);
 +    elasticsearchMetaDao.setPageSize(5);
 +    metaDao = elasticsearchMetaDao;
    }
  
-   @Before
-   public void setup() throws IOException {
-     es.createIndexWithMapping(METAALERTS_INDEX, METAALERT_DOC,
-         template.replace("%MAPPING_NAME%", "metaalert"));
-     es.createIndexWithMapping(
-         INDEX_WITH_SEPARATOR, "index_doc", template.replace("%MAPPING_NAME%", 
"index"));
-   }
- 
    @AfterClass
    public static void teardown() {
      if (es != null) {

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/README.md
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/src/main/java/org/apache/metron/indexing/dao/HBaseDao.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/src/main/java/org/apache/metron/indexing/dao/metaalert/MetaAlertConstants.java
----------------------------------------------------------------------
diff --cc 
metron-platform/metron-indexing/src/main/java/org/apache/metron/indexing/dao/metaalert/MetaAlertConstants.java
index a055db5,0000000..daa5424
mode 100644,000000..100644
--- 
a/metron-platform/metron-indexing/src/main/java/org/apache/metron/indexing/dao/metaalert/MetaAlertConstants.java
+++ 
b/metron-platform/metron-indexing/src/main/java/org/apache/metron/indexing/dao/metaalert/MetaAlertConstants.java
@@@ -1,30 -1,0 +1,30 @@@
 +/*
 + * 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.metron.indexing.dao.metaalert;
 +
 +public class MetaAlertConstants {
 +  public static String METAALERT_TYPE = "metaalert";
 +  public static String METAALERT_FIELD = "metaalerts";
 +  public static String METAALERT_DOC = METAALERT_TYPE + "_doc";
 +  public static String THREAT_FIELD_DEFAULT = "threat:triage:score";
 +  public static String THREAT_SORT_DEFAULT = "sum";
-   public static String ALERT_FIELD = "alert";
++  public static String ALERT_FIELD = "metron_alert";
 +  public static String STATUS_FIELD = "status";
 +  public static String GROUPS_FIELD = "groups";
 +}

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/src/test/java/org/apache/metron/indexing/dao/InMemoryMetaAlertDao.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/src/test/java/org/apache/metron/indexing/integration/HBaseDaoIntegrationTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-indexing/src/test/java/org/apache/metron/indexing/integration/IndexingIntegrationTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-solr/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/SolrIndexingIntegrationTest.java
----------------------------------------------------------------------
diff --cc 
metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/SolrIndexingIntegrationTest.java
index 918a4ae,256f23b..2f9b285
--- 
a/metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/SolrIndexingIntegrationTest.java
+++ 
b/metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/SolrIndexingIntegrationTest.java
@@@ -17,16 -17,10 +17,16 @@@
   */
  package org.apache.metron.solr.integration;
  
 +import static org.apache.metron.solr.SolrConstants.SOLR_ZOOKEEPER;
 +
  import com.google.common.base.Function;
 +import java.util.List;
 +import java.util.Map;
 +import java.util.Properties;
 +import javax.annotation.Nullable;
  import org.apache.metron.common.configuration.Configurations;
  import org.apache.metron.common.configuration.ConfigurationsUtils;
- import org.apache.metron.common.interfaces.FieldNameConverter;
+ import org.apache.metron.common.field.FieldNameConverter;
  import org.apache.metron.common.utils.JSONUtils;
  import org.apache.metron.enrichment.integration.utils.SampleUtil;
  import org.apache.metron.indexing.integration.IndexingIntegrationTest;
@@@ -39,10 -33,14 +39,11 @@@ import org.apache.metron.integration.co
  import org.apache.metron.integration.components.ZKServerComponent;
  import org.apache.metron.solr.integration.components.SolrComponent;
  
 -import javax.annotation.Nullable;
 -import java.util.List;
 -import java.util.Map;
 -import java.util.Properties;
+ 
  public class SolrIndexingIntegrationTest extends IndexingIntegrationTest {
  
 -  private String collection = "metron";
 +  private String collection = "yaf";
 +
    private FieldNameConverter fieldNameConverter = fieldName -> fieldName;
    @Override
    public FieldNameConverter getFieldNameConverter() {

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/schema/SchemaValidationIntegrationTest.java
----------------------------------------------------------------------
diff --cc 
metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/schema/SchemaValidationIntegrationTest.java
index 2b523d8,0000000..1a8e290
mode 100644,000000..100644
--- 
a/metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/schema/SchemaValidationIntegrationTest.java
+++ 
b/metron-platform/metron-solr/src/test/java/org/apache/metron/solr/integration/schema/SchemaValidationIntegrationTest.java
@@@ -1,196 -1,0 +1,201 @@@
 +/**
 + * 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.metron.solr.integration.schema;
 +
 +import com.google.common.collect.Iterables;
 +import com.google.common.io.Files;
 +import org.apache.metron.common.configuration.writer.WriterConfiguration;
 +import org.apache.metron.common.utils.JSONUtils;
 +import org.apache.metron.common.writer.BulkWriterResponse;
 +import org.apache.metron.solr.integration.components.SolrComponent;
 +import org.apache.metron.solr.writer.SolrWriter;
 +import org.apache.metron.stellar.common.utils.ConversionUtils;
 +import org.apache.solr.client.solrj.SolrServerException;
 +import org.apache.storm.tuple.Tuple;
 +import org.apache.zookeeper.KeeperException;
 +import org.json.simple.JSONObject;
 +import org.junit.Assert;
 +import org.junit.Before;
 +import org.junit.Test;
 +import org.mockito.Mock;
 +import java.io.File;
 +import java.io.IOException;
 +import java.nio.charset.Charset;
 +import java.util.*;
 +
 +import static org.apache.metron.solr.SolrConstants.SOLR_ZOOKEEPER;
 +import static org.mockito.Mockito.mock;
 +
 +public class SchemaValidationIntegrationTest {
 +  public static Iterable<String> getData(String sensor) throws IOException {
 +    return Iterables.filter(
 +            Files.readLines(new File("src/test/resources/example_data/" + 
sensor), Charset.defaultCharset()),
 +            s -> !s.startsWith("#") && s.length() > 0
 +    );
 +  }
 +
 +  public static Map<String, Object> getGlobalConfig(String sensorType, 
SolrComponent component) {
 +    Map<String, Object> globalConfig = new HashMap<>();
 +    globalConfig.put(SOLR_ZOOKEEPER, component.getZookeeperUrl());
 +    return globalConfig;
 +  }
 +
 +  public static SolrComponent createSolrComponent(String sensor) throws 
Exception {
 +    return new SolrComponent.Builder().build();
 +  }
 +
 +  @Test
 +  public void testError() throws Exception {
 +    test("error");
 +  }
 +
 +  @Test
 +  public void testBro() throws Exception {
 +    test("bro");
 +  }
 +
 +  @Test
 +  public void testSnort() throws Exception {
 +    test("snort");
 +  }
 +
 +  @Test
 +  public void testYaf() throws Exception {
 +    test("yaf");
 +  }
 +
 +  public String getGuid(Map<String, Object> m) {
 +    if(m.containsKey("guid")) {
 +      return (String)m.get("guid");
 +    }
 +    else {
 +      return (String) m.get("original_string");
 +    }
 +  }
 +
 +  public void test(String sensorType) throws Exception {
 +    SolrComponent component = null;
 +    try {
 +      component = createSolrComponent(sensorType);
 +      component.start();
 +      component.addCollection(String.format("%s", sensorType), 
String.format("src/main/config/schema/%s", sensorType));
 +      Map<String, Object> globalConfig = getGlobalConfig(sensorType, 
component);
 +
 +      List<JSONObject> inputs = new ArrayList<>();
 +      List<Tuple> tuples = new ArrayList<>();
 +      Map<String, Map<String, Object>> index = new HashMap<>();
 +      for (String message : getData(sensorType)) {
 +        if (message.trim().length() > 0) {
 +          Tuple t = mock(Tuple.class);
 +          tuples.add(t);
 +          Map<String, Object> m = JSONUtils.INSTANCE.load(message.trim(), 
JSONUtils.MAP_SUPPLIER);
 +          String guid = getGuid(m);
 +          index.put(guid, m);
 +          inputs.add(new JSONObject(m));
 +        }
 +      }
 +      Assert.assertTrue(inputs.size() > 0);
 +
 +      SolrWriter solrWriter = new SolrWriter();
 +
 +      WriterConfiguration writerConfig = new WriterConfiguration() {
 +        @Override
 +        public int getBatchSize(String sensorName) {
 +          return inputs.size();
 +        }
 +
 +        @Override
 +        public int getBatchTimeout(String sensorName) {
 +          return 0;
 +        }
 +
 +        @Override
 +        public List<Integer> getAllConfiguredTimeouts() {
 +          return new ArrayList<>();
 +        }
 +
 +        @Override
 +        public String getIndex(String sensorName) {
 +          return sensorType;
 +        }
 +
 +        @Override
 +        public boolean isEnabled(String sensorName) {
 +          return true;
 +        }
 +
 +        @Override
 +        public Map<String, Object> getSensorConfig(String sensorName) {
 +          return new HashMap<String, Object>() {{
 +            put("index", sensorType);
 +            put("batchSize", inputs.size());
 +            put("enabled", true);
 +          }};
 +        }
 +
 +        @Override
 +        public Map<String, Object> getGlobalConfig() {
 +          return globalConfig;
 +        }
 +
 +        @Override
 +        public boolean isDefault(String sensorName) {
 +          return false;
 +        }
++
++        @Override
++        public String getFieldNameConverter(String sensorName) {
++          return null;
++        }
 +      };
 +
 +      solrWriter.init(null, null, writerConfig);
 +
 +      BulkWriterResponse response = solrWriter.write(sensorType, 
writerConfig, tuples, inputs);
 +      Assert.assertTrue(response.getErrors().isEmpty());
 +      for (Map<String, Object> m : component.getAllIndexedDocs(sensorType)) {
 +        Map<String, Object> expected = index.get(getGuid(m));
 +        for (Map.Entry<String, Object> field : expected.entrySet()) {
 +          if (field.getValue() instanceof Collection && ((Collection) 
field.getValue()).size() == 0) {
 +            continue;
 +          }
 +          if(m.get(field.getKey()) instanceof Number) {
 +            Number n1 = ConversionUtils.convert(field.getValue(), 
Double.class);
 +            Number n2 = (Number)m.get(field.getKey());
 +            boolean isSame = Math.abs(n1.doubleValue() - n2.doubleValue()) < 
1e-3;
 +            if(!isSame) {
 +              String s1 = "" + n1.doubleValue();
 +              String s2 = "" + n2.doubleValue();
 +              isSame = s1.startsWith(s2) || s2.startsWith(s1);
 +            }
 +            Assert.assertTrue("Unable to validate " + field.getKey() + ": " + 
n1 + " != " + n2, isSame);
 +          }
 +          else {
 +            Assert.assertEquals("Unable to find " + field.getKey(), "" + 
field.getValue(), "" + m.get(field.getKey()));
 +          }
 +        }
 +      }
 +    }
 +    finally {
 +      if(component != null) {
 +        component.stop();
 +      }
 +    }
 +  }
 +
 +}

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/metron-platform/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/metron/blob/41708876/pom.xml
----------------------------------------------------------------------

Reply via email to