public
Description: A light weight file IO library to ease the use of Java File IO related API and enable the testability.
Homepage: http://cotta.sourceforge.net/
Clone URL: git://github.com/wolfdancer/cotta.git
cotta / rakefile.rb
100644 104 lines (90 sloc) 3.148 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# This rake file uses the working copy of BuildMaster instead of its gem
$:.unshift File.join(File.dirname(__FILE__), '..', 'buildmaster', 'lib', 'buildmaster')
require 'auto'
require 'rake'
 
root = BuildMaster::Cotta.parent_dir(__FILE__)
build = root.dir('build')
output = build.dir('output')
report = build.dir('report')
dist = build.dir('dist')
junit_file = root.file('lib/junit/junit-4.4.jar')
jmock_dir = root.dir('lib/jmock')
 
asserts = BuildMaster::JavaProject.new(root.dir('asserts')) do |project|
  project.target_version = '1.5'
  project.src = 'src'
  project.test.src = 'test'
  project.output = output.dir('asserts')
  project.uses(junit_file)
  project.uses_files_in jmock_dir
end
 
testbase = BuildMaster::JavaProject.new(root.dir('testbase')) do |project|
  project.target_version = '1.5'
  project.src = 'src'
  project.test.src = 'test'
  project.output = output.dir('testbase')
  project.uses(asserts, junit_file)
  project.uses_files_in jmock_dir
end
 
core = BuildMaster::JavaProject.new(root.dir('core')) do |project|
  project.target_version = '1.5'
  project.output = output.dir('cotta')
  project.src = 'src'
  project.test.src = 'behaviour/src'
  project.test.resource = 'behaviour/resources'
  project.uses(testbase, junit_file) # junit is for TestLoader only
end
 
ftp = BuildMaster::JavaProject.new(root.dir('ftp')) do |project|
  project.target_version = '1.5'
  project.output = output.dir('ftp')
  project.src = 'src'
  project.test.src = 'behaviour/src'
  project.test.resource = 'behaviour/resources'
  project.uses core
  project.uses_files_in('../lib/commons-io', '../lib/coloradoftp', '../lib/commons-net')
  project.tests_with testbase
end
 
task :default => [:test, :package, :javadoc]
task :make_testbase => [:make_asserts]
task :make_cotta => [:make_testbase]
task :make_ftp => [:make_cotta]
task :compile => [:make_ftp]
task :test => [:make_cotta, :make_ftp, :make_testbase, :make_asserts]
 
task :make_asserts do
  asserts.make
end
 
task :make_testbase do
  testbase.make
end
 
task :make_cotta do
  core.make
end
 
task :make_ftp do
  ftp.make
end
 
task :clean do
  build.delete
end
 
task :test do
  cobertura = root.file('lib/cobertura/cobertura-1.9.1.jar')
  asserts.junit(report.dir('asserts')).for_tests('*Test.java').with_coverage(cobertura).run
  testbase.junit(report.dir('testbase')).for_tests('*Test.java').with_coverage(cobertura).run
  core.junit(report.dir('core')).for_tests('*Test.java').with_coverage(cobertura).run
  junit = ftp.junit(report.dir('ftp'))
  # ftp_test = junit.for_tests('*Test.java')
  ftp_test = junit.for_test('net.sf.cotta.ftp.AllTests')
  ftp_test.jvmargs.push('-Xmx512m')
  # ftp_test.with_coverage(cobertura).run
end
 
task :package do
  asserts.package(dist, 'cotta-asserts')
  testbase.package(dist, 'cotta-testbase')
  core.package(dist, 'cotta') do |package|
    package.manifest = core.src.file('META-INF/MANIFEST.MF')
    package.add(ftp.prod.output, ftp.prod.src)
  end
end
 
task :javadoc do
  api = dist.dir('javadoc')
  asserts.javadoc(api.dir('asserts')).run(build.file('javadoc-asserts.xml'))
  core.javadoc(api.dir('core')).run(build.file('javadoc-core.xml'))
end