|
From: <max...@us...> - 2009-09-27 18:14:46
|
Revision: 3879
http://uni-d.svn.sourceforge.net/uni-d/?rev=3879&view=rev
Author: max_brod
Date: 2009-09-27 18:14:31 +0000 (Sun, 27 Sep 2009)
Log Message:
-----------
[UNI-473]
Change the print-tool to not stop at first report with an error and display the creation timestamp.
Modified Paths:
--------------
trunk/Uni-d/tool/src/main/java/be/unid/tool/print/PrintWorker.java
Modified: trunk/Uni-d/tool/src/main/java/be/unid/tool/print/PrintWorker.java
===================================================================
--- trunk/Uni-d/tool/src/main/java/be/unid/tool/print/PrintWorker.java 2009-09-26 08:19:14 UTC (rev 3878)
+++ trunk/Uni-d/tool/src/main/java/be/unid/tool/print/PrintWorker.java 2009-09-27 18:14:31 UTC (rev 3879)
@@ -119,60 +119,11 @@
if ( log.isDebugEnabled() ) log.debug( "start loop to print reports" );
for ( ReportPrintInfo info : provider.getReports() )
{
- if ( log.isDebugEnabled() )
- {
- log.debug( "found report for printing " + info.getReportName() + " : " + info );
- }
- HttpClient httpConn = new HttpClient();
- // set timeout to 5 min
- httpConn.setConnectionTimeout( 5 * 60000 );
- httpConn.setTimeout( 5 * 60000 );
- PostMethod post = new PostMethod( reportURL.toString() );
- post.setParameter( "file", info.getReportName() );
- post.setParameter( "type", REPORT_TYPE_PRINT );
- post.setParameter( "username", username );
- post.setParameter( "password", password );
- post.setParameter( "language", info.getReportLanguage() );
-
- Hashtable<String, String> parameters = info.getParameters();
- Enumeration<String> keys = parameters.keys();
- while ( keys.hasMoreElements() )
+ if ( !printOneReport( info, classes.get( i ) ) )
{
- String param = keys.nextElement();
- String value = parameters.get( param );
- post.setParameter( param, value );
+ continue;
}
-
- if ( log.isDebugEnabled() ) log.debug( "fill report " + info.getReportName() + " : " + info );
- httpConn.executeMethod( post );
- InputStream in = post.getResponseBodyAsStream();
-
- JasperPrint print = (JasperPrint) ( new ObjectInputStream( in ) ).readObject();
-
- if ( print.getPages().size() == 0 )
- {
- if ( log.isDebugEnabled() )
- {
- log.debug( "report has no pages " + info.getReportName() + " : " + info );
- }
- listener.notifyInfo( ToolListener.STATUS_ENDED, classes.get( i ),
- i18n.txt( "nopages", workerId ) );
- listener.notifyPersistentMessage(
- i18n.txt( "finished", workerId ) + " " + classes.get( i ) + " " +
- i18n.txt( "nopages", workerId ) );
- return;
- }
- listener.notifyInfo( ToolListener.STATUS_ENDED, classes.get( i ), i18n.txt( "ok", workerId ) );
- listener
- .notifyPersistentMessage( i18n.txt( "finished", workerId ) + " " + classes.get( i ) + " " +
- i18n.txt( "ok", workerId ) );
-
- if ( log.isDebugEnabled() ) log.debug( "print report " + info.getReportName() + " : " + info );
- PrintService ps = getPrintService( info.getPrinterName() );
- new Printer( print, ps != null ? ps : printService )
- .print( forcedPortraitReports, forcedLandscapeReports );
-
// add report infos in order to perform the postPrint actions(update/delete)
printedReports.add( info );
if ( log.isDebugEnabled() )
@@ -187,18 +138,6 @@
listener.notifyInfo( ToolListener.STATUS_ENDED, classes.get( i ), cnfe.toString() );
throw new ToolException( "problems using the class " + classes.get( i ), cnfe );
}
- catch ( JRException jre )
- {
- if ( log.isDebugEnabled() ) log.debug( jre, jre );
- listener.notifyInfo( ToolListener.STATUS_ENDED, classes.get( i ), jre.toString() );
- throw new ToolException( "problems printing ", jre );
- }
- catch ( IOException ioe )
- {
- if ( log.isDebugEnabled() ) log.debug( ioe, ioe );
- listener.notifyInfo( ToolListener.STATUS_ENDED, classes.get( i ), ioe.toString() );
- throw new ToolException( "problems reading report", ioe );
- }
catch ( Exception e )
{
if ( log.isDebugEnabled() ) log.debug( e, e );
@@ -218,6 +157,74 @@
setWorking( false );
}
+ private boolean printOneReport( ReportPrintInfo info, String className )
+ {
+ try
+ {
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "found report for printing " + info.getReportName() + " : " + info );
+ }
+ HttpClient httpConn = new HttpClient();
+ // set timeout to 5 min
+ httpConn.setConnectionTimeout( 5 * 60000 );
+ httpConn.setTimeout( 5 * 60000 );
+ PostMethod post = new PostMethod( reportURL.toString() );
+ post.setParameter( "file", info.getReportName() );
+
+ post.setParameter( "type", REPORT_TYPE_PRINT );
+ post.setParameter( "username", username );
+ post.setParameter( "password", password );
+ post.setParameter( "language", info.getReportLanguage() );
+
+ Hashtable<String, String> parameters = info.getParameters();
+ Enumeration<String> keys = parameters.keys();
+ while ( keys.hasMoreElements() )
+ {
+ String param = keys.nextElement();
+ String value = parameters.get( param );
+ post.setParameter( param, value );
+ }
+
+ if ( log.isDebugEnabled() ) log.debug( "fill report " + info.getReportName() + " : " + info );
+ httpConn.executeMethod( post );
+ InputStream in = post.getResponseBodyAsStream();
+
+ JasperPrint print = (JasperPrint) ( new ObjectInputStream( in ) ).readObject();
+
+ if ( print.getPages().size() == 0 )
+ {
+ if ( log.isDebugEnabled() )
+ {
+ log.debug(
+ "Report " + info.getReportName() + " has no pages. Report creation date: " + info.getTime() );
+ }
+ listener.notifyInfo( ToolListener.STATUS_ENDED, className,
+ i18n.txt( "nopages", workerId ) );
+ listener.notifyPersistentMessage(
+ i18n.txt( "finished", workerId ) + " " + className + " " +
+ i18n.txt( "nopages", workerId ) );
+ return false;
+ }
+ listener.notifyInfo( ToolListener.STATUS_ENDED, className, i18n.txt( "ok", workerId ) );
+ listener
+ .notifyPersistentMessage( i18n.txt( "finished", workerId ) + " " + className + " " +
+ i18n.txt( "ok", workerId ) );
+
+ if ( log.isDebugEnabled() ) log.debug( "print report " + info.getReportName() + " : " + info );
+ PrintService ps = getPrintService( info.getPrinterName() );
+ new Printer( print, ps != null ? ps : printService )
+ .print( forcedPortraitReports, forcedLandscapeReports );
+ return true;
+
+ }
+ catch ( Exception e )
+ {
+ log.error( "Problem printing report " + info.getReportName() + " from " + info.getTime(), e );
+ }
+ return false;
+ }
+
private PrintService getPrintService( String printer )
{
if ( log.isDebugEnabled() ) log.debug( "looking for printer: " + printer );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|