<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #--
-# (c) Copyright 2007-2008 Sun Microsystems, Inc.
+# (c) Copyright 2007-2009 Sun Microsystems, Inc.
 # See the file LICENSES.txt included with the distribution for
 # software license details.
 #++
@@ -227,7 +227,11 @@ module Warbler
     end
 
     def define_webinf_file_tasks
-      target_files = @config.dirs.map do |d|
+      target_files = @config.dirs.select do |d|
+        exists = File.directory?(d)
+        warn &quot;warning: application directory `#{d}' does not exist or is not a directory; skipping&quot; unless exists
+        exists
+      end.map do |d|
         define_file_task(d, &quot;#{@config.staging_dir}/#{apply_pathmaps(d, :application)}&quot;)
       end
       files = FileList[*(@config.dirs.map{|d| &quot;#{d}/**/*&quot;})]</diff>
      <filename>lib/warbler/task.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 #--
-# (c) Copyright 2007-2008 Sun Microsystems, Inc.
+# (c) Copyright 2007-2009 Sun Microsystems, Inc.
 # See the file LICENSES.txt included with the distribution for
 # software license details.
 #++
@@ -36,7 +36,9 @@ describe Warbler::Task do
     @defined_tasks ||= []
     tasks.each do |task|
       unless @defined_tasks.include?(task)
-        Warbler::Task.new &quot;warble&quot;, @config, &quot;define_#{task}_task&quot;.to_sym do |t|
+        meth = &quot;define_#{task}_task&quot;
+        meth = &quot;define_#{task}_tasks&quot; unless Warbler::Task.private_instance_methods.include?(meth)
+        Warbler::Task.new &quot;warble&quot;, @config, meth.to_sym do |t|
           options.each {|k,v| t.send &quot;#{k}=&quot;, v }
         end
         @defined_tasks &lt;&lt; task
@@ -438,6 +440,14 @@ describe Warbler::Task do
     @config.webxml.booter.should == :rails
     @config.webxml.jruby.max.runtimes.should == 1
   end
+
+  it &quot;should skip directories that don't exist in config.dirs and print a warning&quot; do
+    @config = Warbler::Config.new
+    @config.dirs = %w(lib notexist)
+    define_tasks &quot;webinf_file&quot;
+    Rake.application.lookup(&quot;#{@config.staging_dir}/WEB-INF/lib&quot;).should_not be_nil
+    Rake.application.lookup(&quot;#{@config.staging_dir}/WEB-INF/notexist&quot;).should be_nil
+  end
 end
 
 describe &quot;The warbler.rake file&quot; do</diff>
      <filename>spec/warbler/task_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
 
   s.required_rubygems_version = Gem::Requirement.new(&quot;&gt;= 0&quot;) if s.respond_to? :required_rubygems_version=
   s.authors = [&quot;Nick Sieger&quot;]
-  s.date = %q{2008-12-18}
+  s.date = %q{2009-01-21}
   s.default_executable = %q{warble}
   s.description = %q{= Warbler}
   s.email = %q{nick@nicksieger.com}</diff>
      <filename>warbler.gemspec</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>786d3301dc0b013ae38c038ff484621ddc580f67</id>
    </parent>
  </parents>
  <author>
    <name>Nick Sieger</name>
    <email>nick@nicksieger.com</email>
  </author>
  <url>http://github.com/nicksieger/warbler/commit/73b6914f416fcc63be412518d961120c4ca5b302</url>
  <id>73b6914f416fcc63be412518d961120c4ca5b302</id>
  <committed-date>2009-02-06T08:16:29-08:00</committed-date>
  <authored-date>2009-02-06T08:16:29-08:00</authored-date>
  <message>Add warning message for directories that don't exist in config.dirs</message>
  <tree>3cc6a9903dda14c328141b0c3609630e33551037</tree>
  <committer>
    <name>Nick Sieger</name>
    <email>nick@nicksieger.com</email>
  </committer>
</commit>
