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:58:43-05:00

Notes: 0
Binaries: 0
Archives: 0
Standards: 48

Apache Licensed: 2
Generated Documents: 0

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

46 Unknown Licenses

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

Files with unapproved licenses:

  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/pom.xml
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/CsvExporter.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/ReportGeneratorPlugin.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/Reporting.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/AvailabilityByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/BaseReportGenerator.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/ConsumersByQueueOrTopic.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/QueueDepth.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/QueueTopicCountByBroker.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/CpuUsageReport.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/DiskIOReport.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/FreeDiskSpace.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/MemoryUsageReport.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/NetworkIOReport.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/OpenFilesByProcess.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/ThreadCount.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ServiceLevelAgreementReport.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageMessageSizeByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageMessageSizeByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageResponseTimeByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageResponseTimeByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/BaseWebServiceReport.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumer.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumerByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumerByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByDataCollector.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByHostingServer.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/MeanTimeBetweenFailureByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ResponseTimeOverTime.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByHostingServer.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByHostingServer.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/TotalMessageSizeByServiceByMethod.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/TotalMessageSizesByService.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/StatusRecordsExt.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/TimeSeriesContainer.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/footer.txt
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/settings.properties
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/java/org/miloss/fgsms/services/rs/impl/GenerateDocumentationTest.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/java/org/miloss/fgsms/services/rs/impl/ReportingTest.java
  C:/projects/fgsms/fgsms-server/fgsms-reporting-service/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-server/fgsms-reporting-service/pom.xml
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/CsvExporter.java
  AL    C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/OpStat.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/ReportGeneratorPlugin.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/Reporting.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/AvailabilityByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/BaseReportGenerator.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/ConsumersByQueueOrTopic.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/QueueDepth.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/QueueTopicCountByBroker.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/CpuUsageReport.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/DiskIOReport.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/FreeDiskSpace.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/MemoryUsageReport.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/NetworkIOReport.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/OpenFilesByProcess.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/ThreadCount.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ServiceLevelAgreementReport.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageMessageSizeByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageMessageSizeByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageResponseTimeByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageResponseTimeByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/BaseWebServiceReport.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumer.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumerByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumerByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByDataCollector.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByHostingServer.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/MeanTimeBetweenFailureByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ResponseTimeOverTime.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByHostingServer.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByHostingServer.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/TotalMessageSizeByServiceByMethod.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/TotalMessageSizesByService.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/StatusRecordsExt.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/TimeSeriesContainer.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/footer.txt
  AL    C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/header.txt
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/settings.properties
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/java/org/miloss/fgsms/services/rs/impl/GenerateDocumentationTest.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/java/org/miloss/fgsms/services/rs/impl/ReportingTest.java
 !????? C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/resources/log4j.properties
 
*****************************************************

 Printing headers for text files without a valid license header...
 
=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/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-reporting-service</artifactId>
     <packaging>bundle</packaging>
     <name>fgsms Reporting Service</name>
     <description>Processes reports on demand</description>
     <dependencies>
	   <dependency>
		    <groupId>junit</groupId>
		    <artifactId>junit</artifactId>
		    <scope>test</scope>
	       </dependency>
	  <dependency>
	       <groupId>org.mil-oss</groupId>
	       <artifactId>fgsms-common-interfaces</artifactId>
	       <version>${project.parent.version}</version>
	  </dependency>

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

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/CsvExporter.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.services.rs.impl;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.faults.ServiceUnavailableFaultCodes;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportCSVDataRequestMsg;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportDataToCSVResponseMsg;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportRecordsEnum;
import org.miloss.fgsms.services.interfaces.reportingservice.ServiceUnavailableException;
import static org.miloss.fgsms.services.rs.impl.Reporting.delimiter;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.isPolicyTypeOf;
import static org.miloss.fgsms.services.rs.impl.Reporting.log;
import static org.miloss.fgsms.services.rs.impl.Reporting.name;
import static org.miloss.fgsms.services.rs.impl.Reporting.toSafeFileName;

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

    static ExportDataToCSVResponseMsg exportDataToCSV(WebServiceContext ctx, String currentUser, SecurityWrapper classlevel, ExportCSVDataRequestMsg request) throws ServiceUnavailableException {
        ExportDataToCSVResponseMsg res = new ExportDataToCSVResponseMsg();
        res.setClassification(classlevel);

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/ReportGeneratorPlugin.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.services.rs.impl;

import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;

/**
 * This interface is a plugin type of interface for generating user
 * facing reports based on their specifiied criteria, namely service policy
 * URI, time range, and report type. The output is formatted HTML content.
 * 
 * Implementations must be thread safe as instances can be shared across threads
 * @author AO
 * @since 7.1
 */
public interface ReportGeneratorPlugin {

    /**
     * human friendly display name of the report type
     * @return 
     */
    public String getDisplayName();
    /**
     * a human readable description, it will be html encoded
     * @return 
     */
    public String getDescription();
    /**
     * a list of all policy types that this report applies to
     * @return 
     */
    public List<PolicyType> getAppliesTo();
    /**
     * Generates the content of the report
     * 
     * Implementors must check access control urls using {@link UserIdentityUtil}
     * prior to report generation. The expected behavior is to skip the url if

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/Reporting.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.
 *
 * 
 */
/*  ---------------------------------------------------------------------------
 *  US Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.services.rs.impl;

import org.miloss.fgsms.plugins.reporting.ReportGeneratorPlugin;
import java.io.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.servlet.http.HttpServletRequest;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.AuditLogger;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Logger;
import org.miloss.fgsms.common.UserIdentityUtil;
import org.miloss.fgsms.common.Utility;

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/AvailabilityByService.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.services.rs.impl.reports;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.time.TimeSeriesDataItem;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import org.miloss.fgsms.plugins.reporting.ReportGeneratorPlugin;
import org.miloss.fgsms.services.interfaces.common.NameValuePair;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.log;
import org.miloss.fgsms.services.rs.impl.StatusRecordsExt;

/**
 *
 * @author AO
 */
public class AvailabilityByService implements ReportGeneratorPlugin {

    @Override
    public String GetDisplayName() {
        return "Availability By Service";
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/BaseReportGenerator.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.services.rs.impl.reports;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.DecimalFormat;
import java.util.Collections;
import java.util.List;
import org.apache.log4j.Level;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Logger;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.policyconfiguration.ServicePolicy;
import org.miloss.fgsms.plugins.reporting.ReportGeneratorPlugin;
import org.miloss.fgsms.services.interfaces.common.NameValuePair;
import org.miloss.fgsms.sla.SLACommon;

/**
 *
 * @author AO
 */
public abstract class BaseReportGenerator implements ReportGeneratorPlugin{

    protected static final String name = "fgsms.ReportingService";
    public final static Logger log = Logger.getLogger(name);
    public static String allitems = "All-Methods";
    public final 
            DecimalFormat format = new DecimalFormat("###,###.##");
      
    public static String getPolicyDisplayName(String uri){
        ServicePolicy policy = SLACommon.LoadPolicyPooled(uri);
        if (policy==null){
            //very unexpected
            return uri;
        }
        if (policy.getDisplayName()!=null && policy.getDisplayName().length()>0)
            return policy.getDisplayName();
        return uri;
    }
    protected static boolean isPolicyTypeOf(String uri, PolicyType p) {
        Connection con = Utility.getConfigurationDBConnection();
        PreparedStatement com = null;
        ResultSet rs = null;

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/ConsumersByQueueOrTopic.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.services.rs.impl.reports.broker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import org.miloss.fgsms.plugins.reporting.ReportGeneratorPlugin;
import org.miloss.fgsms.services.interfaces.common.NameValuePair;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.isPolicyTypeOf;
import static org.miloss.fgsms.services.rs.impl.Reporting.log;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class ConsumersByQueueOrTopic implements ReportGeneratorPlugin {

    @Override
    public String GetDisplayName() {
        return "Average Consumers By Queue/Topic";
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/QueueDepth.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.services.rs.impl.reports.broker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class QueueDepth extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Message Broker Queue Depth";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the average queue depth of all channels (topics/queues/etc) on a specific message broker. An increase or high "
                + "rate can indicate that a subscriber is offline or non-functional. For chart, X axis is time, Y is queue depth";
    }


=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/broker/QueueTopicCountByBroker.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.services.rs.impl.reports.broker;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class QueueTopicCountByBroker extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Queue or Topic Count on a Message Broker";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the count of channels/topics/queues for a given message broker. For the chart, X axis is time, Y is queue/topic count";
    }

    @Override
    public List<PolicyType> GetAppliesTo() {
        ArrayList<PolicyType> ret = new ArrayList<PolicyType>();

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/CpuUsageReport.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class CpuUsageReport extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "CPU Usage";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the number of CPU utilization of process or a machine. For the chart, X axis is time, Y is CPU% in use (all cores)";
    }

    @Override
    public List<PolicyType> GetAppliesTo() {

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/DiskIOReport.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.TimeSeriesContainer;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class DiskIOReport extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Disk I/O";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the disk I/O operating on a logical partition on a given machine over time. For the chart, X axis is time, Y is I/O rate";
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/FreeDiskSpace.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.TimeSeriesContainer;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class FreeDiskSpace extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Free Disk Space";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the free disk space (MB) on a logical partition on a given machine over time. Low disk space can cause system "
                + "failure or prevent the system from saving audit logs. For the chart, X axis is time, Y axis free disk space host/partition";
    }


=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/MemoryUsageReport.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class MemoryUsageReport extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Memory Usage";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the memory usage for a given machine or process. For the chart, X axis is time, Y is Memory% in use";
    }

    @Override
    public List<PolicyType> GetAppliesTo() {

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/NetworkIOReport.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.TimeSeriesContainer;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class NetworkIOReport extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Network I/O rates by Machine";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the network throughput rates of a machine over time as reported by the operating system, hypervisor, and/or network card. For the chart, X axis is time, Y is I/O rate";
    }


=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/OpenFilesByProcess.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class OpenFilesByProcess extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Open Files by Process";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the number of open file handles that are owned by a specific process. A high or increasing"
                + " number handles can indicate a resource leak. For the chart, X axis is time, Y axis open file handle count";
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/os/ThreadCount.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.services.rs.impl.reports.os;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class ThreadCount extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Thread Count";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "This represents the number of threads running on a given machine or that are owned by a specific process. A high or increasing"
                + " number threads can indicate a resource leak. For the chart, X axis is time, Y is threads in use";
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ServiceLevelAgreementReport.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.services.rs.impl.reports;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import org.miloss.fgsms.services.rs.impl.Reporting;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator.isPolicyTypeOf;

/**
 *
 * @author AO
 */
public class ServiceLevelAgreementReport extends BaseReportGenerator {

    @Override
    public String GetDisplayName() {
        return "Service Level Agreement violations";
    }

    @Override
    public String GetHtmlFormattedHelp() {
        return "Applies to all service policy types. This report generates a table and bar chart outlining all SLA violations for a given service. An SLA is basically"
                + " a rule and action based on recorded data. An SLA Fault is not necessarily a performance and"
                + " are based on the rules configured for each service.";
    }

    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageMessageSizeByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import org.miloss.fgsms.services.rs.impl.Reporting;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class AverageMessageSizeByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Average Message Size By Service";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return super.GetHtmlFormattedHelp() + " This represents the average combined request and response message size of each service. A negative value generally indicates that the information was not able to be collected by the agent. "

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageMessageSizeByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class AverageMessageSizeByServiceByMethod extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Average Message Size By Service By Method";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return super.GetHtmlFormattedHelp() + " This represents the average combined request and response message size of each "

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageResponseTimeByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class AverageResponseTimeByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Average Response Time By Service";
    }
    
     /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp(){
        return super.GetHtmlFormattedHelp() + "For the chart, X axis is service, Y axis is average message size.";

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/AverageResponseTimeByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class AverageResponseTimeByServiceByMethod extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Average Response Time By Service By Method";
    }
    
     /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp(){
        return super.GetHtmlFormattedHelp() + "For the chart, X axis is service, Y axis is average message size.";

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/BaseWebServiceReport.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.services.rs.impl.reports.ws;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Level;
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.rs.impl.reports.BaseReportGenerator;
import org.miloss.fgsms.services.rs.impl.Reporting;

/**
 *
 * @author AO
 */
public abstract class BaseWebServiceReport extends BaseReportGenerator{

    /**
     * {@inheritDoc}
     */
    @Override
    public List<PolicyType> GetAppliesTo() {
        ArrayList<PolicyType> ret = new ArrayList<PolicyType>();
        ret.add(PolicyType.TRANSACTIONAL);
        return ret;
    }
    
     /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return "Applies to web services and transactional services only and services that generally have a request/response or a start/stop messaging pattern. ";
    }
  
    
    
    protected List<String> getSoapActions(final String url, Connection PerfCon) {
        List<String> list = new ArrayList<String>();
        PreparedStatement comm = null;
        ResultSet rs = null;
        try {

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumer.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;

/**
 *
 * @author AO
 */
public class InvocationsByConsumer extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Invocations By Consumer";
    }
    
     /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp(){
        return super.GetHtmlFormattedHelp() + "Aggregated against all web service traffic, by client username or ip address";

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumerByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class InvocationsByConsumerByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Invocations By Consumer By Service";
    }

      /**
     * {@inheritDoc}
     */

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByConsumerByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class InvocationsByConsumerByServiceByMethod extends BaseWebServiceReport {

    @Override
    public String GetDisplayName() {
        return "Invocations by Consumer by Service by Method";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByDataCollector.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;

/**
 *
 * @author AO
 */
public class InvocationsByDataCollector extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Invocations by Data Collector";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return "This report is useful for load balancing transactional/web service agents that report to the FGSMS server(s).";
    }

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByHostingServer.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;

/**
 *
 * @author AO
 */
public class InvocationsByHostingServer extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Invocations by Hosting Server";
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
         return super.GetHtmlFormattedHelp() + "Displays the counts of all request and response messages for a given server (success + failure counts) by host.";
    }

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class InvocationsByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Invocations by Service";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void generateReport(OutputStreamWriter data, List<String> urls, String path, List<String> files, TimeRange range, String currentuser, SecurityWrapper classification, WebServiceContext ctx) throws IOException {


=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/InvocationsByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class InvocationsByServiceByMethod extends BaseWebServiceReport {

    @Override
    public String GetDisplayName() {
        return "Invocations by Service By Method";
    }

    @Override
    public void generateReport(OutputStreamWriter data, List<String> urls, String path, List<String> files, TimeRange range, String currentuser, SecurityWrapper classification, WebServiceContext ctx) throws IOException {

        Connection con = Utility.getPerformanceDBConnection();
        try {
            PreparedStatement cmd = null;
            ResultSet rs = null;
            DefaultCategoryDataset set = new DefaultCategoryDataset();
            JFreeChart chart = null;

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/MeanTimeBetweenFailureByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.Duration;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class MeanTimeBetweenFailureByService extends BaseWebServiceReport {

    DatatypeFactory df;

    public MeanTimeBetweenFailureByService() {
        try {
            df = DatatypeFactory.newInstance();
        } catch (DatatypeConfigurationException ex) {

        }
    }

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ResponseTimeOverTime.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.time.Millisecond;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import org.miloss.fgsms.services.rs.impl.TimeSeriesContainer;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class ResponseTimeOverTime extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Response Time Over Time";
    }

    /**
     * {@inheritDoc}
     */
    @Override

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByHostingServer.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;

/**
 *
 * @author AO
 */
public class SuccessFailureCountByHostingServer extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Success/Failure Count by Hosting Server";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void generateReport(OutputStreamWriter data, List<String> urls, String path, List<String> files, TimeRange range, String currentuser, SecurityWrapper classification, WebServiceContext ctx) throws IOException {
        if (!UserIdentityUtil.hasGlobalAdministratorRole(currentuser, "SUCCESS_FAILURE_COUNT_BY_HOSTING_SERVER", classification, ctx)) {
            data.append("<h2>Access for " + GetDisplayName() + " was denied for non-global admin users</h2>");

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class SuccessFailureCountByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Success and Failure Transaction Counts By Service";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void generateReport(OutputStreamWriter data, List<String> urls, String path, List<String> files, TimeRange range, String currentuser, SecurityWrapper classification, WebServiceContext ctx) throws IOException {


=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/SuccessFailureCountByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class SuccessFailureCountByServiceByMethod extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Success and Failure Transaction Counts By Service By Method";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void generateReport(OutputStreamWriter data, List<String> urls, String path, List<String> files, TimeRange range, String currentuser, SecurityWrapper classification, WebServiceContext ctx) throws IOException {


=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByHostingServer.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;

/**
 *
 * @author AO
 */
public class ThroughputByHostingServer extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Throughput By Hosting Server";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return super.GetHtmlFormattedHelp() + "This represents the average invocation rate over the given period of time for a given service host. The accuracy of the data"
                + " is limited to the time range this report was generated from. For the chart, X axis is host, Y axis is is throughput (bytes total of all messages/time for a given host)."

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class ThroughputByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Throughput By Service";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return super.GetHtmlFormattedHelp() + "This represents the average invocation rate over the given period of time. The accuracy of the data"

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/ThroughputByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class ThroughputByServiceByMethod extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Throughput By Service By Method";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return super.GetHtmlFormattedHelp() + "This represents the average invocation rate over the given period of time grouped by method. The accuracy of the data"

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/TotalMessageSizeByServiceByMethod.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class TotalMessageSizeByServiceByMethod extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Total Message Size By Service By Method";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
         return super.GetHtmlFormattedHelp() + "Displays the sum of all request and response messages sizes, assuming it was recorded, grouped by service, by method. "

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/reports/ws/TotalMessageSizesByService.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.services.rs.impl.reports.ws;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.xml.ws.WebServiceContext;
import org.apache.log4j.Level;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.miloss.fgsms.common.DBUtils;
import org.miloss.fgsms.common.UserIdentityUtil;
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.common.TimeRange;
import static org.miloss.fgsms.services.rs.impl.Reporting.getFilePathDelimitor;
import static org.miloss.fgsms.services.rs.impl.Reporting.pixelHeightCalc;
import org.miloss.fgsms.services.rs.impl.reports.BaseReportGenerator;

/**
 *
 * @author AO
 */
public class TotalMessageSizesByService extends BaseWebServiceReport {

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetDisplayName() {
        return "Total Message Size By Service";
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String GetHtmlFormattedHelp() {
        return super.GetHtmlFormattedHelp() + "Displays the sum of all request and response messages sizes, assuming it was recorded. grouped by service."

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/StatusRecordsExt.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.services.rs.impl;

import java.util.GregorianCalendar;

/**A simple container for status records, just a time stamp and a up/down status indicator
 *
 * @author AO
 */
public class StatusRecordsExt {
    public GregorianCalendar gcal;
    public boolean status;

}

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/java/org/miloss/fgsms/services/rs/impl/TimeSeriesContainer.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.services.rs.impl;

import java.util.ArrayList;
import java.util.List;
import org.jfree.data.time.TimeSeries;

/**
 *Used by the reporting service for generating reports
 * @author AO
 */
public class TimeSeriesContainer {

    public TimeSeriesContainer() {
        data = new ArrayList<TimeSeries>();
    }
    public List<TimeSeries> data;

    public TimeSeries Get(String name, Class t) {
        for (int i = 0; i < data.size(); i++) {
            if (data.get(i).getKey().compareTo(name) == 0) {
                return data.get(i);
            }
        }
        TimeSeries ts = new TimeSeries(name, t);
        data.add(ts);
        return ts;
    }
}

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/footer.txt
=====================================================
</div>
    <!-- DoD Unclassified Banner -->
    <table width="100%" cellspacing="0" cellpadding="0">
        <tr width="100%">
            <td align="center" width="100%" bgcolor="%COLOR%">
                <font size="2" color="black"><b>
                    <center>
                        %CLASSIFICATION%</center>
                </b></font>
            </td>
        </tr>
    </table>
    <!-- DoD Unclassified Banner -->

</body>
</html>

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/main/resources/org/miloss/fgsms/services/rs/impl/settings.properties
=====================================================

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/java/org/miloss/fgsms/services/rs/impl/GenerateDocumentationTest.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.services.rs.impl;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.miloss.fgsms.common.Constants;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.plugins.reporting.ReportGeneratorPlugin;
import org.miloss.fgsms.services.interfaces.common.PolicyType;
import org.miloss.fgsms.services.interfaces.reportingservice.ReportTypeContainer;
import org.miloss.fgsms.test.WebServiceBaseTests;

/**
 *
 * @author alex.oree
 */
public class GenerateDocumentationTest extends WebServiceBaseTests{
    
    
    public GenerateDocumentationTest() throws Exception {
         super();
        url = "http://localhost/jUnitTestRS";
        Init();
    }
    
    @Test
    public void generateMarkDown() throws Exception {
        File file = new File("../../src/site/markdown");
        Assert.assertTrue(file.exists() && file.isDirectory());
        file = new File(file, "reportTypes.md");
        
        FileOutputStream fos = new FileOutputStream(file);
        Writer out = new BufferedWriter(new OutputStreamWriter(fos, Constants.CHARSET));

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/src/test/java/org/miloss/fgsms/services/rs/impl/ReportingTest.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.
 *
 *
 */
/*  ---------------------------------------------------------------------------
 *  US Government, Department of the Army
 *  Army Materiel Command
 *  Research Development Engineering Command
 *  Communications Electronics Research Development and Engineering Center
 *  ---------------------------------------------------------------------------
 */
package org.miloss.fgsms.services.rs.impl;

import java.io.File;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.GregorianCalendar;
import java.util.List;
import org.miloss.fgsms.services.interfaces.common.SecurityWrapper;
import org.miloss.fgsms.services.interfaces.reportingservice.ArrayOfReportTypeContainer;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportCSVDataRequestMsg;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportDataRequestMsg;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportDataToCSVResponseMsg;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportDataToHTMLResponseMsg;
import org.miloss.fgsms.services.interfaces.reportingservice.ExportRecordsEnum;
import org.miloss.fgsms.services.interfaces.reportingservice.ObjectFactory;
import org.miloss.fgsms.services.interfaces.reportingservice.ReportTypeContainer;
import org.miloss.fgsms.test.WebServiceBaseTests;
import static org.junit.Assert.*;
import org.miloss.fgsms.common.Utility;
import org.miloss.fgsms.services.interfaces.common.TimeRange;

/**
 *
 * @author AO
 */
public class ReportingTest extends WebServiceBaseTests {

=====================================================
== File: C:/projects/fgsms/fgsms-server/fgsms-reporting-service/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