Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.controller.core.ReportManager Class Reference

Collaboration diagram for org.objectweb.cjdbc.controller.core.ReportManager:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ReportManager (Controller controller)
void startReport ()
 ReportManager (Controller controller, boolean showLogsOnly)
 ReportManager (Controller controller, Exception e)
void writeControllerInfo ()
void writeControllerSettings ()
void writeJavaProperties ()
void writeLogs ()
void writeException (Exception e)
String generate ()
String generateJustLogs ()
final void setSettings (Hashtable settings)
boolean isEnableFileLogging ()
boolean isGenerateOnFatal ()
boolean isGenerateOnShutdown ()
boolean isHideSensitiveData ()
boolean isReportEnabled ()
String getReportLocation ()
void setEnableFileLogging (boolean enableFileLogging)
void setGenerateOnFatal (boolean generateOnFatal)
void setGenerateOnShutdown (boolean generateOnShutdown)
void setHideSensitiveData (boolean hideSensitiveData)
void setReportEnabled (boolean reportEnabled)
void setReportLocation (String reportLocation)

Package Functions

void listLoggers ()

Package Attributes

boolean reportEnabled = false
boolean hideSensitiveData = true
boolean generateOnShutdown = true
boolean generateOnFatal = true
boolean enableFileLogging = true
boolean showLogsOnly = false
String reportLocation = ControllerConstants.REPORT_LOCATION

Static Package Attributes

Trace logger

Detailed Description

Class to create report from Controller

Author:
Emmanuel Cecchet

Nicolas Modrzyk

Mathieu Peltier

Definition at line 52 of file ReportManager.java.


Constructor & Destructor Documentation

org.objectweb.cjdbc.controller.core.ReportManager.ReportManager Controller  controller  ) 
 

Call above and write controller xml information and information

Parameters:
controller to report

Definition at line 78 of file ReportManager.java.

00079   {
00080     this.controller = controller;
00081     buffer = new StringBuffer();
00082     //listLoggers();
00083   }

org.objectweb.cjdbc.controller.core.ReportManager.ReportManager Controller  controller,
boolean  showLogsOnly
 

Creates a new ReportManager.java object Report only logs

Parameters:
controller the controller to report logs from
showLogsOnly show logs

Definition at line 104 of file ReportManager.java.

00105   {
00106     this(controller);
00107     this.showLogsOnly = showLogsOnly;
00108   }

org.objectweb.cjdbc.controller.core.ReportManager.ReportManager Controller  controller,
Exception  e
 

Call above and write about the exception

Parameters:
controller to report
e exception

Definition at line 116 of file ReportManager.java.

00117   {
00118     this(controller);
00119     writeException(e);
00120   }


Member Function Documentation

String org.objectweb.cjdbc.controller.core.ReportManager.generate  ) 
 

Flush and close

Returns:
report content

Definition at line 196 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.generateReport(), and org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.generateReportIfNeeded().

00197   {
00198     // Here we get all the logs before writing report
00199     writeLogs();
00200     try
00201     {
00202       File reportFile = new File(reportLocation + File.separator
00203           + ControllerConstants.REPORT_FILE);
00204       reportFile.getParentFile().mkdirs();
00205       fos = new FileOutputStream(reportFile);
00206       fos.write(buffer.toString().getBytes());
00207       fos.close();
00208       String returned = buffer.toString();
00209       // Reset buffer
00210       buffer.delete(0, buffer.length());
00211       return returned;
00212     }
00213     catch (Exception e)
00214     {
00215       e.printStackTrace();
00216       return "";
00217     }
00218   }

String org.objectweb.cjdbc.controller.core.ReportManager.generateJustLogs  ) 
 

Get a trace of the logs only

Returns:
String content of the log4j output

Definition at line 225 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.generateLogReport().

00226   {
00227     String s = this.getClass().getResource(ControllerConstants.LOG4J_RESOURCE)
00228         .getFile();
00229     Logger log = Logger.getRootLogger();
00230     try
00231     {
00232       FileAppender appender = (FileAppender) log.getAppender("Filetrace");
00233       s = appender.getFile();
00234       writeFile(s);
00235       return buffer.toString();
00236     }
00237     catch (Exception e)
00238     {
00239       logger
00240           .warn("Filetrace appender is not of type FileAppender and cannot be dumped ("
00241               + e + ")");
00242       return "";
00243     }
00244   }

String org.objectweb.cjdbc.controller.core.ReportManager.getReportLocation  ) 
 

Returns:
Returns the reportLocation.

Definition at line 445 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.endOfController(), org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.generateReportIfNeeded(), and org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00446   {
00447     return reportLocation;
00448   }

boolean org.objectweb.cjdbc.controller.core.ReportManager.isEnableFileLogging  ) 
 

Returns:
Returns the enableFileLogging.

Definition at line 405 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00406   {
00407     return enableFileLogging;
00408   }

boolean org.objectweb.cjdbc.controller.core.ReportManager.isGenerateOnFatal  ) 
 

Returns:
Returns the generateOnFatal.

Definition at line 413 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.endOfController(), and org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00414   {
00415     return reportEnabled && generateOnFatal;
00416   }

boolean org.objectweb.cjdbc.controller.core.ReportManager.isGenerateOnShutdown  ) 
 

Returns:
Returns the generateOnShutdown.

Definition at line 421 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.generateReportIfNeeded(), and org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00422   {
00423     return reportEnabled && generateOnShutdown;
00424   }

boolean org.objectweb.cjdbc.controller.core.ReportManager.isHideSensitiveData  ) 
 

Returns:
Returns the hideSensitiveData.

Definition at line 429 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00430   {
00431     return hideSensitiveData;
00432   }

boolean org.objectweb.cjdbc.controller.core.ReportManager.isReportEnabled  ) 
 

Returns:
Returns the reportEnabled.

Definition at line 437 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.getXmlController().

00438   {
00439     return reportEnabled;
00440   }

void org.objectweb.cjdbc.controller.core.ReportManager.setEnableFileLogging boolean  enableFileLogging  ) 
 

Sets the enableFileLogging value.

Parameters:
enableFileLogging The enableFileLogging to set.

Definition at line 455 of file ReportManager.java.

00456   {
00457     this.enableFileLogging = enableFileLogging;
00458   }

void org.objectweb.cjdbc.controller.core.ReportManager.setGenerateOnFatal boolean  generateOnFatal  ) 
 

Sets the generateOnFatal value.

Parameters:
generateOnFatal The generateOnFatal to set.

Definition at line 465 of file ReportManager.java.

00466   {
00467     this.generateOnFatal = generateOnFatal;
00468   }

void org.objectweb.cjdbc.controller.core.ReportManager.setGenerateOnShutdown boolean  generateOnShutdown  ) 
 

Sets the generateOnShutdown value.

Parameters:
generateOnShutdown The generateOnShutdown to set.

Definition at line 475 of file ReportManager.java.

00476   {
00477     this.generateOnShutdown = generateOnShutdown;
00478   }

void org.objectweb.cjdbc.controller.core.ReportManager.setHideSensitiveData boolean  hideSensitiveData  ) 
 

Sets the hideSensitiveData value.

Parameters:
hideSensitiveData The hideSensitiveData to set.

Definition at line 485 of file ReportManager.java.

00486   {
00487     this.hideSensitiveData = hideSensitiveData;
00488   }

void org.objectweb.cjdbc.controller.core.ReportManager.setReportEnabled boolean  reportEnabled  ) 
 

Sets the reportEnabled value.

Parameters:
reportEnabled The reportEnabled to set.

Definition at line 495 of file ReportManager.java.

00496   {
00497     this.reportEnabled = reportEnabled;
00498   }

void org.objectweb.cjdbc.controller.core.ReportManager.setReportLocation String  reportLocation  ) 
 

Sets the reportLocation value.

Parameters:
reportLocation The reportLocation to set.

Definition at line 505 of file ReportManager.java.

00506   {
00507     this.reportLocation = reportLocation;
00508   }

final void org.objectweb.cjdbc.controller.core.ReportManager.setSettings Hashtable  settings  ) 
 

Parameters:
settings hashtable of settings

Definition at line 324 of file ReportManager.java.

00325   {
00326     //listLoggers();
00327     if (settings == null)
00328     {
00329       reportEnabled = false;
00330     }
00331     else if (settings.containsKey(ControllerXmlTags.ATT_REPORT_ENABLED))
00332     {
00333       reportEnabled = new Boolean((String) settings
00334           .get(ControllerXmlTags.ATT_REPORT_ENABLED)).booleanValue();
00335     }
00336     if (!reportEnabled)
00337     {
00338       hideSensitiveData = false;
00339       generateOnShutdown = false;
00340       generateOnFatal = false;
00341       enableFileLogging = false;
00342       //removeFileTraceAppender();
00343       return;
00344     }
00345     else
00346     {
00347       if ("true".equals(settings
00348           .get(ControllerXmlTags.ATT_REPORT_DELETE_ON_SHUTDOWN)))
00349       {
00350         setLogsDeleteOnExit();
00351       }
00352       if (settings
00353           .containsKey(ControllerXmlTags.ATT_REPORT_ENABLE_FILE_LOGGING))
00354       {
00355         enableFileLogging = new Boolean((String) settings
00356             .get(ControllerXmlTags.ATT_REPORT_ENABLE_FILE_LOGGING))
00357             .booleanValue();
00358         if (!enableFileLogging)
00359         {
00360           //removeFileTraceAppender();
00361         }
00362       }
00363       if (settings.containsKey(ControllerXmlTags.ATT_REPORT_GENERATE_ON_FATAL))
00364       {
00365         generateOnFatal = new Boolean((String) settings
00366             .get(ControllerXmlTags.ATT_REPORT_GENERATE_ON_FATAL))
00367             .booleanValue();
00368       }
00369       if (settings
00370           .containsKey(ControllerXmlTags.ATT_REPORT_GENERATE_ON_SHUTDOWN))
00371       {
00372         generateOnShutdown = new Boolean((String) settings
00373             .get(ControllerXmlTags.ATT_REPORT_GENERATE_ON_SHUTDOWN))
00374             .booleanValue();
00375       }
00376       if (settings
00377           .containsKey(ControllerXmlTags.ATT_REPORT_HIDE_SENSITIVE_DATA))
00378       {
00379         hideSensitiveData = new Boolean((String) settings
00380             .get(ControllerXmlTags.ATT_REPORT_HIDE_SENSITIVE_DATA))
00381             .booleanValue();
00382       }
00383       if (settings.containsKey(ControllerXmlTags.ATT_REPORT_REPORT_LOCATION))
00384       {
00385         reportLocation = (String) settings
00386             .get(ControllerXmlTags.ATT_REPORT_REPORT_LOCATION);
00387       }
00388     }
00389   }

void org.objectweb.cjdbc.controller.core.ReportManager.startReport  ) 
 

Starts generating the report. Effectively write the java properties, controller settings, controller info but do not write the logs yet.

Definition at line 89 of file ReportManager.java.

Referenced by org.objectweb.cjdbc.controller.core.Controller.generateReport(), and org.objectweb.cjdbc.controller.core.shutdown.ControllerShutdownThread.generateReportIfNeeded().

00090   {
00091     writeTitle("CJDBC (version:" + Constants.VERSION + ") REPORT generated on "
00092         + new Date().toString());
00093     writeJavaProperties();
00094     writeControllerSettings();
00095     writeControllerInfo();
00096   }

void org.objectweb.cjdbc.controller.core.ReportManager.writeControllerInfo  ) 
 

Write Controller info as return by getInformation()

Definition at line 125 of file ReportManager.java.

References org.objectweb.cjdbc.controller.core.Controller.getXml(), and org.objectweb.cjdbc.controller.core.Controller.getXmlVirtualDatabases().

00126   {
00127     try
00128     {
00129       writeHeader("CONTROLLER INFO XML");
00130       write(controller.getXml());
00131       writeHeader("DATABASE INFO");
00132       write(XmlTools
00133           .applyXsl(controller.getXmlVirtualDatabases(), "c-jdbc.xsl"));
00134       writeHeader("DATABASE INFO XML");
00135       write(XmlTools.prettyXml(controller.getXmlVirtualDatabases()));
00136     }
00137     catch (Exception e)
00138     {
00139       e.printStackTrace();
00140     }
00141   }

void org.objectweb.cjdbc.controller.core.ReportManager.writeControllerSettings  ) 
 

Write all parameters from ControllerFactory

Definition at line 144 of file ReportManager.java.

References org.objectweb.cjdbc.controller.core.Controller.getConfiguration().

00145   {
00146     writeHeader("CONTROLLER SETTINGS");
00147     write(controller.getConfiguration());
00148   }

void org.objectweb.cjdbc.controller.core.ReportManager.writeException Exception  e  ) 
 

Write Details of the exception

Parameters:
e exception to write

Definition at line 179 of file ReportManager.java.

00180   {
00181     writeHeader("EXCEPTION DESCRIPTION");
00182     write(e.getClass().toString());
00183     write(e.getMessage());
00184     write(e.toString());
00185     StringWriter sw = new StringWriter();
00186     PrintWriter pw = new PrintWriter(sw);
00187     e.printStackTrace(pw);
00188     write(sw.toString());
00189   }

void org.objectweb.cjdbc.controller.core.ReportManager.writeJavaProperties  ) 
 

Write All Java Properties

Definition at line 151 of file ReportManager.java.

00152   {
00153     writeHeader("JAVA SETTINGS");
00154     write(System.getProperties());
00155   }

void org.objectweb.cjdbc.controller.core.ReportManager.writeLogs  ) 
 

Write Logs

Definition at line 158 of file ReportManager.java.

00159   {
00160     writeHeader("LOG CONFIGURATION");
00161     String s = this.getClass().getResource(ControllerConstants.LOG4J_RESOURCE)
00162         .getFile();
00163     writeFile(s);
00164     writeHeader("LOGS");
00165     if (isEnableFileLogging())
00166     {
00167       Logger log = Logger.getRootLogger();
00168       FileAppender appender = (FileAppender) log.getAppender("Filetrace");
00169       s = appender.getFile();
00170       writeFile(s);
00171     }
00172   }


Member Data Documentation

Trace org.objectweb.cjdbc.controller.core.ReportManager.logger [static, package]
 

Initial value:

 Trace
                                                  .getLogger(ReportManager.class
                                                      .getName())
Logger instance.

Definition at line 56 of file ReportManager.java.

boolean org.objectweb.cjdbc.controller.core.ReportManager.reportEnabled = false [package]
 

Settings

Definition at line 61 of file ReportManager.java.


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:03:45 2005 for C-JDBC by  doxygen 1.3.9.1