jasper-command-line 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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