2020-10-13 17:08:32 +02:00
|
|
|
package org.gcube.spatial.data.sdi.engine.impl.factories;
|
|
|
|
|
|
|
|
import org.gcube.spatial.data.sdi.engine.TemporaryPersistence;
|
|
|
|
import org.gcube.spatial.data.sdi.engine.impl.TemporaryPersistenceImpl;
|
|
|
|
import org.glassfish.hk2.api.Factory;
|
|
|
|
|
2020-10-13 18:10:00 +02:00
|
|
|
import lombok.Synchronized;
|
|
|
|
|
2020-10-13 17:08:32 +02:00
|
|
|
public class TemporaryPersistenceFactory implements Factory<TemporaryPersistence>{
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void dispose(TemporaryPersistence arg0) {
|
|
|
|
arg0.shutdown();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public TemporaryPersistence provide() {
|
2020-10-13 18:10:00 +02:00
|
|
|
return getInstance();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private static TemporaryPersistence temp=null;
|
|
|
|
|
|
|
|
@Synchronized
|
|
|
|
private static TemporaryPersistence getInstance(){
|
|
|
|
if(temp==null) {
|
|
|
|
temp=new TemporaryPersistenceImpl();
|
|
|
|
try {
|
2020-10-13 17:08:32 +02:00
|
|
|
temp.init();
|
2020-10-13 18:10:00 +02:00
|
|
|
}catch(Exception e) {
|
|
|
|
throw new RuntimeException("Unable to init temp ",e);
|
|
|
|
}
|
|
|
|
}
|
2020-10-13 17:08:32 +02:00
|
|
|
return temp;
|
|
|
|
}
|
|
|
|
}
|