This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch ISIS-1846_internal_utils
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/ISIS-1846_internal_utils by 
this push:
     new 03823d7  ISIS-1827 guava free drop-in replacement for all 
ExceptionRecognizers
03823d7 is described below

commit 03823d7f3ce95d73f944fc935e1a1dfd930f5177
Author: Andi Huber <ahu...@apache.org>
AuthorDate: Mon Jan 22 21:39:07 2018 +0100

    ISIS-1827 guava free drop-in replacement for all ExceptionRecognizers
---
 .../exceprecog/ExceptionRecognizerAbstract.java    | 57 ++++++++++++++++----
 .../exceprecog/ExceptionRecognizerForType.java     |  1 +
 ...rType.java => ExceptionRecognizerForType2.java} | 63 +++++++++++-----------
 ...xceptionRecognizerForJDODataStoreException.java |  4 +-
 ...traintViolationForeignKeyNoActionException.java | 17 +++---
 ...ionRecognizerForJDOObjectNotFoundException.java |  5 +-
 ...yConstraintViolationUniqueOrIndexException.java | 17 +++---
 7 files changed, 104 insertions(+), 60 deletions(-)

diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
index 43628bd..f586624 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
@@ -20,18 +20,20 @@ package org.apache.isis.applib.services.exceprecog;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
-import com.google.common.base.Function;
-import com.google.common.base.Functions;
-import com.google.common.base.Predicate;
-import com.google.common.base.Throwables;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.services.i18n.TranslationService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Throwables;
 
 /**
  * Abstract implementation of {@link ExceptionRecognizer} that looks 
@@ -93,11 +95,14 @@ public abstract class ExceptionRecognizerAbstract 
implements ExceptionRecognizer
     private boolean logRecognizedExceptions;
 
     // //////////////////////////////////////
-
+    
+    // -- JAVA 8+
+    
     public ExceptionRecognizerAbstract(final Category category, 
Predicate<Throwable> predicate, final Function<String,String> messageParser) {
-        this.category = category;
+       Objects.requireNonNull(predicate);
+       this.category = category;
         this.predicate = predicate;
-        this.messageParser = messageParser != null? messageParser: 
Functions.<String>identity();
+        this.messageParser = messageParser != null ? messageParser : 
Function.identity();
     }
 
     public ExceptionRecognizerAbstract(Predicate<Throwable> predicate, final 
Function<String,String> messageParser) {
@@ -112,6 +117,38 @@ public abstract class ExceptionRecognizerAbstract 
implements ExceptionRecognizer
         this(Category.OTHER, predicate);
     }
 
+    // -- GUAVA LEGACY
+    
+    @Deprecated //TODO ISIS-1827 remove guava from public API
+    public ExceptionRecognizerAbstract(final Category category, 
+               com.google.common.base.Predicate<Throwable> predicate, 
+               final com.google.common.base.Function<String,String> 
messageParser) {
+       Objects.requireNonNull(predicate);
+        this.category = category;
+        this.predicate = predicate::apply;
+        this.messageParser = messageParser != null ? messageParser::apply : 
Function.identity();
+    }
+
+    @Deprecated //TODO ISIS-1827 remove guava from public API
+    public ExceptionRecognizerAbstract(
+               com.google.common.base.Predicate<Throwable> predicate, 
+               final com.google.common.base.Function<String,String> 
messageParser) {
+        this(Category.OTHER, predicate, messageParser);
+    }
+
+    @Deprecated //TODO ISIS-1827 remove guava from public API
+    public ExceptionRecognizerAbstract(Category category, 
com.google.common.base.Predicate<Throwable> predicate) {
+        this(category, predicate, null);
+    }
+
+    @Deprecated //TODO ISIS-1827 remove guava from public API
+    public 
ExceptionRecognizerAbstract(com.google.common.base.Predicate<Throwable> 
predicate) {
+        this(Category.OTHER, predicate);
+    }
+
+    // --
+    
+    
 
     @PostConstruct
     public void init(Map<String, String> properties) {
@@ -129,7 +166,7 @@ public abstract class ExceptionRecognizerAbstract 
implements ExceptionRecognizer
     public String recognize(Throwable ex) {
         List<Throwable> causalChain = Throwables.getCausalChain(ex);
         for (Throwable throwable : causalChain) {
-            if(predicate.apply(throwable)) {
+            if(predicate.test(throwable)) {
                 if(logRecognizedExceptions) {
                     LOG.info("Recognized exception, stacktrace : ", throwable);
                 }
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
index fa5b652..ff3653c 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
@@ -35,6 +35,7 @@ import com.google.common.base.Throwables;
  * If a messaging-parsing {@link Function} is provided through the constructor,
  * then the message can be altered.  Otherwise the exception's {@link 
Throwable#getMessage() message} is returned as-is.
  */
+@Deprecated //TODO ISIS-1827 remove guava from public API
 public class ExceptionRecognizerForType extends ExceptionRecognizerAbstract {
 
     protected final static Predicate<Throwable> ofTypeExcluding(final Class<? 
extends Throwable> exceptionType, final String... messages) {
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType2.java
similarity index 73%
copy from 
core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
copy to 
core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType2.java
index fa5b652..99a9ab8 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForType2.java
@@ -19,10 +19,11 @@
 package org.apache.isis.applib.services.exceprecog;
 
 import java.util.List;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
 import javax.jdo.JDODataStoreException;
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
+
 import com.google.common.base.Throwables;
 
 /**
@@ -35,23 +36,18 @@ import com.google.common.base.Throwables;
  * If a messaging-parsing {@link Function} is provided through the constructor,
  * then the message can be altered.  Otherwise the exception's {@link 
Throwable#getMessage() message} is returned as-is.
  */
-public class ExceptionRecognizerForType extends ExceptionRecognizerAbstract {
-
-    protected final static Predicate<Throwable> ofTypeExcluding(final Class<? 
extends Throwable> exceptionType, final String... messages) {
-        return Predicates.and(ofType(exceptionType), excluding(messages));
+public class ExceptionRecognizerForType2 extends ExceptionRecognizerAbstract {
+       
+       protected final static Predicate<Throwable> ofTypeExcluding(final 
Class<? extends Throwable> exceptionType, final String... messages) {
+        return ofType(exceptionType).and(excluding(messages));
     }
 
     protected final static Predicate<Throwable> ofTypeIncluding(final Class<? 
extends Throwable> exceptionType, final String... messages) {
-        return Predicates.and(ofType(exceptionType), including(messages));
+        return ofType(exceptionType).and(including(messages));
     }
     
     protected final static Predicate<Throwable> ofType(final Class<? extends 
Throwable> exceptionType) {
-        return new Predicate<Throwable>() {
-            @Override
-            public boolean apply(Throwable input) {
-                return exceptionType.isAssignableFrom(input.getClass());
-            }
-        };
+        return input->exceptionType.isAssignableFrom(input.getClass());
     }
     
     /**
@@ -63,9 +59,7 @@ public class ExceptionRecognizerForType extends 
ExceptionRecognizerAbstract {
      * Intended to prevent too eager matching of an overly general exception 
type.
      */
     protected final static Predicate<Throwable> excluding(final String... 
messages) {
-        return new Predicate<Throwable>() {
-            @Override
-            public boolean apply(Throwable input) {
+        return input->{
                 final List<Throwable> causalChain = 
Throwables.getCausalChain(input);
                 for (String message : messages) {
                     for (Throwable throwable : causalChain) {
@@ -86,8 +80,8 @@ public class ExceptionRecognizerForType extends 
ExceptionRecognizerAbstract {
                     }
                 }
                 return true;
-            }
-        };
+            };
+
     }
 
     /**
@@ -99,9 +93,7 @@ public class ExceptionRecognizerForType extends 
ExceptionRecognizerAbstract {
      * Intended to prevent more precise matching of a specific general 
exception type.
      */
     protected final static Predicate<Throwable> including(final String... 
messages) {
-        return new Predicate<Throwable>() {
-            @Override
-            public boolean apply(Throwable input) {
+        return input->{
                 final List<Throwable> causalChain = 
Throwables.getCausalChain(input);
                 for (String message : messages) {
                     for (Throwable throwable : causalChain) {
@@ -112,32 +104,41 @@ public class ExceptionRecognizerForType extends 
ExceptionRecognizerAbstract {
                     }
                 }
                 return false;
-            }
-        };
+            };
     }
 
-    public ExceptionRecognizerForType(Category category, final Class<? extends 
Exception> exceptionType, final Function<String,String> messageParser) {
+    public ExceptionRecognizerForType2(
+               Category category, 
+               final Class<? extends Exception> exceptionType, 
+               final Function<String,String> messageParser) {
         this(category, ofType(exceptionType), messageParser);
     }
     
-    public ExceptionRecognizerForType(Category category, final 
Predicate<Throwable> predicate, final Function<String,String> messageParser) {
+    public ExceptionRecognizerForType2(
+               Category category, 
+               final Predicate<Throwable> predicate, 
+               final Function<String,String> messageParser) {
         super(category, predicate, messageParser);
     }
     
-    public ExceptionRecognizerForType(Category category, Class<? extends 
Exception> exceptionType) {
+    public ExceptionRecognizerForType2(Category category, Class<? extends 
Exception> exceptionType) {
         this(category, exceptionType, null);
     }
 
-    public ExceptionRecognizerForType(final Class<? extends Exception> 
exceptionType, final Function<String,String> messageParser) {
+    public ExceptionRecognizerForType2(
+               final Class<? extends Exception> exceptionType, 
+               final Function<String,String> messageParser) {
         this(Category.OTHER, exceptionType, messageParser);
     }
 
-    public ExceptionRecognizerForType(final Predicate<Throwable> predicate, 
final Function<String,String> messageParser) {
+    public ExceptionRecognizerForType2(
+               final Predicate<Throwable> predicate, 
+               final Function<String,String> messageParser) {
         this(Category.OTHER, predicate, messageParser);
     }
 
-    public ExceptionRecognizerForType(Class<? extends Exception> 
exceptionType) {
+    public ExceptionRecognizerForType2(Class<? extends Exception> 
exceptionType) {
         this(Category.OTHER, exceptionType);
     }
-
+       
 }
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreException.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreException.java
index b52fc16..2273bbe 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreException.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreException.java
@@ -18,9 +18,9 @@
  */
 package org.apache.isis.applib.services.exceprecog.jdo;
 
-import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType2;
 
-public class ExceptionRecognizerForJDODataStoreException extends 
ExceptionRecognizerForType {
+public class ExceptionRecognizerForJDODataStoreException extends 
ExceptionRecognizerForType2 {
 
     public ExceptionRecognizerForJDODataStoreException() {
         super(Category.SERVER_ERROR,
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException.java
index c9d4717..0e495a6 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException.java
@@ -19,14 +19,17 @@
 package org.apache.isis.applib.services.exceprecog.jdo;
 
 import javax.jdo.JDODataStoreException;
-import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType2;
 
-public class 
ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException
 extends ExceptionRecognizerForType {
+public class 
ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException
 
+extends ExceptionRecognizerForType2 {
 
-    public 
ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException()
 {
-        super(Category.CONSTRAINT_VIOLATION,
-              ofTypeIncluding(JDODataStoreException.class, "integrity 
constraint violation: foreign key no action"),
-                prefix("Related data exists"));
-    }
+       public 
ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException()
 {
+               super(Category.CONSTRAINT_VIOLATION,
+                               ofTypeIncluding(
+                                               JDODataStoreException.class, 
+                                               "integrity constraint 
violation: foreign key no action"),
+                               prefix("Related data exists"));
+       }
 
 }
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDOObjectNotFoundException.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDOObjectNotFoundException.java
index 594fbac..ec315c3 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDOObjectNotFoundException.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForJDOObjectNotFoundException.java
@@ -18,10 +18,9 @@
  */
 package org.apache.isis.applib.services.exceprecog.jdo;
 
-import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType2;
 
-public class ExceptionRecognizerForJDOObjectNotFoundException
-        extends ExceptionRecognizerForType {
+public class ExceptionRecognizerForJDOObjectNotFoundException extends 
ExceptionRecognizerForType2 {
 
     public ExceptionRecognizerForJDOObjectNotFoundException() {
         super(Category.NOT_FOUND,
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException.java
index eee0462..cf74abe 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/jdo/ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException.java
@@ -18,14 +18,17 @@
  */
 package org.apache.isis.applib.services.exceprecog.jdo;
 
-import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerForType2;
 
-public class 
ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException 
extends ExceptionRecognizerForType {
+public class 
ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException 
+extends ExceptionRecognizerForType2 {
 
-    public 
ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException() {
-        super(Category.CONSTRAINT_VIOLATION,
-              
ofTypeIncluding(java.sql.SQLIntegrityConstraintViolationException.class, 
"unique constraint or index violation"),
-                prefix("Data already exists"));
-    }
+       public 
ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException() {
+               super(Category.CONSTRAINT_VIOLATION,
+                               ofTypeIncluding(
+                                               
java.sql.SQLIntegrityConstraintViolationException.class, 
+                                               "unique constraint or index 
violation"),
+                               prefix("Data already exists"));
+       }
 
 }

-- 
To stop receiving notification emails like this one, please contact
ahu...@apache.org.

Reply via email to