buildrizpack 0.2-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.
- data/LICENSE +176 -0
- data/NOTICE +26 -0
- data/README.rdoc +169 -0
- data/Rakefile +47 -0
- data/buildrizpack.gemspec +78 -0
- data/lib/buildrizpack.rb +16 -0
- data/lib/buildrizpack/package.rb +224 -0
- data/lib/buildrizpack/package.rb~ +224 -0
- data/rakelib/all-in-one.rake +122 -0
- data/rakelib/checks.rake +28 -0
- data/rakelib/checks.rake~ +28 -0
- data/rakelib/doc.rake +45 -0
- data/rakelib/doc.rake~ +121 -0
- data/rakelib/metrics.rake +39 -0
- data/rakelib/package.rake +48 -0
- data/rakelib/package.rake~ +63 -0
- data/rakelib/release.rake +160 -0
- data/rakelib/rspec.rake +92 -0
- data/rakelib/rspec.rake~ +92 -0
- data/rakelib/stage.rake +217 -0
- data/spec/buildrizpack/package_spec.rb +154 -0
- data/spec/buildrizpack/package_spec.rb~ +155 -0
- data/spec/spec_helpers.rb +31 -0
- metadata +370 -0
data/lib/buildrizpack.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
require 'buildrizpack/package'
|
@@ -0,0 +1,224 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# :include:../../README.rdoc
|
3
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
4
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
5
|
+
# work for additional information regarding copyright ownership. The ASF
|
6
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
7
|
+
# "License"); you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
15
|
+
# License for the specific language governing permissions and limitations under
|
16
|
+
# the License.
|
17
|
+
|
18
|
+
require "rexml/document"
|
19
|
+
include REXML
|
20
|
+
|
21
|
+
module BuildrIzPack
|
22
|
+
|
23
|
+
# A simple helper class to create a single pack
|
24
|
+
#
|
25
|
+
class Pack
|
26
|
+
# The path to be used by the IzPack-installer for this pack. Defaults to
|
27
|
+
attr_reader :defaultPath
|
28
|
+
# A hast of the files to be packed (src => installpath)
|
29
|
+
attr_reader :files
|
30
|
+
# A more elaborate description of the pack
|
31
|
+
attr_reader :description
|
32
|
+
# Attributes of the pack. a hash of name => value, eg. 'require' => 'yes'
|
33
|
+
attr_reader :attributes
|
34
|
+
# Initialize an IzPack-Pack by name, description.
|
35
|
+
# :attributes: Attributes of the pack, a Hash, eg. { 'required' => 'yes' }
|
36
|
+
def initialize(name, description, attributes = {}, defaultPath = '$INSTALL_PATH/plugins')
|
37
|
+
@description = description
|
38
|
+
@attributes = attributes
|
39
|
+
@attributes['name'] = name
|
40
|
+
@files = Hash.new
|
41
|
+
@defaultPath = defaultPath
|
42
|
+
@attributes['required'] = 'no' if !@attributes['required']
|
43
|
+
end
|
44
|
+
|
45
|
+
# Add a single file to the pack
|
46
|
+
def addFile(src, dest=nil)
|
47
|
+
orig = dest
|
48
|
+
dest = File.join(@defaultPath, File.basename(src)) if !dest
|
49
|
+
@files[src] = dest
|
50
|
+
end
|
51
|
+
|
52
|
+
# collect the XML representation for the pack using an XMLMarkup object
|
53
|
+
def emitIzPackXML(xm)
|
54
|
+
# raise "xm must be an Builder::XmlMarkup object, but is #{xm.class}" if xm.class != Builder::XmlMarkup
|
55
|
+
xm.pack(@attributes) {
|
56
|
+
xm.description(@description)
|
57
|
+
@files.each{ |src, dest| xm.singlefile('src'=> src, 'target' =>dest) }
|
58
|
+
}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class IzPackTask < Buildr::ArchiveTask
|
63
|
+
|
64
|
+
# a hash of name => value to be passed when calling the izpack installer
|
65
|
+
# See also IzPackTask.html[http://www.jarvana.com/jarvana/view/org/codehaus/izpack/izpack-standalone-compiler/4.0.1/izpack-standalone-compiler-4.0.1-javadoc.jar!/com/izforge/izpack/ant/IzPackTask.html]
|
66
|
+
attr_accessor :properties
|
67
|
+
# "IzPack"[http://izpack.org/documentation/installation-files.html] to be used as starting point for calling the izpack installer
|
68
|
+
# some or all of its content may be overwritten, if you specify other attributes, e.g.
|
69
|
+
# if you want to specify one or mor pack bundles with a file list maintained by buildr.
|
70
|
+
# If not specified BuildrIzPack will create one at File.join(project.path_to(:target, 'install.xml'))
|
71
|
+
attr_accessor :input
|
72
|
+
# ther version of the izpack installer to be used. Defaults to 4.3.5
|
73
|
+
attr_accessor :izpackVersion
|
74
|
+
# Application name used by the IzPack installer. Defaults to the current project
|
75
|
+
attr_accessor :appName
|
76
|
+
# The installer output directory and filename (defaults to <project>-<version>.izpack)
|
77
|
+
attr_accessor :output
|
78
|
+
# The base directory of compilation process (defaults project.path_to(:target))
|
79
|
+
attr_accessor :basedir
|
80
|
+
# The installer type (defaults to standard). You can select between standard and web.
|
81
|
+
attr_accessor :installerType
|
82
|
+
# It seems that in order to propagate all project properties to the the izpack compiler you need to set the inheritAll attribute to "true".
|
83
|
+
# Therefore it defaults to true
|
84
|
+
attr_accessor :inheritAll
|
85
|
+
# defaults to deflate. You can select between default, deflate and raw.
|
86
|
+
attr_accessor :compression
|
87
|
+
# defaults to 9. The compression level of the installation (defaults to -1 for no compression). Valid values are -1 to 9.
|
88
|
+
attr_accessor :compressionLevel
|
89
|
+
# the packs (including attributes, fileset, os-dependencies etc). Must be an array of XmlMarkup object.
|
90
|
+
attr_accessor :packs
|
91
|
+
|
92
|
+
# The supported locale's for the installer. Must be an array of XmlMarkup object. Defaults to ['eng']
|
93
|
+
# For details look at IzPacks installation.dtd (Distributed with this gem)
|
94
|
+
attr_accessor :locales
|
95
|
+
# IzPacks panels's. Must be an array of XmlMarkup object. Defaults to ['TargetPanel', 'InstallPack']
|
96
|
+
attr_accessor :panels
|
97
|
+
# the supported locale's. Must be an array of XmlMarkup object. Defaults to 680 x 520
|
98
|
+
attr_accessor :guiprefs
|
99
|
+
|
100
|
+
attr_accessor :packaging, :properties, :variables, :dynamicvariables, :conditions, :installerrequirements,:resources,
|
101
|
+
:listeners, :jar, :native
|
102
|
+
|
103
|
+
# The ArchiveTask class delegates this method
|
104
|
+
# so we can create the archive.
|
105
|
+
# the file_map is the result of the computations of the include and exclude filters.
|
106
|
+
#
|
107
|
+
def create_from(file_map)
|
108
|
+
@izpackVersion ||= '4.3.5'
|
109
|
+
@appName ||= project.id
|
110
|
+
@izpackBaseDir = File.dirname(@output) if !@izpackBaseDir
|
111
|
+
@installerType ||= 'standard'
|
112
|
+
@inheritAll ||= 'true'
|
113
|
+
@compression ||= 'deflate'
|
114
|
+
@compressionLevel ||= '9'
|
115
|
+
@locales ||= ['eng']
|
116
|
+
@panels ||= ['TargetPanel', 'InstallPanel']
|
117
|
+
@packs ||=
|
118
|
+
raise "You must include at least one file to create an izPack installer" if file_map.size == 0 and !File.exists?(@input)
|
119
|
+
izPackArtifact = Buildr.artifact( "org.codehaus.izpack:izpack-standalone-compiler:jar:#{@izpackVersion}")
|
120
|
+
doc = nil
|
121
|
+
if !File.exists?(@input)
|
122
|
+
genInstaller(Builder::XmlMarkup.new(:target=>File.open(@input, 'w+'), :indent => 2), file_map)
|
123
|
+
# genInstaller(Builder::XmlMarkup.new(:target=>$stdout, :indent => 2), file_map)
|
124
|
+
# genInstaller(Builder::XmlMarkup.new(:target=>File.open('/home/niklaus/tmp2.xml', 'w+'), :indent => 2), file_map)
|
125
|
+
end
|
126
|
+
Buildr.ant('izpack-ant') do |x|
|
127
|
+
izPackArtifact.invoke
|
128
|
+
msg = "Generating izpack aus #{File.expand_path(@input)}"
|
129
|
+
trace msg
|
130
|
+
if properties
|
131
|
+
properties.each{ |name, value|
|
132
|
+
puts "Need added property #{name} with value #{value}"
|
133
|
+
x.property(:name => name, :value => value)
|
134
|
+
}
|
135
|
+
end
|
136
|
+
x.echo(:message =>msg)
|
137
|
+
x.taskdef :name=>'izpack',
|
138
|
+
:classname=>'com.izforge.izpack.ant.IzPackTask',
|
139
|
+
:classpath=>izPackArtifact.to_s
|
140
|
+
x.izpack :input=> @input,
|
141
|
+
:output => @output,
|
142
|
+
:basedir => @izpackBaseDir,
|
143
|
+
:installerType=> @installerType,
|
144
|
+
:inheritAll=> @inheritAll,
|
145
|
+
:compression => @compression,
|
146
|
+
:compressionLevel => @compressionLevel do
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
private
|
152
|
+
def genInstaller(xm, file_map)
|
153
|
+
xm.instruct!
|
154
|
+
xm.installation('version'=>'1.0') {
|
155
|
+
xm.tag!('info') { xm.appname(@appName); xm.appversion(@version)}
|
156
|
+
if @guiprefs then xm << @guiprefs
|
157
|
+
else
|
158
|
+
xm.guiprefs('width' => '680', 'height' => '520', 'resizable' => 'yes')
|
159
|
+
end
|
160
|
+
if @panels.class == String then xm << @panels
|
161
|
+
else
|
162
|
+
xm.panels {
|
163
|
+
@panels.each{ |x| xm.panel('classname' => x) }
|
164
|
+
}
|
165
|
+
end
|
166
|
+
if @panels.class == String then xm << @panels
|
167
|
+
else
|
168
|
+
xm.locale {
|
169
|
+
@locales.each{ |x| xm.langpack('iso3'=>x) }
|
170
|
+
}
|
171
|
+
end
|
172
|
+
if @packs then xm << @packs
|
173
|
+
else
|
174
|
+
#default definiton of packs
|
175
|
+
xm.packs {
|
176
|
+
xm.pack('name' => 'main', 'required' => 'yes') {
|
177
|
+
xm.description("Main pack of #{@appName}")
|
178
|
+
file_map.each{ |src,aJar|
|
179
|
+
xm.file('src'=> aJar, 'targetdir' =>'$INSTALL_PATH')
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
end
|
184
|
+
[@packaging, @properties, @variables, @dynamicvariables, @conditions, @installerrequirements,@resources,@listeners, @jar, @native].each do
|
185
|
+
|element|
|
186
|
+
xm << element if element
|
187
|
+
end
|
188
|
+
|
189
|
+
}
|
190
|
+
# Don't close $stdout
|
191
|
+
xm.target!().close if xm.target!.class == File
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
195
|
+
|
196
|
+
module ActAsIzPackPackager
|
197
|
+
include Extension
|
198
|
+
|
199
|
+
def package_as_izpack(file_name)
|
200
|
+
izpack = IzPackTask.define_task(file_name)
|
201
|
+
izpack.enhance do |task|
|
202
|
+
task.enhance do
|
203
|
+
package ||= project.id
|
204
|
+
version ||= project.version
|
205
|
+
end
|
206
|
+
task.input ||= File.join(project.path_to(:target, 'install.xml'))
|
207
|
+
task.appName ||= project.id
|
208
|
+
task.output ||= file_name
|
209
|
+
task.basedir ||= project.path_to(:target)
|
210
|
+
task.installerType ||= 'standard'
|
211
|
+
task.inheritAll ||= 'true'
|
212
|
+
task.compression ||= 'deflate'
|
213
|
+
task.compressionLevel ||= '9'
|
214
|
+
end
|
215
|
+
return izpack
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
module Buildr
|
221
|
+
class Project
|
222
|
+
include BuildrIzPack::ActAsIzPackPackager
|
223
|
+
end
|
224
|
+
end
|
@@ -0,0 +1,224 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# :include:../../README.rdoc
|
3
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
4
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
5
|
+
# work for additional information regarding copyright ownership. The ASF
|
6
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
7
|
+
# "License"); you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
15
|
+
# License for the specific language governing permissions and limitations under
|
16
|
+
# the License.
|
17
|
+
|
18
|
+
require "rexml/document"
|
19
|
+
include REXML
|
20
|
+
|
21
|
+
module BuildrIzPack
|
22
|
+
|
23
|
+
# A simple helper class to create a single pack
|
24
|
+
#
|
25
|
+
class Pack
|
26
|
+
# The path to be used by the IzPack-installer for this pack. Defaults to
|
27
|
+
attr_reader :defaultPath
|
28
|
+
# A hast of the files to be packed (src => installpath)
|
29
|
+
attr_reader :files
|
30
|
+
# A more elaborate description of the pack
|
31
|
+
attr_reader :description
|
32
|
+
# Attributes of the pack. a hash of name => value, eg. 'require' => 'yes'
|
33
|
+
attr_reader :attributes
|
34
|
+
# Initialize an IzPack-Pack by name, description.
|
35
|
+
# :attributes: Attributes of the pack, a Hash, eg. { 'required' => 'yes' }
|
36
|
+
def initialize(name, description, attributes = {}, defaultPath = '$INSTALL_PATH/plugins')
|
37
|
+
@description = description
|
38
|
+
@attributes = attributes
|
39
|
+
@attributes['name'] = name
|
40
|
+
@files = Hash.new
|
41
|
+
@defaultPath = defaultPath
|
42
|
+
@attributes['required'] = 'no' if !@attributes['required']
|
43
|
+
end
|
44
|
+
|
45
|
+
# Add a single file to the pack
|
46
|
+
def addFile(src, dest=nil)
|
47
|
+
orig = dest
|
48
|
+
dest = File.join(@defaultPath, File.basename(src)) if !dest
|
49
|
+
@files[src] = dest
|
50
|
+
end
|
51
|
+
|
52
|
+
# collect the XML representation for the pack using an XMLMarkup object
|
53
|
+
def emitIzPackXML(xm)
|
54
|
+
# raise "xm must be an Builder::XmlMarkup object, but is #{xm.class}" if xm.class != Builder::XmlMarkup
|
55
|
+
xm.pack(@attributes) {
|
56
|
+
xm.description(@description)
|
57
|
+
@files.each{ |src, dest| xm.singlefile('src'=> src, 'target' =>dest) }
|
58
|
+
}
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class IzPackTask < Buildr::ArchiveTask
|
63
|
+
|
64
|
+
# a hash of name => value to be passed when calling the izpack installer
|
65
|
+
# See also IzPackTask.html[http://www.jarvana.com/jarvana/view/org/codehaus/izpack/izpack-standalone-compiler/4.0.1/izpack-standalone-compiler-4.0.1-javadoc.jar!/com/izforge/izpack/ant/IzPackTask.html]
|
66
|
+
attr_accessor :properties
|
67
|
+
# "IzPack"[http://izpack.org/documentation/installation-files.html] to be used as starting point for calling the izpack installer
|
68
|
+
# some or all of its content may be overwritten, if you specify other attributes, e.g.
|
69
|
+
# if you want to specify one or mor pack bundles with a file list maintained by buildr.
|
70
|
+
# If not specified BuildrIzPack will create one at File.join(project.path_to(:target, 'install.xml'))
|
71
|
+
attr_accessor :input
|
72
|
+
# ther version of the izpack installer to be used. Defaults to 4.3.5
|
73
|
+
attr_accessor :izpackVersion
|
74
|
+
# Application name used by the IzPack installer. Defaults to the current project
|
75
|
+
attr_accessor :appName
|
76
|
+
# The installer output directory and filename (defaults to <project>-<version>.izpack)
|
77
|
+
attr_accessor :output
|
78
|
+
# The base directory of compilation process (defaults project.path_to(:target))
|
79
|
+
attr_accessor :basedir
|
80
|
+
# The installer type (defaults to standard). You can select between standard and web.
|
81
|
+
attr_accessor :installerType
|
82
|
+
# It seems that in order to propagate all project properties to the the izpack compiler you need to set the inheritAll attribute to "true".
|
83
|
+
# Therefore it defaults to true
|
84
|
+
attr_accessor :inheritAll
|
85
|
+
# defaults to deflate. You can select between default, deflate and raw.
|
86
|
+
attr_accessor :compression
|
87
|
+
# defaults to 9. The compression level of the installation (defaults to -1 for no compression). Valid values are -1 to 9.
|
88
|
+
attr_accessor :compressionLevel
|
89
|
+
# the packs (including attributes, fileset, os-dependencies etc). Must be an array of XmlMarkup object.
|
90
|
+
attr_accessor :packs
|
91
|
+
|
92
|
+
# The supported locale's for the installer. Must be an array of XmlMarkup object. Defaults to ['eng']
|
93
|
+
# For details look at IzPacks installation.dtd (Distributed with this gem)
|
94
|
+
attr_accessor :locales
|
95
|
+
# IzPacks panels's. Must be an array of XmlMarkup object. Defaults to ['TargetPanel', 'InstallPack']
|
96
|
+
attr_accessor :panels
|
97
|
+
# the supported locale's. Must be an array of XmlMarkup object. Defaults to 680 x 520
|
98
|
+
attr_accessor :guiprefs
|
99
|
+
|
100
|
+
attr_accessor :packaging, :properties, :variables, :dynamicvariables, :conditions, :installerrequirements,:resources,
|
101
|
+
:listeners, :jar, :native
|
102
|
+
|
103
|
+
# The ArchiveTask class delegates this method
|
104
|
+
# so we can create the archive.
|
105
|
+
# the file_map is the result of the computations of the include and exclude filters.
|
106
|
+
#
|
107
|
+
def create_from(file_map)
|
108
|
+
@izpackVersion ||= '4.3.5'
|
109
|
+
@appName ||= project.id
|
110
|
+
@izpackBaseDir = File.dirname(@output) if !@izpackBaseDir
|
111
|
+
@installerType ||= 'standard'
|
112
|
+
@inheritAll ||= 'true'
|
113
|
+
@compression ||= 'deflate'
|
114
|
+
@compressionLevel ||= '9'
|
115
|
+
@locales ||= ['eng']
|
116
|
+
@panels ||= ['TargetPanel', 'InstallPanel']
|
117
|
+
@packs ||=
|
118
|
+
raise "You must include at least one file to create an izPack installer" if file_map.size == 0 and !File.exists?(@input)
|
119
|
+
izPackArtifact = Buildr.artifact( "org.codehaus.izpack:izpack-standalone-compiler:jar:#{@izpackVersion}")
|
120
|
+
doc = nil
|
121
|
+
if !File.exists?(@input)
|
122
|
+
genInstaller(Builder::XmlMarkup.new(:target=>File.open(@input, 'w+'), :indent => 2), file_map)
|
123
|
+
# genInstaller(Builder::XmlMarkup.new(:target=>$stdout, :indent => 2), file_map)
|
124
|
+
# genInstaller(Builder::XmlMarkup.new(:target=>File.open('/home/niklaus/tmp2.xml', 'w+'), :indent => 2), file_map)
|
125
|
+
end
|
126
|
+
Buildr.ant('izpack-ant') do |x|
|
127
|
+
izPackArtifact.invoke
|
128
|
+
msg = "Generating izpack aus #{File.expand_path(@input)} #{File.size(@input)}"
|
129
|
+
trace msg
|
130
|
+
if properties
|
131
|
+
properties.each{ |name, value|
|
132
|
+
puts "Need added property #{name} with value #{value}"
|
133
|
+
x.property(:name => name, :value => value)
|
134
|
+
}
|
135
|
+
end
|
136
|
+
x.echo(:message =>msg)
|
137
|
+
x.taskdef :name=>'izpack',
|
138
|
+
:classname=>'com.izforge.izpack.ant.IzPackTask',
|
139
|
+
:classpath=>izPackArtifact.to_s
|
140
|
+
x.izpack :input=> @input,
|
141
|
+
:output => @output,
|
142
|
+
:basedir => @izpackBaseDir,
|
143
|
+
:installerType=> @installerType,
|
144
|
+
:inheritAll=> @inheritAll,
|
145
|
+
:compression => @compression,
|
146
|
+
:compressionLevel => @compressionLevel do
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
private
|
152
|
+
def genInstaller(xm, file_map)
|
153
|
+
xm.instruct!
|
154
|
+
xm.installation('version'=>'1.0') {
|
155
|
+
xm.tag!('info') { xm.appname(@appName); xm.appversion(@version)}
|
156
|
+
if @guiprefs then xm << @guiprefs
|
157
|
+
else
|
158
|
+
xm.guiprefs('width' => '680', 'height' => '520', 'resizable' => 'yes')
|
159
|
+
end
|
160
|
+
if @panels.class == String then xm << @panels
|
161
|
+
else
|
162
|
+
xm.panels {
|
163
|
+
@panels.each{ |x| xm.panel('classname' => x) }
|
164
|
+
}
|
165
|
+
end
|
166
|
+
if @panels.class == String then xm << @panels
|
167
|
+
else
|
168
|
+
xm.locale {
|
169
|
+
@locales.each{ |x| xm.langpack('iso3'=>x) }
|
170
|
+
}
|
171
|
+
end
|
172
|
+
if @packs then xm << @packs
|
173
|
+
else
|
174
|
+
#default definiton of packs
|
175
|
+
xm.packs {
|
176
|
+
xm.pack('name' => 'main', 'required' => 'yes') {
|
177
|
+
xm.description("Main pack of #{@appName}")
|
178
|
+
file_map.each{ |src,aJar|
|
179
|
+
xm.file('src'=> aJar, 'targetdir' =>'$INSTALL_PATH')
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
end
|
184
|
+
[@packaging, @properties, @variables, @dynamicvariables, @conditions, @installerrequirements,@resources,@listeners, @jar, @native].each do
|
185
|
+
|element|
|
186
|
+
xm << element if element
|
187
|
+
end
|
188
|
+
|
189
|
+
}
|
190
|
+
# Don't close $stdout
|
191
|
+
xm.target!().close if xm.target!.class == File
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
195
|
+
|
196
|
+
module ActAsIzPackPackager
|
197
|
+
include Extension
|
198
|
+
|
199
|
+
def package_as_izpack(file_name)
|
200
|
+
izpack = IzPackTask.define_task(file_name)
|
201
|
+
izpack.enhance do |task|
|
202
|
+
task.enhance do
|
203
|
+
package ||= project.id
|
204
|
+
version ||= project.version
|
205
|
+
end
|
206
|
+
task.input ||= File.join(project.path_to(:target, 'install.xml'))
|
207
|
+
task.appName ||= project.id
|
208
|
+
task.output ||= file_name
|
209
|
+
task.basedir ||= project.path_to(:target)
|
210
|
+
task.installerType ||= 'standard'
|
211
|
+
task.inheritAll ||= 'true'
|
212
|
+
task.compression ||= 'deflate'
|
213
|
+
task.compressionLevel ||= '9'
|
214
|
+
end
|
215
|
+
return izpack
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
module Buildr
|
221
|
+
class Project
|
222
|
+
include BuildrIzPack::ActAsIzPackPackager
|
223
|
+
end
|
224
|
+
end
|