You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by bo...@apache.org on 2010/09/18 15:01:08 UTC
svn commit: r998463 - in /buildr/trunk: CHANGELOG lib/buildr/ide/eclipse.rb
spec/ide/eclipse_spec.rb
Author: boisvert
Date: Sat Sep 18 13:01:08 2010
New Revision: 998463
URL: http://svn.apache.org/viewvc?rev=998463&view=rev
Log:
BUILDR-465 Eclipse project names should be customizable
BUILDR-509 Option to generate non-prefixed Eclipse project names
Modified:
buildr/trunk/CHANGELOG
buildr/trunk/lib/buildr/ide/eclipse.rb
buildr/trunk/spec/ide/eclipse_spec.rb
Modified: buildr/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=998463&r1=998462&r2=998463&view=diff
==============================================================================
--- buildr/trunk/CHANGELOG (original)
+++ buildr/trunk/CHANGELOG Sat Sep 18 13:01:08 2010
@@ -2,6 +2,8 @@
* Added: BUILDR-415 Ability to exclude tests from command line
* Added: BUILDR-495 Document twitter on Buildr's homepage
* Added: BUILDR-212 Update support for SNAPSHOT artifacts (Timo Rantalaiho and Izzet Mustafa)
+* Added: BUILDR-465 Eclipse project names should be customizable
+* Added: BUILDR-509 Option to generate non-prefixed Eclipse project names
* Added: Integration test to show how to change the war packaging spec.
* Added: Integration test to show how to use junit 3.
* Added: Integration test to show how to get ahold of parent project
Modified: buildr/trunk/lib/buildr/ide/eclipse.rb
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/ide/eclipse.rb?rev=998463&r1=998462&r2=998463&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/ide/eclipse.rb (original)
+++ buildr/trunk/lib/buildr/ide/eclipse.rb Sat Sep 18 13:01:08 2010
@@ -25,11 +25,18 @@ module Buildr
class Eclipse
attr_reader :options
+ attr_writer :name
def initialize(project)
@project = project
@options = Options.new(project)
end
+
+ def name
+ return @name if @name
+ return @project.id.split('-').last if @options.short_names
+ @project.id
+ end
# :call-seq:
# classpath_variables :VAR => '/path/to/location'
@@ -156,7 +163,7 @@ module Buildr
class Options
- attr_writer :m2_repo_var
+ attr_writer :m2_repo_var, :short_names
def initialize(project)
@project = project
@@ -173,6 +180,10 @@ module Buildr
@m2_repo_var || (@project.parent ? @project.parent.eclipse.options.m2_repo_var : 'M2_REPO')
end
end
+
+ def short_names
+ @short_names || (@project.parent ? @project.parent.eclipse.options.short_names : false)
+ end
end
def eclipse
@@ -265,7 +276,7 @@ module Buildr
File.open(task.name, 'w') do |file|
xml = Builder::XmlMarkup.new(:target=>file, :indent=>2)
xml.projectDescription do
- xml.name project.id
+ xml.name project.eclipse.name
xml.projects
unless project.eclipse.builders.empty?
xml.buildSpec do
@@ -330,8 +341,8 @@ module Buildr
# Write a classpathentry of kind 'src' for dependent projects.
# Accept an array of projects.
def src_projects project_libs
- project_libs.map(&:id).sort.uniq.each do |project_id|
- @xml.classpathentry :kind=>'src', :combineaccessrules=>'false', :path=>"/#{project_id}"
+ project_libs.map { |project| project.eclipse.name }.sort.uniq.each do |eclipse_name|
+ @xml.classpathentry :kind=>'src', :combineaccessrules=>'false', :path=>"/#{eclipse_name}"
end
end
Modified: buildr/trunk/spec/ide/eclipse_spec.rb
URL: http://svn.apache.org/viewvc/buildr/trunk/spec/ide/eclipse_spec.rb?rev=998463&r1=998462&r2=998463&view=diff
==============================================================================
--- buildr/trunk/spec/ide/eclipse_spec.rb (original)
+++ buildr/trunk/spec/ide/eclipse_spec.rb Sat Sep 18 13:01:08 2010
@@ -110,6 +110,15 @@ describe Buildr::Eclipse do
end
end
+ it 'should use eclipse project name if specified' do
+ define('foo') { eclipse.name = 'bar' }
+ task('eclipse').invoke
+ File.open('.project') do |f|
+ REXML::Document.new(f).root.
+ elements.collect("name") { |e| e.text }.should == ['bar']
+ end
+ end
+
it 'should not generate a .classpath file' do
define('foo')
task('eclipse').invoke
@@ -165,6 +174,32 @@ describe Buildr::Eclipse do
end
end
+ it 'should use eclipse name for child project if set' do
+ mkdir 'foo'
+ define('myproject') {
+ project.version = '1.0'
+ define('foo') { eclipse.name = 'bar'; compile.using(:javac); package :jar }
+ }
+ task('eclipse').invoke
+ File.open(File.join('foo', '.project')) do |f|
+ REXML::Document.new(f).root.
+ elements.collect("name") { |e| e.text }.should == ['bar']
+ end
+ end
+
+ it 'should use short name for child project if eclipse.options.short_names = true' do
+ mkdir 'foo'
+ define('myproject') {
+ project.version = '1.0'
+ eclipse.options.short_names = true
+ define('foo') { compile.using(:javac); package :jar }
+ }
+ task('eclipse').invoke
+ File.open(File.join('foo', '.project')) do |f|
+ REXML::Document.new(f).root.
+ elements.collect("name") { |e| e.text }.should == ['foo']
+ end
+ end
end
describe 'scala project' do
@@ -465,6 +500,21 @@ MANIFEST
elements.collect("classpathentry[@kind='src']") { |n| n.attributes['path'] }.should include('/myproject-foo')
end
end
+
+ it 'should use eclipse name in its classpath if set' do
+ mkdir 'foo'
+ mkdir 'bar'
+ define('myproject') {
+ project.version = '1.0'
+ define('foo') { eclipse.name = 'eclipsefoo'; package :jar }
+ define('bar') { eclipse.name = 'eclipsebar'; compile.using(:javac).with project('foo'); }
+ }
+ task('eclipse').invoke
+ File.open(File.join('bar', '.classpath')) do |f|
+ REXML::Document.new(f).root.
+ elements.collect("classpathentry[@kind='src']") { |n| n.attributes['path'] }.should include('/eclipsefoo')
+ end
+ end
end
end