[spring-extensions] branch master updated: IDP-1405 - Remove use of Guava Function/Predicate interfaces

Scott Cantor cantor.2 at osu.edu
Tue Feb 5 10:48:21 EST 2019


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository spring-extensions.

View the commit online:
http://git.shibboleth.net/view/?p=spring-extensions.git;a=commit;h=9ee1577da676838ad9063b5ea3179d86720e36da

The following commit(s) were added to refs/heads/master by this push:
       new  9ee1577   IDP-1405 - Remove use of Guava Function/Predicate interfaces
9ee1577 is described below

commit 9ee1577da676838ad9063b5ea3179d86720e36da
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Feb 1 16:09:33 2019 -0500

    IDP-1405 - Remove use of Guava Function/Predicate interfaces
    
    https://issues.shibboleth.net/jira/browse/IDP-1405
    
    Add predicate/function converters.
---
 .../ext/spring/config/BooleanToPredicateConverter.java    |  3 ++-
 ...ateConverter.java => FunctionToFunctionConverter.java} | 15 +++++++++------
 ...eConverter.java => PredicateToPredicateConverter.java} | 15 +++++++++------
 .../spring/config/StringBooleanToPredicateConverter.java  |  3 ++-
 .../spring/error/ExtendedMappingExceptionResolver.java    |  3 +--
 .../spring/service/ApplicationContextServiceStrategy.java |  7 +++----
 .../ext/spring/service/ClassBasedServiceStrategy.java     |  5 ++---
 .../ext/spring/service/ReloadableSpringService.java       |  2 +-
 .../ext/spring/util/ApplicationContextBuilder.java        |  6 +++++-
 .../ext/spring/util/SpringExpressionFunction.java         |  6 +++---
 .../ext/spring/util/SpringExpressionPredicate.java        |  6 +++---
 .../shibboleth/ext/spring/util/SpringExpressionTest.java  |  4 ++--
 src/test/resources/logback-test.xml                       |  2 +-
 13 files changed, 43 insertions(+), 34 deletions(-)

diff --git a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java b/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
index cc289ed..1547122 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
@@ -17,9 +17,10 @@
 
 package net.shibboleth.ext.spring.config;
 
+import java.util.function.Predicate;
+
 import org.springframework.core.convert.converter.Converter;
 
-import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 
 /**
diff --git a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java b/src/main/java/net/shibboleth/ext/spring/config/FunctionToFunctionConverter.java
similarity index 59%
copy from src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
copy to src/main/java/net/shibboleth/ext/spring/config/FunctionToFunctionConverter.java
index cc289ed..7b21b5d 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/FunctionToFunctionConverter.java
@@ -19,17 +19,20 @@ package net.shibboleth.ext.spring.config;
 
 import org.springframework.core.convert.converter.Converter;
 
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 
 /**
- * Allows setting of fixed {@link Predicate} properties using a boolean value.
+ * Auto-converts standard Java functions to Guava's version for legacy compatibility.
  */
-public class BooleanToPredicateConverter implements Converter<Boolean,Predicate<?>> {
+public class FunctionToFunctionConverter
+        implements Converter<java.util.function.Function,com.google.common.base.Function> {
 
     /** {@inheritDoc} */
-    @Override public Predicate<?> convert(final Boolean source) {
-        return source ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+    public com.google.common.base.Function convert(final java.util.function.Function source) {
+        DeprecationSupport.warn(ObjectType.CLASS, com.google.common.base.Function.class.getName(), null,
+                java.util.function.Function.class.getName());
+        return source::apply;
     }
     
 }
\ No newline at end of file
diff --git a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java b/src/main/java/net/shibboleth/ext/spring/config/PredicateToPredicateConverter.java
similarity index 59%
copy from src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
copy to src/main/java/net/shibboleth/ext/spring/config/PredicateToPredicateConverter.java
index cc289ed..58f161d 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/PredicateToPredicateConverter.java
@@ -19,17 +19,20 @@ package net.shibboleth.ext.spring.config;
 
 import org.springframework.core.convert.converter.Converter;
 
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 
 /**
- * Allows setting of fixed {@link Predicate} properties using a boolean value.
+ * Auto-converts standard Java predicates to Guava's version for legacy compatibility.
  */
-public class BooleanToPredicateConverter implements Converter<Boolean,Predicate<?>> {
+public class PredicateToPredicateConverter
+        implements Converter<java.util.function.Predicate,com.google.common.base.Predicate> {
 
     /** {@inheritDoc} */
-    @Override public Predicate<?> convert(final Boolean source) {
-        return source ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+    public com.google.common.base.Predicate convert(final java.util.function.Predicate source) {
+        DeprecationSupport.warn(ObjectType.CLASS, com.google.common.base.Predicate.class.getName(), null,
+                java.util.function.Predicate.class.getName());
+        return source::test;
     }
     
 }
\ No newline at end of file
diff --git a/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java b/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
index e189b7d..9411ef6 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
@@ -17,6 +17,8 @@
 
 package net.shibboleth.ext.spring.config;
 
+import java.util.function.Predicate;
+
 import javax.annotation.Nonnull;
 
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -25,7 +27,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.convert.converter.Converter;
 
-import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 
 /**
diff --git a/src/main/java/net/shibboleth/ext/spring/error/ExtendedMappingExceptionResolver.java b/src/main/java/net/shibboleth/ext/spring/error/ExtendedMappingExceptionResolver.java
index b864b85..439a76e 100644
--- a/src/main/java/net/shibboleth/ext/spring/error/ExtendedMappingExceptionResolver.java
+++ b/src/main/java/net/shibboleth/ext/spring/error/ExtendedMappingExceptionResolver.java
@@ -18,6 +18,7 @@
 package net.shibboleth.ext.spring.error;
 
 import java.util.Map;
+import java.util.function.Function;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -32,8 +33,6 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;
 
-import com.google.common.base.Function;
-
 /**
  * Custom Spring exception to view mapper that populates the view model with data
  * obtained via an extension function.
diff --git a/src/main/java/net/shibboleth/ext/spring/service/ApplicationContextServiceStrategy.java b/src/main/java/net/shibboleth/ext/spring/service/ApplicationContextServiceStrategy.java
index e983a1b..e4c20fc 100644
--- a/src/main/java/net/shibboleth/ext/spring/service/ApplicationContextServiceStrategy.java
+++ b/src/main/java/net/shibboleth/ext/spring/service/ApplicationContextServiceStrategy.java
@@ -17,6 +17,8 @@
 
 package net.shibboleth.ext.spring.service;
 
+import java.util.function.Function;
+
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
@@ -27,8 +29,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationContext;
 
-import com.google.common.base.Function;
-
 /**
  * Strategy for summoning up an {@link ApplicationContextServiceableComponent} wrapper
  * around a populated {@link ApplicationContext}.
@@ -42,8 +42,7 @@ public class ApplicationContextServiceStrategy implements
     @Nonnull private final Logger log = LoggerFactory.getLogger(ApplicationContextServiceStrategy.class);
     
     /** {@inheritDoc} */
-    @Override @Nullable public ServiceableComponent<ApplicationContext> apply(
-            @Nullable final ApplicationContext appContext) {
+    @Nullable public ServiceableComponent<ApplicationContext> apply(@Nullable final ApplicationContext appContext) {
 
         if (appContext != null) {
             final ApplicationContextServiceableComponent wrapper = new ApplicationContextServiceableComponent();
diff --git a/src/main/java/net/shibboleth/ext/spring/service/ClassBasedServiceStrategy.java b/src/main/java/net/shibboleth/ext/spring/service/ClassBasedServiceStrategy.java
index f0f2bea..4a7dbd3 100644
--- a/src/main/java/net/shibboleth/ext/spring/service/ClassBasedServiceStrategy.java
+++ b/src/main/java/net/shibboleth/ext/spring/service/ClassBasedServiceStrategy.java
@@ -18,14 +18,13 @@
 package net.shibboleth.ext.spring.service;
 
 import java.util.Collection;
+import java.util.function.Function;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.springframework.context.ApplicationContext;
 
-import com.google.common.base.Function;
-
 import net.shibboleth.utilities.java.support.annotation.ParameterName;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.service.ServiceException;
@@ -59,7 +58,7 @@ public class ClassBasedServiceStrategy<T> implements Function<ApplicationContext
     }
 
     /** {@inheritDoc} */
-    @Override @Nullable public ServiceableComponent<T> apply(@Nullable final ApplicationContext appContext) {
+    @Nullable public ServiceableComponent<T> apply(@Nullable final ApplicationContext appContext) {
         final Collection<? extends ServiceableComponent> components = appContext.getBeansOfType(serviceClaz).values();
 
         if (components.size() == 0) {
diff --git a/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java b/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java
index a6ccf39..ba2944e 100644
--- a/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java
+++ b/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.function.Function;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -52,7 +53,6 @@ import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.convert.ConversionService;
 import org.springframework.core.io.Resource;
 
-import com.google.common.base.Function;
 import com.google.common.base.Predicates;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableList;
diff --git a/src/main/java/net/shibboleth/ext/spring/util/ApplicationContextBuilder.java b/src/main/java/net/shibboleth/ext/spring/util/ApplicationContextBuilder.java
index 3df801e..514e45c 100644
--- a/src/main/java/net/shibboleth/ext/spring/util/ApplicationContextBuilder.java
+++ b/src/main/java/net/shibboleth/ext/spring/util/ApplicationContextBuilder.java
@@ -29,6 +29,8 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.ext.spring.config.BooleanToPredicateConverter;
 import net.shibboleth.ext.spring.config.DurationToLongConverter;
+import net.shibboleth.ext.spring.config.FunctionToFunctionConverter;
+import net.shibboleth.ext.spring.config.PredicateToPredicateConverter;
 import net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter;
 import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
 import net.shibboleth.ext.spring.config.StringToResourceConverter;
@@ -284,7 +286,9 @@ public class ApplicationContextBuilder {
                     new StringToIPRangeConverter(),
                     new BooleanToPredicateConverter(),
                     new StringBooleanToPredicateConverter(),
-                    new StringToResourceConverter())));
+                    new StringToResourceConverter(),
+                    new PredicateToPredicateConverter(),
+                    new FunctionToFunctionConverter())));
             service.afterPropertiesSet();
             context.getBeanFactory().setConversionService(service.getObject());
         }
diff --git a/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionFunction.java b/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionFunction.java
index 1199888..1f920b6 100644
--- a/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionFunction.java
+++ b/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionFunction.java
@@ -17,14 +17,14 @@
 
 package net.shibboleth.ext.spring.util;
 
+import java.util.function.Function;
+
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import net.shibboleth.utilities.java.support.annotation.ParameterName;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 
-import com.google.common.base.Function;
-
 /**
  * Function whose output is defined by an Spring EL expression.
  * 
@@ -46,8 +46,8 @@ public class SpringExpressionFunction<T,U> extends AbstractSpringExpressionEvalu
     }
 
     /** {@inheritDoc} */
-    @Override
     public U apply(@Nullable final T input) {
         return evaluate(input);
     }
+    
 }
\ No newline at end of file
diff --git a/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionPredicate.java b/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionPredicate.java
index 500127c..ac82b85 100644
--- a/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionPredicate.java
+++ b/src/main/java/net/shibboleth/ext/spring/util/SpringExpressionPredicate.java
@@ -22,7 +22,7 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.utilities.java.support.annotation.ParameterName;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import com.google.common.base.Predicate;
+import net.shibboleth.utilities.java.support.logic.Predicate;
 
 /**
  * Predicate whose condition is defined by an Spring EL expression.
@@ -54,8 +54,8 @@ public class SpringExpressionPredicate<T> extends AbstractSpringExpressionEvalua
     }
 
     /** {@inheritDoc} */
-    @Override
-    public boolean apply(@Nullable final T input) {
+    public boolean test(@Nullable final T input) {
         return evaluate(input);
     }
+    
 }
\ No newline at end of file
diff --git a/src/test/java/net/shibboleth/ext/spring/util/SpringExpressionTest.java b/src/test/java/net/shibboleth/ext/spring/util/SpringExpressionTest.java
index 9a0c608..9391504 100644
--- a/src/test/java/net/shibboleth/ext/spring/util/SpringExpressionTest.java
+++ b/src/test/java/net/shibboleth/ext/spring/util/SpringExpressionTest.java
@@ -36,11 +36,11 @@ public class SpringExpressionTest {
         
         SpringExpressionPredicate predicate = new SpringExpressionPredicate<>("#input.getValue99() == 99");
         
-        Assert.assertTrue(predicate.apply(this));
+        Assert.assertTrue(predicate.test(this));
         
         predicate = new SpringExpressionPredicate<>("#input.getValue99() == #custom");
         predicate.setCustomObject(99);
-        Assert.assertTrue(predicate.apply(this));
+        Assert.assertTrue(predicate.test(this));
 
     }
 
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
index 4cfbb12..f92b9e4 100644
--- a/src/test/resources/logback-test.xml
+++ b/src/test/resources/logback-test.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 
-    <logger name="net.shibboleth.ext.spring" level="TRACE"/>
+    <logger name="net.shibboleth.ext.spring" level="DEBUG"/>
     <logger name="net.shibboleth.utilities" level="DEBUG"/>
 
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list