diff --git a/assets/lib/java/Makefile.am b/assets/lib/java/Makefile.am index 92df9171c..5295821d3 100644 --- a/assets/lib/java/Makefile.am +++ b/assets/lib/java/Makefile.am @@ -15,7 +15,8 @@ dist_java_DATA = \ @JTANGO_JAR@ \ @ATK_WIDGET_JAR@ \ @DBBENCH_JAR@ \ - @JSSH_TERMINAL_JAR@ + @JSSH_TERMINAL_JAR@ \ + @REST_SERVER_JAR@ if TANGO_JAVA_ENABLED bin_SCRIPTS = \ @@ -31,6 +32,7 @@ bin_SCRIPTS = \ atkmoni \ tg_devtest \ TangoVers \ + TangoRestServer \ cvstag edit = sed \ @@ -67,6 +69,7 @@ atkmoni: $(srcdir)/atkmoni.in cvstag: $(srcdir)/cvstag.in TangoVers: $(srcdir)/TangoVers.in tg_devtest: $(srcdir)/tg_devtest.in +TangoRestServer: $(srcdir)/TangoRestServer.in distclean-local: distclean-local-check .PHONY: distclean-local-check @@ -89,7 +92,8 @@ EXTRA_DIST = \ atkmoni.in \ cvstag.in \ tg_devtest.in \ - TangoVers.in + TangoVers.in \ + TangoRestServer.in # Even though we do not want to compile anything in the diff --git a/assets/lib/java/TangoRestServer.in b/assets/lib/java/TangoRestServer.in new file mode 100644 index 000000000..071256018 --- /dev/null +++ b/assets/lib/java/TangoRestServer.in @@ -0,0 +1,13 @@ +#!@SHELL@ +if [ ! $TANGO_HOST ] && [ -f @TANGO_RC_FILE@ ]; then + . @TANGO_RC_FILE@ +fi + +JAVALIB=@prefix@/share/java +LOG_HOME=/tmp/log/TangoRestServer +LOG_LEVEL=ERROR +TANGO_REST_SERVER_JAR=$JAVALIB/RestServer.jar + +JAVA_OPTS="-Xmx2G -server -Xshare:off -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_HOME/TangoRestServer.hprof -XX:-OmitStackTraceInFastThrow" + +@JAVA@ $JAVA_OPTS -Duser.dir=$LOG_HOME -DTANGO_HOST=$TANGO_HOST -DLOG_HOME=$LOG_HOME -DLOG_LEVEL=$LOG_LEVEL -jar $TANGO_REST_SERVER_JAR $* org.tango.TangoRestServer $* $@ \ No newline at end of file diff --git a/assets/scripts/tango_wca.in b/assets/scripts/tango_wca.in index 7aad46fda..ee027fcb7 100644 --- a/assets/scripts/tango_wca.in +++ b/assets/scripts/tango_wca.in @@ -37,6 +37,34 @@ checkdatabaseds() { fi } +startproc() { + findproc $1 + if [ "$pid" != "" ]; + then + ${ECHO} "$1 Server is already running" + 'date' >> ${TANGO_LOG} + ${ECHO} "$1 Server is already running" >> ${TANGO_LOG} + else + $2 & + + ${ECHO} "Starting Tango $1 Server" + 'date' >> ${TANGO_LOG} + ${ECHO} "Starting Tango $1 Server" >> ${TANGO_LOG} + + # wait for a while before checking status + sleep 3 + findproc $1 + if [ "$pid" = "" ]; + then + ${ECHO} "Failed to start Tango $1 server" + 'date' >> ${TANGO_LOG} + ${ECHO} "Failed to start Tango $1 server" >> ${TANGO_LOG} + exit 1 + fi + ${ECHO} "$rc_done" + fi +} + killproc() { pid=`$PS -e | $GREP "$1" | $SED -e 's/^ *//' -e 's/ .*//'` @@ -52,8 +80,7 @@ OS=`uname -s` # # Settings common to all platforms # -DATABASEDSHOME=@prefix@/bin -ACCESSCONTROLHOME=@prefix@/bin +SERVERBINHOME=@prefix@/bin LD_LIBRARY_PATH=@prefix@/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH @@ -100,7 +127,7 @@ esac case "$1" in start) - ${ECHO} "Starting TANGO database" + ${ECHO} "Starting TANGO database" # first check the MySQL server checkmysql @@ -122,68 +149,27 @@ case "$1" in fi fi # Start the database device server if needed - findproc DataBase - if [ "$pid" != "" ]; - then - ${ECHO} "Database Server already running" - 'date' >> ${TANGO_LOG} - ${ECHO} "Database Server already running" >> ${TANGO_LOG} - else - ${DATABASEDSHOME}/DataBaseds 2 -ORBendPoint giop:tcp::$TANGO_DB_PORT & - - ${ECHO} "Starting TANGO Database Server" - 'date' >> ${TANGO_LOG} - ${ECHO} "Starting TANGO Database Server" >> ${TANGO_LOG} + startproc DataBase "${SERVERBINHOME}/DataBaseds 2 -ORBendPoint giop:tcp::$TANGO_DB_PORT" - # wait for a while before checking status - sleep 3 - findproc DataBase - if [ "$pid" = "" ]; - then - ${ECHO} "Failed to start Tango database server" - 'date' >> ${TANGO_LOG} - ${ECHO} "Failed to start Tango database server" >> ${TANGO_LOG} - exit 1 - fi - ${ECHO} "$rc_done" - fi # Start the tango control access server if needed - findproc TangogAccessC - if [ "$pid" != "" ]; - then - ${ECHO} "TangoAccessControl Server already running, exiting" - 'date' >> ${TANGO_LOG} - ${ECHO} "TangoAccessControl Server already running, exiting" >> ${TANGO_LOG} - else - export SUPER_TANGO=true - ${ACCESSCONTROLHOME}/TangoAccessControl 1 & - - ${ECHO} "Starting TANGO Control Access Server" - 'date' >> ${TANGO_LOG} - ${ECHO} "Starting TANGO Control Access Server" >> ${TANGO_LOG} - - # wait for a while before checking status - sleep 2 - findproc TangoAccessControl - if [ "$pid" = "" ]; - then - ${ECHO} "Failed to start Tango access control server" - 'date' >> ${TANGO_LOG} - ${ECHO} "Failed to start Tango access control server" >> ${TANGO_LOG} - exit 1 - fi - ${ECHO} "$rc_done" - fi + export SUPER_TANGO=true + startproc TangoAccessC "${SERVERBINHOME}/TangoAccessControl 1" + startproc TangoRestSer "${SERVERBINHOME}/TangoRestServer rest" ;; stop) ${ECHO} "Shutting down TANGO control system" - - # first shutdown the control access device server + + # first shutdown the rest-server + 'date' >> ${TANGO_LOG} + ${ECHO} "Stopping TangoRestServer" >> ${TANGO_LOG} + killproc TangoRestSer + + # second shutdown the control access device server 'date' >> ${TANGO_LOG} ${ECHO} "Stopping TANGO Control Access Server" >> ${TANGO_LOG} - killproc TangoAccessControl + killproc TangoAccessC # then shutdown the database device server 'date' >> ${TANGO_LOG} @@ -218,6 +204,14 @@ case "$1" in else ${ECHO} "TANGO Access Control server : No process" fi + + findproc TangoRestSer + if [ "$pid" != "" ]; + then + ${ECHO} "TangoRestServer server OK" + else + ${ECHO} "TangoRestServer server : No process" + fi ;; *) ${ECHO} "Usage: $0 {start|stop|status|restart}" @@ -225,4 +219,3 @@ case "$1" in esac exit 0 - diff --git a/build.xml b/build.xml index 8894775b5..e43490fa8 100644 --- a/build.xml +++ b/build.xml @@ -55,6 +55,7 @@ + @@ -322,6 +323,20 @@ + + + + + + + + + + + + + + @@ -359,6 +374,7 @@ + diff --git a/distribution.properties b/distribution.properties index 9ed1c39f1..a6e9316c9 100644 --- a/distribution.properties +++ b/distribution.properties @@ -2,6 +2,7 @@ src-root-repo=https://github.com/tango-controls jtango-root-repo=https://bintray.com/tango-controls/generic/download_file?file_path java-root-repo=https://bintray.com/tango-controls/maven/download_file?file_path docs-root-repo=https://readthedocs.org/projects/tango-controls/downloads/pdf +rest-server-root-repo=https://github.com/tango-controls/rest-server/releases #VERSION_INFO = current:revision:age # where #current = tango lib major + $age @@ -21,10 +22,11 @@ dbbench-ver=1.3 jssh-terminal-ver=1.11 log-viewer-ver=2.0.5 pogo-ver=9.6.16 +rest-server-ver=1.2 #tool_panels= #cppserver TangoTest=TangoTest-Release-2.1 -TangoDatabase=DataBase-Release-5.6 +TangoDatabase=DataBase-Release-5.8 TangoAccessControl=master starter=Starter-7.0 #doc