2020-01-22 16:41:12 +01:00
|
|
|
package org.gcube.data.access.storagehub;
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
2020-01-24 11:59:01 +01:00
|
|
|
import javax.ws.rs.ext.Provider;
|
2020-01-22 16:41:12 +01:00
|
|
|
|
|
|
|
import org.apache.jackrabbit.api.JackrabbitRepository;
|
|
|
|
import org.gcube.data.access.storagehub.services.RepositoryInitializer;
|
|
|
|
import org.glassfish.jersey.server.monitoring.ApplicationEvent;
|
|
|
|
import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
|
|
|
|
import org.glassfish.jersey.server.monitoring.RequestEvent;
|
|
|
|
import org.glassfish.jersey.server.monitoring.RequestEventListener;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
2020-01-24 11:59:01 +01:00
|
|
|
@Provider
|
2020-01-22 16:41:12 +01:00
|
|
|
public class MyApplicationListener implements ApplicationEventListener {
|
|
|
|
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(MyApplicationListener.class);
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
RepositoryInitializer repository;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onEvent(ApplicationEvent event) {
|
2020-01-24 11:59:01 +01:00
|
|
|
log.info("StorageHub - event called");
|
2020-01-22 16:41:12 +01:00
|
|
|
switch (event.getType()) {
|
|
|
|
case DESTROY_FINISHED:
|
|
|
|
log.info("Destroying application storageHub");
|
|
|
|
((JackrabbitRepository) repository.getRepository()).shutdown();
|
|
|
|
log.info("Jackrabbit repository stopped");
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public RequestEventListener onRequest(RequestEvent requestEvent) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|