Author: jbellis Date: Thu Jul 15 19:40:19 2010 New Revision: 964550 URL: http://svn.apache.org/viewvc?rev=964550&view=rev Log: get cassandra release version via JMX. patch by mdennis; reviewed by jbellis for CASSANDRA-1031
Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=964550&r1=964549&r2=964550&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java Thu Jul 15 19:40:19 2010 @@ -331,7 +331,7 @@ public class StorageService implements I public synchronized void initServer() throws IOException { - logger_.info("Cassandra version: " + FBUtilities.getCassandraVersionString()); + logger_.info("Cassandra version: " + FBUtilities.getReleaseVersionString()); logger_.info("Thrift API version: " + Constants.VERSION); if (initialized) @@ -995,13 +995,18 @@ public class StorageService implements I return storageMetadata_.getToken(); } - /* This methods belong to the MBean interface */ + /* These methods belong to the MBean interface */ public String getToken() { return getLocalToken().toString(); } + public String getReleaseVersion() + { + return FBUtilities.getReleaseVersionString(); + } + public Set<String> getLeavingNodes() { return stringify(tokenMetadata_.getLeavingEndpoints()); Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java?rev=964550&r1=964549&r2=964550&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageServiceMBean.java Thu Jul 15 19:40:19 2010 @@ -73,6 +73,12 @@ public interface StorageServiceMBean public String getToken(); /** + * Fetch a string representation of the Cassandra version. + * @return A string representation of the Cassandra version. + */ + public String getReleaseVersion(); + + /** * Retrieve a map of range to end points that describe the ring topology * of a Cassandra cluster. * Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java?rev=964550&r1=964549&r2=964550&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/tools/NodeCmd.java Thu Jul 15 19:40:19 2010 @@ -75,7 +75,7 @@ public class NodeCmd { { HelpFormatter hf = new HelpFormatter(); String header = String.format( - "%nAvailable commands: ring, info, cleanup, compact, cfstats, snapshot [snapshotname], clearsnapshot, " + + "%nAvailable commands: ring, info, version, cleanup, compact, cfstats, snapshot [snapshotname], clearsnapshot, " + "tpstats, flush, drain, repair, decommission, move, loadbalance, removetoken, " + "setcachecapacity <keyspace> <cfname> <keycachecapacity> <rowcachecapacity>, " + "getcompactionthreshold, setcompactionthreshold [minthreshold] ([maxthreshold]), " + @@ -189,6 +189,11 @@ public class NodeCmd { outs.println(String.format("%-17s: %.2f / %.2f", "Heap Memory (MB)", memUsed, memMax)); } + public void printReleaseVersion(PrintStream outs) + { + outs.println("ReleaseVersion: " + probe.getReleaseVersion()); + } + public void printStreamInfo(final InetAddress addr, PrintStream outs) { outs.println(String.format("Mode: %s", probe.getOperationMode())); @@ -556,6 +561,10 @@ public class NodeCmd { String otherHost = arguments.length > 1 ? arguments[1] : null; nodeCmd.printStreamInfo(otherHost == null ? null : InetAddress.getByName(otherHost), System.out); } + else if (cmdName.equals("version")) + { + nodeCmd.printReleaseVersion(System.out); + } else { System.err.println("Unrecognized command: " + cmdName + "."); Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java?rev=964550&r1=964549&r2=964550&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/tools/NodeProbe.java Thu Jul 15 19:40:19 2010 @@ -237,7 +237,12 @@ public class NodeProbe { return ssProxy.getLoadString(); } - + + public String getReleaseVersion() + { + return ssProxy.getReleaseVersion(); + } + public int getCurrentGenerationNumber() { return ssProxy.getCurrentGenerationNumber(); Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java?rev=964550&r1=964549&r2=964550&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java Thu Jul 15 19:40:19 2010 @@ -25,7 +25,6 @@ import java.net.URL; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; -import java.nio.charset.CharsetDecoder; import java.security.MessageDigest; import java.util.*; import java.util.concurrent.ExecutionException; @@ -508,7 +507,7 @@ public class FBUtilities return scpurl.getFile(); } - public static String getCassandraVersionString() + public static String getReleaseVersionString() { try {