buildr 1.4.1-x86-mswin32 → 1.4.2-x86-mswin32
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/CHANGELOG +68 -11
- data/_buildr +2 -0
- data/addon/buildr/hibernate.rb +8 -5
- data/addon/buildr/jetty.rb +1 -1
- data/addon/buildr/openjpa.rb +0 -2
- data/addon/buildr/xmlbeans.rb +1 -1
- data/buildr.gemspec +13 -9
- data/doc/_layouts/default.html +3 -1
- data/doc/contributing.textile +10 -2
- data/doc/css/default.css +6 -6
- data/doc/download.textile +7 -7
- data/doc/languages.textile +2 -2
- data/doc/more_stuff.textile +41 -33
- data/doc/packaging.textile +6 -3
- data/doc/releasing.textile +116 -0
- data/doc/scripts/install-linux.sh +7 -6
- data/doc/testing.textile +14 -0
- data/lib/buildr.rb +2 -2
- data/lib/buildr/core.rb +0 -6
- data/lib/buildr/core/application.rb +25 -2
- data/lib/buildr/core/build.rb +66 -15
- data/lib/buildr/core/compile.rb +10 -1
- data/lib/buildr/core/filter.rb +1 -1
- data/lib/buildr/core/progressbar.rb +8 -3
- data/lib/buildr/core/test.rb +57 -6
- data/lib/buildr/core/transports.rb +18 -13
- data/lib/buildr/core/util.rb +19 -3
- data/lib/buildr/groovy/compiler.rb +2 -2
- data/lib/buildr/ide/eclipse.rb +32 -12
- data/lib/buildr/java/ant.rb +3 -3
- data/lib/buildr/java/bdd.rb +1 -2
- data/lib/buildr/java/cobertura.rb +10 -9
- data/lib/buildr/java/commands.rb +22 -21
- data/lib/buildr/java/compiler.rb +2 -2
- data/lib/buildr/java/doc.rb +1 -1
- data/lib/buildr/java/ecj.rb +71 -0
- data/lib/buildr/java/emma.rb +1 -1
- data/lib/buildr/java/external.rb +9 -9
- data/lib/buildr/java/jruby.rb +5 -0
- data/lib/buildr/java/packaging.rb +4 -3
- data/lib/buildr/java/rjb.rb +4 -6
- data/lib/buildr/java/tests.rb +9 -4
- data/lib/buildr/packaging/archive.rb +7 -3
- data/lib/buildr/packaging/artifact.rb +153 -38
- data/lib/buildr/packaging/gems.rb +2 -3
- data/lib/buildr/packaging/package.rb +19 -12
- data/lib/buildr/packaging/tar.rb +1 -1
- data/lib/buildr/packaging/ziptask.rb +1 -1
- data/lib/buildr/scala/bdd.rb +7 -3
- data/lib/buildr/scala/compiler.rb +2 -2
- data/lib/buildr/scala/doc.rb +3 -3
- data/lib/buildr/scala/tests.rb +7 -3
- data/lib/buildr/version.rb +18 -0
- data/rakelib/all-in-one.rake +1 -1
- data/rakelib/doc.rake +13 -3
- data/rakelib/metrics.rake +39 -0
- data/spec/core/application_spec.rb +13 -12
- data/spec/core/build_spec.rb +166 -7
- data/spec/core/cc_spec.rb +1 -1
- data/spec/core/checks_spec.rb +1 -1
- data/spec/core/common_spec.rb +10 -1
- data/spec/core/compile_spec.rb +1 -1
- data/spec/core/extension_spec.rb +1 -1
- data/spec/core/generate_spec.rb +1 -1
- data/spec/core/project_spec.rb +1 -1
- data/spec/core/test_spec.rb +124 -11
- data/spec/core/transport_spec.rb +10 -3
- data/spec/core/util_spec.rb +18 -2
- data/spec/groovy/bdd_spec.rb +1 -1
- data/spec/groovy/compiler_spec.rb +3 -3
- data/spec/ide/eclipse_spec.rb +63 -1
- data/spec/ide/idea7x_spec.rb +1 -1
- data/spec/java/ant_spec.rb +1 -1
- data/spec/java/bdd_spec.rb +1 -1
- data/spec/java/cobertura_spec.rb +29 -2
- data/spec/java/commands_spec.rb +61 -2
- data/spec/java/compiler_spec.rb +3 -3
- data/spec/java/ecj_spec.rb +115 -0
- data/spec/java/emma_spec.rb +1 -1
- data/spec/java/external_spec.rb +10 -8
- data/spec/java/java_spec.rb +14 -6
- data/spec/java/packaging_spec.rb +41 -15
- data/spec/java/test_coverage_helper.rb +1 -1
- data/spec/java/tests_spec.rb +1 -1
- data/spec/packaging/archive_spec.rb +12 -1
- data/spec/packaging/artifact_namespace_spec.rb +1 -1
- data/spec/packaging/artifact_spec.rb +197 -7
- data/spec/packaging/packaging_spec.rb +12 -12
- data/spec/sandbox.rb +8 -3
- data/spec/scala/bdd_spec.rb +3 -3
- data/spec/scala/compiler_spec.rb +7 -7
- data/spec/scala/scala.rb +3 -3
- data/spec/scala/tests_spec.rb +3 -3
- data/spec/spec_helpers.rb +11 -1
- data/spec/version_requirement_spec.rb +1 -1
- metadata +220 -85
- data/rakelib/jekylltask.rb +0 -120
data/spec/ide/idea7x_spec.rb
CHANGED
data/spec/java/ant_spec.rb
CHANGED
data/spec/java/bdd_spec.rb
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
require File.join(File.dirname(__FILE__), '
|
16
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
17
17
|
|
18
18
|
describe Buildr::RSpec do
|
19
19
|
|
data/spec/java/cobertura_spec.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
require File.join(File.dirname(__FILE__), 'test_coverage_helper')
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'test_coverage_helper'))
|
18
18
|
Sandbox.require_optional_extension 'buildr/java/cobertura'
|
19
19
|
artifacts(Buildr::Cobertura::dependencies).map(&:invoke)
|
20
20
|
|
@@ -53,6 +53,11 @@ describe Buildr::Cobertura do
|
|
53
53
|
define('foo') { define('bar') }
|
54
54
|
task('foo:bar:cobertura:instrument').invoke
|
55
55
|
end
|
56
|
+
|
57
|
+
it 'should not generate html if projects have no sources' do
|
58
|
+
define('foo') { define('bar') }
|
59
|
+
task('cobertura:html').invoke
|
60
|
+
end
|
56
61
|
end
|
57
62
|
|
58
63
|
describe 'instrumentation' do
|
@@ -80,6 +85,28 @@ describe Buildr::Cobertura do
|
|
80
85
|
end
|
81
86
|
end
|
82
87
|
|
83
|
-
|
88
|
+
describe 'check' do
|
89
|
+
before do
|
90
|
+
write 'src/main/java/Foo.java', 'public class Foo { public static boolean returnTrue() {return true;}}'
|
91
|
+
write 'src/test/java/FooTest.java', <<-JAVA
|
92
|
+
import static junit.framework.Assert.assertTrue;
|
93
|
+
import org.junit.Test;
|
94
|
+
|
95
|
+
public class FooTest {
|
96
|
+
|
97
|
+
@Test
|
98
|
+
public void testReturnTrue() {
|
99
|
+
assertTrue(Foo.returnTrue());
|
100
|
+
}
|
101
|
+
}
|
102
|
+
JAVA
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'should not raise errors during execution' do
|
106
|
+
define('foo') { cobertura.include 'Foo' }
|
107
|
+
lambda {task("foo:cobertura:check").invoke}.should_not raise_error
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
84
111
|
end
|
85
112
|
end
|
data/spec/java/commands_spec.rb
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
# License for the specific language governing permissions and limitations under
|
14
14
|
# the License.
|
15
15
|
|
16
|
-
require File.join(File.dirname(__FILE__), '
|
16
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
17
17
|
|
18
18
|
|
19
19
|
describe Java::Commands do
|
@@ -30,5 +30,64 @@ BUILD
|
|
30
30
|
lambda { Java::Commands.java("org.apache.tools.ant.Main", :classpath => Buildr::Ant.dependencies) }.should_not show_info(/java/)
|
31
31
|
lambda { Java::Commands.java("org.apache.tools.ant.Main", :classpath => Buildr::Ant.dependencies, :verbose => true) }.should show_info(/java/)
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
|
+
describe "Java::Commands.javac" do
|
35
|
+
|
36
|
+
it "should compile java" do
|
37
|
+
write "Foo.java", "public class Foo {}"
|
38
|
+
lambda { Java::Commands.javac("Foo.java") }.should change {File.exist?("Foo.class")}.to(true)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should let the user specify an output directory' do
|
42
|
+
write "Foo.java", "public class Foo {}"
|
43
|
+
lambda { Java::Commands.javac("Foo.java", :output => "classes") }.should change {File.exist?("classes/Foo.class")}.to(true)
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should let the user specify a different name" do
|
47
|
+
write "Foo.java", "public class Foo {}"
|
48
|
+
lambda { Java::Commands.javac("Foo.java", :name => "bar") }.should show_info("Compiling 1 source files in bar")
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should let the user specify a source path" do
|
52
|
+
write "ext/org/Bar.java", "package org; public class Bar {}"
|
53
|
+
write "Foo.java", "import org.Bar;\n public class Foo {}"
|
54
|
+
lambda { Java::Commands.javac("Foo.java", :sourcepath => File.expand_path("ext")) }.should change {File.exist?("Foo.class")}.to(true)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should let the user specify a classpath" do
|
58
|
+
write "ext/org/Bar.java", "package org; public class Bar {}"
|
59
|
+
Java::Commands.javac("ext/org/Bar.java", :output => "lib")
|
60
|
+
write "Foo.java", "import org.Bar;\n public class Foo {}"
|
61
|
+
lambda { Java::Commands.javac("Foo.java", :classpath => File.expand_path("lib")) }.should change {File.exist?("Foo.class")}.to(true)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "Java::Commands.javadoc" do
|
66
|
+
|
67
|
+
it "should fail if no output is defined" do
|
68
|
+
lambda { Java::Commands.javadoc("Foo.java") }.should raise_error(/No output defined for javadoc/)
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should create javadoc" do
|
72
|
+
write "Foo.java", "public class Foo {}"
|
73
|
+
lambda { Java::Commands.javadoc("Foo.java", :output => "doc") }.should change {File.exist?("doc/Foo.html")}.to(true)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should accept file tasks as arguments" do
|
77
|
+
foo = file("Foo.java") do |file|
|
78
|
+
file.enhance do
|
79
|
+
write file.to_s, "public class Foo {}"
|
80
|
+
end
|
81
|
+
end
|
82
|
+
lambda { Java::Commands.javadoc(foo, :output => "doc") }.should change {File.exist?("doc/Foo.html")}.to(true)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should accept projects as arguments" do
|
86
|
+
write "src/main/java/Foo.java", "public class Foo {}"
|
87
|
+
write "src/main/java/bar/Foobar.java", "package bar; public class Foobar {}"
|
88
|
+
define "foo" do
|
89
|
+
end
|
90
|
+
lambda { Java::Commands.javadoc(project("foo"), :output => "doc") }.should change {File.exist?("doc/Foo.html") && File.exist?("doc/bar/Foobar.html")}.to(true)
|
91
|
+
end
|
92
|
+
end
|
34
93
|
end
|
data/spec/java/compiler_spec.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
require File.join(File.dirname(__FILE__), '
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
18
18
|
|
19
19
|
|
20
20
|
describe 'javac compiler' do
|
@@ -122,8 +122,8 @@ describe 'javac compiler options' do
|
|
122
122
|
javac_args.should_not include('-verbose')
|
123
123
|
end
|
124
124
|
|
125
|
-
it 'should use -verbose argument when running with --trace option' do
|
126
|
-
|
125
|
+
it 'should use -verbose argument when running with --trace=javac option' do
|
126
|
+
Buildr.application.options.trace_categories = [:javac]
|
127
127
|
javac_args.should include('-verbose')
|
128
128
|
end
|
129
129
|
|
@@ -0,0 +1,115 @@
|
|
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 File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
describe Buildr::Compiler::Ecj do
|
21
|
+
|
22
|
+
before(:all) do
|
23
|
+
#Make ecj appear as a compiler that applies:
|
24
|
+
class Buildr::Compiler::Ecj
|
25
|
+
class << self
|
26
|
+
|
27
|
+
def applies_to?(project, task)
|
28
|
+
paths = task.sources + [sources].flatten.map { |src| Array(project.path_to(:source, task.usage, src.to_sym)) }
|
29
|
+
paths.flatten!
|
30
|
+
ext_glob = Array(source_ext).join(',')
|
31
|
+
|
32
|
+
paths.each { |path|
|
33
|
+
Find.find(path) {|found|
|
34
|
+
if (!File.directory?(found)) && found.match(/.*\.#{Array(source_ext).join('|')}/)
|
35
|
+
return true
|
36
|
+
end
|
37
|
+
} if File.exist? path
|
38
|
+
}
|
39
|
+
false
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should be the default Java compiler once loaded" do
|
46
|
+
write 'src/main/java/Foo.java', 'public class Foo {}'
|
47
|
+
foo = define('foo')
|
48
|
+
foo.compile.compiler.should == :ecj
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "should compile a Java project just in the same way javac does" do
|
52
|
+
javac_spec = File.read(File.join(File.dirname(__FILE__), "compiler_spec.rb"))
|
53
|
+
javac_spec = javac_spec.match(Regexp.escape("require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))\n")).post_match
|
54
|
+
javac_spec.gsub!("javac", "ecj")
|
55
|
+
javac_spec.gsub!("nowarn", "warn:none")
|
56
|
+
eval(javac_spec)
|
57
|
+
end
|
58
|
+
|
59
|
+
# Redirect the java error ouput, yielding so you can do something while it is
|
60
|
+
# and returning the content of the error buffer.
|
61
|
+
#
|
62
|
+
def redirect_java_err
|
63
|
+
pending "RJB doesn't support well instantiating a class that has several constructors" unless RUBY_PLATFORM =~ /java/
|
64
|
+
err = Java.java.io.ByteArrayOutputStream.new
|
65
|
+
original_err = Java.java.lang.System.err
|
66
|
+
begin
|
67
|
+
printStream = Java.java.io.PrintStream
|
68
|
+
print = printStream.new(err)
|
69
|
+
Java.java.lang.System.setErr(print)
|
70
|
+
yield
|
71
|
+
ensure
|
72
|
+
Java.java.lang.System.setErr(original_err)
|
73
|
+
end
|
74
|
+
err.toString
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should not issue warnings for type casting when warnings are set to warn:none, by default" do
|
78
|
+
write "src/main/java/Main.java", "import java.util.List; public class Main {public List get() {return null;}}"
|
79
|
+
foo = define("foo") {
|
80
|
+
compile.options.source = "1.5"
|
81
|
+
compile.options.target = "1.5"
|
82
|
+
}
|
83
|
+
redirect_java_err { foo.compile.invoke }.should_not match(/WARNING/)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should issue warnings for type casting when warnings are set" do
|
87
|
+
write "src/main/java/Main.java", "import java.util.List; public class Main {public List get() {return null;}}"
|
88
|
+
foo = define("foo") {
|
89
|
+
compile.options.source = "1.5"
|
90
|
+
compile.options.target = "1.5"
|
91
|
+
compile.options.warnings = true
|
92
|
+
}
|
93
|
+
redirect_java_err { foo.compile.invoke }.should match(/WARNING/)
|
94
|
+
end
|
95
|
+
|
96
|
+
after(:all) do
|
97
|
+
#Make ecj appear as a compiler that doesn't apply:
|
98
|
+
module Buildr
|
99
|
+
module Compiler
|
100
|
+
|
101
|
+
class Ecj
|
102
|
+
|
103
|
+
class << self
|
104
|
+
|
105
|
+
def applies_to?(project, task)
|
106
|
+
false
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
|
data/spec/java/emma_spec.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
require File.join(File.dirname(__FILE__), 'test_coverage_helper')
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'test_coverage_helper'))
|
18
18
|
Sandbox.require_optional_extension 'buildr/java/emma'
|
19
19
|
artifacts(Buildr::Emma::dependencies).map(&:invoke)
|
20
20
|
|
data/spec/java/external_spec.rb
CHANGED
@@ -14,25 +14,27 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
require File.join(File.dirname(__FILE__), '
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
18
18
|
|
19
19
|
COMPILERS = Buildr::Compiler.compilers.dup
|
20
20
|
COMPILERS_WITHOUT_JAVAC = COMPILERS.dup
|
21
21
|
COMPILERS_WITHOUT_JAVAC.delete Buildr::Compiler::Javac
|
22
22
|
|
23
23
|
describe Buildr::Compiler::ExternalJavac do
|
24
|
-
|
24
|
+
|
25
25
|
before(:all) do
|
26
26
|
Buildr::Compiler.send :compilers=, COMPILERS_WITHOUT_JAVAC
|
27
27
|
end
|
28
|
-
|
29
|
-
describe "should compile a Java project just in the same way javac does" do
|
28
|
+
|
29
|
+
describe "should compile a Java project just in the same way javac does" do
|
30
30
|
javac_spec = File.read(File.join(File.dirname(__FILE__), "compiler_spec.rb"))
|
31
|
-
javac_spec = javac_spec.match(Regexp.escape("require File.join(File.dirname(__FILE__), '
|
31
|
+
javac_spec = javac_spec.match(Regexp.escape("require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))\n")).post_match
|
32
32
|
javac_spec.gsub!("javac", "externaljavac")
|
33
|
+
javac_spec.gsub!("--trace=externaljavac", "--trace=javac")
|
34
|
+
javac_spec.gsub!("trace_categories = [:externaljavac]", "trace_categories = [:javac]")
|
33
35
|
eval(javac_spec)
|
34
36
|
end
|
35
|
-
|
37
|
+
|
36
38
|
it "should accept a :jvm option as JAVA_HOME" do
|
37
39
|
write 'src/main/java/Foo.java', 'public class Foo {}'
|
38
40
|
define "foo" do
|
@@ -44,11 +46,11 @@ describe Buildr::Compiler::ExternalJavac do
|
|
44
46
|
end
|
45
47
|
trace false
|
46
48
|
end
|
47
|
-
|
49
|
+
|
48
50
|
after :all do
|
49
51
|
Buildr::Compiler.send :compilers=, COMPILERS
|
50
52
|
end
|
51
|
-
|
53
|
+
|
52
54
|
end
|
53
55
|
|
54
56
|
|
data/spec/java/java_spec.rb
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
require File.join(File.dirname(__FILE__), '
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
18
18
|
|
19
19
|
|
20
20
|
unless RUBY_PLATFORM =~ /java/
|
@@ -41,10 +41,18 @@ unless RUBY_PLATFORM =~ /java/
|
|
41
41
|
ENV_JAVA.replace @old_env_java
|
42
42
|
end
|
43
43
|
end
|
44
|
+
else
|
45
|
+
describe 'JRuby environment' do
|
46
|
+
it 'should enforce a minimum version of jruby' do
|
47
|
+
check =File.read(File.expand_path('../lib/buildr/java/jruby.rb')).match(/JRUBY_MIN_VERSION.*\n.*JRUBY_MIN_VERSION\n/).to_s
|
48
|
+
check.sub!('JRUBY_VERSION', "'0.0.0'")
|
49
|
+
lambda { eval(check) }.should raise_error(/JRuby must be at least at version /)
|
50
|
+
end
|
51
|
+
end
|
44
52
|
end
|
45
53
|
|
46
54
|
|
47
|
-
describe Java
|
55
|
+
describe 'Java.tools_jar' do
|
48
56
|
before do
|
49
57
|
@old_home = ENV['JAVA_HOME']
|
50
58
|
end
|
@@ -55,7 +63,7 @@ describe Java, '#tools_jar' do
|
|
55
63
|
write 'jdk/lib/tools.jar'
|
56
64
|
ENV['JAVA_HOME'] = File.expand_path('jdk')
|
57
65
|
end
|
58
|
-
|
66
|
+
|
59
67
|
it 'should return the path to tools.jar' do
|
60
68
|
Java.tools_jar.should point_to_path('jdk/lib/tools.jar')
|
61
69
|
end
|
@@ -67,7 +75,7 @@ describe Java, '#tools_jar' do
|
|
67
75
|
write 'jdk/lib/tools.jar'
|
68
76
|
ENV['JAVA_HOME'] = File.expand_path('jdk/jre')
|
69
77
|
end
|
70
|
-
|
78
|
+
|
71
79
|
it 'should return the path to tools.jar' do
|
72
80
|
Java.tools_jar.should point_to_path('jdk/lib/tools.jar')
|
73
81
|
end
|
@@ -78,7 +86,7 @@ describe Java, '#tools_jar' do
|
|
78
86
|
Java.instance_eval { @tools_jar = nil }
|
79
87
|
ENV['JAVA_HOME'] = File.expand_path('jdk')
|
80
88
|
end
|
81
|
-
|
89
|
+
|
82
90
|
it 'should return nil' do
|
83
91
|
Java.tools_jar.should be_nil
|
84
92
|
end
|
@@ -89,7 +97,7 @@ describe Java, '#tools_jar' do
|
|
89
97
|
end
|
90
98
|
end
|
91
99
|
|
92
|
-
describe Java
|
100
|
+
describe 'Java#java' do
|
93
101
|
before do
|
94
102
|
@old_home = ENV['JAVA_HOME']
|
95
103
|
end
|
data/spec/java/packaging_spec.rb
CHANGED
@@ -14,8 +14,8 @@
|
|
14
14
|
# the License.
|
15
15
|
|
16
16
|
|
17
|
-
require File.join(File.dirname(__FILE__), '
|
18
|
-
require File.join(File.dirname(__FILE__), '
|
17
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helpers'))
|
18
|
+
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'packaging', 'packaging_helper'))
|
19
19
|
|
20
20
|
|
21
21
|
describe Project, '#manifest' do
|
@@ -120,7 +120,7 @@ shared_examples_for 'package with manifest' do
|
|
120
120
|
manifest.main['bar'].should eql('Bar')
|
121
121
|
end
|
122
122
|
end
|
123
|
-
|
123
|
+
|
124
124
|
it 'should close the temporary file used for packaging the MANIFEST.MF file' do
|
125
125
|
package_with_manifest 'Foo'=>1, :bar=>'Bar'
|
126
126
|
package = project('foo').package(@packaging)
|
@@ -197,7 +197,7 @@ shared_examples_for 'package with manifest' do
|
|
197
197
|
manifest.main['Meta'].should eql('data')
|
198
198
|
end
|
199
199
|
end
|
200
|
-
|
200
|
+
|
201
201
|
it 'should give 644 permissions to the manifest' do
|
202
202
|
package_with_manifest [ {}, { 'Name'=>'first', :Foo=>'first', :bar=>'second' } ]
|
203
203
|
package ||= project('foo').package(@packaging)
|
@@ -440,7 +440,7 @@ describe Packaging, 'jar' do
|
|
440
440
|
(entries_to_s.first == 'META-INF/MANIFEST.MF' || entries_to_s[1] == 'META-INF/MANIFEST.MF').should be_true
|
441
441
|
end
|
442
442
|
end
|
443
|
-
|
443
|
+
|
444
444
|
it 'should use files from compile directory if nothing included' do
|
445
445
|
write 'src/main/java/Test.java', 'class Test {}'
|
446
446
|
define('foo', :version=>'1.0') { package(:jar) }
|
@@ -491,7 +491,7 @@ describe Packaging, 'jar' do
|
|
491
491
|
define('foo', :version=>'1.0') { package(:jar).with(nil) }
|
492
492
|
}.should raise_error
|
493
493
|
end
|
494
|
-
|
494
|
+
|
495
495
|
it 'should exclude resources when ordered to do so' do
|
496
496
|
write 'src/main/resources/foo.xml', ''
|
497
497
|
foo = define('foo', :version => '1.0') { package(:jar).exclude('foo.xml')}
|
@@ -500,7 +500,7 @@ describe Packaging, 'jar' do
|
|
500
500
|
jar.entries.map(&:to_s).sort.should_not include('foo.xml')
|
501
501
|
end
|
502
502
|
end
|
503
|
-
|
503
|
+
|
504
504
|
end
|
505
505
|
|
506
506
|
|
@@ -583,20 +583,44 @@ describe Packaging, 'war' do
|
|
583
583
|
define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war) }
|
584
584
|
inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar', 'WEB-INF/lib/id-2.0.jar') }
|
585
585
|
end
|
586
|
-
|
586
|
+
|
587
587
|
it 'should use artifacts from compile classpath if no libs specified, leaving the user specify which to exclude as files' do
|
588
588
|
make_jars
|
589
589
|
define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war).path('WEB-INF/lib').exclude('id-2.0.jar') }
|
590
590
|
inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar') }
|
591
591
|
end
|
592
|
-
|
592
|
+
|
593
593
|
it 'should use artifacts from compile classpath if no libs specified, leaving the user specify which to exclude as files with glob expressions' do
|
594
594
|
make_jars
|
595
595
|
define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war).path('WEB-INF/lib').exclude('**/id-2.0.jar') }
|
596
596
|
inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar') }
|
597
597
|
end
|
598
|
+
|
599
|
+
it 'should exclude files regardless of the path where they are included, using wildcards' do
|
600
|
+
make_jars
|
601
|
+
define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war).exclude('**/id-2.0.jar') }
|
602
|
+
inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar') }
|
603
|
+
end
|
598
604
|
|
605
|
+
it 'should exclude files regardless of the path where they are included, specifying target path entirely' do
|
606
|
+
make_jars
|
607
|
+
define('foo', :version=>'1.0') { compile.with 'group:id:jar:1.0', 'group:id:jar:2.0' ; package(:war).exclude('WEB-INF/lib/id-2.0.jar') }
|
608
|
+
inspect_war { |files| files.should include('META-INF/MANIFEST.MF', 'WEB-INF/lib/id-1.0.jar') }
|
609
|
+
end
|
599
610
|
|
611
|
+
it 'should exclude files regardless of the path where they are included for war files' do
|
612
|
+
write 'src/main/java/com/example/included/Test.java', 'package com.example.included; class Test {}'
|
613
|
+
write 'src/main/java/com/example/excluded/Test.java', 'package com.example.excluded; class Test {}'
|
614
|
+
define('foo', :version=>'1.0') do
|
615
|
+
package(:war).enhance do |war|
|
616
|
+
war.exclude('WEB-INF/classes/com/example/excluded/**.class')
|
617
|
+
end
|
618
|
+
end
|
619
|
+
inspect_war do |files|
|
620
|
+
files.should include('WEB-INF/classes/com/example/included/Test.class')
|
621
|
+
files.should_not include('WEB-INF/classes/com/example/excluded/Test.class')
|
622
|
+
end
|
623
|
+
end
|
600
624
|
|
601
625
|
it 'should include only specified libraries' do
|
602
626
|
define 'foo', :version=>'1.0' do
|
@@ -1072,13 +1096,13 @@ end
|
|
1072
1096
|
|
1073
1097
|
describe Packaging, 'sources' do
|
1074
1098
|
it_should_behave_like 'packaging'
|
1075
|
-
before { @packaging, @package_type = :sources, :
|
1099
|
+
before { @packaging, @package_type = :sources, :jar }
|
1076
1100
|
|
1077
|
-
it 'should create package of type :
|
1101
|
+
it 'should create package of type :jar and classifier \'sources\'' do
|
1078
1102
|
define 'foo', :version=>'1.0' do
|
1079
|
-
package(:sources).type.should eql(:
|
1103
|
+
package(:sources).type.should eql(:jar)
|
1080
1104
|
package(:sources).classifier.should eql('sources')
|
1081
|
-
package(:sources).name.should match(/foo-1.0-sources.
|
1105
|
+
package(:sources).name.should match(/foo-1.0-sources.jar$/)
|
1082
1106
|
end
|
1083
1107
|
end
|
1084
1108
|
|
@@ -1148,9 +1172,11 @@ shared_examples_for 'package_with_' do
|
|
1148
1172
|
projects.select { |project| project.packages.first }.map(&:name)
|
1149
1173
|
end
|
1150
1174
|
|
1151
|
-
it 'should create package of
|
1175
|
+
it 'should create package of the right packaging with classifier' do
|
1152
1176
|
prepare
|
1153
|
-
|
1177
|
+
ext = "zip"
|
1178
|
+
ext = "jar" if @packaging == :sources
|
1179
|
+
project('foo').packages.first.to_s.should =~ /foo-1.0-#{@packaging}.#{ext}/
|
1154
1180
|
end
|
1155
1181
|
|
1156
1182
|
it 'should create package for projects that have source files' do
|