From 44c22ed0adacad9eea1d95c5c14b3ee84ce61124 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Wed, 14 Oct 2020 18:01:23 +0200 Subject: [PATCH] Singleton management --- .../factories/MetadataTemplateManagerFactory.java | 15 ++++++++++++++- .../metadata/MetadataTemplateManagerImpl.java | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gcube/spatial/data/sdi/engine/impl/factories/MetadataTemplateManagerFactory.java b/src/main/java/org/gcube/spatial/data/sdi/engine/impl/factories/MetadataTemplateManagerFactory.java index 6a2249c..d984037 100644 --- a/src/main/java/org/gcube/spatial/data/sdi/engine/impl/factories/MetadataTemplateManagerFactory.java +++ b/src/main/java/org/gcube/spatial/data/sdi/engine/impl/factories/MetadataTemplateManagerFactory.java @@ -4,10 +4,12 @@ import org.gcube.spatial.data.sdi.engine.TemplateManager; import org.gcube.spatial.data.sdi.engine.impl.metadata.MetadataTemplateManagerImpl; import org.glassfish.hk2.api.Factory; +import lombok.Synchronized; + public class MetadataTemplateManagerFactory implements Factory{ @Override public TemplateManager provide() { - return new MetadataTemplateManagerImpl(); + return getInstance(); } @Override @@ -15,4 +17,15 @@ public class MetadataTemplateManagerFactory implements Factory{ // TODO Auto-generated method stub } + + + private static TemplateManager instance = null; + + @Synchronized + private static final TemplateManager getInstance() { + if(instance==null) { + instance=new MetadataTemplateManagerImpl(); + } + return instance; + } } diff --git a/src/main/java/org/gcube/spatial/data/sdi/engine/impl/metadata/MetadataTemplateManagerImpl.java b/src/main/java/org/gcube/spatial/data/sdi/engine/impl/metadata/MetadataTemplateManagerImpl.java index aa41adc..0d36d72 100644 --- a/src/main/java/org/gcube/spatial/data/sdi/engine/impl/metadata/MetadataTemplateManagerImpl.java +++ b/src/main/java/org/gcube/spatial/data/sdi/engine/impl/metadata/MetadataTemplateManagerImpl.java @@ -49,6 +49,7 @@ public class MetadataTemplateManagerImpl implements TemplateManager { @PostConstruct public void defaultInit() { + log.info("Default Initialization"); init(LocalConfiguration.getTemplateConfigurationObject()); }