# 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