rasper 0.1.0-java → 0.2.0-java
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.
- checksums.yaml +7 -0
- data/CHANGELOG +26 -0
- data/README.rst +20 -7
- data/bin/rasper +34 -0
- data/lib/rasper.rb +2 -0
- data/lib/rasper/compiler.rb +7 -3
- data/lib/rasper/config.rb +22 -0
- data/lib/rasper/jar_loader.rb +3 -9
- data/lib/rasper/locale.rb +29 -0
- data/lib/rasper/report.rb +30 -19
- data/lib/rasper/version.rb +1 -1
- metadata +43 -62
- data/java/pom.xml +0 -51
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e1b9e0e3ad94e281532abb8128e6cbd9c4db7595
|
4
|
+
data.tar.gz: a7c956802e2aabfde75ba8dfb0aa7331c392b831
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6653828af81014ea846c6dace90113e9fa2743c9799ce5520fb594deb2e92f5debbf60825c67ded80bc288f838b68f701d8bb42ce87d334dfb2cdc53f7dfbe40
|
7
|
+
data.tar.gz: a5466660ab9ace35a62edede737d85470191c2d6c33a5342264d1f3c168abb2ca836e7e591f6725e650ea0b4c5a17bf412a2aa1505f7fbc2d65b362468dc5fc8
|
data/CHANGELOG
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Rasper
|
2
|
+
======
|
3
|
+
|
4
|
+
2018-03-15 Rodrigo Manhães <rmanhaes@gmail.com>
|
5
|
+
0.2.0
|
6
|
+
|
7
|
+
- Upgrade JasperReports to 6.5.1
|
8
|
+
|
9
|
+
|
10
|
+
2013-07-10 Rodrigo Manhães <rmanhaes@gmail.com>
|
11
|
+
0.1.4
|
12
|
+
|
13
|
+
- Extend locale support to compilation.
|
14
|
+
|
15
|
+
|
16
|
+
2013-07-08 Rodrigo Manhães <rmanhaes@gmail.com>
|
17
|
+
0.1.3
|
18
|
+
|
19
|
+
- Added configuration for locales.
|
20
|
+
|
21
|
+
|
22
|
+
2013-02-22 Rodrigo Manhães <rmanhaes@gmail.com>
|
23
|
+
0.1.2
|
24
|
+
|
25
|
+
- Dropped configuration directly on specific classes. All configurations now
|
26
|
+
should be applied to Rasper::Config.
|
data/README.rst
CHANGED
@@ -14,21 +14,35 @@ After installing the gem::
|
|
14
14
|
gem install rasper
|
15
15
|
|
16
16
|
You should install `Apache Maven 2 <http://maven.apache.org>`_ in order to
|
17
|
-
download the JAR files needed to run JasperReports. This done, run a
|
17
|
+
download the JAR files needed to run JasperReports. This done, run a command
|
18
18
|
for generating ``pom.xml``::
|
19
19
|
|
20
|
-
|
20
|
+
rasper generate_pom
|
21
21
|
|
22
22
|
and run Maven to download all dependencies::
|
23
23
|
|
24
|
-
mvn dependency:copy-dependencies -DoutputDirectory=/
|
24
|
+
mvn dependency:copy-dependencies -DoutputDirectory=/dir/for/jars
|
25
25
|
|
26
|
-
where ``
|
26
|
+
where ``/dir/for/jars`` is the directory in which JARs will be downloaded.
|
27
|
+
|
28
|
+
For running tests, JAR files should be stored in ``java/jars`` directory.
|
27
29
|
|
28
30
|
|
29
31
|
Usage
|
30
32
|
-----
|
31
33
|
|
34
|
+
Before doing anything, you should configure Rasper::
|
35
|
+
|
36
|
+
Rasper::Config.configure do |config|
|
37
|
+
config.jar_dir = "/dir/of/jars"
|
38
|
+
config.jasper_dir = "/dir/of/compiled/reports"
|
39
|
+
config.image_dir = "/dir/of/images"
|
40
|
+
config.locale = 'pt_BR'
|
41
|
+
end
|
42
|
+
|
43
|
+
Locale can be any Java-supported locale, in the format above.
|
44
|
+
|
45
|
+
|
32
46
|
To compile a JRXML file, just run::
|
33
47
|
|
34
48
|
Rasper::Compiler.compile("path-to-jrxml-file", "output-directory")
|
@@ -41,8 +55,7 @@ directory as JRXML file.
|
|
41
55
|
|
42
56
|
Having a compiled jasper file, you can generate a PDF report::
|
43
57
|
|
44
|
-
|
45
|
-
Rasper::Report.image_dir = "/home/user/image/directory"
|
58
|
+
|
46
59
|
pdf_content = Rasper::Report.generate('programmers', [
|
47
60
|
{ name: 'Linus', software: 'Linux' },
|
48
61
|
{ name: 'Yukihiro', software: 'Ruby' },
|
@@ -54,7 +67,7 @@ Having a compiled jasper file, you can generate a PDF report::
|
|
54
67
|
In example above, jasper directory and image directory (if there's some)
|
55
68
|
should be configured.
|
56
69
|
|
57
|
-
``Rasper::Report.generate`` returns an array containing PDF
|
70
|
+
``Rasper::Report.generate`` returns an array containing PDF bytes. It takes
|
58
71
|
the jasper file name, an array of hashes having the fields and values for the
|
59
72
|
report, and an optional third hash argument containing the report parameters.
|
60
73
|
All the hash keys should match the fields and parameter names within the JRXML
|
data/bin/rasper
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
#! /usr/bin/env jruby
|
2
|
+
|
3
|
+
if ARGV[0] == 'generate_pom'
|
4
|
+
STDOUT.puts "Generating pom.xml..."
|
5
|
+
File.open('./pom.xml', 'w') {|f| f.write('''<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
7
|
+
<modelVersion>4.0.0</modelVersion>
|
8
|
+
<groupId>rasper</groupId>
|
9
|
+
<artifactId>rasper-dependencies</artifactId>
|
10
|
+
<packaging>jar</packaging>
|
11
|
+
<version>0.1.0</version>
|
12
|
+
<name>rasper-dependencies</name>
|
13
|
+
<url>https://github.com/rodrigomanhaes/rasper</url>
|
14
|
+
|
15
|
+
<dependencies>
|
16
|
+
<dependency>
|
17
|
+
<groupId>net.sf.jasperreports</groupId>
|
18
|
+
<artifactId>jasperreports</artifactId>
|
19
|
+
<version>6.5.1</version>
|
20
|
+
</dependency>
|
21
|
+
<dependency>
|
22
|
+
<groupId>xalan</groupId>
|
23
|
+
<artifactId>xalan</artifactId>
|
24
|
+
<version>2.7.1</version>
|
25
|
+
</dependency>
|
26
|
+
</dependencies>
|
27
|
+
|
28
|
+
<build>
|
29
|
+
</build>
|
30
|
+
</project>
|
31
|
+
''') }
|
32
|
+
else
|
33
|
+
STDOUT.puts "Usage: rasper generate_pom"
|
34
|
+
end
|
data/lib/rasper.rb
CHANGED
data/lib/rasper/compiler.rb
CHANGED
@@ -6,10 +6,14 @@ java_import Java::net::sf::jasperreports::engine::JasperCompileManager
|
|
6
6
|
|
7
7
|
module Rasper
|
8
8
|
class Compiler
|
9
|
+
extend Locale
|
10
|
+
|
9
11
|
def self.compile(jrxml_file, output_dir = nil)
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
run_with_locale do
|
13
|
+
output_dir ||= File.dirname(jrxml_file)
|
14
|
+
output_file = File.join(output_dir, File.basename(jrxml_file, '.jrxml') + '.jasper')
|
15
|
+
JasperCompileManager.compile_report_to_file(jrxml_file, output_file)
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Rasper
|
2
|
+
class Config
|
3
|
+
class << self
|
4
|
+
attr_reader :jar_dir, :jasper_dir, :image_dir, :locale
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.configure
|
8
|
+
conf = Configuration.new
|
9
|
+
yield conf
|
10
|
+
@jar_dir = conf.jar_dir if conf.jar_dir
|
11
|
+
@jasper_dir = conf.jasper_dir if conf.jasper_dir
|
12
|
+
@image_dir = conf.image_dir if conf.image_dir
|
13
|
+
@locale = conf.locale if conf.locale
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
class Configuration
|
19
|
+
attr_accessor :jar_dir, :jasper_dir, :image_dir, :locale
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/rasper/jar_loader.rb
CHANGED
@@ -1,14 +1,8 @@
|
|
1
1
|
module Rasper
|
2
2
|
class JARLoader
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
def load
|
7
|
-
root_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
8
|
-
jar_dir ||= File.join(root_dir, 'java', 'jars')
|
9
|
-
Dir.entries(jar_dir).each do |lib|
|
10
|
-
require File.join(jar_dir, lib) if lib =~ /\.jar$/
|
11
|
-
end
|
3
|
+
def self.load
|
4
|
+
Dir.entries(Config.jar_dir).each do |lib|
|
5
|
+
require File.join(Config.jar_dir, lib) if lib =~ /\.jar$/
|
12
6
|
end
|
13
7
|
end
|
14
8
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'java'
|
2
|
+
|
3
|
+
java_import Java::java::util::Locale
|
4
|
+
|
5
|
+
module Rasper
|
6
|
+
module Locale
|
7
|
+
|
8
|
+
def run_with_locale
|
9
|
+
set_locale
|
10
|
+
begin
|
11
|
+
yield
|
12
|
+
ensure
|
13
|
+
restore_locale
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def set_locale
|
20
|
+
return unless Config.locale
|
21
|
+
@default_locale = ::Locale.get_default
|
22
|
+
::Locale.set_default(::Locale.new(*Config.locale.split('_')))
|
23
|
+
end
|
24
|
+
|
25
|
+
def restore_locale
|
26
|
+
::Locale.set_default(@default_locale) if @default_locale
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/rasper/report.rb
CHANGED
@@ -7,41 +7,52 @@ java_import Java::net::sf::jasperreports::engine::util::FileResolver
|
|
7
7
|
java_import Java::net::sf::jasperreports::engine::JasperRunManager
|
8
8
|
java_import Java::java::io::ByteArrayInputStream
|
9
9
|
java_import Java::java::io::BufferedInputStream
|
10
|
+
java_import Java::java::util::Locale
|
10
11
|
|
11
12
|
require 'active_support/core_ext'
|
12
13
|
|
13
14
|
module Rasper
|
14
15
|
class Report
|
15
|
-
|
16
|
-
attr_accessor :jasper_dir, :image_dir
|
16
|
+
extend Locale
|
17
17
|
|
18
|
+
class << self
|
18
19
|
def generate(jasper_name, data, params = {})
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
20
|
+
run_with_locale do
|
21
|
+
namespace, jasper_name = extract_namespace(jasper_name)
|
22
|
+
set_file_resolver(params, namespace)
|
23
|
+
file_name = File.join(Config.jasper_dir || '.', namespace,
|
24
|
+
jasper_name + '.jasper')
|
25
|
+
jasper_content = File.read(file_name)
|
26
|
+
data = { jasper_name => data }.to_xml
|
27
|
+
xpath_criteria = "/hash/#{jasper_name}/#{jasper_name.singularize}"
|
28
|
+
source = JRXmlDataSource.new(
|
29
|
+
ByteArrayInputStream.new(data.to_java_bytes), xpath_criteria)
|
30
|
+
input = BufferedInputStream.new(
|
31
|
+
ByteArrayInputStream.new(jasper_content.to_java_bytes))
|
32
|
+
String.from_java_bytes(
|
33
|
+
JasperRunManager.runReportToPdf(input, params, source))
|
34
|
+
end
|
31
35
|
end
|
32
36
|
|
33
37
|
private
|
34
38
|
|
35
|
-
def set_file_resolver(params)
|
36
|
-
resolver = FileResolver.new
|
37
|
-
image_directory = image_dir
|
39
|
+
def set_file_resolver(params, namespace = '')
|
40
|
+
resolver = Class.new { include FileResolver }.new
|
41
|
+
image_directory = Config.image_dir
|
38
42
|
resolver.singleton_class.instance_eval do
|
39
43
|
define_method :resolve_file do |filename|
|
40
|
-
java::io::File.new(
|
44
|
+
java::io::File.new(File.join(image_directory, namespace, filename))
|
41
45
|
end
|
42
46
|
end
|
43
47
|
params['REPORT_FILE_RESOLVER'] = resolver
|
44
48
|
end
|
49
|
+
|
50
|
+
def extract_namespace(name)
|
51
|
+
parts = name.split('/')
|
52
|
+
jasper_name = parts.pop
|
53
|
+
namespace = parts.join('/')
|
54
|
+
[namespace, jasper_name]
|
55
|
+
end
|
45
56
|
end
|
46
57
|
end
|
47
|
-
end
|
58
|
+
end
|
data/lib/rasper/version.rb
CHANGED
metadata
CHANGED
@@ -1,126 +1,110 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rasper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: java
|
7
6
|
authors:
|
8
7
|
- Rodrigo Manhães
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-03-14 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
|
-
name: builder
|
16
|
-
version_requirements: !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- - ">="
|
19
|
-
- !ruby/object:Gem::Version
|
20
|
-
version: !binary |-
|
21
|
-
MA==
|
22
|
-
none: false
|
23
14
|
requirement: !ruby/object:Gem::Requirement
|
24
15
|
requirements:
|
25
16
|
- - ">="
|
26
17
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
-
|
29
|
-
none: false
|
18
|
+
version: '0'
|
19
|
+
name: builder
|
30
20
|
prerelease: false
|
31
21
|
type: :runtime
|
32
|
-
- !ruby/object:Gem::Dependency
|
33
|
-
name: activesupport
|
34
22
|
version_requirements: !ruby/object:Gem::Requirement
|
35
23
|
requirements:
|
36
24
|
- - ">="
|
37
25
|
- !ruby/object:Gem::Version
|
38
|
-
version:
|
39
|
-
|
40
|
-
none: false
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
41
28
|
requirement: !ruby/object:Gem::Requirement
|
42
29
|
requirements:
|
43
30
|
- - ">="
|
44
31
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
|
47
|
-
none: false
|
32
|
+
version: '0'
|
33
|
+
name: activesupport
|
48
34
|
prerelease: false
|
49
35
|
type: :runtime
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rake
|
52
36
|
version_requirements: !ruby/object:Gem::Requirement
|
53
37
|
requirements:
|
54
38
|
- - ">="
|
55
39
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
57
|
-
|
58
|
-
none: false
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
59
42
|
requirement: !ruby/object:Gem::Requirement
|
60
43
|
requirements:
|
61
44
|
- - ">="
|
62
45
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
64
|
-
|
65
|
-
none: false
|
46
|
+
version: '0'
|
47
|
+
name: rake
|
66
48
|
prerelease: false
|
67
49
|
type: :runtime
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: rspec
|
70
50
|
version_requirements: !ruby/object:Gem::Requirement
|
71
51
|
requirements:
|
72
52
|
- - ">="
|
73
53
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
75
|
-
|
76
|
-
none: false
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
77
56
|
requirement: !ruby/object:Gem::Requirement
|
78
57
|
requirements:
|
79
58
|
- - ">="
|
80
59
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
82
|
-
|
83
|
-
none: false
|
60
|
+
version: '0'
|
61
|
+
name: rspec
|
84
62
|
prerelease: false
|
85
63
|
type: :development
|
86
|
-
- !ruby/object:Gem::Dependency
|
87
|
-
name: docsplit
|
88
64
|
version_requirements: !ruby/object:Gem::Requirement
|
89
65
|
requirements:
|
90
66
|
- - ">="
|
91
67
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
93
|
-
|
94
|
-
none: false
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
95
70
|
requirement: !ruby/object:Gem::Requirement
|
96
71
|
requirements:
|
97
72
|
- - ">="
|
98
73
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
100
|
-
|
101
|
-
none: false
|
74
|
+
version: '0'
|
75
|
+
name: docsplit
|
102
76
|
prerelease: false
|
103
77
|
type: :development
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
104
83
|
description: JRuby client to JasperReports API.
|
105
84
|
email:
|
106
85
|
- rmanhaes@gmail.com
|
107
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- rasper
|
108
88
|
extensions: []
|
109
89
|
extra_rdoc_files: []
|
110
90
|
files:
|
91
|
+
- CHANGELOG
|
92
|
+
- Gemfile
|
93
|
+
- LICENSE.txt
|
94
|
+
- README.rst
|
95
|
+
- Rakefile
|
96
|
+
- bin/rasper
|
111
97
|
- lib/rasper.rb
|
112
98
|
- lib/rasper/compiler.rb
|
99
|
+
- lib/rasper/config.rb
|
100
|
+
- lib/rasper/jar_loader.rb
|
101
|
+
- lib/rasper/locale.rb
|
113
102
|
- lib/rasper/report.rb
|
114
103
|
- lib/rasper/version.rb
|
115
|
-
- lib/rasper/jar_loader.rb
|
116
|
-
- java/pom.xml
|
117
|
-
- README.rst
|
118
|
-
- LICENSE.txt
|
119
|
-
- Rakefile
|
120
|
-
- Gemfile
|
121
104
|
homepage: https://github.com/rodrigomanhaes/rasper
|
122
105
|
licenses:
|
123
106
|
- MIT
|
107
|
+
metadata: {}
|
124
108
|
post_install_message:
|
125
109
|
rdoc_options: []
|
126
110
|
require_paths:
|
@@ -129,20 +113,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
113
|
requirements:
|
130
114
|
- - ">="
|
131
115
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
133
|
-
MA==
|
134
|
-
none: false
|
116
|
+
version: '0'
|
135
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
118
|
requirements:
|
137
119
|
- - ">="
|
138
120
|
- !ruby/object:Gem::Version
|
139
|
-
version:
|
140
|
-
MA==
|
141
|
-
none: false
|
121
|
+
version: '0'
|
142
122
|
requirements: []
|
143
123
|
rubyforge_project:
|
144
|
-
rubygems_version:
|
124
|
+
rubygems_version: 2.6.14
|
145
125
|
signing_key:
|
146
|
-
specification_version:
|
147
|
-
summary: JRuby client to JasperReports API. Currently, only does compilation of JRXML
|
126
|
+
specification_version: 4
|
127
|
+
summary: JRuby client to JasperReports API. Currently, only does compilation of JRXML
|
128
|
+
files and generation of PDF reports.
|
148
129
|
test_files: []
|
data/java/pom.xml
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2
|
-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
3
|
-
<modelVersion>4.0.0</modelVersion>
|
4
|
-
<groupId>rasper</groupId>
|
5
|
-
<artifactId>rasper-dependencies</artifactId>
|
6
|
-
<packaging>jar</packaging>
|
7
|
-
<version>0.1.0</version>
|
8
|
-
<name>rasper-dependencies</name>
|
9
|
-
<url>https://github.com/rodrigomanhaes/rasper</url>
|
10
|
-
|
11
|
-
<dependencies>
|
12
|
-
<dependency>
|
13
|
-
<groupId>commons-beanutils</groupId>
|
14
|
-
<artifactId>commons-beanutils</artifactId>
|
15
|
-
<version>1.8.0</version>
|
16
|
-
</dependency>
|
17
|
-
<dependency>
|
18
|
-
<groupId>commons-digester</groupId>
|
19
|
-
<artifactId>commons-digester</artifactId>
|
20
|
-
<version>2.0</version>
|
21
|
-
</dependency>
|
22
|
-
<dependency>
|
23
|
-
<groupId>commons-collections</groupId>
|
24
|
-
<artifactId>commons-collections</artifactId>
|
25
|
-
<version>3.2</version>
|
26
|
-
</dependency>
|
27
|
-
<dependency>
|
28
|
-
<groupId>commons-logging</groupId>
|
29
|
-
<artifactId>commons-logging</artifactId>
|
30
|
-
<version>1.1.1</version>
|
31
|
-
</dependency>
|
32
|
-
<dependency>
|
33
|
-
<groupId>com.lowagie</groupId>
|
34
|
-
<artifactId>itext</artifactId>
|
35
|
-
<version>2.1.0</version>
|
36
|
-
</dependency>
|
37
|
-
<dependency>
|
38
|
-
<groupId>jasperreports</groupId>
|
39
|
-
<artifactId>jasperreports</artifactId>
|
40
|
-
<version>3.5.3</version>
|
41
|
-
</dependency>
|
42
|
-
<dependency>
|
43
|
-
<groupId>xalan</groupId>
|
44
|
-
<artifactId>xalan</artifactId>
|
45
|
-
<version>2.7.1</version>
|
46
|
-
</dependency>
|
47
|
-
</dependencies>
|
48
|
-
|
49
|
-
<build>
|
50
|
-
</build>
|
51
|
-
</project>
|