You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2019/09/08 15:40:49 UTC
[sis] 01/04: Keep longer logger configuration for DataStores,
and avoid the "internal" word in logger name.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
commit 26e5a8ad923f2674e62f7507ded1f310f7cd3653
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sun Sep 8 15:55:27 2019 +0200
Keep longer logger configuration for DataStores, and avoid the "internal" word in logger name.
---
.../org/apache/sis/storage/sql/SQLStoreProvider.java | 6 +++++-
.../internal/storage/folder/FolderStoreProvider.java | 3 ++-
.../org/apache/sis/storage/DataStoreProvider.java | 19 +++++++++++++++----
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/storage/sis-sqlstore/src/main/java/org/apache/sis/storage/sql/SQLStoreProvider.java b/storage/sis-sqlstore/src/main/java/org/apache/sis/storage/sql/SQLStoreProvider.java
index a03a1b2..d5b8cbe 100644
--- a/storage/sis-sqlstore/src/main/java/org/apache/sis/storage/sql/SQLStoreProvider.java
+++ b/storage/sis-sqlstore/src/main/java/org/apache/sis/storage/sql/SQLStoreProvider.java
@@ -30,6 +30,8 @@ import org.opengis.parameter.ParameterDescriptorGroup;
import org.opengis.parameter.ParameterNotFoundException;
import org.apache.sis.internal.system.DefaultFactories;
import org.apache.sis.internal.sql.feature.Resources;
+import org.apache.sis.internal.storage.Capability;
+import org.apache.sis.internal.storage.StoreMetadata;
import org.apache.sis.storage.DataStore;
import org.apache.sis.storage.DataStoreProvider;
import org.apache.sis.storage.DataStoreException;
@@ -53,11 +55,13 @@ import static org.apache.sis.internal.sql.feature.Database.WILDCARD;
* @since 1.0
* @module
*/
+@StoreMetadata(formatName = SQLStoreProvider.NAME,
+ capabilities = Capability.READ)
public class SQLStoreProvider extends DataStoreProvider {
/**
* The format name.
*/
- private static final String NAME = "SQL";
+ static final String NAME = "SQL";
/**
* Name of the parameter for the list of qualified table names.
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/FolderStoreProvider.java b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/FolderStoreProvider.java
index 9f8f707..6e3d5a4 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/FolderStoreProvider.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/folder/FolderStoreProvider.java
@@ -60,7 +60,8 @@ import org.apache.sis.setup.OptionKey;
* @since 0.8
* @module
*/
-@StoreMetadata(formatName=FolderStoreProvider.NAME, capabilities={Capability.READ, Capability.WRITE})
+@StoreMetadata(formatName = FolderStoreProvider.NAME,
+ capabilities = {Capability.READ, Capability.WRITE})
public final class FolderStoreProvider extends DataStoreProvider {
/**
* A short name or abbreviation for the data format.
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
index 09a7e4a..fd206c5 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStoreProvider.java
@@ -110,6 +110,16 @@ public abstract class DataStoreProvider {
public static final String CREATE = "create";
/**
+ * The logger where to reports warnings or change events. Created when first needed and kept
+ * by strong reference for avoiding configuration lost if the logger if garbage collected.
+ * This strategy assumes that {@code URIDataStore.Provider} instances are kept alive for
+ * the duration of JVM lifetime, which is the case with {@link DataStoreRegistry}.
+ *
+ * @see #getLogger()
+ */
+ private volatile Logger logger;
+
+ /**
* Creates a new provider.
*/
protected DataStoreProvider() {
@@ -339,9 +349,10 @@ public abstract class DataStoreProvider {
* @since 1.0
*/
public Logger getLogger() {
- String name = getClass().getName();
- final int separator = name.lastIndexOf('.');
- name = (separator >= 1) ? name.substring(0, separator) : "";
- return Logging.getLogger(name);
+ Logger lg = logger;
+ if (lg == null) {
+ logger = lg = Logging.getLogger(getClass());
+ }
+ return lg;
}
}