You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2015/08/17 13:34:36 UTC
svn commit: r1696242 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
core/ plugins/document/ plugins/document/rdb/ util/
Author: reschke
Date: Mon Aug 17 11:34:36 2015
New Revision: 1696242
URL: http://svn.apache.org/r1696242
Log:
OAK-3204: move oak version detection into generic utility class and use it in ClusterNodeInfo and RDBDocument/BlobStore startup messages
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/OakVersion.java (with props)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java?rev=1696242&r1=1696241&r2=1696242&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java Mon Aug 17 11:34:36 2015
@@ -103,6 +103,7 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.util.GenericDescriptors;
+import org.apache.jackrabbit.oak.util.OakVersion;
/**
* {@code NodeStore}-based implementation of
@@ -256,7 +257,7 @@ public class ContentRepositoryImpl imple
.put(QUERY_XPATH_DOC_ORDER, falseValue, true, true)
.put(QUERY_XPATH_POS_INDEX, falseValue, true, true)
.put(REP_NAME_DESC, valueFactory.createValue("Apache Jackrabbit Oak"), true, true)
- .put(REP_VERSION_DESC, valueFactory.createValue(getVersion()), true, true)
+ .put(REP_VERSION_DESC, valueFactory.createValue(OakVersion.getVersion()), true, true)
.put(REP_VENDOR_DESC, valueFactory.createValue("The Apache Software Foundation"), true, true)
.put(REP_VENDOR_URL_DESC, valueFactory.createValue("http://www.apache.org/"), true, true)
.put(SPEC_NAME_DESC, valueFactory.createValue("Content Repository for Java Technology API"), true, true)
@@ -278,28 +279,4 @@ public class ContentRepositoryImpl imple
}
return gd;
}
-
- /**
- * Returns the version of this repository implementation.
- * @return the version
- */
- @Nonnull
- private static String getVersion() {
- InputStream stream = ContentRepositoryImpl.class.getResourceAsStream(
- "/META-INF/maven/org.apache.jackrabbit/oak-core/pom.properties");
- if (stream != null) {
- try {
- try {
- Properties properties = new Properties();
- properties.load(stream);
- return properties.getProperty("version");
- } finally {
- stream.close();
- }
- } catch (IOException e) {
- // ignore
- }
- }
- return "SNAPSHOT";
- }
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java?rev=1696242&r1=1696241&r2=1696242&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java Mon Aug 17 11:34:36 2015
@@ -29,6 +29,7 @@ import java.util.UUID;
import org.apache.jackrabbit.oak.commons.StringUtils;
import org.apache.jackrabbit.oak.stats.Clock;
+import org.apache.jackrabbit.oak.util.OakVersion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,6 +51,11 @@ public class ClusterNodeInfo {
private static final String MACHINE_ID_KEY = "machine";
/**
+ * The Oak version.
+ */
+ private static final String OAK_VERSION_KEY = "oakVersion";
+
+ /**
* The unique instance id within this machine (the current working directory
* if not set).
*/
@@ -299,6 +305,7 @@ public class ClusterNodeInfo {
update.set(INFO_KEY, clusterNode.toString());
update.set(STATE, clusterNode.state.name());
update.set(REV_RECOVERY_LOCK, clusterNode.revRecoveryLock.name());
+ update.set(OAK_VERSION_KEY, OakVersion.getVersion());
final boolean success;
if (clusterNode.newEntry) {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1696242&r1=1696241&r2=1696242&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java Mon Aug 17 11:34:36 2015
@@ -40,6 +40,7 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.plugins.blob.CachingBlobStore;
import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
import org.apache.jackrabbit.oak.spi.blob.AbstractBlobStore;
+import org.apache.jackrabbit.oak.util.OakVersion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -213,8 +214,8 @@ public class RDBBlobStore extends Cachin
tablesToBeDropped.addAll(tablesCreated);
}
- LOG.info("RDBBlobStore instantiated for database " + dbDesc + ", using driver: " + driverDesc + ", connecting to: "
- + dbUrl + ", transaction isolation level: " + isolationDiags);
+ LOG.info("RDBBlobStore (" + OakVersion.getVersion() + ") instantiated for database " + dbDesc + ", using driver: "
+ + driverDesc + ", connecting to: " + dbUrl + ", transaction isolation level: " + isolationDiags);
if (!tablesPresent.isEmpty()) {
LOG.info("Tables present upon startup: " + tablesPresent);
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1696242&r1=1696241&r2=1696242&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Mon Aug 17 11:34:36 2015
@@ -70,6 +70,7 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStoreDB.FETCHFIRSTSYNTAX;
import org.apache.jackrabbit.oak.plugins.document.util.StringValue;
+import org.apache.jackrabbit.oak.util.OakVersion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -585,9 +586,9 @@ public class RDBDocumentStore implements
String diag = db.getAdditionalDiagnostics(this.ch, this.tnNodes);
- LOG.info("RDBDocumentStore instantiated for database " + dbDesc + ", using driver: " + driverDesc + ", connecting to: "
- + dbUrl + (diag.isEmpty() ? "" : (", properties: " + diag)) + ", transaction isolation level: " + isolationDiags
- + tableDiags);
+ LOG.info("RDBDocumentStore (" + OakVersion.getVersion() + ") instantiated for database " + dbDesc + ", using driver: "
+ + driverDesc + ", connecting to: " + dbUrl + (diag.isEmpty() ? "" : (", properties: " + diag))
+ + ", transaction isolation level: " + isolationDiags + tableDiags);
if (!tablesPresent.isEmpty()) {
LOG.info("Tables present upon startup: " + tablesPresent);
}
Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/OakVersion.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/OakVersion.java?rev=1696242&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/OakVersion.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/OakVersion.java Mon Aug 17 11:34:36 2015
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Provides version information about Oak.
+ */
+public final class OakVersion {
+
+ private static String version = null;
+
+ /**
+ * Returns the version of oak-core.
+ *
+ * @return the version (or "SNAPSHOT" when unknown)
+ */
+ @Nonnull
+ public synchronized static String getVersion() {
+ if (version == null) {
+ version = "SNAPSHOT"; // fallback
+ InputStream stream = OakVersion.class
+ .getResourceAsStream("/META-INF/maven/org.apache.jackrabbit/oak-core/pom.properties");
+ if (stream != null) {
+ try {
+ try {
+ Properties properties = new Properties();
+ properties.load(stream);
+ version = properties.getProperty("version");
+ } finally {
+ stream.close();
+ }
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ }
+ return version;
+ }
+}
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/OakVersion.java
------------------------------------------------------------------------------
svn:eol-style = native