diff --git a/README.md b/README.md index a0a91cc65..780f1d020 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Lifecycle](https://img.shields.io/osslifecycle/indeedeng/proctor.svg) -Proctor is a A/B testing framework written in Java that enables [data-driven product design](https://engineering.indeedblog.com/talks/data-driven-product-design/) at Indeed. +Proctor is an A/B testing framework written in Java that enables [data-driven product design](https://engineering.indeedblog.com/talks/data-driven-product-design/) at Indeed. Proctor consists of data-model, client specification, client loader, matrix builder, java code generator. diff --git a/proctor-common/src/main/java/com/indeed/proctor/common/el/LibraryFunctionMapper.java b/proctor-common/src/main/java/com/indeed/proctor/common/el/LibraryFunctionMapper.java index 38827d3a0..013c987f4 100644 --- a/proctor-common/src/main/java/com/indeed/proctor/common/el/LibraryFunctionMapper.java +++ b/proctor-common/src/main/java/com/indeed/proctor/common/el/LibraryFunctionMapper.java @@ -17,7 +17,6 @@ public class LibraryFunctionMapper extends FunctionMapper { @Nonnull private final Map> libraries = Maps.newHashMap(); - private static final int PUBLIC_AND_STATIC = Modifier.PUBLIC | Modifier.STATIC; public LibraryFunctionMapper(@Nonnull final Map> libraryClasses) { for (final Entry> entry : libraryClasses.entrySet()) { @@ -31,10 +30,9 @@ private Map extractFunctions(@Nonnull final Class c) { final Map libraryFunctions = Maps.newHashMap(); for (final Method m : c.getMethods()) { final int modifiers = m.getModifiers(); - if ((modifiers & PUBLIC_AND_STATIC) == 0) { - continue; + if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers)) { + libraryFunctions.put(m.getName(), m); } - libraryFunctions.put(m.getName(), m); } return libraryFunctions; } diff --git a/proctor-common/src/test/java/com/indeed/proctor/common/el/TestLibraryFunctionMapper.java b/proctor-common/src/test/java/com/indeed/proctor/common/el/TestLibraryFunctionMapper.java index d48cb710c..f8d79a5f3 100644 --- a/proctor-common/src/test/java/com/indeed/proctor/common/el/TestLibraryFunctionMapper.java +++ b/proctor-common/src/test/java/com/indeed/proctor/common/el/TestLibraryFunctionMapper.java @@ -6,6 +6,7 @@ import java.lang.reflect.Method; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; public class TestLibraryFunctionMapper { @@ -28,5 +29,8 @@ public void testConstruction() { final Method foundMeToo = mapper.resolveFunction(key, "findMeToo"); assertNotNull(foundMeToo); + + final Method notFound = mapper.resolveFunction(key, "toString"); + assertNull(notFound); } }