Ensure that all properties are passed on start-up 07/41407/1
authormark.j.leonard <mark.j.leonard@gmail.com>
Fri, 6 Apr 2018 16:20:11 +0000 (17:20 +0100)
committermark.j.leonard <mark.j.leonard@gmail.com>
Fri, 6 Apr 2018 16:37:24 +0000 (17:37 +0100)
The System Properties KEY_STORE_PASSWORD and KEY_MANAGER_PASSWORD are
now read from the environment and written to the configured system
properties file. This prevents an error within AJSC on startup.

Issue-ID: AAI-1006
Change-Id: Ie92cff0a24352ef162d25dd6d60c75f23d6bdfd7
Signed-off-by: mark.j.leonard <mark.j.leonard@gmail.com>
bundleconfig-local/etc/sysprops/sys-props.properties
src/main/bin/start.sh

index d8480b8..cce76a1 100644 (file)
@@ -130,4 +130,6 @@ RESTLET_COMPONENT_REUSE_ADDRESS=true
 #AJSC_EXTERNAL_PROPERTIES_FOLDERS=__basedir__/ajsc-shared-config/etc
 #End of AJSC System Properties
 
-#Service System Properties. Please, place any Service related System Properties below.
\ No newline at end of file
+#Service System Properties. Please, place any Service related System Properties below.
+KEY_STORE_PASSWORD=
+KEY_MANAGER_PASSWORD=
index 00d7dd6..3aba251 100644 (file)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # ============LICENSE_START=======================================================
 # org.onap.aai
 # limitations under the License.
 # ============LICENSE_END=========================================================
 
-BASEDIR="/opt/app/babel/"
-AJSC_HOME="$BASEDIR"
+AJSC_HOME="${AJSC_HOME-/opt/app/babel/}"
+AJSC_CONF_HOME="$AJSC_HOME/bundleconfig"
 
 if [ -z "$CONFIG_HOME" ]; then
-       echo "CONFIG_HOME must be set in order to start up process"
-       exit 1
+    echo "CONFIG_HOME must be set in order to start up the process"
+    exit 1
 fi
 
-foo () {
-if [ -z "$KEY_STORE_PASSWORD" ]; then
-       echo "KEY_STORE_PASSWORD must be set in order to start up process"
-       exit 1
-else
-       echo "KEY_STORE_PASSWORD=$KEY_STORE_PASSWORD\n" >> $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-fi
+# List of ajsc properties which are exposed for modification at deploy time
+declare -a MODIFY_PROP_LIST=("KEY_STORE_PASSWORD"
+                             "KEY_MANAGER_PASSWORD"
+                             "AJSC_JETTY_ThreadCount_MIN" 
+                             "AJSC_JETTY_ThreadCount_MAX"
+                             "AJSC_JETTY_BLOCKING_QUEUE_SIZE")
+PROP_LIST_LENGTH=${#MODIFY_PROP_LIST[@]}  
 
-if [ -z "$KEY_MANAGER_PASSWORD" ]; then
-       echo "KEY_MANAGER_PASSWORD must be set in order to start up process"
-       exit 1
-else
-       echo "KEY_MANAGER_PASSWORD=$KEY_MANAGER_PASSWORD\n" >> $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-fi
-}
+for (( i=1; i<${PROP_LIST_LENGTH}+1; i++ ));
+do
+   PROP_NAME=${MODIFY_PROP_LIST[$i-1]}
+   PROP_VALUE=${!PROP_NAME}
+   if [ ! -z "$PROP_VALUE" ]; then
+      sed -i "s/$PROP_NAME=.*$/$PROP_NAME=$PROP_VALUE/g" $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
+   fi
+done
 
+# Change the CLASSPATH separator to ; if your O/S is Windows
 CLASSPATH="$AJSC_HOME/lib/*"
 CLASSPATH="$CLASSPATH:$AJSC_HOME/extJars/"
 CLASSPATH="$CLASSPATH:$AJSC_HOME/etc/"
+
 PROPS="-DAJSC_HOME=$AJSC_HOME"
-PROPS="$PROPS -DAJSC_CONF_HOME=$BASEDIR/bundleconfig/"
-PROPS="$PROPS -Dlogback.configurationFile=$BASEDIR/bundleconfig/etc/logback.xml"
+PROPS="$PROPS -DAJSC_CONF_HOME=$AJSC_CONF_HOME"
+PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME"
+PROPS="$PROPS -Dlogback.configurationFile=$AJSC_CONF_HOME/bundleconfig/etc/logback.xml"
 PROPS="$PROPS -DAJSC_SHARED_CONFIG=$AJSC_CONF_HOME"
 PROPS="$PROPS -DAJSC_SERVICE_NAMESPACE=babel"
 PROPS="$PROPS -DAJSC_SERVICE_VERSION=v1"
 PROPS="$PROPS -Dserver.port=9516"
-PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME"
 PROPS="$PROPS -Dartifactgenerator.config=$CONFIG_HOME/artifact-generator.properties"
 JVM_MAX_HEAP=${MAX_HEAP:-1024}