<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--

    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>
  <property>
    <name>rootDbUrl</name>
    <value></value>
    <description>Root DbUrl.</description>
  </property>
  <property>
    <name>dt.application.HiveInsertBenchmarkingApp.operator.HiveOperator.store.filepath</name>
    <value></value>
    <description>Filepath</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.HiveOperator.store.filepath</name>
    <value></value>
    <description>Filepath</description>
  </property>

  <property>
    <name>dt.application.HiveInsertBenchmarkingApp.operator.HiveOperator.tablename</name>
    <value>temp</value>
    <description>tablename for insert string</description>
  </property>
  <property>
    <name>dt.application.HiveInsertBenchmarkingApp.operator.RollingFsWriter.filePermission</name>
    <value>511</value>
    <description>Permission</description>
  </property>
  <property>
    <name>dt.application.HiveInsertBenchmarkingApp.operator.RollingFsWriter.maxLength</name>
    <value>512</value>
    <description>Max Length</description>
  </property>
  <property>
    <name>dt.application.HiveInsertBenchmarkingApp.operator.HiveOperator.store.connectionProperties</name>
    <value></value>
    <description>The connection properties for the database.</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.HiveOperator.tablename</name>
    <value>tempMap</value>
    <description>tablename for insert map</description>
  </property>
  <property>
    <name>dt.application.HiveInsertBenchmarkingApp.operator.HiveOperator.store.dbUrl</name>
    <value></value>
    <description>Test database connector string.</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.HiveOperator.store.dbUrl</name>
    <value></value>
    <description>Test database connector string.</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.HiveOperator.RollingFsMapWriter.filePermission</name>
    <value>511</value>
    <description>Permission</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.HiveOperator.store.connectionProperties</name>
    <value></value>
    <description>Test database connector string.</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.RollingFsMapWriter.maxLength</name>
    <value>512</value>
    <description>Max Length</description>
  </property>
  <property>
    <name>dt.application.HiveMapInsertBenchmarkingApp.operator.RollingFsMapWriter.delimiter</name>
    <value>:</value>
  </property>
</configuration>
