Compare commits

...

No commits in common. "external_18.1.1" and "unidata_20.3.2" have entirely different histories.

13079 changed files with 828015 additions and 540069 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

56
.github/workflows/deploy_docs.yml vendored Normal file
View file

@ -0,0 +1,56 @@
name: publish mkdocs to github pages
on:
workflow_dispatch:
push:
branches:
- unidata_20.3.2
paths:
- 'docs/**'
- 'mkdocs.yml'
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python and mkdocs
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Update pip
run: |
# install pip=>20.1 to use "pip cache dir"
python3 -m pip install --upgrade pip
- name: Create mkdocs_requirements.txt
run: |
echo "markdown==3.3.4" >> mkdocs_requirements.txt
echo "mkdocs==1.3.0" >> mkdocs_requirements.txt
echo "mkdocs-unidata" >> mkdocs_requirements.txt
echo "fontawesome_markdown" >> mkdocs_requirements.txt
- name: Get pip cache dir
id: pip-cache
run: echo "::set-output name=dir::$(pip cache dir)"
- name: Cache dependencies
uses: actions/cache@v1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/mkdocs_requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install python dependencies
run: python3 -m pip install -r ./mkdocs_requirements.txt
- run: mkdocs build
- name: Deploy to gh-pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./site

45
.github/workflows/update_NDM-v20.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: update station info v20
on:
workflow_dispatch:
schedule:
- cron: "0 7 * * *"
jobs:
update_ndm:
runs-on: ubuntu-latest
environment:
name: VLAB
steps:
# Install svn since it is no longer included by default in ubuntu-latest (ubuntu-24.04 image)
- name: Install svn package
run: |
sudo apt-get update
sudo apt-get install subversion
# Checkout this repo
# this gets the latest code (and is run on the default branch)
- name: Checkout awips2
uses: actions/checkout@v3
with:
ref: unidata_20.3.2
# Do individual pulls for all the files in the ndm directory
- name: Pull latest from vlab svn repo
run: |
cd rpms/awips2.edex/Installer.edex/ndm/
for file in *; do
svn export --force https://vlab.noaa.gov/svn/awips-ndm/trunk/"$file" --username ${{ secrets.VLAB_UNAME }} --password ${{ secrets.VLAB_PASS }}
done
# Check in all the new files
# Only do a git add/commit/push if files have changed
- name: Update existing NDM files for awips2 repo
run: |
date=`date +%Y%m%d-%H:%M:%S`
git config user.name $GITHUB_ACTOR
git config user.email $GITHUB_ACTOR@users.noreply.github.com
change=`git diff`
if [[ ! -z "$change" ]]
then
git add --all
git commit -m "New NDM updates on $date - autogenerated"
git push
fi

6
.gitignore vendored
View file

@ -10,4 +10,8 @@ bin-test/
*.pyc *.pyc
*.o *.o
*.orig *.orig
__pycache__
build/awips-ade/RPMS/
build/logs/
cave/com.raytheon.viz.ui.personalities.awips/splash.bmp
dist/el7*

View file

@ -1,23 +0,0 @@
sudo: required
branches:
- unidata_18.1.1
language: ruby
env:
matrix:
- OS_VERSION=el6
- OS_VERSION=el7
services:
- docker
before_install:
- sudo apt-get update
- echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null
- sudo service docker restart
- sleep 5
- sudo docker pull unidata/awips-ade:${OS_VERSION}
script: build/setup.sh ${OS_VERSION} buildEDEX

Binary file not shown.

13
LICENSE Normal file
View file

@ -0,0 +1,13 @@
Copyright 2021 University Corporation for Atmospheric Research
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

127
README.md
View file

@ -1,120 +1,45 @@
# Unidata AWIPS # NSF Unidata AWIPS
[https://www.unidata.ucar.edu/software/awips/](https://www.unidata.ucar.edu/software/awips/) [https://www.unidata.ucar.edu/software/awips/](https://www.unidata.ucar.edu/software/awips/)
[![GitHub release](https://img.shields.io/github/release/Unidata/awips2/all.svg)]() [![Travis Badge](https://travis-ci.org/Unidata/awips2.svg?branch=unidata_18.1.1)](https://travis-ci.org/Unidata/awips2) [![GitHub release](https://img.shields.io/github/release/Unidata/awips2/all.svg)]()
AWIPS (formerly know as AWIPS II or AWIPS2) is a meteorological display and analysis package developed by the [National Weather Service](http://www.nws.noaa.gov/ost/SEC/AE/) and [Raytheon](http://www.raytheon.com/capabilities/products/awips/) for operational forecasting. AWIPS is a Java application consisting of a data-rendering client ([CAVE](http://unidata.github.io/awips2/install/install-cave/), which runs on Red Hat/CentOS Linux, macOS, and Windows), and a backend data server ([EDEX](http://unidata.github.io/awips2/install/install-edex), which runs on x86_64 Red Hat/CentOS 6 and 7). The Advanced Weather Interactive Processing System (AWIPS) is a meteorological software package. It is used for decoding, displaying, and analyzing data, and was originally developed for the National Weather Service (NWS) by Raytheon. There is a program at UCAR called the NSF Unidata Program Center (UCP) which develops and supports a modified non-operational version of AWIPS for use in research and education by academic institutions. This is released as open source software, free to download and use.
AWIPS takes a unified approach to data ingest, and most data types follow a standard path through the system, starting with an [LDM](https://www.unidata.ucar.edu/software/ldm/) client requesting data from Unidata's [IDD](https://www.unidata.ucar.edu/projects/#idd), which are then decoded and stored as HDF5 and PostgreSQL/PostGIS metadata. Unidata supports two visualization frameworks for rendering AWIPS data: AWIPS takes a unified approach to data ingest, where most data ingested into the system comes through the LDM client pulling data feeds from the [NSF Unidata IDD](https://www.unidata.ucar.edu/projects/#idd). Various raw data and product files (netCDF, grib, BUFR, ASCII text, gini, AREA) are decoded and stored as HDF5 files and Postgres database entries by [EDEX](docs/install/install-edex), which serves products and data over http.
* [CAVE](http://unidata.github.io/awips2/install/install-cave) - the **C**ommon **A**WIPS **V**isualization **E**nvironment Unidata supports two data visualization frameworks: [CAVE](docs/install/install-cave) (an Eclipse-built Java application which runs on Linux, Mac, and Windows), and [python-awips](docs/python/overview) (a programatic API written as a python package).
* [python-awips](https://github.com/Unidata/python-awips) - a Python data access framework for requesting Numpy data arrays and Shapely geometries.
# License > **Note**: Our version of CAVE is a **non-operational** version. It does not support some features of NWS AWIPS. Warnings and alerts cannot be issued from our builds of CAVE. Additional functionality may not be available as well.
Unidata AWIPS source code and binaries (RPMs) are considered to be in the public domain, meaning there are no restrictions on any download, modification, or distribution in any form (original or modified). Unidata AWIPS contains no proprietery content and is therefore not subject to export controls as stated in the Master Rights licensing file.
# AWIPS Data in the Cloud ![CAVE](https://unidata.github.io/awips2/images/Unidata_AWIPS2_CAVE.png)
Through a grant provided by [Jetstream](https://jetstream-cloud.org/), Unidata is able to run a real-time EDEX data server in cloud, providing free AWIPS data to UCAR member institutions and other geoscience research and education organizations. When prompted in the Connectivity Preferences dialog, enter **`edex-cloud.unidata.ucar.edu`** (without adding http:// before, or :9581/services after), or select it from the default dropdown list. ---
## License
NSF Unidata AWIPS source code and binaries (RPMs) are considered to be in the public domain, meaning there are no restrictions on any download, modification, or distribution in any form (original or modified). NSF Unidata AWIPS license information can be found [here](./LICENSE).
---
## AWIPS Data in the Cloud
NSF Unidata and XSEDE Jetstream have partnered to offer an EDEX data server in the cloud, open to the community. Select the server in the Connectivity Preferences dialog, or enter **`edex-cloud.unidata.ucar.edu`** (without *http://* before, or *:9581/services* after).
![EDEX in the cloud](docs/images/connectWindow.png)
![EDEX in the cloud](http://unidata.github.io/awips2/images/boEbFSf28t.gif)
# Documentation - http://unidata.github.io/awips2/ # Documentation - http://unidata.github.io/awips2/
* [Unidata AWIPS User Manual](http://unidata.github.io/awips2/) Popular Pages:
* [NSF Unidata AWIPS User Manual](http://unidata.github.io/awips2/)
* [How to Install CAVE](http://unidata.github.io/awips2/install/install-cave) * [How to Install CAVE](http://unidata.github.io/awips2/install/install-cave)
* [How to Install EDEX](http://unidata.github.io/awips2/install/install-edex) * [How to Install EDEX](http://unidata.github.io/awips2/install/install-edex)
* [Starting and Stopping EDEX](http://unidata.github.io/awips2/install/start-edex) * [Common Problems with AWIPS](http://unidata.github.io/awips2/appendix/common-problems)
* [The D2D Perspective](http://unidata.github.io/awips2/cave/d2d-perspective) * [Educational Resources](http://unidata.github.io/awips2/appendix/educational-resources)
* [The NCP Perspective](http://unidata.github.io/awips2/cave/ncp-perspective) * [python-awips Data Access Framework](http://unidata.github.io/python-awips/)
* [The Localization Perspective](http://unidata.github.io/awips2/cave/localization-perspective)
* [python-awips Data Access Framework](http://python-awips.readthedocs.io/)
* [awips2-users Mailing List Archives](https://www.unidata.ucar.edu/mailing_lists/archives/awips2-users/) * [awips2-users Mailing List Archives](https://www.unidata.ucar.edu/mailing_lists/archives/awips2-users/)
* [(click to subscribe)](mailto:awips2-users-join@unidata.ucar.edu) * [(click to subscribe)](mailto:awips2-users-join@unidata.ucar.edu)
# AWIPS Source Code Respositories
* [awips2-builds](https://github.com/Unidata/awips2) (this repo)
* [awips2-core](https://github.com/Unidata/awips2-core)
* [awips2-core-foss](https://github.com/Unidata/awips2-core-foss)
* [awips2-foss](https://github.com/Unidata/awips2-foss)
* [awips2-ncep](https://github.com/Unidata/awips2-ncep)
* [awips2-rpm](https://github.com/Unidata/awips2-rpm)
# Setting up the AWIPS Development Environment (ADE)
Instructions on how to deploy CAVE from Eclipse.
1. Change `/etc/yum.repos.d/awips2.repo` to
[awips2repo]
name=AWIPS II Repository
baseurl=https://www.unidata.ucar.edu/repos/yum/el6-dev/
enabled=1
protect=0
gpgcheck=0
proxy=_none_
2. `yum clean all && yum groupinstall awips2-ade`
This will install Eclipse (4.6.1), Java (1.8), Ant, Maven, Python 2.7 and its modules (Numpy, Shapely, etc.)
3. `git clone https://github.com/Unidata/awips2.git`
The full list of repositories required:
git clone https://github.com/Unidata/awips2.git
git clone https://github.com/Unidata/awips2-core.git
git clone https://github.com/Unidata/awips2-core-foss.git
git clone https://github.com/Unidata/awips2-foss.git
git clone https://github.com/Unidata/awips2-ncep.git
git clone https://github.com/Unidata/awips2-rpm.git
Optional repositories:
git clone https://github.com/Unidata/awips2-nws.git
git clone https://github.com/Unidata/awips2-gsd.git
git clone https://github.com/Unidata/awips2-drawing.git
git clone https://github.com/Unidata/awips2-cimss.git
4. Run `/awips2/eclipse/eclipse.sh`
* Preferences > Java
Set to **/awips2/java**
* Preferences > PyDev > Python Interpreter
Set to **/awips2/python/bin/python** (should be resolved by Auto-Config)
* File > Import > General > Existing Projects Into Workspace
Import all of the git cloned project folders **EXCEPT** for the main (first) **github.com/Unidata/awips2.git** directory (which should be **~/awips2**).
You'll want to import **~/awips2** in three parts to ensure a clean and error-free Eclipse build:
1. Import **awips2/cave** > Select All Projects > Finish
2. Import **awips2/edexOsgi** > Select All Projects > Finish
Now import all other repositories fully:
Select **awips2-core**, **awips2-core-foss**, **awips2-foss**, **awips2-ncep**, etc. > Select All Projects > Finish
* Project > Clean
Run a clean build and ensure no errors are reported.
5. Run **com.raytheon.viz.product.awips/developer.product**
Double-click the **developer.product** file to open the Product View in Eclipse. Select **Overview** > **Synchronize** and then right-click the file in the left-side package explorer:
Select **Run As** > **Eclipse Application** to launch CAVE in the development environment.
Select **Debug** > **Eclipse Application** to launch CAVE in in debug mode.

7
awips2.repo Normal file
View file

@ -0,0 +1,7 @@
[awips2repo]
name=AWIPS II Repository
baseurl=https://downloads.unidata.ucar.edu/awips2/current/linux/rpms/el7/
enabled=1
protect=0
gpgcheck=0
proxy=_none_

461
awips_install-v18.sh Normal file
View file

@ -0,0 +1,461 @@
#!/bin/bash
# about: AWIPS install manager
# devorg: Unidata Program Center
# author: Michael James, Tiffany Meyer
# maintainer: <support-awips@unidata.ucar.edu>
# Date Updated: 7/5/2023
# use: ./awips_install.sh (--cave|--edex|--database|--ingest|--help)
dir="$( cd "$(dirname "$0")" ; pwd -P )"
usage="$(basename "$0") [-h] (--cave|--edex|--database|--ingest) #script to install Unidata AWIPS components.\n
-h, --help show this help text\n
--cave install CAVE for x86_64 Linux\n
--edex, --server install EDEX Standaone Server x86_64 Linux\n
--database install EDEX Request/Database x86_64 Linux\n
--ingest install EDEX Ingest Node Server x86_64 Linux\n"
function stop_edex_services {
for srvc in edex_ldm edex_camel qpidd httpd-pypies edex_postgres ; do
if [ -f /etc/init.d/$srvc ]; then
service $srvc stop
fi
done
}
function check_yumfile {
if [[ $(grep "release 7" /etc/redhat-release) ]]; then
repofile=awips2.repo
else
echo "You need to be running CentOS7 or RedHat7"
exit
fi
if [ -f /etc/yum.repos.d/awips2.repo ]; then
date=$(date +%Y%m%d-%H:%M:%S)
cp /etc/yum.repos.d/awips2.repo /etc/yum.repos.d/awips2.repo-${date}
fi
wget_url="https://downloads.unidata.ucar.edu/awips2/20.3.2/linux/${repofile}"
echo "wget -O /etc/yum.repos.d/awips2.repo ${wget_url}"
wget -O /etc/yum.repos.d/awips2.repo ${wget_url}
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/awips2.repo
yum clean all --enablerepo=awips2repo --disablerepo="*" 1>> /dev/null 2>&1
yum --enablerepo=awips2repo clean metadata
}
function check_limits {
if [[ ! $(grep awips /etc/security/limits.conf) ]]; then
echo "Checking /etc/security/limits.conf for awips: Not found. Adding..."
printf "awips soft nproc 65536\nawips soft nofile 65536\n" >> /etc/security/limits.conf
fi
}
function check_epel {
if [[ ! $(rpm -qa | grep epel-release) ]]; then
yum install epel-release -y
yum clean all
fi
}
function check_wget {
if ! [[ $(rpm -qa | grep ^wget) ]]; then
# install wget if not installed
yum install wget -y
fi
}
function check_rsync {
if ! [[ $(rpm -qa | grep ^rsync) ]]; then
# install rsync if not installed
yum install rsync -y
fi
}
function check_netcdf {
if [[ $(rpm -qa | grep netcdf-AWIPS) ]]; then
# replaced by epel netcdf(-devel) pkgs in 17.1.1-5 so force remove
yum remove netcdf-AWIPS netcdf netcdf-devel -y
fi
}
function check_git {
if ! [[ $(rpm -qa | grep ^git-[12]) ]]; then
# install git if not installed
yum install git -y
fi
}
function check_cave {
if [[ $(rpm -qa | grep awips2-cave-20) ]]; then
echo $'\n'CAVE is currently installed and needs to be removed before installing.
pkill cave.sh
pkill -f 'cave/cave.sh'
remove_cave
fi
check_edex
if [[ $(rpm -qa | grep awips2-cave-18) ]]; then
while true; do
read -p "Version 18.* of CAVE is currently installed and needs to be removed before installing the Beta Version 20.* of CAVE. Do you wish to remove CAVE? (Please type yes or no) `echo $'\n> '`" yn
case $yn in
[Yy]* ) remove_cave; break;;
[Nn]* ) echo "Exiting..."; exit;;
* ) echo "Please answer yes or no"
esac
done
fi
}
function check_cave {
if [[ $(rpm -qa | grep awips2-cave) ]]; then
echo $'\n'CAVE is currently installed and needs to be removed before installing.
pkill cave.sh
pkill -f 'cave/run.sh'
remove_cave
fi
}
function remove_cave {
yum groupremove awips2-cave -y
if [[ $(rpm -qa | grep awips2-cave) ]]; then
echo "
=================== FAILED ===========================
Something went wrong with the un-install of CAVE
and packages are still installed. Once the CAVE
group has been successfully uninstalled, you can try
running this script again.
Try running a \"yum grouplist\" to see if the AWIPS
CAVE group is still installed and then do a
\"yum groupremove [GROUP NAME]\".
ex. yum groupremove 'AWIPS EDEX Server'
You may also need to run \"yum groups mark
remove [GROUP NAME]\"
ex. yum groups mark remove 'AWIPS CAVE'"
exit
else
dir=cave
echo "Removing /awips2/$dir"
rm -rf /awips2/$dir
rm -rf /home/awips/caveData
fi
}
function check_edex {
if [[ $(rpm -qa | grep awips2-edex) ]]; then
echo "found EDEX RPMs installed. The current EDEX needs to be removed before installing."
check_remove_edex
else
if [ -d /awips2/database/data/ ]; then
echo "cleaning up /awips2/database/data/ for new install..."
rm -rf /awips2/database/data/
fi
fi
for dir in /awips2/tmp /awips2/data_store ; do
if [ ! -d $dir ]; then
echo "creating $dir"
mkdir -p $dir
chown awips:fxalpha $dir
fi
done
if getent passwd awips &>/dev/null; then
echo -n ''
else
echo
echo "--- user awips does not exist"
echo "--- installation will continue but EDEX services may not run as intended"
fi
}
function check_remove_edex {
while true; do
read -p "Do you wish to remove EDEX? (Please type yes or no) `echo $'\n> '`" yn
case $yn in
[Yy]* ) remove_edex; break;;
[Nn]* ) echo "Exiting..."; exit;;
* ) echo "Please answer yes or no"
esac
done
}
function calcLogSpace {
a=("$@")
logDiskspace=0
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
out=`du -sk $path | cut -f1`
logDiskspace=$((logDiskspace + $out))
fi
done
logDiskspace=$(echo "scale=8;$logDiskspace*.000000953674316" | bc)
}
function calcConfigSpace {
a=("$@")
configDiskspace=0
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
out=`du -sk $path | cut -f1`
configDiskspace=$((configDiskspace + $out))
fi
done
configDiskspace=$(echo "scale=8;$configDiskspace*.000000953674316" | bc)
}
function backupLogs {
a=("$@")
log_backup_dir=${backup_dir}/awips2_backup_${ver}_${date}/logs
if [[ ! -d ${log_backup_dir} ]]; then
mkdir -p ${log_backup_dir}
fi
echo "Backing up to $log_backup_dir"
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
rsync -apR $path $log_backup_dir
fi
done
}
function backupConfigs {
a=("$@")
config_backup_dir=${backup_dir}/awips2_backup_${ver}_${date}/configs
if [[ ! -d $config_backup_dir ]]; then
mkdir -p $config_backup_dir
fi
echo "Backing up to $config_backup_dir"
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
rsync -apR $path $config_backup_dir
fi
done
}
function remove_edex {
logPaths=("/awips2/edex/logs" "/awips2/httpd_pypies/var/log/httpd/" "/awips2/database/data/pg_log/" "/awips2/qpid/log/" "/awips2/ldm/logs/")
configPaths=("/awips2/database/data/pg_hba*conf" "/awips2/edex/data/utility" "/awips2/edex/bin" "/awips2/ldm/etc" "/awips2/ldm/dev" "/awips2/edex/conf" "/awips2/edex/etc" "/usr/bin/edex" "/etc/init*d/edexServiceList" "/var/spool/cron/awips")
while true; do
read -p "`echo $'\n'`Please make a selction for what you would like backed up. If you choose not to back up files you will lose all your configurations:
1. logs
2. configs
3. both logs and configs
4. none
`echo $'\n> '`" backup_ans
#User chooses to back of files
if [[ $backup_ans =~ [1-3] ]]; then
echo "ANSWER: $backup_ans"
while true; do
read -p "`echo $'\n'`What location do you want your files backed up to? `echo $'\n> '`" backup_dir
if [ ! -d $backup_dir ]; then
echo "$backup_dir does not exist, enter a path that exists"
else
#Check to see if user has enough space to backup
backupspace=`df -k --output=avail "$backup_dir" | tail -n1`
backupspace=$(echo "scale=8;$backupspace*.000000953674316" | bc)
date=$(date +'%Y%m%d-%H:%M:%S')
echo "Checking to see which version of AWIPS is installed..."
rpm=`rpm -qa | grep awips2-[12]`
IFS='-' str=(${rpm})
IFS=. str2=(${str[2]})
vers="${str[1]}-${str2[0]}"
ver="${vers//[.]/-}"
if [ $backup_ans = 1 ]; then
calcLogSpace "${logPaths[@]}"
#Don't let user backup data if there isn't enough space
if (( $(echo "$logDiskspace > $backupspace" | bc ) )); then
printf "You do not have enough disk space to backup this data to $backup_dir. You only have %.2f GB free and need %.2f GB.\n" $backupspace $logDiskspace
#Backup logs
else
backupLogs "${logPaths[@]}"
printf "%.2f GB of logs were backed up to $backup_dir \n" "$logDiskspace"
fi
elif [ $backup_ans = 2 ]; then
calcConfigSpace "${configPaths[@]}"
#Don't let user backup data if there isn't enough space
if (( $(echo "$configDiskspace > $backupspace" | bc ) )); then
printf "You do not have enough disk space to backup this data to $backup_dir. You only have %.2f GB free and need %.2f GB.\n" $backupspace $configDiskspace
#Backup logs
else
backupConfigs "${configPaths[@]}"
printf "%.2f GB of configs were backed up to $backup_dir \n" "$configDiskspace"
fi
elif [ $backup_ans = 3 ]; then
calcLogSpace "${logPaths[@]}"
calcConfigSpace "${configPaths[@]}"
configLogDiskspace=$( echo "$logDiskspace+$configDiskspace" | bc)
#Don't let user backup data if there isn't enough space
if (( $(echo "$configLogDiskspace > $backupspace" | bc ) )); then
printf "You do not have enough disk space to backup this data to $backup_dir . You only have %.2f GB free and need %.2f GB.\n" $backupspace $configLogDiskspace
#Backup logs
else
backupLogs "${logPaths[@]}"
backupConfigs "${configPaths[@]}"
printf "%.2f GB of logs and configs were backed up to $backup_dir \n" "$configLogDiskspace"
fi
fi
break
fi
done
break
#User chooses not to back up any files
elif [ $backup_ans = 4 ]; then
while true; do
read -p "`echo $'\n'`Are you sure you don't want to back up any AWIPS configuration or log files? Type \"yes\" to confirm, \"no\" to select a different backup option, or \"quit\" to exit` echo $'\n> '`" answer
answer=$(echo $answer | tr '[:upper:]' '[:lower:]')
if [ $answer = yes ] || [ $answer = y ]; then
break 2 ;
elif [ $answer = quit ] || [ $answer = q ]; then
exit;
elif [ $answer = no ] || [ $answer = n ]; then
break
fi
done
#User did not make a valid selection
else
echo "Please make a valid selection (1, 2, 3, or 4)"
fi
done
FILE="/opt/bin/logarchival/edex_upgrade.pl"
if test -f "$FILE"; then
echo "Running /opt/bin/logarchival/edex_upgrade.pl and logging to /home/awips/crons/logarchival/general"
/opt/bin/logarchival/edex_upgrade.pl >> /home/awips/crons/logarchival/general
fi
if [[ $(rpm -qa | grep awips2-cave) ]]; then
echo "CAVE is also installed, now removing EDEX and CAVE"
pkill cave.sh
pkill -f 'cave/run.sh'
rm -rf /home/awips/caveData
else
echo "Now removing EDEX"
fi
yum groupremove awips2-server awips2-database awips2-ingest awips2-cave -y
yum remove awips2-* -y
if [[ $(rpm -qa | grep awips2 | grep -v cave) ]]; then
echo "
=================== FAILED ===========================
Something went wrong with the un-install of EDEX
and packages are still installed. Once the EDEX
groups have been successfully uninstalled, you can try
running this script again.
Try running a \"yum grouplist\" to see which AWIPS
group is still installed and then do a
\"yum groupremove [GROUP NAME]\".
ex. yum groupremove 'AWIPS EDEX Server'
You may also need to run \"yum groups mark
remove [GROUP NAME]\"
ex. yum groups mark remove 'AWIPS EDEX Server'"
exit
else
awips2_dirs=("cave" "data" "database" "data_store" "edex" "hdf5" "httpd_pypies" "java" "ldm" "postgres" "psql" "pypies" "python" "qpid" "tmp" "tools" "yajsw")
for dir in ${awips2_dirs[@]}; do
if [ $dir != dev ] ; then
echo "Removing /awips2/$dir"
rm -rf /awips2/$dir
fi
done
fi
}
function check_users {
if ! getent group "fxalpha" >/dev/null 2>&1; then
groupadd fxalpha
fi
if ! id "awips" >/dev/null 2>&1; then
useradd -G fxalpha awips
fi
}
function server_prep {
check_users
check_yumfile
stop_edex_services
check_limits
check_netcdf
check_wget
check_rsync
check_edex
check_git
check_epel
}
function disable_ndm_update {
crontab -u awips -l >cron_backup
crontab -u awips -r
sed -i -e 's/30 3 \* \* \* \/bin\/perl \/awips2\/dev\/updateNDM.pl/#30 3 \* \* \* \/bin\/perl \/awips2\/dev\/updateNDM.pl/' cron_backup
crontab -u awips cron_backup
rm cron_backup
}
function cave_prep {
check_users
check_yumfile
check_cave
check_netcdf
check_wget
check_epel
rm -rf /home/awips/caveData
}
if [ $# -eq 0 ]; then
key="-h"
else
key="$1"
fi
case $key in
--cave)
cave_prep
yum groupinstall awips2-cave -y 2>&1 | tee -a /tmp/awips-install.log
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
echo "CAVE has finished installing, the install log can be found in /tmp/awips-install.log"
;;
--server|--edex)
server_prep
yum groupinstall awips2-server -y 2>&1 | tee -a /tmp/awips-install.log
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
sed -i 's/@LDM_PORT@/388/' /awips2/ldm/etc/registry.xml
echo "EDEX server has finished installing, the install log can be found in /tmp/awips-install.log"
;;
--database)
server_prep
yum groupinstall awips2-database -y 2>&1 | tee -a /tmp/awips-install.log
disable_ndm_update
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
sed -i 's/@LDM_PORT@/388/' /awips2/ldm/etc/registry.xml
echo "EDEX database has finished installing, the install log can be found in /tmp/awips-install.log"
;;
--ingest)
server_prep
yum groupinstall awips2-ingest -y 2>&1 | tee -a /tmp/awips-install.log
disable_ndm_update
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
sed -i 's/@LDM_PORT@/388/' /awips2/ldm/etc/registry.xml
echo "EDEX ingest has finished installing, the install log can be found in /tmp/awips-install.log"
;;
-h|--help)
echo -e $usage
exit
;;
esac
PATH=$PATH:/awips2/edex/bin/
exit

View file

@ -1,7 +1,9 @@
#!/bin/bash -f #!/bin/bash
# about: AWIPS install manager # about: AWIPS install manager
# devorg: Unidata Program Center # devorg: Unidata Program Center
# author: <mjames@ucar.edu> # author: Michael James, Tiffany Meyer
# maintainer: <support-awips@unidata.ucar.edu>
# Date Updated: 2/16/2024
# use: ./awips_install.sh (--cave|--edex|--database|--ingest|--help) # use: ./awips_install.sh (--cave|--edex|--database|--ingest|--help)
dir="$( cd "$(dirname "$0")" ; pwd -P )" dir="$( cd "$(dirname "$0")" ; pwd -P )"
@ -22,17 +24,25 @@ function stop_edex_services {
} }
function check_yumfile { function check_yumfile {
if [ ! -f /etc/yum.repos.d/awips2.repo ]; then if [[ $(grep "release 7" /etc/redhat-release) ]]; then
if [[ $(grep "release 7" /etc/redhat-release) ]]; then repofile=awips2.repo
repofile=el7.repo else
else echo "You need to be running CentOS7 or RedHat7"
repofile=awips2.repo exit
fi
wget_url="https://www.unidata.ucar.edu/software/awips2/doc/${repofile}"
echo "wget -O /etc/yum.repos.d/awips2.repo ${wget_url}"
wget -O /etc/yum.repos.d/awips2.repo ${wget_url}
fi fi
yum clean all --enablerepo=awips2repo --disablerepo="*" 1>> /dev/null 2>&1 if [ -f /etc/yum.repos.d/awips2.repo ]; then
date=$(date +%Y%m%d-%H:%M:%S)
cp /etc/yum.repos.d/awips2.repo /etc/yum.repos.d/awips2.repo-${date}
fi
wget_url="https://downloads.unidata.ucar.edu/awips2/current/linux/${repofile}"
#echo "wget -O /etc/yum.repos.d/awips2.repo ${wget_url}"
#wget -O /etc/yum.repos.d/awips2.repo ${wget_url}
sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/awips2.repo
yum --enablerepo=awips2repo --disablerepo="*" --disableexcludes=main clean all 1>> /dev/null 2>&1
yum --enablerepo=awips2repo --disableexcludes=main clean metadata
} }
function check_limits { function check_limits {
@ -49,6 +59,21 @@ function check_epel {
fi fi
} }
function check_wget {
if ! [[ $(rpm -qa | grep ^wget) ]]; then
# install wget if not installed
yum install wget -y
fi
}
function check_rsync {
if ! [[ $(rpm -qa | grep ^rsync) ]]; then
# install rsync if not installed
yum install rsync -y
fi
}
function check_netcdf { function check_netcdf {
if [[ $(rpm -qa | grep netcdf-AWIPS) ]]; then if [[ $(rpm -qa | grep netcdf-AWIPS) ]]; then
# replaced by epel netcdf(-devel) pkgs in 17.1.1-5 so force remove # replaced by epel netcdf(-devel) pkgs in 17.1.1-5 so force remove
@ -56,16 +81,82 @@ function check_netcdf {
fi fi
} }
function check_git {
if ! [[ $(rpm -qa | grep ^git-[12]) ]]; then
# install git if not installed
yum install git -y
fi
}
function check_wgrib2 {
if ! [[ $(rpm -qa | grep ^wgrib2) ]]; then
# install wgrib2 if not installed
yum install wgrib2 -y
fi
}
function check_cave {
if [[ $(rpm -qa | grep awips2-cave-20) ]]; then
echo $'\n'CAVE is currently installed and needs to be removed before installing.
pkill cave.sh
pkill -f 'cave/cave.sh'
remove_cave
fi
if [[ $(rpm -qa | grep awips2-cave-18) ]]; then
while true; do
pkill run.sh
pkill -f 'cave/run.sh'
read -p "Version 18.* of CAVE is currently installed and needs to be removed before installing the Beta Version 20.* of CAVE. Do you wish to remove CAVE? (Please type yes or no) `echo $'\n> '`" yn
case $yn in
[Yy]* ) remove_cave; break;;
[Nn]* ) echo "Exiting..."; exit;;
* ) echo "Please answer yes or no"
esac
done
fi
}
function remove_cave {
yum --disableexcludes=main groupremove awips2-cave -y
#yum remove awips2-* -y
if [[ $(rpm -qa | grep awips2-cave) ]]; then
echo "
=================== FAILED ===========================
Something went wrong with the un-install of CAVE
and packages are still installed. Once the CAVE
group has been successfully uninstalled, you can try
running this script again.
Try running a \"yum grouplist\" to see if the AWIPS
CAVE group is still installed and then do a
\"yum groupremove [GROUP NAME]\".
ex. yum groupremove 'AWIPS EDEX Server'
You may also need to run \"yum groups mark
remove [GROUP NAME]\"
ex. yum groups mark remove 'AWIPS CAVE'"
exit
else
dir=cave
echo "Removing /awips2/$dir"
rm -rf /awips2/$dir
rm -rf /home/awips/caveData
fi
}
function check_edex { function check_edex {
if [[ $(rpm -qa | grep awips2-edex) ]]; then if [[ $(rpm -qa | grep awips2-edex) ]]; then
echo "found EDEX RPMs installed. Updating..." echo "found EDEX RPMs installed. The current EDEX needs to be removed before installing."
check_remove_edex
else else
if [ -d /awips2/database/data/ ]; then if [ -d /awips2/database/data/ ]; then
echo "cleaning up /awips2/database/data/ for new install..." echo "cleaning up /awips2/database/data/ for new install..."
rm -rf /awips2/database/data/ rm -rf /awips2/database/data/
fi fi
fi fi
for dir in /awips2/tmp /awips2/data_store /awips2/crawl; do for dir in /awips2/tmp /awips2/data_store ; do
if [ ! -d $dir ]; then if [ ! -d $dir ]; then
echo "creating $dir" echo "creating $dir"
mkdir -p $dir mkdir -p $dir
@ -81,9 +172,216 @@ function check_edex {
fi fi
} }
function check_remove_edex {
while true; do
read -p "Do you wish to remove EDEX? (Please type yes or no) `echo $'\n> '`" yn
case $yn in
[Yy]* ) remove_edex; break;;
[Nn]* ) echo "Exiting..."; exit;;
* ) echo "Please answer yes or no"
esac
done
}
function calcLogSpace {
a=("$@")
logDiskspace=0
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
out=`du -sk $path | cut -f1`
logDiskspace=$((logDiskspace + $out))
fi
done
logDiskspace=$(echo "scale=8;$logDiskspace*.000000953674316" | bc)
}
function calcConfigSpace {
a=("$@")
configDiskspace=0
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
out=`du -sk $path | cut -f1`
configDiskspace=$((configDiskspace + $out))
fi
done
configDiskspace=$(echo "scale=8;$configDiskspace*.000000953674316" | bc)
}
function backupLogs {
a=("$@")
log_backup_dir=${backup_dir}/awips2_backup_${ver}_${date}/logs
if [[ ! -d ${log_backup_dir} ]]; then
mkdir -p ${log_backup_dir}
fi
echo "Backing up to $log_backup_dir"
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
rsync -apR $path $log_backup_dir
fi
done
}
function backupConfigs {
a=("$@")
config_backup_dir=${backup_dir}/awips2_backup_${ver}_${date}/configs
if [[ ! -d $config_backup_dir ]]; then
mkdir -p $config_backup_dir
fi
echo "Backing up to $config_backup_dir"
for path in "${a[@]}" ; do
if [ -d $path ] || [ -f $path ]; then
rsync -apR $path $config_backup_dir
fi
done
}
function remove_edex {
logPaths=("/awips2/edex/logs" "/awips2/httpd_pypies/var/log/httpd/" "/awips2/database/data/pg_log/" "/awips2/qpid/log/" "/awips2/ldm/logs/")
configPaths=("/awips2/database/data/pg_hba*conf" "/awips2/edex/data/utility" "/awips2/edex/bin" "/awips2/ldm/etc" "/awips2/ldm/dev" "/awips2/edex/conf" "/awips2/edex/etc" "/usr/bin/edex" "/etc/init*d/edexServiceList" "/var/spool/cron/awips")
while true; do
read -p "`echo $'\n'`Please make a selction for what you would like backed up. If you choose not to back up files you will lose all your configurations:
1. logs
2. configs
3. both logs and configs
4. none
`echo $'\n> '`" backup_ans
#User chooses to back of files
if [[ $backup_ans =~ [1-3] ]]; then
echo "ANSWER: $backup_ans"
while true; do
read -p "`echo $'\n'`What location do you want your files backed up to? `echo $'\n> '`" backup_dir
if [ ! -d $backup_dir ]; then
echo "$backup_dir does not exist, enter a path that exists"
else
#Check to see if user has enough space to backup
backupspace=`df -k --output=avail "$backup_dir" | tail -n1`
backupspace=$(echo "scale=8;$backupspace*.000000953674316" | bc)
date=$(date +'%Y%m%d-%H:%M:%S')
echo "Checking to see which version of AWIPS is installed..."
rpm=`rpm -qa | grep awips2-[12]`
IFS='-' str=(${rpm})
IFS=. str2=(${str[2]})
vers="${str[1]}-${str2[0]}"
ver="${vers//[.]/-}"
if [ $backup_ans = 1 ]; then
calcLogSpace "${logPaths[@]}"
#Don't let user backup data if there isn't enough space
if (( $(echo "$logDiskspace > $backupspace" | bc ) )); then
printf "You do not have enough disk space to backup this data to $backup_dir. You only have %.2f GB free and need %.2f GB.\n" $backupspace $logDiskspace
#Backup logs
else
backupLogs "${logPaths[@]}"
printf "%.2f GB of logs were backed up to $backup_dir \n" "$logDiskspace"
fi
elif [ $backup_ans = 2 ]; then
calcConfigSpace "${configPaths[@]}"
#Don't let user backup data if there isn't enough space
if (( $(echo "$configDiskspace > $backupspace" | bc ) )); then
printf "You do not have enough disk space to backup this data to $backup_dir. You only have %.2f GB free and need %.2f GB.\n" $backupspace $configDiskspace
#Backup logs
else
backupConfigs "${configPaths[@]}"
printf "%.2f GB of configs were backed up to $backup_dir \n" "$configDiskspace"
fi
elif [ $backup_ans = 3 ]; then
calcLogSpace "${logPaths[@]}"
calcConfigSpace "${configPaths[@]}"
configLogDiskspace=$( echo "$logDiskspace+$configDiskspace" | bc)
#Don't let user backup data if there isn't enough space
if (( $(echo "$configLogDiskspace > $backupspace" | bc ) )); then
printf "You do not have enough disk space to backup this data to $backup_dir . You only have %.2f GB free and need %.2f GB.\n" $backupspace $configLogDiskspace
#Backup logs
else
backupLogs "${logPaths[@]}"
backupConfigs "${configPaths[@]}"
printf "%.2f GB of logs and configs were backed up to $backup_dir \n" "$configLogDiskspace"
fi
fi
break
fi
done
break
#User chooses not to back up any files
elif [ $backup_ans = 4 ]; then
while true; do
read -p "`echo $'\n'`Are you sure you don't want to back up any AWIPS configuration or log files? Type \"yes\" to confirm, \"no\" to select a different backup option, or \"quit\" to exit` echo $'\n> '`" answer
answer=$(echo $answer | tr '[:upper:]' '[:lower:]')
if [ $answer = yes ] || [ $answer = y ]; then
break 2 ;
elif [ $answer = quit ] || [ $answer = q ]; then
exit;
elif [ $answer = no ] || [ $answer = n ]; then
break
fi
done
#User did not make a valid selection
else
echo "Please make a valid selection (1, 2, 3, or 4)"
fi
done
FILE="/opt/bin/logarchival/edex_upgrade.pl"
if test -f "$FILE"; then
echo "Running /opt/bin/logarchival/edex_upgrade.pl and logging to /home/awips/crons/logarchival/general"
/opt/bin/logarchival/edex_upgrade.pl >> /home/awips/crons/logarchival/general
fi
if [[ $(rpm -qa | grep awips2-cave) ]]; then
echo "CAVE is also installed, now removing EDEX and CAVE"
pkill cave.sh
pkill -f 'cave/run.sh'
rm -rf /home/awips/caveData
else
echo "Now removing EDEX"
fi
yum --disableexcludes=main groupremove awips2-server awips2-database awips2-ingest awips2-cave -y
yum --disableexcludes=main remove awips2-* -y
if [[ $(rpm -qa | grep awips2 | grep -v cave) ]]; then
echo "
=================== FAILED ===========================
Something went wrong with the un-install of EDEX
and packages are still installed. Once the EDEX
groups have been successfully uninstalled, you can try
running this script again.
Try running a \"yum grouplist\" to see which AWIPS
group is still installed and then do a
\"yum groupremove [GROUP NAME]\".
ex. yum groupremove 'AWIPS EDEX Server'
You may also need to run \"yum groups mark
remove [GROUP NAME]\"
ex. yum groups mark remove 'AWIPS EDEX Server'"
exit
else
awips2_dirs=("cave" "data" "database" "data_store" "edex" "etc" "hdf5" "hdf5_locks" "httpd_pypies" "ignite" "java" "ldm" "netcdf" "postgres" "psql" "pypies" "python" "qpid" "tmp" "tools" "yajsw")
for dir in ${awips2_dirs[@]}; do
if [ $dir != dev ] ; then
echo "Removing /awips2/$dir"
rm -rf /awips2/$dir
fi
done
fi
}
function check_users { function check_users {
if ! getent group "fxalpha" >/dev/null 2>&1; then
groupadd fxalpha
fi
if ! id "awips" >/dev/null 2>&1; then if ! id "awips" >/dev/null 2>&1; then
groupadd fxalpha && useradd -G fxalpha awips useradd -G fxalpha awips
fi fi
} }
@ -92,15 +390,31 @@ function server_prep {
check_yumfile check_yumfile
stop_edex_services stop_edex_services
check_limits check_limits
check_epel
check_netcdf check_netcdf
check_wget
check_rsync
check_edex check_edex
check_git
check_wgrib2
}
function disable_ndm_update {
crontab -u awips -l >cron_backup
crontab -u awips -r
sed -i -e 's/30 3 \* \* \* \/bin\/perl \/awips2\/dev\/updateNDM.pl/#30 3 \* \* \* \/bin\/perl \/awips2\/dev\/updateNDM.pl/' cron_backup
crontab -u awips cron_backup
rm cron_backup
} }
function cave_prep { function cave_prep {
check_users check_users
check_yumfile check_yumfile
check_cave
check_netcdf check_netcdf
check_wget
check_epel check_epel
rm -rf /home/awips/caveData
} }
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
@ -111,19 +425,33 @@ fi
case $key in case $key in
--cave) --cave)
cave_prep cave_prep
yum groupinstall awips2-cave -y 2>&1 | tee -a /tmp/awips-install.log yum --disableexcludes=main groupinstall awips2-cave -y 2>&1 | tee -a /tmp/awips-install.log
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
echo "CAVE has finished installing, the install log can be found in /tmp/awips-install.log"
;; ;;
--server|--edex) --server|--edex)
server_prep server_prep
yum groupinstall awips2-server -y 2>&1 | tee -a /tmp/awips-install.log yum --disableexcludes=main install awips2-*post* -y
yum --disableexcludes=main groupinstall awips2-server -y 2>&1 | tee -a /tmp/awips-install.log
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
sed -i 's/@LDM_PORT@/388/' /awips2/ldm/etc/registry.xml
echo "EDEX server has finished installing, the install log can be found in /tmp/awips-install.log"
;; ;;
--database) --database)
server_prep server_prep
yum groupinstall awips2-database -y 2>&1 | tee -a /tmp/awips-install.log yum --disableexcludes=main groupinstall awips2-database -y 2>&1 | tee -a /tmp/awips-install.log
disable_ndm_update
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
sed -i 's/@LDM_PORT@/388/' /awips2/ldm/etc/registry.xml
echo "EDEX database has finished installing, the install log can be found in /tmp/awips-install.log"
;; ;;
--ingest) --ingest)
server_prep server_prep
yum groupinstall awips2-ingest -y 2>&1 | tee -a /tmp/awips-install.log yum --disableexcludes=main groupinstall awips2-ingest -y 2>&1 | tee -a /tmp/awips-install.log
disable_ndm_update
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/awips2.repo
sed -i 's/@LDM_PORT@/388/' /awips2/ldm/etc/registry.xml
echo "EDEX ingest has finished installing, the install log can be found in /tmp/awips-install.log"
;; ;;
-h|--help) -h|--help)
echo -e $usage echo -e $usage

View file

@ -1,65 +0,0 @@
# Unidata AWIPS Build Notes
## Build the AWIPS Development Environment Docker Container
* https://hub.docker.com/r/unidata/awips-ade/tags/
We create and use the Docker image unidata/awips-ade to build the two RHEL binary distributions of AWIPS (RPMS). The directory **awips2-builds/build/awips-ade/** contains Dockerfiles for 64-bit EL6 and EL7 CentOS.
./build/awips-ade/awips-ade.sh ${os_version}
where **${os_version}** is either *el6* or *el7*.
ADE Docker images will be named with the latest major release and OS version
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
unidata/awips-ade 18.1.1-el6 77ea90df5919 16 min ago 4.13GB
unidata/awips-ade 18.1.1-el7 f030be21eda9 23 min ago 3.95GB
## Build AWIPS RPMs
Build individual AWIPS RPMs with the command
./build/setup.sh el7 ${rpm_name}
for example:
./build/setup.sh el7 awips2-java
./build/setup.sh el7 awips2-python
./build/setup.sh el7 awips2-postgresql
You can also build group aliases:
./build/setup.sh el7 buildEDEX
./build/setup.sh el7 buildCAVE
./build/setup.sh el7 buildLocalization
./build/setup.sh el7 buildShapefiles
Finally, if no program name is given (e.g. `./build/setup.sh el7`), then ALL AWIPS RPMs and groups will be built, in order:
su - awips -c "/bin/bash $buildsh -ade"
su - awips -c "/bin/bash $buildsh -python"
su - awips -c "/bin/bash $buildsh -qpid"
su - awips -c "/bin/bash $buildsh -server"
su - awips -c "/bin/bash $buildsh -database"
su - awips -c "/bin/bash $buildsh -edex"
su - awips -c "/bin/bash $buildsh -httpd"
su - awips -c "/bin/bash $buildsh -cave"
(See `./build/build_rpms.sh` and `./rpms/build/x86_64/rpms.sh` for more insight.)
## Yum Repository
AWIPS RPMs are written to the directories `./dist/el6-dev/` and `./dist/el7-dev/`, and are packaged as a YUM repository with the commands
repomanage -k1 --old dist/${os_version}-dev | xargs rm -e
createrepo -g ../comps.xml dist/${os_version}-dev
Optionally, you can push the repo to your webserver with the command
rsync --archive --delete dist/${os_version}-dev ${USER}@{WEBSERVER}:{$REMOTE_DIR}

View file

@ -0,0 +1,23 @@
FROM tiffanym13/awips-devel-20.3.2-1:el7
ENV VERSION 20.3.2
ENV RELEASE 1
MAINTAINER Tiffany Meyer<tiffanym@ucar.edu>
USER root
COPY el7-dev.repo /etc/yum.repos.d/awips2.repo
RUN groupadd fxalpha && useradd -G fxalpha awips
RUN mkdir -p /home/awips/dev/build/rpmbuild/RPMS/
ADD RPMS /home/awips/dev/build/rpmbuild/RPMS
RUN yum -y clean all
RUN yum install awips2-ant awips2-eclipse awips2-hdf5-devel awips2-maven awips2-python-cheroot awips2-python-contextlib2 awips2-python-cython awips2-python-jaraco.functools awips2-python-more-itertools awips2-python-pkgconfig awips2-python-portend awips2-python-pycairo awips2-python-pygobject awips2-python-setuptools_scm_git_archive awips2-python-setuptools_scm awips2-python-tempora awips2-python-zc.lockfile awips2-python-numpy awips2-python-dateutil awips2-python-pyparsing awips2-python-pbr awips2-python-mock awips2-python-numexpr awips2-python-thrift awips2-python-setuptools awips2-hdf5 awips2-python-six awips2-python-pytz awips2-netcdf-devel awips2-qpid-proton -y
RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp
RUN mkdir -p /awips2/jenkins/build/rpms/awips2_latest/{x86_64,noarch}/
RUN chown -R awips:fxalpha /awips2/jenkins/
ENTRYPOINT ["/bin/bash"]

View file

@ -0,0 +1,23 @@
FROM tiffanym13/awips-devel-20.3.2-2:el7
ENV VERSION 20.3.2
ENV RELEASE 2
MAINTAINER Tiffany Meyer<tiffanym@ucar.edu>
USER root
COPY el7-dev.repo /etc/yum.repos.d/awips2.repo
RUN groupadd fxalpha && useradd -G fxalpha awips
RUN mkdir -p /home/awips/dev/unidata_20.3.2/awips2/dist/el7-dev-20231212/
ADD el7-dev-20231212 /home/awips/dev/unidata_20.3.2/awips2/dist/el7-dev-20231212
RUN yum -y clean all
RUN yum groupinstall awips2-ade -y
RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp
RUN mkdir -p /awips2/jenkins/build/rpms/awips2_latest/{x86_64,noarch}/
RUN chown -R awips:fxalpha /awips2/jenkins/
ENTRYPOINT ["/bin/bash"]

View file

@ -1,19 +0,0 @@
FROM unidata/awips-devel:el6
ENV VERSION 18.1.1
ENV RELEASE 6
MAINTAINER Michael James <mjames@ucar.edu>
USER root
COPY el6-dev.repo /etc/yum.repos.d/awips2.repo
RUN groupadd fxalpha && useradd -G fxalpha awips
RUN yum -y clean all
RUN yum groupinstall awips2-ade -y
RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp
RUN mkdir -p /awips2/jenkins/build/rpms/awips2_latest/{x86_64,noarch}/
RUN chown -R awips:fxalpha /awips2/jenkins/
ENTRYPOINT ["/bin/bash"]

View file

@ -1,19 +0,0 @@
FROM unidata/awips-devel:el7
ENV VERSION 18.1.1
ENV RELEASE 6
MAINTAINER Michael James <mjames@ucar.edu>
USER root
COPY el7-dev.repo /etc/yum.repos.d/awips2.repo
RUN groupadd fxalpha && useradd -G fxalpha awips
RUN yum -y clean all
RUN yum groupinstall awips2-ade -y
RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp
RUN mkdir -p /awips2/jenkins/build/rpms/awips2_latest/{x86_64,noarch}/
RUN chown -R awips:fxalpha /awips2/jenkins/
ENTRYPOINT ["/bin/bash"]

View file

@ -0,0 +1,22 @@
FROM centos:7
ENV VERSION 20.3.2-1
ENV RELEASE 1
MAINTAINER Tiffany Meyer<tiffanym@ucar.edu>
USER root
RUN yum update yum -y
RUN yum groupinstall "Development tools" -y
RUN yum install epel-release -y
RUN yum clean all -y
ENV systemDeps="wget rsync git net-tools gzip libtool"
ENV rpmDeps="gcc-c++ gcc-gfortran rpm-build createrepo expat-devel lua-devel cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-md5 nss-devel nspr-devel libxml2-devel openldap-devel cmake"
ENV pythonDeps="tk-devel tcl-devel readline-devel bzip2-devel openssl-devel compat-libf2c-34"
ENV awipsDeps="netcdf netcdf-devel"
RUN yum install $systemDeps $rpmDeps $pythonDeps $awipsDeps -y
RUN yum update -y
ENTRYPOINT ["/bin/bash"]

View file

@ -0,0 +1,22 @@
FROM centos:7
ENV VERSION 20.3.2-2
ENV RELEASE 2
MAINTAINER Tiffany Meyer<tiffanym@ucar.edu>
USER root
RUN yum update yum -y
RUN yum groupinstall "Development tools" -y
RUN yum install epel-release -y
RUN yum clean all -y
ENV systemDeps="wget rsync git net-tools gzip libtool"
ENV rpmDeps="gcc-c++ gcc-gfortran rpm-build createrepo expat-devel lua-devel cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-md5 nss-devel nspr-devel libxml2-devel openldap-devel cmake"
ENV pythonDeps="tk-devel tcl-devel readline-devel bzip2-devel openssl-devel compat-libf2c-34"
ENV awipsDeps="netcdf netcdf-devel"
RUN yum install $systemDeps $rpmDeps $pythonDeps $awipsDeps -y
RUN yum update -y
ENTRYPOINT ["/bin/bash"]

View file

@ -1,22 +0,0 @@
FROM centos:6
ENV VERSION 18.1.1
ENV RELEASE 6
MAINTAINER Michael James <mjames@ucar.edu>
USER root
RUN yum update yum -y
RUN yum groupinstall "Development tools" -y
RUN yum install epel-release -y
RUN yum clean all -y
ENV systemDeps="wget rsync git net-tools gzip libtool"
ENV rpmDeps="gcc gcc-c++ glibc-devel rpm-build readline-devel createrepo"
ENV qpidDeps="boost-devel cmake make ruby libuuid-devel"
ENV pythonDeps="tk-devel tcl-devel atlas-devel compat-libf2c-34 libgfortran geos-devel libpng-devel freetype"
ENV awipsDeps="netcdf netcdf-devel hdf5-devel lzo-devel bzip2-devel qt-devel xz-devel"
ENV httpDeps="autoconf findutils libselinux-devel libxml2-devel lua-devel openldap-devel openssl-devel pcre-devel pkgconfig perl zlib-devel apr-util-devel apr-devel"
RUN yum install $systemDeps $rpmDeps $qpidDeps $pythonDeps $awipsDeps $httpDeps -y
ENTRYPOINT ["/bin/bash"]

View file

@ -1,23 +0,0 @@
FROM centos:7
ENV VERSION 18.1.1
ENV RELEASE 6
MAINTAINER Michael James <mjames@ucar.edu>
USER root
RUN yum update yum -y
RUN yum groupinstall "Development tools" -y
RUN yum install epel-release -y
RUN yum clean all -y
ENV systemDeps="wget rsync git net-tools gzip libtool"
ENV rpmDeps="gcc gcc-c++ glibc-devel rpm-build readline-devel createrepo"
ENV qpidDeps="boost-devel cmake make ruby libuuid-devel"
ENV pythonDeps="tk-devel tcl-devel atlas-devel compat-libf2c-34 libgfortran geos-devel libpng-devel freetype"
ENV awipsDeps="netcdf netcdf-devel hdf5-devel lzo-devel bzip2-devel qt-devel xz-devel"
ENV httpDeps="autoconf findutils libselinux-devel libxml2-devel lua-devel openldap-devel openssl-devel pcre-devel pkgconfig perl zlib-devel apr-util-devel apr-devel"
RUN yum install $systemDeps $rpmDeps $qpidDeps $pythonDeps $awipsDeps $httpDeps -y
ENTRYPOINT ["/bin/bash"]

View file

@ -5,18 +5,22 @@ pushd $dir
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "supply type (el6, el7)" echo "supply type (el7)"
exit exit
fi fi
os_version=$1 os_version=$1
existing=$(sudo docker images |grep awips-ade | grep $1 | awk '{ print $3 }') existing=$(docker images |grep awips-ade | grep $1 | awk '{ print $3 }')
if [ ! -z "$existing" ]; then if [ ! -z "$existing" ]; then
sudo docker rmi $existing docker rmi $existing
fi fi
img="20.3.2-2"
pushd /awips2/repo/awips2-builds/build/awips-ade pushd /awips2/repo/awips2-builds/build/awips-ade
sudo docker build -t unidata/awips-ade -f Dockerfile.awips-ade.${os_version} . docker build -t tiffanym13/awips-ade-${img} -f Dockerfile.awips-ade-${img}.${os_version} .
dockerID=$(sudo docker images | grep awips-ade | grep latest | awk '{print $3}' | head -1 ) dockerID=$(docker images | grep awips-ade | awk '{print $3}' | head -1 )
sudo docker tag $dockerID unidata/awips-ade:${AWIPSII_VERSION}-${os_version} #docker tag $dockerID unidata/awips-ade:${AWIPSII_VERSION}-${os_version}
sudo docker rmi unidata/awips-ade:latest docker tag $dockerID tiffanym13/awips-ade-${img}:${AWIPSII_VERSION}-${os_version}
sudo docker push unidata/awips-ade docker rmi tiffanym13/awips-ade-${img}:latest
#docker rmi tiffanym13/awips-ade-${img}:${AWIPSII_VERSION}-${os_version}
docker push tiffanym13/awips-ade-${img}:${AWIPSII_VERSION}-${os_version}

View file

@ -2,22 +2,22 @@
dir="$( cd "$(dirname "$0")" ; pwd -P )" dir="$( cd "$(dirname "$0")" ; pwd -P )"
pushd $dir pushd $dir
. ../buildEnvironment.sh . ../buildEnvironment.sh
img="awips-devel" img="awips-devel-20.3.2-2"
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "supply type (el6, el7)" echo "supply type (el7)"
exit exit
fi fi
os_version=$1 os_version=$1
existing=$(sudo docker images |grep ${img} | grep $1 | awk '{ print $3 }') existing=$(sudo docker images |grep ${img} | grep $1 | awk '{ print $3 }')
if [ ! -z "$existing" ]; then if [ ! -z "$existing" ]; then
sudo docker rmi $existing docker rmi $existing
fi fi
pushd /awips2/repo/awips2-builds/build/awips-ade pushd /awips2/repo/awips2-builds/build/awips-ade
sudo docker build -t unidata/${img} -f Dockerfile.${img}.${os_version} . docker build -t tiffanym13/${img} -f Dockerfile.${img}.${os_version} .
dockerID=$(sudo docker images | grep ${img} | grep latest | awk '{print $3}' | head -1 ) dockerID=$(docker images | grep ${img} | grep latest | awk '{print $3}' | head -1 )
sudo docker tag $dockerID unidata/${img}:${os_version} docker tag $dockerID tiffanym13/${img}:${os_version}
sudo docker rmi unidata/${img}:latest docker rmi tiffanym13/${img}:latest
sudo docker push unidata/${img} docker push tiffanym13/${img}:${os_version}

View file

@ -1,7 +0,0 @@
[awips2repo]
name=AWIPS II Repository
baseurl=https://www.unidata.ucar.edu/repos/yum/el6-dev/
enabled=1
protect=0
gpgcheck=0
proxy=_none_

View file

@ -1,6 +1,8 @@
[awips2repo] [awips2repo]
name=AWIPS II Repository name=AWIPS II Repository
baseurl=http://www.unidata.ucar.edu/repos/yum/el7-dev/ #baseurl=http://www.unidata.ucar.edu/repos/yum/18.2.1-ade
#baseurl=file:///home/awips/dev/build/rpmbuild/RPMS
baseurl=file:///home/awips/dev/unidata_20.3.2/awips2/dist/el7-dev-20231212
enabled=1 enabled=1
protect=0 protect=0
gpgcheck=0 gpgcheck=0

View file

@ -73,6 +73,8 @@ popd > /dev/null 2>&1
export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}" export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
mkdir -p ${AWIPSII_TOP_DIR}/RPMS/x86_64/
if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then
mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/ mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/
fi fi

View file

@ -1,11 +1,13 @@
#!/bin/bash #!/bin/bash
# Version # Version
export AWIPSII_VERSION="18.1.1" export AWIPSII_VERSION="20.3.2"
export AWIPSII_RELEASE="6" export AWIPSII_RELEASE="2"
export AWIPSII_BUILD_DATE=`date`
export AWIPSII_BUILD_SYS=`cat /etc/system-release`
# Author # Author
export AWIPSII_BUILD_VENDOR="UCAR" export AWIPSII_BUILD_VENDOR="UCAR"
export AWIPSII_BUILD_SITE="Unidata" export AWIPSII_BUILD_SITE="Unidata"
export AWIPSII_AUTHOR="Michael James <mjames@ucar.edu>" export AWIPSII_AUTHOR="Tiffany Meyer <tiffanym@ucar.edu>"
# Directories # Directories
export UFRAME_ECLIPSE=/awips2/eclipse export UFRAME_ECLIPSE=/awips2/eclipse
export JAVA_HOME=/awips2/java export JAVA_HOME=/awips2/java

View file

@ -1,7 +1,8 @@
#!/bin/sh -xe #!/bin/sh -xe
# #
# Build Unidata AWIPS RPMs from source # Build Unidata AWIPS RPMs from source
# Author: mjames@ucar.edu # author: Michael James
# maintainer: <tiffanym@ucar.edu>
# #
# #
@ -12,7 +13,7 @@ os_version=$1
rpmname=$2 rpmname=$2
if [ -z "$os_version" ]; then if [ -z "$os_version" ]; then
echo "supply os_version (el6, el7)" echo "supply os_version (el7)"
exit exit
fi fi
@ -27,14 +28,13 @@ pushd $REPO
# If local source directories, exist, mount them to the # If local source directories, exist, mount them to the
# container, otherwise clone the repo from github # container, otherwise clone the repo from github
# #
if [ ! -d awips2-core-foss ]; then git clone https://github.com/Unidata/awips2-core-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi #if [ ! -d awips2-core-foss ]; then git clone https://github.com/Unidata/awips2-core-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-core ]; then git clone https://github.com/Unidata/awips2-core.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi #if [ ! -d awips2-core ]; then git clone https://github.com/Unidata/awips2-core.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-foss ]; then git clone https://github.com/Unidata/awips2-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi #if [ ! -d awips2-foss ]; then git clone https://github.com/Unidata/awips2-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-goesr ]; then git clone https://github.com/Unidata/awips2-goesr.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi #if [ ! -d awips2-goesr ]; then git clone https://github.com/Unidata/awips2-goesr.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-hazards ]; then git clone https://github.com/Unidata/awips2-hazards.git --branch development --single-branch ;fi #if [ ! -d awips2-ncep ]; then git clone https://github.com/Unidata/awips2-ncep.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-ncep ]; then git clone https://github.com/Unidata/awips2-ncep.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi #if [ ! -d awips2-nws ]; then git clone https://github.com/Unidata/awips2-nws.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-nws ]; then git clone https://github.com/Unidata/awips2-nws.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi #if [ ! -d awips2-unidata ]; then git clone https://github.com/Unidata/awips2-unidata.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
if [ ! -d awips2-unidata ]; then git clone https://github.com/Unidata/awips2-unidata.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi
# #
# AWIPS Static files are too large to host on github # AWIPS Static files are too large to host on github
@ -62,22 +62,27 @@ if [ ! -z "$rpmname" ]; then
else else
# If RPM name is not given build all groups in this order # If RPM name is not given build all groups in this order
# yum localinstall /awips2/repo/awips2-builds/dist/18.2.1-ade/x86_64/awips2-hdf5* -y
# yum localinstall /awips2/repo/awips2-builds/dist/18.2.1-ade/x86_64/awips2-netcdf* -y
su - awips -c "/bin/bash $buildsh -ade" su - awips -c "/bin/bash $buildsh -ade"
su - awips -c "/bin/bash $buildsh -python" su - awips -c "/bin/bash $buildsh -python"
su - awips -c "/bin/bash $buildsh -qpid" su - awips -c "/bin/bash $buildsh -qpid"
su - awips -c "/bin/bash $buildsh -server" su - awips -c "/bin/bash $buildsh -server"
su - awips -c "/bin/bash $buildsh -database" su - awips -c "/bin/bash $buildsh -database"
su - awips -c "/bin/bash $buildsh -edex" su - awips -c "/bin/bash $buildsh -edex"
su - awips -c "/bin/bash $buildsh -httpd"
su - awips -c "/bin/bash $buildsh -cave" su - awips -c "/bin/bash $buildsh -cave"
#su - awips -c "/bin/bash $buildsh -pypies"
#su - awips -c "/bin/bash $buildsh -localization"
fi fi
# Move RPMs to awips2-builds/dist # Move RPMs to awips2-builds/dist
if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/)" ]; then if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/)" ]; then
mkdir -p /awips2/repo/awips2-builds/dist/${os_version}-dev/x86_64/
mv ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/* /awips2/repo/awips2-builds/dist/${os_version}-dev/x86_64/ mv ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/* /awips2/repo/awips2-builds/dist/${os_version}-dev/x86_64/
fi fi
if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/)" ]; then if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/)" ]; then
mkdir -p /awips2/repo/awips2-builds/dist/${os_version}-dev/noarch/
mv ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/* /awips2/repo/awips2-builds/dist/${os_version}-dev/noarch/ mv ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/* /awips2/repo/awips2-builds/dist/${os_version}-dev/noarch/
fi fi

View file

@ -0,0 +1,113 @@
<project name="deploy.esb" default="main">
<!-- <import file="deploy-web.xml" /> -->
<target name="main">
<!-- on a developer machine, the following directories should
already exist. -->
<mkdir dir="${edex.root.directory}/lib" />
<mkdir dir="${edex.root.directory}/bin" />
<mkdir dir="${edex.root.directory}/conf" />
<antcall target="cleanup" />
<!-- Determine if any Work Assignments have been specified. -->
<condition property="wa.enabled">
<not><equals arg1="${wa.to.deploy}" arg2="" /></not>
</condition>
<antcall target="deploy.esb" />
<if>
<equals arg1="${deploy.data}" arg2="true" />
<then>
<antcall target="deploy.esb-data" />
</then>
</if>
<for list="${wa.specific.deploy}" param="wa" delimiter="${path.separator}">
<sequential>
<basename property="wa.name" file="@{wa}" />
<var name="wa.base.directory"
value="${git.directory}/@{wa}/edex/deploy.edex-${wa.name}" />
<if>
<available file="${wa.base.directory}/esb"
type="dir" />
<then>
<copy todir="${edex.root.directory}"
overwrite="${esb.overwrite}" failonerror="true">
<fileset dir="${wa.base.directory}/esb"/>
</copy>
</then>
</if>
</sequential>
</for>
</target>
<target name="cleanup">
<!-- delete all files under ${esbDir}/lib/ -->
<echo message="Cleaning target directory: ${edex.root.directory}/lib/" />
<delete includeemptydirs="true">
<fileset dir="${edex.root.directory}/lib/">
<exclude name="native/**" />
</fileset>
</delete>
<!-- delete the shell scripts from ${esbDir}/bin/ -->
<echo message="Cleaning target directory: ${edex.root.directory}/bin/" />
<delete includeemptydirs="true">
<fileset dir="${edex.root.directory}/bin/">
<include name="*.sh"/>
<include name="yajsw/**" />
</fileset>
</delete>
<echo message="Cleaning target directory: ${edex.root.directory}/conf" />
<delete>
<fileset dir="${edex.root.directory}/conf">
<exclude name="**/site/**"/>
<exclude name="**/auth/**"/>
</fileset>
</delete>
</target>
<target name="deploy.esb">
<copy todir="${edex.root.directory}"
overwrite="${esb.overwrite}">
<fileset dir="${esb.directory}">
<exclude name="data/**" />
<exclude name="svcBackup/**" />
<exclude name="**/bin/setup.env" />
<exclude name="**/bin/linux-x86-32/**" />
<exclude name="**/bin/linux-x86-64/**" />
</fileset>
</copy>
<!-- set executable permissions - start.sh. -->
<chmod file="${edex.root.directory}/bin/start.sh" perm="ugo+rx" />
<!-- set executable permissions - private keys -->
<chmod file="${edex.root.directory}/conf/db/auth/*.key" perm="go-rwx" />
<chmod file="${edex.root.directory}/conf/db/auth/*.pk8" perm="go-rwx" />
</target>
<target name="deploy.esb-data">
<copy todir="${edex.root.directory}"
overwrite="${esb.overwrite}">
<fileset dir="${esb.directory}" includes="data/**" />
</copy>
<!-- update directory permissions. -->
<exec executable="chmod">
<arg value="-R"/>
<arg value="775"/>
<arg value="${edex.root.directory}/data"/>
</exec>
</target>
<path id="ant.contrib.path">
<fileset dir="/awips2/ant/lib/">
<include name="ant-contrib-*.jar" />
</fileset>
</path>
<taskdef resource="net/sf/antcontrib/antlib.xml"
classpathref="ant.contrib.path" />
</project>

View file

@ -0,0 +1,36 @@
#!/bin/bash
##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
# resolve/set local variables
path_to_script=`readlink -f $0`
dir=$(dirname $path_to_script)
dir=$(dirname $dir)
awips_home=$(dirname $dir)
rpm -q awips2-java > /dev/null 2>&1
RC=$?
if [ ${RC} -ne 0 ]; then
echo "ERROR: awips2-java Must Be Installed."
echo "Unable To Continue ... Terminating."
fi
JAVA_INSTALL=`rpm -q --queryformat '%{INSTPREFIXES}' awips2-java`
${JAVA_INSTALL}/bin/java -classpath $awips_home/edex/lib/plugins/plugin-warning.jar:$awips_home/edex/lib/dependencies/org.geotools/jts-1.9.jar com.raytheon.edex.plugin.warning.tools.DamInfoTranslator $@

View file

@ -0,0 +1,10 @@
#!/bin/sh
# This starts the desired script passing the script name and arguments as a
# single string ("$@"). It then sends stdout/stderr to the bit bucket
# (>&/dev/null).
# The stdin for the script is also the bit bucket (</dev/null) so if used it
# immediately indicates end of file. Finally the script is set to run in the
# background (&) so the launcher returns without waiting for the script to
# return.
exec "$@" >&/dev/null </dev/null &

View file

@ -0,0 +1,85 @@
### EDEX localization related variables ###
export AW_SITE_IDENTIFIER=OAX
## Cluster id can be set to the cluster's id (example:tbw for dv1-tbwo)
## it will be autogenerated if not set
export EXT_ADDR=external.fqdn
export CLUSTER_ID=
# database names
export DC_DB_NAME=dc_ob7oax
export FXA_DB_NAME=fxatext
export HM_DB_NAME=hmdb
export IH_DB_NAME=hd_ob92oax
export CLIMATE_DB_NAME=climate
# Resolve conflict on AFOS PILs by finding site with first letter in the following order.
export PREFERRED_AFOS_FIRST_LETTER="KCPTXM"
### end of localization variables ###
# setup environment for HPE
export DATA_ARCHIVE_ROOT=/tmp/sbn
# setup db connections
export DB_HOST=localhost
export DB_PORT=5432
export DB_SSLMODE=verify-ca
# setup connection to qpid
export BROKER_HOST=localhost
export BROKER_PORT=5672
export BROKER_HTTP=8180
# setup ignite
#export DATASTORE_PROVIDER=${DATASTORE_PROVIDER:-ignite}
export DATASTORE_PROVIDER=pypies
# Server that redirects PYPIES http requests to ignite
export PYPIES_COMPATIBILITY_HOST=localhost
export PYPIES_COMPATIBILITY_PORT=9586
export PYPIES_COMPATIBILITY_SERVER=http://${PYPIES_COMPATIBILITY_HOST}:${PYPIES_COMPATIBILITY_PORT}
# The following two values are comma-delimited lists of the machines that are
# hosting each of the ignite cluster's servers (example: cache1,cache2,cache3
# and cache4,cache5,cache6). Leaving the second value blank indicates that only
# one cluster is being used. These values should be the same on all machines.
export IGNITE_CLUSTER_1_SERVERS=localhost
export IGNITE_CLUSTER_2_SERVERS=
# The address that other ignite nodes should use to communicate with this ignite client
export LOCAL_ADDRESS=127.0.0.1
export IGNITE_SSL_CERT_DB=/awips2/edex/conf/ignite/auth
# setup hdf5 connection
export PYPIES_HOST=${EXT_ADDR}
export PYPIES_PORT=9582
export PYPIES_SERVER=http://${PYPIES_HOST}:${PYPIES_PORT}
# moved here from environment.xml
# these values are returned to clients that contact the localization service
export HTTP_HOST=${EXT_ADDR}
export HTTP_PORT=9581
export HTTP_SERVER_PATH=services
export HTTP_SERVER=http://${HTTP_HOST}:${HTTP_PORT}/${HTTP_SERVER_PATH}
export JMS_SERVER=${BROKER_HOST}:${BROKER_PORT}
export JMS_VIRTUALHOST=edex
export JMS_SSL_ENABLED=true
export QPID_SSL_CERT_DB=/awips2/edex/conf/jms/auth
export QPID_SSL_CERT_NAME=guest
export RADAR_HOST=localhost
export RADAR_PORT=8813
export RADAR_SERVER=tcp://${RADAR_HOST}:${RADAR_PORT}
# set the AWIPS II shared directory
export SHARE_DIR=/awips2/edex/data/share
# set the AWIPS II temporary directory
export TEMP_DIR=/awips2/edex/data/tmp
# set hydroapps directory path
export apps_dir=${SHARE_DIR}/hydroapps
# site identifier for hydroapps
export SITE_IDENTIFIER=${AW_SITE_IDENTIFIER}
# set Fax environment variables pointing to ldad@ls1
export LDAD_EXTERNAL_HOME=/ldad
export LDAD_EXTERNAL_PUBLIC=/data/ldad/public
export AWIPS2_TEMP=/awips2/tmp

View file

@ -0,0 +1,203 @@
#!/bin/bash
##
# This software was developed and / or modified by Raytheon Company,
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
#
# U.S. EXPORT CONTROLLED TECHNICAL DATA
# This software product contains export-restricted data whose
# export/transfer/disclosure is restricted by U.S. law. Dissemination
# to non-U.S. persons whether in the United States or abroad requires
# an export license or other authorization.
#
# Contractor Name: Raytheon Company
# Contractor Address: 6825 Pine Street, Suite 340
# Mail Stop B8
# Omaha, NE 68106
# 402.291.0100
#
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
# further licensing information.
##
#
# SOFTWARE HISTORY
#
# Date Ticket# Engineer Description
# ------------- -------- --------- --------------------------------------------
# Jul 03, 2019 7875 randerso Changed to get EDEX version from
# awips2-version.rpm
##
# edex startup script
if [ -z "${SKIP_RPM_CHECK}" ]; then
# Verify that awips2-python and awips2-java are installed.
rpm -q awips2-python > /dev/null 2>&1
RC=$?
if [ ${RC} -ne 0 ]; then
echo "ERROR: awips2-python Must Be Installed."
echo "Unable To Continue ... Terminating."
exit 1
fi
rpm -q awips2-java > /dev/null 2>&1
RC=$?
if [ ${RC} -ne 0 ]; then
echo "ERROR: awips2-java Must Be Installed."
echo "Unable To Continue ... Terminating."
exit 1
fi
rpm -q awips2-psql > /dev/null 2>&1
RC=$?
if [ ${RC} -ne 0 ]; then
echo "ERROR: awips2-psql Must Be Installed."
echo "Unable To Continue ... Terminating."
exit 1
fi
rpm -q awips2-yajsw > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "ERROR: awips2-yajsw Must Be Installed."
echo "Unable To Continue ... Terminating."
exit 1
fi
fi
path_to_script=`readlink -f $0`
dir=$(dirname $path_to_script)
export EDEX_HOME=$(dirname $dir)
awips_home=$(dirname $EDEX_HOME)
# Find the locations of awips2-python and awips2-java.
# only set if the location has not already been exported
if [ -z "$PYTHON_INSTALL" ]; then PYTHON_INSTALL="$awips_home/python"; fi
if [ -z "$JAVA_INSTALL" ]; then JAVA_INSTALL="$awips_home/java"; fi
if [ -z "$PSQL_INSTALL" ]; then PSQL_INSTALL="$awips_home/psql"; fi
if [ -z "$YAJSW_HOME" ]; then YAJSW_HOME="$awips_home/yajsw"; fi
# Find the edex version
version=`rpm -q awips2-version --qf %{VERSION}`
RC=$?
if [ ${RC} -ne 0 ]; then
version="Undefined"
fi
export EDEX_VERSION=$version
# Source The File With The Localization Information
source ${dir}/setup.env
#source /awips2/edex/bin/yajsw/bin/setenv.sh
### AWIPS 1 support ###
if [ -f /etc/rc.config.d/AWIPS ]; then
. /etc/rc.config.d/AWIPS
fi
export SHLIB_PATH=$PROJECT/sharedlib
### End AWIPS 1 support ###
export HOSTNAME=`hostname`
export SHORT_HOSTNAME=`hostname -s`
# set Python & Java into the path
export PATH=$awips_home/bin:${JAVA_INSTALL}/bin:${PYTHON_INSTALL}/bin:$PATH
# set Service Backup scripts into the path
export PATH=$PATH:$awips_home/GFESuite/bin:$awips_home/GFESuite/ServiceBackup/scripts
# set AWIPS 1 stuff into path
export PATH=$PATH:$PROJECT/bin
export JAVA_HOME="${JAVA_INSTALL}"
export LD_LIBRARY_PATH=$EDEX_HOME/lib/native/linux32/awips1:${JAVA_INSTALL}/lib:${PYTHON_INSTALL}/lib:${PYTHON_INSTALL}/lib/python3.6/site-packages/jep:${PSQL_INSTALL}/lib:$PROJECT/sharedLib:$LD_LIBRARY_PATH
export FXA_DATA=$EDEX_HOME/data/fxa
export ALLOW_ARCHIVE_DATA="false"
# setup environment for HPE
export AMQP_SPEC=$awips_home/python/share/amqp/amqp.0-10.xml
# get total memory on system in bytes
MEM_IN_MEG=( `free -m | grep "Mem:"` )
export MEM_IN_MEG=${MEM_IN_MEG[1]}
HIGH_MEM=off
if [ $MEM_IN_MEG -gt 12288 ]; then
HIGH_MEM=on
fi
#-------------------------------------------------------------------------
#read and interpret the command line arguments
#-------------------------------------------------------------------------
CONSOLE_FLAG=on
CONSOLE_LOGLEVEL=DEBUG
DEBUG_FLAG=off
PROFILE_FLAG=off
CONF_FILE="wrapper.conf"
RUN_MODE=
LOG_APPENDERS_CONFIG="logback-edex-appenders-developer.xml"
EDEX_WRAPPER_LOGFILE_FORMAT=M
for arg in $@
do
case $arg in
-b|-d|-debug|-db|-bd) DEBUG_FLAG=on;;
-p|-profiler) PROFILE_FLAG=on;;
-h|-highmem) HIGH_MEM=on;;
-noHighmem) HIGH_MEM=off;;
-noConsole) CONSOLE_FLAG=off;;
*) RUN_MODE=$arg;;
esac
done
export EDEX_RUN_MODE=$RUN_MODE
EDEX_WRAPPER_LOGFILE=${EDEX_HOME}/logs/edex-${EDEX_RUN_MODE}-YYYYMMDD.log
if [ $CONSOLE_FLAG == "off" ]; then
CONSOLE_LOGLEVEL=NONE
LOG_APPENDERS_CONFIG="logback-edex-appenders.xml"
EDEX_WRAPPER_LOGFILE=${EDEX_HOME}/logs/edex-${EDEX_RUN_MODE}-wrapper-YYYYMMDD.log
EDEX_WRAPPER_LOGFILE_FORMAT=LTM
fi
export CONSOLE_LOGLEVEL
export LOG_APPENDERS_CONFIG
export EDEX_WRAPPER_LOGFILE
export EDEX_WRAPPER_LOGFILE_FORMAT
# source environment files
. $EDEX_HOME/etc/default.sh
if [ -e $EDEX_HOME/etc/${RUN_MODE}.sh ]; then
. $EDEX_HOME/etc/${RUN_MODE}.sh
else
export DATASTORE_PROVIDER=pypies
fi
if [ $PROFILE_FLAG == "on" ]; then
. $EDEX_HOME/etc/profiler.sh
fi
# enable core dumps
#ulimit -c unlimited
if [ $DEBUG_FLAG == "off" ]; then
export EDEX_DEBUG_PORT=-1
else
echo "To Debug ... Connect to Port: ${EDEX_DEBUG_PORT}."
fi
#create tmp dir
mkdir -p ${AWIPS2_TEMP}
RC=$?
if [ ${RC} -ne 0 ]; then
echo "ERROR: Failed to create temp directory ${AWIPS2_TEMP}."
echo "Unable To Continue ... Terminating."
exit 1
fi
YAJSW_JVM_ARGS="-Xmx32m -Djava.io.tmpdir=${AWIPS2_TEMP}"
java ${YAJSW_JVM_ARGS} -jar ${YAJSW_HOME}/wrapper.jar -c ${EDEX_HOME}/conf/${CONF_FILE}

View file

@ -0,0 +1,9 @@
**************************************************
* Unidata AWIPS EDEX ESB Platform *
* Version: 20.3.2-2 *
* UCAR NSF Unidata Program Center *
*------------------------------------------------*
* NON-OPERATIONAL *
* *
* *
**************************************************

View file

@ -0,0 +1,70 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQLDialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${climate.db.name}
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,70 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQLDialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${climate.db.name}
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${dc.db.name}
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${dc.db.name}
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849)-->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${fxa.db.name}
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${fxa.db.name}
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">25</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${hm.db.name}
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${hm.db.name}
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${ih.db.name}
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/${ih.db.name}
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.spatial.dialect.postgis.PostgisPG95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/maps
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.spatial.dialect.postgis.PostgisPG95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/maps
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">20</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,87 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.spatial.dialect.postgis.PostgisPG95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/metadata
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">after_transaction</property>
<property name="jdbc.batch_size">100</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">${db.metadata.pool.timeout}</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.generate_statistics">false</property>
<property name="hibernate.transaction.coordinator_class">jdbc</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.jdbc.use_streams_for_binary">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid that is necessary to start edex in
registry mode as of Hibernate 5.2. JPA spec does not allow flushing
updates outside of a transaction boundary. Figure out why we need
this -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,90 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.spatial.dialect.postgis.PostgisPG95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/metadata
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">100</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_size">${db.metadata.pool.max}</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">${db.metadata.pool.timeout}</property>
<property name="hibernate.c3p0.max_statements">10</property>
<property name="hibernate.generate_statistics">false</property>
<property name="hibernate.transaction.coordinator_class">jdbc</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.jdbc.use_streams_for_binary">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">16</property>
<property name="hibernate.query.plan_cache_max_soft_references">32</property>
<!-- TODO: This is a band-aid that is necessary to start edex in
registry mode as of Hibernate 5.2. JPA spec does not allow flushing
updates outside of a transaction boundary. Figure out why we need
this -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/ncep
</property>
<property name="connection.username">awipsadmin</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awipsadmin.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awipsadmin.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">10</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,88 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<hibernate-configuration>
<session-factory>
<!-- JDBC Properties -->
<property name="connection.driver_class">
org.postgresql.Driver
</property>
<property name="dialect">
org.hibernate.dialect.PostgreSQL95Dialect
</property>
<property name="connection.url">
jdbc:postgresql://${db.addr}:${db.port}/ncep
</property>
<property name="connection.username">awips</property>
<property name="connection.sslmode">${db.auth.sslmode}</property>
<property name="connection.sslfactory">org.postgresql.ssl.jdbc4.LibPQFactory</property>
<property name="connection.sslcert">${db.auth.dir}/awips.crt</property>
<property name="connection.sslkey">${db.auth.dir}/awips.pk8</property>
<property name="connection.sslrootcert">${db.auth.dir}/root.crt</property>
<property name="connection.release_mode">
after_transaction
</property>
<property name="jdbc.batch_size">20</property>
<!-- Optional Hibernate Configuration Properties -->
<!-- Write all SQL statements to console -->
<property name="hibernate.show_sql">false</property>
<!-- Pretty print the SQL in the log and console -->
<property name="hibenate.format_sql">false</property>
<!-- If turned on, Hibernate will generate comments inside the SQL, for easier
debugging, defaults to false -->
<property name="hibernate.use_sql_comments">false</property>
<!-- Use c3p0 connection pooling -->
<property name="hibernate.connection.provider_class">com.raytheon.uf.edex.database.DatabaseC3P0ConnectionProvider</property>
<!-- c3p0 Connection Pool Properties -->
<!-- Additional properties may be added to c3p0.properties -->
<property name="hibernate.c3p0.min_size">0</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.acquireRetryAttempts">0</property>
<property name="hibernate.c3p0.testConnectionOnCheckout">true</property>
<property name="hibernate.c3p0.idle_test_period">60</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">10</property>
<!-- Cache Properties -->
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="hibernate.query.plan_cache_max_strong_references">8</property>
<property name="hibernate.query.plan_cache_max_soft_references">16</property>
<!-- TODO: This is a band-aid to prevent edex errors with Hibernate 5.2.
JPA spec does not allow flushing updates outside of a transaction
boundary. Figure out why we need this (RODO #7849) -->
<property name="hibernate.allow_update_outside_transaction">true</property>
</session-factory>
</hibernate-configuration>

View file

@ -0,0 +1,10 @@
root.crt is the root CA certificate used to sign client and server certificates
used with Ignite.
guest.crt and guest.key are the client certificate and private key.
passwords.properties contains the passwords for the keystore and truststore,
this file is read by EDEX on startup.
The baseline versions of these files are for testing purposes only and NOT to
be used in an operational environment!

View file

@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIE2zCCAsMCAhI0MA0GCSqGSIb3DQEBCwUAMDMxDjAMBgNVBAoMBUFXSVBTMRAw
DgYDVQQLDAdUZXN0aW5nMQ8wDQYDVQQDDAZjYXJvb3QwHhcNMjAxMTEzMTU0ODUz
WhcNMzAxMTExMTU0ODUzWjAzMQ4wDAYDVQQKDAVBV0lQUzEQMA4GA1UECwwHVGVz
dGluZzEPMA0GA1UEAwwGY2xpZW50MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
CgKCAgEAuoEEn9bpvCC5Tf6QtTDSiSvdtQyQNv8LGpg8cdqpIITEclaC45KB2vtZ
MaYECIs+uS57jzinaGB/5wW047Uf0KXXZApVArvs5WwXV8zNGCnF9KXZHnacz5XO
UU4uzA40i5SI7YS74amH1dcXpAnJd+EKTH+zZ9sXvQOBP0ZqgRje3xaOHNjzDD0S
V52mj4gLCmQSS16wnfR/uT1TjxN0IYMoJ99yDzs0ZZWqYtRK+3N++ek4PxszbZZZ
PbQ0FS/UV2LzkBp3tFStc9cQDwTpYwa8NR4xQLOv4r8Xqz2rWFfKV5OFiiM6aJdq
D4wgD9tM/jOzPfGRruMsVyjDspdim8DKxavw/OyvxBcfzER0iHqv31iAJ624f+23
8iQ4FoUpU/VTqYfIIabjWrivmd62et18iCaoRBXYsA5Q0pFe18RxfNAquRlSHGP2
1Lrx7kWMAlokRn7+2PpCA2Fx2TTlg4FeltHkqq8/HdEIXBAbsJvRpknP0bj9TQcU
Zv2pvuE5V6pH/F7UPiDVDQ+HJDG4aIcpwy6glz0if/MyoSjSnkzlGWT3aWJLj3cE
rsQGEQFYX7ACY9G/fv+VLR13rn0EpiEcqRsd57imW4HVS5cs3z80jXc6LZfNLxdQ
ngg/JBw9zOx/GJLIsi+Ep+PH87IpTpqadDBnrtDTQLYGs8eRL3cCAwEAATANBgkq
hkiG9w0BAQsFAAOCAgEAc9qdoHGgaVcYvc0Q7YfVryyHxDy9D4BEwk8Vq1jnwxF5
lCiccnZO0vAYwt83V+aI4K9z8IWhdkCaZkMIrZGwkwiUCOlhHTg0xqiyS1QiGwK7
bc6f5t7B/zn8QN0yVUfNsBgnTUSbrwsGd7QndzwIJqTUBrZ1Ir2J+O0lgTT5/x9w
+JZEm4yudJeXBlVOGkg+DQNaSpCM2IGtk+Y1seuBamv2XMBpip02DfKm2MNr66we
9zm/IWFUOgoFn2SgFvD8kqnrIT6DppA4+u1tsCo+rM6emRPCTe4SBq0653x4ZbwX
JMoRWhC+D/GdyxVb7W52DyXyaziZNsaStqd/XNqpQG9FR7hZWwdZ/+fVG+2OlkWj
ZqtvmZA5OoRDGesbNPP7VRv17uEEMbbiW0k4bjsYTjmVQDkMcdgLMooB6n/GMaXi
M2obV6Gz43Ps383VgpMmucLNI+OV12e/mGq0Y4Gg9BD/U0JvyJ1jcxbyJnka+ON8
2LELTnNukN7IHGA75FFvoW5FuPN9wwuaBWyh+MW9qXF7nMNOOWL6hxgzcFoQQwMZ
bcXdXkMWnpkrxocoTPCykxi1KVZhmh+iaV0dwW0KIsblhKlj7JLn1EftHcNMsIbt
ROUId4u/qdnKmCWYjIsSuqjRiMTBThn6LZQKgV60MVN2li8XoJ7ROsuo2MVB78Y=
-----END CERTIFICATE-----

View file

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC6gQSf1um8ILlN
/pC1MNKJK921DJA2/wsamDxx2qkghMRyVoLjkoHa+1kxpgQIiz65LnuPOKdoYH/n
BbTjtR/QpddkClUCu+zlbBdXzM0YKcX0pdkedpzPlc5RTi7MDjSLlIjthLvhqYfV
1xekCcl34QpMf7Nn2xe9A4E/RmqBGN7fFo4c2PMMPRJXnaaPiAsKZBJLXrCd9H+5
PVOPE3Qhgygn33IPOzRllapi1Er7c3756Tg/GzNtllk9tDQVL9RXYvOQGne0VK1z
1xAPBOljBrw1HjFAs6/ivxerPatYV8pXk4WKIzpol2oPjCAP20z+M7M98ZGu4yxX
KMOyl2KbwMrFq/D87K/EFx/MRHSIeq/fWIAnrbh/7bfyJDgWhSlT9VOph8ghpuNa
uK+Z3rZ63XyIJqhEFdiwDlDSkV7XxHF80Cq5GVIcY/bUuvHuRYwCWiRGfv7Y+kID
YXHZNOWDgV6W0eSqrz8d0QhcEBuwm9GmSc/RuP1NBxRm/am+4TlXqkf8XtQ+INUN
D4ckMbhohynDLqCXPSJ/8zKhKNKeTOUZZPdpYkuPdwSuxAYRAVhfsAJj0b9+/5Ut
HXeufQSmIRypGx3nuKZbgdVLlyzfPzSNdzotl80vF1CeCD8kHD3M7H8YksiyL4Sn
48fzsilOmpp0MGeu0NNAtgazx5EvdwIDAQABAoICAHk93i+6mn/+FfiqAJCJiJQ7
vAkyfZ4C9sj3JnQtXb0SElLyAmzGlTwyIa2w6vZS7xebLB/TCKFF+l/Iyestl90f
soIKZXE9kacjOZmOPdXzcgi0uAyhtxcLn/AjDzEAGxCSIuGlZC4y82cESQ4OfrY7
yWIpsgtV1ny9howHzrzV2izUkNYYAwh1uzLR/bFZEzRSEcKFb/N/OnjFcUiVsO0I
QlaJX7CfIFTZksZkk8obLvRvtGzx1eDr2F/Qgfsz+KpGXWfUjPTiB1BDAuGAo+gI
PNmbIxGYvkJ9T3m2wWjQyW1dLXa7qADOTdiFk2I7gjXOjjs6iyZR8EVI7s9usl7I
I8/Hkg3jcMV53v4/0j51qaDGx+54J//rN/CCnZ17uP6cWX8ftLC76rSTK+KzqRUA
0GFnNbpaHMCMwADpYUJzNR8SB7PNJYJ7cauaJQInfYU5sv0tsiY2R70SxdBuRf3t
uW9hzDsoI5agOZ2271plW95wczHBsadn9H5NfMaQmbHomPr5dQvBvmbEUaQI2wEe
ugWqFV+A1abbv9EuWguox/yDZu93jYvxrelAuxjnaAPrbUgIAw+ER3kSX3a6NTco
k+eaUuipmbQvwfIwrAlKDnRarEpn3jx82pUWPx1YWgVCKGaDJH0wrEiwZQqxaXaF
fPVLlaLtru0rmEatXfKBAoIBAQD22qEU6aqovJGXG9JrQOzG/cErk1UTmXHUZNDY
ZdO/AHLLw/hRYHlprNuGRTl8MT6wC8hmCcdQYTl2vQslSdYef6BrVmltQPJ9QxZI
wgjQ9z/f4HXDDxd/CXmIHgcZOuIy1YU/boss3Xe/I2VFzHPxMe64EpNvo6TJcv1y
4Wub23Ww0+VjQ4taYPx5c1JlLJh7gojXzi/CyI8XgaW9fT+gJLfOhkF4IufXFyjc
yqRVsZ5FIG2qmUQ6kLJA4h4QvCbxZF2If94yON5o17k5+2Ss1DXulxOHLDQP9G7V
7g8pXr0HpR6dUzhMeTd2LZnD+1AL6LdMqH2olTVUF7iVm2BHAoIBAQDBafp1tGQK
5fLEP7odK6OJuserg8fn4nxUWzUiTLIxlSUBhJEqjn7e5tdGaP7HvAHttus18MyF
fXTBor41VzNf3EN2W8Nfe5H34u5TUnUQNi0szD8ZoVRDKKeviWZ0E+1zy0FVuf43
2wKnrlHz7qe3KB5dygRO25wFaZzen4l8gIzyolYVsQS+LBmbb1HePe0qeL3Dd50D
7CZBlb6Y0BskhYLO4VXhF2aEilwdMHRe7Ni2CKlgW9rruGyS1zjUCz8lRSo/FF58
oY/7B5tWZuXBtBEB5C7Um9vibGWC5+fiv1mPouhR1SJ2qSBpGRIlb5ZMbp1T+V3L
ep7MySj49/9RAoIBAGUOGXVjNw7+qydOJ3TqzkOkLAk3tlNgtL27S9faz7VYbKZI
IobF1M5TCkdMXX0e98e/+xjyldqtAoY+W6q3MGWp37UxWdV1ChAHf77nWA6buVVg
ITVqHzdNXKhBiqxkc6dVy8es7GLAgz4HMnVBfpFV3KEUUbEZL+OcJG98Ir5aODLc
fAKH6ytjmtfpQujSOdYOGREnglveGN4JoB0TghGAFpMAWRriR0DBZWQFvQKrxNwN
q3d0aP8Er0RqjN5S+CpH6RZxKjgrGbmX3mcDKDKsaSu0QzVJ/kIt0ZXYb/KCqyXP
Ddpf8CM2WGMTxef6IMnPSgKi01ZJRtyXHWR5iA8CggEBAKSdsakqnpdT/VqgrqQT
Nz6LNVQ6dhNbhdw6QK/vvR5MRVHUZcVlwH+w03q+9FJFJxMOw4SGbVwUWiJQhDlb
/YLSMqzzDwceYi8r+xH5tV7V7X8aW35R/Cio2oehlwymxUvvq6zt/3vEsK7MxD2s
WxydTbMftKj1awaETBqCiH7p3ozINCKEJnhBio3roi9YX5ntZ/2MuZvUCv95Ft5z
CRb9d0bjLLfGtd+K7zl8ux7r0Mql9prnsx07O1WDTn/TDqyHAJztljnXPHc4kzJn
o5dIzczhTCZyfSRqg79157vqhqykx7yWfZ2m9sncp8ArCC4HW2pUbEs6ExxS/cdh
M/ECggEBANEDWMkUaPrwgUiThAl3zj97k4gobIRZf6fp35LdZjhA3VAADGv/L4Yt
zHNxtKOO9h6sMX61jD/7BJ1RPqahgMsxUcG/DabfIeu7NusunTIyuquN8AgwgUKS
HZA98Lj8Ea/Xeac46OPWSbXLNaS6Vc47DbxqnTWjySSc16mLOxmls3NFB++sf0o8
8jk2zMqTnaz2tlRe6PO4fwWIFhjtBPdkUCAZ/jUQ7Ym72JSAkaWrLIqJFhIjuhCb
6na5HN0CGbwUEB12do6aQIQ7paV5gKn044lhI98T9M5+Rz7zXPLfAoLxCqVeCAyM
FVtawPpck3F1bQwimvE+pfP0+XJhLqA=
-----END PRIVATE KEY-----

View file

@ -0,0 +1,2 @@
a2.ignite.keystore.password=TFBlX9gsPm0=
a2.ignite.truststore.password=TFBlX9gsPm0=

View file

@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFOTCCAyGgAwIBAgIJAOz0RCYTMDmCMA0GCSqGSIb3DQEBCwUAMDMxDjAMBgNV
BAoMBUFXSVBTMRAwDgYDVQQLDAdUZXN0aW5nMQ8wDQYDVQQDDAZjYXJvb3QwHhcN
MjAxMTEzMTU0NzEwWhcNMzAxMTExMTU0NzEwWjAzMQ4wDAYDVQQKDAVBV0lQUzEQ
MA4GA1UECwwHVGVzdGluZzEPMA0GA1UEAwwGY2Fyb290MIICIjANBgkqhkiG9w0B
AQEFAAOCAg8AMIICCgKCAgEAnsWmnwIUEXg4BTBqr1datXTKDhgbSZVecE8M75U+
8U8boKXy7IcOa2V8SL0fSa23HIUok03Ed7ATxfRSriU2oEaPMBgovUd+kZ1931ru
AMERMg9wbJa9/cQFWhkwqV8XvOH99xV3OtbHQqkLOvXJk239bJNR3q4/C4poKusY
15elhMBWEqIUrAMkK9adn9uKX8DZK3IhFW1oVH/HTu5uBnz1q5GfsogYU3qapLqo
Ob65iH20m6bmUMbsMbPSMns8D9Wkb3Z+tNZilIBvZKVSnhIyUOx+IQgpH/aFdUpQ
otLykFc78UzF6fjTuh49HAshcjGsLjHRg7vuagClmdjNds+Xm6+Byeuv2YUD371p
wkDUDjhAK7VApvBdMANTlxVON67oRqCj9/JKkRhJyNL04+JnXSBVOoa/eAhwMRA/
TnKwfI/w49AZoy09ip3xsZ3f9x/ssP2608AIBVTknFX/CdxMsIhMt4hZlqUzNUlP
D4hwWsRg0Vgb4j+o8rqIjh+v4t3v8adOumi7h8nsUQYiwPrfr/RIrtRnQjblr1PY
vpXiJNm8hf6de+VldrLLV5bk6UPU/ik9fPRf6HwvAI5Y6oQTF93pZCtgD9I09CXn
zyo7veSK/KrLJO4Wv50RpIwn1weJ6grz6syUSpXCbux6Igu/ObcrszdIb+vDahX0
nesCAwEAAaNQME4wHQYDVR0OBBYEFFL1dmRTdXNfSXj2Dj1/KDybI656MB8GA1Ud
IwQYMBaAFFL1dmRTdXNfSXj2Dj1/KDybI656MAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggIBABtBApfuRTxEbOMFv6k8+EQATNgjIbuwjcs2ZwUvS5zl3xKI
rNTmTHkLseKXVXMTa8+0SjttrTVKb74dwB5pppqAYejLLlfqEMz0Vq/GjhtkW3MX
b4AEcLdN/oYmPYrzBxwUXt9lBwauDNFq9SDGdIewKPr2yoN58kBBB2y3BeCILHiH
g0Q7OxrJgM6GuD6ikMI6VHHXSRY5jn7JnA6WkmSUBI8tvA95Hdz750OZFtKPZqRA
KykuFOxg8J0EXnQgbGjQiMTePwZjvHcB15bPEyHF7LVUNKKg44TnI7Wf2lFcHB0N
+Eccu+ABXPW3jObq2hMpZHxB62I22VgjzQ6lTqM+4mJ0xpKSX79WzNYvBf/wZMuN
EEkZcuiNNMPJ3pVwQraLHWoYZ3LTTzbleUgcrfFOyl1+HIZ/o2Uzll9kS06D4/KN
l235PW+irCex35u1s+4X7G7hWSKFy2ZVPEpppBhtaF3bvAx4Oo2njse8MtlN6XNz
F70YerEvH+w9rXyhbVA87hOOz4Jm8eblIxPDn+59FEZ/m/3gR22dTfe4L7o9NfvX
SvoHVbrz0Bf+S0NZOblqQ4gwM3KjceSkWz19ZmAdjtUy6M3VIPQZYMvlkuUmeHI3
Rvni9txlRYV4G6tzH93DhWsSz6fY5VaFBPd6wxGxZq9QJ7UHrslx8Mweu/1x
-----END CERTIFICATE-----

View file

@ -0,0 +1,24 @@
-----BEGIN CERTIFICATE-----
MIIEBzCCAu8CCQCLCVKLLCRALDANBgkqhkiG9w0BAQsFADAzMQ4wDAYDVQQKDAVB
V0lQUzEQMA4GA1UECwwHVGVzdGluZzEPMA0GA1UEAwwGY2Fyb290MCAXDTIyMDEz
MTE3MTkzMVoYDzIxMjEwMTMxMTcxOTMxWjBWMQswCQYDVQQGEwJYWDEVMBMGA1UE
BwwMRGVmYXVsdCBDaXR5MQ4wDAYDVQQKDAVBV0lQUzEQMA4GA1UECwwHVGVzdGlu
ZzEOMAwGA1UEAwwFZ3Vlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
AQC9GC+8Nhj8a6y4k8uwIIlVo6w7J8zEfeJtDP8++cj8srbgw77guCc0gkITrMm+
P0nIkSJxxUaIj++E75CKampAkcYH6hPFU4hOQJWL2QTRlV7VhoyFto8jXF8YGV88
6f/Z2UPAwW9dii9HdFz1oYJTuSSDzBBQkst1/2JxcA28WncJ95QZf7t1PKNrLwzy
SkPbjgaUww64FrQp2AXP6KHTR53S1x/Mve4fp7y+rufkByrJIBxVI3wGLADkVinW
5avZAhRBUZ0DCkRcR+1um6vZWwqqsRRdu9W/LTi3Ww98DJGTeS1Uc2mYiGKz1lSU
pYLm5e8ffUO6mJU70LaPQfuv37ABYm8ZdX3JuKlB9GWuHZv9rm1Dgp/MXv8DzuvN
x5bdbGKxxyl1QDNa3T9AWxLtKJviPDgGKyisLxMuNWRJcfa4a2QkF/b8x9PfaSrB
OsprEdpMQe5jdMN2OvFIAyk9lyi2nLkyocVneAVAx0OuZzbpQMRT2bl0UMVjyh+5
UoE/MnNVRKxxkfsaUEPSSz4ZjjWHVIoTm6Cmvsc58Qwv4KddG5QttuXqWnFnxnkk
+fso3bNLG1cFmIqwKzSH15iIvY3gGvgiDuj4op1RfQ2Idejkb0WjOJNgIHfxFdTr
ZkO9AD9i/b4Gw14t1dLq5Jdk1SLg4Huz3SQHSbv91Bd9AwIDAQABMA0GCSqGSIb3
DQEBCwUAA4IBAQBfBzo/6E6x2wL0+TduYzCL3iueGQaZPxg1g5aqa4JtWCu+ZIsj
8rpYlJTQYBjSAveYe/6eu1oQlZgKDHLEy0GmmCZiN4rp/xDL9dy9SuFaEorgF2Ue
sJnxMSODgYMMNti0wCXmztTSy4h/Eo6yLQvr/wvcQqU8eo19jUoMT9jloiM/qhPr
3Mm2jTY/amdqLNlwHHmd7KaD3xxKJ/khM6d4HTLhoSSTz32MEYIT+KBb3lUjaUjC
N6d2knROJKJDMxamNROc1M5z+iweeEdp//KJ/zDVRlawfG2Q1vEf5hIuwrkLVMnm
WMTdYqJ/r1FQLWAzJn++pwwxzhYyho6vlN/V
-----END CERTIFICATE-----

View file

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC9GC+8Nhj8a6y4
k8uwIIlVo6w7J8zEfeJtDP8++cj8srbgw77guCc0gkITrMm+P0nIkSJxxUaIj++E
75CKampAkcYH6hPFU4hOQJWL2QTRlV7VhoyFto8jXF8YGV886f/Z2UPAwW9dii9H
dFz1oYJTuSSDzBBQkst1/2JxcA28WncJ95QZf7t1PKNrLwzySkPbjgaUww64FrQp
2AXP6KHTR53S1x/Mve4fp7y+rufkByrJIBxVI3wGLADkVinW5avZAhRBUZ0DCkRc
R+1um6vZWwqqsRRdu9W/LTi3Ww98DJGTeS1Uc2mYiGKz1lSUpYLm5e8ffUO6mJU7
0LaPQfuv37ABYm8ZdX3JuKlB9GWuHZv9rm1Dgp/MXv8DzuvNx5bdbGKxxyl1QDNa
3T9AWxLtKJviPDgGKyisLxMuNWRJcfa4a2QkF/b8x9PfaSrBOsprEdpMQe5jdMN2
OvFIAyk9lyi2nLkyocVneAVAx0OuZzbpQMRT2bl0UMVjyh+5UoE/MnNVRKxxkfsa
UEPSSz4ZjjWHVIoTm6Cmvsc58Qwv4KddG5QttuXqWnFnxnkk+fso3bNLG1cFmIqw
KzSH15iIvY3gGvgiDuj4op1RfQ2Idejkb0WjOJNgIHfxFdTrZkO9AD9i/b4Gw14t
1dLq5Jdk1SLg4Huz3SQHSbv91Bd9AwIDAQABAoICAH7M+D2inTCvV5xSZ3VM7CsE
XVsxvitJKwvrekIVqARkJyQjvxzcAFZCvuKIrKQptmWLhWh7XGf49SnUp71ZzLRN
zFjES8u3zyCCSIYF2ihcnMJcvmBv4h5ZM99qLCYh2BKSkc9xJye3oSquSiPg0Q8p
iOXkclBFj7ApuC7PcDaNB2QkpChRMjhUmFUosOrMiCJzY9Bf2L/zYY7psEQSAGo4
jQm0fjuCZWrOxU+s5A1SDQvfv4AMEn/lBBgZ+2aCjrEvpruCaeJ/AQZMqVfRhfR0
C3wY0MpmSdgwD+dMZd7OYtRcntwRpI7HbkCgCgm/zz7ck3QvQLqg1PnOZI0+NvI6
tAu9skvmKFWp0mZpi96JXGzvwkTfrxWOM0GJDsomPJfOKj1kZucbFhLL4XcTm54W
XrW2UfiUF2jezqmp40HlPB9XMV2bIevmu4fzmdhF/ouJBjcKJmGLSAAqlBsDG18s
nwTKItVR0cXhDyCzWkZKV9tTN1hQn8A/9P2lghgVNgDFs2BOTJCzMjPFkv/5t5FB
Gv5DnxTPQU3zgEASWklBSlLdX+1wAg6m7ZCFox9CHqo3mFJyqJ/YwtKsVEK/Kdr2
6Vc7rSSF1xmGohPeXcykovrxQIlhlMWZZ4Y8q2Dx12lVxr2fqemhWfLKFUk8fOZD
/v8ig9zMrb/5EbU90stZAoIBAQDjhBqb+gBMZwaKQQq67YVw72s+Mwf4WDYzZgEI
emEaYJwfjDxLOp3LLOhixCHUZEEbAMmEQzSZFjvKmsDi/3aVhThLf7LBTrbQecT9
57jIfEIieSbOwPE3F7lNHPzk9C2rjkAKMz88fC/UUvafqW4Oa9ExzkW76LErwJO5
2k5OcFDf8004S1580KArT6pF1CmLKZzhu+81QCiGpXUb2REMtVKR0hMtWyM3YL9a
UIqITetfsRqY87JcD563YUIBgLXIcnJcORxGGW3LS6H0cr5IfAxBrXvkhNfy/XMp
Exd+k2C2G94gFR9r8rzoVDF8v37LDWeJTaiwvNscscPfDyf/AoIBAQDUxKuoIxTz
uo5wY4TtWBK9xXMgerPCyMhD7j8myjp8jjidvl/SgV8dSnOD/fEZzKr1RPP6l7WR
iUL72MRqwVo2adfDSndnzDzl/YfulJqegIz0zGHKgCj3uvfh6ke1gj0VSBMzC2u/
C8Nki6EU0n7n5+zA5M27EPrhvf+Ev114c/6PDtqGvP2H5M7VF3KwsGBCclIWOS19
t8PU3o3tQvGmb4bVBt2KwDhhAM4O1FAzUwGDs9QjpwFTbZkIdiCfWaRo3pnja2Cd
6Qr9vpE+7fHEzoqSzewezseo3fuIT0WKroTKhpL9VwRj5NZikEePLJ8osxjmwmXh
WpGg7yMtcwr9AoIBAQCEoLHSUz5xS22okpnqtiOf3jGqJJ10zBdshv37LzwD4GWi
jmFniVgK5LbjPGpsIbVCRIc0ruiuhSN9zBC9QyahqvNSL7LItVYk2ZdYXAh/9s+m
wPE6fYcgEphWt5tE7ILjCx2R1KX8YHiRUXurP12E0p00Z4aHL/J4Ct8S7IvRde/v
XSmas3T1VbjJBru/0RoWob9uZ9veMvRs6W8HONaTjfAASXIccpBo6+EgiOr44lNf
iSJ0HzvOJtzjEbMkpR9TJkQ8Np6gzpoOdJyIn4sFPir27mbWpAovAEhtnU+I3ej2
v/AQy79xciNlXA8tJYSIYdwFUlwQC0e/xnDkSzWJAoIBAGoS9sVnYA22x0aOxvmQ
/B7yLlhV9AK7GOSNBZzwG0J3oRA7lggbiXDP6lE2rBnBqMWIr94R/mplNSjbw+i5
JqGUGQZ6vJbaAs5inH88RO2ahyuQLXzIciQ3aVeO9lsuaAeRHElJe1kOo0YgOpln
6+7v+F+ecla9u2YJ1Da5NP9VTObDb/zWgctbLiacfwhJlmPqHLSJov1XPWGF5toP
kuv4FA9mUdLXzAPIY/KOtMExs8KWR7/Shd2y+SV3xwHKriW+PJhdsxhm05z3gfAO
rocAtaNE2F/vlSjCKqGla7UdFoTlnKiC1mR69MrExXhCtcKTr2l0J1i3T30dW7tP
7H0CggEBAJo8K8YmOi4fpksyUPr0j9UdrD69Q2bHsMPS9v2kUw/u3DQCpxc0o9Tb
AzqEUBwQjz+yd5Einv2wjn/p4hT8NgHT97Jz748z1pJHWJTecz3gHnZkRmQ1NxZv
CI1TRBx3Eh8T8+CfiwGMgoWQeWEG+FdQMHJQG/sD0SCL2jhzKLeGKYFU7ITbvMD4
ahLcX1hRBM1EuZsUoLo9CDSNFG77nvMPggSAdOiQHhd/EmYuk3fJ5ByNxFySPxUU
RkGQlurco7sjPU2xWts9vB2ws1jkFRZTi7yGu5H2d7qP2ZCuKKY+CnxvXuv3oT5P
Gc1x30eRgBAJVj6koG9CJ4Tb4y7Rp9E=
-----END PRIVATE KEY-----

View file

@ -0,0 +1,25 @@
<configuration debug="false" scan="true" packagingData="true">
<include file="${edex.home}/conf/logback-edex-properties.xml"/>
<include file="${edex.home}/conf/${LOG_APPENDERS_CONFIG}" />
<include file="${edex.home}/conf/logback-edex-loggers.xml" />
<include file="${edex.home}/conf/logback-edex-hibernate-logger.xml" />
<appender name="ThreadBasedLog" class="com.raytheon.uf.common.logback.appender.ThreadBasedAppender">
<defaultAppenderName>asyncConsole</defaultAppenderName>
<appender-ref ref="asyncConsole"/>
</appender>
<logger name="edu">
<level value="WARN" />
</logger>
<logger name="org.apache.cxf">
<level value="ERROR"/>
</logger>
<!-- default logging -->
<root>
<level value="INFO"/>
<appender-ref ref="ThreadBasedLog"/>
</root>
</configuration>

View file

@ -0,0 +1,34 @@
<included>
<!-- Appenders shared by all EDEX logback files. -->
<!-- general application log -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="asyncConsole" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="console" />
</appender>
<!-- Performance log -->
<appender name="PerformanceLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>performance</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="PerformanceLogAsync" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="PerformanceLog" />
</appender>
<appender name="IgniteLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>ignite</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="IgniteLogAsync" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="IgniteLog" />
</appender>
</included>

View file

@ -0,0 +1,35 @@
<included>
<!-- Appenders shared by all EDEX logback files. -->
<!-- general application log -->
<appender name="console" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"/>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="asyncConsole" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="console" />
</appender>
<!-- Performance log -->
<appender name="PerformanceLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>performance</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="PerformanceLogAsync" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="PerformanceLog" />
</appender>
<appender name="IgniteLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>ignite</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="IgniteLogAsync" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="IgniteLog" />
</appender>
</included>

View file

@ -9,6 +9,11 @@
<appender-ref ref="PerformanceLogAsync" /> <appender-ref ref="PerformanceLogAsync" />
</logger> </logger>
<logger name="org.apache.ignite" additivity="false">
<level value="INFO"/>
<appender-ref ref="IgniteLogAsync" />
</logger>
<!-- used by c3p0 --> <!-- used by c3p0 -->
<logger name="com.mchange"> <logger name="com.mchange">
<level value="ERROR"/> <level value="ERROR"/>
@ -28,7 +33,7 @@
<logger name="org.apache.qpid"> <logger name="org.apache.qpid">
<level value="INFO"/> <level value="INFO"/>
</logger> </logger>
<logger name="org.apache.qpid.client.BasicMessageProducer_0_10"> <logger name="org.apache.qpid.jms.JmsMessageProducer">
<level value="WARN"/> <level value="WARN"/>
</logger> </logger>
<logger name="org.apache.xbean.spring"> <logger name="org.apache.xbean.spring">

View file

@ -1,91 +1,98 @@
<configuration debug="false" scan="true" packagingData="true"> <configuration debug="false" scan="true" packagingData="true">
<include file="${edex.home}/conf/logback-edex-properties.xml"/> <include file="${edex.home}/conf/logback-edex-properties.xml"/>
<include file="${edex.home}/conf/${LOG_APPENDERS_CONFIG}" /> <include file="${edex.home}/conf/${LOG_APPENDERS_CONFIG}" />
<include file="${edex.home}/conf/logback-edex-loggers.xml" /> <include file="${edex.home}/conf/logback-edex-loggers.xml" />
<include file="${edex.home}/conf/logback-edex-hibernate-logger.xml" /> <include file="${edex.home}/conf/logback-edex-hibernate-logger.xml" />
<!-- shef log --> <!-- shef log -->
<appender name="shef" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="shef" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>shef</name> <name>shef</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- activeTableChange log --> <!-- activeTableChange log -->
<include file="${edex.home}/conf/logback-activeTableChange.xml"/> <include file="${edex.home}/conf/logback-activeTableChange.xml"/>
<!-- Purge log --> <!-- Purge log -->
<appender name="purge" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="purge" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>purge</name> <name>purge</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- RouteFailedLog log --> <!-- RouteFailedLog log -->
<appender name="RouteFailedLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="RouteFailedLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>unrecognized-files</name> <name>unrecognized-files</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- ShefPerformanceLog log --> <!-- ShefPerformanceLog log -->
<appender name="ShefPerfLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="ShefPerfLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>shef-performance</name> <name>shef-performance</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- Gen Areal FFG log --> <!-- Gen Areal FFG log -->
<appender name="GenArealFFG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="GenArealFFG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>gen_areal_ffg</name> <name>gen_areal_ffg</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- Gen Areal QPE log --> <!-- Gen Areal QPE log -->
<appender name="GenArealQPE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="GenArealQPE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>gen_areal_qpe</name> <name>gen_areal_qpe</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- Trigger log --> <!-- Trigger log -->
<appender name="FailedTriggerLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FailedTriggerLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>trigger</name> <name>trigger</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- ohd log --> <!-- ohd log -->
<appender name="OhdLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="OhdLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>ohd</name> <name>ohd</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- mpe log --> <!-- mpe log -->
<appender name="MpeLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="MpeLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>mpe</name> <name>mpe</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<!-- mpe validate log --> <!-- mpe validate log -->
<appender name="MpeValidateLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="MpeValidateLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>mpe-validate</name> <name>mpe-validate</name>
</rollingPolicy> </rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/> <encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="AuditLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>audit</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender> </appender>
<appender name="ThreadBasedLog" class="com.raytheon.uf.common.logback.appender.ThreadBasedAppender"> <appender name="ThreadBasedLog" class="com.raytheon.uf.common.logback.appender.ThreadBasedAppender">
@ -100,22 +107,18 @@
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="shef" /> <appender-ref ref="shef" />
</logger> </logger>
<logger name="com.raytheon.uf.edex.purgesrv" additivity="false"> <logger name="com.raytheon.uf.edex.purgesrv" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="purge"/> <appender-ref ref="purge"/>
</logger> </logger>
<logger name="com.raytheon.uf.edex.database.purge" additivity="false"> <logger name="com.raytheon.uf.edex.database.purge" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="purge"/> <appender-ref ref="purge"/>
</logger> </logger>
<logger name="com.raytheon.edex.db.purge.DataPurgeRegistry" additivity="false"> <logger name="com.raytheon.edex.db.purge.DataPurgeRegistry" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="purge"/> <appender-ref ref="purge"/>
</logger> </logger>
<logger name="RouteFailedLog" additivity="false"> <logger name="RouteFailedLog" additivity="false">
<level value="WARN"/> <level value="WARN"/>
<appender-ref ref="RouteFailedLog"/> <appender-ref ref="RouteFailedLog"/>
@ -140,31 +143,36 @@
<level value="ERROR"/> <level value="ERROR"/>
<appender-ref ref="FailedTriggerLog"/> <appender-ref ref="FailedTriggerLog"/>
</logger> </logger>
<logger name="com.raytheon.uf.edex.ohd" additivity="false"> <logger name="com.raytheon.uf.edex.ohd" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="OhdLog" /> <appender-ref ref="OhdLog" />
<appender-ref ref="console" /> <appender-ref ref="console" />
</logger> </logger>
<logger name="com.raytheon.uf.edex.plugin.mpe" additivity="false"> <logger name="com.raytheon.uf.edex.plugin.mpe" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="MpeLog" /> <appender-ref ref="MpeLog" />
</logger> </logger>
<logger name="com.raytheon.uf.common.mpe.gribit2" additivity="false"> <logger name="com.raytheon.uf.common.mpe.gribit2" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="MpeLog" /> <appender-ref ref="MpeLog" />
</logger> </logger>
<logger name="com.raytheon.uf.edex.plugin.mpe.test" additivity="false"> <logger name="com.raytheon.uf.edex.plugin.mpe.test" additivity="false">
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="MpeValidateLog" /> <appender-ref ref="MpeValidateLog" />
</logger> </logger>
<!-- default logging --> <logger name="com.raytheon.uf.edex.database.health.DataStorageAuditer" additivity="false">
<root> <level value="INFO"/>
<appender-ref ref="AuditLog" />
</logger>
<logger name="com.raytheon.uf.edex.database.health.DefaultDataStorageAuditListener" additivity="false">
<level value="INFO"/>
<appender-ref ref="AuditLog" />
</logger>
<!-- default logging -->
<root>
<level value="INFO"/> <level value="INFO"/>
<appender-ref ref="ThreadBasedLog"/> <appender-ref ref="ThreadBasedLog"/>
</root> </root>
</configuration> </configuration>

View file

@ -0,0 +1,25 @@
<configuration debug="false" scan="true" packagingData="true">
<include file="${edex.home}/conf/logback-edex-properties.xml"/>
<include file="${edex.home}/conf/${LOG_APPENDERS_CONFIG}" />
<include file="${edex.home}/conf/logback-edex-loggers.xml" />
<include file="${edex.home}/conf/logback-edex-hibernate-logger.xml" />
<appender name="ThreadBasedLog" class="com.raytheon.uf.common.logback.appender.ThreadBasedAppender">
<defaultAppenderName>asyncConsole</defaultAppenderName>
<appender-ref ref="asyncConsole"/>
</appender>
<logger name="edu">
<level value="WARN" />
</logger>
<logger name="org.apache.cxf">
<level value="ERROR"/>
</logger>
<!-- default logging -->
<root>
<level value="INFO"/>
<appender-ref ref="ThreadBasedLog"/>
</root>
</configuration>

View file

@ -2,18 +2,6 @@
<include file="${edex.home}/conf/logback-edex-properties.xml"/> <include file="${edex.home}/conf/logback-edex-properties.xml"/>
<include file="${edex.home}/conf/${LOG_APPENDERS_CONFIG}" /> <include file="${edex.home}/conf/${LOG_APPENDERS_CONFIG}" />
<!-- ProductSrvRequest log -->
<appender name="ProductSrvRequestLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>productSrvRequest</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="ProductSrvRequestLogAsync" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="ProductSrvRequestLog" />
</appender>
<!-- TextDBSrvRequest log --> <!-- TextDBSrvRequest log -->
<appender name="TextDBSrvRequestLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="TextDBSrvRequestLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy"> <rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
@ -39,15 +27,22 @@
<appender-ref ref="ThriftSrvRequestLog" /> <appender-ref ref="ThriftSrvRequestLog" />
</appender> </appender>
<!-- BackupService log -->
<appender name="BackupSvcRequestLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="com.raytheon.uf.common.logback.policy.StdTimeBasedRollingPolicy">
<name>backupSvc</name>
</rollingPolicy>
<encoder class="com.raytheon.uf.common.logback.encoder.UFStdEncoder"/>
</appender>
<appender name="BackupSvcRequestLogAsync" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="BackupSvcRequestLog" />
</appender>
<include file="${edex.home}/conf/logback-edex-loggers.xml" /> <include file="${edex.home}/conf/logback-edex-loggers.xml" />
<logger name="ProductSrvRequestLogger" additivity="false">
<level value="INFO"/>
<appender-ref ref="ProductSrvRequestLogAsync"/>
</logger>
<logger name="TextDBSrvRequestLogger" additivity="false"> <logger name="TextDBSrvRequestLogger" additivity="false">
<level value="INFO"/> <level value="DEBUG"/>
<appender-ref ref="TextDBSrvRequestLogAsync"/> <appender-ref ref="TextDBSrvRequestLogAsync"/>
</logger> </logger>
@ -56,6 +51,11 @@
<appender-ref ref="ThriftSrvRequestLogAsync" /> <appender-ref ref="ThriftSrvRequestLogAsync" />
</logger> </logger>
<logger name="com.raytheon.uf.edex.backupsvc" additivity="false">
<level value="Info"/>
<appender-ref ref="BackupSvcRequestLogAsync" />
</logger>
<logger name="org.hibernate"> <logger name="org.hibernate">
<level value="ERROR"/> <level value="ERROR"/>
</logger> </logger>

View file

@ -0,0 +1,341 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
Refer to edex/modes/README.txt for documentation
-->
<edexModes>
<mode name="ingest">
<exclude>.*request.*</exclude>
<exclude>edex-security.xml</exclude>
<exclude>ebxml.*\.xml</exclude>
<exclude>grib-decode.xml</exclude>
<exclude>grid-staticdata-process.xml</exclude>
<exclude>.*(dpa|taf|nctext).*</exclude>
<exclude>webservices.xml</exclude>
<exclude>ebxml.*\.xml</exclude>
<exclude>.*datadelivery.*</exclude>
<exclude>.*bandwidth.*</exclude>
<exclude>.*sbn-simulator.*</exclude>
<exclude>hydrodualpol-ingest.xml</exclude>
<exclude>grid-metadata.xml</exclude>
<exclude>.*ogc.*</exclude>
<exclude>obs-ingest-metarshef.xml</exclude>
<exclude>ffmp-ingest.xml</exclude>
<exclude>scan-ingest.xml</exclude>
<exclude>cwat-ingest.xml</exclude>
<exclude>fog-ingest.xml</exclude>
<exclude>vil-ingest.xml</exclude>
<exclude>preciprate-ingest.xml</exclude>
<exclude>qpf-ingest.xml</exclude>
<exclude>fssobs-ingest.xml</exclude>
<exclude>cpgsrv-spring.xml</exclude>
<exclude>ohd-common-database.xml</exclude>
<exclude>satpre-spring.xml</exclude>
<exclude>ncgrib-file-endpoint.xml</exclude>
<exclude>text-subscription.*</exclude>
</mode>
<mode name="ingestGrib">
<include>time-common.xml</include>
<include>auth-common.xml</include>
<include>python-common.xml</include>
<include>grib-decode.xml</include>
<include>grid-staticdata-process.xml</include>
<include>level-common.xml</include>
<include>levelhandler-common.xml</include>
<include>grid-common.xml</include>
<include>gridcoverage-common.xml</include>
<include>parameter-common.xml</include>
<include>persist-ingest.xml</include>
<include>management-common.xml</include>
<include>database-common.xml</include>
<include>event-ingest.xml</include>
<includeMode>statsTemplate</includeMode>
</mode>
<mode name="request">
<include>.*request.*</include>
<include>.*common.*</include>
<exclude>grid-metadata.xml</exclude>
<exclude>event-datadelivery-common.xml</exclude>
<exclude>.*ogc.*</exclude>
<exclude>.*dpa.*</exclude>
<exclude>ohd-common-database.xml</exclude>
<exclude>satpre-spring.xml</exclude>
</mode>
<mode name="ingestRadar">
<includeMode>ingest</includeMode>
<includeMode>pluginExclude</includeMode>
<includeMode>goesrExclude</includeMode>
<exclude>.*(airmet|atcf|aww|convsigmet|gfe|grid|hydro|intlsigmet|modis|ncpafm|ncuair|profiler|netcdf-grid).*</exclude>
<exclude>.*(nonconvsigmet|satellite|sgwh|ssha|stats|stormtrack|textlightning_ep|useradmin|wcp).*</exclude>
<exclude>purge-spring.*</exclude>
</mode>
<mode name="ingestGoesR">
<includeMode>ingest</includeMode>
<includeMode>pluginExclude</includeMode>
<includeMode>radarExclude</includeMode>
<exclude>purge-spring.*</exclude>
</mode>
<mode name="ingestGrids">
<includeMode>ingest</includeMode>
<includeMode>pluginModelSoundingExclude</includeMode>
<includeMode>radarExclude</includeMode>
<includeMode>goesrExclude</includeMode>
<exclude>purge-spring.*</exclude>
</mode>
<mode name="pluginExclude">
<exclude>^(acars|activetable|bufr|ccfp|climate|convectprob|cwa|geodb|goessounding|lma|lsr|modelsounding|nucaps|obs|poes|redbook|sfcobs|svrwx|tc|vaa|viirs|warning).*</exclude>
</mode>
<mode name="pluginModelSoundingExclude">
<exclude>^(acars|activetable|bufr|ccfp|climate|convectprob|cwa|geodb|goessounding|lma|lsr|nucaps|obs|poes|redbook|sfcobs|svrwx|tc|vaa|viirs|warning).*</exclude>
</mode>
<mode name="goesrExclude">
<exclude>^(binlightning|dmw|goesr|glm).*</exclude>
</mode>
<mode name="radarExclude">
<exclude>^radar.*</exclude>
</mode>
<mode name="statsTemplate" template="true">
<include>event-common.xml</include>
<include>eventbus-common.xml</include>
<include>stats-common.xml</include>
</mode>
<!-- HYDRO SERVER -->
<mode name="ingestHydro">
<include>distribution-spring.xml</include>
<include>manualIngest-common.xml</include>
<include>manualIngest-spring.xml</include>
<include>shef-ingest.xml</include>
<include>persist-ingest.xml</include>
<include>obs-common.xml</include>
<include>obs-ingest.xml</include>
<include>obs-ingest-metarshef.xml</include>
<include>metartohmdb-plugin.xml</include>
<include>metartoclimate-plugin.xml</include>
<include>pointdata-common.xml</include>
<include>shef-common.xml</include>
<include>ohd-common-database.xml</include>
<include>ohd-common.xml</include>
<include>alarmWhfs-spring.xml</include>
<include>arealffgGenerator-spring.xml</include>
<include>arealQpeGen-spring.xml</include>
<include>DPADecoder-spring.xml</include>
<include>dqcPreprocessor-spring.xml</include>
<include>floodArchiver-spring.xml</include>
<include>freezingLevel-spring.xml</include>
<include>hpeDHRDecoder-spring.xml</include>
<include>ihfsDbPurge-spring.xml</include>
<include>logFilePurger-spring.xml</include>
<include>mpeFieldgen-spring.xml</include>
<include>mpeHpeFilePurge-spring.xml</include>
<include>mpeLightningSrv-ingest.xml</include>
<include>mpeProcessGrib-spring.xml</include>
<include>ohdSetupService-spring.xml</include>
<include>pointDataRetrievel-spring.xml</include>
<include>q2FileProcessor-spring.xml</include>
<include>satpre-spring.xml</include>
<include>purge-logs.xml</include>
<exclude>fssobs-ingest.xml</exclude>
<exclude>fssobs-common.xml</exclude>
<include>ndm-ingest.xml</include>
</mode>
<mode name="requestHydro">
<include>ohd-common-database.xml</include>
<include>ohd-common.xml</include>
<include>database-common.xml</include>
<include>ohd-request.xml</include>
<include>alertviz-request.xml</include>
<include>auth-common.xml</include>
<include>auth-request.xml</include>
<include>persist-request.xml</include>
<include>menus-request.xml</include>
<include>utility-request.xml</include>
<include>management-common.xml</include>
<include>management-request.xml</include>
<include>manualIngest-common.xml</include>
<include>manualIngest-request.xml</include>
<include>auth-request.xml</include>
<include>persist-request.xml</include>
<include>site-common.xml</include>
<include>site-request.xml</include>
<include>time-common.xml</include>
<include>units-common.xml</include>
<include>event-common.xml</include>
<include>eventbus-common.xml</include>
<include>edex-request.xml</include>
<include>request-service.xml</include>
<include>request-service-common.xml</include>
</mode>
<!-- DECISION ASSITANCE TOOLS -->
<mode name="ingestDat">
<include>utility-common.xml</include>
<include>geo-common.xml</include>
<include>time-common.xml</include>
<include>ffmp-ingest.xml</include>
<include>ffmp-common.xml</include>
<include>scan-ingest.xml</include>
<include>scan-common.xml</include>
<include>cwat-ingest.xml</include>
<include>cwat-common.xml</include>
<include>fog-ingest.xml</include>
<include>fog-common.xml</include>
<include>vil-ingest.xml</include>
<include>vil-common.xml</include>
<include>preciprate-ingest.xml</include>
<include>preciprate-common.xml</include>
<include>qpf-ingest.xml</include>
<include>qpf-common.xml</include>
<include>hydrodualpol-ingest.xml</include>
<include>cpgsrv-spring.xml</include>
<include>persist-ingest.xml</include>
<include>binlightning-common.xml</include>
<include>parameter-common.xml</include>
<include>gridcoverage-common.xml</include>
<include>grid-common.xml</include>
<include>database-common.xml</include>
<include>radar-common.xml</include>
<include>text-common.xml</include>
<include>level-common.xml</include>
<include>levelhandler-common.xml</include>
<include>pointdata-common.xml</include>
<include>bufrua-common.xml</include>
<include>shef-common.xml</include>
<include>satellite-common.xml</include>
<include>satellite-dataplugin-common.xml</include>
<include>ohd-common-database.xml</include>
<include>ohd-common.xml</include>
<include>management-common.xml</include>
<include>obs-common.xml</include>
<include>fssobs-ingest.xml</include>
<include>fssobs-common.xml</include>
<include>manualIngest-common.xml</include>
<include>dataaccess-common.xml</include>
<exclude>nctext-common.xml</exclude>
<includeMode>statsTemplate</includeMode>
</mode>
<!-- EBXML REGISTRY / DATA DELIVERY -->
<mode name="ebxmlRegistry" template="true">
<includeMode>statsTemplate</includeMode>
<include>database-common.xml</include>
<include>dataaccess-common.xml</include>
<include>time-common.xml</include>
<include>auth-common.xml</include>
<include>auth-request.xml</include>
<include>management-common.xml</include>
<include>event-common.xml</include>
<include>purge-logs.xml</include>
<include>ebxml.*\.xml</include>
<include>eventbus-common.xml</include>
<include>edex-security.xml</include>
<include>geo-common.xml</include>
<include>utility-request.xml</include>
<include>utility-common.xml</include>
<include>request-service</include>
</mode>
<mode name="registry">
<includeMode>ebxmlRegistry</includeMode>
<includeMode>dataDeliveryTemplate</includeMode>
<include>datadelivery-wfo-cron.xml</include>
<include>bandwidth-datadelivery-.*-wfo.xml</include>
<exclude>.*datadelivery.*-ncf.*</exclude>
<exclude>harvester-.*</exclude>
<exclude>crawler-.*</exclude>
</mode>
<mode name="centralRegistry">
<includeMode>ebxmlRegistry</includeMode>
<includeMode>dataDeliveryTemplate</includeMode>
<include>stats-ingest.xml</include>
<include>bandwidth-datadelivery-.*-ncf.xml</include>
<exclude>.*datadelivery.*-wfo.*</exclude>
</mode>
<mode name="dataDeliveryTemplate" template="true">
<include>.*datadelivery.*</include>
<include>.*bandwidth.*</include>
<exclude>.*bandwidth.*-inmemory.*.xml</exclude>
<exclude>dpa-datadelivery.xml</exclude>
<include>satellite-common.xml</include>
<include>satellite-dataplugin-common.xml</include>
<include>goessounding-common.xml</include>
<include>grid-common.xml</include>
<include>grid-metadata.xml</include>
<include>gridcoverage-common.xml</include>
<include>parameter-common.xml</include>
<include>level-common.xml</include>
<include>levelhandler-common.xml</include>
<include>pointdata-common.xml</include>
<include>obs-common.xml</include>
<include>madis-common.xml</include>
<include>persist-ingest.xml</include>
</mode>
<mode name="dataProviderAgentTemplate" template="true">
<include>manualIngest*</include>
<include>time-common.xml</include>
<include>distribution-spring.xml</include>
<include>persist-ingest.xml</include>
<include>auth-common.xml</include>
<include>database-common.xml</include>
<!-- Remote connect to registry services -->
<include>datadelivery-handlers.xml</include>
<include>datadelivery-handlers-impl.xml</include>
<include>request-router.xml</include>
<include>^utility-request.xml</include>
<include>dpa-datadelivery.xml</include>
<include>geo-common.xml</include>
<include>request-service.*</include>
<include>utility-common.xml</include>
<include>localization-http-request.xml</include>
<!-- Don't want this for DPA, we don't need a local registry -->
<exclude>harvester-datadelivery-standalone.xml</exclude>
<exclude>datadelivery-standalone.xml</exclude>
<!-- OGC/DPA services -->
<include>ogc-common.xml</include>
<include>wfs-ogc-request.xml</include>
<include>wfs-ogc-rest-request.xml</include>
<include>wfs-ogc-soap-request.xml</include>
<include>wfs-ogc-soap-wsdl.xml</include>
<!-- Purge OGC/DPA registred plugins -->
<include>purge-spring.xml</include>
<include>purge-spring-impl.xml</include>
<include>purge-logs.xml</include>
</mode>
<!-- MADIS implmentation of dataprovideragent -->
<mode name="dataprovideragent">
<includeMode>dataProviderAgentTemplate</includeMode>
<include>pointdata-common.xml</include>
<include>madis-common.xml</include>
<include>madis-ogc.xml</include>
<include>madis-ogc-registry.xml</include>
</mode>
<!-- Utilized by BandwidthUtil for creating an in memory bandwidth manager -->
<mode name="inMemoryBandwidthManager">
<!-- This is not an edex runtime mode and is used in memory -->
<include>bandwidth-datadelivery-inmemory-impl.xml</include>
<include>bandwidth-datadelivery.xml</include>
<include>bandwidth-datadelivery-wfo.xml</include>
</mode>
</edexModes>

View file

@ -0,0 +1,425 @@
#!/bin/bash
# Temporary, only be used until we get DOD certs.
# rewrite from 16.1.1
SETUP_ENV=/awips2/edex/bin/setup.env
source $SETUP_ENV
if [[ -z $JAR_LIB ]]
then
JAR_LIB="/awips2/edex/lib"
fi
FIND_JAR_COMMAND="find $JAR_LIB -name *.jar"
JAR_FOLDERS=`$FIND_JAR_COMMAND`
#Recursively search all library directories for jar files and add them to the local classpath
addSep=false
for i in $JAR_FOLDERS;
do
if [[ "$addSep" == true ]];
then
LOCAL_CLASSPATH=$LOCAL_CLASSPATH":"$i
else
LOCAL_CLASSPATH=$i
addSep=true
fi
done
JAVA_BIN=/awips2/java/bin/java
securityDir=/awips2/edex/conf/security
securityPropertiesDir=/awips2/edex/conf/resources/site/$AW_SITE_IDENTIFIER
securityProps=$securityPropertiesDir/security.properties
publicKeyFile=PublicKey.cer
keystore=keystore.jks
truststore=truststore.jks
encryptionKey=encrypt
defaultPassword=password
defaultOrg=NOAA
defaultOrgUnit=NWS
defaultLoc=Silver_Spring
defaultState=MD
defaultSAN=ip:$(hostname --ip-address)
infoCorrect=
function resetVariables {
orgUnit=
org=
loc=
state=
country=
ext=
keystorePw=
truststorePw=
keyPw=
cn=
}
function usage {
echo "Usage:"
echo -e "\t-h\t\tDisplays usage"
echo -e "\t-g\t\tGenerate keystore, truststore, and security properties file"
echo -e "\t-a [keyFile]\tAdds a public key to the trust store"
echo -e "\t-d [keyFile]\tDeletes a public key from the trust store"
}
function generateKeystores() {
echo "Generating keystores"
if [[ ! -d $securityDir ]]; then
mkdir $securityDir
fi
if [[ ! -d $securityPropertiesDir ]]; then
mkdir -p $securityPropertiesDir
fi
while [[ $infoCorrect != "yes" ]];
do
infoCorrect=
resetVariables
while [[ -z $keystorePw ]];
do
echo -n "Enter password for $keystore [$defaultPassword]: "
read keystorePw
if [[ -z $keystorePw ]];
then
echo -e "\tUsing default password of $defaultPassword"
keystorePw=$defaultPassword
elif [[ ${#keystorePw} -lt 6 ]];
then
echo -e "\tPassword must be at least 6 characters."
keystorePw=
fi
done
while [[ -z $keyAlias ]];
do
if [[ -z $CLUSTER_ID ]]
then
HOST=$(hostname -s)
CLUSTER_ID=${HOST:$(expr index "$HOST" -)} | tr '[:lower:]' '[:upper:]'
fi
if [[ -z $CLUSTER_ID ]]
then
CLUSTER_ID=$AW_SITE_IDENTIFIER
fi
echo -n "Enter keystore alias [$CLUSTER_ID]: "
read keyAlias
if [[ -z $keyAlias ]];
then
echo -e "\tUsing default value of $CLUSTER_ID"
keyAlias=$CLUSTER_ID
else
CLUSTER_ID=$keyAlias
fi
# Write the cluster ID to the setup.env file
echo "CLUSTER_ID set to: $CLUSTER_ID"
sed -i "s@^export CLUSTER_ID.*@export CLUSTER_ID=$CLUSTER_ID@g" $SETUP_ENV
done
while [[ -z $keyPw ]];
do
echo -n "Enter password for key $keyAlias [$defaultPassword]: "
read keyPw
if [[ -z $keyPw ]];
then
echo -e "\tUsing default password of $defaultPassword"
keyPw=$defaultPassword
elif [[ ${#keyPw} -lt 6 ]];
then
echo -e "\tPassword must be at least 6 characters."
keyPw=
fi
done
while [[ -z $truststorePw ]];
do
echo -n "Enter password for $truststore [$defaultPassword]: "
read truststorePw
if [[ -z $truststorePw ]];
then
echo -e "\tUsing default password of $defaultPassword"
truststorePw=$defaultPassword
elif [[ ${#truststorePw} -lt 6 ]];
then
echo -e "\tPassword must be at least 6 characters."
truststorePw=
fi
done
while [ -z $cn ];
do
echo -n "Enter canonical name/IP [$(hostname)]: "
read cn
if [ -z $cn ];
then
echo -e "\tUsing default value of $(hostname)"
cn=$(hostname)
fi
done
while [[ -z $org ]];
do
echo -n "Enter Organization (O) [$defaultOrg]: "
read org
if [[ -z $org ]];
then
echo -e "\tUsing default value of $defaultOrg"
org=$defaultOrg
fi
done
while [[ -z $orgUnit ]];
do
echo -n "Enter Organizational Unit (OU) [$defaultOrgUnit]: "
read orgUnit
if [[ -z $orgUnit ]];
then
echo -e "\tUsing default value of $defaultOrgUnit"
orgUnit=$defaultOrgUnit
fi
done
while [[ -z $loc ]];
do
echo -n "Enter Location (L) [$defaultLoc]: "
read loc
if [[ -z $loc ]];
then
echo -e "\tUsing default value of $defaultLoc"
loc=$defaultLoc
else
loc=${loc// /_}
fi
done
while [[ -z $state ]];
do
echo -n "Enter State (ST) (2 letter ID) [$defaultState]: "
read state
if [[ -z $state ]];
then
echo -e "\tUsing default value of $defaultState"
state=$defaultState
fi
done
while [[ -z $country ]];
do
echo -n "Enter Country (C) (2 letter ID) [US]: "
read country
if [[ -z $country ]];
then
echo -e "\tUsing default value of US"
country=US
fi
done
while [[ -z $ext ]];
do
echo "Subject Alternative Names (SAN): Comma Delimited!"
echo "for FQDN enter: dns:host1.mydomain.com,dns:host2.mydomain.com, etc"
echo "for IP enter: ip:X.X.X.X,ip:Y.Y.Y.Y, etc"
echo -n "Enter SAN [$defaultSAN]: "
read ext
if [[ -z $ext ]];
then
echo -e "\tUsing default value of $defaultSAN"
ext=$defaultSAN
fi
done
echo
echo " ______________Summary______________"
echo " Keystore: $securityDir/$keystore"
echo " Keystore Password: $keystorePw"
echo " Truststore: $securityDir/$truststore"
echo "Truststore Password: $truststorePw"
echo " Key Alias: $keyAlias"
echo " Key Password: $keyPw"
echo " SAN: $ext"
echo " CN: $cn"
echo " O: $org"
echo " OU: $orgUnit"
echo " Location: $loc"
echo " State: $state"
echo " Country: $country"
echo
while [[ $infoCorrect != "yes" ]] && [[ $infoCorrect != "y" ]] && [[ $infoCorrect != "no" ]] && [[ $infoCorrect != "n" ]];
do
echo -n "Is this information correct (yes or no)? "
read infoCorrect
infoCorrect=$(echo $infoCorrect | tr '[:upper:]' '[:lower:]')
if [[ $infoCorrect = "yes" ]] || [[ $infocorrect = "y" ]];
then
echo "Information Confirmed"
elif [[ $infoCorrect = "no" ]] || [[ $infoCorrect = "n" ]];
then
echo -e "\nPlease re-enter the information."
resetVariables
else
echo "Please enter yes or no."
fi
done
done
echo "Generating keystore..."
# get rid of an existing key with same name
echo "Checking to see if a key with this alias exists in keystore.....[$keyAlias]!"
keytool -delete -alias $keyAlias -keystore $securityDir/$keystore
# create and add key
keytool -genkeypair -alias $keyAlias -keypass $keyPw -keystore $keystore -storepass $keystorePw -storetype JKS -validity 360 -dname "CN=$cn, OU=$orgUnit, O=$org, L=$loc, ST=$state, C=$country" -keyalg RSA -ext san=$ext
echo -n "Exporting public key..."
exportOutput=`keytool -exportcert -alias $keyAlias -keystore $keystore -file $keyAlias$publicKeyFile -storepass $keystorePw 2>&1`
echo "Done!"
obfuscatedKeystorePassword=`$JAVA_BIN -cp $LOCAL_CLASSPATH com.raytheon.uf.common.security.encryption.AESEncryptor encrypt $encryptionKey $keystorePw 2>&1`
echo "Generating trust store..."
echo "Checking to see if a trusted CA with this alias exists in truststore.....[$keyAlias]!"
keytool -delete -alias $keyAlias -keystore $securityDir/$truststore
keytool -genkey -alias tmp -keypass tempPass -dname CN=foo -keystore $truststore -storepass $truststorePw -storetype JKS
keytool -delete -alias tmp -keystore $truststore -storepass $truststorePw
keytool -import -trustcacerts -file $keyAlias$publicKeyFile -alias $keyAlias -keystore $truststore -storepass $truststorePw
jettyObscuredPassword=`$JAVA_BIN -cp $LOCAL_CLASSPATH org.eclipse.jetty.util.security.Password $keystorePw 2>&1 | grep OBF`
obfuscatedTruststorePassword=`$JAVA_BIN -cp $LOCAL_CLASSPATH com.raytheon.uf.common.security.encryption.AESEncryptor encrypt $encryptionKey $truststorePw 2>&1`
echo -n "Generating security properties file..."
echo "# This file was automatically generated using /awips2/edex/conf/security/keystoreUtil.sh" > $securityProps
echo "java.security.auth.login.config=/awips2/edex/conf/security/realms.properties" >> $securityProps
echo "edex.security.auth.user=$keyAlias" >> $securityProps
echo "edex.security.auth.password=$obfuscatedKeystorePassword" >> $securityProps
echo "edex.security.auth.authorizationType=Basic" >> $securityProps
echo "edex.security.auth.loginService.name=RegistryRealm" >> $securityProps
echo "edex.security.auth.loginService.realm=RegistryRealm" >> $securityProps
echo "edex.security.encryption.key=$encryptionKey" >> $securityProps
echo "edex.security.keystore.path=$securityDir/$keystore" >> $securityProps
echo "edex.security.keystore.alias=$keyAlias" >> $securityProps
echo "edex.security.keystore.password=$obfuscatedKeystorePassword" >> $securityProps
echo "edex.security.keystore.type=JKS" >> $securityProps
echo "edex.security.keystore.algorithm=SunX509" >> $securityProps
echo "edex.security.truststore.path=$securityDir/$truststore" >> $securityProps
echo "edex.security.truststore.password=$obfuscatedTruststorePassword" >> $securityProps
echo "edex.security.truststore.type=JKS" >> $securityProps
echo "edex.security.truststore.algorithm=SunX509" >> $securityProps
echo "edex.security.disableCNCheck=false" >>$securityProps
echo "#The following configuration items are used with the wss4j in/out interceptors" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.file=security/$keystore" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.password=$jettyObscuredPassword" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.type=JKS" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.alias=$keyAlias" >> $securityProps
echo "Done!"
# If we are already in the security directory, we do not
# need to move the files
if [[ $(pwd) != "$securityDir" ]];
then
echo -n "Moving key store and trust store to [$securityDir] ..."
mv $truststore $keystore $securityDir
echo "Done!"
fi
echo "Keystores are located at $securityDir"
echo "The public key for this server is located at $(pwd)/$keyAlias$publicKeyFile"
echo "This file may be disseminated to other registry federation members who wish to interact with this server"
}
function addKey() {
echo "Adding $keyfile to trust store..."
userAlias=
while [ -z $userAlias ];
do
echo -n "Enter alias for [$keyfile]: "
read userAlias
if [ -z $userAlias ];
then
echo "Alias cannot be empty!"
fi
done
# delete any existing cert in the truststore for this alias
echo "Checking to see if a certificate with this alias exists to replace.....[$userAlias]!"
keytool -delete -alias $userAlias -keystore $securityDir/$truststore
# add the cert as a Self Signed CA to truststore
keytool -import -trustcacerts -file $keyfile -alias $userAlias -keystore $securityDir/$truststore
}
function deleteKey() {
echo "Deleting $keyfile from trust store..."
userAlias=
while [ -z $userAlias ];
do
echo -n "Enter alias for [$keyfile]: "
read userAlias
if [ -z $userAlias ];
then
echo "Alias cannot be empty!"
fi
done
keytool -delete -alias $userAlias -keystore $securityDir/$truststore
}
if [ $# -eq 0 ]
then
echo "No arguments supplied"
usage
exit 0
elif [ "$1" = "-g" ]
then
generateKeystores
exit 0
elif [ "$1" = "-a" ]
then
if [ $# -lt 2 ]
then
echo "No key file supplied"
usage
elif [ ! -e $securityDir/$truststore ]
then
echo "Trust store [$securityDir/$truststore] does not exist!"
else
keyfile=$2
addKey
fi
exit 0
elif [ "$1" = "-d" ]
then
if [ $# -lt 2 ]
then
echo "No key file supplied"
usage
elif [ ! -e $securityDir/$truststore ]
then
echo "Trust store [$securityDir/$truststore] does not exist!"
else
keyfile=$2
deleteKey
fi
exit 0
elif [ "$1" = "-usage" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]
then
usage
exit 0
fi

View file

@ -0,0 +1,349 @@
#!/bin/bash
# Now we have DOD certs.
SETUP_ENV=/awips2/edex/bin/setup.env
source $SETUP_ENV
if [[ -z $JAR_LIB ]]
then
JAR_LIB="/awips2/edex/lib"
fi
#Recursively search all library directories for jar files and add them to the local classpath
FIND_JAR_COMMAND="find $JAR_LIB -name *.jar"
JAR_FOLDERS=`$FIND_JAR_COMMAND`
addSep=false
for i in $JAR_FOLDERS;
do
if [[ "$addSep" == true ]];
then
LOCAL_CLASSPATH=$LOCAL_CLASSPATH":"$i
else
LOCAL_CLASSPATH=$i
addSep=true
fi
done
JAVA_BIN=/awips2/java/bin/java
securityDir=/awips2/edex/conf/security
securityPropertiesDir=/awips2/edex/conf/resources/site/$AW_SITE_IDENTIFIER
securityProps=$securityPropertiesDir/security.properties
publicKeyFile=PublicKey.cer
keystore=keystore.jks
truststore=truststore.jks
encryptionKey=encrypt
defaultPassword=password
defaultOrg=NOAA
defaultOrgUnit=NWS
defaultLoc=Silver_Spring
defaultState=MD
defaultSAN=ip:$(hostname --ip-address)
infoCorrect=
function resetVariables {
keystorePw=
truststorePw=
keyPw=
cn=
}
function usage {
echo "Usage:"
echo -e "\t-h\t\tDisplays usage"
echo -e "\t-g [dodcert] [dodkey] \tGenerate keystore, truststore, and security properties file using supplied DoD cert and key"
echo -e "\t-a [keyFile]\tAdds a public key to the trust store"
echo -e "\t-d [keyFile]\tDeletes a public key from the trust store"
}
function generateKeystores() {
echo "Generating keystores"
if [[ ! -d $securityDir ]]; then
mkdir $securityDir
fi
if [[ ! -d $securityPropertiesDir ]]; then
mkdir -p $securityPropertiesDir
fi
while [[ $infoCorrect != "yes" ]];
do
infoCorrect=
resetVariables
while [[ -z $keystorePw ]];
do
echo -n "Enter password for $keystore [$defaultPassword]: "
read keystorePw
if [[ -z $keystorePw ]];
then
echo -e "\tUsing default password of $defaultPassword"
keystorePw=$defaultPassword
elif [[ ${#keystorePw} -lt 6 ]];
then
echo -e "\tPassword must be at least 6 characters."
keystorePw=
fi
done
while [[ -z $keyAlias ]];
do
if [[ -z $CLUSTER_ID ]]
then
HOST=$(hostname -s)
CLUSTER_ID=${HOST:$(expr index "$HOST" -)} | tr '[:lower:]' '[:upper:]'
fi
if [[ -z $CLUSTER_ID ]]
then
CLUSTER_ID=$AW_SITE_IDENTIFIER
fi
echo -n "Enter keystore alias [$CLUSTER_ID]: "
read keyAlias
if [[ -z $keyAlias ]];
then
echo -e "\tUsing default value of $CLUSTER_ID"
keyAlias=$CLUSTER_ID
else
CLUSTER_ID=$keyAlias
fi
# Write the cluster ID to the setup.env file
echo "CLUSTER_ID set to: $CLUSTER_ID"
sed -i "s@^export CLUSTER_ID.*@export CLUSTER_ID=$CLUSTER_ID@g" $SETUP_ENV
done
while [[ -z $keyPw ]];
do
echo -n "Enter password for key $keyAlias [$defaultPassword]: "
read keyPw
if [[ -z $keyPw ]];
then
echo -e "\tUsing default password of $defaultPassword"
keyPw=$defaultPassword
elif [[ ${#keyPw} -lt 6 ]];
then
echo -e "\tPassword must be at least 6 characters."
keyPw=
fi
done
while [[ -z $truststorePw ]];
do
echo -n "Enter password for $truststore [$defaultPassword]: "
read truststorePw
if [[ -z $truststorePw ]];
then
echo -e "\tUsing default password of $defaultPassword"
truststorePw=$defaultPassword
elif [[ ${#truststorePw} -lt 6 ]];
then
echo -e "\tPassword must be at least 6 characters."
truststorePw=
fi
done
echo
echo " ______________Summary______________"
echo " Keystore: $securityDir/$keystore"
echo " Keystore Password: $keystorePw"
echo " Truststore: $securityDir/$truststore"
echo "Truststore Password: $truststorePw"
echo " Key Alias: $keyAlias"
echo " Key Password: $keyPw"
echo
while [[ $infoCorrect != "yes" ]] && [[ $infoCorrect != "no" ]];
do
echo -n "Is this information correct (yes or no)? "
read infoCorrect
infoCorrect=$(echo $infoCorrect | tr '[:upper:]' '[:lower:]')
if [[ $infoCorrect = "yes" ]];
then
echo "Information Confirmed"
elif [[ $infoCorrect = "no" ]];
then
echo -e "\nPlease re-enter the information."
resetVariables
else
echo "Please enter yes or no."
fi
done
done
cn=$(hostname)
echo "Generating keystore..."
# get rid of an existing key with same name
echo "Checking to see if a key with this alias exists in keystore.....[$keyAlias]!"
keytool -delete -alias $keyAlias -storepass $keyPw -keystore $securityDir/$keystore
# create and add key
keytool -genkey -alias tmp -keypass $keyPw -dname CN=foo -keystore $keystore -storepass $keystorePw -storetype JKS
keytool -delete -alias tmp -keystore $securityDir/$keystore -storepass $keyPw
# convert private DoD key file in PEM format to DER
openssl pkcs8 -topk8 -nocrypt -in $dodkey -inform PEM -out /tmp/dodkey.der -outform DER
# convert public DoD certificate file in PEM to DER
openssl x509 -in $dodcert -inform PEM -out /tmp/dodcert.der -outform DER
# load the privateKey into the keystore
$JAVA_BIN -cp $LOCAL_CLASSPATH com.raytheon.uf.common.security.certificate.CertLoader /tmp/dodkey.der /tmp/dodcert.der $securityDir $keystorePw $keyAlias
# clean up mess
rm -f /tmp/dodkey.der /tmp/dodcert.der
# obfuscate keyPass kept in security.properties
obfuscatedKeystorePassword=`$JAVA_BIN -cp $LOCAL_CLASSPATH com.raytheon.uf.common.security.encryption.AESEncryptor encrypt $encryptionKey $keystorePw 2>&1`
echo "Generating trust store..."
echo "Checking to see if a trusted CA with this alias exists in truststore.....[$keyAlias]!"
keytool -delete -alias $keyAlias -storepass $truststorePw -keystore $securityDir/$truststore
keytool -genkey -alias tmp -keypass tempPass -dname CN=foo -keystore $truststore -storepass $truststorePw -storetype JKS
keytool -delete -alias tmp -keystore $truststore -storepass $truststorePw
keytool -importcert -trustcacerts -file ${dodcert} -alias $keyAlias -keystore $truststore -storepass $truststorePw
jettyObscuredPassword=`$JAVA_BIN -cp $LOCAL_CLASSPATH org.eclipse.jetty.util.security.Password $keystorePw 2>&1 | grep OBF`
obfuscatedTruststorePassword=`$JAVA_BIN -cp $LOCAL_CLASSPATH com.raytheon.uf.common.security.encryption.AESEncryptor encrypt $encryptionKey $truststorePw 2>&1`
echo -n "Generating security properties file..."
echo "# This file was automatically generated using /awips2/edex/conf/security/keystoreUtil.sh" > $securityProps
echo "java.security.auth.login.config=/awips2/edex/conf/security/realms.properties" >> $securityProps
echo "edex.security.auth.user=$keyAlias" >> $securityProps
echo "edex.security.auth.password=$obfuscatedKeystorePassword" >> $securityProps
echo "edex.security.auth.authorizationType=Basic" >> $securityProps
echo "edex.security.auth.loginService.name=RegistryRealm" >> $securityProps
echo "edex.security.auth.loginService.realm=RegistryRealm" >> $securityProps
echo "edex.security.encryption.key=$encryptionKey" >> $securityProps
echo "edex.security.keystore.path=$securityDir/$keystore" >> $securityProps
echo "edex.security.keystore.alias=$keyAlias" >> $securityProps
echo "edex.security.keystore.password=$obfuscatedKeystorePassword" >> $securityProps
echo "edex.security.keystore.type=JKS" >> $securityProps
echo "edex.security.keystore.algorithm=SunX509" >> $securityProps
echo "edex.security.truststore.path=$securityDir/$truststore" >> $securityProps
echo "edex.security.truststore.password=$obfuscatedTruststorePassword" >> $securityProps
echo "edex.security.truststore.type=JKS" >> $securityProps
echo "edex.security.truststore.algorithm=SunX509" >> $securityProps
echo "edex.security.disableCNCheck=false" >>$securityProps
echo "#The following configuration items are used with the wss4j in/out interceptors" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.file=security/$keystore" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.password=$jettyObscuredPassword" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.type=JKS" >> $securityProps
echo "org.apache.ws.security.crypto.merlin.keystore.alias=$keyAlias" >> $securityProps
echo "Done!"
# If we are already in the security directory, we do not
# need to move the files
if [[ $(pwd) != "$securityDir" ]];
then
echo -n "Moving key store and trust store to [$securityDir] ..."
mv $truststore $keystore $securityDir
echo "Done!"
fi
echo "Keystores are located at $securityDir"
echo "The public key for this server is located at $(pwd)/$keyAlias$publicKeyFile"
echo "This file may be disseminated to other registry federation members who wish to interact with this server"
}
function addKey() {
echo "Adding $keyfile to trust store..."
userAlias=
while [ -z $userAlias ];
do
echo -n "Enter alias for [$keyfile]: "
read userAlias
if [ -z $userAlias ];
then
echo "Alias cannot be empty!"
fi
done
# delete any existing cert in the truststore for this alias
echo "Checking to see if a certificate with this alias exists to replace.....[$userAlias]!"
keytool -delete -alias $userAlias -keystore $securityDir/$truststore
# add the cert to the truststore
keytool -import -trustcacerts -file $keyfile -alias $userAlias -keystore $securityDir/$truststore
}
function deleteKey() {
echo "Deleting $keyfile from trust store..."
userAlias=
while [ -z $userAlias ];
do
echo -n "Enter alias for [$keyfile]: "
read userAlias
if [ -z $userAlias ];
then
echo "Alias cannot be empty!"
fi
done
keytool -delete -alias $userAlias -keystore $securityDir/$truststore
}
# This is the beginning of the scripts main line execution.
if [ $# -eq 0 ]
then
echo "No arguments supplied"
usage
exit 0
elif [ "$1" = "-g" ]
then
if [ $# -lt 3 ]; then
echo "No dodcert or key supplied"
usage
exit
fi
dodcert=$2
dodkey=$3
if [ ! -f $2 ]; then
echo "Cannot find dodcert $dodcert"
usage
exit
fi
if [ ! -f $3 ]; then
echo "Cannot find dodkey $dodkey"
usage
exit
fi
generateKeystores
exit 0
elif [ "$1" = "-a" ]
then
if [ $# -lt 2 ]
then
echo "No key file supplied"
usage
elif [ ! -e $securityDir/$truststore ]
then
echo "Trust store [$securityDir/$truststore] does not exist!"
else
keyfile=$2
addKey
fi
exit 0
elif [ "$1" = "-d" ]
then
if [ $# -lt 2 ]
then
echo "No key file supplied"
usage
elif [ ! -e $securityDir/$truststore ]
then
echo "Trust store [$securityDir/$truststore] does not exist!"
else
keyfile=$2
deleteKey
fi
exit 0
elif [ "$1" = "-usage" ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]
then
usage
exit 0
fi

View file

@ -0,0 +1,255 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring
http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="pypiesStoreProps" class="com.raytheon.uf.common.pypies.PypiesProperties" lazy-init="true">
<property name="address" value="${PYPIES_SERVER}" />
</bean>
<bean id="pypiesDataStoreFactory" class="com.raytheon.uf.common.pypies.PyPiesDataStoreFactory"
depends-on="httpClient" lazy-init="true">
<constructor-arg ref="pypiesStoreProps" />
</bean>
<bean id="sslConfig" class="com.raytheon.uf.common.datastore.ignite.IgniteSslConfiguration">
<constructor-arg value="guest"/>
</bean>
<bean id="igniteKeyStorePath" factory-bean="sslConfig" factory-method="getJavaKeyStorePath" />
<bean id="igniteTrustStorePath" factory-bean="sslConfig" factory-method="getJavaTrustStorePath" />
<bean id="igniteKeyStorePassword" class="com.raytheon.uf.common.datastore.ignite.IgnitePasswordUtils"
factory-method="getIgniteKeyStorePassword" />
<bean id="igniteTrustStorePassword" class="com.raytheon.uf.common.datastore.ignite.IgnitePasswordUtils"
factory-method="getIgniteTrustStorePassword" />
<bean id="igniteCommSpiTemplate" class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"
abstract="true" lazy-init="true">
<property name="messageQueueLimit" value="1024"/>
<!-- This causes clients to keep the last x messages up to this
threshold per connection in heap memory in case a connection
fails to resend the messages. Limiting this will cause more
acknowledgements to be sent but also reduce client heap
footprint. Default value is 32. -->
<property name="ackSendThreshold" value="2"/>
<property name="socketWriteTimeout" value="30000"/>
<property name="usePairedConnections" value="true"/>
<property name="connectionsPerNode" value="4"/>
<property name="localPortRange" value="0"/>
</bean>
<!-- Must have prototype scope so a fully new instance can be created when node fails and needs restarting -->
<bean id="igniteConfig1" class="org.apache.ignite.configuration.IgniteConfiguration"
scope="prototype" lazy-init="true">
<property name="igniteInstanceName" value="cluster1" />
<property name="localHost" value="${LOCAL_ADDRESS}"/>
<property name="clientMode" value="true" />
<property name="metricsLogFrequency" value="0" />
<property name="workDirectory" value="${AWIPS2_TEMP}/edex/ignite_work"/>
<property name="failureHandler">
<bean class="com.raytheon.uf.common.datastore.ignite.IgniteClientFailureHandler" />
</property>
<property name="gridLogger">
<bean class="org.apache.ignite.logger.slf4j.Slf4jLogger" />
</property>
<property name="sslContextFactory">
<bean class="org.apache.ignite.ssl.SslContextFactory">
<property name="keyStoreFilePath" ref="igniteKeyStorePath"/>
<property name="keyStorePassword" ref="igniteKeyStorePassword" />
<property name="trustStoreFilePath" ref="igniteTrustStorePath"/>
<property name="trustStorePassword" ref="igniteTrustStorePassword"/>
<property name="protocol" value="TLSv1.3"/>
</bean>
</property>
<property name="communicationSpi">
<bean parent="igniteCommSpiTemplate">
<property name="localPort" value="${IGNITE_CLUSTER_1_COMM_PORT}"/>
</bean>
</property>
<property name="transactionConfiguration">
<bean class="org.apache.ignite.configuration.TransactionConfiguration">
<property name="txTimeoutOnPartitionMapExchange" value="${a2.ignite.txTimeoutOnPartitionMapExchange}"/>
<property name="defaultTxTimeout" value="${a2.ignite.defaultTxTimeout}"/>
</bean>
</property>
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="localPort" value="${IGNITE_CLUSTER_1_DISCO_PORT}"/>
<property name="localPortRange" value="0"/>
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses" value="#{'${IGNITE_CLUSTER_1_SERVERS}'.split(',')}" />
</bean>
</property>
</bean>
</property>
</bean>
<bean id="igniteConfig2" class="org.apache.ignite.configuration.IgniteConfiguration" scope="prototype" lazy-init="true">
<constructor-arg ref="igniteConfig1" />
<property name="igniteInstanceName" value="cluster2" />
<property name="communicationSpi">
<bean parent="igniteCommSpiTemplate">
<property name="localPort" value="${IGNITE_CLUSTER_2_COMM_PORT}"/>
</bean>
</property>
<property name="discoverySpi">
<bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="localPort" value="${IGNITE_CLUSTER_2_DISCO_PORT}"/>
<property name="localPortRange" value="0"/>
<property name="ipFinder">
<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses" value="#{'${IGNITE_CLUSTER_2_SERVERS}'.split(',')}" />
</bean>
</property>
</bean>
</property>
</bean>
<bean id="igniteClusterManager" class="com.raytheon.uf.common.datastore.ignite.IgniteClusterManager" lazy-init="true">
<constructor-arg>
<bean class="com.raytheon.uf.common.datastore.ignite.IgniteConfigSpringGenerator">
<constructor-arg ref="igniteConfig1" />
<constructor-arg value="igniteConfig1" />
</bean>
</constructor-arg>
<constructor-arg>
<bean class="com.raytheon.uf.common.datastore.ignite.IgniteConfigSpringGenerator">
<constructor-arg ref="igniteConfig2" />
<constructor-arg value="igniteConfig2" />
</bean>
</constructor-arg>
</bean>
<!-- If any cache configuration is changed, all ignite and edex nodes need
to be shutdown to clear knowledge of the previous configuration before
any changes will take effect. Nodes can only be started up again after
all nodes are shutdown. -->
<bean id="defaultCacheConfig" class="org.apache.ignite.configuration.CacheConfiguration" scope="prototype" lazy-init="true">
<property name="name" value="defaultDataStore" />
<property name="cacheMode" value="PARTITIONED" />
<property name="backups" value="${IGNITE_CACHE_BACKUPS:0}" />
<!-- Rebalancing is unnecessary, missing entries will read
from the underlying datastore instead of being copied
preemptively. Attempting to rebalance will load the entire
cache in the heap and results in OOM.
-->
<property name="rebalanceMode" value="NONE" />
<property name="readThrough" value="true" />
<property name="writeThrough" value="true" />
<property name="writeBehindEnabled" value="true" />
<property name="writeBehindFlushFrequency" value="5000" />
<property name="writeBehindFlushThreadCount" value="4" />
<property name="writeBehindBatchSize" value="20" />
<property name="writeBehindFlushSize" value="100" />
<property name="sqlIndexMaxInlineSize" value="350" />
<property name="cacheStoreFactory">
<bean
class="com.raytheon.uf.common.datastore.ignite.store.DataStoreCacheStoreFactory">
<constructor-arg>
<bean
class="com.raytheon.uf.common.datastore.ignite.pypies.SerializablePyPiesDataStoreFactory" lazy-init="true">
<constructor-arg name="address" value="${PYPIES_SERVER}" />
</bean>
</constructor-arg>
</bean>
</property>
<property name="indexedTypes">
<list>
<value>com.raytheon.uf.common.datastore.ignite.DataStoreKey</value>
<value>com.raytheon.uf.common.datastore.ignite.DataStoreValue</value>
</list>
</property>
</bean>
<bean id="gridCacheConfig" class="org.apache.ignite.configuration.CacheConfiguration" lazy-init="true">
<constructor-arg ref="defaultCacheConfig" />
<property name="name" value="gridDataStore" />
<property name="writeBehindFlushFrequency" value="1000" />
<property name="writeBehindFlushThreadCount" value="12" />
<property name="writeBehindBatchSize" value="5" />
<property name="writeBehindFlushSize" value="60" />
</bean>
<bean id="satelliteCacheConfig" class="org.apache.ignite.configuration.CacheConfiguration" lazy-init="true">
<constructor-arg ref="defaultCacheConfig" />
<property name="name" value="satelliteDataStore" />
<property name="writeBehindFlushFrequency" value="5000" />
<property name="writeBehindFlushThreadCount" value="4" />
<property name="writeBehindBatchSize" value="5" />
<property name="writeBehindFlushSize" value="20" />
</bean>
<bean id="radarCacheConfig" class="org.apache.ignite.configuration.CacheConfiguration" lazy-init="true">
<constructor-arg ref="defaultCacheConfig" />
<property name="name" value="radarDataStore" />
<property name="writeBehindFlushFrequency" value="5000" />
<property name="writeBehindFlushThreadCount" value="4" />
<property name="writeBehindBatchSize" value="10" />
<property name="writeBehindFlushSize" value="40" />
</bean>
<bean id="pointCacheConfig" class="org.apache.ignite.configuration.CacheConfiguration" lazy-init="true">
<constructor-arg ref="defaultCacheConfig" />
<property name="name" value="pointDataStore" />
<!-- Do NOT enable write behind for point data. It must currently be
disabled, or else the postgres metadata and hdf5 data can get out
of sync and cause significant issues. -->
<property name="writeBehindEnabled" value="false" />
</bean>
<bean id="defaultCacheRegistered" factory-bean="igniteClusterManager" factory-method="addCache" lazy-init="true">
<constructor-arg ref="defaultCacheConfig" />
<constructor-arg value="1" />
</bean>
<bean id="gridCacheRegistered" factory-bean="igniteClusterManager" factory-method="addCache" lazy-init="true">
<constructor-arg ref="gridCacheConfig" />
<constructor-arg value="2" />
</bean>
<bean id="satelliteCacheRegistered" factory-bean="igniteClusterManager" factory-method="addCache" lazy-init="true">
<constructor-arg ref="satelliteCacheConfig" />
<constructor-arg value="1" />
</bean>
<bean id="radarCacheRegistered" factory-bean="igniteClusterManager" factory-method="addCache" lazy-init="true">
<constructor-arg ref="radarCacheConfig" />
<constructor-arg value="1" />
</bean>
<bean id="pointCacheRegistered" factory-bean="igniteClusterManager" factory-method="addCache" lazy-init="true">
<constructor-arg ref="pointCacheConfig" />
<constructor-arg value="1" />
</bean>
<bean id="pluginMapCacheRegistered" factory-bean="igniteClusterManager" factory-method="setPluginMapCacheCluster" lazy-init="true">
<!-- This needs to match the cluster that the cache config is set on in awips2-config.xml -->
<constructor-arg value="1" />
</bean>
<bean id="ignitePluginRegistry"
class="com.raytheon.uf.common.datastore.ignite.plugin.CachePluginRegistry" lazy-init="true" />
<!-- The full topo dataset is too large to efficiently cache the entire
record so do not cache topo. -->
<bean factory-bean="ignitePluginRegistry" factory-method="registerPluginCacheName">
<constructor-arg value="topo" />
<constructor-arg value="none" />
</bean>
<bean id="igniteDataStoreFactory" class="com.raytheon.uf.common.datastore.ignite.IgniteDataStoreFactory" lazy-init="true"
depends-on="defaultCacheRegistered,gridCacheRegistered,satelliteCacheRegistered,radarCacheRegistered,pointCacheRegistered,pluginMapCacheRegistered">
<constructor-arg ref="igniteClusterManager" />
<constructor-arg ref="ignitePluginRegistry" />
</bean>
<bean id="dataStoreFactory" class="com.raytheon.uf.common.datastorage.DataStoreFactory"
factory-method="getInstance">
<property name="underlyingFactory" ref="${DATASTORE_PROVIDER}DataStoreFactory" />
</bean>
<bean id="dataStorageAuditerContainer" class="com.raytheon.uf.common.datastorage.audit.DataStorageAuditerContainer" factory-method="getInstance">
<property name="auditer">
<bean class="com.raytheon.uf.edex.database.health.EdexDataStorageAuditerProxy">
<constructor-arg ref="messageProducer"/>
</bean>
</property>
</bean>
</beans>

View file

@ -24,10 +24,12 @@
<property name="excludes"> <property name="excludes">
<list> <list>
<value>com.raytheon.uf.common.dataplugin.text</value> <value>com.raytheon.uf.common.dataplugin.text</value>
<value>com.raytheon.uf.common.dataplugin.text.subscription</value>
<value>com.raytheon.uf.common.dataplugin.shef</value> <value>com.raytheon.uf.common.dataplugin.shef</value>
<value>com.raytheon.edex.plugin.shef</value> <value>com.raytheon.edex.plugin.shef</value>
<value>com.raytheon.uf.common.bmh</value> <value>com.raytheon.uf.common.bmh</value>
<value>com.raytheon.uf.common.plugin.hpe.data</value> <value>com.raytheon.uf.common.plugin.hpe.data</value>
<value>com.raytheon.uf.common.dataplugin.geographic</value>
</list> </list>
</property> </property>
</bean> </bean>
@ -43,7 +45,7 @@
</bean> </bean>
<bean id="metadataTxManager" <bean id="metadataTxManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"> class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="metadataSessionFactory" /> <property name="sessionFactory" ref="metadataSessionFactory" />
</bean> </bean>
@ -60,7 +62,7 @@
</bean> </bean>
<bean id="admin_metadataTxManager" <bean id="admin_metadataTxManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"> class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="admin_metadataSessionFactory" /> <property name="sessionFactory" ref="admin_metadataSessionFactory" />
</bean> </bean>
@ -68,6 +70,17 @@
<property name="transactionManager" ref="admin_metadataTxManager"/> <property name="transactionManager" ref="admin_metadataTxManager"/>
</bean> </bean>
<bean id="mapsDbSessionConfig"
class="com.raytheon.uf.edex.database.DatabaseSessionConfiguration">
<property name="classFinder" ref="dbClassFinder" />
<property name="includes">
<list>
<value>com.raytheon.uf.common.dataplugin.geographic</value>
<value>com.raytheon.uf.edex.database</value>
</list>
</property>
</bean>
<bean id="mapsSessionFactory" <bean id="mapsSessionFactory"
class="com.raytheon.uf.edex.database.DatabaseSessionFactoryBean"> class="com.raytheon.uf.edex.database.DatabaseSessionFactoryBean">
<!-- no annotations to load, so no databaseSessionConfig --> <!-- no annotations to load, so no databaseSessionConfig -->
@ -75,10 +88,11 @@
<value>file:///${edex.home}/conf/db/hibernateConfig/maps/hibernate.cfg.xml <value>file:///${edex.home}/conf/db/hibernateConfig/maps/hibernate.cfg.xml
</value> </value>
</property> </property>
<property name="databaseSessionConfiguration" ref="mapsDbSessionConfig" />
</bean> </bean>
<bean id="mapsTxManager" <bean id="mapsTxManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"> class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="mapsSessionFactory" /> <property name="sessionFactory" ref="mapsSessionFactory" />
</bean> </bean>
@ -89,10 +103,11 @@
<value>file:///${edex.home}/conf/db/hibernateConfig/maps/hibernate.admin.cfg.xml <value>file:///${edex.home}/conf/db/hibernateConfig/maps/hibernate.admin.cfg.xml
</value> </value>
</property> </property>
<property name="databaseSessionConfiguration" ref="mapsDbSessionConfig" />
</bean> </bean>
<bean id="admin_mapsTxManager" <bean id="admin_mapsTxManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager"> class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="admin_mapsSessionFactory" /> <property name="sessionFactory" ref="admin_mapsSessionFactory" />
</bean> </bean>
</beans> </beans>

View file

@ -8,20 +8,34 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"> http://www.springframework.org/schema/util/spring-util.xsd">
<!-- Separated out database specific beans to separate file so they can be loaded by themselves if necessary --> <bean id="jmsClientId" class="com.raytheon.uf.common.util.SystemUtil" factory-method="getClientID">
<import resource="file:///${edex.home}/conf/spring/edex-db.xml"/> <constructor-arg value="${edex.run.mode}" />
</bean>
<!-- specify the connection to the broker (qpid) --> <bean id="jmsConnectionInfo"
<bean id="amqConnectionFactory" class="org.apache.qpid.client.AMQConnectionFactory"> class="com.raytheon.uf.common.jms.JMSConnectionInfo">
<constructor-arg type="java.lang.String" value="amqp://guest:guest@/${JMS_VIRTUALHOST}?brokerlist='${JMS_SERVER}?retries='9999'&amp;heartbeat='0'&amp;connecttimeout='5000'&amp;connectdelay='5000''&amp;maxprefetch='0'&amp;sync_publish='all'&amp;sync_ack='true'"/> <constructor-arg value="${BROKER_HOST}"/>
<constructor-arg value="${BROKER_PORT}"/>
<constructor-arg value="${JMS_VIRTUALHOST}"/>
<constructor-arg value="${BROKER_HTTP}"/>
<constructor-arg>
<map>
<entry key="jms.prefetchPolicy.all" value="0"/>
<entry key="provider.futureType" value="balanced"/>
<entry key="jms.clientID" value-ref="jmsClientId"/>
</map>
</constructor-arg>
</bean> </bean>
<bean id="jmsPooledConnectionFactory" class="com.raytheon.uf.common.jms.JmsPooledConnectionFactory"> <bean id="qpidUfConnectionFactory" class="com.raytheon.uf.common.jms.qpid.QpidUFConnectionFactory">
<constructor-arg ref="amqConnectionFactory"/> <constructor-arg ref="jmsConnectionInfo"/>
<property name="provider" value="QPID"/> </bean>
<property name="reconnectInterval" value="5000"/>
<!-- After resource has been closed by thread keep it allocated for another 2 minutes in case thread needs it again --> <bean id="jmsConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="resourceRetention" value="120000"/> <constructor-arg ref="qpidUfConnectionFactory"/>
<!-- The value of 50 is arbitrary. Can be tweaked later based on
observed frequency of session creation -->
<property name="sessionCacheSize" value="50"/>
</bean> </bean>
<bean id="genericThreadPool" <bean id="genericThreadPool"
@ -42,26 +56,16 @@
</bean> </bean>
<bean id="jmsGenericConfig" class="org.apache.camel.component.jms.JmsConfiguration" <bean id="jmsGenericConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy"/> factory-bean="jmsConfig" factory-method="copy">
</bean>
<bean id="jmsDurableConfig" class="org.apache.camel.component.jms.JmsConfiguration" <bean id="jmsDurableConfig" class="org.apache.camel.component.jms.JmsConfiguration"
factory-bean="jmsConfig" factory-method="copy"> factory-bean="jmsConfig" factory-method="copy">
<property name="destinationResolver" ref="qpidDurableResolver" />
<property name="deliveryPersistent" value="true"/> <property name="deliveryPersistent" value="true"/>
</bean> </bean>
<bean id="qpidNoDurableResolver" class="com.raytheon.uf.edex.esb.camel.spring.QpidDestinationNameResolver">
<property name="queueNamePrefix" value="direct://amq.direct/"/>
<property name="queueNamePostfix" value="?durable='false'"/>
</bean>
<bean id="qpidDurableResolver" class="com.raytheon.uf.edex.esb.camel.spring.QpidDestinationNameResolver">
<property name="queueNamePrefix" value="direct://amq.direct/"/>
<property name="queueNamePostfix" value="?durable='true'"/>
</bean>
<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration"> <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
<property name="cacheLevelName" value="CACHE_NONE"/> <property name="cacheLevelName" value="CACHE_CONSUMER"/>
<property name="recoveryInterval" value="10000"/> <property name="recoveryInterval" value="10000"/>
<property name="requestTimeout" value="5000"/> <property name="requestTimeout" value="5000"/>
<!-- If this is false, while stopping we will reject messages that have already been pulled from qpid, essentially losing the message --> <!-- If this is false, while stopping we will reject messages that have already been pulled from qpid, essentially losing the message -->
@ -76,9 +80,8 @@
<!-- force maxMessagesPerTask so that the threads don't keep disconnecting and reconnecting. <!-- force maxMessagesPerTask so that the threads don't keep disconnecting and reconnecting.
This will keep a data-type attached to the initial thread it starts on --> This will keep a data-type attached to the initial thread it starts on -->
<property name="maxMessagesPerTask" value="-1"/> <property name="maxMessagesPerTask" value="-1"/>
<property name="listenerConnectionFactory" ref="jmsPooledConnectionFactory" /> <property name="listenerConnectionFactory" ref="jmsConnectionFactory" />
<property name="templateConnectionFactory" ref="jmsPooledConnectionFactory" /> <property name="templateConnectionFactory" ref="jmsConnectionFactory" />
<property name="destinationResolver" ref="qpidNoDurableResolver" />
<property name="disableReplyTo" value="true" /> <property name="disableReplyTo" value="true" />
<property name="deliveryPersistent" value="false"/> <property name="deliveryPersistent" value="false"/>
@ -119,18 +122,6 @@
<constructor-arg ref="httpClientConfig"/> <constructor-arg ref="httpClientConfig"/>
</bean> </bean>
<bean id="pypiesStoreProps" class="com.raytheon.uf.common.pypies.PypiesProperties">
<property name="address" value="${PYPIES_SERVER}" />
</bean>
<bean id="pypiesDataStoreFactory" class="com.raytheon.uf.common.pypies.PyPiesDataStoreFactory" depends-on="httpClient">
<constructor-arg ref="pypiesStoreProps" />
</bean>
<bean id="dataStoreFactory" class="com.raytheon.uf.common.datastorage.DataStoreFactory" factory-method="getInstance">
<!-- Get instance of DataStoreFactory and set underlying factory to use -->
<property name="underlyingFactory" ref="pypiesDataStoreFactory"/>
</bean>
<bean id="initialcorePropertyConfigurer" <bean id="initialcorePropertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName"> <property name="systemPropertiesModeName">
@ -171,6 +162,12 @@
<property name="forceCheck" value="true" /> <property name="forceCheck" value="true" />
</bean> </bean>
<bean id="mapsDbPluginProperties" class="com.raytheon.uf.edex.database.DatabasePluginProperties">
<property name="pluginFQN" value="com.raytheon.uf.edex.database" />
<property name="database" value="maps" />
<property name="forceCheck" value="true" />
</bean>
<!-- <!--
The DatabasePluginRegistry is used to create tables in The DatabasePluginRegistry is used to create tables in
a database beyond the auto-detected table for each dataplugin. a database beyond the auto-detected table for each dataplugin.
@ -204,6 +201,11 @@
</property> </property>
</bean> </bean>
<bean id="mapsDbRegistered" factory-bean="dbPluginRegistry" factory-method="register">
<constructor-arg value="com.raytheon.uf.edex.database.maps" />
<constructor-arg ref="mapsDbPluginProperties" />
</bean>
<!-- The pluginDefaults are the values that a data plugin will use for <!-- The pluginDefaults are the values that a data plugin will use for
some plugin properties if they are not specified in the individual some plugin properties if they are not specified in the individual
plugin's Spring XML configuration --> plugin's Spring XML configuration -->
@ -234,12 +236,22 @@
<bean id="stringToFile" class="com.raytheon.uf.edex.esb.camel.StringToFile"/> <bean id="stringToFile" class="com.raytheon.uf.edex.esb.camel.StringToFile"/>
<bean id="dataUnzipper" class="com.raytheon.uf.common.util.DataUnzipper"/> <bean id="dataUnzipper" class="com.raytheon.uf.common.util.DataUnzipper"/>
<bean id="errorHandler" class="org.apache.camel.builder.LoggingErrorHandlerBuilder"/> <bean id="errorHandlerRedeliveryPolicy" class="org.apache.camel.processor.errorhandler.RedeliveryPolicy">
<!-- This policy matches that of the old LoggingErrorHandlerBuilder
class we used to use. (That class is gone now that we have moved
to Camel 3.) -->
<property name="logRetryAttempted" value="false" />
</bean>
<bean id="errorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder">
<property name="deadLetterUri" value="log:edex?level=ERROR" />
<property name="redeliveryPolicy" ref="errorHandlerRedeliveryPolicy" />
</bean>
<!-- sets default settings of log component across all of edex --> <!-- sets default settings of log component across all of edex -->
<!-- if log component beans are created and the exchangeFormatter property is set, they can't process URI parameters --> <!-- if log component beans are created and the exchangeFormatter property is set, they can't process URI parameters -->
<!-- this bean needs to be named 'logFormatter' for the log component to find it in the context --> <!-- this bean needs to be named 'logFormatter' for the log component to find it in the context -->
<bean id="logFormatter" class="org.apache.camel.processor.DefaultExchangeFormatter" scope="prototype"> <bean id="logFormatter" class="org.apache.camel.support.processor.DefaultExchangeFormatter" scope="prototype">
<property name="maxChars" value="0" /> <property name="maxChars" value="0" />
<property name="showBody" value="false" /> <property name="showBody" value="false" />
<property name="showCaughtException" value="true" /> <property name="showCaughtException" value="true" />
@ -296,17 +308,6 @@
<to uri="jms-generic:topic:edex.alarms.msg" /> <to uri="jms-generic:topic:edex.alarms.msg" />
</route> </route>
<!-- Route to periodically close any unused jms resources that have been pooled -->
<route id="jmsPooledResourceChecker">
<from uri="timer://jmsPooledResourceCheck?period=60s" />
<doTry>
<bean ref="jmsPooledConnectionFactory" method="checkPooledResources"/>
<doCatch>
<exception>java.lang.Throwable</exception>
<to uri="log:jmsPooledResourceCheck?level=ERROR"/>
</doCatch>
</doTry>
</route>
</camelContext> </camelContext>
<camelContext <camelContext
id="clusteredCamel" id="clusteredCamel"

Some files were not shown because too many files have changed in this diff Show more