jasper-command-line 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -23,64 +23,40 @@
23
23
 
24
24
 
25
25
  module JasperCommandLine
26
- classpath = '.'
27
- Dir["#{File.dirname(__FILE__)}/java/*.jar"].each do |jar|
28
- classpath << File::PATH_SEPARATOR + File.expand_path(jar)
29
- end
30
-
31
- Dir["lib/*.jar"].each do |jar|
32
- classpath << File::PATH_SEPARATOR + File.expand_path(jar)
33
- end
34
-
35
- Rjb::load( classpath, ['-Djava.awt.headless=true','-Xms128M', '-Xmx256M'] )
36
-
37
- JRException = Rjb::import 'net.sf.jasperreports.engine.JRException'
38
- JasperCompileManager = Rjb::import 'net.sf.jasperreports.engine.JasperCompileManager'
39
- JasperExportManager = Rjb::import 'net.sf.jasperreports.engine.JasperExportManager'
40
- JasperFillManager = Rjb::import 'net.sf.jasperreports.engine.JasperFillManager'
41
- JasperPrint = Rjb::import 'net.sf.jasperreports.engine.JasperPrint'
42
- JRXmlUtils = Rjb::import 'net.sf.jasperreports.engine.util.JRXmlUtils'
43
- # This is here to avoid the "already initialized constant QUERY_EXECUTER_FACTORY_PREFIX" warnings.
44
- JRXPathQueryExecuterFactory = silence_warnings{Rjb::import 'net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory'}
45
- InputSource = Rjb::import 'org.xml.sax.InputSource'
46
- StringReader = Rjb::import 'java.io.StringReader'
47
- HashMap = Rjb::import 'java.util.HashMap'
48
- ByteArrayInputStream = Rjb::import 'java.io.ByteArrayInputStream'
49
- JavaString = Rjb::import 'java.lang.String'
50
- JFreeChart = Rjb::import 'org.jfree.chart.JFreeChart'
51
-
52
26
  module Jasper
53
27
  def self.render_pdf(jasper_file, datasource, parameters, options)
28
+ initialize_engine
29
+
54
30
  options ||= {}
55
31
  parameters ||= {}
56
32
  jrxml_file = jasper_file.sub(/\.jasper$/, ".jrxml")
57
33
 
58
34
  sign_options = options.delete(:signature)
59
35
 
60
- begin
36
+ # begin
61
37
  # Convert the ruby parameters' hash to a java HashMap.
62
38
  # Pay attention that, for now, all parameters are converted to string!
63
- jasper_params = HashMap.new
39
+ jasper_params = @hashMap.new
64
40
  parameters.each do |k,v|
65
- jasper_params.put(JavaString.new(k.to_s), JavaString.new(v.to_s))
41
+ jasper_params.put(@javaString.new(k.to_s), @javaString.new(v.to_s))
66
42
  end
67
43
 
68
44
  # Compile it, if needed
69
45
  if !File.exist?(jasper_file) || (File.exist?(jrxml_file) && File.mtime(jrxml_file) > File.mtime(jasper_file))
70
- JasperCompileManager.compileReportToFile(jrxml_file, jasper_file)
46
+ @jasperCompileManager.compileReportToFile(jrxml_file, jasper_file)
71
47
  end
72
48
 
73
49
  datasource = datasource.to_xml(options).to_s unless datasource.is_a?(String)
74
50
 
75
51
  # Fill the report
76
- input_source = InputSource.new
77
- input_source.setCharacterStream(StringReader.new(datasource))
52
+ input_source = @inputSource.new
53
+ input_source.setCharacterStream(@stringReader.new(datasource))
78
54
  data_document = silence_warnings do
79
55
  # This is here to avoid the "already initialized constant DOCUMENT_POSITION_*" warnings.
80
- JRXmlUtils._invoke('parse', 'Lorg.xml.sax.InputSource;', input_source)
56
+ @jRXmlUtils._invoke('parse', 'Lorg.xml.sax.InputSource;', input_source)
81
57
  end
82
58
 
83
- jasper_params.put(JRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, data_document)
59
+ jasper_params.put(@jRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT, data_document)
84
60
 
85
61
  temp_file = Tempfile.new(['pdf-', '.pdf'])
86
62
  file = temp_file.path
@@ -99,10 +75,10 @@ module JasperCommandLine
99
75
  copy_file = copy_temp_file.path
100
76
  copy_temp_file.close!
101
77
 
102
- jasper_params.put JavaString.new('copy_number'), JavaString.new(copy.to_s)
103
- jasper_print = JasperFillManager.fillReport(jasper_file, jasper_params)
78
+ jasper_params.put @javaString.new('copy_number'), @javaString.new(copy.to_s)
79
+ jasper_print = @jasperFillManager.fillReport(jasper_file, jasper_params)
104
80
 
105
- File.open(copy_file, 'wb') { |f| f.write JasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print) }
81
+ File.open(copy_file, 'wb') { |f| f.write @jasperExportManager._invoke('exportReportToPdf', 'Lnet.sf.jasperreports.engine.JasperPrint;', jasper_print) }
106
82
 
107
83
  merge_pdf_command_line << " #{copy_file}"
108
84
 
@@ -148,11 +124,41 @@ module JasperCommandLine
148
124
  created_files.each { |file| File.unlink file if File.exists?(file) }
149
125
  end
150
126
 
151
- rescue Exception => e
152
- JasperCommandLine.logger.error e.message + "\n " + e.backtrace.join("\n ")
127
+ # rescue Exception => e
128
+ # JasperCommandLine.logger.error e.message + "\n " + e.backtrace.join("\n ")
153
129
 
154
- abort e.message
155
- end
130
+ # abort e.message
131
+ # end
156
132
  end
133
+
134
+ private
135
+
136
+ def self.initialize_engine
137
+ classpath = '.'
138
+ Dir["#{File.dirname(__FILE__)}/java/*.jar"].each do |jar|
139
+ classpath << File::PATH_SEPARATOR + File.expand_path(jar)
140
+ end
141
+
142
+ Dir["lib/*.jar"].each do |jar|
143
+ classpath << File::PATH_SEPARATOR + File.expand_path(jar)
144
+ end
145
+
146
+ Rjb::load( classpath, ['-Djava.awt.headless=true','-Xms128M', '-Xmx256M'] )
147
+
148
+ @jRException = Rjb::import 'net.sf.jasperreports.engine.JRException'
149
+ @jasperCompileManager = Rjb::import 'net.sf.jasperreports.engine.JasperCompileManager'
150
+ @jasperExportManager = Rjb::import 'net.sf.jasperreports.engine.JasperExportManager'
151
+ @jasperFillManager = Rjb::import 'net.sf.jasperreports.engine.JasperFillManager'
152
+ @jasperPrint = Rjb::import 'net.sf.jasperreports.engine.JasperPrint'
153
+ @jRXmlUtils = Rjb::import 'net.sf.jasperreports.engine.util.JRXmlUtils'
154
+ # This is here to avoid the "already initialized constant QUERY_EXECUTER_FACTORY_PREFIX" warnings.
155
+ @jRXPathQueryExecuterFactory = silence_warnings{Rjb::import 'net.sf.jasperreports.engine.query.JRXPathQueryExecuterFactory'}
156
+ @inputSource = Rjb::import 'org.xml.sax.InputSource'
157
+ @stringReader = Rjb::import 'java.io.StringReader'
158
+ @hashMap = Rjb::import 'java.util.HashMap'
159
+ @byteArrayInputStream = Rjb::import 'java.io.ByteArrayInputStream'
160
+ @javaString = Rjb::import 'java.lang.String'
161
+ @jFreeChart = Rjb::import 'org.jfree.chart.JFreeChart'
162
+ end
157
163
  end
158
164
  end
@@ -1,3 +1,3 @@
1
1
  module JasperCommandLine
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jasper-command-line
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-20 00:00:00.000000000 Z
12
+ date: 2013-01-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rjb