2023-12-21 10:42:56 +01:00
|
|
|
package org.gcube.application.cms.plugins.cataloguebinding;
|
|
|
|
|
2024-01-17 17:32:34 +01:00
|
|
|
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;
|
2024-01-17 17:32:34 +01:00
|
|
|
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;
|
|
|
|
|
2024-01-17 17:32:34 +01:00
|
|
|
import com.vdurmont.semver4j.Semver;
|
2023-12-21 10:42:56 +01:00
|
|
|
|
2024-01-17 17:32:34 +01:00
|
|
|
import lombok.Synchronized;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
2023-12-21 10:42:56 +01:00
|
|
|
|
2024-01-17 17:32:34 +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() {
|
2024-01-17 17:32:34 +01:00
|
|
|
|
2023-12-21 10:42:56 +01:00
|
|
|
return DESCRIPTOR;
|
|
|
|
}
|
|
|
|
|
2024-01-17 17:32:34 +01:00
|
|
|
/**
|
|
|
|
* Inits the in context.
|
|
|
|
*
|
|
|
|
* @return the initialization report
|
|
|
|
* @throws InitializationException the initialization exception
|
|
|
|
*/
|
2023-12-21 10:42:56 +01:00
|
|
|
@Override
|
2024-01-17 17:32:34 +01:00
|
|
|
@Synchronized
|
2023-12-21 10:42:56 +01:00
|
|
|
public InitializationReport initInContext() throws InitializationException {
|
2024-01-17 17:32:34 +01:00
|
|
|
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
|
|
|
}
|
|
|
|
|
2024-01-17 17:32:34 +01:00
|
|
|
/**
|
|
|
|
* Shutdown.
|
|
|
|
*
|
|
|
|
* @throws ShutDownException the shut down exception
|
|
|
|
*/
|
2023-12-21 10:42:56 +01:00
|
|
|
@Override
|
2024-01-17 17:32:34 +01:00
|
|
|
public void shutdown() throws ShutDownException {
|
2023-12-21 10:42:56 +01:00
|
|
|
// TODO Auto-generated method stub
|
2024-01-17 17:32:34 +01:00
|
|
|
|
2023-12-21 10:42:56 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2024-01-17 17:32:34 +01:00
|
|
|
public void doAction(ItemObserved<Project> observerd) {
|
|
|
|
new BindingAction().doAction(observerd);
|
|
|
|
|
2023-12-21 10:42:56 +01:00
|
|
|
}
|
2024-01-17 17:32:34 +01:00
|
|
|
|
2023-12-21 10:42:56 +01:00
|
|
|
}
|