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