You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by dj...@apache.org on 2009/06/15 21:58:55 UTC

svn commit: r784953 - in /buildr/trunk/lib/buildr/java: org/apache/buildr/JavaTestFilter.class org/apache/buildr/JavaTestFilter.java tests.rb

Author: djspiewak
Date: Mon Jun 15 19:58:54 2009
New Revision: 784953

URL: http://svn.apache.org/viewvc?rev=784953&view=rev
Log:
Added support field-based class filtering

Modified:
    buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.class
    buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.java
    buildr/trunk/lib/buildr/java/tests.rb

Modified: buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.class
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.class?rev=784953&r1=784952&r2=784953&view=diff
==============================================================================
Files buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.class (original) and buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.class Mon Jun 15 19:58:54 2009 differ

Modified: buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.java
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.java?rev=784953&r1=784952&r2=784953&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.java (original)
+++ buildr/trunk/lib/buildr/java/org/apache/buildr/JavaTestFilter.java Mon Jun 15 19:58:54 2009
@@ -18,6 +18,7 @@
 package org.apache.buildr;
 
 import java.lang.reflect.Method;
+import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.io.File;
 import java.io.IOException;
@@ -33,6 +34,7 @@
   private Vector methodAnnotations = new Vector();
   private Vector classAnnotations = new Vector();
   private Vector interfaces = new Vector();
+  private Vector fieldNames = new Vector();
 
   public JavaTestFilter(String[] paths) throws IOException {
     URL[] urls = new URL[paths.length];
@@ -70,6 +72,14 @@
     return this;
   }
   
+  public JavaTestFilter addFields(String[] names) {
+    for (int i = names.length; i -- > 0;) {
+      String name = names[i];
+      fieldNames.add(name);
+    }
+    return this;
+  }
+  
   private boolean isTest(Class cls) {
     if (Modifier.isAbstract(cls.getModifiers()) || !Modifier.isPublic(cls.getModifiers()))
       return false;
@@ -94,6 +104,14 @@
         }
       }
     }
+    if (fieldNames != null) {
+      Field[] fields = cls.getFields();
+      for (int j = 0; j < fields.length; j++) {
+        for (Iterator it = fieldNames.iterator(); it.hasNext(); ) {
+          if (fields[j].getName().equals(it.next())) { return true; }
+        }
+      }
+    }
     return false;
   }
 

Modified: buildr/trunk/lib/buildr/java/tests.rb
URL: http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/tests.rb?rev=784953&r1=784952&r2=784953&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/java/tests.rb (original)
+++ buildr/trunk/lib/buildr/java/tests.rb Mon Jun 15 19:58:54 2009
@@ -46,6 +46,7 @@
     # * :interfaces -- List of java interfaces or java classes
     # * :class_annotations -- List of annotations on class level
     # * :method_annotations -- List of annotations on method level
+    # * :fields -- List of java field names
     #
     def filter_classes(dependencies, criteria = {})
       return [] unless task.compile.target
@@ -69,6 +70,9 @@
         if criteria[:method_annotations]
           filter.add_method_annotations(criteria[:method_annotations].to_java(Java.java.lang.String))
         end
+        if criteria[:fields]
+          filter.add_fields(criteria[:fields].to_java(Java.java.lang.String))
+        end
         result.concat filter.filter(candidates.to_java(Java.java.lang.String)).map(&:to_s)
       rescue =>ex
         info "#{ex.class}: #{ex.message}"