Merge branch 'omaha_16.1.1' of ssh://awips2omaha.com:29418/AWIPS2_baseline into master_16.1.1

Former-commit-id: bf5ffd9fe9726c04ca6f82ae85c56b894d519289
This commit is contained in:
Shawn.Hooper 2015-09-22 14:07:52 -04:00
commit 4154b5d9bd
16 changed files with 456 additions and 28 deletions

View file

@ -37,6 +37,7 @@ import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.alertviz.AlertVizPreferences;
import com.raytheon.uf.viz.alertviz.AlertvizJob;
import com.raytheon.uf.viz.alertviz.AlertvizJob.AlertVizJobListener;
import com.raytheon.uf.viz.alertviz.Container;
import com.raytheon.uf.viz.alertviz.ReceiverConnChecker;
import com.raytheon.uf.viz.alertviz.SystemStatusHandler;
@ -63,6 +64,7 @@ import com.raytheon.uf.viz.core.notification.jobs.NotificationManagerJob;
* May 08, 2013 1939 rjpeter Updated to start NotificationManagerJob.
* Aug 26, 2014 3356 njensen Explicitly set localization adapter
* Jun 04, 2015 4473 njensen Defer launching of UI to Activator and OSGi services
* Sep 17, 2015 4822 njensen Block application exit until receiver disconnects
*
* </pre>
*
@ -71,16 +73,29 @@ import com.raytheon.uf.viz.core.notification.jobs.NotificationManagerJob;
*/
@SuppressWarnings("restriction")
public class AlertVizApplication implements IStandaloneComponent {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(AlertVizApplication.class, "GDN_ADMIN", "GDN_ADMIN");
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.viz.application.component.IStandaloneComponent#startComponent
* (java.lang.String)
/**
* Private class used to verify we do not exit the application before the
* job has been properly shut down.
*/
private static class ConnectedListener implements AlertVizJobListener {
private boolean connected;
@Override
public void receiverConnected() {
connected = true;
}
@Override
public void receiverDisconnected() {
connected = false;
}
}
@Override
public Object startComponent(String componentName) throws Exception {
Display display = PlatformUI.createDisplay();
@ -140,6 +155,8 @@ public class AlertVizApplication implements IStandaloneComponent {
return IApplication.EXIT_OK;
}
AlertvizJob.getInstance().setEmbedded(false);
ConnectedListener listener = new ConnectedListener();
AlertvizJob.getInstance().addAlertVizJobListener(listener);
AlertvizJob.getInstance().start(port);
// open JMS connection to allow alerts to be received
@ -171,6 +188,21 @@ public class AlertVizApplication implements IStandaloneComponent {
// Killed because of error, set exit status to non zero value
return IApplication.EXIT_RELAUNCH;
}
/*
* don't let the application exit until it is properly disconnected
*/
int stopTries = 0;
while (listener.connected && stopTries < 5) {
/*
* if the job is successfully canceled, the receiverDisconnect()
* will be triggered
*/
AlertvizJob.getInstance().cancel();
Thread.sleep(5);
stopTries++;
}
AlertvizJob.getInstance().removeAlertVizJobListener(listener);
}
return AlertvizJob.getInstance().getExitStatus();

View file

@ -19,6 +19,7 @@
<vmArgs>-XX:+UseG1GC
-Dosgi.instance.area.readOnly=true
-Dorg.eclipse.update.reconcile=false
-Dorg.eclipse.swt.internal.gtk.cairoGraphics=false
-XX:MaxPermSize=128m
-Dorg.eclipse.ui/KEY_CONFIGURATION_ID=com.raytheon.viz.ui.awips.scheme
-Dqpid.dest_syntax=BURL

View file

@ -22,7 +22,7 @@
<contribute xsi:type="toolbarSubMenu" menuText="6hr">
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 0.01 inches" key="ProbTP0p01in6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 0.10 inches" key="ProbTP0p10in6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 0.25 inches" key="ProbTP0p25in6h" indentText="false" />
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 0.25 inches" key="ProbTP0p25in6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 0.50 inches" key="ProbTP0p50in6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 0.75 inches" key="ProbTP0p75in6hr" indentText="false" />
<contribute xsi:type="menuItem" menuText="6hr Prob Total Precip > 1.00 inch" key="ProbTP1p00in6hr" indentText="false" />

View file

@ -50,12 +50,13 @@ import com.raytheon.viz.hydrocommon.HydroConstants;
* SOFTWARE HISTORY
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 2 Dec 2008 wkwock Initial creation.
* 2 Dec 2008 wkwock Initial creation.
* 16 Jan 2009 1883 Venable &amp; Updated database calls and query methods.
* Duff
* 10 Feb 2009 wkwock Added functions and clean up.
* 12 Aug 2014 3049 bkowal Close the BufferedReader when finished.
* 21 May 2015 4501 skorolev Changed a way of database connection. Got rid of Vector.
* 17 Sep 2015 4886 skorolev Corrected updateRejecteddata.
*
* </pre>
*
@ -743,7 +744,7 @@ public class XdatDB {
+ userid + "')";
try {
DirectDbQuery.executeQuery(query, IHFS, QueryLanguage.SQL);
DirectDbQuery.executeStatement(query, IHFS, QueryLanguage.SQL);
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
"Error to update the rejected data table.", e);

View file

@ -314,7 +314,7 @@ Flood waters are moving down !**NAME OF CHANNEL**! from !**LOCATION**! to !**LOC
#end
##
#if(${ctaSelected} == "YES")
Precautionary/Preparedness actions...
PRECAUTIONARY/PREPAREDNESS ACTIONS...
#end
##

View file

@ -377,7 +377,7 @@ Additional rainfall amounts of !** EDIT AMOUNT **! are possible in the warned ar
#end
#if(${list.contains(${bullets}, "specificStream")})
Flood waters are moving down !**name of channel**! from !**location**! to !**location**!. The flood crest is expected to reach !**location(s)**! by !**time(s)**!.
Flood waters are moving down !**NAME OF CHANNEL**! from !**LOCATION**! to !**LOCATION**!. The flood crest is expected to reach !**LOCATION(S)**! by !**TIME(S)**!.
#end
#if(${list.contains(${bullets}, "drainages")})

View file

@ -321,7 +321,7 @@ THIS IS A TEST MESSAGE. ##
## #parse("mileMarkers.vm")
#if(${list.contains(${bullets}, "floodMoving")})
FLOOD WATERS ARE MOVING DOWN !**name of channel**! FROM !**location**! TO !**location**!. THE FLOOD CREST IS EXPECTED TO REACH !**location(s)**! BY !**time(s)**!.
Flood waters are moving down !**NAME OF CHANNEL**! from !**LOCATION**! to !**LOCATION**!. The flood crest is expected to reach !**LOCATION(S)**! by !**TIME(S)**!.
#end

View file

@ -0,0 +1 @@
After updating the edex-component spec file, run generatePatchFiles.sh from the parent folder and commit any changed patch0 files that are updated.

View file

@ -0,0 +1 @@
To update the Data Delivery installer, modify the component.spec file. Then, run generatePatchFiles.sh from the parent folder.

View file

@ -0,0 +1,144 @@
#
# AWIPS II Edex "component" spec file
#
%define __prelink_undo_cmd %{nil}
# Turn off the brp-python-bytecompile script
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g')
Name: awips2-edex-datadelivery
Summary: awips2-edex-datadelivery Installation
Version: %{_component_version}
Release: %{_component_release}
Group: AWIPSII
BuildRoot: %{_build_root}
URL: N/A
License: N/A
Distribution: N/A
Vendor: Raytheon
Packager: Bryan Kowal
provides: awips2-edex-datadelivery
requires: awips2
requires: awips2-edex-base
requires: awips2-python
requires: awips2-java
requires: awips2-psql
%description
AWIPS II Edex - Installs AWIPS II Edex Plugins.
%prep
# Verify That The User Has Specified A BuildRoot.
if [ "%{_build_root}" = "" ]
then
echo "ERROR: The RPM Build Root has not been specified."
exit 1
fi
if [ -d %{_build_root} ]; then
rm -rf %{_build_root}
fi
%build
%install
mkdir -p %{_build_root}
if [ $? -ne 0 ]; then
exit 1
fi
# prepare the init.d directory path
mkdir -p %{_build_root}/etc/init.d
if [ $? -ne 0 ]; then
exit 1
fi
unzip %{_baseline_workspace}/build.edex/edex/dist/edex-datadelivery.zip \
-d %{_build_root}
if [ $? -ne 0 ]; then
exit 1
fi
# include the init.d script
INSTALLER_RPM="%{_baseline_workspace}/rpms"
EDEX_DATADELIVERY="${INSTALLER_RPM}/awips2.edex/Installer.edex-datadelivery"
cp -v ${EDEX_DATADELIVERY}/scripts/init.d/* \
%{_build_root}/etc/init.d
if [ $? -ne 0 ]; then
exit 1
fi
# rename the script to prevent naming conflicts during installation
pushd . > /dev/null 2>&1
cd %{_build_root}/etc/init.d
mv edexServiceList edexServiceList-datadelivery
popd > /dev/null 2>&1
#add central registry script
mkdir -p %{_build_root}/awips2/edex/bin/
if [ $? -ne 0 ]; then
exit 1
fi
cp -v %{_baseline_workspace}/deploy.edex-Data_Delivery/esb/bin/centralRegistryProviderCredentials.sh %{_build_root}/awips2/edex/bin/
if [ $? -ne 0 ]; then
exit 1
fi
#create a list of all files packaged for /awips2/edex/data/utility
UTILITY=/awips2/edex/data/utility
if [ -d %{_build_root}/$UTILITY ]; then
cd %{_build_root}/$UTILITY
find . -type f > %{_build_root}/awips2/edex/util_filelist.%{name}.txt
fi
%pre
%post
# replace the service list script with the datadelivery service list script
if [ -f /etc/init.d/edexServiceList ]; then
mv /etc/init.d/edexServiceList /etc/init.d/edexServiceList.orig
if [ $? -ne 0 ]; then
exit 1
fi
fi
cp /etc/init.d/edexServiceList-datadelivery /etc/init.d/edexServiceList
if [ $? -ne 0 ]; then
exit 1
fi
#change date stamp of utility files
UTILITY=/awips2/edex/data/utility
UTIL_FILENAME=/awips2/edex/util_filelist.%{name}.txt
if [ -d $UTILITY ] && [ -f $UTIL_FILENAME ]; then
while read fileName
do
touch "$UTILITY/$fileName"
done < $UTIL_FILENAME
rm -f $UTIL_FILENAME
fi
%preun
if [ "${1}" = "1" ]; then
exit 0
fi
# restore the original service list script with the datadelivery service list script
if [ -f /etc/init.d/edexServiceList.orig ]; then
mv /etc/init.d/edexServiceList.orig /etc/init.d/edexServiceList
if [ $? -ne 0 ]; then
exit 1
fi
fi
%postun
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(644,awips,fxalpha,755)
%dir /awips2
%dir /awips2/edex
/awips2/edex/*
%dir /awips2/edex/bin
%attr(744, -, -) /awips2/edex/bin/centralRegistryProviderCredentials.sh
%attr(744,root,root) /etc/init.d/*

View file

@ -1,5 +1,5 @@
*** Installer.edex-component/component.spec 2015-04-08 09:08:06.552124581 -0400
--- Installer.edex-datadelivery/component.spec 2015-04-08 09:24:36.369123969 -0400
*** Installer.edex-component/component.spec 2015-08-25 15:19:06.962255321 -0500
--- Installer.edex-datadelivery/component.spec 2015-09-15 15:57:16.669506673 -0500
***************
*** 6,13 ****
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')

View file

@ -0,0 +1 @@
To update the Hazard Services installer, modify the component.spec file. Then, run generatePatchFiles.sh from the parent folder.

View file

@ -0,0 +1,140 @@
#
# AWIPS II EDEX Hazard Services spec file
#
%define __prelink_undo_cmd %{nil}
# Turn off the brp-python-bytecompile script
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g')
Name: awips2-%{_component_name}
Summary: awips2-%{_component_name} Installation
Version: %{_component_version}
Release: %{_component_release}
Group: AWIPSII
BuildRoot: %{_build_root}
URL: N/A
License: N/A
Distribution: N/A
Vendor: Raytheon
provides: awips2-%{_component_name}
requires: awips2
requires: awips2-edex-base
requires: awips2-python
requires: awips2-java
requires: awips2-psql
%description
AWIPS II Edex - Installs AWIPS II Edex Plugins.
%prep
# Verify That The User Has Specified A BuildRoot.
if [ "%{_build_root}" = "" ]
then
echo "ERROR: The RPM Build Root has not been specified."
exit 1
fi
if [ -d %{_build_root} ]; then
rm -rf %{_build_root}
fi
%build
%install
mkdir -p %{_build_root}
if [ $? -ne 0 ]; then
exit 1
fi
unzip %{_baseline_workspace}/build.edex/edex/dist/%{_component_name}.zip \
-d %{_build_root}
if [ $? -ne 0 ]; then
exit 1
fi
#create the edex scripts dir
EDEX_SCRIPTS_DIR=%{_build_root}/awips2/edex/scripts/
if [ ! -d $EDEX_SCRIPTS_DIR ]; then
mkdir -p $EDEX_SCRIPTS_DIR
if [ $? -ne 0 ]; then
exit 1
fi
fi
# verify HazardServices directory exists and copy in files
HS_NAME=HazardServices
TOOLS_HS_DIR=%{_baseline_workspace}/tools/$HS_NAME
if [ -d $TOOLS_HS_DIR ]; then
cp -Rv $TOOLS_HS_DIR $EDEX_SCRIPTS_DIR
if [ $? -ne 0 ]; then
exit 1
fi
fi
# HazardServices dir may not be available, as tools/HazardServices may not exist
# if not available, create the directory for other scripts
if [ ! -d $EDEX_SCRIPTS_DIR/$HS_NAME ]; then
mkdir -p $EDEX_SCRIPTS_DIR/$HS_NAME
if [ $? -ne 0 ]; then
exit 1
fi
fi
#copy in specific files for HS
if [ -d $EDEX_SCRIPTS_DIR/$HS_NAME ]; then
cp -v %{_baseline_workspace}/tools/parseWarngenTemplate.py $EDEX_SCRIPTS_DIR/$HS_NAME
if [ $? -ne 0 ]; then
exit 1
fi
cp -v %{_baseline_workspace}/tools/ingestshapefiles.sh $EDEX_SCRIPTS_DIR/$HS_NAME
if [ $? -ne 0 ]; then
exit 1
fi
fi
#create a list of all files packaged for /awips2/edex/data/utility
UTILITY=/awips2/edex/data/utility
if [ -d %{_build_root}/$UTILITY ]; then
cd %{_build_root}/$UTILITY
find . -type f > %{_build_root}/awips2/edex/util_filelist.%{name}.txt
fi
%pre
%post
#change date stamp of utility files
UTILITY=/awips2/edex/data/utility
UTIL_FILENAME=/awips2/edex/util_filelist.%{name}.txt
if [ -d $UTILITY ] && [ -f $UTIL_FILENAME ]; then
while read fileName
do
touch "$UTILITY/$fileName"
done < $UTIL_FILENAME
rm -f $UTIL_FILENAME
fi
%preun
%postun
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(644,awips,fxalpha,755)
%dir /awips2
%dir /awips2/edex
%dir /awips2/edex/conf
/awips2/edex/*
%defattr(755,awips,fxalpha,-)
/awips2/edex/scripts/*

View file

@ -0,0 +1,92 @@
*** Installer.edex-component/component.spec 2015-08-25 15:19:06.962255321 -0500
--- Installer.edex-hazards/component.spec 2015-09-17 14:08:29.271876049 -0500
***************
*** 1,5 ****
#
! # AWIPS II Edex "component" spec file
#
%define __prelink_undo_cmd %{nil}
# Turn off the brp-python-bytecompile script
--- 1,5 ----
#
! # AWIPS II EDEX Hazard Services spec file
#
%define __prelink_undo_cmd %{nil}
# Turn off the brp-python-bytecompile script
***************
*** 16,22 ****
License: N/A
Distribution: N/A
Vendor: Raytheon
- Packager: Bryan Kowal
provides: awips2-%{_component_name}
requires: awips2
--- 16,21 ----
***************
*** 55,60 ****
--- 54,107 ----
exit 1
fi
+ #create the edex scripts dir
+ EDEX_SCRIPTS_DIR=%{_build_root}/awips2/edex/scripts/
+ if [ ! -d $EDEX_SCRIPTS_DIR ]; then
+ mkdir -p $EDEX_SCRIPTS_DIR
+
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+ fi
+
+
+ # verify HazardServices directory exists and copy in files
+ HS_NAME=HazardServices
+ TOOLS_HS_DIR=%{_baseline_workspace}/tools/$HS_NAME
+ if [ -d $TOOLS_HS_DIR ]; then
+
+ cp -Rv $TOOLS_HS_DIR $EDEX_SCRIPTS_DIR
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+
+ fi
+
+ # HazardServices dir may not be available, as tools/HazardServices may not exist
+ # if not available, create the directory for other scripts
+ if [ ! -d $EDEX_SCRIPTS_DIR/$HS_NAME ]; then
+ mkdir -p $EDEX_SCRIPTS_DIR/$HS_NAME
+
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+ fi
+
+ #copy in specific files for HS
+ if [ -d $EDEX_SCRIPTS_DIR/$HS_NAME ]; then
+
+ cp -v %{_baseline_workspace}/tools/parseWarngenTemplate.py $EDEX_SCRIPTS_DIR/$HS_NAME
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+
+ cp -v %{_baseline_workspace}/tools/ingestshapefiles.sh $EDEX_SCRIPTS_DIR/$HS_NAME
+ if [ $? -ne 0 ]; then
+ exit 1
+ fi
+
+ fi
+
#create a list of all files packaged for /awips2/edex/data/utility
UTILITY=/awips2/edex/data/utility
if [ -d %{_build_root}/$UTILITY ]; then
***************
*** 87,90 ****
--- 134,140 ----
%defattr(644,awips,fxalpha,755)
%dir /awips2
%dir /awips2/edex
+ %dir /awips2/edex/conf
/awips2/edex/*
+ %defattr(755,awips,fxalpha,-)
+ /awips2/edex/scripts/*

View file

@ -80,20 +80,20 @@ else
echo "Building for architecture ... ${EDEX_BUILD_ARCH}."
fi
function patchDDSpecification()
function patchSpecification()
{
# copy the standard rpm feature specification into the
# data delivery rpm project directory
# component's project directory
cp -v Installer.edex-component/component.spec \
Installer.edex-datadelivery/component.spec
Installer.${COMPONENT_NAME}/component.spec
if [ $? -ne 0 ]; then
exit 1
fi
# apply the specification patch
pushd . > /dev/null 2>&1
cd Installer.edex-datadelivery
patch -p1 -i datadelivery.patch0
cd Installer.${COMPONENT_NAME}
patch -p1 -i *.patch0
if [ $? -ne 0 ]; then
exit 1
fi
@ -155,23 +155,32 @@ cd ../
buildRPM "Installer.edex"
buildRPM "Installer.edex-configuration"
buildRPM "Installer.edex-shapefiles"
# build the edex-datadelivery rpm
export COMPONENT_NAME="edex-datadelivery"
patchDDSpecification
buildRPM "Installer.edex-datadelivery"
# build the edex-hazards component
export COMPONENT_NAME="edex-hazards"
patchSpecification
buildRPM "Installer.edex-hazards"
unset COMPONENT_NAME
DIST="${WORKSPACE}/build.edex/edex/dist"
for edex_zip in `cd ${DIST}; ls -1;`;
do
edex_component=`python -c "zipFile='${edex_zip}'; componentName=zipFile.replace('.zip',''); print componentName;"`
# do not build edex-datadelivery since it is now built differently from the other edex feature rpms
# since this is currently the only case, the exclusion will be hard-coded
#Data Delivery and Hazard Services components are built separately
if [ ! "${edex_component}" = "edex-datadelivery" ] &&
[ ! "${edex_component}" = "common-base" ]; then
[ ! "${edex_component}" = "common-base" ] &&
[ ! "${edex_component}" = "edex-hazards" ]; then
export COMPONENT_NAME="${edex_component}"
buildRPM "Installer.edex-component"
fi
done
# build the edex-datadelivery rpm
export COMPONENT_NAME="edex-datadelivery"
patchSpecification
buildRPM "Installer.edex-datadelivery"
unset COMPONENT_NAME
#build shapefiles RPM last
buildRPM "Installer.edex-shapefiles"

View file

@ -0,0 +1,6 @@
#hazard services
diff -crb Installer.edex-component/component.spec Installer.edex-hazards/component.spec > Installer.edex-hazards/hazards.patch0
#data delivery
diff -crb Installer.edex-component/component.spec Installer.edex-datadelivery/component.spec > Installer.edex-datadelivery/datadelivery.patch0