Fork me on GitHub

Rat (Release Audit Tool) results

The following document contains the results of Rat (Release Audit Tool).

*****************************************************
Summary
-------
Generated at: 2017-03-11T23:42:55-05:00

Notes: 0
Binaries: 0
Archives: 0
Standards: 45

Apache Licensed: 0
Generated Documents: 0

JavaDocs are generated, thus a license header is optional.
Generated files do not require license headers.

45 Unknown Licenses

*****************************************************

Files with unapproved licenses:

  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/fgsms.init.d
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstall.cmd
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstallIA64.cmd
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstallx64.cmd
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemove.cmd
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemoveIA64.cmd
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemovex64.cmd
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/log4j.properties
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/persistent-agent.bat
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/pom.xml
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ApacheCxfSslHelper.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ApacheCxfSSlHelperGo.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/AuthSSLX509TrustManager.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ConfigLoader.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ConfigurationException.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/DataPusher.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/DependencyHelper.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/FgsmsSoapHeaderConstants.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/HelperBase.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/IMessageProcessor.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageCorrelator.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessor.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorAdapter.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorAdapterMBean.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorImpl.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/mp/DefaultMessageProcessor.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/mp/DropAllMessageProcessor.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/OneWayJudge.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/OSAgentHelper.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PersistentAgentThreadRunner.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PersistentStorage.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PolicyFetch.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PolicyHelper.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/servlets/ServetShutdownListener.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/StatisticalHelper.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/StatusHelper.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/fgsms-pki-config.xml.xml
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/fgsms-username-config.xml
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/log4j.properties
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/org/miloss/fgsms/agentcore/defaultpolicy.xml
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/org/miloss/fgsms/agentcore/fgsms-agent.properties
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/AgentcoreSuite.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/DataPusherTest.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/MessageProcessorTest.java
  C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/resources/log4j.properties

*****************************************************

*****************************************************
  Files with Apache License headers will be marked AL
  Binary files (which do not require any license headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc. will be marked N
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/fgsms.init.d
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstall.cmd
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstallIA64.cmd
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstallx64.cmd
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemove.cmd
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemoveIA64.cmd
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemovex64.cmd
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/log4j.properties
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/persistent-agent.bat
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/pom.xml
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ApacheCxfSslHelper.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ApacheCxfSSlHelperGo.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/AuthSSLX509TrustManager.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ConfigLoader.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ConfigurationException.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/DataPusher.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/DependencyHelper.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/FgsmsSoapHeaderConstants.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/HelperBase.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/IMessageProcessor.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageCorrelator.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessor.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorAdapter.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorAdapterMBean.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorImpl.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/mp/DefaultMessageProcessor.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/mp/DropAllMessageProcessor.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/OneWayJudge.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/OSAgentHelper.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PersistentAgentThreadRunner.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PersistentStorage.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PolicyFetch.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PolicyHelper.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/servlets/ServetShutdownListener.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/StatisticalHelper.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/StatusHelper.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/fgsms-pki-config.xml.xml
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/fgsms-username-config.xml
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/log4j.properties
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/org/miloss/fgsms/agentcore/defaultpolicy.xml
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/org/miloss/fgsms/agentcore/fgsms-agent.properties
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/AgentcoreSuite.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/DataPusherTest.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/MessageProcessorTest.java
 !????? C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/resources/log4j.properties
 
*****************************************************

 Printing headers for text files without a valid license header...
 
=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/fgsms.init.d
=====================================================
#!/bin/sh
#
# $Id: jboss_init_redhat.sh 81068 2008-11-14 15:14:35Z dimitris@jboss.org $
#

# fgsms Control Script
# To use this script run it as root - it will switch to the specified user
#
# Here is a little (and extremely primitive) startup/shutdown script
# for RedHat systems. It assumes that JBoss lives in /usr/local/jboss,
# it's run by user 'jboss' and JDK binaries are in /usr/local/jdk/bin.
# All this can be changed in the script itself. 
#
# Either modify this script for your requirements or just ensure that
# the following variables are set correctly before calling the script.

#define where fgsms folder containing the OS agent
fgsms_HOME=${JBOSS_HOME:-"/opt/fgsms"}

#define the user under which jboss will run, or use 'RUNASIS' to run as the current user
JBOSS_USER=${JBOSS_USER:-"root"}

#make sure java is in your path
JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}


case "$1" in
start)

		java -Dorg.miloss.fgsms.agentConfigFileOverride=$fgsms_HOME/fgsms-agent.properties -jar $fgsms_HOME/fgsms.AgentCore.jar > $fgsms_HOME/persistentagent.log 2>&1 &

    ;;
stop)


    JBOSS_PROC_ID=`ps xa | grep 'fgsms.AgentCore.jar' | grep java | grep -v grep | awk -F= 'BEGIN {FS=" "}; {print $1 }'`
    if [[ -n "$JBOSS_PROC_ID" ]]; then
	kill $JBOSS_PROC_ID
    fi
    ;;
 


status)
     JBOSS_PROC_ID=`ps xa | grep 'fgsms.AgentCore.jar' | grep java | grep -v grep | awk -F= 'BEGIN {FS=" "}; {print $1 }'`
    if [[ -n "$JBOSS_PROC_ID" ]]; then
        echo -e 'fgsms Persistent is running with process id: [\033[1;32m' $JBOSS_PROC_ID '\033[0m]'
        RETVAL=0
    else
        echo -e 'fgsms Persistent Agent  is \033[1;31m'stopped'\033[0m'

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstall.cmd
=====================================================
@echo off
rem 

rem This Source Code Form is subject to the terms of the Mozilla Public
rem License, v. 2.0. If a copy of the MPL was not distributed with this
rem file, You can obtain one at http://mozilla.org/MPL/2.0/.

rem If it is not possible or desirable to put the notice in a particular
rem file, then You may include the notice in a location (such as a LICENSE
rem file in a relevant directory) where a recipient would be likely to look
rem for such a notice.

rem 
  
rem  ---------------------------------------------------------------------------
rem  US Government, Department of the Army
rem  Army Materiel Command
rem  Research Development Engineering Command
rem  Communications Electronics Research Development and Engineering Center
rem  ---------------------------------------------------------------------------

rem Batch script for defining the ProcrunService (JVM and Java versions)

rem Copy this file and ProcrunService.jar into the same directory as prunsrv (or adjust the paths below)

setlocal

rem The service names (make sure they does not clash with an existing service)
set SERVICE_JAVA=fgsmsJavaPersistentAgent

rem my location
set MYPATH=%~dp0

rem location of Prunsrv
set PATH_PRUNSRV=%MYPATH%
set PR_LOGPATH=%PATH_PRUNSRV%
rem location of jarfile
set PATH_JAR=%MYPATH%

rem Allow prunsrv to be overridden
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrv

rem Install the 2 services

echo Installing %SERVICE_JAVA%
"%PRUNSRV%" //DS//%SERVICE_JAVA%
"%PRUNSRV%" //IS//%SERVICE_JAVA%

echo Setting the parameters for %SERVICE_JAVA%
"%PRUNSRV%" //US//%SERVICE_JAVA% --Jvm=auto --StdOutput auto --StdError auto   --Startup=auto  ^

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstallIA64.cmd
=====================================================
@echo off
rem 

rem This Source Code Form is subject to the terms of the Mozilla Public
rem License, v. 2.0. If a copy of the MPL was not distributed with this
rem file, You can obtain one at http://mozilla.org/MPL/2.0/.

rem If it is not possible or desirable to put the notice in a particular
rem file, then You may include the notice in a location (such as a LICENSE
rem file in a relevant directory) where a recipient would be likely to look
rem for such a notice.

rem 
  
rem  ---------------------------------------------------------------------------
rem  US Government, Department of the Army
rem  Army Materiel Command
rem  Research Development Engineering Command
rem  Communications Electronics Research Development and Engineering Center
rem  ---------------------------------------------------------------------------

rem Batch script for defining the ProcrunService (JVM and Java versions)

rem Copy this file and ProcrunService.jar into the same directory as prunsrv (or adjust the paths below)

setlocal

rem The service names (make sure they does not clash with an existing service)
set SERVICE_JAVA=fgsmsJavaPersistentAgent

rem my location
set MYPATH=%~dp0

rem location of Prunsrv
set PATH_PRUNSRV=%MYPATH%
set PR_LOGPATH=%PATH_PRUNSRV%
rem location of jarfile
set PATH_JAR=%MYPATH%

rem Allow prunsrv to be overridden
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrvIA64

rem Install the 2 services

echo Installing %SERVICE_JAVA%
"%PRUNSRV%" //DS//%SERVICE_JAVA%
"%PRUNSRV%" //IS//%SERVICE_JAVA%

echo Setting the parameters for %SERVICE_JAVA%
"%PRUNSRV%" //US//%SERVICE_JAVA% --Jvm=auto --StdOutput auto --StdError auto   --Startup=auto  ^

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentAgentServiceInstallx64.cmd
=====================================================
@echo off
rem 

rem This Source Code Form is subject to the terms of the Mozilla Public
rem License, v. 2.0. If a copy of the MPL was not distributed with this
rem file, You can obtain one at http://mozilla.org/MPL/2.0/.

rem If it is not possible or desirable to put the notice in a particular
rem file, then You may include the notice in a location (such as a LICENSE
rem file in a relevant directory) where a recipient would be likely to look
rem for such a notice.

rem 
  
rem  ---------------------------------------------------------------------------
rem  US Government, Department of the Army
rem  Army Materiel Command
rem  Research Development Engineering Command
rem  Communications Electronics Research Development and Engineering Center
rem  ---------------------------------------------------------------------------

rem Batch script for defining the ProcrunService (JVM and Java versions)

rem Copy this file and ProcrunService.jar into the same directory as prunsrv (or adjust the paths below)

setlocal

rem The service names (make sure they does not clash with an existing service)
set SERVICE_JAVA=fgsmsJavaPersistentAgent

rem my location
set MYPATH=%~dp0

rem location of Prunsrv
set PATH_PRUNSRV=%MYPATH%
set PR_LOGPATH=%PATH_PRUNSRV%
rem location of jarfile
set PATH_JAR=%MYPATH%

rem Allow prunsrv to be overridden
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrvx64

rem Install the 2 services

echo Installing %SERVICE_JAVA%
"%PRUNSRV%" //DS//%SERVICE_JAVA%
"%PRUNSRV%" //IS//%SERVICE_JAVA%

echo Setting the parameters for %SERVICE_JAVA%
"%PRUNSRV%" //US//%SERVICE_JAVA% --Jvm=auto --StdOutput auto --StdError auto   --Startup=auto  ^

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemove.cmd
=====================================================
@echo off
rem 

rem This Source Code Form is subject to the terms of the Mozilla Public
rem License, v. 2.0. If a copy of the MPL was not distributed with this
rem file, You can obtain one at http://mozilla.org/MPL/2.0/.

rem If it is not possible or desirable to put the notice in a particular
rem file, then You may include the notice in a location (such as a LICENSE
rem file in a relevant directory) where a recipient would be likely to look
rem for such a notice.

rem 
  
rem  ---------------------------------------------------------------------------
rem  US Government, Department of the Army
rem  Army Materiel Command
rem  Research Development Engineering Command
rem  Communications Electronics Research Development and Engineering Center
rem  ---------------------------------------------------------------------------

rem Batch script for removing the ProcrunService (JVM and Java versions)

setlocal

rem The service names (make sure they does not clash with an existing service)

set SERVICE_JAVA=fgsmsJavaPersistentAgent

rem my location
set MYPATH=%~dp0

rem location of Prunsrv
set PATH_PRUNSRV=%MYPATH%
set PR_LOGPATH=%PATH_PRUNSRV%
rem Allow prunsrv to be overridden
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrv


echo Removing %SERVICE_JAVA%
%PRUNSRV% //DS//%SERVICE_JAVA%
%PRUNSRV% //IS//%SERVICE_JAVA%
sc delete %SERVICE_JAVA%
echo Finished

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemoveIA64.cmd
=====================================================
@echo off
rem 

rem This Source Code Form is subject to the terms of the Mozilla Public
rem License, v. 2.0. If a copy of the MPL was not distributed with this
rem file, You can obtain one at http://mozilla.org/MPL/2.0/.

rem If it is not possible or desirable to put the notice in a particular
rem file, then You may include the notice in a location (such as a LICENSE
rem file in a relevant directory) where a recipient would be likely to look
rem for such a notice.

rem 
  
rem  ---------------------------------------------------------------------------
rem  US Government, Department of the Army
rem  Army Materiel Command
rem  Research Development Engineering Command
rem  Communications Electronics Research Development and Engineering Center
rem  ---------------------------------------------------------------------------

rem Batch script for removing the ProcrunService (JVM and Java versions)

setlocal

rem The service names (make sure they does not clash with an existing service)

set SERVICE_JAVA=fgsmsJavaPersistentAgent

rem my location
set MYPATH=%~dp0

rem location of Prunsrv
set PATH_PRUNSRV=%MYPATH%
set PR_LOGPATH=%PATH_PRUNSRV%
rem Allow prunsrv to be overridden
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrvIA64


echo Removing %SERVICE_JAVA%
%PRUNSRV% //DS//%SERVICE_JAVA%
%PRUNSRV% //IS//%SERVICE_JAVA%
sc delete %SERVICE_JAVA%
echo Finished

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/JavaPersistentServiceRemovex64.cmd
=====================================================
@echo off
rem 
rem This Source Code Form is subject to the terms of the Mozilla Public
rem License, v. 2.0. If a copy of the MPL was not distributed with this
rem file, You can obtain one at http://mozilla.org/MPL/2.0/.

rem If it is not possible or desirable to put the notice in a particular
rem file, then You may include the notice in a location (such as a LICENSE
rem file in a relevant directory) where a recipient would be likely to look
rem for such a notice.

rem 
  
rem  ---------------------------------------------------------------------------
rem  US Government, Department of the Army
rem  Army Materiel Command
rem  Research Development Engineering Command
rem  Communications Electronics Research Development and Engineering Center
rem  ---------------------------------------------------------------------------

rem Batch script for removing the ProcrunService (JVM and Java versions)

setlocal

rem The service names (make sure they does not clash with an existing service)

set SERVICE_JAVA=fgsmsJavaPersistentAgent

rem my location
set MYPATH=%~dp0

rem location of Prunsrv
set PATH_PRUNSRV=%MYPATH%
set PR_LOGPATH=%PATH_PRUNSRV%
rem Allow prunsrv to be overridden
if "%PRUNSRV%" == "" set PRUNSRV=%PATH_PRUNSRV%prunsrv


echo Removing %SERVICE_JAVA%
%PRUNSRV% //DS//%SERVICE_JAVA%
%PRUNSRV% //IS//%SERVICE_JAVA%
sc delete %SERVICE_JAVA%
echo Finished

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/log4j.properties
=====================================================

log4j.rootLogger=INFO, CONSOLE



log4j.appender.jaxws.JAXWSWebServiceMetaDataBuilder=ERROR,CONSOLE
log4j.appender.jaxws=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata.builder=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata.builder.MetaDataBuilder=ERROR,CONSOLE
log4j.appender.builder.MetaDataBuilder=ERROR,CONSOLE
log4j.appender.builder=ERROR,CONSOLE
log4j.appender.org.apache.cxf.service.factory.ReflectionServiceFactoryBean=ERROR,CONSOLE

log4j.appender.handler.HandlerChainExecutor=ERROR,CONSOLE
log4j.appender.handler=ERROR,CONSOLE
log4j.appender.soap.MessageContextAssociation=ERROR,CONSOLE

log4j.appender.httpclient.wire.content=WARN, CONSOLE
log4j.appender.httpclient.wire=WARN, CONSOLE
log4j.appender.org.apache.commons.httpclient=WARN, CONSOLE

log4j.appender.httpclient.wire.content=WARN, CONSOLE
log4j.appender.httpclient.wire=WARN, CONSOLE
log4j.appender.org.apache.commons.httpclient=WARN, CONSOLE

log4j.appender.umdm.EndpointMetaData==ERROR, CONSOLE
log4j.appender.handler.HandlerResolverImpl==ERROR, CONSOLE
log4j.appender.binding.BindingImpl==ERROR, CONSOLE
log4j.appender.jaxws.JAXWSWebServiceMetaDataBuilder==ERROR, CONSOLE
log4j.appender.utils.JBossWSEntityResolver==ERROR, CONSOLE
log4j.appender.fgsms.ServiceMixJMX=INFO,CONSOLE
log4j.appender.fgsms.Utility=INFO,CONSOLE
log4j.appender.fgsms.StatusBueller=INFO,CONSOLE
log4j.appender.fgsms.DataCollectorService=INFO,CONSOLE
log4j.appender.fgsms.DataAccessService=INFO,CONSOLE
log4j.appender.org.miloss.fgsms.common.AuditLogger=INFO,CONSOLE
log4j.appender.fgsms.UserIdentityUtil=INFO,CONSOLE
log4j.appender.fgsms.StatusBueller=INFO,CONSOLE
log4j.appender.fgsms.QpidPython=INFO,CONSOLE
log4j.appender.fgsms.QpidJMX=INFO,CONSOLE
log4j.appender.fgsms.DataPruner=INFO,CONSOLE
log4j.appender.fgsms.UDDIPublisher=INFO,CONSOLE
log4j.appender.fgsms.MulticastAlerting=INFO,CONSOLE
log4j.appender.fgsms.SLAProcessor=INFO,CONSOLE

#the following items are used for sending SLA Alerts to specific loggers. Configure them as necessary to pipe log output whereever you need it
log4j.appender.fgsms.SLAProcessor.SysLog=INFO,CONSOLE 
log4j.appender.fgsms.SLAProcessor.UdpLog=INFO,CONSOLE
log4j.appender.fgsms.SLAProcessor.EventLog=INFO,CONSOLE

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/persistent-agent.bat
=====================================================
java -Dorg.miloss.fgsms.agentConfigFileOverride=fgsms-agent.properties -jar fgsms.AgentCore.jar

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/pom.xml
=====================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
 file, You can obtain one at http://mozilla.org/MPL/2.0/.

 If it is not possible or desirable to put the notice in a particular
 file, then You may include the notice in a location (such as a LICENSE
 file in a relevant directory) where a recipient would be likely to look
 for such a notice.

 

 
 U.S. Government, Department of the Army
 Army Materiel Command
 Research Development Engineering Command
 Communications Electronics Research Development and Engineering Center

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
	  <groupId>org.mil-oss</groupId>
	  <artifactId>fgsms-agents</artifactId>
	  <version>7.0.0</version>
     </parent>
	<properties>
		<cxf.version>2.7.11</cxf.version>
	</properties>


	<artifactId>fgsms-agentcore</artifactId>
     <packaging>bundle</packaging>
     <name>fgsms Agent Core</name>
     <description>The agent core provides all of the asynchronious messaging and policy management</description>
     <dependencies>

	  <dependency>
	       <groupId>junit</groupId>
	       <artifactId>junit</artifactId>
	       <scope>test</scope>
	  </dependency>

	  <dependency>
	       <groupId>org.mil-oss</groupId>
	       <artifactId>fgsms-common</artifactId>
	       <version>${project.parent.version}</version>
	  </dependency>
	  <dependency>

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ApacheCxfSslHelper.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import org.miloss.fgsms.common.Constants;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;

/**
 * Detects the presence of an Apache CXF stack, if present, adds SSL
 * context information
 *
 * @author AO
 */
public class ApacheCxfSslHelper {

    private static final Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);

    public static void doCXF(Object webserviceclient, ConfigLoader cfg) {

        try {
            //first, check to see if the cxf stack is present
            Class<?> loadClass = Thread.currentThread().getContextClassLoader().loadClass("org.apache.cxf.transport.http.HTTPConduit");
            if (loadClass == null) {
                return;
            }
            Class<?> loadClass2 = Thread.currentThread().getContextClassLoader().loadClass("org.apache.cxf.common.i18n.UncheckedException");
            if (loadClass2 == null) {
                return;
            }
            log.log(Level.INFO, "CXF stack detected, adding SSL information");

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ApacheCxfSSlHelperGo.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.security.GeneralSecurityException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
import org.miloss.fgsms.common.Utility;
import org.apache.cxf.configuration.jsse.TLSClientParameters;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.transport.http.HTTPConduit;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;

/**
 *This class will add the necessary keystore/trust store information into an Apache CXF Conduit
 * @author AO
 */
public class ApacheCxfSSlHelperGo {

    private static final Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);


=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/AuthSSLX509TrustManager.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import java.security.cert.X509Certificate;

import javax.net.ssl.X509TrustManager;
import java.security.cert.CertificateException;


/**
 *
 * @author AO
 */
class AuthSSLX509TrustManager implements TrustManager {

private X509TrustManager defaultTrustManager = null;

    /** Log object for this class. */
    

    /**
     * Constructor for AuthSSLX509TrustManager.
     */
    public AuthSSLX509TrustManager(final X509TrustManager defaultTrustManager) {
        super();
        if (defaultTrustManager == null) {
            throw new IllegalArgumentException("Trust manager may not be null");
        }

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ConfigLoader.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.
 *
 * 
 */
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.agentcore;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.Constants.AuthMode;
import org.miloss.fgsms.common.Logger;
import org.miloss.fgsms.common.PropertyLoader;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.automatedreportingservice.AutomatedReportingService;
import org.miloss.fgsms.services.interfaces.automatedreportingservice.AutomatedReportingService_Service;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.dataaccessservice.DataAccessService;
import org.miloss.fgsms.services.interfaces.dataaccessservice.DataAccessService_Service;
import org.miloss.fgsms.services.interfaces.datacollector.DCS;
import org.miloss.fgsms.services.interfaces.datacollector.DataCollectorService;
import org.miloss.fgsms.services.interfaces.policyconfiguration.PCS;
import org.miloss.fgsms.services.interfaces.policyconfiguration.PolicyConfigurationService;
import org.miloss.fgsms.services.interfaces.reportingservice.ReportingService;
import org.miloss.fgsms.services.interfaces.reportingservice.ReportingService_Service;
import org.miloss.fgsms.services.interfaces.status.StatusService;
import org.miloss.fgsms.services.interfaces.status.StatusServiceService;
import us.gov.ic.ism.v2.ClassificationType;

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/ConfigurationException.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

/**a simple configuration exception. this lets you know that the configuration file is somehow wrong
 *
 * @author AO
 */
public class ConfigurationException extends Exception{
    String msg;

    public ConfigurationException(String LastErrorMessage) {
          this.msg = LastErrorMessage;
    }
    
    @Override
    public String getMessage()
    {
        
        return msg;
    }
      @Override
    public String getLocalizedMessage()
    {
        return msg;
    }

    
}

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/DataPusher.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.
 *
 * 
 */
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.agentcore;

import java.io.*;
import java.net.URL;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.xml.bind.JAXB;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.Duration;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
import javax.xml.ws.BindingProvider;
import org.miloss.fgsms.common.IpAddressUtility;
import org.miloss.fgsms.common.Constants.AuthMode;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.Header;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.datacollector.*;
import org.miloss.fgsms.services.interfaces.policyconfiguration.*;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;
;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.plugins.agents.IEndpointDiscovery;
import us.gov.ic.ism.v2.ClassificationType;


=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/DependencyHelper.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.Iterator;
import javax.xml.namespace.QName;
import javax.xml.soap.*;
import javax.xml.ws.handler.soap.SOAPMessageContext;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.Utility;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/**
 *
 * @author AO
 */
public class DependencyHelper {

    public static String getThreadIdFromSoapHeader(SOAPMessageContext messageContext) {
        try {
            SOAPMessage message = messageContext.getMessage();
            SOAPHeader soapHeader = message.getSOAPHeader();
            if (soapHeader != null) {
                Iterator childElements = soapHeader.getChildElements(new QName(FgsmsSoapHeaderConstants.namespace, FgsmsSoapHeaderConstants.threadid_message_localname));
                if (childElements.hasNext()) {
                    SOAPElement e = (SOAPElement) childElements.next();
                    String t = e.getTextContent();

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/FgsmsSoapHeaderConstants.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

/**
 *
 * @author AO
 * @since RC6.0.1
 */
public class FgsmsSoapHeaderConstants {
/**
 * SOAP Header 
 * org.miloss.fgsms.headers
 */
    public final static String namespace = "org.miloss.fgsms.headers";
    /**
     * localpart fgsms.relatedmessage
     * SOAP Headers
     */
    public final static String related_message_localname = "fgsms.relatedmessage";
    /**
     * local part fgsms.threadid
     * SOAP Headers
     */
    public final static String threadid_message_localname = "fgsms.threadid";
}

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/HelperBase.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.ArrayList;
import java.util.List;
import org.miloss.fgsms.common.Logger;;
import org.miloss.fgsms.plugins.agents.IEndpointDiscovery;

/**
 * Supports DCS, SS, and PCS discovery
 * @author AO
 */
public abstract class HelperBase {

    static ConfigLoader cfg = null;

    private static void Init() throws ConfigurationException {
        if (cfg == null) {
            cfg = new ConfigLoader();
        }

    }
    static Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);
    static List<IEndpointDiscovery> endpointproviders=null;
    
    /**
     * calls all {@link IEndpointDiscovery} interfaces to discover the location
     * of FGSMS's server, if configured
     * @throws ConfigurationException 
     */

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/IMessageProcessor.java
=====================================================
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.miloss.fgsms.agentcore;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.miloss.fgsms.services.interfaces.datacollector.AddDataRequestMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ArrayOfXPathExpressionType;
import org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy;

/**
 *
 * @author AO
 */
public interface IMessageProcessor {

    boolean isDependencyInjectionEnabled();

    /**
     * purges all queues and maps
     */
    void abort();

    /*
     * * Dependency Detection Only clear on an outbound service response
     */
    void clearTransactionThreadId(long ThreadId);

    /**
     * Use with caution. this will fire up a new thread. this is provided
     * specifically for mbean management
     */
    void forceNewDataPusherThread();

    ConfigLoader getConfig();

    /**
     * returns the lowercase value of the current hostname
     *
     * @return
     */
    String getHostName();

    String getLastErrorMessage();

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageCorrelator.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.HashMap;


/**
 *Provides a simple container to store ws data temporarily
 * @author AO
 */
  public class MessageCorrelator
    {
        public String soapAction;
        public String URL;
        public String MessageID;
        public String RelatedMsgId;
        public String TransactionThreadId;
        public String RequestMessage;
        public String ResponseMessage;
        public long CompletedAt;
        public long RecievedAt;
        public int reqsize;
        public int ressize;
        public int currentMapsize;
        public boolean  IsFault;
        /*
         * request headers
         * <String, String> OR
         * <String, List<String>
         */

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessor.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.
 *
 *
 */
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.agentcore;

import org.miloss.fgsms.agentcore.mp.DefaultMessageProcessor;
import java.lang.management.ManagementFactory;
import java.util.Properties;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;

/**
 * The Message Processor is a factory/single pattern class that provides access
 * to a singular instance of the IMessageProcessor.
 *
 * @see DefaultMessageProcessor
 *
 * @author AO
 */
public class MessageProcessor {

    private final static Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);

    private static IMessageProcessor singletonObject;

    public static void setSingletonObject(Object object) {
        singletonObject = (IMessageProcessor) object;
    }

    /**
     * gets a reference to the singleton class. be sure to call this before any
     * other static methods

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorAdapter.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

/**
 * Provides an implementation that exposes message processor functionality via
 * JMX
 *
 * @author AO
 */
public class MessageProcessorAdapter implements MessageProcessorAdapterMBean {

    @Override
    public void RemoveDeadMessage() {
        
        MessageProcessor.getSingletonObject().removeDeadMessage();
    }

    @Override
    public void Abort() {
        
        MessageProcessor.getSingletonObject().abort();
    }

    @Override
    public int GetPolicyCache() {
        
        return MessageProcessor.getSingletonObject().getPolicyCache();
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorAdapterMBean.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

/**
 * A MBean interface class for accessing the singleton message processor class
 * from JMX
 *
 * @author AO
 */
public interface MessageProcessorAdapterMBean {

    public String GetLastErrorMessage();

    public Long GetProcessedMessageCount();

    public void RemoveDeadMessage();

    public void Abort();

    public int GetPolicyCache();

    public int OutboundQueueSize();

    public int InternalMessageMapSize();

    public void PurgePolicyCache();

    public void PurgeOutboundQueue();

    public void PurgeMessageMap();

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/MessageProcessorImpl.java
=====================================================
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package org.miloss.fgsms.agentcore;

/**
 *
 * @author AO
 */
public class MessageProcessorImpl {

}

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/mp/DefaultMessageProcessor.java
=====================================================
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.miloss.fgsms.agentcore.mp;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.lang.management.ManagementFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.locks.ReentrantLock;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.apache.log4j.Level;
import org.miloss.fgsms.agentcore.ConfigLoader;
import org.miloss.fgsms.agentcore.ConfigurationException;
import org.miloss.fgsms.agentcore.DataPusher;
import org.miloss.fgsms.agentcore.IMessageProcessor;
import org.miloss.fgsms.agentcore.MessageCorrelator;
import org.miloss.fgsms.agentcore.PolicyHelper;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.Logger;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.datacollector.AddDataRequestMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.AndOrNot;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ArrayOfUserIdentity;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ArrayOfXPathExpressionType;
import org.miloss.fgsms.services.interfaces.policyconfiguration.RuleBaseType;
import org.miloss.fgsms.services.interfaces.policyconfiguration.SLA;
import org.miloss.fgsms.services.interfaces.policyconfiguration.SLARuleGeneric;
import org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy;
import org.w3c.dom.Document;

/**
* The Message Processor handles and manages the
 * collection of Transactional Web Service records. Using data from the fgsms
 * PCS, the MP sends performance stats to the fgsms DCS.<br><br>

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/mp/DropAllMessageProcessor.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore.mp;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.miloss.fgsms.agentcore.ConfigLoader;
import org.miloss.fgsms.agentcore.ConfigurationException;
import org.miloss.fgsms.agentcore.IMessageProcessor;
import org.miloss.fgsms.agentcore.MessageCorrelator;
import org.miloss.fgsms.common.Logger;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.datacollector.AddDataRequestMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ArrayOfXPathExpressionType;
import org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy;

/** 
 * This is a super simple implementation of message processor, which basically does 
 * nothing. It's primarily for test purposes
 * @author AO
 */
public class DropAllMessageProcessor implements IMessageProcessor {

    private final static Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);

    private ConfigLoader cfg = null;

    public DropAllMessageProcessor() {

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/OneWayJudge.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.agentcore;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.wsdl.*;
import javax.wsdl.xml.WSDLReader;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.ws.handler.soap.SOAPMessageContext;
import org.miloss.fgsms.common.Utility;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;
import org.w3c.dom.Document;

/**
 * Experimental, determines if a URI/SOAP Action is an
 *
 * @OneWAY transaction by pulling the wsdl and parsing
 * @author AO
 * @since 6.2
 */
public class OneWayJudge {

    final static Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);
    final static Map<String, Boolean> cache = new HashMap<String, Boolean>();


=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/OSAgentHelper.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.Map;
import javax.xml.ws.BindingProvider;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.datacollector.AddMachineAndProcessDataRequestMsg;
import org.miloss.fgsms.services.interfaces.datacollector.AddMachineAndProcessDataResponseMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.SetProcessListByMachineRequestMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.SetProcessListByMachineResponseMsg;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;

/**
 *  Provides some useful functions for building agents.. All
 * functions use the fgsms-agent.properties file within this JAR for
 * configuration purposes All functions support discovery mechanisms, retry
 * counts, failover/roundrobin
 *
 * @author AO
 */
public class OSAgentHelper extends HelperBase{

    static ConfigLoader cfg = null;

    private static void Init() throws ConfigurationException {
        if (cfg == null) {
            cfg = new ConfigLoader();
        }


=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PersistentAgentThreadRunner.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author AO
 */
public class PersistentAgentThreadRunner implements Runnable {

    private PersistentStorage m = null;

    PersistentAgentThreadRunner(PersistentStorage instance) {
        m = instance;
    }

    @Override
    public void run() {
        try {
            if (m == null) {
                m = new PersistentStorage();
            }
            m.init(null);
        } catch (Exception ex) {
            Logger.getLogger(PersistentAgentThreadRunner.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PersistentStorage.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import org.miloss.fgsms.common.Utility;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.util.Map;
import javax.xml.ws.BindingProvider;
import org.miloss.fgsms.services.interfaces.common.*;
import org.miloss.fgsms.services.interfaces.datacollector.*;

import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;
import org.apache.log4j.PropertyConfigurator;
import org.miloss.fgsms.common.Constants;

/**
 *  The persistent storage agent Used for transactional web service
 * logs when they cannot be transmitted and are stored on disk This will
 * periodically ready from disk and attempt to send back a single transaction
 * log, if successful, all remaining items are enqueued.
 *
 * @author AO
 */
public class PersistentStorage {


=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PolicyFetch.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.agentcore;

import java.io.*;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.Unmarshaller;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
import javax.xml.ws.BindingProvider;
import org.miloss.fgsms.common.Utility;

import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.policyconfiguration.GetGlobalPolicyRequestMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.GetGlobalPolicyResponseMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.GlobalPolicy;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicy;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicyRequestMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicyResponseMsg;
import org.miloss.fgsms.services.interfaces.policyconfiguration.StatisticalServicePolicy;
import org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;
import org.miloss.fgsms.common.Constants;
import us.gov.ic.ism.v2.ClassificationType;

/**
 * Provides some useful functions for building agents.. All functions
 * use the fgsms-agent.properties file within this JAR for configuration

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/PolicyHelper.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import org.miloss.fgsms.services.interfaces.policyconfiguration.TransactionalWebServicePolicy;




/**
 * provides a storage class for service policies. this is used in a hashtable to cache message policies
 * 
 *
 * @author AO
 *



 */
public class PolicyHelper {

    public TransactionalWebServicePolicy policy;
    public long lastUpdate;
}

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/servlets/ServetShutdownListener.java
=====================================================
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package org.miloss.fgsms.agentcore.servlets;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.miloss.fgsms.agentcore.IMessageProcessor;
import org.miloss.fgsms.agentcore.MessageProcessor;

/**
 * This is designed to stop and terminate the message process when the agent is
 * ran inside of a web application WAR or EAR file. It will block until the
 * queue has been purged, but no additional requests will be allowed to enter
 * the queue.
 *
 * @author AO
 */
public class ServetShutdownListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {

    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        IMessageProcessor singletonObject = MessageProcessor.getSingletonObject();
        System.out.println(sce.getServletContext().getContextPath() + " is shutting down. FGSMS data enqueued is " + singletonObject.outboundQueueSize());

        singletonObject.setRunning(false);
        while (singletonObject.outboundQueueSize() > 0) {
            System.out.println(sce.getServletContext().getContextPath() + " is shutting down. Waiting for queue to finish processing: items left: " + singletonObject.outboundQueueSize());
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
            }
        }
        singletonObject.terminate();

        org.apache.commons.logging.LogFactory.release(
                Thread.currentThread().getContextClassLoader());
        org.apache.commons.logging.LogFactory.release(this.getClass().getClassLoader());
        org.apache.log4j.LogManager.shutdown();
        
     

    }

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/StatisticalHelper.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.agentcore;

import java.util.Map;
import javax.xml.ws.BindingProvider;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.datacollector.AddStatisticalDataRequestMsg;
import org.miloss.fgsms.services.interfaces.datacollector.AddStatisticalDataResponseMsg;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;

/**
 * Provides some useful functions for building agents.. All functions
 * use the fgsms-agent.properties file within this JAR for configuration
 * purposes All functions support discovery mechanisms, retry counts,
 * failover/roundrobin
 *
 * @since RC6
 * @author AO
 */
public class StatisticalHelper extends HelperBase{

    protected static ConfigLoader cfg = null;
    static Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);

    private static void Init() throws ConfigurationException {
        if (cfg == null) {
            cfg = new ConfigLoader();
        }

    }

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/java/org/miloss/fgsms/agentcore/StatusHelper.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Map;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.ws.BindingProvider;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.status.SetStatusRequestMsg;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Logger;;
import us.gov.ic.ism.v2.ClassificationType;

/**
 *  provides a simple to use interface for setting/updating the status
 * of any service All functions use the fgsms-agent.properties file within
 * this JAR for configuration purposes All functions support discovery
 * mechanisms, retry counts, failover/roundrobin
 *
 * @author AO
 */
public class StatusHelper extends  HelperBase{

    static ConfigLoader cfg = null;
    static Logger log = Logger.getLogger(org.miloss.fgsms.common.Constants.LoggerName);

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/fgsms-pki-config.xml.xml
=====================================================
<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : fgsms-username-config.xml.xml
    Created on : October 16, 2011, 3:34 PM
    Author     : Administrator
    Description:
        Purpose of the document follows.
-->

<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
    <config>
       <usernname/>
    </config>
</jboss-ws-security>

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/fgsms-username-config.xml
=====================================================
<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : fgsms-username-config.xml.xml
    Created on : October 16, 2011, 3:34 PM
    Author     : Administrator
    Description:
        Purpose of the document follows.
-->

<jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
    <config>
       <usernname/>
    </config>
</jboss-ws-security>

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/META-INF/log4j.properties
=====================================================

log4j.rootLogger=INFO, CONSOLE



log4j.appender.jaxws.JAXWSWebServiceMetaDataBuilder=ERROR,CONSOLE
log4j.appender.jaxws=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata.builder=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata.builder.MetaDataBuilder=ERROR,CONSOLE
log4j.appender.builder.MetaDataBuilder=ERROR,CONSOLE
log4j.appender.builder=ERROR,CONSOLE
log4j.appender.org.apache.cxf.service.factory.ReflectionServiceFactoryBean=ERROR,CONSOLE

log4j.appender.handler.HandlerChainExecutor=ERROR,CONSOLE
log4j.appender.handler=ERROR,CONSOLE
log4j.appender.soap.MessageContextAssociation=ERROR,CONSOLE

log4j.appender.httpclient.wire.content=WARN, CONSOLE
log4j.appender.httpclient.wire=WARN, CONSOLE
log4j.appender.org.apache.commons.httpclient=WARN, CONSOLE

log4j.appender.httpclient.wire.content=WARN, CONSOLE
log4j.appender.httpclient.wire=WARN, CONSOLE
log4j.appender.org.apache.commons.httpclient=WARN, CONSOLE

log4j.appender.umdm.EndpointMetaData==ERROR, CONSOLE
log4j.appender.handler.HandlerResolverImpl==ERROR, CONSOLE
log4j.appender.binding.BindingImpl==ERROR, CONSOLE
log4j.appender.jaxws.JAXWSWebServiceMetaDataBuilder==ERROR, CONSOLE
log4j.appender.utils.JBossWSEntityResolver==ERROR, CONSOLE
log4j.appender.fgsms.ServiceMixJMX=INFO,CONSOLE
log4j.appender.fgsms.Utility=INFO,CONSOLE
log4j.appender.fgsms.StatusBueller=INFO,CONSOLE
log4j.appender.fgsms.DataCollectorService=INFO,CONSOLE
log4j.appender.fgsms.DataAccessService=INFO,CONSOLE
log4j.appender.org.miloss.fgsms.common.AuditLogger=INFO,CONSOLE
log4j.appender.fgsms.UserIdentityUtil=INFO,CONSOLE
log4j.appender.fgsms.StatusBueller=INFO,CONSOLE
log4j.appender.fgsms.QpidPython=INFO,CONSOLE
log4j.appender.fgsms.QpidJMX=INFO,CONSOLE
log4j.appender.fgsms.DataPruner=INFO,CONSOLE
log4j.appender.fgsms.UDDIPublisher=INFO,CONSOLE
log4j.appender.fgsms.MulticastAlerting=INFO,CONSOLE
log4j.appender.fgsms.SLAProcessor=INFO,CONSOLE

#the following items are used for sending SLA Alerts to specific loggers. Configure them as necessary to pipe log output whereever you need it
log4j.appender.fgsms.SLAProcessor.SysLog=INFO,CONSOLE 
log4j.appender.fgsms.SLAProcessor.UdpLog=INFO,CONSOLE
log4j.appender.fgsms.SLAProcessor.EventLog=INFO,CONSOLE

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/org/miloss/fgsms/agentcore/defaultpolicy.xml
=====================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
    Document   : defaultpolicy.xml
    Created on : December 11, 2011, 11:17 AM
    Author     : Administrator
    Description:
	Purpose of the document follows.
	This is used when the FGSMS PCS is not available as a default policy
-->



<transactionalWebServicePolicy xmlns:ns2="urn:org:miloss:fgsms:services:interfaces:common" xmlns="urn:org:miloss:fgsms:services:interfaces:policyConfiguration" xmlns:ns3="urn:org:miloss:fgsms:services:interfaces:dataCollector">
     <BucketCategory xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <Description xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <POC xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ExternalURL xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <MachineName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <DomainName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ParentObject xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <DataTTL>P30DT0H0M0.000S</DataTTL>
     <PolicyRefreshRate>PT3M0.000S</PolicyRefreshRate>
     <FederationPolicyCollection xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <PolicyType>Transactional</PolicyType>
     <AgentsEnabled>true</AgentsEnabled>
     <Location xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <ServiceLevelAggrements xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <URL></URL>
     <displayName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
     <RecordFaultsOnly>false</RecordFaultsOnly>
     <RecordRequestMessage>false</RecordRequestMessage>
     <RecordResponseMessage>false</RecordResponseMessage>
     <RecordedMessageCap>1024000</RecordedMessageCap>
     <RecordHeaders>false</RecordHeaders>
     <BuellerEnabled>true</BuellerEnabled>
     <HealthStatusEnabled>false</HealthStatusEnabled>
     <UserIdentification xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
</transactionalWebServicePolicy>

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/main/resources/org/miloss/fgsms/agentcore/fgsms-agent.properties
=====================================================
# fgsms Agent Properties file.

# use this file to configure the necessary settings for FGSMS's embedded agents

#note, if using SSL, a truststore must be supplied containing all supporting certificates to be trusted and their verification chain
#use the Java options setting -Djavax.net.ssl.trustStore=filename and -Djavax.net.ssl.trustStorePassword=pass
#this is normally within the container that this agent lives in and action isn't necessary




#################################################################
# The following is for this agent to authenticate to fgsms's web services
#################################################################

#can be None, PKI, UsernamePassword
fgsms.AuthMode=UsernamePassword

#if using Username/Password
fgsms.AuthMode.Username=fgsmsagent
## it's expected that this property is encrypted using java -jar fgsms.Common.jar
## or java -classpath fgsms.Common.jar org.miloss.fgsms.common.Main en password
fgsms.AuthMode.Password=S1aX9lQWzyjLjOTF3F7Bag==:buYHk1L3oggQsQd0gvvF7d7lA8FTM5ob91xjzDpLFO4=:8M55SYL0XwwGc+aL4+rIwQ==
#default = da_password1

#if using SSL connections, you must specific the password for the JKS trust store, located in META-INF/truststore.jks. The default store includes a self signed authority
#This is only required for containers or components that do not set javax.net.ssl settings.
#in other words, if the keystore information is not set, the agent will set it to ensure operation. This may have unexpected consequences depending on the container and JAAS manager
## it's expected that this property is encrypted using java -jar fgsms.Common.jar 
fgsms.TrustStore.Password=7wNxAUiANvnDbBtkB4G5Mw==:L+iG6Q4/ptL9pJ0TuHWpLiESMD4Lf2W2+HTmh1p2r/M=:mFdeOp/XNUR3yZW5ZZz8dg==

#if using PKI for authentication, you must specific the password for the JKS key store, located in META-INF/key.jks. The default store includes a self signed certificate
#if must be a JKS and the key's password must patch the password for the key store
#This is only required for containers or components that do not set javax.net.ssl settings.
#in other words, if the keystore information is not set, the agent will set it to ensure operation. This may have unexpected consequences depending on the container and JAAS manager
#if PKI is not used, comment this out
fgsms.KeyStore.Password=7wNxAUiANvnDbBtkB4G5Mw==:L+iG6Q4/ptL9pJ0TuHWpLiESMD4Lf2W2+HTmh1p2r/M=:mFdeOp/XNUR3yZW5ZZz8dg==








##############################################################
####### Note: Unless noted, all URLs here represent execution URLs, not WSDL urls #########
####### WSDLs are stored within this jar and loaded at runtime #####################
##############################################################


=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/AgentcoreSuite.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

/**
 *
 * @author AO
 */
@org.junit.runner.RunWith(org.junit.runners.Suite.class)
@org.junit.runners.Suite.SuiteClasses({ DataPusherTest.class, MessageProcessorTest.class})

public class AgentcoreSuite {

    @org.junit.BeforeClass
    public static void setUpClass() throws Exception {
    }

    @org.junit.AfterClass
    public static void tearDownClass() throws Exception {
    }

    @org.junit.Before
    public void setUp() throws Exception {
    }

    @org.junit.After
    public void tearDown() throws Exception {
    }

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/DataPusherTest.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.HashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author AO
 */
public class DataPusherTest {
    
    public DataPusherTest() {
    }

    @org.junit.BeforeClass
    public static void setUpClass() throws Exception {
    }

    @org.junit.AfterClass
    public static void tearDownClass() throws Exception {
    }

    @org.junit.Before
    public void setUp() throws Exception {
    }

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/java/org/miloss/fgsms/agentcore/MessageProcessorTest.java
=====================================================
/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * If it is not possible or desirable to put the notice in a particular
 * file, then You may include the notice in a location (such as a LICENSE
 * file in a relevant directory) where a recipient would be likely to look
 * for such a notice.

 * 
 */
 
/*  ---------------------------------------------------------------------------
 *  U.S. Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */

package org.miloss.fgsms.agentcore;

import java.util.HashMap;
import java.util.UUID;
import org.miloss.fgsms.common.Utility;

import static org.junit.Assert.*;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicy;

/**
 *
 * @author AO
 */
public class MessageProcessorTest {

    public MessageProcessorTest() {
    }

    @org.junit.BeforeClass
    public static void setUpClass() throws Exception {
    }

    @org.junit.AfterClass
    public static void tearDownClass() throws Exception {
    }

    @org.junit.Before
    public void setUp() throws Exception {
    }

=====================================================
== File: C:/projects/fgsms/fgsms-agents/fgsms-agentcore/src/test/resources/log4j.properties
=====================================================

log4j.rootLogger=INFO, CONSOLE



log4j.appender.jaxws.JAXWSWebServiceMetaDataBuilder=ERROR,CONSOLE
log4j.appender.jaxws=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata.builder=ERROR,CONSOLE
log4j.appender.org.jboss.ws.metadata.builder.MetaDataBuilder=ERROR,CONSOLE
log4j.appender.builder.MetaDataBuilder=ERROR,CONSOLE
log4j.appender.builder=ERROR,CONSOLE
log4j.appender.org.apache.cxf.service.factory.ReflectionServiceFactoryBean=ERROR,CONSOLE

log4j.appender.handler.HandlerChainExecutor=ERROR,CONSOLE
log4j.appender.handler=ERROR,CONSOLE
log4j.appender.soap.MessageContextAssociation=ERROR,CONSOLE

log4j.appender.httpclient.wire.content=WARN, CONSOLE
log4j.appender.httpclient.wire=WARN, CONSOLE
log4j.appender.org.apache.commons.httpclient=WARN, CONSOLE

log4j.appender.httpclient.wire.content=WARN, CONSOLE
log4j.appender.httpclient.wire=WARN, CONSOLE
log4j.appender.org.apache.commons.httpclient=WARN, CONSOLE

log4j.appender.umdm.EndpointMetaData==ERROR, CONSOLE
log4j.appender.handler.HandlerResolverImpl==ERROR, CONSOLE
log4j.appender.binding.BindingImpl==ERROR, CONSOLE
log4j.appender.jaxws.JAXWSWebServiceMetaDataBuilder==ERROR, CONSOLE
log4j.appender.utils.JBossWSEntityResolver==ERROR, CONSOLE
log4j.appender.fgsms.ServiceMixJMX=INFO,CONSOLE
log4j.appender.fgsms.Utility=INFO,CONSOLE
log4j.appender.fgsms.StatusBueller=INFO,CONSOLE
log4j.appender.fgsms.DataCollectorService=INFO,CONSOLE
log4j.appender.fgsms.DataAccessService=INFO,CONSOLE
log4j.appender.org.miloss.fgsms.common.AuditLogger=INFO,CONSOLE
log4j.appender.fgsms.UserIdentityUtil=INFO,CONSOLE
log4j.appender.fgsms.StatusBueller=INFO,CONSOLE
log4j.appender.fgsms.QpidPython=INFO,CONSOLE
log4j.appender.fgsms.QpidJMX=INFO,CONSOLE
log4j.appender.fgsms.DataPruner=INFO,CONSOLE
log4j.appender.fgsms.UDDIPublisher=INFO,CONSOLE
log4j.appender.fgsms.MulticastAlerting=INFO,CONSOLE
log4j.appender.fgsms.SLAProcessor=INFO,CONSOLE

#the following items are used for sending SLA Alerts to specific loggers. Configure them as necessary to pipe log output whereever you need it
log4j.appender.fgsms.SLAProcessor.SysLog=INFO,CONSOLE 
log4j.appender.fgsms.SLAProcessor.UdpLog=INFO,CONSOLE
log4j.appender.fgsms.SLAProcessor.EventLog=INFO,CONSOLE