This repository has been archived on 2021-09-09. You can view files and clone it, but cannot push or open issues or pull requests.
geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/ImplementationProvider.java

61 lines
1.4 KiB
Java
Raw Normal View History

2020-11-10 18:19:30 +01:00
package org.gcube.application.geoportal.service.engine;
2020-11-11 18:17:06 +01:00
import org.gcube.application.geoportal.managers.AbstractRecordManager;
2020-11-25 13:19:39 +01:00
import org.gcube.application.geoportal.managers.EMFProvider;
2020-11-19 17:38:56 +01:00
import org.gcube.application.geoportal.service.engine.cache.MongoClientProvider;
import org.gcube.application.geoportal.service.engine.cache.MongoConnectionProvider;
2020-11-11 18:17:06 +01:00
import lombok.Getter;
import lombok.Setter;
2020-11-10 18:19:30 +01:00
import lombok.Synchronized;
public class ImplementationProvider {
private static ImplementationProvider instance=null;
@Synchronized
public static ImplementationProvider get() {
if(instance==null) {
instance=new ImplementationProvider();
}
return instance;
}
2020-11-11 18:17:06 +01:00
@Getter
@Setter
2020-11-19 17:38:56 +01:00
private MongoConnectionProvider mongoConnectionProvider=new MongoConnectionProvider();
@Getter
@Setter
private MongoClientProvider mongoClientProvider=new MongoClientProvider();
@Getter
@Setter
private StorageClientProvider storageProvider=new StorageClientProvider();
2020-11-11 18:17:06 +01:00
2020-11-25 13:19:39 +01:00
@Getter
@Setter
private EMFProvider emfProvider=new ScopedEMFProvider();
2020-12-18 18:24:20 +01:00
@Getter
@Setter
private StorageHubProvider sHubProvider=new StorageHubProvider();
2020-11-10 18:19:30 +01:00
public void shutdown() {
2020-11-11 18:17:06 +01:00
// Stop JPA
AbstractRecordManager.shutdown();
2020-11-19 17:38:56 +01:00
mongoConnectionProvider.shustdown();
2020-11-11 18:17:06 +01:00
mongoClientProvider.shustdown();
2020-11-10 18:19:30 +01:00
}
public void startup() {
2020-11-25 13:19:39 +01:00
AbstractRecordManager.setDefaultProvider(emfProvider);
2020-11-19 17:38:56 +01:00
mongoConnectionProvider.init();
2020-11-11 18:17:06 +01:00
mongoClientProvider.init();
2020-11-10 18:19:30 +01:00
}
}