Try my tool (draft version) to introspect Websphere App server / ESB server or WPS server via JACL script. It will create a report in XLS format.
Steps for configuration & execution -
1. Execute below .jacl file using following command - . Go to your Websphere server profiile/bin. Make sure that you have wsadmin.batch file in this folder.
Take the output file (.txt).
e.g. goto C:\I\WID62\pf\wps\bin> wsadmin -f ex6.jacl all > ex6.txt
#----------------------------------------------------------------------------------START of file.
#
proc ex6 {flag} {
if {$flag == "config"} {
set configonly 1
} else {
if {$flag == "all"} {
set configonly 0
} else {
puts "Single argument must be \"all\" or \"config\""
return
}
}
#--------------------------------------------------------------
# set up globals
#--------------------------------------------------------------
global AdminControl
global AdminConfig
global AdminApp
#puts "Installation summary: "
puts "----------------------------------------------------"
puts ""
#---------------------------------------------------------
# Get the comma seperated cells/nodes/servers.
#---------------------------------------------------------
puts "Configured cells, nodes, and servers: "
puts "----------------------------------------------------"
puts ""
set cells [$AdminConfig list Cell]
#puts "Number of cells: [llength $cells]"
puts "CELL_NODE_SERVER_INFO,"
foreach cell $cells {
set cname [$AdminConfig showAttribute $cell name]
set nodes [$AdminConfig list Node $cell]
foreach node $nodes {
set nname [$AdminConfig showAttribute $node name]
set servs [$AdminConfig list Server $node]
# puts " Number of servers in $nname: [llength $servs]"
foreach server $servs {
set sname [$AdminConfig showAttribute $server name]
puts "$cname,$nname,$sname,"
}
puts ""
}
puts "CELL_NODE_SERVER_INFO_END,"
#---------------------Getting comma seperated Shared LibNames
puts ""
set liblist [$AdminConfig list Library]
puts "SHARED_LIB_DETAILS,"
foreach libname $liblist {
set libraryname [$AdminConfig showAttribute $libname name]
set libraryClasspath [$AdminConfig showAttribute $libname classPath]
puts "$libraryname,$libraryClasspath,"
}
puts "SHARED_LIB_DETAILS_END,"
#----------------------------------Getting comma seperated String NameSpace Binding Details----
set strnamesplist [$AdminConfig list StringNameSpaceBinding]
#puts "Number of StringNameSpaceBindings :-- [llength $strnamesplist], "
puts "BINDING_DETAILS,"
foreach strNameSplist $strnamesplist {
set bindingname [$AdminConfig showAttribute $strNameSplist name]
set nameinnamespace [$AdminConfig showAttribute $strNameSplist nameInNameSpace]
set stringtobind [$AdminConfig showAttribute $strNameSplist stringToBind]
puts ""
puts "$bindingname,$nameinnamespace,$stringtobind,"
puts ""
}
puts "BINDING_DETAILS_END,"
puts ""
#---------------------------------------------------------
#---------------------------------------------------------
# Get a list of the ServerClusters and display it.
#---------------------------------------------------------
puts "SERVER_CLUSTER,"
set clusters [$AdminConfig list ServerCluster $cell]
foreach cluster $clusters {
set clname [$AdminConfig showAttribute $cluster name]
set memberlist [$AdminConfig showAttribute $cluster members]
set members [lindex $memberlist 0]
#puts " Cluster $clname has [llength $members] members"
foreach member $members {
set mname [$AdminConfig showAttribute $member memberName]
puts "$clname,$mname,"
}
}
}
puts "SERVER_CLUSTER_END,"
#-----------------------Getting MQ Queue Details----
set MQQueueIDs [$AdminConfig getid /MQQueue:/]
puts "MQ_DESTINATION_DETAILS,"
foreach MQQueueID $MQQueueIDs {
set qname [$AdminConfig showAttribute $MQQueueID name]
set qjndiname [$AdminConfig showAttribute $MQQueueID jndiName]
set baseqname [$AdminConfig showAttribute $MQQueueID baseQueueName]
set scope [$AdminConfig showAttribute $MQQueueID provider]
puts "$qname,$qjndiname,$baseqname,$scope,"
}
puts "MQ_DESTINATION_DETAILS_END,"
#-----------------------------------------------------------------
#-----------------------Getting MQ Factory Details--------------------
set MQConnectionFactories [ $AdminConfig getid /MQConnectionFactory:/ ]
puts "MQ_CONN_FACT_DETAILS,"
foreach MQfact $MQConnectionFactories {
set qname [$AdminConfig showAttribute $MQfact name]
set fjndiname [$AdminConfig showAttribute $MQfact jndiName]
set qmanager [$AdminConfig showAttribute $MQfact queueManager]
set host [$AdminConfig showAttribute $MQfact host]
set port [$AdminConfig showAttribute $MQfact port]
set channel [$AdminConfig showAttribute $MQfact channel]
set clientid [$AdminConfig showAttribute $MQfact clientID]
set scope [$AdminConfig showAttribute $MQfact provider]
puts "$scope,$qname,$fjndiname,$qmanager,$host,$port,$channel,$clientid,"
}
puts "MQ_CONN_FACT_DETAILS_END,"
#-------------------------------------------------DATASOURCE----------------
#####################################################################
# Show properties of Installed DataSources.
####################################################################
set datasources [ $AdminConfig list DataSource ]
set JAASentries [ $AdminConfig list JAASAuthData ]
set dslength [llength $datasources]
puts "DATASOURCE_PROP,"
#puts "DATASOURCE_LEN,"
#puts " $dslength ,"
#puts "DATASOURCE_LEN_END,"
foreach e1 $datasources {
set nameVal [ $AdminConfig showAttribute $e1 name ]
set authDataAliasVal [ $AdminConfig showAttribute $e1 authDataAlias ]
set jndiNameVal [ $AdminConfig showAttribute $e1 jndiName ]
set providerVal [ $AdminConfig showAttribute $e1 provider ]
set scopeVal [ $AdminConfig showAttribute $e1 provider ]
set ps [$AdminConfig showAttribute $e1 propertySet]
set rps [lindex [$AdminConfig showAttribute $ps resourceProperties] 0]
foreach rp $rps {
set propName [$AdminConfig showAttribute $rp name]
if { $propName == "databaseName" } {
set dbnameVal [$AdminConfig showAttribute $rp value]
}
if { $propName == "serverName" } {
set servernameVal [$AdminConfig showAttribute $rp value]
}
if { $propName == "portNumber" } {
set portNumVal [$AdminConfig showAttribute $rp value]
}
}
foreach e2 $JAASentries {
set aliasname [ $AdminConfig showAttribute $e2 alias ]
if {$aliasname == $authDataAliasVal} {
set userid [ $AdminConfig showAttribute $e2 userId ]
set password [ $AdminConfig showAttribute $e2 password ]
}
}
if { $scopeVal == {} } {
set scopeVal {" "}
}
if { $nameVal == {} } {
set nameVal {" "}
}
if { $jndiNameVal == {} } {
set jndiNameVal {" "}
}
if { $providerVal == {} } {
set providerVal {" "}
}
if { $authDataAliasVal == {} } {
set authDataAliasVal {" "}
}
if { $dbnameVal == {} } {
set dbnameVal {" "}
}
if { $servernameVal == {} } {
set servernameVal {" "}
}
if { $portNumVal == {} } {
set portNumVal {" "}
}
if { $userid == {} } {
set userid {" "}
}
if { $password == {} } {
set password {" "}
}
puts "$scopeVal,$nameVal,$jndiNameVal,$providerVal,$authDataAliasVal,$dbnameVal,$servernameVal,$portNumVal,$userid,$password,"
}
puts "DATASOURCE_PROP_END,"
#-----------------------------------------------------------------
#---------------------------------------------------------
# Find all the installed applications
#---------------------------------------------------------
set apps3 [$AdminApp list]
puts "INSTALLED_APP,"
foreach appNam $apps3 {
puts "$appNam , "
}
puts "INSTALLED_APP_END,"
#---------------------------------------------------------
#---------------------------------------------------------
# What servers are running on each node, and what apps do they have?
#---------------------------------------------------------
#puts "Running servers: "
puts "----------------------------------------------------"
puts ""
foreach cell $cells {
set cname [$AdminConfig showAttribute $cell name]
set nodes [$AdminConfig list Node $cell]
foreach node $nodes {
set nname [$AdminConfig showAttribute $node name]
set servs [$AdminControl queryNames type=Server,cell=$cname,node=$nname,*]
puts "Number of running servers on node $nname: [llength $servs]"
foreach server $servs {
#---------------------------------------------------------
# Display the serverVersion information.
#---------------------------------------------------------
set svreport [$AdminControl getAttribute $server serverVersion]
puts " Server version report for this server follows:"
puts $svreport
puts "----------------------------------------------------"
puts ""
}
}
}
#---------------------------------------------------------
# What servers are running on each node, and what apps do they have?
#---------------------------------------------------------
puts "RUNNING_APP,"
foreach cell $cells {
set cname [$AdminConfig showAttribute $cell name]
set nodes [$AdminConfig list Node $cell]
foreach node $nodes {
set nname [$AdminConfig showAttribute $node name]
set servs [$AdminControl queryNames type=Server,cell=$cname,node=$nname,*]
foreach server $servs {
#---------------------------------------------------------
# Find the applications running on this server. Comma Seperated...
#---------------------------------------------------------
set apps [$AdminControl queryNames type=Application,cell=$cname,node=$nname,process=$sname,*]
#puts " Number of applications running on $sname: [llength $apps]"
foreach app $apps {
set aname [$AdminControl getAttribute $app name]
puts " $aname ,"
}
}
}
}
puts "RUNNING_APP_END,"
set apps [$AdminApp list]
puts "CLIENT_PORT,"
foreach appName $apps {
puts "------------------------------------------------------------------------"
set clientBindPortinfo [$AdminApp view $appName -WebServicesClientBindPortInfo ]
#set mapModToServerinfo [$AdminApp view $appName -MapModulesToServers ]
puts "$clientBindPortinfo"
}
puts "CLIENT_PORT_END,"
set apps2 [$AdminApp list]
puts "MAPMODTOSERVER,"
foreach appName $apps2 {
puts "------------------------------------------------------"
puts "KEY_START"
#set clientBindPortinfo [$AdminApp view $appName -WebServicesClientBindPortInfo ]
set mapModToServerinfo [$AdminApp view $appName -MapModulesToServers ]
puts "$mapModToServerinfo"
puts "KEY_END"
}
# puts "------------------------------------------------------"
puts "MAPMODTOSERVER_END,"
}
#-----------------------------------------------------------------
# Main
#-----------------------------------------------------------------
if { !($argc == 1) } {
puts "ex6: this script requires 1 parameter: a flag that should be \"all\" or \"config\""
puts ""
puts "e.g.: ex6 all"
} else {
set flag [lindex $argv 0]
ex6 $flag
}
**********************************************************************************************************END OF JCL File.
2. Secure the output file in a folder. Also copy the following .java file into the same folder-
---------------------------------------------------------------------------------------------------- Start of java file
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* @author danesm
*
*
*/
public class ExcelSheetGenerator {
/**
* Comment for <code>list1</code> List1 has all Cell,Node and Server
* names.
*/
private static List list1 = new ArrayList();
/**
* Comment for <code>list2</code>
*/
private static List list2 = new ArrayList();
/**
* Comment for <code>list3</code> This list object contains all Shared Lib
* Details as String object.
*/
private static List list3 = new ArrayList();
/**
* Comment for <code>list4</code> This list contains String NameSpace
* Binding Details.
*/
/**
* Comment for <code>list4</code>
*/
private static List list4 = new ArrayList();
/**
* Comment for <code>list5</code>
*/
private static List list5 = new ArrayList();
/**
* Comment for <code>list7</code>
*/
private static List list7 = new ArrayList();
/**
* Comment for <code>list6</code>
*/
private static List list6 = new ArrayList();
/**
* Comment for <code>list8</code>
*/
private static List list8 = new ArrayList();
/**
* Comment for <code>list9</code>
*/
private static List list9 = new ArrayList();
/**
* Comment for <code>list10</code>
*/
private static List list10 = new ArrayList();
/**
* Comment for <code>list11</code>
*/
private static List list11 = new ArrayList();
/**
* Main Method
*
* @param args
*/
public static void main(String[] args) throws Exception {
HSSFWorkbook wb = createWorkbook();
String response = null;
//FILE PATH needs to be modified as per user's location.
String filePath="C:\\JACLscripts\\ex6.txt";
try {
//Reading the text file created by JACL script.
response = readFile(filePath);
if(response != null){
System.out.println("File read operation from location"+" "+filePath+" "+"successfully completed..");
}else if(response == null || response == "")
{
System.out.println("File Read operation failed at"+filePath+"\n "+"Please Check the path provided!! ");
}
prepareDataForsheet1(response); populateSheet1(wb);
prepareDataForsheet2(response); populateSheet2(wb);
prepareDataForsheet3(response); populateSheet3(wb);
prepareDataForsheet4(response); populateSheet4(wb);
prepareDataForsheet5(response); populateSheet5(wb);
prepareDataForsheet6(response); populateSheet6(wb);
prepareDataForsheet7(response); populateSheet7(wb);
prepareDataForsheet8(response); populateSheet8(wb);
prepareDataForsheet9(response); populateSheet9(wb);
prepareDataForsheet10(response); populateSheet10(wb);
prepareDataForsheet11(response); populateSheet11(wb);
//Save Final Report
FileOutputStream out = new FileOutputStream(
"AP_WAS_Server_Report.xls");
wb.write(out);
out.close();
System.out.println("TASK OVER!! ");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void populateSheet1(HSSFWorkbook wb) {
int num_of_cell_perRow = 3;
int k = (list1.size()) / num_of_cell_perRow;
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("Configured Cell,Node,Server")
.createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("Configured Cell,Node,Server").createRow(
1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list1.get(0));
list1.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list1.get(0));
list1.remove(0);
}
}
}
/**
* @param wb
*/
public static void populateSheet2(HSSFWorkbook wb) { //TODO implement logic
// to handle single row
int num_of_cell_perRow = 2;
int k = (list2.size()) / num_of_cell_perRow;
//System.out.println("ExcelSheetGenerator.populateSheet2()k=>" + k);
List rowList = new ArrayList();
for (int i = 1; i <= k; i++) {
HSSFRow r2 = wb.getSheet("Server Clusters").createRow(i);
rowList.add(r2);
}
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list2.get(0));
list2.remove(0);
}
}
}
/**
* @param wb
*/
public static void populateSheet3(HSSFWorkbook wb) {
int num_of_cell_perRow = 2;
int k = (list3.size()) / num_of_cell_perRow;
//System.out.println("ExcelSheetGenerator.populateSheet3()k=>" + k);
List rowList = new ArrayList();
for (int i = 1; i <= k; i++) {
HSSFRow r2 = wb.getSheet("Shared Library").createRow(i);
rowList.add(r2);
}
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list3.get(0));
list3.remove(0);
}
}
}
public static void populateSheet4(HSSFWorkbook wb) {
int num_of_cell_perRow = 3;
int k = (list4.size()) / num_of_cell_perRow;
//System.out.println("ExcelSheetGenerator.populateSheet4()k=>" + k);
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("Name Space Binding").createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("Name Space Binding").createRow(1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list4.get(0));
list4.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list4.get(0));
list4.remove(0);
}
}
}
public static void populateSheet5(HSSFWorkbook wb) {
int num_of_cell_perRow = 2;
int k = (list5.size()) / num_of_cell_perRow;
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("Applications").createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("Applications").createRow(1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list5.get(0));
list5.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list5.get(0));
list5.remove(0);
}
}
}
public static void populateSheet6(HSSFWorkbook wb) {
int num_of_cell_perRow = 2;
int k = (list6.size()) / num_of_cell_perRow;
//System.out.println("ExcelSheetGenerator.populateSheet6()k=>" + k);
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("Map modules to server").createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("Map modules to server").createRow(1);
rowList.add(row);
}
//System.out.println("ExcelSheetGenerator.main()list6.size()->" + list6.size());
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list6.get(0));
list6.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list6.get(0));
list6.remove(0);
}
}
}
public static void populateSheet8(HSSFWorkbook wb) {
int num_of_cell_perRow = 6;
int k = (list8.size()) / num_of_cell_perRow;
//System.out.println("ExcelSheetGenerator.populateSheet8()k=>" + k);
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("WebServices Client BindPort").createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("WebServices Client BindPort").createRow(1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list8.get(0));
list8.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list8.get(0));
list8.remove(0);
}
}
}
public static void populateSheet9(HSSFWorkbook wb) {
int num_of_cell_perRow = 10;
int k = (list9.size()) / num_of_cell_perRow;
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("Data Source").createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("Data Source").createRow(1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list9.get(0));
list9.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list9.get(0));
list9.remove(0);
}
}
}
public static void populateSheet7(HSSFWorkbook wb) {
HSSFRow row2 = wb.getSheet("Installation").createRow(2);
HSSFRow row3 = wb.getSheet("Installation").createRow(3);
row2.createCell((short) (0)).setCellValue((String) list7.get(0));
row2.createCell((short) (1)).setCellValue((String) list7.get(1));
row3.createCell((short) (1)).setCellValue((String) list7.get(2));
}
/**
* @param wb
*/
public static void populateSheet10(HSSFWorkbook wb) {
int num_of_cell_perRow = 8;
int k = (list10.size()) / num_of_cell_perRow;
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("MQ Connection Factories").createRow(
i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("MQ Connection Factories").createRow(1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list10.get(0));
list10.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list10.get(0));
list10.remove(0);
}
}
}
/**
* @param wb
*/
public static void populateSheet11(HSSFWorkbook wb) {
int num_of_cell_perRow = 4;
int k = (list11.size()) / num_of_cell_perRow;
List rowList = new ArrayList();
if (k > 1) {
for (int i = 1; i <= k; i++) {
HSSFRow row = wb.getSheet("MQ Queue Destination").createRow(i);
rowList.add(row);
}
} else if (k == 1) {
HSSFRow row = wb.getSheet("MQ Queue Destination").createRow(1);
rowList.add(row);
}
if (k > 1) {
for (int i = 1; i <= k; i++) {
for (int j = 0; j < num_of_cell_perRow; j++) {
((HSSFRow) rowList.get(i - 1)).createCell((short) (j))
.setCellValue((String) list11.get(0));
list11.remove(0);
}
}
} else if (k == 1) {
HSSFRow r1 = (HSSFRow) rowList.get(0);
for (int j = 0; j < num_of_cell_perRow; j++) {
r1.createCell((short) (j)).setCellValue((String) list11.get(0));
list11.remove(0);
}
}
}
public static HSSFWorkbook createWorkbook() {
HSSFWorkbook wb = new HSSFWorkbook();
//Creating Sheets
HSSFSheet sheet1 = wb.createSheet("Configured Cell,Node,Server");
HSSFSheet sheet2 = wb.createSheet("Server Clusters");
HSSFSheet sheet3 = wb.createSheet("Shared Library");
HSSFSheet sheet4 = wb.createSheet("Name Space Binding");
HSSFSheet sheet5 = wb.createSheet("Applications");
HSSFSheet sheet6 = wb.createSheet("Map modules to server");
HSSFSheet sheet7 = wb.createSheet("Installation");
HSSFSheet sheet8 = wb.createSheet("WebServices Client BindPort");
HSSFSheet sheet9 = wb.createSheet("Data Source");
HSSFSheet sheet10 = wb.createSheet("MQ Connection Factories");
HSSFSheet sheet11 = wb.createSheet("MQ Queue Destination");
//Creating Row and Cells.
HSSFRow row1 = sheet1.createRow((short) 0);
HSSFFont font = wb.createFont();
font.setBoldweight((short) 20);
HSSFCellStyle style = wb.createCellStyle();
//HSSFFont font1= wb.createFont();
//style.setFont(font1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD));
style.setFillBackgroundColor((short)10);
HSSFCell cell1 = row1.createCell((short) 0);
cell1.setCellStyle(style);
cell1.setCellValue("Cell Names");
row1.createCell((short) 1).setCellValue("Node Names");
row1.createCell((short) 2).setCellValue("Server Names");
//Creating row for sheet2.
HSSFRow row2 = sheet2.createRow((short) 0);
row2.createCell((short) 0).setCellValue("Name");
row2.createCell((short) 1).setCellValue("Member");
//Creating row for sheet3.
HSSFRow row3 = sheet3.createRow((short) 0);
row3.createCell((short) 0).setCellValue("Name");
row3.createCell((short) 1).setCellValue("Classpath");
// Creating row for sheet4.
HSSFRow row4 = sheet4.createRow((short) 0);
row4.createCell((short) 0).setCellValue("Name");
row4.createCell((short) 1).setCellValue("Name In Name Space");
row4.createCell((short) 2).setCellValue("String To Bind");
//Creating row for sheet5.
HSSFRow row5 = sheet5.createRow((short) 0);
row5.createCell((short) 0).setCellValue("Name");
row5.createCell((short) 1).setCellValue("Status");
//Creating row for sheet6.
HSSFRow row6 = sheet6.createRow((short) 0);
row6.createCell((short) 0).setCellValue("Module Name");
row6.createCell((short) 1).setCellValue("Server");
// Creating row for sheet7.
HSSFRow row7 = sheet7.createRow((short) 0);
HSSFRow row7_2 = sheet7.createRow((short) 1);
row7.createCell((short) 0).setCellValue("Product Directory");
row7.createCell((short) 1).setCellValue("Installed Product");
row7_2.createCell((short) 1).setCellValue(
"\"Name, Version, ID, Build Level, Build Date\"");
// Creating row for sheet8.
HSSFRow row8 = sheet8.createRow((short) 0);
row8.createCell((short) 0).setCellValue("Module");
row8.createCell((short) 1).setCellValue("Web Service");
row8.createCell((short) 2).setCellValue("Port");
row8.createCell((short) 3).setCellValue("Basic Authentication ID");
row8.createCell((short) 4)
.setCellValue("Basic Authentication Password");
row8.createCell((short) 5).setCellValue("Overridden endpointURL");
// Creating row for sheet9.
HSSFRow row9 = sheet9.createRow((short) 0);
row9.createCell((short) 0).setCellValue("Scope");
row9.createCell((short) 1).setCellValue("Name");
row9.createCell((short) 2).setCellValue("JNDI Name");
row9.createCell((short) 3).setCellValue("Provider");
row9.createCell((short) 4).setCellValue("AuthData Alias");
row9.createCell((short) 5).setCellValue("Database Name");
row9.createCell((short) 6).setCellValue("Server Name");
row9.createCell((short) 7).setCellValue("Port Number");
row9.createCell((short) 8).setCellValue("UserID");
row9.createCell((short) 9).setCellValue("Password");
// Creating row for sheet10.
HSSFRow row10 = sheet10.createRow((short) 0);
row10.createCell((short) 0).setCellValue("Scope");
row10.createCell((short) 1).setCellValue("Name");
row10.createCell((short) 2).setCellValue("JNDI Name");
row10.createCell((short) 3).setCellValue("Queue Manager");
row10.createCell((short) 4).setCellValue("Host");
row10.createCell((short) 5).setCellValue("Port");
row10.createCell((short) 6).setCellValue("Channel");
row10.createCell((short) 7).setCellValue("Client ID");
//Creating row for sheet10.
HSSFRow row11 = sheet11.createRow((short) 0);
row11.createCell((short) 0).setCellValue("Scope");
row11.createCell((short) 1).setCellValue("Name");
row11.createCell((short) 2).setCellValue("JNDI Name");
row11.createCell((short) 3).setCellValue("Base Queue Name");
return wb;
}
public static String readFile(String path) {
System.out.println("ExcelSheetGenerator.readFile(): Reading file from location =>"+ path);
File file = new File(path);
FileInputStream fis = null;
BufferedInputStream bis = null;
DataInputStream dis = null;
String response = "";
String fileSuffix = null;
try {
fis = new FileInputStream(file);
// Here BufferedInputStream is added for fast reading.
bis = new BufferedInputStream(fis);
dis = new DataInputStream(bis);
// dis.available() returns 0 if the file does not have more lines.
while (dis.available() != 0) {
response = response + dis.readLine();
}
/*
* int index1= response.indexOf("NUM_OF_APP"); int index2=
* response.indexOf("NUM_OF_APP_END");
*
* String str = response.substring(index1+10,index2);
* System.out.println("FileRead.main()str=>"+ str);
*
* StringTokenizer tok = new StringTokenizer(str);
*
*
* while(tok.hasMoreElements()) {
* System.out.println("FileRead.main()TOKENPRINT->"+
* tok.nextElement()); }
*
*/
return response;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// dispose all the resources after using them.
fis.close();
bis.close();
dis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}
public static void prepareDataForsheet1(String response) {
//System.out.println("prepareDataForsheets()==>" + response);
try {
//Getting Cell,Node and Server Details
int index1 = response.indexOf("CELL_NODE_SERVER_INFO");
int index2 = response.indexOf("CELL_NODE_SERVER_INFO_END");
String str = response.substring(index1
+ "CELL_NODE_SERVER_INFO".length(), index2);
//System.out.println("ExcelSheetGenerator.prepareDataForsheets()str=>" + str);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list1.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param response
*/
public static void prepareDataForsheet2(String response) {
try {
//Getting Cell,Node and Server Details
int index1 = response.indexOf("SERVER_CLUSTER");
int index2 = response.indexOf("SERVER_CLUSTER_END");
String str = response.substring(index1 + "SERVER_CLUSTER".length(),
index2);
//System.out.println("ExcelSheetGenerator.prepareDataForsheets2()str=>" + str);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list2.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param response
* Reading SharedLibrary Details in List Object.
*/
public static void prepareDataForsheet3(String response) {
try {
//Getting Cell,Node and Server Details
int index1 = response.indexOf("SHARED_LIB_DETAILS");
int index2 = response.indexOf("SHARED_LIB_DETAILS_END");
String str = response.substring(index1
+ "SHARED_LIB_DETAILS".length(), index2);
//System.out.println("ExcelSheetGenerator.prepareDataForsheets3()str=>" + str);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list3.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void prepareDataForsheet4(String response) {
try {
//Getting Cell,Node and Server Details
int index1 = response.indexOf("BINDING_DETAILS");
int index2 = response.indexOf("BINDING_DETAILS_END");
String str = response.substring(
index1 + "BINDING_DETAILS".length(), index2);
//System.out.println("ExcelSheetGenerator.prepareDataForsheets4()str=>" + str);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list4.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void prepareDataForsheet5(String response) {
try {
List installedAppList =new ArrayList();
List runningAppList =new ArrayList();
String appName= "";
String status="";
int index1 = response.indexOf("INSTALLED_APP");
int index2 = response.indexOf("INSTALLED_APP_END");
int index3 = response.indexOf("RUNNING_APP");
int index4 = response.indexOf("RUNNING_APP_END");
if(index1 == -1 || index2 == -1 || index3 == -1 || index4 == -1){
throw new Exception("There is problem in WAS Script pls check!!");
}
String installedAppstr = response.substring(index1 +"INSTALLED_APP".length()+1, index2-1);
String runningAppstr = response.substring(
index3 + "RUNNING_APP".length()+1, index4-1);
//System.out.println("ExcelSheetGenerator.prepareDataForsheet5()installedAppstr=>"+ installedAppstr);
//System.out.println("ExcelSheetGenerator.prepareDataForsheet5()runningAppstr=>"+ runningAppstr);
//Tokenzer
StringTokenizer tok = new StringTokenizer(installedAppstr, ",");
StringTokenizer tok2 = new StringTokenizer(runningAppstr, ",");
while (tok.hasMoreElements()) {
String tempstr=tok.nextToken();
installedAppList.add(tempstr.trim());
}
while (tok2.hasMoreElements()) {
String tempstr=tok2.nextToken();
runningAppList.add(tempstr.trim());
}
Iterator installListItr=installedAppList.iterator();
// Iterator runningListItr=runningAppList.iterator();
while(installListItr.hasNext())
{
appName= (String) installListItr.next();
if(runningAppList.contains(appName)){
status="Running";
}
else{
status="Stopped";
}
list5.add(appName);
list5.add(status);
//System.out.println("ExcelSheetGenerator.prepareDataForsheet5()======>"+ appName +"IS"+ status);
}
//System.out.println("ExcelSheetGenerator.prepareDataForsheet5()LIST5=>"+ list5.size());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void prepareDataForsheet7(String response) {
try {
//getting Prod DIR
int index1 = response.indexOf("Product Directory");
int index2 = response.indexOf("Version Directory");
String prodDIR = response.substring(index1 + 18, index2);
//System.out.println("ExcelSheetGenerator.readFile()PordDIR=>"+prodDIR.trim());
String installedProdStr = response.substring(response
.indexOf("Installed Product"));
//System.out.println("ExcelSheetGenerator.readFile()SubSTR=> "+
// installedProdStr);
String str2 = response.substring(response
.indexOf("Installed Product"));
//getting name info
int indexOfFirstName = str2.indexOf("Name");
int indexOfFirstVer = str2.indexOf("Version");
String firstName = str2.substring(indexOfFirstName + 4,
indexOfFirstVer);
//System.out.println("ExcelSheetGenerator.readFile()FirstName=>"+firstName.trim());
int indexOfSecondName = str2.indexOf("Name", indexOfFirstName + 2);
int indexOfSecondVer = str2.indexOf("Version", indexOfFirstVer + 2);
String secondName = str2.substring(indexOfSecondName + 4,
indexOfSecondVer);
//System.out.println("ExcelSheetGenerator.readFile()secondName=>"+
// secondName.trim());
//getting version info
int indexOfFirstID = str2.indexOf("ID");
int indexofSecondID = str2.indexOf("ID", indexOfFirstID + 2);
String firstVerStr = str2.substring(indexOfFirstVer + 7,
indexOfFirstID);
String secondVerStr = str2.substring(indexOfSecondVer + 7,
indexofSecondID);
/*
* System.out.println("ExcelSheetGenerator.readFile()Versions
* firstVerStr=>"+firstVerStr.trim());
* System.out.println("ExcelSheetGenerator.readFile()Versions
* secondVerStr=>"+secondVerStr.trim());
*/
//Getting ID info.
int indexOfFirstBuildlvl = str2.indexOf("Build Level");
int indexOfSecondBuildlvl = str2.indexOf("Build Level",
indexOfFirstBuildlvl + 2);
String firstIDStr = str2.substring(indexOfFirstID + 2,
indexOfFirstBuildlvl);
String secondIDStr = str2.substring(indexofSecondID + 2,
indexOfSecondBuildlvl);
/*
* System.out.println("ExcelSheetGenerator.readFile()Versions
* firstIDStr=>"+firstIDStr.trim());
* System.out.println("ExcelSheetGenerator.readFile()Versions
* secondIDStr=>"+secondIDStr.trim());
*/
//Getting Build Level info.
int indexOfFirstBuilddate = str2.indexOf("Build Date");
int indexOfSecondBuilddate = str2.indexOf("Build Date",
indexOfFirstBuilddate + 2);
String firstBuildlvlStr = str2.substring(indexOfFirstBuildlvl + 11,
indexOfFirstBuilddate);
String secondBuildlvlStr = str2.substring(
indexOfSecondBuildlvl + 11, indexOfSecondBuilddate);
/*
* System.out.println("ExcelSheetGenerator.readFile()Versions
* firstBuildlvlStr=>"+firstBuildlvlStr.trim());
* System.out.println("ExcelSheetGenerator.readFile()Versions
* secondBuildlvlStr=>"+secondBuildlvlStr.trim());
*/
//Getting Build Date.
int indexOfInstalledPord = str2.indexOf("Installed Product", str2
.indexOf("Installed Product") + 2);
int indexOfDash = str2.indexOf("----", indexOfSecondBuilddate + 2);
String firstBuilddateStr = str2.substring(
indexOfFirstBuilddate + 10, indexOfInstalledPord);
String secondBuilddateStr = str2.substring(
indexOfSecondBuilddate + 10, indexOfDash);
/*
* System.out.println("ExcelSheetGenerator.readFile()Versions
* firstBuilddateStr=>"+firstBuilddateStr.trim());
* System.out.println("ExcelSheetGenerator.readFile()Versions
* secondBuilddateStr=>"+secondBuilddateStr.trim()
*/
StringBuffer sb = new StringBuffer();
sb.append("\"");
sb.append(firstName.trim());
sb.append(",");
sb.append(firstVerStr.trim());
sb.append(",");
sb.append(firstIDStr.trim());
sb.append(",");
sb.append(firstBuildlvlStr.trim());
sb.append(",");
sb.append(firstBuilddateStr.trim());
//sb.append(",");
sb.append("\"");
String finalStr1 = sb.toString();
//System.out.println("ExcelSheetGenerator.readFile()FINALSTR1 =>" + finalStr1);
StringBuffer sb2 = new StringBuffer();
sb2.append("\"");
sb2.append(secondName.trim());
sb2.append(",");
sb2.append(secondVerStr.trim());
sb2.append(",");
sb2.append(secondIDStr.trim());
sb2.append(",");
sb2.append(secondBuildlvlStr.trim());
sb2.append(",");
sb2.append(secondBuilddateStr.trim());
//sb2.append(",");
sb2.append("\"");
String finalStr2 = sb2.toString();
//System.out.println("ExcelSheetGenerator.readFile()FINALSTR2 =>" + finalStr2);
list7.add(prodDIR);
list7.add(finalStr1);
list7.add(finalStr2);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void prepareDataForsheet6(String response) {
int index1 = response.indexOf("MAPMODTOSERVER");
int index2 = response.indexOf("MAPMODTOSERVER_END");
int index11 = 0;
int index12 = 0;
String subStr = response.substring(index1 + 15, index2);
List tempList = new ArrayList();
if (subStr != null) {
for (int i = 0; i < 20000; i++) {
index11 = subStr.indexOf("KEY_START", (index11 + i));
index12 = subStr.indexOf("KEY_END", (index12 + i));
if (index11 > 0 && index12 > 0) {
String tempStr = subStr.substring(index11 + 9, index12);
tempList.add(tempStr);
} else {
break;
}
}
} // End of if(subStr != null)
Iterator tempIterator = tempList.iterator();
String servName = "";
String moduleName = "";
int index13 = 0;
int index14 = 0;
int index15 = 0;
for (int j = 0; j < tempList.size(); j++) {
String temp = (String) tempList.get(j);
//System.out.println("ExcelSheet1.main()OUTERLOOP"+j);
if (temp != null) {
for (int i = 0; i < 20000; i++) {
//System.out.println("ExcelSheet1.main()Loop"+ i);
index13 = temp.indexOf("Module:", (index13 + i));
index14 = temp.indexOf("URI:", (index14 + i));
index15 = temp.indexOf("Server:", (index15 + i));
if (index13 > 0 && index14 > 0 && index15 > 0) {
moduleName = temp.substring(index13 + 7, index14);
int temp1 = temp.indexOf("Module:", (index13 + 5));
if (temp1 > 0) {
servName = temp.substring(index15 + 7, temp1);
} else if (temp1 < 0) {
servName = temp.substring(index15 + 7);
}
} else {
break;
}
/*System.out.println("moduleName=>" + moduleName);
System.out.println("servName=>" + servName);*/
list6.add(moduleName);
list6.add(servName);
}
}
}//End of outer For loop.
}
// Client Port Info
public static void prepareDataForsheet8(String response) {
try {
int index1 = response.indexOf("CLIENT_PORT");
int index2 = response.indexOf("CLIENT_PORT_END");
response = response.substring(index1 + 11, index2);
int index3 = 0;
int index4 = 0;
int index5 = 0;
int index6 = 0;
int index7 = 0;
int index8 = 0;
int index9 = 0;
int index10 = 0;
int index11 = 0;
int index12 = 0;
String modName = "";
String webService = "";
String portNumber = "";
String basicAuthId = "";
String basicAuthPass = "";
String endPointURL = "";
for (int i = 0; i < 100; i++) {
index3 = response.indexOf("module:", (index3 + i));
index4 = response.indexOf("EJB:", (index4 + i));
index5 = response.indexOf("Web service:", (index5 + i));
index6 = response.indexOf("port:", (index6 + i));
index7 = response.indexOf("request timeout:", (index7 + i));
index8 = response.indexOf("basic authentication ID:",
(index8 + i));
index9 = response.indexOf("basic authentication password:",
(index9 + i));
index10 = response.indexOf("SSL configuration alias:",
(index10 + i));
index11 = response.indexOf("overridden endpoint URL:",
(index11 + i));
index12 = response.indexOf("overridden binding namespace:",
(index12 + i));
if (index3 != -1 && index4 != -1 && index5 != -1
&& index6 != -1 && index7 != -1 && index8 != -1
&& index9 != -1 && index10 != -1 && index11 != -1
&& index12 != -1) {
modName = response.substring(index3 + 8, index4);
webService = response.substring(index5 + 12, index6);
portNumber = response.substring(index6 + 6, index7);
basicAuthId = response.substring(index8 + 26, index9);
basicAuthPass = response.substring(index9 + 31, index10);
endPointURL = response.substring(index11 + 25, index12);
list8.add(modName.trim());
list8.add(webService.trim());
list8.add(portNumber.trim());
list8.add(basicAuthId.trim());
list8.add(basicAuthPass.trim());
list8.add(endPointURL.trim());
/*System.out
.println("-------------------------------------------------------------------------");
System.out.println("modName=> " + modName.trim());
System.out.println("webService=> " + webService);
System.out.println("portNumber=> " + portNumber);
System.out.println("basicAuthId=> " + basicAuthId);
System.out.println("basicAuthPass=> " + basicAuthPass);
System.out.println("endPointURL=> " + endPointURL);*/
} else if (index3 == -1 || index4 == -1 || index5 == -1
|| index6 == -1 || index7 == -1 || index8 == -1
|| index9 == -1 || index10 == -1 || index11 == -1
|| index12 == -1) {
//System.out.println("ExcelSheetGenerator.readFile()index3 & index4
// =>"+ index3+"AND"+index4+ "Hence Break THE LOOP...");
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
//DataSource
public static void prepareDataForsheet9(String response) {
try {
int index1 = response.indexOf("DATASOURCE_PROP");
int index2 = response.indexOf("DATASOURCE_PROP_END");
String str = response.substring(index1 + 16, index2-1);
//System.out.println("ExcelSheetGenerator.prepareDataForsheet9()str=>" + str);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list9.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void prepareDataForsheet10(String response) {
try {
//Getting Cell,Node and Server Details
int index1 = response.indexOf("MQ_CONN_FACT_DETAILS");
int index2 = response.indexOf("MQ_CONN_FACT_DETAILS_END");
String str = response.substring(index1
+ "MQ_CONN_FACT_DETAILS".length(), index2);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list10.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void prepareDataForsheet11(String response) {
try {
//Getting Cell,Node and Server Details
int index1 = response.indexOf("MQ_DESTINATION_DETAILS");
int index2 = response.indexOf("MQ_DESTINATION_DETAILS_END");
String str = response.substring(index1
+ "MQ_DESTINATION_DETAILS".length(), index2);
//Tokenzer
StringTokenizer tok = new StringTokenizer(str, ",");
while (tok.hasMoreElements()) {
list11.add(tok.nextElement());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
**********************************************************************************************************END OF Java File.
3. Copy following .jar file (They are all free and can be found by googling)
- poi-3.0-rc4-20070503.jar
- poi-contrib-3.0-rc4-20070503.jar
- poi-scratchpad-3.0-rc4-20070503.jar
4. Now set the required java classpath to execute this java file and run it.Make sure that .java is reading the JACL output file to generate the Excel report so it should be
in same path.
5. All done!! Now you can find all the MQ,JDBC,JMS, EJB/STRING binding details configured in your server in single report.
Have fun !!..
No comments:
Post a Comment