You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by do...@apache.org on 2013/10/23 01:50:23 UTC

svn commit: r1534859 - in /buildr/trunk: CHANGELOG lib/buildr/java/packaging.rb spec/java/packaging_spec.rb

Author: donaldp
Date: Tue Oct 22 23:50:23 2013
New Revision: 1534859

URL: http://svn.apache.org/r1534859
Log:
BUILDR-689 - Ensure that war file includes generated assets rather than the "source" assets that may have  been filtered.

Modified:
    buildr/trunk/CHANGELOG
    buildr/trunk/lib/buildr/java/packaging.rb
    buildr/trunk/spec/java/packaging_spec.rb

Modified: buildr/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=1534859&r1=1534858&r2=1534859&view=diff
==============================================================================
--- buildr/trunk/CHANGELOG (original)
+++ buildr/trunk/CHANGELOG Tue Oct 22 23:50:23 2013
@@ -1,4 +1,7 @@
 1.4.15 (Pending)
+* Fixed:  BUILDR-689 - Ensure that war file includes generated
+          assets rather than the "source" assets that may have
+          been filtered.
 * Fixed:  BUILDR-689 - Define assets task before the project is
           defined to avoid "undefined method `project='" if the
           project attempts to generate into the same directory.

Modified: buildr/trunk/lib/buildr/java/packaging.rb
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/packaging.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/java/packaging.rb (original)
+++ buildr/trunk/lib/buildr/java/packaging.rb Tue Oct 22 23:50:23 2013
@@ -684,12 +684,9 @@ module Buildr #:nodoc:
           # Add libraries in WEB-INF lib, and classes in WEB-INF classes
           war.with :classes=>[compile.target, resources.target].compact
           war.with :libs=>compile.dependencies
-          # Add included files, or the webapp directory.
-          assets.paths.each do |asset|
-            war.tap do |war|
-              war.enhance([asset])
-            end
-            war.include asset, :as => '.'
+          war.enhance([assets])
+          if !assets.paths.empty? || File.exist?(_(:source, :main, :webapp))
+            war.include assets.to_s, :as => '.'
           end
         end
       end

Modified: buildr/trunk/spec/java/packaging_spec.rb
URL: http://svn.apache.org/viewvc/buildr/trunk/spec/java/packaging_spec.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
==============================================================================
--- buildr/trunk/spec/java/packaging_spec.rb (original)
+++ buildr/trunk/spec/java/packaging_spec.rb Tue Oct 22 23:50:23 2013
@@ -550,6 +550,23 @@ describe Packaging, 'war' do
     inspect_war { |files| files.should include('test.html') }
   end
 
+  it 'should allow filtering into target directory' do
+    write 'src/main/webapp/test.html', '${version}'
+    define('foo', :version => '1.0') do
+      target_webapp = file("target/webapp") do |task|
+        filter('src/main/webapp/').
+          into(task.to_s).using('version' => '999').
+          run
+      end
+      package(:war)
+    end
+    inspect_war { |files| files.should include('test.html') }
+    cp project('foo').package(:war).to_s, '/tmp/x.zip'
+    Zip::ZipFile.open(project('foo').package(:war).to_s, false) do |war|
+      war.get_input_stream('test.html').read.should eql('999')
+    end
+  end
+
   it 'should accept files from :classes option' do
     write 'src/main/java/Test.java', 'class Test {}'
     write 'classes/test'



Re: svn commit: r1534859 - in /buildr/trunk: CHANGELOG lib/buildr/java/packaging.rb spec/java/packaging_spec.rb

Posted by Lacton <la...@apache.org>.
OK Peter. That's alright.

It was a nicely written test by the way. Very clear.

Cheers

Lacton


On Wed, Oct 23, 2013 at 12:43 PM, Peter Donald <pe...@realityforge.org>wrote:

> Oops - I seem to have left some debug code in. Removed now ...
>
> On Wed, Oct 23, 2013 at 9:18 PM, Lacton <la...@apache.org> wrote:
> > Donald,
> >
> > I'm puzzled by the line "cp project('foo').package(:war).to_s,
> > '/tmp/x.zip'".  What is the purpose of the x.zip file? Just curious.
> >
> > Cheers
> >
> > Lacton
> >
> >
> > On Wed, Oct 23, 2013 at 1:50 AM, <do...@apache.org> wrote:
> >
> >> Author: donaldp
> >> Date: Tue Oct 22 23:50:23 2013
> >> New Revision: 1534859
> >>
> >> URL: http://svn.apache.org/r1534859
> >> Log:
> >> BUILDR-689 - Ensure that war file includes generated assets rather than
> >> the "source" assets that may have  been filtered.
> >>
> >> Modified:
> >>     buildr/trunk/CHANGELOG
> >>     buildr/trunk/lib/buildr/java/packaging.rb
> >>     buildr/trunk/spec/java/packaging_spec.rb
> >>
> >> Modified: buildr/trunk/CHANGELOG
> >> URL:
> >>
> http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=1534859&r1=1534858&r2=1534859&view=diff
> >>
> >>
> ==============================================================================
> >> --- buildr/trunk/CHANGELOG (original)
> >> +++ buildr/trunk/CHANGELOG Tue Oct 22 23:50:23 2013
> >> @@ -1,4 +1,7 @@
> >>  1.4.15 (Pending)
> >> +* Fixed:  BUILDR-689 - Ensure that war file includes generated
> >> +          assets rather than the "source" assets that may have
> >> +          been filtered.
> >>  * Fixed:  BUILDR-689 - Define assets task before the project is
> >>            defined to avoid "undefined method `project='" if the
> >>            project attempts to generate into the same directory.
> >>
> >> Modified: buildr/trunk/lib/buildr/java/packaging.rb
> >> URL:
> >>
> http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/packaging.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
> >>
> >>
> ==============================================================================
> >> --- buildr/trunk/lib/buildr/java/packaging.rb (original)
> >> +++ buildr/trunk/lib/buildr/java/packaging.rb Tue Oct 22 23:50:23 2013
> >> @@ -684,12 +684,9 @@ module Buildr #:nodoc:
> >>            # Add libraries in WEB-INF lib, and classes in WEB-INF
> classes
> >>            war.with :classes=>[compile.target, resources.target].compact
> >>            war.with :libs=>compile.dependencies
> >> -          # Add included files, or the webapp directory.
> >> -          assets.paths.each do |asset|
> >> -            war.tap do |war|
> >> -              war.enhance([asset])
> >> -            end
> >> -            war.include asset, :as => '.'
> >> +          war.enhance([assets])
> >> +          if !assets.paths.empty? || File.exist?(_(:source, :main,
> >> :webapp))
> >> +            war.include assets.to_s, :as => '.'
> >>            end
> >>          end
> >>        end
> >>
> >> Modified: buildr/trunk/spec/java/packaging_spec.rb
> >> URL:
> >>
> http://svn.apache.org/viewvc/buildr/trunk/spec/java/packaging_spec.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
> >>
> >>
> ==============================================================================
> >> --- buildr/trunk/spec/java/packaging_spec.rb (original)
> >> +++ buildr/trunk/spec/java/packaging_spec.rb Tue Oct 22 23:50:23 2013
> >> @@ -550,6 +550,23 @@ describe Packaging, 'war' do
> >>      inspect_war { |files| files.should include('test.html') }
> >>    end
> >>
> >> +  it 'should allow filtering into target directory' do
> >> +    write 'src/main/webapp/test.html', '${version}'
> >> +    define('foo', :version => '1.0') do
> >> +      target_webapp = file("target/webapp") do |task|
> >> +        filter('src/main/webapp/').
> >> +          into(task.to_s).using('version' => '999').
> >> +          run
> >> +      end
> >> +      package(:war)
> >> +    end
> >> +    inspect_war { |files| files.should include('test.html') }
> >> +    cp project('foo').package(:war).to_s, '/tmp/x.zip'
> >> +    Zip::ZipFile.open(project('foo').package(:war).to_s, false) do
> |war|
> >> +      war.get_input_stream('test.html').read.should eql('999')
> >> +    end
> >> +  end
> >> +
> >>    it 'should accept files from :classes option' do
> >>      write 'src/main/java/Test.java', 'class Test {}'
> >>      write 'classes/test'
> >>
> >>
>
>
>
> --
> Cheers,
>
> Peter Donald

Re: svn commit: r1534859 - in /buildr/trunk: CHANGELOG lib/buildr/java/packaging.rb spec/java/packaging_spec.rb

Posted by Peter Donald <pe...@realityforge.org>.
Oops - I seem to have left some debug code in. Removed now ...

On Wed, Oct 23, 2013 at 9:18 PM, Lacton <la...@apache.org> wrote:
> Donald,
>
> I'm puzzled by the line "cp project('foo').package(:war).to_s,
> '/tmp/x.zip'".  What is the purpose of the x.zip file? Just curious.
>
> Cheers
>
> Lacton
>
>
> On Wed, Oct 23, 2013 at 1:50 AM, <do...@apache.org> wrote:
>
>> Author: donaldp
>> Date: Tue Oct 22 23:50:23 2013
>> New Revision: 1534859
>>
>> URL: http://svn.apache.org/r1534859
>> Log:
>> BUILDR-689 - Ensure that war file includes generated assets rather than
>> the "source" assets that may have  been filtered.
>>
>> Modified:
>>     buildr/trunk/CHANGELOG
>>     buildr/trunk/lib/buildr/java/packaging.rb
>>     buildr/trunk/spec/java/packaging_spec.rb
>>
>> Modified: buildr/trunk/CHANGELOG
>> URL:
>> http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=1534859&r1=1534858&r2=1534859&view=diff
>>
>> ==============================================================================
>> --- buildr/trunk/CHANGELOG (original)
>> +++ buildr/trunk/CHANGELOG Tue Oct 22 23:50:23 2013
>> @@ -1,4 +1,7 @@
>>  1.4.15 (Pending)
>> +* Fixed:  BUILDR-689 - Ensure that war file includes generated
>> +          assets rather than the "source" assets that may have
>> +          been filtered.
>>  * Fixed:  BUILDR-689 - Define assets task before the project is
>>            defined to avoid "undefined method `project='" if the
>>            project attempts to generate into the same directory.
>>
>> Modified: buildr/trunk/lib/buildr/java/packaging.rb
>> URL:
>> http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/packaging.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
>>
>> ==============================================================================
>> --- buildr/trunk/lib/buildr/java/packaging.rb (original)
>> +++ buildr/trunk/lib/buildr/java/packaging.rb Tue Oct 22 23:50:23 2013
>> @@ -684,12 +684,9 @@ module Buildr #:nodoc:
>>            # Add libraries in WEB-INF lib, and classes in WEB-INF classes
>>            war.with :classes=>[compile.target, resources.target].compact
>>            war.with :libs=>compile.dependencies
>> -          # Add included files, or the webapp directory.
>> -          assets.paths.each do |asset|
>> -            war.tap do |war|
>> -              war.enhance([asset])
>> -            end
>> -            war.include asset, :as => '.'
>> +          war.enhance([assets])
>> +          if !assets.paths.empty? || File.exist?(_(:source, :main,
>> :webapp))
>> +            war.include assets.to_s, :as => '.'
>>            end
>>          end
>>        end
>>
>> Modified: buildr/trunk/spec/java/packaging_spec.rb
>> URL:
>> http://svn.apache.org/viewvc/buildr/trunk/spec/java/packaging_spec.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
>>
>> ==============================================================================
>> --- buildr/trunk/spec/java/packaging_spec.rb (original)
>> +++ buildr/trunk/spec/java/packaging_spec.rb Tue Oct 22 23:50:23 2013
>> @@ -550,6 +550,23 @@ describe Packaging, 'war' do
>>      inspect_war { |files| files.should include('test.html') }
>>    end
>>
>> +  it 'should allow filtering into target directory' do
>> +    write 'src/main/webapp/test.html', '${version}'
>> +    define('foo', :version => '1.0') do
>> +      target_webapp = file("target/webapp") do |task|
>> +        filter('src/main/webapp/').
>> +          into(task.to_s).using('version' => '999').
>> +          run
>> +      end
>> +      package(:war)
>> +    end
>> +    inspect_war { |files| files.should include('test.html') }
>> +    cp project('foo').package(:war).to_s, '/tmp/x.zip'
>> +    Zip::ZipFile.open(project('foo').package(:war).to_s, false) do |war|
>> +      war.get_input_stream('test.html').read.should eql('999')
>> +    end
>> +  end
>> +
>>    it 'should accept files from :classes option' do
>>      write 'src/main/java/Test.java', 'class Test {}'
>>      write 'classes/test'
>>
>>



-- 
Cheers,

Peter Donald

Re: svn commit: r1534859 - in /buildr/trunk: CHANGELOG lib/buildr/java/packaging.rb spec/java/packaging_spec.rb

Posted by Lacton <la...@apache.org>.
Donald,

I'm puzzled by the line "cp project('foo').package(:war).to_s,
'/tmp/x.zip'".  What is the purpose of the x.zip file? Just curious.

Cheers

Lacton


On Wed, Oct 23, 2013 at 1:50 AM, <do...@apache.org> wrote:

> Author: donaldp
> Date: Tue Oct 22 23:50:23 2013
> New Revision: 1534859
>
> URL: http://svn.apache.org/r1534859
> Log:
> BUILDR-689 - Ensure that war file includes generated assets rather than
> the "source" assets that may have  been filtered.
>
> Modified:
>     buildr/trunk/CHANGELOG
>     buildr/trunk/lib/buildr/java/packaging.rb
>     buildr/trunk/spec/java/packaging_spec.rb
>
> Modified: buildr/trunk/CHANGELOG
> URL:
> http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=1534859&r1=1534858&r2=1534859&view=diff
>
> ==============================================================================
> --- buildr/trunk/CHANGELOG (original)
> +++ buildr/trunk/CHANGELOG Tue Oct 22 23:50:23 2013
> @@ -1,4 +1,7 @@
>  1.4.15 (Pending)
> +* Fixed:  BUILDR-689 - Ensure that war file includes generated
> +          assets rather than the "source" assets that may have
> +          been filtered.
>  * Fixed:  BUILDR-689 - Define assets task before the project is
>            defined to avoid "undefined method `project='" if the
>            project attempts to generate into the same directory.
>
> Modified: buildr/trunk/lib/buildr/java/packaging.rb
> URL:
> http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/packaging.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
>
> ==============================================================================
> --- buildr/trunk/lib/buildr/java/packaging.rb (original)
> +++ buildr/trunk/lib/buildr/java/packaging.rb Tue Oct 22 23:50:23 2013
> @@ -684,12 +684,9 @@ module Buildr #:nodoc:
>            # Add libraries in WEB-INF lib, and classes in WEB-INF classes
>            war.with :classes=>[compile.target, resources.target].compact
>            war.with :libs=>compile.dependencies
> -          # Add included files, or the webapp directory.
> -          assets.paths.each do |asset|
> -            war.tap do |war|
> -              war.enhance([asset])
> -            end
> -            war.include asset, :as => '.'
> +          war.enhance([assets])
> +          if !assets.paths.empty? || File.exist?(_(:source, :main,
> :webapp))
> +            war.include assets.to_s, :as => '.'
>            end
>          end
>        end
>
> Modified: buildr/trunk/spec/java/packaging_spec.rb
> URL:
> http://svn.apache.org/viewvc/buildr/trunk/spec/java/packaging_spec.rb?rev=1534859&r1=1534858&r2=1534859&view=diff
>
> ==============================================================================
> --- buildr/trunk/spec/java/packaging_spec.rb (original)
> +++ buildr/trunk/spec/java/packaging_spec.rb Tue Oct 22 23:50:23 2013
> @@ -550,6 +550,23 @@ describe Packaging, 'war' do
>      inspect_war { |files| files.should include('test.html') }
>    end
>
> +  it 'should allow filtering into target directory' do
> +    write 'src/main/webapp/test.html', '${version}'
> +    define('foo', :version => '1.0') do
> +      target_webapp = file("target/webapp") do |task|
> +        filter('src/main/webapp/').
> +          into(task.to_s).using('version' => '999').
> +          run
> +      end
> +      package(:war)
> +    end
> +    inspect_war { |files| files.should include('test.html') }
> +    cp project('foo').package(:war).to_s, '/tmp/x.zip'
> +    Zip::ZipFile.open(project('foo').package(:war).to_s, false) do |war|
> +      war.get_input_stream('test.html').read.should eql('999')
> +    end
> +  end
> +
>    it 'should accept files from :classes option' do
>      write 'src/main/java/Test.java', 'class Test {}'
>      write 'classes/test'
>
>