5 commented on code in PR #47: URL: https://github.com/apache/cassandra-sidecar/pull/47#discussion_r1213717641
########## common/src/main/java/org/apache/cassandra/sidecar/common/NodeSettings.java: ########## @@ -16,33 +16,75 @@ * limitations under the License. */ - package org.apache.cassandra.sidecar.common; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; import java.util.Objects; import com.fasterxml.jackson.annotation.JsonProperty; +import org.apache.commons.io.IOUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Holds information about the specific node settings */ public class NodeSettings { - private final String releaseVersion; + private static final Logger LOGGER = LoggerFactory.getLogger(NodeSettings.class); + private static final String SIDECAR_VERSION = getSidecarVersion(); + private final String partitioner; + private final String releaseVersion; + private final String sidecarVersion; + + private static String getSidecarVersion() + { + try (InputStream version = NodeSettings.class.getResourceAsStream("/sidecar.version")) + { + return IOUtils.toString(version, StandardCharsets.UTF_8); + } + catch (Exception exception) + { + LOGGER.error("Failed to ex Sidecar version", exception); + } + return "unknown"; + } /** - * Constructs a new {@link NodeSettings} object with the Cassandra node's release version and partitioner - * information. + * Constructs a new {@link NodeSettings} object with the Cassandra node's partitioner + * and release version information, uses Sidecar version from the currently loaded binary * + * @param partitioner the partitioner used by the Cassandra node * @param releaseVersion the release version of the Cassandra node + */ + public NodeSettings(String partitioner, String releaseVersion) + { + this(partitioner, releaseVersion, SIDECAR_VERSION); + } + + /** + * Constructs a new {@link NodeSettings} object with the Cassandra node's partitioner, + * release version, and Sidecar version information + * * @param partitioner the partitioner used by the Cassandra node + * @param releaseVersion the release version of the Cassandra node + * @param sidecarVersion the version of the Sidecar on the Cassandra node */ - public NodeSettings(@JsonProperty("releaseVersion") String releaseVersion, - @JsonProperty("partitioner") String partitioner) + public NodeSettings(@JsonProperty("partitioner") String partitioner, + @JsonProperty("releaseVersion") String releaseVersion, Review Comment: Changed the Sidecar version field type as per our conversation, let me know whether this is what you had in mind. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For additional commands, e-mail: pr-h...@cassandra.apache.org