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()));
-        }
-    }
-}