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 2023/02/04 12:22:53 UTC
[jackrabbit-oak] branch trunk updated: OAK-10103: oak-store-document: remove deprecated SystemPropertySupplier (#843)
This is an automated email from the ASF dual-hosted git repository.
reschke pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/trunk by this push:
new 57e608c87f OAK-10103: oak-store-document: remove deprecated SystemPropertySupplier (#843)
57e608c87f is described below
commit 57e608c87fe89a16b96a0c847f03f514383252e1
Author: Julian Reschke <re...@apache.org>
AuthorDate: Sat Feb 4 13:22:46 2023 +0100
OAK-10103: oak-store-document: remove deprecated SystemPropertySupplier (#843)
---
.../oak/plugins/document/ClusterNodeInfo.java | 2 +-
.../plugins/document/rdb/RDBConnectionHandler.java | 2 +-
.../plugins/document/rdb/RDBDataSourceFactory.java | 2 +-
.../oak/plugins/document/rdb/RDBDocumentStore.java | 2 +-
.../plugins/document/rdb/RDBDocumentStoreDB.java | 2 +-
.../document/rdb/RDBMissingLastRevSeeker.java | 3 +-
.../plugins/document/rdb/RDBVersionGCSupport.java | 2 +-
.../document/util/SystemPropertySupplier.java | 174 ---------------------
8 files changed, 7 insertions(+), 182 deletions(-)
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
index 9fac4d8514..f3d0f4b16f 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
@@ -43,8 +43,8 @@ import com.google.common.base.Stopwatch;
import org.apache.jackrabbit.oak.commons.StringUtils;
import org.apache.jackrabbit.oak.commons.UUIDUtils;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.spi.lease.LeaseFailureHandler;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.apache.jackrabbit.oak.stats.Clock;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
index 4f26a23417..837f68b755 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBConnectionHandler.java
@@ -26,8 +26,8 @@ import java.util.concurrent.ConcurrentMap;
import javax.sql.DataSource;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.LoggerFactory;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
index abee07ad21..fe9ca370fe 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDataSourceFactory.java
@@ -30,8 +30,8 @@ import java.util.logging.Logger;
import javax.sql.DataSource;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.slf4j.LoggerFactory;
/**
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
index 15676af7a7..db1588ff1d 100755
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
@@ -63,6 +63,7 @@ import javax.sql.DataSource;
import org.apache.jackrabbit.oak.cache.CacheStats;
import org.apache.jackrabbit.oak.cache.CacheValue;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.Collection;
import org.apache.jackrabbit.oak.plugins.document.Document;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBuilder;
@@ -82,7 +83,6 @@ import org.apache.jackrabbit.oak.plugins.document.locks.NodeDocumentLocks;
import org.apache.jackrabbit.oak.plugins.document.locks.StripedNodeDocumentLocks;
import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
import org.apache.jackrabbit.oak.plugins.document.util.CloseableIterator;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreDB.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreDB.java
index 27e31a93b1..fdfd9116ed 100755
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreDB.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreDB.java
@@ -31,8 +31,8 @@ import java.util.Map;
import java.util.SortedSet;
import java.util.TreeSet;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.rdb.RDBJDBCTools.PreparedStatementComponent;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBMissingLastRevSeeker.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBMissingLastRevSeeker.java
index 844ad1c2a3..c9d9829d27 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBMissingLastRevSeeker.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBMissingLastRevSeeker.java
@@ -20,14 +20,13 @@
package org.apache.jackrabbit.oak.plugins.document.rdb;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.Collection;
import org.apache.jackrabbit.oak.plugins.document.MissingLastRevSeeker;
import org.apache.jackrabbit.oak.plugins.document.NodeDocument;
import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.QueryCondition;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.apache.jackrabbit.oak.stats.Clock;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
index ab47041a68..783afbab0b 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBVersionGCSupport.java
@@ -28,6 +28,7 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
+import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.Collection;
import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException;
import org.apache.jackrabbit.oak.plugins.document.NodeDocument;
@@ -37,7 +38,6 @@ import org.apache.jackrabbit.oak.plugins.document.VersionGCSupport;
import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.QueryCondition;
import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.UnsupportedIndexedPropertyException;
import org.apache.jackrabbit.oak.plugins.document.util.CloseableIterable;
-import org.apache.jackrabbit.oak.plugins.document.util.SystemPropertySupplier;
import org.apache.jackrabbit.oak.plugins.document.util.Utils;
import org.apache.jackrabbit.oak.stats.Clock;
import org.slf4j.Logger;
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SystemPropertySupplier.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SystemPropertySupplier.java
deleted file mode 100755
index 87ebd6cb02..0000000000
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SystemPropertySupplier.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * 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.plugins.document.util;
-
-import java.util.Objects;
-import java.util.function.BiFunction;
-import java.util.function.Function;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-
-import org.jetbrains.annotations.NotNull;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.event.Level;
-
-/**
- * @deprecated please use org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier
- * @see org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier
- */
-public class SystemPropertySupplier<T> implements Supplier<T> {
-
- private static final Logger LOG = LoggerFactory.getLogger(SystemPropertySupplier.class);
-
- private final String propName;
- private final T defaultValue;
- private final Function<String, T> parser;
-
- private Logger log = LOG;
- private Level successLogLevel = Level.INFO;
- private Predicate<T> validator = (a) -> true;
- private Function<String, String> sysPropReader = System::getProperty;
- private BiFunction<String, T, String> setMessageFormatter = (a, b) -> {
- return String.format("System property %s found to be '%s'", a, b);
- };
-
- private SystemPropertySupplier(@NotNull String propName, @NotNull T defaultValue) throws IllegalArgumentException {
- this.propName = Objects.requireNonNull(propName, "propertyName must be non-null");
- this.defaultValue = Objects.requireNonNull(defaultValue, "defaultValue must be non-null");
- this.parser = getValueParser(defaultValue);
- }
-
- /**
- * Create it for a given property name and default value.
- */
- public static <U> SystemPropertySupplier<U> create(@NotNull String propName, @NotNull U defaultValue)
- throws IllegalArgumentException {
- return new SystemPropertySupplier<U>(propName, defaultValue);
- }
-
- /**
- * Specify the {@link Logger} to log to (defaults to this classes logger otherwise).
- */
- public SystemPropertySupplier<T> loggingTo(@NotNull Logger log) {
- this.log = Objects.requireNonNull(log);
- return this;
- }
-
- /**
- * Specify a validation expression.
- */
- public SystemPropertySupplier<T> validateWith(@NotNull Predicate<T> validator) {
- this.validator = Objects.requireNonNull(validator);
- return this;
- }
-
- /**
- * Specify a formatter for the "success" log message to be used when the
- * returned property value differs from the default.
- */
- public SystemPropertySupplier<T> formatSetMessage(@NotNull BiFunction<String, T, String> setMessageFormatter) {
- this.setMessageFormatter = Objects.requireNonNull(setMessageFormatter);
- return this;
- }
-
- /**
- * Specify {@link Level} to use for "success" message.
- */
- public SystemPropertySupplier<T> logSuccessAs(Level successLogLevel) {
- this.successLogLevel = Objects.requireNonNull(successLogLevel);
- return this;
- }
-
- /**
- * <em>For unit testing</em>: specify a function to read system properties
- * (overriding default of {@code System.getProperty(String}).
- */
- protected SystemPropertySupplier<T> usingSystemPropertyReader(@NotNull Function<String, String> sysPropReader) {
- this.sysPropReader = Objects.requireNonNull(sysPropReader);
- return this;
- }
-
- /**
- * Obtains the value of a system property, optionally generating
- * diagnostics.
- *
- * @return value of system property
- */
- public T get() {
-
- T ret = defaultValue;
-
- String value = sysPropReader.apply(propName);
- if (value == null) {
- log.trace("System property {} not set", propName);
- } else {
- log.trace("System property {} set to '{}'", propName, value);
- try {
- T v = parser.apply(value);
- if (!validator.test(v)) {
- log.error("Ignoring invalid value '{}' for system property {}", value, propName);
- } else {
- ret = v;
- }
- } catch (NumberFormatException ex) {
- log.error("Ignoring malformed value '{}' for system property {}", value, propName);
- }
-
- if (!ret.equals(defaultValue)) {
- String msg = setMessageFormatter.apply(propName, ret);
- switch (successLogLevel) {
- case INFO:
- log.info(msg);
- break;
- case DEBUG:
- log.debug(msg);
- break;
- case ERROR:
- log.error(msg);
- break;
- case TRACE:
- log.trace(msg);
- break;
- case WARN:
- log.warn(msg);
- break;
- default:
- break;
- }
- }
- }
-
- return ret;
- }
-
- @SuppressWarnings("unchecked")
- private static <T> Function<String, T> getValueParser(T defaultValue) {
- if (defaultValue instanceof Boolean) {
- return v -> (T) Boolean.valueOf(v);
- } else if (defaultValue instanceof Integer) {
- return v -> (T) Integer.valueOf(v);
- } else if (defaultValue instanceof Long) {
- return v -> (T) Long.valueOf(v);
- } else if (defaultValue instanceof String) {
- return v -> (T) v;
- } else {
- throw new IllegalArgumentException(
- String.format("expects a defaultValue of Boolean, Integer, Long, or String, but got: %s", defaultValue.getClass()));
- }
- }
-}