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'


Reply via email to