[spring-extensions] branch master updated: JSPT-79 - Review date and time handling for Java 8

Scott Cantor cantor.2 at osu.edu
Fri Mar 1 13:09:38 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=345af06718a1bf352158d79863044d7b5bf00615

The following commit(s) were added to refs/heads/master by this push:
       new  345af06   JSPT-79 - Review date and time handling for Java 8
345af06 is described below

commit 345af06718a1bf352158d79863044d7b5bf00615
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Mar 1 13:09:35 2019 -0500

    JSPT-79 - Review date and time handling for Java 8
    
    https://issues.shibboleth.net/jira/browse/JSPT-79
---
 pom.xml                                             |  4 ----
 .../spring/config/BooleanToPredicateConverter.java  |  2 +-
 .../ext/spring/config/DurationToLongConverter.java  | 18 ++++--------------
 .../config/IdentifiableBeanPostProcessor.java       |  4 ++--
 .../config/StringBooleanToPredicateConverter.java   |  2 +-
 ...onverter.java => StringToDurationConverter.java} | 21 +++++++++++++--------
 .../ext/spring/config/StringToIPRangeConverter.java |  2 +-
 .../spring/config/StringToResourceConverter.java    |  7 +++----
 .../ext/spring/resource/HTTPResourceTest.java       |  4 ++--
 .../spring/service/ReloadableSpringServiceTest.java |  4 ++--
 10 files changed, 29 insertions(+), 39 deletions(-)

diff --git a/pom.xml b/pom.xml
index f65cba2..706652f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,10 +112,6 @@
             <!-- Required if you're using classes from the velocity package -->
             <optional>true</optional>
         </dependency>
-        <dependency>
-            <groupId>joda-time</groupId>
-            <artifactId>joda-time</artifactId>
-        </dependency>
 
         <!-- Provided dependencies -->
         <dependency>
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 1547122..ae1e1e2 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
@@ -29,7 +29,7 @@ import com.google.common.base.Predicates;
 public class BooleanToPredicateConverter implements Converter<Boolean,Predicate<?>> {
 
     /** {@inheritDoc} */
-    @Override public Predicate<?> convert(final Boolean source) {
+    public Predicate<?> convert(final Boolean source) {
         return source ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
     }
     
diff --git a/src/main/java/net/shibboleth/ext/spring/config/DurationToLongConverter.java b/src/main/java/net/shibboleth/ext/spring/config/DurationToLongConverter.java
index 47c74ee..84e48fa 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/DurationToLongConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/DurationToLongConverter.java
@@ -17,13 +17,9 @@
 
 package net.shibboleth.ext.spring.config;
 
-import javax.annotation.Nonnull;
-
 import net.shibboleth.utilities.java.support.annotation.Duration;
 import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.core.convert.TypeDescriptor;
 import org.springframework.core.convert.converter.ConditionalConverter;
 import org.springframework.core.convert.converter.Converter;
@@ -33,24 +29,18 @@ import org.springframework.core.convert.converter.Converter;
  */
 public class DurationToLongConverter implements Converter<String,Long>, ConditionalConverter {
 
-    /** Logger. */
-    @Nonnull private Logger log = LoggerFactory.getLogger(DurationToLongConverter.class);
-
     /** {@inheritDoc} */
-    @Override public Long convert(final String source) {
+    public Long convert(final String source) {
         if (source.startsWith("P") || source.startsWith("-P")) {
             return DOMTypeSupport.durationToLong(source.trim());
         } else {
-            // Treat as a milliseconds.  But note this
-            final long duration = Long.valueOf(source);
-            log.info("Deprecated duration of {} was specified. Use XML duration of {}", source,
-                    DOMTypeSupport.longToDuration(duration));
-            return duration;
+            // Treat as a milliseconds.
+            return Long.valueOf(source);
         }
     }
 
     /** {@inheritDoc} */
-    @Override public boolean matches(final TypeDescriptor sourceType, final TypeDescriptor targetType) {
+    public boolean matches(final TypeDescriptor sourceType, final TypeDescriptor targetType) {
         return targetType.hasAnnotation(Duration.class);
     }
 
diff --git a/src/main/java/net/shibboleth/ext/spring/config/IdentifiableBeanPostProcessor.java b/src/main/java/net/shibboleth/ext/spring/config/IdentifiableBeanPostProcessor.java
index 6793544..b791142 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/IdentifiableBeanPostProcessor.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/IdentifiableBeanPostProcessor.java
@@ -34,7 +34,7 @@ public class IdentifiableBeanPostProcessor implements BeanPostProcessor {
     @Nonnull private final Logger log = LoggerFactory.getLogger(IdentifiableBeanPostProcessor.class);
 
     /** {@inheritDoc} */
-    @Override public Object postProcessBeforeInitialization(final Object bean, final String beanName) {
+    public Object postProcessBeforeInitialization(final Object bean, final String beanName) {
         if (bean instanceof IdentifiableComponent) {
             final IdentifiableComponent component = (IdentifiableComponent) bean;
             if (component.getId() == null) {
@@ -52,7 +52,7 @@ public class IdentifiableBeanPostProcessor implements BeanPostProcessor {
     }
 
     /** {@inheritDoc} */
-    @Override public Object postProcessAfterInitialization(final Object bean, final String beanName) {
+    public Object postProcessAfterInitialization(final Object bean, final String beanName) {
         return bean;
     }
 
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 9411ef6..032d7e3 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/StringBooleanToPredicateConverter.java
@@ -38,7 +38,7 @@ public class StringBooleanToPredicateConverter implements Converter<String,Predi
     @Nonnull private final Logger log = LoggerFactory.getLogger(StringBooleanToPredicateConverter.class);
 
     /** {@inheritDoc} */
-    @Override public Predicate<?> convert(final String source) {
+    public Predicate<?> convert(final String source) {
         
         final String trimmed = StringSupport.trimOrNull(source);
         if (Boolean.valueOf(trimmed)) {
diff --git a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java b/src/main/java/net/shibboleth/ext/spring/config/StringToDurationConverter.java
similarity index 63%
copy from src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
copy to src/main/java/net/shibboleth/ext/spring/config/StringToDurationConverter.java
index 1547122..85e6d62 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/BooleanToPredicateConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/StringToDurationConverter.java
@@ -17,20 +17,25 @@
 
 package net.shibboleth.ext.spring.config;
 
-import java.util.function.Predicate;
+import java.time.Duration;
 
-import org.springframework.core.convert.converter.Converter;
+import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
 
-import com.google.common.base.Predicates;
+import org.springframework.core.convert.converter.Converter;
 
 /**
- * Allows setting of fixed {@link Predicate} properties using a boolean value.
+ * Allows setting of Duration-valued properties using lexical string form.
  */
-public class BooleanToPredicateConverter implements Converter<Boolean,Predicate<?>> {
+public class StringToDurationConverter implements Converter<String,Duration> {
 
     /** {@inheritDoc} */
-    @Override public Predicate<?> convert(final Boolean source) {
-        return source ? Predicates.alwaysTrue() : Predicates.alwaysFalse();
+    public Duration convert(final String source) {
+        if (source.startsWith("P") || source.startsWith("-P")) {
+            return Duration.ofMillis(DOMTypeSupport.durationToLong(source.trim()));
+        } else {
+            // Treat as milliseconds.
+            return Duration.ofMillis(Long.valueOf(source));
+        }
     }
-    
+
 }
\ No newline at end of file
diff --git a/src/main/java/net/shibboleth/ext/spring/config/StringToIPRangeConverter.java b/src/main/java/net/shibboleth/ext/spring/config/StringToIPRangeConverter.java
index 4993521..35f009d 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/StringToIPRangeConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/StringToIPRangeConverter.java
@@ -28,7 +28,7 @@ import org.springframework.core.convert.converter.Converter;
 public class StringToIPRangeConverter implements Converter<String,IPRange> {
 
     /** {@inheritDoc} */
-    @Override public IPRange convert(final String source) {
+    public IPRange convert(final String source) {
         return IPRange.parseCIDRBlock(source);
     }
     
diff --git a/src/main/java/net/shibboleth/ext/spring/config/StringToResourceConverter.java b/src/main/java/net/shibboleth/ext/spring/config/StringToResourceConverter.java
index 53e54a8..3572a62 100644
--- a/src/main/java/net/shibboleth/ext/spring/config/StringToResourceConverter.java
+++ b/src/main/java/net/shibboleth/ext/spring/config/StringToResourceConverter.java
@@ -19,13 +19,13 @@ package net.shibboleth.ext.spring.config;
 
 import javax.annotation.Nullable;
 
+import net.shibboleth.ext.spring.resource.PreferFileSystemResourceLoader;
 import net.shibboleth.ext.spring.resource.ResourceHelper;
 import net.shibboleth.utilities.java.support.resource.Resource;
 
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.core.convert.converter.Converter;
-import org.springframework.core.io.DefaultResourceLoader;
 import org.springframework.core.io.ResourceLoader;
 
 /**
@@ -39,14 +39,13 @@ public class StringToResourceConverter implements Converter<String, Resource>, A
     @Nullable private ApplicationContext applicationContext;
 
     /** {@inheritDoc} */
-    @Override
     public Resource convert(final String source) {
-        final ResourceLoader loader = applicationContext == null ? new DefaultResourceLoader() : applicationContext;
+        final ResourceLoader loader =
+                applicationContext == null ? new PreferFileSystemResourceLoader() : applicationContext;
         return ResourceHelper.of(loader.getResource(source));
     }
 
     /** {@inheritDoc} */
-    @Override
     public void setApplicationContext(final ApplicationContext context) {
         applicationContext = context;
     }
diff --git a/src/test/java/net/shibboleth/ext/spring/resource/HTTPResourceTest.java b/src/test/java/net/shibboleth/ext/spring/resource/HTTPResourceTest.java
index f03cf76..f11c641 100644
--- a/src/test/java/net/shibboleth/ext/spring/resource/HTTPResourceTest.java
+++ b/src/test/java/net/shibboleth/ext/spring/resource/HTTPResourceTest.java
@@ -23,6 +23,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.attribute.PosixFilePermission;
 import java.nio.file.attribute.PosixFilePermissions;
+import java.time.Instant;
 import java.util.Collection;
 import java.util.Set;
 
@@ -31,7 +32,6 @@ import org.apache.http.client.cache.CacheResponseStatus;
 import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.http.client.protocol.HttpClientContext;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
-import org.joda.time.DateTime;
 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.io.ClassPathResource;
@@ -125,7 +125,7 @@ public class HTTPResourceTest {
 
         final long when = child.lastModified();
         final long size = child.contentLength();
-        final String whenAsString = new DateTime(when).toString();
+        final String whenAsString = Instant.ofEpochMilli(when).toString();
 
         Assert.assertEquals(when, 1205848652000L, "Expected date of " + whenAsString + " did not match)");
         Assert.assertEquals(size, 20784226L, "Size mismatch");
diff --git a/src/test/java/net/shibboleth/ext/spring/service/ReloadableSpringServiceTest.java b/src/test/java/net/shibboleth/ext/spring/service/ReloadableSpringServiceTest.java
index 52373eb..e062a0c 100644
--- a/src/test/java/net/shibboleth/ext/spring/service/ReloadableSpringServiceTest.java
+++ b/src/test/java/net/shibboleth/ext/spring/service/ReloadableSpringServiceTest.java
@@ -21,12 +21,12 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.time.Instant;
 import java.util.Collections;
 
 import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.utilities.java.support.service.ServiceableComponent;
 
-import org.joda.time.DateTime;
 import org.springframework.beans.factory.BeanInitializationException;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.io.ClassPathResource;
@@ -128,7 +128,7 @@ public class ReloadableSpringServiceTest {
         ServiceableComponent<TestServiceableComponent> serviceableComponent = service.getServiceableComponent();
         final TestServiceableComponent component = serviceableComponent.getComponent();
         
-        final DateTime x = service.getLastReloadAttemptInstant();
+        final Instant x = service.getLastReloadAttemptInstant();
         Assert.assertEquals(x,  service.getLastSuccessfulReloadInstant());
 
         Assert.assertEquals(component.getTheValue(), "One");

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


More information about the commits mailing list