Author: rgodfrey
Date: Thu Dec  1 17:48:56 2016
New Revision: 1772241

URL: http://svn.apache.org/viewvc?rev=1772241&view=rev
Log:
QPID-7561 : Only make Derby backed VirtualHost(Node)s available if the derby 
driver is present

Modified:
    
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java
    
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHostImpl.java
    
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhostnode/derby/DerbyVirtualHostNodeImpl.java

Modified: 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java?rev=1772241&r1=1772240&r2=1772241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/store/derby/DerbyUtils.java
 Thu Dec  1 17:48:56 2016
@@ -24,7 +24,7 @@ package org.apache.qpid.server.store.der
 import java.io.File;
 import java.io.IOException;
 import java.io.Writer;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.sql.Blob;
 import java.sql.Connection;
 import java.sql.Driver;
@@ -40,15 +40,14 @@ import org.apache.qpid.server.store.Stor
 
 public class DerbyUtils
 {
-    public static final String MEMORY_STORE_LOCATION = ":memory:";
-    public static final String DERBY_SINGLE_DB_SHUTDOWN_CODE = "08006";
+    static final String MEMORY_STORE_LOCATION = ":memory:";
+    private static final String DERBY_SINGLE_DB_SHUTDOWN_CODE = "08006";
     private static final String SQL_DRIVER_NAME = 
"org.apache.derby.jdbc.EmbeddedDriver";
     private static final String TABLE_EXISTENCE_QUERY = "SELECT 1 FROM 
SYS.SYSTABLES WHERE TABLENAME = ?";
-    private static final Charset UTF8_CHARSET = Charset.forName("UTF-8");
 
     private static final Logger DERBY_LOG = LoggerFactory.getLogger("DERBY");
-    public static final DerbyLogWriter DERBY_LOG_WRITER = new DerbyLogWriter();
-    public static final String DERBY_STREAM_ERROR_METHOD = 
"derby.stream.error.method";
+    private static final DerbyLogWriter DERBY_LOG_WRITER = new 
DerbyLogWriter();
+    private static final String DERBY_STREAM_ERROR_METHOD = 
"derby.stream.error.method";
 
     public static void configureDerbyLogging()
     {
@@ -59,6 +58,19 @@ public class DerbyUtils
         }
     }
 
+    public static boolean isAvailable()
+    {
+        try
+        {
+            Class.forName(SQL_DRIVER_NAME);
+            return true;
+        }
+        catch (ClassNotFoundException | NoClassDefFoundError e)
+        {
+            return false;
+        }
+    }
+
     public static void loadDerbyDriver()
     {
         try
@@ -136,7 +148,7 @@ public class DerbyUtils
             return null;
         }
         byte[] bytes = blob.getBytes(1, (int) blob.length());
-        return new String(bytes, UTF8_CHARSET);
+        return new String(bytes, StandardCharsets.UTF_8);
     }
 
     protected static byte[] getBlobAsBytes(ResultSet rs, int col) throws 
SQLException

Modified: 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHostImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHostImpl.java?rev=1772241&r1=1772240&r2=1772241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHostImpl.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHostImpl.java
 Thu Dec  1 17:48:56 2016
@@ -50,7 +50,7 @@ public class DerbyVirtualHostImpl extend
     @ManagedAttributeField
     private Long _storeOverfullSize;
 
-    @ManagedObjectFactoryConstructor
+    @ManagedObjectFactoryConstructor(conditionallyAvailable = true, condition 
= "org.apache.qpid.server.store.derby.DerbyUtils#isAvailable()")
     public DerbyVirtualHostImpl(final Map<String, Object> attributes,
                                 final VirtualHostNode<?> virtualHostNode)
     {

Modified: 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhostnode/derby/DerbyVirtualHostNodeImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhostnode/derby/DerbyVirtualHostNodeImpl.java?rev=1772241&r1=1772240&r2=1772241&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhostnode/derby/DerbyVirtualHostNodeImpl.java
 (original)
+++ 
qpid/java/trunk/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhostnode/derby/DerbyVirtualHostNodeImpl.java
 Thu Dec  1 17:48:56 2016
@@ -54,7 +54,7 @@ public class DerbyVirtualHostNodeImpl ex
     @ManagedAttributeField
     private String _storePath;
 
-    @ManagedObjectFactoryConstructor
+    @ManagedObjectFactoryConstructor(conditionallyAvailable = true, condition 
= "org.apache.qpid.server.store.derby.DerbyUtils#isAvailable()")
     public DerbyVirtualHostNodeImpl(Map<String, Object> attributes, Broker<?> 
parent)
     {
         super(attributes, parent);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to