package org.gcube.application.geoportal.service.engine; //import org.gcube.application.geoportal.managers.AbstractRecordManager; //import org.gcube.application.geoportal.managers.EMFProvider; import lombok.Getter; import lombok.Setter; import lombok.Synchronized; import org.gcube.application.cms.plugins.Plugin; import org.gcube.application.geoportal.service.engine.providers.*; public class ImplementationProvider { private static ImplementationProvider instance=null; @Synchronized public static ImplementationProvider get() { if(instance==null) { instance=new ImplementationProvider(); } return instance; } @Getter @Setter private MongoClientProvider mongoClientProvider=new MongoClientProvider(); @Getter @Setter private StorageClientProvider storageProvider=new StorageClientProvider(); @Getter @Setter private PostgisConnectionProvider dbProvider=new PostgisConnectionProvider(); @Getter @Setter private ISProvider isProvider=new ISProvider(); @Getter @Setter private ProfileMapCache profiles=new ProfileMapCache(); @Getter @Setter private PluginManager pluginManager=new PluginManager(); @Getter @Setter private StorageHubProvider sHubProvider=new StorageHubProvider(); // public void shutdown() { // // Stop JPA //// AbstractRecordManager.shutdown(); // // mongoClientProvider.shutdown(); // pluginManager.shutdown(); // } // // public void startup() { //// AbstractRecordManager.setDefaultProvider(emfProvider); // pluginManager.init(); // mongoClientProvider.init(); // } }