# 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.
spring:
  datasource:
      driverClassName: org.h2.Driver
      url: jdbc:h2:mem:testdb
      username: sa
      password:
      platform: h2
  jpa:
    hibernate:
      ddl-auto: create-drop
  main:
    banner-mode: 'off'

grok:
  path:
    temp: target/patterns/temp

storm:
  ui:
    url: stormUITestUrl
  parser:
    script.path: /usr/metron/${metron.version}/bin/start_parser_topology.sh
  enrichment:
    script.path: /usr/metron/${metron.version}/bin/start_enrichment_topology.sh
  indexing:
    randomaccess.script.path: /usr/metron/${metron.version}/bin/start_elasticsearch_topology.sh
    batch.script.path: /usr/metron/${metron.version}/bin/start_hdfs_topology.sh

search:
  max:
    results: 100
  facet:
    fields: ip_src_addr

index:
  dao:
  # By default, we use the InMemoryDao for our tests and HBaseDao for backing updates.
     impl: org.apache.metron.indexing.dao.InMemoryDao,org.apache.metron.indexing.dao.HBaseDao
  hbase:
  # HBase is provided via a mock provider, so no actual HBase infrastructure is started.
     provider: org.apache.metron.hbase.mock.MockHBaseTableProvider

meta:
  dao:
  # By default, we use the InMemoryMetaAlertDao for our tests
    impl: org.apache.metron.indexing.dao.InMemoryMetaAlertDao
