Marko Oldenburg b2d45ee0c4
Some checks failed
Build Helm Chart / helm-package (push) Failing after 30s
```
Rename artemis-broker to artemis-broker-primary

This commit renames and refactors the Helm chart for the
artemis-broker. The original files in the artemis-broker
directory are renamed and moved to artemis-broker-primary.
The purpose of this change is to enable a clear
distinction between the primary broker configuration and any
backup or alternative configurations.

Additionally, the configuration has been updated to support
enhancements in TLS setup, metrics services, and users,
allowing for a more robust and flexible deployment.
This change introduces new templates and scripts needed
for managing various aspects of the broker's functions,
including improved user authentication and logging. No
breaking changes were introduced, but users must update
their references to the chart paths as they now point to
the new directory structure.
```
2025-03-18 08:30:01 +01:00

445 lines
18 KiB
Bash
Executable File

#!/bin/bash
if [ "${SCRIPT_DEBUG}" = "true" ] ; then
set -x
echo "Script debugging is enabled, allowing bash commands and their arguments to be printed as they are executed"
fi
export BROKER_IP=`hostname -I`
CONFIG_TEMPLATES=/config_templates
#GC Option conflicts with the one already configured.
echo "Removing provided -XX:+UseParallelOldGC in favour of artemis.profile provided option"
JAVA_OPTS=$(echo $JAVA_OPTS | sed -e "s/-XX:+UseParallelOldGC/ /")
PLATFORM=`uname -m`
echo "Platform is ${PLATFORM}"
if [ "${PLATFORM}" = "s390x" ] ; then
#GC Option found to be a problem on s390x
echo "Removing -XX:+UseG1GC as per recommendation to use default GC"
JAVA_OPTS=$(echo $JAVA_OPTS | sed -e "s/-XX:+UseG1GC/ /")
#JDK11 related warnings removal
echo "Adding -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true as per ENTMQBR-1932"
JAVA_OPTS="-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true ${JAVA_OPTS}"
fi
JAVA_OPTS="-Djava.net.preferIPv4Stack=true ${JAVA_OPTS}"
if [ "$AMQ_ENABLE_JOLOKIA_AGENT" = "true" ]; then
echo "Define jolokia jvm agent options"
if [ -z ${AMQ_JOLOKIA_AGENT_OPTS} ]; then
if [ -f "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" ]; then
AMQ_JOLOKIA_AGENT_OPTS='realm=activemq,caCert=/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt,clientPrincipal.1=cn=system:master-proxy,clientPrincipal.2=cn=hawtio-online.hawtio.svc,clientPrincipal.3=cn=fuse-console.fuse.svc'
else
AMQ_JOLOKIA_AGENT_OPTS='realm=activemq,clientPrincipal.1=cn=system:master-proxy,clientPrincipal.2=cn=hawtio-online.hawtio.svc,clientPrincipal.3=cn=fuse-console.fuse.svc'
fi
fi
export AB_JOLOKIA_USER=$AMQ_JOLOKIA_AGENT_USER
export AB_JOLOKIA_PASSWORD_RANDOM=false
export AB_JOLOKIA_PASSWORD=$AMQ_JOLOKIA_AGENT_PASSWORD
export AB_JOLOKIA_OPTS="${AMQ_JOLOKIA_AGENT_OPTS}"
JOLOKIA_OPTS="$(/opt/jolokia/jolokia-opts)"
echo "JOLOKIA_OPTS: $JOLOKIA_OPTS"
fi
function sslPartial() {
[ -n "$AMQ_KEYSTORE_TRUSTSTORE_DIR" -o -n "$AMQ_KEYSTORE" -o -n "$AMQ_TRUSTSTORE" -o -n "$AMQ_KEYSTORE_PASSWORD" -o -n "$AMQ_TRUSTSTORE_PASSWORD" ]
}
function sslEnabled() {
[ -n "$AMQ_KEYSTORE_TRUSTSTORE_DIR" -a -n "$AMQ_KEYSTORE" -a -n "$AMQ_TRUSTSTORE" -a -n "$AMQ_KEYSTORE_PASSWORD" -a -n "$AMQ_TRUSTSTORE_PASSWORD" ]
}
# Finds the environment variable and returns its value if found.
# Otherwise returns the default value if provided.
#
# Arguments:
# $1 env variable name to check
# $2 default value if environemnt variable was not set
function find_env() {
var=${!1}
echo "${var:-$2}"
}
function configureUserAuthentication() {
if [ -n "${AMQ_USER}" -a -n "${AMQ_PASSWORD}" ] ; then
AMQ_ARGS="$AMQ_ARGS --user $AMQ_USER --password $AMQ_PASSWORD "
else
echo "Required variable missing: both AMQ_USER and AMQ_PASSWORD are required."
exit 1
fi
if [ "$AMQ_REQUIRE_LOGIN" = "true" ]; then
AMQ_ARGS="$AMQ_ARGS --require-login"
else
AMQ_ARGS="$AMQ_ARGS --allow-anonymous"
fi
}
function configureLogging() {
instanceDir=$1
if [ "$AMQ_DATA_DIR_LOGGING" = "true" ]; then
echo "Configuring logging directory to be ${AMQ_DATA_DIR}/log"
sed -i 's@${artemis.instance}@'"$AMQ_DATA_DIR"'@' ${instanceDir}/etc/logging.properties
fi
}
function configureNetworking() {
if [ "$AMQ_CLUSTERED" = "true" ]; then
echo "Broker will be clustered"
AMQ_ARGS="$AMQ_ARGS --clustered --cluster-user $AMQ_CLUSTER_USER --cluster-password $AMQ_CLUSTER_PASSWORD --host $BROKER_IP"
ACCEPTOR_IP=$BROKER_IP
else
AMQ_ARGS="$AMQ_ARGS --host 0.0.0.0"
ACCEPTOR_IP="0.0.0.0"
fi
}
function configureRedistributionDelay() {
instanceDir=$1
echo "Setting redistribution-delay to zero."
sed -i "s/<address-setting match=\"#\">/&\n <redistribution-delay>0<\/redistribution-delay>/g" ${instanceDir}/etc/broker.xml
}
function configureSSL() {
sslDir=$(find_env "AMQ_KEYSTORE_TRUSTSTORE_DIR" "")
keyStoreFile=$(find_env "AMQ_KEYSTORE" "")
trustStoreFile=$(find_env "AMQ_TRUSTSTORE" "")
if sslEnabled ; then
keyStorePassword=$(find_env "AMQ_KEYSTORE_PASSWORD" "")
trustStorePassword=$(find_env "AMQ_TRUSTSTORE_PASSWORD" "")
keyStorePath="$sslDir/$keyStoreFile"
trustStorePath="$sslDir/$trustStoreFile"
AMQ_ARGS="$AMQ_ARGS --ssl-key $keyStorePath"
AMQ_ARGS="$AMQ_ARGS --ssl-key-password $keyStorePassword"
AMQ_ARGS="$AMQ_ARGS --ssl-trust $trustStorePath"
AMQ_ARGS="$AMQ_ARGS --ssl-trust-password $trustStorePassword"
elif sslPartial ; then
log_warning "Partial ssl configuration, the ssl context WILL NOT be configured."
fi
}
function updateAcceptorsForSSL() {
instanceDir=$1
if sslEnabled ; then
echo "keystore filepath: $keyStorePath"
IFS=',' read -a protocols <<< $(find_env "AMQ_TRANSPORTS" "openwire,amqp,stomp,mqtt,hornetq")
connectionsAllowed=$(find_env "AMQ_MAX_CONNECTIONS" "1000")
sslProvider=$(find_env "AMQ_SSL_PROVIDER" "")
if [ -z "${sslProvider}" ] ; then
SSL_OPS="sslEnabled=true;keyStorePath=${keyStorePath};keyStorePassword=${keyStorePassword}"
else
SSL_OPS="sslEnabled=true;keyStorePath=${keyStorePath};keyStorePassword=${keyStorePassword};sslProvider=${sslProvider}"
fi
if [ "${#protocols[@]}" -ne "0" ]; then
acceptors=""
for protocol in ${protocols[@]}; do
case "${protocol}" in
"openwire")
acceptors="${acceptors} <acceptor name=\"artemis-ssl\">tcp://${ACCEPTOR_IP}:61617?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;connectionsAllowed=${connectionsAllowed};${SSL_OPS}</acceptor>\n"
;;
"mqtt")
acceptors="${acceptors} <acceptor name=\"mqtt-ssl\">tcp://${ACCEPTOR_IP}:8883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true;connectionsAllowed=${connectionsAllowed};${SSL_OPS}</acceptor>\n"
;;
"amqp")
acceptors="${acceptors} <acceptor name=\"amqp-ssl\">tcp://${ACCEPTOR_IP}:5671?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpMinCredits=300;connectionsAllowed=${connectionsAllowed};${SSL_OPS}</acceptor>\n"
;;
"stomp")
acceptors="${acceptors} <acceptor name=\"stomp-ssl\">tcp://${ACCEPTOR_IP}:61612?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true;connectionsAllowed=${connectionsAllowed};${SSL_OPS}</acceptor>\n"
;;
esac
done
fi
safeAcceptors=$(echo "${acceptors}" | sed 's/\//\\\//g')
sed -i "/<\/acceptors>/ s/.*/${safeAcceptors}\n&/" ${instanceDir}/etc/broker.xml
fi
}
function updateAcceptorsForPrefixing() {
instanceDir=$1
if [ -n "$AMQ_MULTICAST_PREFIX" ]; then
echo "Setting multicastPrefix to ${AMQ_MULTICAST_PREFIX}"
sed -i "s/:61616?/&multicastPrefix=${AMQ_MULTICAST_PREFIX};/g" ${instanceDir}/etc/broker.xml
sed -i "s/:61617?/&multicastPrefix=${AMQ_MULTICAST_PREFIX};/g" ${instanceDir}/etc/broker.xml
fi
if [ -n "$AMQ_ANYCAST_PREFIX" ]; then
echo "Setting anycastPrefix to ${AMQ_ANYCAST_PREFIX}"
sed -i "s/:61616?/&anycastPrefix=${AMQ_ANYCAST_PREFIX};/g" ${instanceDir}/etc/broker.xml
sed -i "s/:61617?/&anycastPrefix=${AMQ_ANYCAST_PREFIX};/g" ${instanceDir}/etc/broker.xml
fi
}
function appendAcceptorsFromEnv() {
instanceDir=$1
if [ -n "$AMQ_ACCEPTORS" ]; then
echo "Using acceptors from environment and removing existing entries"
sed -i "/acceptor name=/d" ${instanceDir}/etc/broker.xml
acceptorsFromEnv=$(find_env "AMQ_ACCEPTORS" "")
# As AMQ_ACCEPTORS was introduced from the operator, the operator makes a safe string for here
safeAcceptorsFromEnv=$(echo "${acceptorsFromEnv}")
sed -i "/<\/acceptors>/ s/.*/${safeAcceptorsFromEnv}\n&/g" ${instanceDir}/etc/broker.xml
sed -i "s/ACCEPTOR_IP/${ACCEPTOR_IP}/g" ${instanceDir}/etc/broker.xml
fi
}
function appendConnectorsFromEnv() {
instanceDir=$1
if [ -n "$AMQ_CONNECTORS" ]; then
echo "Appending connectors from environment"
connectorsFromEnv=$(find_env "AMQ_CONNECTORS" "")
# As AMQ_CONNECTORS was introduced from the operator, the operator makes a safe string for here
safeConnectorsFromEnv=$(echo "${connectorsFromEnv}")
endConnectorsCount=`grep -c '</connectors>' ${instanceDir}/etc/broker.xml`
if [ ${endConnectorsCount} -ne 0 ]; then
sed -i "/<\/connectors>/ s/.*/\t\t${safeConnectorsFromEnv}\n&/" ${instanceDir}/etc/broker.xml
else
sed -i "/<\/acceptors>/ s/.*/&\n\t<connectors>\n\t\t${safeConnectorsFromEnv}\n\t<\/connectors>\n/" ${instanceDir}/etc/broker.xml
fi
fi
}
function appendJournalType() {
instanceDir=$1
if [ -n "$AMQ_JOURNAL_TYPE" ]; then
echo "Setting journal type to ${AMQ_JOURNAL_TYPE}"
if [[ $(removeWhiteSpace ${AMQ_JOURNAL_TYPE}) != *"nio"* ]]; then
AMQ_ARGS="$AMQ_ARGS --aio"
fi
if [[ $(removeWhiteSpace ${AMQ_JOURNAL_TYPE}) != *"aio"* ]]; then
AMQ_ARGS="$AMQ_ARGS --nio"
fi
fi
}
function modifyDiscovery() {
discoverygroup=""
discoverygroup="${discoverygroup} <discovery-group name=\"my-discovery-group\">"
discoverygroup="${discoverygroup} <jgroups-file>jgroups-ping.xml</jgroups-file>"
discoverygroup="${discoverygroup} <jgroups-channel>activemq_broadcast_channel</jgroups-channel>"
discoverygroup="${discoverygroup} <refresh-timeout>10000</refresh-timeout>"
discoverygroup="${discoverygroup} </discovery-group> "
sed -i -ne "/<discovery-groups>/ {p; i $discoverygroup" -e ":a; n; /<\/discovery-groups>/ {p; b}; ba}; p" ${instanceDir}/etc/broker.xml
#generate jgroups-ping.xml
echo "Generating jgroups-ping.xml, current dir is: $PWD, AMQHOME: $AMQ_HOME"
if [ -z "${PING_SVC_NAME+x}" ]; then
echo "PING_SERVICE is not set"
PING_SVC_NAME=ping
fi
if [ -z "${APPLICATION_NAME+x}" ]; then
echo "APPLICATION_NAME is not set"
sed -i -e "s/\${APPLICATION_NAME}-\${PING_SVC_NAME}/${PING_SVC_NAME}/" $AMQ_HOME/conf/jgroups-ping.xml
else
echo "APPLICATION_NAME is set"
sed -i -e "s/\${APPLICATION_NAME}-\${PING_SVC_NAME}/${APPLICATION_NAME}-${PING_SVC_NAME}/" $AMQ_HOME/conf/jgroups-ping.xml
fi
broadcastgroup=""
broadcastgroup="${broadcastgroup} <broadcast-group name=\"my-broadcast-group\">"
broadcastgroup="${broadcastgroup} <jgroups-file>jgroups-ping.xml</jgroups-file>"
broadcastgroup="${broadcastgroup} <jgroups-channel>activemq_broadcast_channel</jgroups-channel>"
broadcastgroup="${broadcastgroup} <connector-ref>artemis</connector-ref>"
broadcastgroup="${broadcastgroup} </broadcast-group> "
sed -i -ne "/<broadcast-groups>/ {p; i $broadcastgroup" -e ":a; n; /<\/broadcast-groups>/ {p; b}; ba}; p" ${instanceDir}/etc/broker.xml
clusterconnections=""
clusterconnections="${clusterconnections} <cluster-connection name=\"my-cluster\">"
clusterconnections="${clusterconnections} <connector-ref>artemis</connector-ref>"
clusterconnections="${clusterconnections} <retry-interval>1000</retry-interval>"
clusterconnections="${clusterconnections} <retry-interval-multiplier>2</retry-interval-multiplier>"
clusterconnections="${clusterconnections} <max-retry-interval>32000</max-retry-interval>"
clusterconnections="${clusterconnections} <initial-connect-attempts>20</initial-connect-attempts>"
clusterconnections="${clusterconnections} <reconnect-attempts>10</reconnect-attempts>"
clusterconnections="${clusterconnections} <use-duplicate-detection>true</use-duplicate-detection>"
clusterconnections="${clusterconnections} <message-load-balancing>ON_DEMAND</message-load-balancing>"
clusterconnections="${clusterconnections} <max-hops>1</max-hops>"
clusterconnections="${clusterconnections} <discovery-group-ref discovery-group-name=\"my-discovery-group\"/>"
clusterconnections="${clusterconnections} </cluster-connection> "
sed -i -ne "/<cluster-connections>/ {p; i $clusterconnections" -e ":a; n; /<\/cluster-connections>/ {p; b}; ba}; p" ${instanceDir}/etc/broker.xml
}
function configureJAVA_ARGSMemory() {
instanceDir=$1
echo "Removing hardcoded -Xms -Xmx from artemis.profile in favour of JAVA_OPTS in log above"
sed -i "s/\-Xms[0-9]*[mMgG] \-Xmx[0-9]*[mMgG] \-Dhawtio/\ -Dhawtio/g" ${instanceDir}/etc/artemis.profile
}
function configureJolokiaJVMAgent() {
instanceDir=$1
if [ "$AMQ_ENABLE_JOLOKIA_AGENT" = "true" ]; then
echo "Configure jolokia jvm agent"
echo "JOLOKIA_OPTS: $JOLOKIA_OPTS"
echo '' >> ${instanceDir}/etc/artemis.profile
echo "if [ \"\$1\" = \"run\" ]; then JAVA_ARGS=\"\$JAVA_ARGS $JOLOKIA_OPTS\"; fi" >> ${instanceDir}/etc/artemis.profile
echo '' >> ${instanceDir}/etc/artemis.profile
fi
}
function injectMetricsPlugin() {
instanceDir=$1
echo "Adding artemis metrics plugin"
sed -i "s/^\([[:blank:]]*\)<\\/core>/\1\1<metrics-plugin class-name=\"org.apache.activemq.artemis.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin\"\\/>\\n\1<\\/core>/" $instanceDir/etc/broker.xml
if ! grep -q 'metrics' $instanceDir/etc/bootstrap.xml; then
sed -i 's~</binding>~<app url="metrics" war="metrics.war"/></binding>~' $instanceDir/etc/bootstrap.xml
fi
}
function checkBeforeRun() {
instanceDir=$1
if [ "$AMQ_ENABLE_METRICS_PLUGIN" = "true" ]; then
pluginStr="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"
grep -q "$pluginStr" ${instanceDir}/etc/broker.xml
result=$?
if [[ $result == 0 ]]; then
echo "The Prometheus plugin already configured."
else
echo "Need to inject Prometheus plugin"
injectMetricsPlugin ${instanceDir}
fi
fi
if [[ "${JAVA_ARGS_APPEND}" == *"-Dlog4j2.configurationFile"* ]]; then
echo "There is a custom logger configuration defined in JAVA_ARGS_APPEND: ${JAVA_ARGS_APPEND}"
else
echo "Using default logging configuration(console only)"
defaultLoggingConfigFile=${instanceDir}/etc/log4j2.properties
sed -i "s/rootLogger = INFO, console, log_file/rootLogger = INFO, console/g" $defaultLoggingConfigFile
fi
}
function configure() {
instanceDir=$1
export CONTAINER_ID=$HOSTNAME
if [ ! -d ${instanceDir} -o "$AMQ_RESET_CONFIG" = "true" -o ! -f ${instanceDir}/bin/artemis ]; then
AMQ_ARGS="--silent --role $AMQ_ROLE --name $AMQ_NAME --http-host $BROKER_IP --java-options=-Djava.net.preferIPv4Stack=true "
configureUserAuthentication
if [ -n "$AMQ_DATA_DIR" ]; then
AMQ_ARGS="$AMQ_ARGS --data ${AMQ_DATA_DIR}"
fi
if [ -n "$AMQ_QUEUES" ]; then
AMQ_ARGS="$AMQ_ARGS --queues $(removeWhiteSpace $AMQ_QUEUES)"
fi
if [ -n "$AMQ_ADDRESSES" ]; then
AMQ_ARGS="$AMQ_ARGS --addresses $(removeWhiteSpace $AMQ_ADDRESSES)"
fi
if [ -n "$AMQ_ACCEPTORS" ]; then
AMQ_ARGS="$AMQ_ARGS --no-amqp-acceptor --no-hornetq-acceptor --no-mqtt-acceptor --no-stomp-acceptor"
else
if [ -n "$AMQ_TRANSPORTS" ]; then
if [[ $(removeWhiteSpace ${AMQ_TRANSPORTS}) != *"hornetq"* ]]; then
AMQ_ARGS="$AMQ_ARGS --no-hornetq-acceptor"
fi
if [[ $(removeWhiteSpace ${AMQ_TRANSPORTS}) != *"amqp"* ]]; then
AMQ_ARGS="$AMQ_ARGS --no-amqp-acceptor"
fi
if [[ $(removeWhiteSpace ${AMQ_TRANSPORTS}) != *"mqtt"* ]]; then
AMQ_ARGS="$AMQ_ARGS --no-mqtt-acceptor"
fi
if [[ $(removeWhiteSpace ${AMQ_TRANSPORTS}) != *"stomp"* ]]; then
AMQ_ARGS="$AMQ_ARGS --no-stomp-acceptor"
fi
fi
fi
if [ -n "$GLOBAL_MAX_SIZE" ]; then
AMQ_ARGS="$AMQ_ARGS --global-max-size $(removeWhiteSpace $GLOBAL_MAX_SIZE)"
fi
if [ "$AMQ_RESET_CONFIG" = "true" ]; then
AMQ_ARGS="$AMQ_ARGS --force"
fi
if [ "$AMQ_EXTRA_ARGS" ]; then
AMQ_ARGS="$AMQ_ARGS $AMQ_EXTRA_ARGS"
fi
configureNetworking
configureSSL
appendJournalType ${instanceDir}
# mask sensitive values
PRINT_ARGS="${AMQ_ARGS/--password $AMQ_PASSWORD/--password XXXXX}"
PRINT_ARGS="${PRINT_ARGS/--user $AMQ_USER/--user XXXXX}"
PRINT_ARGS="${PRINT_ARGS/--cluster-user $AMQ_CLUSTER_USER/--cluster-user XXXXX}"
PRINT_ARGS="${PRINT_ARGS/--cluster-password $AMQ_CLUSTER_PASSWORD/--cluster-password XXXXX}"
PRINT_ARGS="${PRINT_ARGS/--ssl-key-password $AMQ_KEYSTORE_PASSWORD/--ssl-key-password XXXXX}"
PRINT_ARGS="${PRINT_ARGS/--ssl-trust-password $AMQ_TRUSTSTORE_PASSWORD/--ssl-trust-password XXXXX}"
if [ "$AMQ_CONSOLE_ARGS" ]; then
AMQ_ARGS="$AMQ_ARGS $AMQ_CONSOLE_ARGS"
keypat='(.*)(--ssl-key-password).([[:alnum:]]*)(.*)'
[[ "$AMQ_CONSOLE_ARGS" =~ $keypat ]]
CONSOLE_ARGS_NO_KEYPASS="${BASH_REMATCH[1]} ${BASH_REMATCH[2]} XXXXX ${BASH_REMATCH[4]}"
trustpat='(.*)(--ssl-trust-password).([[:alnum:]]*)(.*)'
[[ "$CONSOLE_ARGS_NO_KEYPASS" =~ $trustpat ]]
CONSOLE_ARGS_NO_TRUSTPASS="${BASH_REMATCH[1]} ${BASH_REMATCH[2]} XXXXX ${BASH_REMATCH[4]}"
PRINT_ARGS="${PRINT_ARGS} ${CONSOLE_ARGS_NO_TRUSTPASS}"
fi
echo "Creating Broker with args $PRINT_ARGS"
$AMQ_HOME/bin/artemis create ${instanceDir} $AMQ_ARGS --java-options "$JAVA_OPTS"
if [ "$AMQ_CLUSTERED" = "true" ]; then
modifyDiscovery
configureRedistributionDelay ${instanceDir}
fi
$AMQ_HOME/bin/configure_jolokia_access.sh ${instanceDir}/etc/jolokia-access.xml
if [ "$AMQ_KEYSTORE_TRUSTSTORE_DIR" ]; then
echo "Updating acceptors for SSL"
updateAcceptorsForSSL ${instanceDir}
fi
updateAcceptorsForPrefixing ${instanceDir}
appendAcceptorsFromEnv ${instanceDir}
appendConnectorsFromEnv ${instanceDir}
configureLogging ${instanceDir}
configureJAVA_ARGSMemory ${instanceDir}
configureJolokiaJVMAgent ${instanceDir}
if [ "$AMQ_ENABLE_METRICS_PLUGIN" = "true" ]; then
echo "Enable artemis metrics plugin"
injectMetricsPlugin ${instanceDir}
fi
$AMQ_HOME/bin/configure_s2i_files.sh ${instanceDir}
$AMQ_HOME/bin/configure_custom_config.sh ${instanceDir}
fi
}
function removeWhiteSpace() {
echo $*|tr -s ''| tr -d [[:space:]]
}
function runServer() {
echo "Configuring Broker"
instanceDir="${HOME}/${AMQ_NAME}"
configure $instanceDir
if [ "$1" != "nostart" ]; then
echo "Running Broker in ${instanceDir}"
checkBeforeRun ${instanceDir}
exec ${instanceDir}/bin/artemis run
fi
}
runServer $1