You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@buildr.apache.org by Alex Boisvert <al...@gmail.com> on 2009/11/05 16:44:28 UTC

Re: Bug in linking additional test-folder?

(Moving to dev@)

This issue is due to how extensions are handled.

The Test module (which is an extension) adds test.compile.target to the
classpath:

# lib/buildr/core/test.rb
after_define do |project|
  ...
  test.dependencies.concat [test.compile.target,
test.resources.target].compact
  ...
end

but Peter's custom extension is run only after so the change to
test.compile.from (which affects the value of test.compile.target) isn't
taken into account:

after_define do |project|
  project.test.compile.from project._(:src, 'test-functional', :java)
end

and thus when JUnit runs the classpath is incorrect and it's too late to fix
anything since the classpath must be defined early for RJB to accept it.

I've come across the same kind of issue with Eclipse extensions as well...
and I think we need a way to define dependencies/ordering between extensions
so we can properly compose them.  Maybe we could borrow the same notation
from task dependencies?  e.g.,

after_define(:test => :my_extension)

after_define(:my_extension) do |project|
  ...
end

Thoughts?  Any better ideas?

alex

On Mon, Nov 2, 2009 at 6:02 AM, Peter Schröder <ps...@blau.de> wrote:

> Hi,
>
> I am experiencing a strange behavior of buildr when having an empty
> test-folder.
>
> See the example in the attachment, and look into the readme.txt for
> the problem.
>
> Kind regards
> Peter
>
>

Re: Bug in linking additional test-folder?

Posted by Alex Boisvert <al...@gmail.com>.
Ok, I've gone ahead and implemented dependency/ordering between extensions
(before_define / after_define)* à la Rake*.

https://svn.apache.org/viewvc?view=revision&revision=833791

alex

On Thu, Nov 5, 2009 at 7:44 AM, Alex Boisvert <al...@gmail.com>wrote:

> (Moving to dev@)
>
> This issue is due to how extensions are handled.
>
> The Test module (which is an extension) adds test.compile.target to the
> classpath:
>
> # lib/buildr/core/test.rb
> after_define do |project|
>   ...
>   test.dependencies.concat [test.compile.target,
> test.resources.target].compact
>   ...
> end
>
> but Peter's custom extension is run only after so the change to
> test.compile.from (which affects the value of test.compile.target) isn't
> taken into account:
>
> after_define do |project|
>   project.test.compile.from project._(:src, 'test-functional', :java)
> end
>
> and thus when JUnit runs the classpath is incorrect and it's too late to
> fix anything since the classpath must be defined early for RJB to accept it.
>
> I've come across the same kind of issue with Eclipse extensions as well...
> and I think we need a way to define dependencies/ordering between extensions
> so we can properly compose them.  Maybe we could borrow the same notation
> from task dependencies?  e.g.,
>
> after_define(:test => :my_extension)
>
> after_define(:my_extension) do |project|
>   ...
> end
>
> Thoughts?  Any better ideas?
>
> alex
>
> On Mon, Nov 2, 2009 at 6:02 AM, Peter Schröder <ps...@blau.de> wrote:
>
>> Hi,
>>
>> I am experiencing a strange behavior of buildr when having an empty
>> test-folder.
>>
>> See the example in the attachment, and look into the readme.txt for
>> the problem.
>>
>> Kind regards
>> Peter
>>
>>
>