klaas1979-ivy4r 0.1.0

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.
File without changes
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://www.ivyrep.org/ivy-doc.xsl"?>
3
+ <ivy-module version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd">
5
+
6
+ <info organisation="blau" module="p1" revision="1.0" />
7
+ </ivy-module>
File without changes
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://www.ivyrep.org/ivy-doc.xsl"?>
3
+ <ivy-module version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd">
5
+
6
+ <info organisation="blau" module="p2" revision="1.1" />
7
+
8
+ <dependencies>
9
+ <dependency org="blau" name="p1" rev="1.0" conf="*->default" />
10
+ </dependencies>
11
+ </ivy-module>
File without changes
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://www.ivyrep.org/ivy-doc.xsl"?>
3
+ <ivy-module version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd">
5
+
6
+ <info organisation="blau" module="p3" revision="1.1" />
7
+
8
+ <dependencies>
9
+ <dependency org="blau" name="p2" rev="1.1" conf="*->default" />
10
+ </dependencies>
11
+ </ivy-module>
@@ -0,0 +1,11 @@
1
+ <ivysettings>
2
+ <property name="myparam" value="myvalue" />
3
+ <settings defaultCache="/tmp" defaultResolver="ibiblio" checkUpToDate="false" />
4
+ <resolvers>
5
+ <ibiblio name="ibiblio" />
6
+ <filesystem name="internal">
7
+ <ivy pattern="/tmp/[module]/ivy-[revision].xml" />
8
+ <artifact pattern="/tmp/[module]/[artifact]-[revision].[ext]" />
9
+ </filesystem>
10
+ </resolvers>
11
+ </ivysettings>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet type="text/xsl" href="http://www.ivyrep.org/ivy-doc.xsl"?>
3
+ <ivy-module version="1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd">
5
+
6
+ <info organisation="blau" module="testmodule" revision="2.20.0" />
7
+
8
+ <configurations defaultconfmapping="client">
9
+ <conf name="deploy" description="Contains the deployable artifacts for the Project." />
10
+ <conf name="reports" description="Contains all buildreports for the Project." />
11
+ <conf name="basic" visibility="private" description="Basic dependencies needed for all configurations."/>
12
+ <conf name="test" extends="basic" visibility="private" description="Only needed for testing of project."/>
13
+ </configurations>
14
+
15
+ <dependencies>
16
+ <dependency org="oro" name="oro" rev="2.0.8" conf="*->default" />
17
+ </dependencies>
18
+ </ivy-module>
@@ -0,0 +1,97 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
+
3
+ require 'test/unit'
4
+ require 'rr'
5
+ require 'ivy/target'
6
+
7
+ class Test::Unit::TestCase
8
+ include RR::Adapters::TestUnit
9
+ end
10
+
11
+ module Ivy
12
+ class TargetTest < Test::Unit::TestCase
13
+
14
+ def setup
15
+ Ivy::Target.send("public", :call_nested)
16
+ @ant = Object.new
17
+ @target = Ivy::Target.new(@ant)
18
+ end
19
+
20
+ def test_call_nested_simple
21
+ nested = {
22
+ :fileset => {
23
+ :includes => 'bla',
24
+ :excludes => 'blub',
25
+ :dir => 'anything'
26
+ }
27
+ }
28
+ mock(@ant).fileset(nested[:fileset])
29
+
30
+ @target.call_nested(nested)
31
+ end
32
+
33
+ def test_call_nested_multiply
34
+ nested = {
35
+ :fileset => {
36
+ :includes => 'bla',
37
+ :excludes => 'blub',
38
+ :dir => 'anything'
39
+ },
40
+ :other => {
41
+ :param => 'myparam'
42
+ }
43
+ }
44
+ mock(@ant).fileset nested[:fileset]
45
+ mock(@ant).other nested[:other]
46
+
47
+ @target.call_nested(nested)
48
+ end
49
+
50
+ def test_call_nested_list_with_same_method
51
+ nested = {
52
+ :fileset => [
53
+ {
54
+ :includes => 'bla',
55
+ :excludes => 'blub',
56
+ :dir => 'anything'
57
+ },
58
+ {
59
+ :includes => 'otherbla',
60
+ :excludes => 'otherblub',
61
+ :dir => 'otheranything'
62
+ }
63
+ ]
64
+ }
65
+ mock(@ant).fileset nested[:fileset][0]
66
+ mock(@ant).fileset nested[:fileset][1]
67
+
68
+ @target.call_nested(nested)
69
+ end
70
+
71
+ def test_call_recursive_nested
72
+ nested = {
73
+ :taskdef =>
74
+ {
75
+ :name => 'bla',
76
+ :nested => {
77
+ :fileset => {
78
+ :includes => 'bla',
79
+ :excludes => 'blub',
80
+ :dir => 'anything'}
81
+ }
82
+ }
83
+ }
84
+
85
+ # define the method that yields if a block is given, to test the nested stuff
86
+ def @ant.taskdef(p)
87
+ raise "Invalid params to many" unless p.size == 1
88
+ raise "Wrong parameter value" unless 'bla' == p[:name]
89
+ raise "missing block for method" unless block_given?
90
+ yield
91
+ end
92
+ mock(@ant).fileset nested[:taskdef][:nested][:fileset]
93
+
94
+ @target.call_nested(nested)
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,36 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
+
3
+ require 'test/unit'
4
+ require 'ivy/targets'
5
+ require 'ivy4r'
6
+
7
+ module Ivy
8
+ class TargetsTest < Test::Unit::TestCase
9
+
10
+ def setup
11
+ ivy4r = Ivy4r.new
12
+ ivy4r.ant_home = File.join(File.dirname(__FILE__), '..', '..', 'jars')
13
+ ivy4r.lib_dir = ivy4r.ant_home
14
+ @ivy_test_xml = File.join(File.dirname(__FILE__), 'ivytest.xml')
15
+ @info = Ivy::Info.new(ivy4r.ant)
16
+ end
17
+
18
+ def test_execute_empty_parameters_missing_mandatory_exception
19
+ assert_raise(ArgumentError) { @info.execute({}) }
20
+ end
21
+
22
+ def test_execute_validate_with_unkown_parameter_exception
23
+ assert_raise(ArgumentError) { @info.execute(:unknown_parameter => 'unknown') }
24
+ end
25
+
26
+ def test_execute_simple_file_correct_return_values
27
+ result = @info.execute(:file => @ivy_test_xml)
28
+
29
+ assert_not_nil result
30
+ %w[ivy.organisation ivy.revision ivy.module].each do |var|
31
+ assert_equal true, result.keys.member?(var), "Contains key '#{var}', has '#{result.keys.join(', ')}'"
32
+ end
33
+ assert_equal 'blau', result['ivy.organisation']
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,196 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','..','lib')
2
+
3
+ require 'rubygems'
4
+ require 'test/unit'
5
+ require 'ivy4r'
6
+ require 'antwrap'
7
+ require 'fileutils'
8
+
9
+ module Ivy
10
+ class Ivy4rTest < Test::Unit::TestCase
11
+
12
+ def setup
13
+ @ivy4r = Ivy4r.new
14
+ @ivy4r.ant_home = File.join(File.dirname(__FILE__), '..', 'jars')
15
+ @ivy4r.lib_dir = @ivy4r.ant_home
16
+ @ivy_test_xml = File.join(File.dirname(__FILE__), 'ivy', 'ivytest.xml')
17
+ end
18
+
19
+ def test_ant_returns_default_wrapper
20
+ assert_not_nil @ivy4r.ant
21
+ assert_kind_of ::Antwrap::AntProject, @ivy4r.ant
22
+ assert_equal Dir.pwd, @ivy4r.ant.basedir
23
+ assert_equal true, @ivy4r.ant.declarative
24
+ end
25
+
26
+ def test_ant_returns_always_same_instance
27
+ first = @ivy4r.ant
28
+ second = @ivy4r.ant
29
+ assert_same first, second
30
+ end
31
+
32
+ def test_ant_returns_set_instance_if_provided
33
+ provided = "bla"
34
+ @ivy4r.ant = provided
35
+ @ivy4r.instance_eval("@init_done = true")
36
+ assert_equal provided, @ivy4r.ant
37
+ end
38
+
39
+ def test_cleancache_returns_nil
40
+ result = @ivy4r.cleancache
41
+
42
+ assert_nil result
43
+ end
44
+
45
+ def test_info_returns_values_for_file
46
+ result = @ivy4r.info :file => @ivy_test_xml
47
+
48
+ assert_not_nil result
49
+ assert_equal 'blau', result['ivy.organisation']
50
+ end
51
+
52
+ def test_buildnumber_returns_infos
53
+ result = @ivy4r.buildnumber :organisation => 'oro', :module => 'oro'
54
+
55
+ assert_not_nil result
56
+ assert_equal '2.0.8', result['ivy.revision']
57
+ assert_equal '2.0.9', result['ivy.new.revision']
58
+ assert_equal '8', result['ivy.build.number']
59
+ assert_equal '9', result['ivy.new.build.number']
60
+ end
61
+
62
+ def test_settings_returns_nil
63
+ result = @ivy4r.settings :file => File.join(File.dirname(__FILE__), 'ivy', 'ivysettings.xml')
64
+
65
+ assert_nil result
66
+ end
67
+
68
+ def test_configure_returns_custom_properties
69
+ result = @ivy4r.configure :file => File.join(File.dirname(__FILE__), 'ivy', 'ivysettings.xml')
70
+
71
+ assert_not_nil result
72
+ assert_equal 'myvalue', result['myparam.ivy.instance']
73
+ end
74
+
75
+ def test_property_setting_getting_to_from_ant
76
+ # use a java hashmap for testing!!
77
+ @ivy4r.instance_eval("def ant_properties;@ant_properties||=java.util.HashMap.new;end")
78
+ name, value = 'name', 'value'
79
+ @ivy4r.property[name] = value
80
+
81
+ assert_equal value, @ivy4r.property[name]
82
+ end
83
+
84
+ def test_resolve_values_for_file
85
+ result = @ivy4r.resolve :file => @ivy_test_xml
86
+
87
+ assert_not_nil result
88
+ assert_equal 'blau', result['ivy.organisation']
89
+ assert_equal 4, result['ivy.resolved.configurations'].size, "has: #{result['ivy.resolved.configurations'].join(', ')}"
90
+ end
91
+
92
+ def test_cachepath_using_previous_resolve_contains_jar
93
+ @ivy4r.resolve :organisation => "oro", :module => "oro", :revision => "2.0.8", :keep => true, :inline => true
94
+ result = @ivy4r.cachepath :pathid => 'mytestpathid'
95
+
96
+ assert_not_nil result
97
+ assert result.any? {|a| a =~ /.*oro.*\.jar/ && a =~ /.*2\.0\.8*/ }
98
+ end
99
+
100
+ def test_cachepath_with_resolve_contains_jars
101
+ result = @ivy4r.cachepath :organisation => "oro", :module => "oro", :revision => "2.0.8", :inline => true, :pathid => 'mytestpathid'
102
+
103
+ assert_not_nil result
104
+ assert result.any? {|a| a =~ /.*oro.*\.jar/ && a =~ /.*2\.0\.8*/ }
105
+ end
106
+
107
+ def test_findrevision_found_correct_version
108
+ result = @ivy4r.findrevision :organisation => "oro", :module => "oro", :revision => "2.0.8"
109
+
110
+ assert_equal '2.0.8', result
111
+ end
112
+
113
+ def test_findrevision_not_found_nil
114
+ result = @ivy4r.findrevision :organisation => "oro", :module => "oro", :revision => "1unknown1"
115
+
116
+ assert_nil result
117
+ end
118
+
119
+ def test_artifactproperty_deps_contained
120
+ @ivy4r.resolve :file => @ivy_test_xml
121
+ result = @ivy4r.artifactproperty :name => '[organisation]-[module]', :value => '[revision]'
122
+
123
+ assert_not_nil result
124
+ assert result.any? {|k,v| k == 'oro-oro' && v == '2.0.8' }
125
+ end
126
+
127
+ def test_artifactreport_xml_returned
128
+ target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
129
+ FileUtils.mkdir(target)
130
+ @ivy4r.resolve :file => @ivy_test_xml
131
+ result = @ivy4r.artifactreport :tofile => File.join(target, 'test.xml')
132
+
133
+ assert_not_nil result
134
+ assert result =~ /.*<module organisation="oro".*/
135
+ ensure
136
+ FileUtils.rm_rf target
137
+ end
138
+
139
+ def test_retrieve_created_dir_with_artifacts
140
+ target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
141
+ FileUtils.mkdir(target)
142
+ @ivy4r.resolve :file => @ivy_test_xml
143
+ result = @ivy4r.retrieve :pattern => "#{target}/[organisation]/[module].[ext]"
144
+
145
+ assert_nil result
146
+ assert Dir.glob(File.join(target, '**/oro.jar')).size > 0, "Contains the artifacts"
147
+ ensure
148
+ FileUtils.rm_rf target
149
+ end
150
+
151
+ def test_report_created_reports
152
+ target = File.join(Dir.pwd, "temp_test#{Time.new.strftime('%Y%m%d%H%M%S')}")
153
+ FileUtils.mkdir(target)
154
+ @ivy4r.resolve :file => @ivy_test_xml
155
+ result = @ivy4r.report :todir => target
156
+
157
+ assert_nil result
158
+ assert Dir.glob(File.join(target, '**/*')).size > 0, "Contains the reports"
159
+ ensure
160
+ FileUtils.rm_rf target
161
+ end
162
+
163
+ def test_buildlist_correct_list
164
+ target = File.join(File.dirname(__FILE__), "buildlist")
165
+ result = @ivy4r.buildlist :reference => 'testpath', :nested => {
166
+ :fileset => [
167
+ {:dir => File.join(target, "sub"), :includes => '**/buildfile'},
168
+ {:dir => File.join(target, "p1"), :includes => 'buildfile'}
169
+ ]
170
+ }
171
+
172
+ assert_equal 3, result.size
173
+ result.map! { |file| File.expand_path(file) }
174
+ assert_equal File.expand_path(File.join(target, "p1", "buildfile")), result[0]
175
+ assert_equal File.expand_path(File.join(target, "sub", "p2", "buildfile")), result[1]
176
+ assert_equal File.expand_path(File.join(target, "sub", "p3", "buildfile")), result[2]
177
+ end
178
+
179
+ def test_makepom_returns_content
180
+ target = File.join(File.dirname(__FILE__), "testpom.xml")
181
+ result = @ivy4r.makepom :ivyfile => @ivy_test_xml, :pomfile => target, :nested => {
182
+ :mapping => {:conf => 'default', :scope => 'runtime' }
183
+ }
184
+
185
+ assert_equal IO.read(target), result
186
+ ensure
187
+ FileUtils.rm target
188
+ end
189
+
190
+ #def test_listmodules_lists_ivy_stuff
191
+ # result = @antwrap.listmodules :organisation => '*apache*', :module => '*ivy*', :revision => '2.*',
192
+ # :matcher => 'glob', :property => 'rums-[organisation][module]', :value => 'found'
193
+ # assert result.find {|k,v| k =~ /rums-/ && v == 'found'}, "found: #{result.inspect}"
194
+ #end
195
+ end
196
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: klaas1979-ivy4r
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Klaas Prause
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-17 00:00:00 -07:00
13
+ default_executable: ivy4r
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: Antwrap
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.7.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.1.0
34
+ version:
35
+ description: Apache Ivy dependency manager wrapper for ruby (see http://ant.apache.org/ivy/index.html for more information).Use Ivy via a ruby wrapper without the need to use Apache Ant. The wrapper uses Antwrap (see http://antwrap.rubyforge.org/) to interface with Ivy.
36
+ email:
37
+ - klaas.prause@googlemail.com
38
+ executables:
39
+ - ivy4r
40
+ extensions: []
41
+
42
+ extra_rdoc_files:
43
+ - History.txt
44
+ - Manifest.txt
45
+ - README.txt
46
+ files:
47
+ - History.txt
48
+ - Manifest.txt
49
+ - README.txt
50
+ - Rakefile
51
+ - lib/ivy/artifactproperty.rb
52
+ - lib/ivy/artifactreport.rb
53
+ - lib/ivy/buildlist.rb
54
+ - lib/ivy/buildnumber.rb
55
+ - lib/ivy/cachepath.rb
56
+ - lib/ivy/cleancache.rb
57
+ - lib/ivy/configure.rb
58
+ - lib/ivy/findrevision.rb
59
+ - lib/ivy/info.rb
60
+ - lib/ivy/listmodules.rb
61
+ - lib/ivy/makepom.rb
62
+ - lib/ivy/publish.rb
63
+ - lib/ivy/report.rb
64
+ - lib/ivy/resolve.rb
65
+ - lib/ivy/retrieve.rb
66
+ - lib/ivy/settings.rb
67
+ - lib/ivy/target.rb
68
+ - lib/ivy/targets.rb
69
+ - lib/ivy4r.rb
70
+ - test/buildlist/p1/buildfile
71
+ - test/buildlist/p1/ivy.xml
72
+ - test/buildlist/sub/p2/buildfile
73
+ - test/buildlist/sub/p2/ivy.xml
74
+ - test/buildlist/sub/p3/buildfile
75
+ - test/buildlist/sub/p3/ivy.xml
76
+ - test/ivy/ivysettings.xml
77
+ - test/ivy/ivytest.xml
78
+ - test/ivy/test_target.rb
79
+ - test/ivy/test_targets.rb
80
+ - test/test_ivy4r.rb
81
+ has_rdoc: true
82
+ homepage: http://github.com/klaas1979/ivy4r/tree/master
83
+ post_install_message:
84
+ rdoc_options:
85
+ - --main
86
+ - README.txt
87
+ - --charset=UTF-8
88
+ require_paths:
89
+ - lib
90
+ required_ruby_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
95
+ version:
96
+ required_rubygems_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ version:
102
+ requirements: []
103
+
104
+ rubyforge_project: ivy4r
105
+ rubygems_version: 1.2.0
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: Apache Ivy dependency manager wrapper for ruby (see http://ant.apache.org/ivy/index.html for more information).Use Ivy via a ruby wrapper without the need to use Apache Ant
109
+ test_files:
110
+ - test/test_ivy4r.rb
111
+ - test/ivy/test_target.rb
112
+ - test/ivy/test_targets.rb