Antwrap 0.1
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/COPYING +504 -0
- data/README +13 -0
- data/lib/antwrap.rb +183 -0
- data/lib/convert.rb +84 -0
- data/test/output/META-INF/MANIFEST.MF +3 -0
- data/test/output/parent/FooBarParent.class +0 -0
- data/test/tc_antwrap.rb +208 -0
- data/test/tc_convert.rb +34 -0
- data/test/test-resources/build.xml +310 -0
- data/test/test-resources/foo.txt +0 -0
- data/test/test-resources/foo.zip +0 -0
- data/test/test-resources/parent-src/parent/FooBarParent.java +19 -0
- data/test/test-resources/parent.jar +0 -0
- data/test/test-resources/src/foo/bar/FooBar.java +26 -0
- data/test/test-resources/src/foo/bar/baz/FooBarBaz.java +7 -0
- metadata +64 -0
data/README
ADDED
data/lib/antwrap.rb
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
# antwrap
|
2
|
+
#
|
3
|
+
# Copyright Caleb Powell 2007
|
4
|
+
#
|
5
|
+
# Licensed under the LGPL, see the file COPYING in the distribution
|
6
|
+
#
|
7
|
+
require 'fileutils'
|
8
|
+
require 'logger'
|
9
|
+
require 'java'
|
10
|
+
|
11
|
+
module ApacheAnt
|
12
|
+
include_class "org.apache.tools.ant.UnknownElement"
|
13
|
+
include_class "org.apache.tools.ant.RuntimeConfigurable"
|
14
|
+
include_class "org.apache.tools.ant.Project"
|
15
|
+
include_class "org.apache.tools.ant.DefaultLogger"
|
16
|
+
end
|
17
|
+
|
18
|
+
module JavaLang
|
19
|
+
include_class "java.lang.System"
|
20
|
+
end
|
21
|
+
|
22
|
+
@@log = Logger.new(STDOUT)
|
23
|
+
@@log.level = Logger::DEBUG
|
24
|
+
|
25
|
+
class AntTask
|
26
|
+
private
|
27
|
+
@@task_stack = Array.new
|
28
|
+
attr_reader :unknown_element, :project, :taskname
|
29
|
+
|
30
|
+
public
|
31
|
+
def initialize(taskname, project, attributes, proc)
|
32
|
+
@taskname = taskname
|
33
|
+
@project = project
|
34
|
+
@unknown_element = ApacheAnt::UnknownElement.new(taskname)
|
35
|
+
@unknown_element.project= project
|
36
|
+
@unknown_element.namespace= ''
|
37
|
+
@unknown_element.QName= taskname
|
38
|
+
@unknown_element.taskType= taskname
|
39
|
+
@unknown_element.taskName= taskname
|
40
|
+
|
41
|
+
wrapper = ApacheAnt::RuntimeConfigurable.new(@unknown_element, @unknown_element.getTaskName());
|
42
|
+
attributes.each do |key, val|
|
43
|
+
if(key.to_s != 'pcdata')
|
44
|
+
wrapper.setAttribute(key.to_s, val)
|
45
|
+
else
|
46
|
+
wrapper.addText(val)
|
47
|
+
end
|
48
|
+
end unless attributes == nil
|
49
|
+
|
50
|
+
if proc
|
51
|
+
@@log.debug("task_stack.push #{taskname} >> #{@@task_stack}")
|
52
|
+
@@task_stack.push self
|
53
|
+
|
54
|
+
singleton_class = class << proc; self; end
|
55
|
+
singleton_class.module_eval{
|
56
|
+
def method_missing(m, *a, &proc)
|
57
|
+
@@task_stack.last().send(m, *a, &proc)
|
58
|
+
end
|
59
|
+
}
|
60
|
+
proc.instance_eval &proc
|
61
|
+
@@task_stack.pop
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def method_missing(sym, *args)
|
66
|
+
@@log.debug("AntTask.method_missing sym[#{sym.to_s}]")
|
67
|
+
begin
|
68
|
+
proc = block_given? ? Proc.new : nil
|
69
|
+
self.add(AntTask.new(sym.to_s, project, args[0], proc))
|
70
|
+
rescue StandardError
|
71
|
+
@@log.error("AntTask.method_missing error:" + $!)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def add(child)
|
76
|
+
@@log.debug("adding child[#{child.unknown_element().getTaskName()}] to [#{@unknown_element.getTaskName()}]")
|
77
|
+
@unknown_element.addChild(child.unknown_element())
|
78
|
+
@unknown_element.getRuntimeConfigurableWrapper().addChild(child.unknown_element().getRuntimeConfigurableWrapper())
|
79
|
+
end
|
80
|
+
|
81
|
+
def execute
|
82
|
+
@unknown_element.maybeConfigure
|
83
|
+
@unknown_element.execute
|
84
|
+
@executed = true
|
85
|
+
end
|
86
|
+
|
87
|
+
def was_executed?
|
88
|
+
@executed
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
class AntProject
|
93
|
+
|
94
|
+
attr :project, false
|
95
|
+
attr :declarative, true
|
96
|
+
|
97
|
+
def initialize(name='', default='', basedir='',declarative=true)
|
98
|
+
@project= ApacheAnt::Project.new
|
99
|
+
@project.name= name
|
100
|
+
@project.default= default
|
101
|
+
@project.basedir= basedir
|
102
|
+
@project.init
|
103
|
+
self.declarative= declarative
|
104
|
+
default_logger = ApacheAnt::DefaultLogger.new
|
105
|
+
default_logger.messageOutputLevel= 2
|
106
|
+
default_logger.outputPrintStream= JavaLang::System.out
|
107
|
+
default_logger.errorPrintStream= JavaLang::System.err
|
108
|
+
default_logger.emacsMode= false
|
109
|
+
@project.addBuildListener default_logger
|
110
|
+
end
|
111
|
+
|
112
|
+
def create_task(taskname, attributes, proc)
|
113
|
+
task = AntTask.new(taskname, project(), attributes, proc)
|
114
|
+
task.execute if declarative
|
115
|
+
if taskname == 'macrodef'
|
116
|
+
@@log.debug("Pushing #{attributes[:name]} to tasks")
|
117
|
+
@@tasks.push(attributes[:name])
|
118
|
+
end
|
119
|
+
task
|
120
|
+
end
|
121
|
+
|
122
|
+
def method_missing(sym, *args)
|
123
|
+
if(@@tasks.include?(sym.to_s) || @@types.include?(sym.to_s))
|
124
|
+
begin
|
125
|
+
@@log.info("AntProject.method_missing sym[#{sym.to_s}]")
|
126
|
+
proc = block_given? ? Proc.new : nil
|
127
|
+
return create_task(sym.to_s, args[0], proc)
|
128
|
+
rescue
|
129
|
+
@@log.error("Error instantiating task[#{sym.to_s}]" + $!)
|
130
|
+
end
|
131
|
+
else
|
132
|
+
@@log.error("Not an Ant Task[#{sym.to_s}]")
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
#overridden. 'mkdir' conflicts wth the rake library.
|
137
|
+
def mkdir(attributes)
|
138
|
+
create_task('mkdir', attributes, (block_given? ? Proc.new : nil))
|
139
|
+
end
|
140
|
+
|
141
|
+
#overridden. 'copy' conflicts wth the rake library.
|
142
|
+
def copy(attributes)
|
143
|
+
create_task('copy', attributes, (block_given? ? Proc.new : nil))
|
144
|
+
end
|
145
|
+
|
146
|
+
#overridden. 'java' conflicts wth the JRuby library.
|
147
|
+
def jvm(attributes)
|
148
|
+
create_task('java', attributes, (block_given? ? Proc.new : nil))
|
149
|
+
end
|
150
|
+
|
151
|
+
@@tasks = [
|
152
|
+
# standard ant tasks
|
153
|
+
'mkdir', 'javac', 'chmod', 'delete', 'copy', 'move', 'jar', 'rmic', 'cvs', 'get', 'unzip',
|
154
|
+
'unjar', 'unwar', 'echo', 'javadoc', 'zip', 'gzip', 'gunzip', 'replace', 'java', 'tstamp', 'property',
|
155
|
+
'xmlproperty', 'taskdef', 'ant', 'exec', 'tar', 'untar', 'available', 'filter', 'fixcrlf', 'patch',
|
156
|
+
'style', 'xslt', 'touch', 'signjar', 'genkey', 'antstructure', 'execon', 'antcall', 'sql', 'mail',
|
157
|
+
'fail', 'war', 'uptodate', 'apply', 'record', 'cvspass', 'typedef', 'sleep', 'pathconvert', 'ear',
|
158
|
+
'parallel', 'sequential', 'condition', 'dependset', 'bzip2', 'bunzip2', 'checksum', 'waitfor', 'input',
|
159
|
+
'loadfile', 'manifest', 'loadproperties', 'basename', 'dirname', 'cvschangelog', 'cvsversion', 'buildnumber',
|
160
|
+
'concat', 'cvstagdiff', 'tempfile', 'import', 'whichresource', 'subant', 'sync', 'defaultexcludes', 'presetdef',
|
161
|
+
'macrodef', 'nice', 'length',
|
162
|
+
# optional tasks
|
163
|
+
'image', 'script', 'netrexxc', 'renameext', 'ejbc', 'ddcreator', 'wlrun', 'wlstop', 'vssadd', 'vsscheckin', 'vsscheckout',
|
164
|
+
'vsscp', 'vsscreate', 'vssget', 'vsshistory', 'vsslabel', 'ejbjar', 'mparse', 'mmetrics', 'maudit', 'junit', 'cab',
|
165
|
+
'ftp', 'icontract', 'javacc', 'jjdoc', 'jjtree', 'stcheckout', 'stcheckin', 'stlabel', 'stlist', 'wljspc', 'jlink',
|
166
|
+
'native2ascii', 'propertyfile', 'depend', 'antlr', 'vajload', 'vajexport', 'vajimport', 'telnet', 'csc', 'ilasm',
|
167
|
+
'WsdlToDotnet', 'wsdltodotnet', 'importtypelib', 'stylebook', 'test', 'pvcs', 'p4change', 'p4delete', 'p4label', 'p4labelsync',
|
168
|
+
'p4have', 'p4sync', 'p4edit', 'p4integrate', 'p4resolve', 'p4submit', 'p4counter', 'p4revert', 'p4reopen', 'p4fstat', 'javah',
|
169
|
+
'ccupdate', 'cccheckout', 'cccheckin', 'ccuncheckout', 'ccmklbtype', 'ccmklabel', 'ccrmtype', 'cclock', 'ccunlock', 'ccmkbl',
|
170
|
+
'ccmkattr', 'ccmkelem', 'ccmkdir', 'sound', 'junitreport', 'blgenclient', 'rpm', 'xmlvalidate', 'iplanet-ejbc', 'jdepend',
|
171
|
+
'mimemail', 'ccmcheckin', 'ccmcheckout', 'ccmcheckintask', 'ccmreconfigure', 'ccmcreatetask', 'jpcoverage', 'jpcovmerge',
|
172
|
+
'jpcovreport', 'p4add', 'jspc', 'replaceregexp', 'translate', 'sosget', 'soscheckin','soscheckout','soslabel', 'echoproperties',
|
173
|
+
'splash', 'serverdeploy', 'jarlib-display', 'jarlib-manifest', 'jarlib-available', 'jarlib-resolve', 'setproxy', 'vbc', 'symlink',
|
174
|
+
'chgrp', 'chown', 'attrib', 'scp', 'sshexec', 'jsharpc', 'rexec', 'scriptdef', 'ildasm',
|
175
|
+
# deprecated ant tasks (kept for back compatibility)
|
176
|
+
'starteam', 'javadoc2', 'copydir', 'copyfile', 'deltree', 'rename']
|
177
|
+
|
178
|
+
@@types = [ 'classfileset', 'description', 'dirset', 'filelist', 'fileset', 'filterchain', 'filterreader', 'filterset', 'mapper', 'redirector',
|
179
|
+
'identitymapper', 'flattenmapper', 'globmapper', 'mergemapper', 'regexpmapper', 'packagemapper', 'unpackagemapper', 'compositemapper',
|
180
|
+
'chainedmapper', 'filtermapper', 'path', 'patternset', 'regexp', 'substitution', 'xmlcatalog', 'extensionSet', 'extension', 'libfileset',
|
181
|
+
'selector', 'zipfileset', 'scriptfilter', 'propertyset', 'assertions', 'concatfilter', 'isfileselected' ]
|
182
|
+
|
183
|
+
end
|
data/lib/convert.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# antwrap
|
2
|
+
#
|
3
|
+
# Copyright Caleb Powell 2007
|
4
|
+
#
|
5
|
+
# Licensed under the LGPL, see the file COPYING in the distribution
|
6
|
+
#
|
7
|
+
require 'rexml/document'
|
8
|
+
@outfile = File.new('/Users/caleb/projects/antwrap/test/output/Rakefile.rb', 'w+')
|
9
|
+
xml = REXML::Document.new(File.open('/Users/caleb/projects/antwrap/test/test-resources/build.xml'))
|
10
|
+
|
11
|
+
|
12
|
+
def create_symbol(str)
|
13
|
+
str = rubyize(str)
|
14
|
+
return str.gsub(/(\w*[^,\s])/, ':\1')
|
15
|
+
end
|
16
|
+
def rubyize(str)
|
17
|
+
if (str == nil)
|
18
|
+
str = ''
|
19
|
+
else
|
20
|
+
str = str.gsub(/(\w*)[\-|\.](\w*)/, '\1_\2')
|
21
|
+
end
|
22
|
+
return str
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
@outfile.print "require_gem 'Antwrap'\n"
|
27
|
+
@outfile.print "@ant = AntProject.new()\n"
|
28
|
+
@one_tab= ' '
|
29
|
+
def print_task(task, tab=@one_tab, prefix='')
|
30
|
+
task_name = rubyize(task.name)
|
31
|
+
@outfile.print "#{tab}#{prefix}#{task_name}("
|
32
|
+
|
33
|
+
if(task_name == 'macrodef')
|
34
|
+
task.attributes['name'] = rubyize(task.attributes['name'])
|
35
|
+
end
|
36
|
+
isFirst = true;
|
37
|
+
task.attributes.each do |key, value|
|
38
|
+
if !isFirst
|
39
|
+
@outfile.print(",\n#{tab+@one_tab}")
|
40
|
+
end
|
41
|
+
@outfile.print ":#{key} => \"#{value}\""
|
42
|
+
isFirst = false;
|
43
|
+
end
|
44
|
+
|
45
|
+
if task.has_text?
|
46
|
+
pcdata = task.texts().join
|
47
|
+
if(pcdata.strip() != '')
|
48
|
+
@outfile.print ":pcdata => \"#{pcdata}\""
|
49
|
+
end
|
50
|
+
end
|
51
|
+
@outfile.print ")"
|
52
|
+
|
53
|
+
|
54
|
+
if task.elements.size > 0
|
55
|
+
@outfile.print "{"
|
56
|
+
task.elements.each do |child|
|
57
|
+
@outfile.print "\n"
|
58
|
+
print_task(child, (tab+@one_tab), '')
|
59
|
+
end
|
60
|
+
@outfile.print "\n#{tab}}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
xml.elements.each("/project/*") do |node|
|
65
|
+
if node.name != 'target'
|
66
|
+
print_task(node, '', '@ant.')
|
67
|
+
@outfile.print "\n\n"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
xml.elements.each("/project/target") do |node|
|
72
|
+
|
73
|
+
task = "\ntask " + create_symbol(node.attributes['name']) +
|
74
|
+
" => [" + create_symbol(node.attributes['depends']) + "] do\n"
|
75
|
+
|
76
|
+
@outfile.print task
|
77
|
+
|
78
|
+
node.elements.each do |child|
|
79
|
+
print_task(child, @one_tab, '@ant.')
|
80
|
+
@outfile.print "\n"
|
81
|
+
end
|
82
|
+
@outfile.print "end\n"
|
83
|
+
end
|
84
|
+
|
Binary file
|
data/test/tc_antwrap.rb
ADDED
@@ -0,0 +1,208 @@
|
|
1
|
+
# antwrap
|
2
|
+
#
|
3
|
+
# Copyright Caleb Powell 2007
|
4
|
+
#
|
5
|
+
# Licensed under the LGPL, see the file COPYING in the distribution
|
6
|
+
#
|
7
|
+
require 'test/unit'
|
8
|
+
require 'fileutils'
|
9
|
+
require '../lib/antwrap.rb'
|
10
|
+
|
11
|
+
class TestAntwrap < Test::Unit::TestCase
|
12
|
+
|
13
|
+
def setup
|
14
|
+
# ENV is broken as of JRuby 0.9.2 but patched in 0.9.3 (see: http://jira.codehaus.org/browse/JRUBY-349)
|
15
|
+
# @output_dir = ENV['PWD'] + '/output'
|
16
|
+
# @resource_dir = ENV['PWD'] + '/test-resources'
|
17
|
+
# The following is a workaround
|
18
|
+
current_dir = Java::java.lang.System.getProperty("user.dir")
|
19
|
+
@ant = AntProject.new("testProject", "", current_dir, true)
|
20
|
+
@output_dir = current_dir + '/test/output'
|
21
|
+
@resource_dir = current_dir + '/test/test-resources'
|
22
|
+
|
23
|
+
if File.exists?(@output_dir)
|
24
|
+
FileUtils.remove_dir(@output_dir)
|
25
|
+
end
|
26
|
+
FileUtils.mkdir(@output_dir, :mode => 0775)
|
27
|
+
end
|
28
|
+
|
29
|
+
def teardown
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_unzip_task
|
34
|
+
assert_absent @output_dir + '/parent/FooBarParent.class'
|
35
|
+
task = @ant.unzip(:src => @resource_dir + '/parent.jar',
|
36
|
+
:dest => @output_dir)
|
37
|
+
|
38
|
+
assert_exists @output_dir + '/parent/FooBarParent.class'
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_copyanddelete_task
|
42
|
+
file = @output_dir + '/foo.txt'
|
43
|
+
assert_absent file
|
44
|
+
@ant.copy(:file => @resource_dir + '/foo.txt',
|
45
|
+
:todir => @output_dir)
|
46
|
+
assert_exists file
|
47
|
+
|
48
|
+
@ant.delete(:file => file)
|
49
|
+
assert_absent file
|
50
|
+
end
|
51
|
+
|
52
|
+
# <javac srcdir='${src}'
|
53
|
+
# destdir='${build}'
|
54
|
+
# classpath='xyz.jar'
|
55
|
+
# debug='on'
|
56
|
+
# source='1.4'/>
|
57
|
+
def test_javac_task
|
58
|
+
FileUtils.mkdir(@output_dir + '/classes', :mode => 0775)
|
59
|
+
|
60
|
+
assert_absent @output_dir + '/classes/foo/bar/FooBar.class'
|
61
|
+
|
62
|
+
@ant.javac(:srcdir => @resource_dir + '/src',
|
63
|
+
:destdir => @output_dir + '/classes',
|
64
|
+
:debug => 'on',
|
65
|
+
:verbose => 'no',
|
66
|
+
:fork => 'no',
|
67
|
+
:failonerror => 'yes',
|
68
|
+
:includes => 'foo/bar/**',
|
69
|
+
:excludes => 'foo/bar/baz/**',
|
70
|
+
:classpath => @resource_dir + '/parent.jar')
|
71
|
+
|
72
|
+
assert_exists @output_dir + '/classes/foo/bar/FooBar.class'
|
73
|
+
assert_absent @output_dir + '/classes/foo/bar/baz/FooBarBaz.class'
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_javac_task_with_property
|
77
|
+
FileUtils.mkdir(@output_dir + '/classes', :mode => 0775)
|
78
|
+
|
79
|
+
assert_absent @output_dir + '/classes/foo/bar/FooBar.class'
|
80
|
+
# <path id="common.class.path">
|
81
|
+
# <fileset dir="${common.dir}/lib">
|
82
|
+
# <include name="**/*.jar"/>
|
83
|
+
# </fileset>
|
84
|
+
# <pathelement location="${common.classes}"/>
|
85
|
+
# </path>
|
86
|
+
@ant.property(:name => 'pattern', :value => '**/*.jar')
|
87
|
+
@ant.property(:name => 'resource_dir', :value => @resource_dir)
|
88
|
+
@ant.path(:id => 'common.class.path'){
|
89
|
+
fileset(:dir => '${resource_dir}'){
|
90
|
+
include(:name => '${pattern}')
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
@ant.javac(:srcdir => @resource_dir + '/src',
|
95
|
+
:destdir => @output_dir + '/classes',
|
96
|
+
:debug => 'on',
|
97
|
+
:verbose => 'no',
|
98
|
+
:fork => 'no',
|
99
|
+
:failonerror => 'yes',
|
100
|
+
:includes => 'foo/bar/**',
|
101
|
+
:excludes => 'foo/bar/baz/**',
|
102
|
+
:classpathref => 'common.class.path')
|
103
|
+
|
104
|
+
assert_exists @output_dir + '/classes/foo/bar/FooBar.class'
|
105
|
+
assert_absent @output_dir + '/classes/foo/bar/baz/FooBarBaz.class'
|
106
|
+
end
|
107
|
+
|
108
|
+
# <jar destfile='${dist}/lib/app.jar' basedir='${build}/classes'/>
|
109
|
+
def test_jar_task
|
110
|
+
assert_absent @output_dir + '/Foo.jar'
|
111
|
+
@ant.property(:name => 'outputdir', :value => @output_dir)
|
112
|
+
@ant.property(:name => 'destfile', :value => '${outputdir}/Foo.jar')
|
113
|
+
@ant.jar( :destfile => "${destfile}",
|
114
|
+
:basedir => @resource_dir + '/src',
|
115
|
+
:level => '9',
|
116
|
+
:duplicate => 'preserve')
|
117
|
+
|
118
|
+
assert_exists @output_dir + '/Foo.jar'
|
119
|
+
end
|
120
|
+
|
121
|
+
# <java classname="test.Main">
|
122
|
+
# <arg value="-h"/>
|
123
|
+
# <classpath>
|
124
|
+
# <pathelement location="dist/test.jar"/>
|
125
|
+
# <pathelement path="${java.class.path}"/>
|
126
|
+
# </classpath>
|
127
|
+
# </java>
|
128
|
+
def test_java_task
|
129
|
+
FileUtils.mkdir(@output_dir + '/classes', :mode => 0775)
|
130
|
+
@ant.javac(:srcdir => @resource_dir + '/src',
|
131
|
+
:destdir => @output_dir + '/classes',
|
132
|
+
:debug => 'on',
|
133
|
+
:verbose => 'no',
|
134
|
+
:fork => 'no',
|
135
|
+
:failonerror => 'yes',
|
136
|
+
:includes => 'foo/bar/**',
|
137
|
+
:excludes => 'foo/bar/baz/**',
|
138
|
+
:classpath => @resource_dir + '/parent.jar')
|
139
|
+
|
140
|
+
@ant.property(:name => 'output_dir', :value => @output_dir)
|
141
|
+
@ant.property(:name => 'resource_dir', :value =>@resource_dir)
|
142
|
+
@ant.jvm(:classname => 'foo.bar.FooBar', :fork => 'no') {
|
143
|
+
arg(:value => 'argOne')
|
144
|
+
classpath(){
|
145
|
+
pathelement(:location => '${output_dir}/classes')
|
146
|
+
pathelement(:location => '${resource_dir}/parent.jar')
|
147
|
+
}
|
148
|
+
arg(:value => 'argTwo')
|
149
|
+
jvmarg(:value => 'server')
|
150
|
+
sysproperty(:key=> 'antwrap', :value => 'coolio')
|
151
|
+
}
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_echo_task
|
155
|
+
@ant.echo(:message => "Antwrap is running an Echo task", :level => 'info')
|
156
|
+
end
|
157
|
+
|
158
|
+
def test_mkdir_task
|
159
|
+
dir = @output_dir + '/foo'
|
160
|
+
|
161
|
+
assert_absent dir
|
162
|
+
|
163
|
+
@ant.mkdir(:dir => dir)
|
164
|
+
|
165
|
+
assert_exists dir
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_mkdir_task_with_property
|
169
|
+
dir = @output_dir + '/foo'
|
170
|
+
|
171
|
+
assert_absent dir
|
172
|
+
|
173
|
+
@ant.property(:name => 'outputProperty', :value => dir)
|
174
|
+
@ant.mkdir(:dir => "${outputProperty}")
|
175
|
+
|
176
|
+
assert_exists dir
|
177
|
+
end
|
178
|
+
|
179
|
+
def test_macrodef_task
|
180
|
+
dir = @output_dir + '/foo'
|
181
|
+
|
182
|
+
assert_absent dir
|
183
|
+
|
184
|
+
@ant.macrodef(:name => 'testmacrodef'){
|
185
|
+
attribute(:name => 'destination')
|
186
|
+
sequential(){
|
187
|
+
echo(:message => "Creating @{destination}")
|
188
|
+
mkdir(:dir => "@{destination}")
|
189
|
+
}
|
190
|
+
}
|
191
|
+
@ant.testmacrodef(:destination => dir)
|
192
|
+
assert_exists dir
|
193
|
+
|
194
|
+
end
|
195
|
+
|
196
|
+
def test_cdata
|
197
|
+
@ant.echo(:pcdata => "Foobar & <><><>")
|
198
|
+
end
|
199
|
+
|
200
|
+
private
|
201
|
+
def assert_exists(file_path)
|
202
|
+
assert(File.exists?(file_path), "Does not exist[#{file_path}]")
|
203
|
+
end
|
204
|
+
|
205
|
+
def assert_absent(file_path)
|
206
|
+
assert(!File.exists?(file_path), "Should not exist[#{file_path}]")
|
207
|
+
end
|
208
|
+
end
|