backlog 0.34.1 → 0.34.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +15 -0
- data/Rakefile +7 -19
- data/app/models/work.rb +1 -1
- data/app/views/works/list_excel.rhtml +3 -5
- data/config/warble.rb +84 -0
- data/config/warble.rb~ +84 -0
- metadata +4 -28
- data/uwe@celina +0 -0
- data/vendor/plugins/goldspike/README +0 -13
- data/vendor/plugins/goldspike/Rakefile +0 -22
- data/vendor/plugins/goldspike/generators/goldspike/goldspike_generator.rb +0 -21
- data/vendor/plugins/goldspike/generators/goldspike/templates/war.rb +0 -8
- data/vendor/plugins/goldspike/generators/goldspike/templates/web.xml.erb +0 -57
- data/vendor/plugins/goldspike/init.rb +0 -1
- data/vendor/plugins/goldspike/install.rb +0 -4
- data/vendor/plugins/goldspike/lib/create_war.rb +0 -102
- data/vendor/plugins/goldspike/lib/java_library.rb +0 -131
- data/vendor/plugins/goldspike/lib/packer.rb +0 -215
- data/vendor/plugins/goldspike/lib/run.rb +0 -160
- data/vendor/plugins/goldspike/lib/util.rb +0 -35
- data/vendor/plugins/goldspike/lib/war_config.rb +0 -324
- data/vendor/plugins/goldspike/tasks/war.rake +0 -49
- data/vendor/plugins/goldspike/test/test_create_war.rb +0 -8
- data/vendor/plugins/goldspike/test/test_java_library.rb +0 -130
- data/vendor/plugins/goldspike/test/test_maven_library.rb +0 -132
- data/vendor/plugins/goldspike/test/war_config_test_config.rb +0 -15
@@ -1,160 +0,0 @@
|
|
1
|
-
require 'war_config'
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
module War
|
5
|
-
class Runner
|
6
|
-
|
7
|
-
attr_accessor :config
|
8
|
-
attr_accessor :jetty_main
|
9
|
-
attr_accessor :jetty_tmp
|
10
|
-
attr_accessor :jetty_config
|
11
|
-
attr_accessor :war_override
|
12
|
-
attr_accessor :classpath
|
13
|
-
|
14
|
-
def initialize(config = Configuration.instance)
|
15
|
-
@config = config
|
16
|
-
@jetty_main = 'org.mortbay.start.Main'
|
17
|
-
@jetty_tmp = File.join('tmp', 'jetty')
|
18
|
-
@jetty_config = File.join(jetty_tmp, 'jetty.xml')
|
19
|
-
@war_override = File.join(jetty_tmp, 'war-override.xml')
|
20
|
-
end
|
21
|
-
|
22
|
-
def run_standalone
|
23
|
-
@config.standalone = true
|
24
|
-
run
|
25
|
-
end
|
26
|
-
|
27
|
-
def run
|
28
|
-
add_jetty_libraries
|
29
|
-
add_jetty_config
|
30
|
-
add_war_override
|
31
|
-
classpath_string = classpath.join(config.os_path_separator)
|
32
|
-
java_opts = config.jetty_java_opts.dup
|
33
|
-
java_opts << ' -Xmx128m' unless java_opts =~ /-Xmx/
|
34
|
-
java_opts << " -Djetty.port=#{config.jetty_port}" unless java_opts =~ /jetty.port/
|
35
|
-
cmd = "java #{java_opts} -cp \"#{classpath_string}\" #{jetty_main} #{jetty_config}"
|
36
|
-
puts cmd
|
37
|
-
system(cmd)
|
38
|
-
end
|
39
|
-
|
40
|
-
def add_war_override
|
41
|
-
# always create a new override file, regardless of whether one exists
|
42
|
-
File.open(war_override, 'w') { |out| out << create_war_override }
|
43
|
-
end
|
44
|
-
|
45
|
-
def create_war_override
|
46
|
-
require 'erb'
|
47
|
-
template = <<END_OF_WEB_INF_OVERRIDE
|
48
|
-
<web-app>
|
49
|
-
|
50
|
-
<context-param>
|
51
|
-
<param-name>rails.env</param-name>
|
52
|
-
<param-value><%= config.rails_env_embedded %></param-value>
|
53
|
-
</context-param>
|
54
|
-
|
55
|
-
</web-app>
|
56
|
-
END_OF_WEB_INF_OVERRIDE
|
57
|
-
|
58
|
-
erb = ERB.new(template)
|
59
|
-
erb.result(binding)
|
60
|
-
|
61
|
-
end
|
62
|
-
|
63
|
-
def add_jetty_libraries
|
64
|
-
# Get the Jetty libraries
|
65
|
-
@classpath = []
|
66
|
-
FileUtils.makedirs(jetty_tmp)
|
67
|
-
for lib in config.jetty_libraries.values
|
68
|
-
target = File.join(jetty_tmp, lib.file)
|
69
|
-
unless File.exists?(target)
|
70
|
-
puts "Downloading #{lib.file}..."
|
71
|
-
lib.install(config, target)
|
72
|
-
end
|
73
|
-
@classpath << target
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
def add_jetty_config
|
78
|
-
# Create the configuration
|
79
|
-
jetty_user_config = File.join('config', 'jetty.xml')
|
80
|
-
jetty_config_data = File.read(jetty_user_config) if File.exists?(jetty_user_config)
|
81
|
-
jetty_config_data ||= create_jetty_config
|
82
|
-
File.open(jetty_config, 'w') { |out| out << jetty_config_data }
|
83
|
-
end
|
84
|
-
|
85
|
-
def create_jetty_config
|
86
|
-
require 'erb'
|
87
|
-
template = <<END_OF_JETTY_XML
|
88
|
-
<?xml version="1.0"?>
|
89
|
-
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
|
90
|
-
<Configure id="Server" class="org.mortbay.jetty.Server">
|
91
|
-
|
92
|
-
<Set name="ThreadPool">
|
93
|
-
<New class="org.mortbay.thread.BoundedThreadPool">
|
94
|
-
<Set name="minThreads">10</Set>
|
95
|
-
<Set name="lowThreads">50</Set>
|
96
|
-
<Set name="maxThreads">250</Set>
|
97
|
-
</New>
|
98
|
-
</Set>
|
99
|
-
|
100
|
-
<Call name="addConnector">
|
101
|
-
<Arg>
|
102
|
-
<New class="org.mortbay.jetty.nio.SelectChannelConnector">
|
103
|
-
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
|
104
|
-
<Set name="maxIdleTime">30000</Set>
|
105
|
-
<Set name="Acceptors">2</Set>
|
106
|
-
<Set name="confidentialPort">8443</Set>
|
107
|
-
</New>
|
108
|
-
</Arg>
|
109
|
-
</Call>
|
110
|
-
|
111
|
-
<Set name="handlers">
|
112
|
-
<Array type="org.mortbay.jetty.Handler">
|
113
|
-
<Item>
|
114
|
-
<New class="org.mortbay.jetty.webapp.WebAppContext">
|
115
|
-
<Arg><%= config.staging %></Arg>
|
116
|
-
<Arg>/<%= config.name %></Arg>
|
117
|
-
<Set name="ConfigurationClasses">
|
118
|
-
<Array id="plusConfig" type="java.lang.String">
|
119
|
-
<Item>org.mortbay.jetty.webapp.WebInfConfiguration</Item>
|
120
|
-
<Item>org.mortbay.jetty.plus.webapp.EnvConfiguration</Item>
|
121
|
-
<Item>org.mortbay.jetty.plus.webapp.Configuration</Item>
|
122
|
-
<Item>org.mortbay.jetty.webapp.JettyWebXmlConfiguration</Item>
|
123
|
-
<Item>org.mortbay.jetty.webapp.TagLibConfiguration</Item>
|
124
|
-
</Array>
|
125
|
-
</Set>
|
126
|
-
<Set name="overrideDescriptor"><%= war_override %></Set>
|
127
|
-
</New>
|
128
|
-
</Item>
|
129
|
-
<Item>
|
130
|
-
<New id="DefaultHandler" class="org.mortbay.jetty.handler.DefaultHandler"/>
|
131
|
-
</Item>
|
132
|
-
<Item>
|
133
|
-
<New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
|
134
|
-
</Item>
|
135
|
-
</Array>
|
136
|
-
</Set>
|
137
|
-
|
138
|
-
<Ref id="RequestLog">
|
139
|
-
<Set name="requestLog">
|
140
|
-
<New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
|
141
|
-
<Arg>log/jetty.request.log</Arg>
|
142
|
-
<Set name="append">true</Set>
|
143
|
-
<Set name="extended">false</Set>
|
144
|
-
<Set name="LogTimeZone">GMT</Set>
|
145
|
-
</New>
|
146
|
-
</Set>
|
147
|
-
</Ref>
|
148
|
-
|
149
|
-
<Set name="stopAtShutdown">true</Set>
|
150
|
-
<Set name="sendServerVersion">true</Set>
|
151
|
-
|
152
|
-
</Configure>
|
153
|
-
END_OF_JETTY_XML
|
154
|
-
|
155
|
-
erb = ERB.new(template)
|
156
|
-
erb.result(binding)
|
157
|
-
end
|
158
|
-
|
159
|
-
end #class
|
160
|
-
end #module
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require 'logger'
|
2
|
-
|
3
|
-
module War
|
4
|
-
|
5
|
-
# A wrapper class for the 'logger' ruby lib
|
6
|
-
# logging levels are (default: INFO)
|
7
|
-
# Logger::Severity::DEBUG
|
8
|
-
# Logger::Severity::INFO
|
9
|
-
# Logger::Severity::WARN
|
10
|
-
# Logger::Severity::FATAL
|
11
|
-
# Logger::Severity::UNKNOWN
|
12
|
-
|
13
|
-
class WLog
|
14
|
-
@@logger_inst = Logger.new(STDOUT)
|
15
|
-
#@@logger_inst.level = Logger::Severity::DEBUG
|
16
|
-
@@logger_inst.level = Logger::Severity::INFO
|
17
|
-
|
18
|
-
def self.level=(level_req)
|
19
|
-
@@logger_inst.level = level_req
|
20
|
-
end
|
21
|
-
|
22
|
-
Logger::Severity.constants.each { |level|
|
23
|
-
level.downcase!
|
24
|
-
instance_eval %{
|
25
|
-
def #{level}(text='')
|
26
|
-
@@logger_inst.send("#{level}","#{level}: " + text)
|
27
|
-
end
|
28
|
-
}
|
29
|
-
}
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
|
@@ -1,324 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Configuration for building a war file
|
3
|
-
# By Robert Egglestone
|
4
|
-
# Fausto Lelli
|
5
|
-
#
|
6
|
-
require 'util'
|
7
|
-
|
8
|
-
module War
|
9
|
-
|
10
|
-
|
11
|
-
class Configuration
|
12
|
-
include Singleton
|
13
|
-
|
14
|
-
# the name of the project
|
15
|
-
attr_accessor :name
|
16
|
-
# the path and name of the war_file
|
17
|
-
attr_accessor :war_file
|
18
|
-
# path to the staging directory
|
19
|
-
attr_accessor :staging
|
20
|
-
# a list of patterns of excluded files
|
21
|
-
attr_accessor :excludes
|
22
|
-
# project java libraries are stored here
|
23
|
-
attr_accessor :local_java_lib
|
24
|
-
# servlet to use for running Rails
|
25
|
-
attr_accessor :servlet
|
26
|
-
# enable jndi support?
|
27
|
-
attr_accessor :datasource_jndi
|
28
|
-
attr_accessor :datasource_jndi_name
|
29
|
-
|
30
|
-
# external locations
|
31
|
-
attr_accessor :jruby_home
|
32
|
-
attr_accessor :maven_local_repository
|
33
|
-
attr_accessor :maven_remote_repository
|
34
|
-
|
35
|
-
# compile ruby files? currently only preparses files, but has problems with paths
|
36
|
-
attr_accessor :compile_ruby
|
37
|
-
# keep source if compiling ruby files?
|
38
|
-
attr_accessor :keep_source
|
39
|
-
# if you set this to false gems will fail to load if their dependencies aren't available
|
40
|
-
attr_accessor :add_gem_dependencies
|
41
|
-
# standalone?
|
42
|
-
attr_accessor :standalone
|
43
|
-
# rails environment?
|
44
|
-
attr_accessor :rails_env
|
45
|
-
# rails environment to use when running with an embedded server?
|
46
|
-
attr_accessor :rails_env_embedded
|
47
|
-
|
48
|
-
# files to include in the package
|
49
|
-
attr_accessor :files
|
50
|
-
# java libraries to include in the package
|
51
|
-
attr_accessor :java_libraries
|
52
|
-
# gem libraries to include in the package
|
53
|
-
attr_accessor :gem_libraries
|
54
|
-
# jetty libraries, used for running the war
|
55
|
-
attr_accessor :jetty_libraries
|
56
|
-
|
57
|
-
# the real separator for the operating system
|
58
|
-
attr_accessor :os_separator
|
59
|
-
attr_accessor :os_path_separator
|
60
|
-
|
61
|
-
attr_accessor :jetty_port
|
62
|
-
attr_accessor :jetty_java_opts
|
63
|
-
|
64
|
-
def initialize
|
65
|
-
|
66
|
-
WLog.debug("initializing configuration ...")
|
67
|
-
# default internal locations
|
68
|
-
@staging = RAILS_ROOT
|
69
|
-
@excludes = []
|
70
|
-
@local_java_lib = File.join('lib', 'java')
|
71
|
-
|
72
|
-
# default build properties
|
73
|
-
@compile_ruby = false
|
74
|
-
@keep_source = false
|
75
|
-
@add_gem_dependencies = true
|
76
|
-
@servlet = 'org.jruby.webapp.RailsServlet'
|
77
|
-
@rails_env = 'production'
|
78
|
-
@rails_env_embedded = ENV['RAILS_ENV'] || 'development'
|
79
|
-
@datasource_jndi = false
|
80
|
-
|
81
|
-
home = ENV['HOME'] || ENV['USERPROFILE']
|
82
|
-
@jruby_home = ENV['JRUBY_HOME']
|
83
|
-
@maven_local_repository = ENV['MAVEN2_REPO'] # should be in settings.xml, but I need an override
|
84
|
-
@maven_local_repository ||= File.join(home, '.m2', 'repository') if home
|
85
|
-
@maven_remote_repository = 'http://repo1.maven.org/maven2'
|
86
|
-
|
87
|
-
# configured war name, defaults to the same as the ruby webapp
|
88
|
-
@name = File.basename(File.expand_path(RAILS_ROOT))
|
89
|
-
@war_file = "#{@name}.war"
|
90
|
-
|
91
|
-
@files = {}
|
92
|
-
|
93
|
-
@java_libraries = {}
|
94
|
-
# default java libraries
|
95
|
-
add_library(maven_library('org.jruby', 'jruby-complete', '1.0.3'))
|
96
|
-
add_library(maven_library('org.jruby.extras', 'goldspike', '1.4'))
|
97
|
-
add_library(maven_library('javax.activation', 'activation', '1.1'))
|
98
|
-
add_library(maven_library('commons-pool', 'commons-pool', '1.3'))
|
99
|
-
add_library(maven_library('bouncycastle', 'bcprov-jdk14', '124'))
|
100
|
-
|
101
|
-
# default gems
|
102
|
-
@gem_libraries = {}
|
103
|
-
add_gem('rails', rails_version) unless File.exists?('vendor/rails')
|
104
|
-
add_gem('activerecord-jdbc-adapter') if Dir['vendor/{gems/,}{activerecord-jdbc-adapter,ActiveRecord-JDBC}'].empty?
|
105
|
-
|
106
|
-
# default jetty libraries
|
107
|
-
@jetty_libraries = {}
|
108
|
-
add_jetty_library(maven_library('org.mortbay.jetty', 'start', '6.1.1'))
|
109
|
-
add_jetty_library(maven_library('org.mortbay.jetty', 'jetty', '6.1.1'))
|
110
|
-
add_jetty_library(maven_library('org.mortbay.jetty', 'jetty-util', '6.1.1'))
|
111
|
-
add_jetty_library(maven_library('org.mortbay.jetty', 'servlet-api-2.5', '6.1.1'))
|
112
|
-
add_jetty_library(maven_library('org.mortbay.jetty', 'jetty-plus', '6.1.1'))
|
113
|
-
add_jetty_library(maven_library('org.mortbay.jetty', 'jetty-naming', '6.1.1'))
|
114
|
-
|
115
|
-
# default jetty settings
|
116
|
-
@jetty_port = 8080
|
117
|
-
@jetty_java_opts = ENV['JAVA_OPTS'] || ''
|
118
|
-
|
119
|
-
# separators
|
120
|
-
if RUBY_PLATFORM =~ /(mswin)|(cygwin)/i # watch out for darwin
|
121
|
-
@os_separator = '\\'
|
122
|
-
@os_path_separator = ';'
|
123
|
-
elsif RUBY_PLATFORM =~ /java/i
|
124
|
-
@os_separator = java.io.File.separator
|
125
|
-
@os_path_separator = java.io.File.pathSeparator
|
126
|
-
else
|
127
|
-
@os_separator = File::SEPARATOR
|
128
|
-
@os_path_separator = File::PATH_SEPARATOR
|
129
|
-
end
|
130
|
-
|
131
|
-
# load user configuration
|
132
|
-
WLog.debug("loading user configuration ...")
|
133
|
-
load_user_configuration
|
134
|
-
end # initialize
|
135
|
-
|
136
|
-
def exclude_files(pattern)
|
137
|
-
@excludes << pattern
|
138
|
-
end
|
139
|
-
|
140
|
-
def datasource_jndi_name
|
141
|
-
@datasource_jndi_name || "jdbc/#{name}"
|
142
|
-
end
|
143
|
-
|
144
|
-
# Get the rails version from environment.rb, or default to the latest version
|
145
|
-
# This can be overriden by using add_gem 'rails', ...
|
146
|
-
def rails_version
|
147
|
-
environment_without_comments = IO.readlines(File.join('config', 'environment.rb')).reject { |l| l =~ /^#/ }.join
|
148
|
-
environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/
|
149
|
-
version = $1
|
150
|
-
version ? "= #{version}" : nil
|
151
|
-
end
|
152
|
-
|
153
|
-
def load_user_configuration
|
154
|
-
user_config = ENV['WAR_CONFIG'] || File.join(RAILS_ROOT, 'config', 'war.rb')
|
155
|
-
if File.exists?(user_config)
|
156
|
-
begin
|
157
|
-
War::Configuration::DSL.evaluate(user_config, self)
|
158
|
-
rescue => e
|
159
|
-
puts e.backtrace.join("\n")
|
160
|
-
WLog.error("Error reading user configuration (#{e.message}), using defaults")
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
def java_library(name, version)
|
166
|
-
WLog.debug("add java library : " + name + " " + version)
|
167
|
-
# check local sources first, then the list
|
168
|
-
JavaLibrary.new(name, version, self)
|
169
|
-
end
|
170
|
-
|
171
|
-
def maven_library(group, name, version)
|
172
|
-
WLog.debug("add maven library : " + group + " " + name + " " + version)
|
173
|
-
#locations = maven_locations(group, name, version)
|
174
|
-
MavenLibrary.new(group, name, version, self)
|
175
|
-
end
|
176
|
-
|
177
|
-
def add_library(lib)
|
178
|
-
@java_libraries[lib.name] = lib
|
179
|
-
end
|
180
|
-
|
181
|
-
def add_file(name, info)
|
182
|
-
@files[name] = {:location => "war/#{name}", :directory => :classes }.merge(info)
|
183
|
-
end
|
184
|
-
|
185
|
-
def add_jetty_library(lib)
|
186
|
-
@jetty_libraries[lib.name] = lib
|
187
|
-
end
|
188
|
-
|
189
|
-
def add_gem(name, match_version=nil)
|
190
|
-
@gem_libraries[name] = match_version
|
191
|
-
end
|
192
|
-
|
193
|
-
def remove_gem(name)
|
194
|
-
@gem_libraries.delete(name)
|
195
|
-
end
|
196
|
-
|
197
|
-
|
198
|
-
# This class is responsable for loading the war.rb dsl and parsing it to
|
199
|
-
# evaluated War::Configuration
|
200
|
-
# <note>will need to readjust this package impl </note>
|
201
|
-
class DSL
|
202
|
-
|
203
|
-
# saves internally the parsed result
|
204
|
-
attr_accessor :result
|
205
|
-
|
206
|
-
def initialize (configuration)
|
207
|
-
@result = configuration
|
208
|
-
end
|
209
|
-
|
210
|
-
# method hook for name property
|
211
|
-
def war_file(*val)
|
212
|
-
WLog.warn "property 'war_file' takes only one argument" if val.size > 1
|
213
|
-
@result.war_file = val[0]
|
214
|
-
end
|
215
|
-
|
216
|
-
def exclude_files(*val)
|
217
|
-
WLog.warn "property 'exclude_files' takes only one argument" if val.size > 1
|
218
|
-
@result.exclude_files(val[0])
|
219
|
-
end
|
220
|
-
|
221
|
-
def servlet(*val)
|
222
|
-
WLog.warn "property 'servlet' takes only one argument" if val.size > 1
|
223
|
-
@result.servlet = val[0]
|
224
|
-
end
|
225
|
-
|
226
|
-
def compile_ruby(*val)
|
227
|
-
WLog.warn "property 'compile_ruby' takes only one argument" if val.size > 1
|
228
|
-
unless is_either_true_or_false?(val[0])
|
229
|
-
WLog.warn "property 'compile_ruby' must be either true or false"
|
230
|
-
return
|
231
|
-
end
|
232
|
-
@result.compile_ruby = val[0]
|
233
|
-
end
|
234
|
-
|
235
|
-
def add_gem_dependencies(*val)
|
236
|
-
WLog.warn "property 'add_gem_dependencies' takes only one argument" if val.size > 1
|
237
|
-
unless is_either_true_or_false?(val[0])
|
238
|
-
WLog.warn "property 'add_gem_dependencies' must be either true or false"
|
239
|
-
return
|
240
|
-
end
|
241
|
-
@result.add_gem_dependencies = val[0]
|
242
|
-
end
|
243
|
-
|
244
|
-
def keep_source(*val)
|
245
|
-
WLog.warn "property 'keep_source' takes only one argument" if val.size > 1
|
246
|
-
unless is_either_true_or_false?(val[0])
|
247
|
-
WLog.warn "property 'keep_source' must be either true or false"
|
248
|
-
return
|
249
|
-
end
|
250
|
-
@result.keep_source = val[0]
|
251
|
-
end
|
252
|
-
|
253
|
-
def add_file(name, config={})
|
254
|
-
@result.add_file(name, config)
|
255
|
-
end
|
256
|
-
|
257
|
-
def add_gem(*val)
|
258
|
-
WLog.warn "add_gem takes at most two arguments" if val.size > 2
|
259
|
-
@result.add_gem(val[0], val[1])
|
260
|
-
end
|
261
|
-
|
262
|
-
def datasource_jndi(*val)
|
263
|
-
WLog.warn "property 'datasource_jndi' takes only one argument" if val.size > 1
|
264
|
-
unless is_either_true_or_false?(val[0])
|
265
|
-
WLog.warn "property 'datasource_jndi' must be either true or false"
|
266
|
-
return
|
267
|
-
end
|
268
|
-
@result.datasource_jndi = val[0]
|
269
|
-
end
|
270
|
-
|
271
|
-
def datasource_jndi_name(*val)
|
272
|
-
WLog.warn "datasource_jndi_name takes at most one argument" if val.size > 1
|
273
|
-
@result.datasource_jndi_name = val[0]
|
274
|
-
end
|
275
|
-
|
276
|
-
def staging(*val)
|
277
|
-
puts "Warning: staging takes only one argument" if val.size > 1
|
278
|
-
@result.staging = val[0]
|
279
|
-
end
|
280
|
-
|
281
|
-
# method hook for library property
|
282
|
-
def include_library(name, version)
|
283
|
-
begin
|
284
|
-
@result.add_library(@result.java_library(name, version))
|
285
|
-
rescue
|
286
|
-
WLog.warn "couldn't load library #{name}-#{version}.jar, check library definition in the config file"
|
287
|
-
WLog.debug $!
|
288
|
-
end
|
289
|
-
end
|
290
|
-
|
291
|
-
# method hook for maven library property
|
292
|
-
def maven_library(group, name, version)
|
293
|
-
begin
|
294
|
-
@result.add_library(@result.maven_library(group, name, version))
|
295
|
-
rescue
|
296
|
-
WLog.warn "couldn't load maven library #{name}, check library definition in the config file"
|
297
|
-
WLog.debug $!
|
298
|
-
end
|
299
|
-
end
|
300
|
-
|
301
|
-
# method hook for default behaviour when an unknown property
|
302
|
-
# is met in the dsl. By now, just ignore it and print a warning
|
303
|
-
# message
|
304
|
-
def method_missing(name, *args)
|
305
|
-
WLog.warn "property '#{name}' in config file not defined, ignoring it ..."
|
306
|
-
end
|
307
|
-
|
308
|
-
# main parsing method. pass the file name for the dsl and the configuration
|
309
|
-
# reference to evaluate against.
|
310
|
-
def self.evaluate(filename, configuration)
|
311
|
-
raise "file #{filename} not found " unless File.exists?(filename)
|
312
|
-
dsl = new(configuration)
|
313
|
-
dsl.instance_eval(File.read(filename) , filename)
|
314
|
-
dsl
|
315
|
-
end
|
316
|
-
|
317
|
-
# utility
|
318
|
-
def is_either_true_or_false?(obj)
|
319
|
-
obj.class == TrueClass or obj.class == FalseClass
|
320
|
-
end
|
321
|
-
end #class DSL
|
322
|
-
|
323
|
-
end #class
|
324
|
-
end #module
|