Author: kwall
Date: Mon Sep 28 17:57:23 2015
New Revision: 1705735
URL: http://svn.apache.org/viewvc?rev=1705735&view=rev
Log:
QPID-6760: [Java Client] Make connection metadata provide useful version
information
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/QpidConnectionMetaData.java
qpid/java/trunk/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java?rev=1705735&r1=1705734&r2=1705735&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
Mon Sep 28 17:57:23 2015
@@ -474,7 +474,7 @@ public class AMQConnection extends Close
makeConnection();
}
- _connectionMetaData = new QpidConnectionMetaData(this);
+ _connectionMetaData = new QpidConnectionMetaData();
}
private void makeConnection() throws QpidException
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/QpidConnectionMetaData.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/QpidConnectionMetaData.java?rev=1705735&r1=1705734&r2=1705735&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/QpidConnectionMetaData.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/QpidConnectionMetaData.java
Mon Sep 28 17:57:23 2015
@@ -28,14 +28,6 @@ import java.util.Enumeration;
public class QpidConnectionMetaData implements ConnectionMetaData
{
-
- private AMQConnection con;
-
- QpidConnectionMetaData(AMQConnection conn)
- {
- this.con = conn;
- }
-
public int getJMSMajorVersion() throws JMSException
{
return 1;
@@ -63,34 +55,28 @@ public class QpidConnectionMetaData impl
public int getProviderMajorVersion() throws JMSException
{
- return con.getProtocolVersion().getMajorVersion();
+ return CommonProperties.getReleaseVersionMajor();
}
public int getProviderMinorVersion() throws JMSException
{
- return con.getProtocolVersion().getMinorVersion();
+ return CommonProperties.getReleaseVersionMinor();
}
public String getProviderVersion() throws JMSException
{
- return CommonProperties.getProductName() + " (Client: [" +
getClientVersion() + "] ; Broker [" + getBrokerVersion() + "] ; Protocol: [ "
- + getProtocolVersion() + "] )";
- }
-
- private String getProtocolVersion()
- {
- return con.getProtocolVersion().toString();
+ return CommonProperties.getProductName()
+ + " (Client: [" + CommonProperties.getReleaseVersion() + "])";
}
public String getBrokerVersion()
{
- // TODO - get broker version
- return "<unkown>";
+ return "<unknown>";
}
public String getClientVersion()
{
- return CommonProperties.getBuildVersion();
+ return CommonProperties.getReleaseVersion();
}
Modified:
qpid/java/trunk/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java?rev=1705735&r1=1705734&r2=1705735&view=diff
==============================================================================
---
qpid/java/trunk/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java
(original)
+++
qpid/java/trunk/common/src/main/java/org/apache/qpid/configuration/CommonProperties.java
Mon Sep 28 17:57:23 2015
@@ -28,6 +28,8 @@ import java.net.URL;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -77,6 +79,12 @@ public class CommonProperties
/** Holds the product version. */
private static final String releaseVersion;
+ /** Holds the product major version - derived from the releaseVersion */
+ private static final int releaseVersionMajor;
+
+ /** Holds the product minor version - derived from the releaseVersion */
+ private static final int releaseVersionMinor;
+
/** Holds the source code revision. */
private static final String buildVersion;
@@ -92,6 +100,19 @@ public class CommonProperties
productName = properties.getProperty(PRODUCT_NAME_PROPERTY, DEFAULT);
String version = properties.getProperty(RELEASE_VERSION_PROPERTY,
DEFAULT);
+ Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+).*");
+ Matcher m = pattern.matcher(version);
+ if (m.matches())
+ {
+ releaseVersionMajor = Integer.parseInt(m.group(1));
+ releaseVersionMinor = Integer.parseInt(m.group(2));
+ }
+ else
+ {
+ LOGGER.warn("Failed to parse major and minor release number from
'{}')", version);
+ releaseVersionMajor = -1;
+ releaseVersionMinor = -1;
+ }
boolean loadFromFile = true;
String initialProperties =
System.getProperty("qpid.common_properties_file");
@@ -146,6 +167,26 @@ public class CommonProperties
}
/**
+ * Gets the product major version.
+ *
+ * @return The product major version.
+ */
+ public static int getReleaseVersionMajor()
+ {
+ return releaseVersionMajor;
+ }
+
+ /**
+ * Gets the product minor version.
+ *
+ * @return The product version.
+ */
+ public static int getReleaseVersionMinor()
+ {
+ return releaseVersionMinor;
+ }
+
+ /**
* Gets the source code revision.
*
* @return The source code revision.
@@ -195,13 +236,13 @@ public class CommonProperties
}
catch (IOException e)
{
- LOGGER.warn("Could not load properties file '" +
resourceLocation + "'.", e);
+ LOGGER.warn("Could not load properties file '{}'.",
resourceLocation, e);
}
}
}
catch (MalformedURLException e)
{
- LOGGER.warn("Could not open properties file '" + resourceLocation
+ "'.", e);
+ LOGGER.warn("Could not open properties file '{}'.",
resourceLocation, e);
}
}
Modified:
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java?rev=1705735&r1=1705734&r2=1705735&view=diff
==============================================================================
---
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java
(original)
+++
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRAConnectionMetaData.java
Mon Sep 28 17:57:23 2015
@@ -41,9 +41,6 @@ public class QpidRAConnectionMetaData im
/** The logger */
private static final Logger _log =
LoggerFactory.getLogger(QpidRAConnectionMetaData.class);
- private static final String PROVIDER_VERSION ;
- private static final int PROVIDER_MAJOR ;
- private static final int PROVIDER_MINOR ;
private static final String[] JMSX_PROPERTY_NAMES ;
/**
@@ -124,7 +121,7 @@ public class QpidRAConnectionMetaData im
_log.trace("getProviderVersion()");
}
- return PROVIDER_VERSION ;
+ return CommonProperties.getReleaseVersion() ;
}
/**
@@ -138,7 +135,7 @@ public class QpidRAConnectionMetaData im
_log.trace("getProviderMajorVersion()");
}
- return PROVIDER_MAJOR ;
+ return CommonProperties.getReleaseVersionMajor() ;
}
/**
@@ -152,7 +149,7 @@ public class QpidRAConnectionMetaData im
_log.trace("getProviderMinorVersion()");
}
- return PROVIDER_MINOR ;
+ return CommonProperties.getReleaseVersionMinor() ;
}
/**
@@ -167,22 +164,6 @@ public class QpidRAConnectionMetaData im
static
{
- final String version = CommonProperties.getReleaseVersion() ;
- int major = -1 ;
- int minor = -1 ;
- if (version != null)
- {
- final int separator = version.indexOf('.') ;
- if (separator != -1)
- {
- major = parseInt(version.substring(0, separator),
"major") ;
- minor = parseInt(version.substring(separator+1,
version.length()), "minor") ;
- }
- }
- PROVIDER_VERSION = version ;
- PROVIDER_MAJOR = major ;
- PROVIDER_MINOR = minor ;
-
final CustomJMSXProperty[] properties = CustomJMSXProperty.values();
final String[] names = new String[properties.length] ;
int count = 0 ;
@@ -192,17 +173,4 @@ public class QpidRAConnectionMetaData im
}
JMSX_PROPERTY_NAMES = names ;
}
-
- private static int parseInt(final String value, final String name)
- {
- try
- {
- return Integer.parseInt(value) ;
- }
- catch (final NumberFormatException nfe)
- {
- _log.warn("Failed to parse " + name + ": " + value) ;
- return -1 ;
- }
- }
}
Modified:
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java?rev=1705735&r1=1705734&r2=1705735&view=diff
==============================================================================
---
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
(original)
+++
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
Mon Sep 28 17:57:23 2015
@@ -20,7 +20,10 @@
*/
package org.apache.qpid.test.unit.client.connection;
+import java.util.Enumeration;
+
import javax.jms.Connection;
+import javax.jms.ConnectionMetaData;
import javax.jms.QueueSession;
import javax.jms.TopicSession;
@@ -189,7 +192,7 @@ public class ConnectionTest extends Qpid
{
if (!(amqe instanceof AMQUnresolvedAddressException))
{
- fail("Correct exception not thrown. Excpected
'AMQUnresolvedAddressException' got: " + amqe);
+ fail("Correct exception not thrown. Expected
'AMQUnresolvedAddressException' got: " + amqe);
}
}
finally
@@ -216,7 +219,7 @@ public class ConnectionTest extends Qpid
{
if (!(amqe instanceof AMQConnectionFailureException))
{
- fail("Correct exception not thrown. Excpected
'AMQConnectionFailureException' got: " + amqe);
+ fail("Correct exception not thrown. Expected
'AMQConnectionFailureException' got: " + amqe);
}
}
finally
@@ -337,7 +340,8 @@ public class ConnectionTest extends Qpid
}
catch (Exception e)
{
- fail("Unexpected exception thrown, client id was not unique but
usernames were different! " + e.getMessage());
+ fail("Unexpected exception thrown, client id was not unique but
usernames were different! "
+ + e.getMessage());
}
}
@@ -369,4 +373,21 @@ public class ConnectionTest extends Qpid
}
}
}
+
+ public void testConnectionMetadata() throws Exception
+ {
+ Connection con = getConnection();
+ ConnectionMetaData metaData = con.getMetaData();
+ assertNotNull(metaData);
+
+ assertNotNull("Provider version unexpectedly null",
metaData.getProviderVersion());
+ assertTrue("Provider version unexpectedly empty",
metaData.getProviderVersion().length() > 0);
+
+ assertTrue("Provider major version has unexpected value",
metaData.getProviderMajorVersion() > -1);
+ assertTrue("Provider minor version has unexpected value",
metaData.getProviderMinorVersion() > -1);
+
+ Enumeration names = metaData.getJMSXPropertyNames();
+ assertNotNull("JMSXPropertyNames unexpectedly null", names);
+ assertTrue("JMSXPropertyNames should have at least one name",
names.hasMoreElements());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]