The following document contains the results of Rat (Release Audit Tool).
*****************************************************
Summary
-------
Generated at: 2017-03-12T00:06:39-05:00
Notes: 0
Binaries: 0
Archives: 0
Standards: 8
Apache Licensed: 0
Generated Documents: 0
JavaDocs are generated, thus a license header is optional.
Generated files do not require license headers.
8 Unknown Licenses
*****************************************************
Files with unapproved licenses:
C:/projects/fgsms/fgsms-server/fgsms-stats/pom.xml
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/FgsmsStatsv2.java
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/BaseJob.java
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/BrokerStatisticsJob.java
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/MachineProcessJob.java
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/StatusStatisticsJob.java
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/TransactionalStatisticsJob.java
C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/StatisticsContainer.java
*****************************************************
*****************************************************
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-server/fgsms-stats/pom.xml
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/FgsmsStatsv2.java
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/BaseJob.java
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/BrokerStatisticsJob.java
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/MachineProcessJob.java
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/StatusStatisticsJob.java
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/TransactionalStatisticsJob.java
!????? C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/StatisticsContainer.java
*****************************************************
Printing headers for text files without a valid license header...
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/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-server</artifactId>
<version>7.0.0</version>
</parent>
<artifactId>fgsms-stats</artifactId>
<packaging>bundle</packaging>
<name>fgsms Statistics Aggregator</name>
<description>Aggregates performance metrics and statistics to increase performance.</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>
<groupId>org.mil-oss</groupId>
<artifactId>fgsms-agentcore</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/FgsmsStatsv2.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.statistics;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.miloss.fgsms.common.DBSettingsLoader;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.dataaccessservice.OperationalRecord;
import org.miloss.fgsms.services.interfaces.policyconfiguration.KeyNameValueEnc;
import org.apache.log4j.Level;
import org.miloss.fgsms.agentcore.MessageProcessor;
import org.miloss.fgsms.common.Logger;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.statistics.jobs.BrokerStatisticsJob;
import org.miloss.fgsms.statistics.jobs.MachineProcessJob;
import org.miloss.fgsms.statistics.jobs.StatusStatisticsJob;
import org.miloss.fgsms.statistics.jobs.TransactionalStatisticsJob;
/**
* Statistics Calculator for fgsms. It rips through the various performance
* database tables and calculates aggregated statistics for all services.
* Several other capabilities depend on this functioning, including the non
* transactional SLA processor (for rate information, MBTF,etc), Federation
* publishers (UDDI) and the user interface is heavily driven off this data.
*
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/BaseJob.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.statistics.jobs;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.services.interfaces.dataaccessservice.OperationalRecord;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.log;
/**
*
* @author AO
*/
public abstract class BaseJob implements Runnable{
protected long getSLACount(final String url, final Long ts, Connection con) {
long r = 0;
PreparedStatement cmd = null;
ResultSet rs = null;
try {
cmd = con.prepareStatement("select count(*) from slaviolations where uri=? and utcdatetime > ?");
cmd.setString(1, url);
cmd.setLong(2, System.currentTimeMillis() - ts);
rs = cmd.executeQuery();
if (rs.next()) {
r = rs.getLong(1);
}
} catch (Exception ex) {
log.log(Level.ERROR, null, ex);
} finally {
DBUtils.safeClose(rs);
DBUtils.safeClose(cmd);
}
return r;
}
protected void insertRow(Connection perf, final String url, final String action, final long period) {
PreparedStatement prepareStatement = null;
try {
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/BrokerStatisticsJob.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.statistics.jobs;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.apache.log4j.Level;
import org.miloss.fgsms.agentcore.MessageProcessor;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.SERVICE_NAME;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.allitems;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.log;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.myUrl;
/**
*
* @author AO
*/
public class BrokerStatisticsJob extends BaseJob {
List<Long> periods;
public BrokerStatisticsJob(List<Long> periods) {
this.periods = periods;
}
@Override
public void run() {
UUID random = UUID.randomUUID();
MessageProcessor.getSingletonObject().processMessageInput(SERVICE_NAME, 0, myUrl, "machine/process", "system", random.toString(), new HashMap(), "", this.getClass().getCanonicalName(), "", "");
Connection ConfigCon = Utility.getConfigurationDBConnection();
Connection PerfCon = Utility.getPerformanceDBConnection();
try {
doWorkBrokers(ConfigCon, PerfCon, periods);
MessageProcessor.getSingletonObject().processMessageOutput(random.toString(), "success", 0, false, System.currentTimeMillis(), new HashMap());
} catch (Exception ex) {
MessageProcessor.getSingletonObject().processMessageOutput(random.toString(), "error " + ex.getMessage(), 0, true, System.currentTimeMillis(), new HashMap());
} finally {
DBUtils.safeClose(PerfCon);
DBUtils.safeClose(ConfigCon);
}
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/MachineProcessJob.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.statistics.jobs;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.apache.log4j.Level;
import org.miloss.fgsms.agentcore.MessageProcessor;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.dataaccessservice.OperationalRecord;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.SERVICE_NAME;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.allitems;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.log;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.myUrl;
/**
*
* @author AO
*/
public class MachineProcessJob extends BaseJob implements Runnable {
List<Long> periods;
public MachineProcessJob(List<Long> periods) {
this.periods = periods;
}
@Override
public void run() {
UUID random = UUID.randomUUID();
MessageProcessor.getSingletonObject().processMessageInput(SERVICE_NAME, 0, myUrl, "machine/process", "system", random.toString(), new HashMap(), "", this.getClass().getCanonicalName(), "", "");
Connection ConfigCon = Utility.getConfigurationDBConnection();
Connection PerfCon = Utility.getPerformanceDBConnection();
try {
doWorkMachinesProcesses(ConfigCon, PerfCon, periods);
MessageProcessor.getSingletonObject().processMessageOutput(random.toString(), "success", 0, false, System.currentTimeMillis(), new HashMap());
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/StatusStatisticsJob.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.statistics.jobs;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.apache.log4j.Level;
import org.miloss.fgsms.agentcore.MessageProcessor;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.dataaccessservice.OperationalRecord;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.SERVICE_NAME;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.allitems;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.log;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.myUrl;
/**
*
* @author AO
*/
public class StatusStatisticsJob extends BaseJob implements Runnable {
List<Long> periods;
public StatusStatisticsJob(List<Long> periods) {
this.periods = periods;
}
@Override
public void run() {
UUID random = UUID.randomUUID();
MessageProcessor.getSingletonObject().processMessageInput(SERVICE_NAME, 0, myUrl, "status", "system", random.toString(), new HashMap(), "", this.getClass().getCanonicalName(), "", "");
Connection ConfigCon = Utility.getConfigurationDBConnection();
Connection PerfCon = Utility.getPerformanceDBConnection();
try {
doWorkForStatusItemsOnly(ConfigCon, PerfCon, periods);
MessageProcessor.getSingletonObject().processMessageOutput(random.toString(), "success", 0, false, System.currentTimeMillis(), new HashMap());
} catch (Exception ex) {
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/jobs/TransactionalStatisticsJob.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.statistics.jobs;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import org.apache.log4j.Level;
import org.miloss.fgsms.agentcore.MessageProcessor;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Utility;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.SERVICE_NAME;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.allitems;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.log;
import static org.miloss.fgsms.statistics.FgsmsStatsv2.myUrl;
import org.miloss.fgsms.statistics.StatisticsContainer;
/**
*
* @author AO
*/
public class TransactionalStatisticsJob extends BaseJob {
List<Long> periods;
String uri;
public TransactionalStatisticsJob(List<Long> periods, String string) {
this.periods = periods;
this.uri = string;
}
@Override
public void run() {
UUID random = UUID.randomUUID();
MessageProcessor.getSingletonObject().processMessageInput(SERVICE_NAME + " for " + uri, 0, myUrl, "transactional", "system", random.toString(), new HashMap(), "", this.getClass().getCanonicalName(), "", "");
Connection ConfigCon = Utility.getConfigurationDBConnection();
Connection PerfCon = Utility.getPerformanceDBConnection();
try {
doWorkTransactional(ConfigCon, PerfCon, periods, uri);
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-stats/src/main/java/org/miloss/fgsms/statistics/StatisticsContainer.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.statistics;
/**
*
* @author AO
*/
public class StatisticsContainer {
public long faults = 0;
public long success = 0;
public long sla = 0;
public long averageresponsetime = 0;
public long mtbf = 0;
public long max_responsetime = 0;
public long max_request_size = 0;
public long max_response_size = 0;
public long totalprocessingtime = 0;
public String uri;
public String action;
public long timeperiod;
public double availibity = -1;
}