gcube-cms-suite/catalogue-binding-plugin/src/main/java/org/gcube/application/cms/plugins/cataloguebinding/CatalogueBindingPlugin.java

89 lines
2.5 KiB
Java
Raw Normal View History

2023-12-21 10:42:56 +01:00
package org.gcube.application.cms.plugins.cataloguebinding;
import org.gcube.application.cms.implementations.utils.UserUtils;
import org.gcube.application.cms.plugins.cataloguebinding.doaction.BindingAction;
import org.gcube.application.cms.plugins.events.ItemObserved;
2023-12-21 10:42:56 +01:00
import org.gcube.application.cms.plugins.faults.InitializationException;
import org.gcube.application.cms.plugins.faults.ShutDownException;
import org.gcube.application.cms.plugins.reports.InitializationReport;
import org.gcube.application.cms.plugins.reports.Report;
import org.gcube.application.geoportal.common.model.document.Project;
2023-12-21 10:42:56 +01:00
import org.gcube.application.geoportal.common.model.plugins.PluginDescriptor;
import com.vdurmont.semver4j.Semver;
2023-12-21 10:42:56 +01:00
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
2023-12-21 10:42:56 +01:00
/**
* The Class CatalogueBindingPlugin.
*
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
*
* Jan 17, 2024
*/
@Slf4j
public class CatalogueBindingPlugin extends CatalogueBindingAbstractPlugin {
public static final PluginDescriptor DESCRIPTOR = new PluginDescriptor(CatalogueBindingAbstractPlugin.PLUGIN_ID,
CatalogueBindingAbstractPlugin.PLUGIN_TYPE);
static {
DESCRIPTOR.setVersion(new Semver("1.0.0"));
DESCRIPTOR.setDescription("Manage the data binding from geoportal to catalogue");
}
/**
* Gets the descriptor.
*
* @return the descriptor
*/
2023-12-21 10:42:56 +01:00
@Override
public PluginDescriptor getDescriptor() {
2023-12-21 10:42:56 +01:00
return DESCRIPTOR;
}
/**
* Inits the in context.
*
* @return the initialization report
* @throws InitializationException the initialization exception
*/
2023-12-21 10:42:56 +01:00
@Override
@Synchronized
2023-12-21 10:42:56 +01:00
public InitializationReport initInContext() throws InitializationException {
InitializationReport report = new InitializationReport();
try {
String context = UserUtils.getCurrent().getContext();
if (getCatalogueBindingMapPerContext() == null) {
log.info("Initializing in " + context);
catalogueBindingMap.put(context, new EventsSubscribed());
}
report.setStatus(Report.Status.OK);
report.putMessage("Initialized " + DESCRIPTOR.getId() + " in the " + context);
} catch (Exception e) {
throw new InitializationException("Unable to initialize " + DESCRIPTOR.getId(), e);
}
return report;
2023-12-21 10:42:56 +01:00
}
/**
* Shutdown.
*
* @throws ShutDownException the shut down exception
*/
2023-12-21 10:42:56 +01:00
@Override
public void shutdown() throws ShutDownException {
2023-12-21 10:42:56 +01:00
// TODO Auto-generated method stub
2023-12-21 10:42:56 +01:00
}
@Override
public void doAction(ItemObserved<Project> observerd) {
new BindingAction().doAction(observerd);
2023-12-21 10:42:56 +01:00
}
2023-12-21 10:42:56 +01:00
}