#!/usr/bin/env bash
#
# Copyright 2016-2017 Confluent Inc.
#
set -o errexit \
    -o verbose

echo "===> Adding disk usage agent to the java command ... " 
export EXTRA_ARGS="${EXTRA_ARGS} -javaagent:/usr/share/java/cc-base/disk-usage-agent-${CC_BASE_VERSION}.jar=/opt/caas/config/kafka/disk-usage-agent.properties"

echo "===> Adding jolokia agent to the java command ... " 
export JOLOKIA_AGENT_PORT=${JOLOKIA_AGENT_PORT:-7777}
export JOLOKIA_AGENT_HOST=${JOLOKIA_AGENT_HOST:-"0.0.0.0"}
export EXTRA_ARGS="${EXTRA_ARGS} -javaagent:/opt/caas/lib/jolokia/jolokia-jvm-${JOLOKIA_AGENT_VERSION}.jar=port=${JOLOKIA_AGENT_PORT},host=${JOLOKIA_AGENT_HOST}"

echo "===> Adding jmx exporter to the java command ... " 
export JMX_EXPORTER_AGENT_PORT=${JMX_EXPORTER_AGENT_PORT:-7778}
export JMX_EXPORTER_AGENT_HOST=${JMX_EXPORTER_AGENT_HOST:-"0.0.0.0"}

export EXTRA_ARGS="${EXTRA_ARGS} -javaagent:/opt/caas/lib/jmx_prometheus_javaagent-${JMX_EXPORTER_AGENT_VERSION}.jar=${JMX_EXPORTER_AGENT_PORT}:/opt/caas/config/jmx-exporter.yaml"


echo "===> Adding JAAS security property to the java command ... "
SERVER_JAAS_FILE="${KAFKA_CONFIG_DIR}/shared/server_jaas.conf"
if [ -f "$SERVER_JAAS_FILE" ]; then
  echo "${SERVER_JAAS_FILE} exists"
  export EXTRA_ARGS="${EXTRA_ARGS} -Djava.security.auth.login.config=${KAFKA_CONFIG_DIR}/shared/server_jaas.conf"
else
  echo "No server_jaas.conf file present, using JAAS config from the server.properties file"
fi

echo "===> Adding logging json layout to CLASSPATH ... "
export CLASSPATH=/usr/share/java/cc-base/log4j-json-layout-${CC_BASE_VERSION}.jar

echo "===> Adding kafka broker plugins to CLASSPATH ... "
export CLASSPATH="/opt/confluent/libs/*:$CLASSPATH"

echo "===> Adding kafka log4j config ... "
cat /opt/caas/config/kafka/log4j.properties 
export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:/opt/caas/config/kafka/log4j.properties"

echo "===> Adding JVM config to the java command ... "
cat /opt/caas/config/kafka/jvm.config
export EXTRA_ARGS="$(cat /opt/caas/config/kafka/jvm.config | xargs) ${EXTRA_ARGS}"
# These ensure that the "if" sections for heap sizing, GC tuning, and JMX opts in kafka launch script do not trigger.
export KAFKA_HEAP_OPTS=' '
export KAFKA_JVM_PERFORMANCE_OPTS=' '
export JMX_PORT=' '

echo "===> Launching ${COMPONENT} ... "
exec /opt/confluent/bin/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka ${KAFKA_CONFIG_DIR}/kafka.properties
