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}"