1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-10 13:23:41 +00:00

Code clean up.

This commit is contained in:
Ylian Saint-Hilaire
2018-09-05 16:37:00 -07:00
parent e33dc215b8
commit fd5679b5df
28 changed files with 1 additions and 2654 deletions

1
.gitignore vendored
View File

@@ -13,6 +13,7 @@
*.userprefs
# Build results
DevOps/
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/

File diff suppressed because one or more lines are too long

View File

@@ -1,226 +0,0 @@
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.ws.soap.SOAPFaultException;
import com.blackducksoftware.sdk.fault.SdkFault;
import com.blackducksoftware.sdk.protex.client.util.BDProtexSample;
import com.blackducksoftware.sdk.protex.client.util.ProtexServerProxy;
import com.blackducksoftware.sdk.protex.project.Project;
import com.blackducksoftware.sdk.protex.project.ProjectApi;
import com.blackducksoftware.sdk.protex.report.Report;
import com.blackducksoftware.sdk.protex.report.ReportApi;
import com.blackducksoftware.sdk.protex.report.ReportFormat;
import com.blackducksoftware.sdk.protex.report.ReportSection;
import com.blackducksoftware.sdk.protex.report.ReportSectionType;
import com.blackducksoftware.sdk.protex.report.ReportTemplateRequest;
/**
* This sample generates COS report and writes it to a file in HTML and xls
*
* It demonstrates:
* - How to generate a report from a client side supplied template
* - How to receive this report and write it to a file (using MTOM - Attachments)
*/
public class GetCOSReport extends BDProtexSample {
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("arg[0] - Protex server URL");
System.out.println("arg[1] - Protex user ID");
System.out.println("arg[2] - Password");
System.out.println("arg[3] - Project ID");
System.out.println("arg[4] - Output path\\Filename (without extension)");
System.out.println("arg[5] - SCS Report Header text");
}
public static void main(String[] args) throws Exception {
// check and save parameters
if (args.length < 5) {
System.err.println("Not enough parameters!");
usage();
System.exit(-1);
}
String serverUri = args[0];
String username = args[1];
String password = args[2];
String projectId = args[3];
String reportFileName = args[4];
//String headerText = args[5];
String tableOfContents = "true";
ReportApi reportApi = null;
ProjectApi projectApi = null;
try {
Long connectionTimeout = 120 * 1000L;
ProtexServerProxy myProtexServer = new ProtexServerProxy(serverUri, username, password,
connectionTimeout);
reportApi = myProtexServer.getReportApi(15 * connectionTimeout);
projectApi = myProtexServer.getProjectApi(15 * connectionTimeout);
} catch (RuntimeException e) {
System.err.println("Connection to server '" + serverUri + "' failed: " + e.getMessage());
System.exit(-1);
}
Boolean showTOC = Boolean.valueOf("true".equals(tableOfContents));
//now get the rest of the report data
ReportTemplateRequest templateRequest = new ReportTemplateRequest();
templateRequest.setName(projectId);
Project project = projectApi.getProjectById(projectId);
String projectName = project.getName();
templateRequest.setTitle("Protex COS Report for " + projectName);
//templateRequest.setHeader(headerText);
templateRequest.setForced(Boolean.TRUE);
//templateRequest.setTableofcontents("TOC");
ReportSection section = new ReportSection();
section.setLabel("Summary");
section.setSectionType(ReportSectionType.SUMMARY);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Analysis Summary");
section.setSectionType(ReportSectionType.ANALYSIS_SUMMARY);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("BOM");
section.setSectionType(ReportSectionType.BILL_OF_MATERIALS);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Licenses in Effect");
section.setSectionType(ReportSectionType.LICENSES_IN_EFFECT);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("License Conflicts");
section.setSectionType(ReportSectionType.LICENSE_CONFLICTS);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("File Inventory");
section.setSectionType(ReportSectionType.FILE_INVENTORY);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("IP Architecture");
section.setSectionType(ReportSectionType.IP_ARCHITECTURE);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Obligations");
section.setSectionType(ReportSectionType.OBLIGATIONS);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Identified Files");
section.setSectionType(ReportSectionType.IDENTIFIED_FILES);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Excluded Components");
section.setSectionType(ReportSectionType.EXCLUDED_COMPONENTS);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Work History - Bill of Material");
section.setSectionType(ReportSectionType.WORK_HISTORY_BILL_OF_MATERIALS);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Work History - File Inventory");
section.setSectionType(ReportSectionType.WORK_HISTORY_FILE_INVENTORY);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Potential Bill Of Materials");
section.setSectionType(ReportSectionType.POTENTIAL_BILL_OF_MATERIALS);
templateRequest.getSections().add(section);
section = new ReportSection();
section.setLabel("Searches");
section.setSectionType(ReportSectionType.STRING_SEARCHES);
templateRequest.getSections().add(section);
// Call the Api
Report reportHTML = null;
Report reportXLS = null;
try {
try {
reportHTML = reportApi.generateAdHocProjectReport(projectId, templateRequest, ReportFormat.HTML, showTOC);
reportXLS = reportApi.generateAdHocProjectReport(projectId, templateRequest, ReportFormat.XLS, showTOC);
} catch (SdkFault e) {
System.err.println("generateProjectReport failed: " + e.getMessage());
System.exit(-1);
}
// Check for valid return
if (reportHTML == null || reportXLS == null) {
System.err.println("unexpected return object");
System.exit(-1);
}
if (reportHTML.getFileName() == null || reportXLS.getFileName() == null) {
System.err.println("unexpected return object: File name can't be null or empty");
System.exit(-1);
}
if (reportHTML.getFileContent() == null || reportXLS.getFileContent() == null) {
System.err.println("unexpected return object: File content can't be null or empty");
System.exit(-1);
}
File transferredFileHTML = new File(reportFileName + ".html");
File transferredFileXLS = new File(reportFileName + ".xls");
FileOutputStream outStream = null;
try {
outStream = new FileOutputStream(transferredFileHTML);
reportHTML.getFileContent().writeTo(outStream);
} catch (IOException e) {
System.err.println("report.getFileContent().writeTo() failed: " + e.getMessage());
System.exit(-1);
} finally {
if (outStream != null) {
outStream.close();
}
}
System.out.println("\nHTML Report written to: " + transferredFileHTML.getAbsolutePath());
try {
outStream = new FileOutputStream(transferredFileXLS);
reportXLS.getFileContent().writeTo(outStream);
} catch (IOException e) {
System.err.println("report.getFileContent().writeTo() failed: " + e.getMessage());
System.exit(-1);
} finally {
if (outStream != null) {
outStream.close();
}
}
System.out.println("\nXLS Report written to: " + transferredFileXLS.getAbsolutePath());
} catch (SOAPFaultException e) {
System.err.println("SampleGenerateReportFromTemplate failed: " + e.getMessage());
e.printStackTrace();
System.exit(-1);
}
}
}

View File

@@ -1,18 +0,0 @@
GetCOSReport.java will generate Code Origination Scan (COS) report from the Protex project specified and writes to
a output file in HTML and xls format
How to Execute:
java -jar GetCOSReport.jar <Protex server URL> <User ID> <User Password> <Project ID> <Output Path\Filename without extension>
Input Parameters:
IN arg[0] - Protex server URL
IN arg[1] - User ID
IN arg[2] - Password
IN arg[3] - Protex project ID
OUT arg[4] - Output Path\filename (without file extension)
Example:
java -jar GetCOSReport.jar http://jfipscn01.intel.com abc@intel.com abc MyTest_5271 c:\ScanResults\MyTest_COS
Output:
c:\ScanResults\MyTest_COS.html
c:\ScanResults\MyTest_COS.xls

View File

@@ -1,126 +0,0 @@
import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class GenerateCodeCenterDashboard {
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("Folder path\\name - Location and folder name where all Code Center xml files are stored\n" +
"File path\\name - location and filename to store the dashboard summary html report ");
System.out.println("");
}
/**********************************************************************************
*
* @param xml file generated by GetAssociateAndValidateResult script
* @return HTML String
*********************************************************************************/
public String getCodeCenterResult(File file) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
//System.out.println("Exists: " + file.getName() + " " + file.exists());
if (file.exists()) {
Document doc = db.parse(file);
NodeList appList = doc.getElementsByTagName("Application");
Node appName = appList.item(0);
Element appElement = (Element) appName;
NodeList validList = doc.getElementsByTagName("ValidationStatus");
Node validNode = validList.item(0);
Element validElement = (Element) validNode;
NodeList approveList = doc.getElementsByTagName("ApprovedStatus");
Node approveNode = approveList.item(0);
Element approveElement = (Element) approveNode;
String prj_str = "<tr><td style='text-align: center;'>" + appElement.getTextContent() + "</td>";
if (validElement.getTextContent().equals("PASSED"))
prj_str = prj_str + "<td style='text-align: center;'>" + validElement.getTextContent() + "</td>";
else
prj_str = prj_str + "<td style='text-align: center;': bgcolor=gold> <b> <font color=red>" + validElement.getTextContent() + "</td>";
if (approveElement.getTextContent().equals("APPROVED"))
prj_str = prj_str + "<td style='text-align: center;'>" + approveElement.getTextContent() + "</td></tr>";
else
prj_str = prj_str + "<td style='text-align: center;': bgcolor=gold> <b> <font color=red>" + approveElement.getTextContent() + "</td></tr>";
return prj_str;
}
} catch (Exception e) {
System.out.println(e);
}
return "Error!! Parsing XML reports";
}
/***********************************************************************************
* main()
* @param args
***********************************************************************************/
public static void main(String[] args)
{
if (args.length < 2) {
System.err.println("Not enough parameters!");
usage();
System.exit(-1);
}
GenerateCodeCenterDashboard parser = new GenerateCodeCenterDashboard();
String filename;
File folder = new File( args[0] );
File[] listOfFiles = folder.listFiles();
String html_content = "";
String OSName = null;
String delimiter = null;
OSName = System.getProperty("os.name");
if (OSName.contains("Windows")) delimiter = "\\";
else delimiter = "/";
for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
filename = folder.getPath() + delimiter + listOfFiles[i].getName();
//System.out.println("File: " + filename);
if (filename.endsWith(".xml") || filename.endsWith(".XML"))
{
File filehandle = new File(filename);
String prj_str = parser.getCodeCenterResult( filehandle );
html_content = html_content + prj_str;
}
}
}
File f = new File(args[1]);
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write( "<html><body>"
+ "<h1> <span style='text-align:center;font-weight:bold'> Code Center Summary </span></h1>"
+ "<table border='2px'>"
+ "<tr style='background-color: rgb(240, 240, 240);'>"
+ "<th style='border-left: 1px solid;'> Code Center Application </th>"
+ "<th style='border-left: 1px solid;'> Validation Status </th>"
+ "<th style='border-left: 1px solid;'> Approval Status </th>"
+ "</tr>"
+ html_content + "</table></body></html>" ) ;
bw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}

View File

@@ -1,19 +0,0 @@
GenerateCodeCenterDashboard.java parses the Code Center Application results xml files generated by GetAssociateAndValidateResult.java;
read the data and writes the data in a summary (Dashboard) into the output html file.
NOTE: All the Code Center Application xml files are required to be stored in a single folder
How to Execute:
java -jar GenerateProtexScanDashboard.jar <stored scan files Path\foldername> <output file path\filename>
Input Parameters:
IN arg[0] - Location (PATH) of Code Center result files
OUT arg[1] - Dashboard Output Path\filename.html
Example:
Windows> java -jar GenerateCodeCenterDashboard.jar c:\Results\CCXML c:\Results\CodeCenter_Dashboard.html
Linux> java -jar GenerateCodeCenterDashboard.jar /Results/CCXML /Results/CodeCenter_Dashboard.html
Output:
Windows: c:\Results\CodeCenter_Dashboard.html (Will contain scan result summary of all Code Center xml files)
Linux: /Results/CodeCenter_Dashboard.html (Will contain scan result summary of all Code Center xml files)

View File

@@ -1,740 +0,0 @@
import java.util.List;
import java.util.ListIterator;
import java.util.regex.Pattern;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import com.blackducksoftware.sdk.codecenter.application.ApplicationApi;
import com.blackducksoftware.sdk.codecenter.application.data.Application;
import com.blackducksoftware.sdk.codecenter.application.data.ApplicationNameVersionOrIdToken;
import com.blackducksoftware.sdk.codecenter.application.data.ApplicationNameVersionToken;
import com.blackducksoftware.sdk.codecenter.cola.*;
import com.blackducksoftware.sdk.codecenter.cola.data.Component;
import com.blackducksoftware.sdk.codecenter.cola.data.LicenseNameOrIdToken;
import com.blackducksoftware.sdk.codecenter.cola.data.LicenseSummary;
import com.blackducksoftware.sdk.codecenter.attribute.AttributeApi;
import com.blackducksoftware.sdk.codecenter.attribute.data.AbstractAttribute;
import com.blackducksoftware.sdk.codecenter.attribute.data.AttributeNameOrIdToken;
import com.blackducksoftware.sdk.codecenter.client.util.BDSCodeCenterSample;
import com.blackducksoftware.sdk.codecenter.client.util.CodeCenterServerProxyV7_0;
import com.blackducksoftware.sdk.codecenter.common.data.ApprovalStatusEnum;
import com.blackducksoftware.sdk.codecenter.common.data.AttributeValue;
import com.blackducksoftware.sdk.codecenter.fault.SdkFault;
import com.blackducksoftware.sdk.codecenter.request.RequestApi;
import com.blackducksoftware.sdk.codecenter.request.data.*;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// This sample file extract application details, application metadata, BOMs, request for metadata and
// each components metadata in BOM. It stores all the data in an HTML format into the file passed as argument
// The output file if the IP Plan of the application
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public class GenerateIPPlanReport extends BDSCodeCenterSample {
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("arg[0] - Code Center server URL");
System.out.println("arg[1] - Code Center user ID");
System.out.println("arg[2] - Password");
System.out.println("arg[3] - Application name");
System.out.println("arg[4] - Output Path");
}
/************************************************************************************
* GetComponentData: Get component and component request details for each component in BOM of the application
* @param thisapp
* @param applicationApi
* @param apptoken
* @param requestApi
* @param colaApi
* @param attributeApi
* @return String with data in html format
************************************************************************************/
public String GetComponentData(Application thisapp, ApplicationApi applicationApi, ApplicationNameVersionToken apptoken,
RequestApi requestApi, ColaApi colaApi, AttributeApi attributeApi ) {
String ptr_str = "";
RequestPageFilter pageFilter = new RequestPageFilter();
pageFilter.setFirstRowIndex(0);
pageFilter.setLastRowIndex(2000);
pageFilter.setSortAscending(false);
pageFilter.setSortedColumn(RequestColumn.REQUEST_APPROVAL_STATUS);
pageFilter.getApprovalStatuses().add(ApprovalStatusEnum.APPROVED);
//get total number of Components in BOM
List<RequestSummary> requestsList = null;
try {
//requestsList = applicationApi.getApplicationRequests(apptoken);
requestsList = applicationApi.searchApplicationRequests((ApplicationNameVersionOrIdToken)apptoken, "", pageFilter);
} catch (Exception e) {
System.err.println("getApplicationRequests() failed while fetching the details of the request to be updated: "
+ e.getMessage());
System.exit(-1);
}
if (requestsList == null) {
System.err.println("getApplicationRequests() failed: returned null as result");
System.exit(-1);
}
System.out.println("# Requests: " + requestsList.size());
for (RequestSummary request : requestsList) {
Component thiscomp = null;
Request thisreq = null;
String Name = " ";
String Version = " ";
String License = " ";
String ReqLicense = " ";
String ReqLicenseUsage = " ";
String Description = " ";
String Homepage = " ";
String Supplier = " ";
String SupplierCategory = " ";
String SoftwareStackClassification = " ";
String SoftwareTechnologyClassification = " ";
String SpecificTechnologyClassification = " ";
String OperatingSystem = " ";
String OperatingSystemOther = " ";
String ProgrammingLanguage = " ";
String ProgrammingLanguageOther = " ";
String DeliveryFormat = " ";
String CopyrightOwnership = " ";
String LicenseSource = " ";
String LicenseLocation = " ";
String AdditionalInformationAndComments = " ";
String Comments = " ";
String SourceLocation = " ";
String SourceLocationSub = " ";
String VersionRest = " ";
String ApprovalStatus = " ";
String LocationCntrl = " ";
//////////////////////////////////////////////////////////////////////
// Get the individual component request details like control string,
// license source, etc....
/////////////////////////////////////////////////////////////////////
try {
thisreq = requestApi.getRequest(request.getId());
} catch (Exception e) {
System.err.println("getRequest failed: "
+ e.getMessage());
System.exit(-1);
}//try....catch
List<AttributeValue> reqAttList = null;
try {
ReqLicense = thisreq.getLicenseInfo().getNameToken().getName().trim().replaceAll(Pattern.quote("\r\n"), "\n").replaceAll(Pattern.quote("\r"), "\n");
} catch (Exception e) {
//System.err.println("WARNING: empty Component Request License field");
}
try {
ReqLicenseUsage = thisreq.getUsage().toString();
} catch (Exception e) {
//System.err.println("WARNING: empty Component Request Usage field");
}
try {
ApprovalStatus = thisreq.getApprovalStatus().toString();
} catch (Exception e) {
//System.err.println("WARNING: empty Component Request Approval Status field");
}
try {
reqAttList = thisreq.getAttributeValues();
} catch (Exception e) {
//System.err.println("WARNING: empty Component Request Metadata Values field");
}
try {
if ( null != reqAttList ) {
if ( 0 < reqAttList.size() ) {
//System.out.println("RequestAttList size is " + reqAttList.size());
for (AttributeValue attValue : reqAttList) {
AttributeNameOrIdToken attNameToken = attValue.getAttributeId();
AbstractAttribute attribute = attributeApi.getAttribute(attNameToken);
String attName = attribute.getName().trim();
List<String> attStringList = attValue.getValues();
if (null != attStringList) {
if ( 0 < attStringList.size() ) {
ListIterator<String> LI = attStringList.listIterator();
String attstring = LI.next().trim();
while ( LI.hasNext() ) {
attstring = attstring + "\n" + LI.next().trim();
}
attstring = attstring.replaceAll(Pattern.quote("\r\n"), "\n").replaceAll(Pattern.quote("\r"), "\n");
if ( attName.equals("CPR - Additional Information and Comments") ) {
AdditionalInformationAndComments = attstring.trim();
}
if ( attName.equals("CPR - License Location") ) {
LicenseLocation = attstring.trim();
}
if ( attName.equals("CPR - License Source") ) {
LicenseSource = attstring.trim();
}
if ( attName.equals("CPR - Location") ) {
SourceLocation = attstring.trim();
if ( SourceLocation.length() > 0 ) {
if ( SourceLocation.startsWith("/") ) {
SourceLocation = SourceLocation.substring(1);
}
if ( SourceLocation.endsWith("/") ) {
SourceLocation = SourceLocation.substring(0, (SourceLocation.length() - 1) );
}
}
}
if ( attName.equals("CPR - Location - Cntrl") ) {
LocationCntrl = attstring.trim();
}
if ( attName.equals("CPR - Location - Sub") ) {
SourceLocationSub = attstring.trim();
if ( SourceLocationSub.length() > 0 ) {
if ( SourceLocationSub.startsWith("/") ) {
SourceLocationSub = SourceLocationSub.substring(1);
}
if ( SourceLocationSub.endsWith("/") ) {
SourceLocationSub = SourceLocationSub.substring(0, (SourceLocationSub.length() - 1) );
}
}
}
if ( attName.equals("CPR - Versions") ) {
VersionRest = attstring.trim();
}
}
}
}
}
}
} catch (Exception e) {
System.err.println("Failed to create component request data, caught exception: " + e.getMessage());
}
//////////////////////////////////////////////////////////////////////
// Get the individual component details
/////////////////////////////////////////////////////////////////////
try {
thiscomp = colaApi.getCatalogComponent(request.getComponentId());
} catch (Exception e) {
System.err.println("getCatalogComponent() failed: "
+ e.getMessage());
System.exit(-1);
}//try....catch
try {
Name = thiscomp.getNameVersion().getName().trim();
} catch (Exception e) {
System.err.println("WARNING: empty Component Name field");
}
try {
Version = thiscomp.getNameVersion().getVersion().trim();
} catch (Exception e) {
System.err.println("WARNING: empty Component Version field");
}
try {
Description = thiscomp.getDescription().trim();
} catch (Exception e) {
System.err.println("WARNING: empty Component Description field");
}
try {
Homepage = thiscomp.getHomepage().trim();
} catch (Exception e) {
System.err.println("WARNING: empty Component Homepage field");
}
try {
//License = thiscomp.getLicenseInfo().getNameToken().getName().trim().replaceAll(Pattern.quote("\r\n"), "\n").replaceAll(Pattern.quote("\r"), "\n");
License = thiscomp.getDeclaredLicenses().get(0).getNameToken().getName().trim().replaceAll(Pattern.quote("\r\n"), "\n").replaceAll(Pattern.quote("\r"), "\n");
} catch (Exception e) {
System.err.println("WARNING: empty Component Declared License field");
}
List<AttributeValue> compAttList = null;
try {
compAttList = thiscomp.getAttributeValues();
} catch (Exception e) {
System.err.println("WARNING: empty Component Attribute Values field");
}
//////////////////////////////////////////////////////////////////////
// Read the attributes of the component
//////////////////////////////////////////////////////////////////////
if ( null != compAttList ) {
if ( 0 < compAttList.size() ) {
for (AttributeValue attValue : compAttList) {
AttributeNameOrIdToken attNameToken = attValue.getAttributeId();
AbstractAttribute attribute = null;
try {
attribute = attributeApi.getAttribute(attNameToken);
} catch (SdkFault e) {
System.err.println("WARNING: empty Component Attributes field");
}
String attName = attribute.getName().trim();
List<String> attStringList = attValue.getValues();
if (null != attStringList) {
if ( 0 < attStringList.size() ) {
ListIterator<String> LI = attStringList.listIterator();
String attstring = LI.next().trim();
while ( LI.hasNext() ) {
attstring = attstring + "\n\n\n" + LI.next().trim();
}
attstring = attstring.replaceAll(Pattern.quote("\r\n"), "\n").replaceAll(Pattern.quote("\r"), "\n");
if ( attName.equals("APP/CPC - SW Stack Classification") ) {
SoftwareStackClassification = attstring.trim();
}
if ( attName.equals("APP/CPC - SW Technology Classification") ) {
SoftwareTechnologyClassification = attstring.trim();
}
if ( attName.equals("APP/CPC - SW Technology Classification - Other") ) {
SpecificTechnologyClassification = attstring.trim();
}
if ( attName.equals("CPC - Copyright Ownership") ) {
CopyrightOwnership = attstring.trim();
}
if ( attName.equals("CPC - Distribution Type") ) {
DeliveryFormat = attstring.trim();
}
if ( attName.equals("CPC - Operating System") ) {
OperatingSystem = attstring.trim();
}
if ( attName.equals("CPC - Operating System - Other") ) {
OperatingSystemOther = attstring.trim();
}
if ( attName.equals("CPC - Programming Language") ) {
ProgrammingLanguage = attstring.trim();
}
if ( attName.equals("CPC - Programming Language - Other") ) {
ProgrammingLanguageOther = attstring.trim();
}
if ( attName.equals("CPC - Software Supplier Category") ) {
SupplierCategory = attstring.trim();
}
if ( attName.equals("CPC - Supplier Name") ) {
Supplier = attstring.trim();
}
}//if attstringlist
} //if attstringlist
} //For each compattlist
} //if compAttsize
ptr_str = ptr_str + "<tr><td style='text-align: center;'>" + Name + "</td>"
+ "<td style='text-align: center;'>" + Version + "</td>"
+ "<td style='text-align: center;'>" + License + "</td>"
+ "<td style='text-align: center;'>" + Description + "</td>"
+ "<td style='text-align: center;'>" + Homepage + "</td>"
+ "<td style='text-align: center;'>" + Supplier + "</td>"
+ "<td style='text-align: center;'>" + SupplierCategory + "</td>"
+ "<td style='text-align: center;'>" + SoftwareStackClassification + "</td>"
+ "<td style='text-align: center;'>" + SoftwareTechnologyClassification + "</td>"
+ "<td style='text-align: center;'>" + SpecificTechnologyClassification + "</td>"
+ "<td style='text-align: center;'>" + OperatingSystem + "</td>"
+ "<td style='text-align: center;'>" + ProgrammingLanguage + "</td>"
+ "<td style='text-align: center;'>" + DeliveryFormat + "</td>"
+ "<td style='text-align: center;'>" + CopyrightOwnership + "</td>"
+ "<td style='text-align: center;'>" + ReqLicense + "</td>"
+ "<td style='text-align: center;'>" + ReqLicenseUsage + "</td>"
+ "<td style='text-align: center;'>" + SourceLocation + "</td>"
+ "<td style='text-align: center;'>" + SourceLocationSub + "</td>"
+ "<td style='text-align: center;'>" + LocationCntrl + "</td>"
+ "<td style='text-align: center;'>" + LicenseLocation + "</td>"
+ "<td style='text-align: center;'>" + LicenseSource + "</td>"
+ "<td style='text-align: center;'>" + AdditionalInformationAndComments + "</td>"
+ "<td style='text-align: center;'>" + VersionRest + "</td>"
+ "</tr>";
} // compattlist = null
} //for RequestSummary request
return ptr_str;
};
/*********************************************************************************************
* GetApplicationData() Get Application's details and Metadata
* @param thisapp
* @param attributeApi
* @param colaApi
* @return String with data in html format
*********************************************************************************************/
public String GetApplicationData(Application thisapp, AttributeApi attributeApi, ColaApi colaApi) {
String Name = null;
String Version = null;
String ProgramPlatform = null;
String ProductName = null;
String Description = null;
String IdentificationsProductName = null;
String SubGroupName = null;
String GroupName = null;
String OutboundLicense = null;
String OBLInstructions = null;
String License = null;
String LicenseAcceptance = null;
String InformationClassification = null;
String ExportECCN = null;
String Standards = null;
String StandardsMember = null;
String StandardsList = null;
String Indemnification = null;
String IndemnificationGMApprover = null;
String Warranty = null;
String WarrantyDataSheet = null;
String SoftwareStackClassification = null;
String SoftwareTechnologyClassification = null;
String SoftwareTechnologyClassificationOther = null;
//String ThirdPartyPatents = null;
String IntelPatents = null;
String IntelPatentStatus = null;
String OpenSource = null;
String ptr_str = "";
List<AttributeValue> appAttList = null;
try {
try {
Name = thisapp.getName();
} catch (Exception e) {
System.err.println("Missing application data: Name, caught exception: " + e.getMessage());
}
try {
Version = thisapp.getVersion();
} catch (Exception e) {
System.err.println("Missing application data: Version, caught exception: " + e.getMessage());
}
LicenseNameOrIdToken LicenseToken = null;
try {
LicenseToken = thisapp.getLicenseId();
} catch (Exception e) {
System.err.println("Missing application data: LicenseToken, caught exception: " + e.getMessage());
}
if ( LicenseToken != null ) {
try {
License = colaApi.getLicense(LicenseToken).getNameToken().getName();
} catch (Exception e) {
System.err.println("Missing application data: LicenseToken, caught exception: " + e.getMessage());
}
}
try {
Description = thisapp.getDescription().trim().replaceAll(Pattern.quote("\r\n"), "\u0001").replaceAll(Pattern.quote("\r"), "\u0001").replaceAll(Pattern.quote("\n"), "\u0001");
} catch (Exception e) {
System.err.println("Missing application data: Description, caught exception: " + e.getMessage());
}
try {
appAttList = thisapp.getAttributeValues();
} catch (Exception e) {
System.err.println("Missing application data: attributeValues, caught exception: " + e.getMessage());
}
///////////////////////////////////////////////////////////////////////////////
// get application metadata
//////////////////////////////////////////////////////////////////////////////
if ( null != appAttList ) {
if ( 0 < appAttList.size() ) {
for (AttributeValue attValue : appAttList) {
AttributeNameOrIdToken attNameToken = attValue.getAttributeId();
AbstractAttribute attribute = attributeApi.getAttribute(attNameToken);
String attName = attribute.getName().trim();
List<String> attStringList = attValue.getValues();
if (null != attStringList) {
if ( 0 < attStringList.size() ) {
ListIterator<String> LI = attStringList.listIterator();
String attstring = LI.next().trim();
while ( LI.hasNext() ) {
attstring = attstring + "\n\n\n" + LI.next().trim();
}
attstring = attstring.replaceAll(Pattern.quote("\r\n"), "\n").replaceAll(Pattern.quote("\r"), "\n");
if ( attName.equals("APP - Identifications - Program and Platforms")) {
ProgramPlatform = attstring.trim();
}
if ( attName.equals("APP - Identifications - Product Name")) {
ProductName = attstring.trim();
}
//if ( attName.equals("APP - 3rd Party Patents")) {
//ThirdPartyPatents = attstring.trim();
//}
if ( attName.equals("APP - Export - ECCN")) {
ExportECCN = attstring.trim();
}
if ( attName.startsWith("APP - Super Group")) {
GroupName = attstring.trim();
}
if ( attName.startsWith("APP - Group - IAG")) {
SubGroupName = attstring.trim();
}
if ( attName.startsWith("APP - Group - SMG")) {
SubGroupName = attstring.trim();
}
if ( attName.startsWith("APP - Group - SSG")) {
SubGroupName = attstring.trim();
}
if ( attName.startsWith("APP - Group - TMG")) {
SubGroupName = attstring.trim();
}
if ( attName.startsWith("APP - Group - Intel Labs")) {
SubGroupName = attstring.trim();
}
if ( attName.equals("APP - Identifications - Product Name")) {
IdentificationsProductName = attstring.trim();
}
if ( attName.equals("APP - Indemnification")) {
Indemnification = attstring.trim();
}
if ( attName.equals("APP - Indemnification - GM Approval")) {
IndemnificationGMApprover = attstring.trim();
}
if ( attName.equals("APP - Information Classification")) {
InformationClassification = attstring.trim();
}
if ( attName.equals("APP - Intel Patents")) {
IntelPatents = attstring.trim();
}
if ( attName.equals("APP - Intel Patents - Status")) {
IntelPatentStatus = attstring.trim();
}
if ( attName.equals("APP - OBL")) {
OutboundLicense = attstring.trim();
}
if ( attName.equals("APP - OBL - Instructions")) {
OBLInstructions = attstring.trim();
}
if ( attName.equals("APP - OBL - Acceptance")) {
LicenseAcceptance = attstring.trim();
}
if ( attName.equals("APP - Open Source")) {
OpenSource = attstring.trim();
}
if ( attName.equals("APP - Standards")) {
Standards = attstring.trim();
}
if ( attName.equals("APP - Standards - List")) {
StandardsList = attstring.trim();
}
if ( attName.equals("APP - Standards - Member")) {
StandardsMember = attstring.trim();
}
if ( attName.equals("APP - Super Group")) {
GroupName = attstring.trim();
}
if ( attName.equals("APP/CPC - SW Stack Classification")) {
SoftwareStackClassification = attstring.trim();
}
if ( attName.equals("APP/CPC - SW Technology Classification")) {
SoftwareTechnologyClassification = attstring.trim();
}
if ( attName.equals("APP/CPC - SW Technology Classification - Other")) {
SoftwareTechnologyClassificationOther = attstring.trim();
}
if ( attName.equals("APP - Warranty")) {
Warranty = attstring.trim();
}
if ( attName.equals("APP - Warranty - Data Sheet")) {
WarrantyDataSheet = attstring.trim();
}
}
}
}
}
}
ptr_str = "<tr><td style='text-align: center;'>" + Name + "</td>"
+ "<td style='text-align: center;'>" + Version + "</td>"
+ "<td style='text-align: center;'>" + ProgramPlatform + "</td>"
+ "<td style='text-align: center;'>" + ProductName + "</td>"
+ "<td style='text-align: center;'>" + GroupName + "/" + SubGroupName + "</td>"
+ "<td style='text-align: center;'>" + OutboundLicense + "</td>"
+ "<td style='text-align: center;'>" + OBLInstructions + "</td>"
+ "<td style='text-align: center;'>" + LicenseAcceptance + "</td>"
+ "<td style='text-align: center;'>" + InformationClassification + "</td>"
+ "<td style='text-align: center;'>" + OpenSource + "</td>"
+ "<td style='text-align: center;'>" + ExportECCN + "</td>"
+ "<td style='text-align: center;'>" + Standards + "</td>"
+ "<td style='text-align: center;'>" + StandardsMember + "</td>"
+ "<td style='text-align: center;'>" + StandardsList + "</td>"
+ "<td style='text-align: center;'>" + Indemnification + "</td>"
+ "<td style='text-align: center;'>" + IndemnificationGMApprover + "</td>"
+ "<td style='text-align: center;'>" + Warranty + "</td>"
+ "<td style='text-align: center;'>" + WarrantyDataSheet + "</td>"
+ "<td style='text-align: center;'>" + SoftwareStackClassification + "</td>"
+ "<td style='text-align: center;'>" + SoftwareTechnologyClassification + "</td>"
+ "<td style='text-align: center;'>" + SoftwareTechnologyClassificationOther + "</td>"
//+ "<td style='text-align: center;'>" + ThirdPartyPatents + "</td>"
+ "<td style='text-align: center;'>" + IntelPatents + "</td>"
+ "<td style='text-align: center;'>" + IntelPatentStatus + "</td>"
+ "</tr>";
} catch (Exception e) {
System.err.println("Failed to create application data, caught exception: " + e.getMessage());
}
return ptr_str;
};
/**********************************************************************************
* main()
* @param args
* @throws Exception
**********************************************************************************/
public static void main(String[] args) throws Exception {
// check and save parameters
if (args.length < 5) {
System.err.println("\n\nNot enough parameters!");
usage();
System.exit(-1);
}
String serverUri = args[0];
String username = args[1];
String password = args[2];
String applicationName = args[3];
String Path = args[4];
String outFile = "";
ApplicationApi applicationApi = null;
RequestApi requestApi = null;
AttributeApi attributeApi = null;
ColaApi colaApi = null;
try {
Long connectionTimeout = 600 * 1000L;
CodeCenterServerProxyV7_0 myCodeCenterServer = new CodeCenterServerProxyV7_0(serverUri, username, password,
connectionTimeout);
applicationApi = myCodeCenterServer.getApplicationApi();
attributeApi = myCodeCenterServer.getAttributeApi();
colaApi = myCodeCenterServer.getColaApi();
requestApi = myCodeCenterServer.getRequestApi();
} catch (RuntimeException e) {
System.err.println("\nConnection to server '" + serverUri + "' failed: " + e.getMessage());
System.exit(1);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// get the application object
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Application thisapp = null;
ApplicationNameVersionToken apptoken = new ApplicationNameVersionToken();
String OSName = null;
String delimiter = null;
OSName = System.getProperty("os.name");
if (OSName.contains("Windows")) delimiter = "\\";
else delimiter = "/";
outFile = Path + delimiter + applicationName + " IP Plan.html";
try {
apptoken.setName(applicationName);
apptoken.setVersion("Unspecified");
thisapp = applicationApi.getApplication(apptoken);
} catch (Exception e) {
try {
apptoken.setVersion("unspecified");
thisapp = applicationApi.getApplication(apptoken);
} catch (Exception e1) {
System.err.println("get APP " + applicationName + " caught exception : " + e1.getMessage());
System.exit(1);
}
}
if ( null == thisapp ) {
System.err.println("FAILED: to get app for " + applicationName );
System.exit(1);
}
String html_content = "";
GenerateIPPlanReport ipplan = new GenerateIPPlanReport();
html_content = ipplan.GetApplicationData(thisapp, attributeApi, colaApi);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Write the application and components in an HTML file with HTML tags
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
File f = new File(outFile);
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
// Write application details and metadata
bw.write( "<html><body>"
+ "<header><h1> <span style='text-align:center;font-weight:bold'>" + applicationName + " IP Plan"
+ "</span></h1></header>"
+ "<table border='2px'>"
+ "<tr style='background-color: rgb(240, 240, 240);'>"
+ "<th> Application Name </th>"
+ "<th> Application version </th>"
+ "<th> Program/Platform </th>"
+ "<th> Product Name </th>"
+ "<th> Group Name </th>"
+ "<th> OBL </th>"
+ "<th> OBL Instruction </th>"
+ "<th> License Acceptance </th>"
+ "<th> Information Classification </th>"
+ "<th> Open Source Distribution </th>"
+ "<th> Export Community Control Number </th>"
+ "<th> Standards </th>"
+ "<th> Standard Member </th>"
+ "<th> Standard List </th>"
+ "<th> Indemnification </th>"
+ "<th> Indemnification GM Approver </th>"
+ "<th> Warranty </th>"
+ "<th> Warranty - Product/Software Data Sheet </th>"
+ "<th> Software Stack Classification </th>"
+ "<th> Software Technology Classification </th>"
+ "<th> Specific Technology Classification </th>"
//+ "<th> 3rd Party Patents </th>"
+ "<th> Intel Patents </th>"
+ "<th> Intel Patent Status </th>"
+ "</tr>"
+ html_content
+ "</table>" ) ;
bw.write(" ");
html_content = ipplan.GetComponentData(thisapp, applicationApi, apptoken, requestApi, colaApi, attributeApi);
// Write each component and its request component details and its metadata
bw.write( "<header><h1> <span style='text-align:center;font-weight:bold'>" + " Bill Of Materials"
+ "</span></h1></header>"
+"<table border='2px'>"
+ "<tr style='background-color: rgb(240, 240, 240);'>"
+ "<th> Component Name </th>"
+ "<th> Component version </th>"
+ "<th> License </th>"
+ "<th> Description </th>"
+ "<th> Homepage </th>"
+ "<th> Supplier </th>"
+ "<th> Supplier Category </th>"
+ "<th> Software Stack Classification </th>"
+ "<th> Software Technology Classification </th>"
+ "<th> Software Technology Classification Other </th>"
+ "<th> Operating System </th>"
+ "<th> Programming Language </th>"
+ "<th> Distribution Type </th>"
+ "<th> Copyright Ownership </th>"
+ "<th> Requested License </th>"
+ "<th> Requested Usage </th>"
+ "<th> Software Location </th>"
+ "<th> Software Sub Location </th>"
+ "<th> Control Strings </th>"
+ "<th> License Location </th>"
+ "<th> License Source </th>"
+ "<th> Version Restrictions </th>"
+ "<th> Information and Comments </th>"
+ "</tr>"
+ html_content
+ "</table></body></html>" ) ;
System.out.println("Done");
bw.close();
} catch (Exception e) {
System.out.println(e);
}
} //main()
} //class GenerateIPPlan

File diff suppressed because one or more lines are too long

View File

@@ -1,20 +0,0 @@
GenerateIPPlanReport.java extracts application metadata and BOM details from the Code Center application specified in input parameter
and writes to a output file in HTML format. The output file created is with filename as "<Application Name> IP Plan.html"
How to Execute:
java -jar GenerateIPPlanReport.jar <Code Center Server URL> <User ID> <User Password> <Application Name> <Output Path>
Input Parameters:
IN arg[0] - Code Center server URL
IN arg[1] - Code Center user ID
IN arg[2] - Password
IN arg[3] - Application name
OUT arg[4] - Output Path (without filename)
Example:
Windows> java -jar GenerateIPPlanReport.jar http://sccodecenter.intel.com abc@intel.com abc "Android R4 AOSP Abi" "c:\IP Plans"
Linux> java -jar GenerateIPPlanReport.jar http://sccodecenter.intel.com abc@intel.com abc "Android R4 AOSP Abi" "/IP Plans"
Output:
Windows: c:\IP Plans\Android R4 AOSP Abi IP Plan.html
Linux: /IP Plans/Android R4 AOSP Abi IP Plan.html

View File

@@ -1,174 +0,0 @@
import java.io.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class GenerateProtexScanDashboard {
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("Folder path\\name - Location and folder name where all scan results xml files are stored\n" +
"File path\\name - location and filename to store the dashboard summary html report ");
System.out.println("");
}
public String getAllScanResult(File file) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
int number;
//File file = new File(fileName);
//System.out.println("Exists: " + file.getName() + " " + file.exists());
if (file.exists()) {
Document doc = db.parse(file);
//System.out.println("File: " + fileName);
//System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
//System.out.println("Root element attrib :" + doc.getDocumentElement().getAttribute("name"));
NodeList serverList = doc.getElementsByTagName("ServerUrl");
Node serverUrlNode = serverList.item(0);
Element serverUrlElement = (Element) serverUrlNode;
//System.out.println("Server url: " + serverUrlElement.getTextContent());
NodeList analyzedTimeList = doc.getElementsByTagName("LastAnalyzed");
Node anaTimeNode = analyzedTimeList.item(0);
Element anaTimeElement = (Element) anaTimeNode;
//System.out.println("ANAly Time: " + anaTimeElement.getTextContent());
NodeList analyzedList = doc.getElementsByTagName("Analyzed");
Node anaNode = analyzedList.item(0);
Element anaElement = (Element) anaNode;
//System.out.println("ANAly : " + anaElement.getTextContent());
NodeList pendingList = doc.getElementsByTagName("PendingID");
Node penNode = pendingList.item(0);
Element penElement = (Element) penNode;
//System.out.println("Pending : " + penElement.getTextContent());
NodeList totCompList = doc.getElementsByTagName("TotalComponents");
Node tCompNode = totCompList.item(0);
Element tCompElement = (Element) tCompNode;
//System.out.println("total Comp : " + tCompElement.getTextContent());
NodeList totLicList = doc.getElementsByTagName("TotalLicenses");
Node tLicNode = totLicList.item(0);
Element tLicElement = (Element) tLicNode;
//System.out.println("Tot Lic : " + tLicElement.getTextContent());
NodeList pendingRevList = doc.getElementsByTagName("PendingReview");
Node penRevNode = pendingRevList.item(0);
Element penRevElement = (Element) penRevNode;
//System.out.println("Pending Rev: " + penRevElement.getTextContent());
NodeList licVioList = doc.getElementsByTagName("LicenseViolations");
Node licVioNode = licVioList.item(0);
Element licVioElement = (Element) licVioNode;
//System.out.println("Lice Violati : " + licVioElement.getTextContent());
String prj_str = "<tr><td><a href='" + serverUrlElement.getTextContent() + "' target='_blank'>"
+ doc.getDocumentElement().getAttribute("name") + "</a></td>"
+ "<td style='text-align: center;'>" + anaTimeElement.getTextContent() + "</td>"
+ "<td style='text-align: center;'>" + anaElement.getTextContent() + "</td>";
number = Integer.parseInt(penElement.getTextContent());
if (number > 0)
prj_str = prj_str + "<td style='text-align: center;': bgcolor=gold> <b> <font color=red>" + penElement.getTextContent() + "</font></b></td>";
else
prj_str = prj_str + "<td style='text-align: center;'>" + penElement.getTextContent() + "</td>";
prj_str = prj_str + "<td style='text-align: center;'>" + tCompElement.getTextContent() + "</td>"
+ "<td style='text-align: center;'>" + tLicElement.getTextContent() + "</td>";
number = Integer.parseInt(penRevElement.getTextContent());
if (number > 0)
prj_str = prj_str + "<td style='text-align: center;': bgcolor=gold> <b> <font color=red>" + penRevElement.getTextContent() + "</font></b></td>";
else
prj_str = prj_str + "<td style='text-align: center;'>" + penRevElement.getTextContent() + "</td>";
number = Integer.parseInt(licVioElement.getTextContent());
if (number > 0)
prj_str = prj_str + "<td style='text-align: center;': bgcolor=gold> <b> <font color=red>" + licVioElement.getTextContent() + "</font></b></td>";
else
prj_str = prj_str + "<td style='text-align: center;'>" + licVioElement.getTextContent() + "</td>";
// prj_str = prj_str + "<td style='text-align: center;'><a href='COS_report.html' target='_blank'>COS Report</a></td></tr>";
return prj_str;
}
} catch (Exception e) {
System.out.println(e);
}
return "Error!! Parsing XML reports";
}
public static void main(String[] args)
{
if (args.length < 2) {
System.err.println("Not enough parameters!");
usage();
System.exit(-1);
}
GenerateProtexScanDashboard parser = new GenerateProtexScanDashboard();
String filename;
File folder = new File( args[0] );
File[] listOfFiles = folder.listFiles();
String html_content = "";
String OSName = null;
String delimiter = null;
OSName = System.getProperty("os.name");
if (OSName.contains("Windows")) delimiter = "\\";
else delimiter = "/";
for (int i = 0; i < listOfFiles.length; i++)
{
if (listOfFiles[i].isFile())
{
filename = folder.getPath() + delimiter + listOfFiles[i].getName();
//System.out.println("File: " + filename);
if (filename.endsWith(".xml") || filename.endsWith(".XML"))
{
File filehandle = new File(filename);
String prj_str = parser.getAllScanResult( filehandle );
html_content = html_content + prj_str;
}
}
}
File f = new File(args[1]);
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write( "<html><body>"
+ "<h1> <span style='text-align:center;font-weight:bold'> Protex Scan Summary </span></h1>"
+ "<table border='2px'>"
+ "<tr style='background-color: rgb(240, 240, 240);'>"
+ "<th rowspan='2'> Protex Project </th>"
+ "<th rowspan='2'> Last Scan Timestamp </th>"
+ "<th colspan='2' style='border-bottom: 1px solid;'> Files </th>"
+ "<th colspan='4' style='border-bottom: 1px solid;'> BOM </th>"
// + "<th rowspan='2'> Detailed Summary </th>"
+ "</tr><tr style='background-color: rgb(240, 240, 240);'>"
+ "<th style='border-left: 1px solid;'> Analyzed </th>"
+ "<th style='border-left: 1px solid;'> Pending </th>"
+ "<th style='border-left: 1px solid;'> Components </th>"
+ "<th style='border-left: 1px solid;'> NumLicense </th>"
+ "<th style='border-left: 1px solid;'> PendingReview </th>"
+ "<th style='border-left: 1px solid;'> LicenseViolations </th></tr>"
+ html_content + "</table></body></html>" ) ;
bw.close();
} catch (Exception e) {
System.out.println(e);
}
}
}

View File

@@ -1,18 +0,0 @@
GenerateProtexScanDashboard.java parses the scan results xml files generated by GetScanResults.java; read the data and
writes the data in a summary (Dashboard) into the output html file.
NOTE: All the scan analysis result xml files (generated from GetScanResult script are required to be stored in a single folder)
How to Execute:
java -jar GenerateProtexScanDashboard.jar <stored scan files Path\foldername> <output file path\filename>
Input Parameters:
IN arg[0] - Location of scan analysis files
OUT arg[1] - Dashboard Output Path\filename.html
Example:
Windows> java -jar GenerateProtexScanDashboard.jar c:\ScanResults c:\scanResults\Protex_Project_Summary.html
Linux> java -jar GenerateProtexScanDashboard.jar /ScanResults /scanResults/Protex_Project_Summary.html
Output:
Windows: c:\scanResults\Protex_Project_Summary.html (Will contain scan result summary of all xml files)
Linux: /scanResults/Protex_Project_Summary.html

View File

@@ -1,219 +0,0 @@
import java.util.List;
import java.io.PrintWriter;
import javax.xml.ws.soap.SOAPFaultException;
import com.blackducksoftware.sdk.codecenter.application.ApplicationApi;
import com.blackducksoftware.sdk.codecenter.application.data.Application;
import com.blackducksoftware.sdk.codecenter.application.data.ApplicationNameVersionOrIdToken;
import com.blackducksoftware.sdk.codecenter.application.data.ApplicationNameVersionToken;
import com.blackducksoftware.sdk.codecenter.client.util.BDSCodeCenterSample;
import com.blackducksoftware.sdk.codecenter.client.util.CodeCenterServerProxyV7_0;
import com.blackducksoftware.sdk.codecenter.cola.ColaApi;
import com.blackducksoftware.sdk.codecenter.cola.data.Component;
import com.blackducksoftware.sdk.codecenter.common.data.ApprovalStatusEnum;
import com.blackducksoftware.sdk.codecenter.request.RequestApi;
import com.blackducksoftware.sdk.codecenter.request.data.Request;
import com.blackducksoftware.sdk.codecenter.request.data.RequestColumn;
import com.blackducksoftware.sdk.codecenter.request.data.RequestPageFilter;
import com.blackducksoftware.sdk.codecenter.request.data.RequestSummary;
//////////////////////////////////////////////////////////////////////////////////////////////////////
//This sample file dis-associates any previous association with Protex project
//and associates with the Project passed in as argument and validates with project
//RETURNS 0 FOR SUCCESS AND 1 FOR FAILURE
//////////////////////////////////////////////////////////////////////////////////////////////////////
public class GetAssociateAndValidateResult extends BDSCodeCenterSample {
private static ApplicationApi appApi = null;
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("arg[0] - Code Center server URL");
System.out.println("arg[1] - Code Center user ID");
System.out.println("arg[2] - Password");
System.out.println("arg[3] - Application Name");
System.out.println("arg[4] - Output Path without filename");
}
/***************************************************************************************************
* main()
* @param args
* @throws Exception
**************************************************************************************************/
public static void main(String[] args) throws Exception {
// check and save parameters
if (args.length < 5) {
System.err.println("\n\nNot enough parameters!");
usage();
System.exit(1);
}
String serverUri = args[0];
String username = args[1];
String password = args[2];
// Set the attachment Id
String applicationName = args[3];
String Path = args[4];
String outFilePath = "";
String ValidationStatus = "ERROR";
String ApprovalStatus = "UNAPPROVED";
RequestApi requestApi = null;
ColaApi colaApi = null;
try {
Long connectionTimeout = 120 * 1000L;
CodeCenterServerProxyV7_0 myCodeCenterServer = new CodeCenterServerProxyV7_0(serverUri, username, password,
connectionTimeout);
// Try some longer timeouts.
// yes this is a blanket hack
// revisit this later to see if timeouts can be reduced to normal.
appApi = myCodeCenterServer.getApplicationApi();
appApi = myCodeCenterServer.getApplicationApi( 0L ); //workaround from bd. call this twice and use infinite timeout
requestApi = myCodeCenterServer.getRequestApi();
colaApi = myCodeCenterServer.getColaApi();
} catch (RuntimeException e) {
System.err.println("\nConnection to server '" + serverUri + "' failed: " + e.getMessage());
System.exit(1);
}
try {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// get the application object
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Application thisapp = null;
ApplicationNameVersionToken apptoken = new ApplicationNameVersionToken();
try {
apptoken.setName(applicationName);
apptoken.setVersion("Unspecified");
thisapp = appApi.getApplication(apptoken);
} catch (Exception e) {
try {
apptoken.setVersion("unspecified");
thisapp = appApi.getApplication(apptoken);
} catch (Exception e1) {
System.err.println("get APP " + applicationName + " caught exception : " + e1.getMessage());
System.exit(1);
}
}
if ( null == thisapp ) {
System.err.println("FAILED: to get app for " + applicationName );
System.exit(1);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Read validation status
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ValidationStatus = thisapp.getValidationStatus().toString();
/*if ( validateException || (! ValidationStatus.equals("PASSED")) ) {
System.err.println("Validation status is " + ValidationStatus + " for app " + applicationName );
ValidationStatus = "Unavailable";
}*/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Read Application Approval Status
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
List<RequestSummary> requestsList = null;
String ptr_str = "";
RequestPageFilter pageFilter = new RequestPageFilter();
pageFilter.setFirstRowIndex(0);
pageFilter.setLastRowIndex(10);
pageFilter.setSortAscending(false);
pageFilter.setSortedColumn(RequestColumn.REQUEST_APPROVAL_STATUS);
pageFilter.getApprovalStatuses().add(ApprovalStatusEnum.APPROVED);
try {
requestsList = appApi.searchApplicationRequests((ApplicationNameVersionOrIdToken)apptoken, "", pageFilter);
} catch (Exception e) {
System.err.println("getApplicationRequests() failed while fetching the details of the request to be updated: "
+ e.getMessage());
System.exit(-1);
}
if (requestsList == null) {
System.err.println("getApplicationRequests() failed: returned null as result");
System.exit(-1);
}
for (RequestSummary request : requestsList) {
Request thisreq = null;
Component thiscomp = null;
String Name = " ";
try {
thisreq = requestApi.getRequest(request.getId());
} catch (Exception e) {
System.err.println("getRequest failed: "
+ e.getMessage());
System.exit(-1);
}//try....catch
try {
thiscomp = colaApi.getCatalogComponent(request.getComponentId());
} catch (Exception e) {
System.err.println("getCatalogComponent() failed: "
+ e.getMessage());
System.exit(-1);
}//try....catch
try {
Name = thiscomp.getNameVersion().getName().trim();
} catch (Exception e) {
System.err.println("Missing component data : Name, caught exception: " + e.getMessage());
}
if (Name.equals("IP Plan Approval")) {
try {
ApprovalStatus = thisreq.getApprovalStatus().toString();
} catch (Exception e) {
System.err.println("Failed to create request data: ApprovalStatus, caught exception: " + e.getMessage());
}
}
} //for (RequestSummary request : requestsList)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Write the application status in an xml file
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String OSName = null;
String delimiter = null;
OSName = System.getProperty("os.name");
if (OSName.contains("Windows")) delimiter = "\\";
else delimiter = "/";
outFilePath = Path + delimiter + applicationName + "_CM.xml";
PrintWriter outFile = null;
try {
outFile = new PrintWriter(outFilePath);
} catch (Exception e) {
System.err.println("\nUnable to create output file writer : " + e.getMessage());
System.exit(-1);
}
outFile.println("<ApplicationData>");
outFile.println("<Application>" + applicationName + "</Application>");
outFile.println("<ApprovedStatus>" + ApprovalStatus + "</ApprovedStatus>");
outFile.println("<ValidationStatus>" + ValidationStatus + "</ValidationStatus>");
outFile.println("</ApplicationData>");
outFile.flush();
outFile.close();
System.exit(0);
} catch (SOAPFaultException e) {
System.err.println("GetCodeCenterApplication failed in main: " + e.getMessage());
System.exit(1);
}
}
}

View File

@@ -1,20 +0,0 @@
GetAssociateAndValidateResult.jar will read the Application's (passed in as argument) Validate and IP Approval status and writes the data into an
output file in xml format. The file generated will be the same as application name with "_CM.xml" suffix.
How to Execute:
java -jar GetAssociateAndValidateResult.jar <Code Center server URL> <Code Center Username> <Password> <Code Center application> <output path>
Input Parameters:
IN arg[0] - Code Center server URL
IN arg[1] - User ID
IN arg[2] - Password
IN arg[3] - Application (IP Plan) name
OUT arg[4] - Output Path without filename
Example:
Windows> java -jar GetAssociateAndValidateResult.jar http://sccodecenter.intel.com abc@intel.com abc "My App" "C:\Results\CCXML"
Linux> java -jar GetAssociateAndValidateResult.jar http://sccodecenter.intel.com abc@intel.com abc "My App" "/Results/CCXML"
Output:
Windows: C:\Results\CCXML\My App_CM.xml
Linux: /Results/CCXML/My App_CM.xml

View File

@@ -1,266 +0,0 @@
import java.util.List;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.io.PrintWriter;
//import org.apache.cxf.common.util.SortedArraySet;
import com.blackducksoftware.sdk.fault.SdkFault;
import com.blackducksoftware.sdk.protex.client.util.BDProtexSample;
import com.blackducksoftware.sdk.protex.client.util.ProtexServerProxy;
import com.blackducksoftware.sdk.protex.project.Project;
import com.blackducksoftware.sdk.protex.project.ProjectApi;
import com.blackducksoftware.sdk.protex.project.bom.BomApi;
import com.blackducksoftware.sdk.protex.project.bom.BomLicenseInfo;
import com.blackducksoftware.sdk.protex.project.codetree.CodeTreeApi;
import com.blackducksoftware.sdk.protex.project.codetree.CodeTreeNode;
import com.blackducksoftware.sdk.protex.project.codetree.CodeTreeNodeRequest;
import com.blackducksoftware.sdk.protex.project.codetree.CodeTreeNodeType;
import com.blackducksoftware.sdk.protex.project.codetree.NodeCount;
import com.blackducksoftware.sdk.protex.project.codetree.NodeCountType;
import com.blackducksoftware.sdk.protex.project.codetree.discovery.CodeMatchDiscovery;
import com.blackducksoftware.sdk.protex.project.codetree.discovery.CodeMatchType;
import com.blackducksoftware.sdk.protex.project.codetree.discovery.DiscoveryApi;
import com.blackducksoftware.sdk.protex.project.codetree.discovery.IdentificationStatus;
import com.blackducksoftware.sdk.protex.project.codetree.identification.IdentificationApi;
/**
* This sample program retrieves scan results and store the results in XML format in the output
* file which is passed as input argument 4
*
* Retrieves below info:
* - Total files analyzed
* - Total file skipped
* - Total files with pending identifications
* - Total original code files
* - List of inbound licenses
* - OBL
*/
public class GetScanResult extends BDProtexSample {
private static String translateXmlEntities(String line) {
if ( null == line ) {
return "";
}
//this MUST go first
return line.replaceAll("&", "&amp;")
.replaceAll("<", "&lt;")
.replaceAll(">", "&gt;")
.replaceAll("'", "&apos;")
.replaceAll("\"", "&quot;");
}
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("arg[0] - Protex server URL");
System.out.println("arg[1] - Protex user ID");
System.out.println("arg[2] - Password");
System.out.println("arg[3] - Project ID");
System.out.println("arg[4] - Location of output xml file");
}
/**************************************************************************************
*
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// check and save parameters
if (args.length < 5) {
System.err.println("Not enough parameters!");
usage();
System.exit(-1);
}
String serverUri = args[0];
String username = args[1];
String password = args[2];
String projectId = args[3];
String outPath = args[4];
ProjectApi projectApi = null;
CodeTreeApi codetreeApi = null;
DiscoveryApi discoveryApi = null;
BomApi bomApi = null;
// get service and service port
try {
Long connectionTimeout = 120 * 1000L;
ProtexServerProxy myProtexServer = new ProtexServerProxy(serverUri, username, password,
connectionTimeout);
projectApi = myProtexServer.getProjectApi(5 * connectionTimeout);
codetreeApi = myProtexServer.getCodeTreeApi(15 * connectionTimeout);
discoveryApi = myProtexServer.getDiscoveryApi(15 * connectionTimeout);
bomApi = myProtexServer.getBomApi(30 * connectionTimeout);
} catch (RuntimeException e) {
System.err.println("Connection to server '" + serverUri + "' failed: " + e.getMessage());
System.exit(-1);
}
//get the license list
List<BomLicenseInfo> licenses = null;
try {
licenses = bomApi.getBomLicenseInfo(projectId);
} catch (SdkFault e) {
System.err.println("\ngetLicenseInfo failed: " + e.getMessage());
System.exit(-1);
}
// Check for valid return
if (licenses == null) {
System.err.println("\ngetLicenseInfo: unexpected return object");
System.exit(-1);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// code tree nodes
///////////////////////////////////////////////////////////////////////////////////////////////////////////
int DEPTH = 1; //pulling just the parent results in all 0 counts!??
CodeTreeNodeRequest nodeRequest = new CodeTreeNodeRequest();
nodeRequest.setDepth(DEPTH);
nodeRequest.getCounts().add(NodeCountType.PENDING_ID_CODE_MATCH);
nodeRequest.getCounts().add(NodeCountType.PENDING_REVIEW);
nodeRequest.getCounts().add(NodeCountType.VIOLATIONS);
nodeRequest.getCounts().add(NodeCountType.NO_DISCOVERIES);
nodeRequest.getCounts().add(NodeCountType.FILES);
nodeRequest.getCounts().add(NodeCountType.DISCOVERED_COMPONENTS);
nodeRequest.getIncludedNodeTypes().add(CodeTreeNodeType.EXPANDED_ARCHIVE);
nodeRequest.getIncludedNodeTypes().add(CodeTreeNodeType.FILE);
nodeRequest.getIncludedNodeTypes().add(CodeTreeNodeType.FOLDER);
nodeRequest.setIncludeParentNode(true);
// get CodeTree
String root = "/";
int TOP_ONLY = 0;
Long analyzedFiles = null;
Long skippedFiles = null;
Long discoveriesPending = null;
Long noDiscoveries = null;
Long discoveredComponents = null;
Integer bomComponents = null;
Integer bomLicenses = null;
Long pendingReview = null;
Long licenseViolations = null;
//PartialCodeTree partialCodeTree = null;
List<CodeTreeNode> partialCodeTree = null;
try {
partialCodeTree = codetreeApi.getCodeTreeNodes(projectId, root, nodeRequest);
for ( CodeTreeNode node : partialCodeTree) {
if ( ! node.getName().equals("") ) continue;
List<NodeCount> countList = node.getNodeCounts();
for (NodeCount count: countList) {
Long value = count.getCount();
NodeCountType type = count.getCountType();
if ( NodeCountType.PENDING_ID_CODE_MATCH == type ) {
discoveriesPending = value;
} else if ( NodeCountType.PENDING_REVIEW == type ) {
pendingReview = value;
} else if ( NodeCountType.VIOLATIONS == type ) {
licenseViolations = value;
} else if ( NodeCountType.NO_DISCOVERIES == type ) {
noDiscoveries = value;
} else if ( NodeCountType.FILES == type ) {
analyzedFiles = value;
} else if ( NodeCountType.DISCOVERED_COMPONENTS == type ) {
discoveredComponents = value;
}
}//for (NodeCount
}//for ( CodeTreeNode node
skippedFiles = codetreeApi.getSkippedFileCount(projectId);
} catch (SdkFault e) {
System.err.println("getCodeTree(TOP_ONLY) failed: " + e.getMessage());
System.exit(-1);
}
Project project = null;
String analyzedDate = null;
String projectName = null;
project = projectApi.getProjectById(projectId);
if (project != null) {
DateFormat formatter = new SimpleDateFormat("dd MMM, yyyy hh:mm:ss a");
analyzedDate = formatter.format(project.getLastAnalyzedDate().getTime());
projectName = project.getName();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// BOM (file) counts
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
try {
bomComponents = bomApi.getBomComponentCount(projectId);
} catch (SdkFault e) {
System.err.println("getBomComponentCount() failed: " + e.getMessage());
System.exit(-1);
}
try {
bomLicenses = bomApi.getBomLicenseCount(projectId);
} catch (SdkFault e) {
System.err.println("getBomLicenseCount() failed: " + e.getMessage());
System.exit(-1);
}
{
PrintWriter outFile = null;
try {
outFile = new PrintWriter(outPath);
} catch (Exception e) {
System.err.println("\nUnable to create output file writer : " + e.getMessage());
System.exit(-1);
}
outFile.println("<Project name=\"" + projectName + "\" id=\"" + projectId + "\" >");
outFile.println("<ServerUrl>" + serverUri +"</ServerUrl>");
outFile.println("<LastAnalyzed>" + analyzedDate +"</LastAnalyzed>");
outFile.println("<ScanFileInfo>");
outFile.println("\t<Analyzed>" + analyzedFiles + "</Analyzed>");
outFile.println("\t<Skipped>" + skippedFiles + "</Skipped>");
outFile.println("\t<PendingID>" + discoveriesPending + "</PendingID>");
outFile.println("\t<NoDiscoveries>" + noDiscoveries + "</NoDiscoveries>" );
outFile.println("</ScanFileInfo>");
outFile.println("<Components>");
outFile.println("\t<DiscoveredComponents>" + discoveredComponents + "</DiscoveredComponents>");
outFile.println("</Components>");
outFile.println("<BOM>");
outFile.println("\t<TotalComponents>" + bomComponents + "</TotalComponents>");
outFile.println("\t<TotalLicenses>" + bomLicenses + "</TotalLicenses>");
outFile.println("\t<LicenseList>");
if (licenses.size() == 0) {
outFile.println("\t\t<None/>");
} else {
for (BomLicenseInfo license : licenses) {
String licensename = translateXmlEntities(license.getName());
if ( ! licensename.equals("Unspecified") ) {
outFile.println("\t\t<License>" + licensename + "</License>");
}
}
}
outFile.println("\t</LicenseList>");
outFile.println("\t<PendingReview>" + pendingReview + "</PendingReview>");
outFile.println("\t<LicenseViolations>" + licenseViolations + "</LicenseViolations>");
outFile.println("</BOM>");
outFile.println("</Project>\n");
outFile.flush();
outFile.close();
}
}
}

View File

@@ -1,20 +0,0 @@
GetScanResult.java collects the scan analysis summary (# files scanned; # Pending identification; # Licencen conflicts; etc)
of a protex Project passed is as argument. If the project is scanned, the analysis are written to the outfile passed in as
argument. Else, throws an exception
How to Execute:
java -jar GetScanResult.jar <Protex server URL> <User ID> <User Password> <Project ID> <Output Path\Filename>
Input Parameters:
IN arg[0] - Protex server URL
IN arg[1] - the username for this server
IN arg[2] - password
IN arg[3] - Project ID
OUT arg[4] - location of output xml file
Example:
java -jar GetScanResult.jar http://jfipscn01.intel.com abc@intel.com abc c_test_k_5271 c:\ScanResults\Project_Scan_result.xml
Output:
c:\ScanResults\Project_Scan_result.xml (Will contain scan result)

View File

@@ -1,32 +0,0 @@
RunAssociateAndValidateProtexProject.java will dis-associate the application from previously associated Protex project and
re-associate the application to the project name passed as argument and execute validate. This script does the data integrity
check between the application and Protex project
How to Execute:
java -jar RunAssociateAndValidateProtexProject.jar <Code Center server URL> <Code Center Username> <Password> <Code Center application> <Project Name> <Protex Server ID>
Input Parameters:
IN arg[0] - Code Center server URL
IN arg[1] - User ID
IN arg[2] - Password
IN arg[3] - Application (IP Plan) name
IN arg[4] - Protex Project name
IN arg[5] - Protex Server ID
Example:
java -jar RunAssociateAndValidateProtexProject.jar http://sccodecenter.intel.com abc@intel.com abc "My App" "My Project" JF1
=======================================================================================================================
Protex Server ID Protex Server URL
BA1 http://baipscn01.intel.com
GK1 http://gkipscn01.intel.com
HD1 http://hdipscn01.intel.com
IL1 http://iilipscn01.intel.com
JF1 http://jfipscn01.intel.com
JF2 http://jfipscn02.intel.com
JF03 http://jfipscn03.intel.com
NN01 http://nnsipscn01.intel.com
SC2 http://scipscn02.intel.com
SC3 http://scipscn03.intel.com
SH1 http://shipscn01.intel.com

View File

@@ -1,142 +0,0 @@
import javax.xml.ws.soap.SOAPFaultException;
import com.blackducksoftware.sdk.codecenter.administration.data.ServerNameToken;
import com.blackducksoftware.sdk.codecenter.application.ApplicationApi;
import com.blackducksoftware.sdk.codecenter.application.data.Application;
import com.blackducksoftware.sdk.codecenter.application.data.ApplicationNameVersionToken;
import com.blackducksoftware.sdk.codecenter.application.data.ProjectNameToken;
import com.blackducksoftware.sdk.codecenter.client.util.BDSCodeCenterSample;
import com.blackducksoftware.sdk.codecenter.client.util.CodeCenterServerProxyV7_0;
//////////////////////////////////////////////////////////////////////////////////////////////////////
//This sample file dis-associates any previous association with Protex project
//and associates with the Project passed in as argument and validates with project
//RETURNS 0 FOR SUCCESS AND 1 FOR FAILURE
//////////////////////////////////////////////////////////////////////////////////////////////////////
public class RunAssociateAndValidateProtexProject extends BDSCodeCenterSample {
private static ApplicationApi appApi = null;
private static void usage() {
System.out.println("Input Parameters:" );
System.out.println("arg[0] - Code Center server URL");
System.out.println("arg[1] - Code Center user ID");
System.out.println("arg[2] - Password");
System.out.println("arg[3] - Application Name");
System.out.println("arg[4] - Protex Project Name");
System.out.println("arg[5] - Protex Server ID (Readme file under RunAssociateAndValidateProject folder has all server ID details");
}
/***************************************************************************************************
* main()
* @param args
* @throws Exception
**************************************************************************************************/
public static void main(String[] args) throws Exception {
// check and save parameters
if (args.length < 6) {
System.err.println("\n\nNot enough parameters!");
usage();
System.exit(1);
}
String serverUri = args[0];
String username = args[1];
String password = args[2];
// Set the attachment Id
String applicationName = args[3];
String projectName = args[4];
String projectServer = args[5];
try {
Long connectionTimeout = 120 * 1000L;
CodeCenterServerProxyV7_0 myCodeCenterServer = new CodeCenterServerProxyV7_0(serverUri, username, password,
connectionTimeout);
// Try some longer timeouts.
// yes this is a blanket hack
// revisit this later to see if timeouts can be reduced to normal.
appApi = myCodeCenterServer.getApplicationApi();
appApi = myCodeCenterServer.getApplicationApi( 0L ); //workaround from bd. call this twice and use infinite timeout
} catch (RuntimeException e) {
System.err.println("\nConnection to server '" + serverUri + "' failed: " + e.getMessage());
System.exit(1);
}
try {
ServerNameToken protexServerToken = new ServerNameToken();
ProjectNameToken protexProjectToken = new ProjectNameToken();
try {
protexServerToken.setName(projectServer);
protexProjectToken.setServerId(protexServerToken);
protexProjectToken.setName(projectName);
} catch (Exception e) {
System.err.println("Caught exception setting up Protex project token : " + e.getMessage());
System.exit(1);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// get the application object
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Application thisapp = null;
ApplicationNameVersionToken apptoken = new ApplicationNameVersionToken();
try {
apptoken.setName(applicationName);
apptoken.setVersion("Unspecified");
thisapp = appApi.getApplication(apptoken);
} catch (Exception e) {
try {
apptoken.setVersion("unspecified");
thisapp = appApi.getApplication(apptoken);
} catch (Exception e1) {
System.err.println("get APP " + applicationName + " caught exception : " + e1.getMessage());
System.exit(1);
}
}
if ( null == thisapp ) {
System.err.println("FAILED: to get app for " + applicationName );
System.exit(1);
}
//Disassociate current application project pair
try {
appApi.disassociateProtexProject(apptoken);
} catch (Exception e) {
System.err.println("\ndisassociate() call in main() for application " + applicationName + " caught exception: " + e.getMessage());
}
//Associate application to new project
try {
appApi.associateProtexProject(apptoken, protexProjectToken);
} catch (Exception e) {
System.err.println("\nassociate() call in main() for application " + applicationName + " caught exception: " + e.getMessage());
System.exit(1);
}
//validate the Application Project pair
String ValidationStatus = "ERROR";
try {
appApi.validate(apptoken, true, true);
ValidationStatus = "PASSED";
} catch (Exception e) {
System.err.println("API exception: appApi.validate() for " + applicationName + " : " + e.getMessage());
if ( -1 != e.getMessage().indexOf("not synchronized") ) {
ValidationStatus = "NotSynched";
}
}
System.out.println(ValidationStatus);
System.exit(0);
} catch (SOAPFaultException e) {
System.err.println("GetCodeCenterApplication failed in main: " + e.getMessage());
System.exit(1);
}
}
}

View File

@@ -1,42 +0,0 @@
ScanProtexProject.bat will take the user credentials, Protex server URL and project ID as input. The bat uses bdstool
to initiate the scan. After the 1st scan, rerun of this .bat file will only scan changes in code base will be scanned.
If a forced scan is needed, then open the ScanProtexProject.bat in edit more, and update to below line
call bdstool analyze --force
Prerequisite:
Protex client MUST be installed prior to executing the script
How to Execute:
Windows OS:
1) Open a DOS Window
ScanProtexProject.bat <Protex server URL> <User ID> <User Password> <Project ID> <Scan Folder Path>
Linux OS
1) Open a bash windows
sh ScanProtexProject.sh <Protex server URL> <User ID> <User Password> <Project ID> <Scan Folder Path>
Input Parameters:
IN arg[0] - Protex server URL
IN arg[1] - User ID
IN arg[2] - Password
IN arg[3] - Protex project ID
IN arg[4] - Source files Path
Example:
ScanProtexProject.bat https://jfipscn01.intel.com abc@intel.com abc c_test_k_5271 c:\ScanSource
sh ScanProtexProject.sh https://jfipscn01.intel.com abc@intel.com abc c_test_k_5271 ~/ScanSource
================================================================================================================================
Protex Server ID Protex Server URL
BA1 https://baipscn01.intel.com
GK1 https://gkipscn01.intel.com
IL1 https://iilipscn01.intel.com
JF1 https://jfipscn01.intel.com
JF2 https://jfipscn02.intel.com
JF03 https://jfipscn03.intel.com
JF04 https://jfipscn04.intel.com
JF05 https://jfipscn05.intel.com
JF06 https://jfipscn06.intel.com
NN01 https://nnsipscn01.intel.com
SC2 https://scipscn02.intel.com
SC3 https://scipscn03.intel.com
SH1 https://shipscn01.intel.com
MU01 https://imuipscn01.intel.com

View File

@@ -1,38 +0,0 @@
@echo off
if "%1" == "" GOTO ENDFILE
if "%2" == "" GOTO ENDFILE
if "%3" == "" GOTO ENDFILE
if "%4" == "" GOTO ENDFILE
if "%5" == "" GOTO ENDFILE
Rem set environmental values to enable login to the Protex server
Rem Set the server URL
SET BDSSERVER=%1
Rem Set the login name
SET BDSUSER=%2
Rem Set the password
SET BDSPASSWORD=%3
pushd "%5"
call bdstool login
call bdstool new-project %4 --verbose
call bdstool analyze
call bdstool logout
goto DONE
:ENDFILE
echo "Arugument Missing"
echo "Input Parameters:" );
echo "arg[1] - Protex server URL e.g http://scipscn03.intel.com");
echo "arg[2] - Protex user ID e.g abc@intel.com");
echo "arg[3] - Password e.g abc");
echo "arg[4] - Project ID e.g c_byt_beta_audio_6009");
echo "arg[5] - Source Code location e.g \"C:\\MySource\\ScanDir\"");
:DONE
popd

View File

@@ -1,32 +0,0 @@
#!/bin/bash
if [ $# -ne 5 ]; then
echo "Arugument Missing"
echo "Input Parameters:"
echo "arg[1] - Protex server URL"
echo "arg[2] - Protex user ID e.g abc@intel.com"
echo "arg[3] - Password e.g abc"
echo "arg[4] - Project ID e.g c_byt_beta_audio_6009"
echo "arg[5] - Source Code location e.g /home/sourcefiles"
exit
fi
# set environmental values to enable login to the Protex server
# Set the server URL
export BDSSERVER=$1
# Set the login name
export BDSUSER=$2
# Set the password
SET BDSPASSWORD=$3
pushd $5
bdstool login
bdstool new-project $4 --verbose
bdstool analyze
bdstool logout
popd
exit