killbill-aplcache

server: add support for MariaDB in CleanupListener Signed-off-by:

4/14/2015 1:52:24 PM

Details

diff --git a/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java b/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java
index c0079d4..902ba81 100644
--- a/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java
+++ b/profiles/killbill/src/main/java/org/killbill/billing/server/listeners/CleanupListener.java
@@ -28,8 +28,6 @@ import javax.servlet.ServletContextListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.mysql.jdbc.AbandonedConnectionCleanupThread;
-
 public class CleanupListener implements ServletContextListener {
 
     private static final Logger logger = LoggerFactory.getLogger(CleanupListener.class);
@@ -52,9 +50,20 @@ public class CleanupListener implements ServletContextListener {
 
         // See http://docs.oracle.com/cd/E17952_01/connector-j-relnotes-en/news-5-1-23.html
         try {
-            AbandonedConnectionCleanupThread.shutdown();
+            Class.forName("com.mysql.jdbc.AbandonedConnectionCleanupThread");
+            com.mysql.jdbc.AbandonedConnectionCleanupThread.shutdown();
         } catch (final InterruptedException e) {
             logger.warn("Unable to shutdown MySQL threads", e);
+        } catch (final ClassNotFoundException ignored) {
+            // MySQL driver not used
+        }
+
+        // See https://mariadb.atlassian.net/browse/CONJ-61
+        try {
+            Class.forName("org.mariadb.jdbc.Driver");
+            org.mariadb.jdbc.Driver.unloadDriver();
+        } catch (final ClassNotFoundException ignored) {
+            // MariaDB driver not used
         }
     }
 }