From bb1bda69f8cc6947b5f7ad65bc9c44f1e726f7c5 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Fri, 4 Mar 2022 11:30:11 +0100 Subject: [PATCH] Report model --- cms-plugin-framework/pom.xml | 9 ++++++++ .../cms/plugins/AbstractPlugin.java | 4 ++++ .../cms/plugins/IndexerPluginInterface.java | 3 ++- .../cms/plugins/LifecycleManager.java | 5 +++-- .../cms/plugins/MaterializationPlugin.java | 3 ++- .../cms/plugins/faults/IndexingException.java | 22 +++++++++++++++++++ .../faults/InvalidPluginRequestException.java | 22 +++++++++++++++++++ .../reports/DocumentHandlingReport.java | 4 +++- .../plugins/reports/EventExecutionReport.java | 6 +++-- .../plugins/reports/IndexDocumentReport.java | 3 ++- .../plugins/reports/InitializationReport.java | 7 +++++- .../reports/MaterializationReport.java | 3 ++- .../cms/plugins/reports/Report.java | 14 +++++++++++- .../plugins/reports/StepExecutionReport.java | 3 ++- .../requests/BaseExecutionRequest.java | 12 +++++++--- .../cms/tests/BasicPluginTest.java | 10 +++++---- .../cms/tests/model/DummyPlugin.java | 13 ++++++----- .../cms/commons/model/DummyTest.java | 10 +++++++++ .../plugins/ConcessioniLifeCycleManager.java | 9 +++----- 19 files changed, 131 insertions(+), 31 deletions(-) create mode 100644 cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/IndexingException.java create mode 100644 cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/InvalidPluginRequestException.java create mode 100644 cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/DummyTest.java diff --git a/cms-plugin-framework/pom.xml b/cms-plugin-framework/pom.xml index f6daa8f..54f8814 100644 --- a/cms-plugin-framework/pom.xml +++ b/cms-plugin-framework/pom.xml @@ -44,6 +44,15 @@ jackson-datatype-jsr310 + + + + de.grundid.opendatalab + geojson-jackson + 1.14 + + + \ No newline at end of file diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java index 075cf6b..51678d0 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/AbstractPlugin.java @@ -1,9 +1,11 @@ package org.gcube.application.cms.plugins; import org.gcube.application.cms.plugins.faults.InvalidProfileException; +import org.gcube.application.cms.plugins.faults.PluginExecutionException; import org.gcube.application.cms.plugins.model.PluginDescriptor; import org.gcube.application.cms.plugins.reports.DocumentHandlingReport; import org.gcube.application.cms.plugins.requests.BaseExecutionRequest; +import org.gcube.application.geoportal.common.faults.InvalidRequestException; import org.gcube.application.geoportal.common.model.profile.HandlerDeclaration; import org.gcube.application.geoportal.common.model.profile.Profile; @@ -19,10 +21,12 @@ public abstract class AbstractPlugin implements Plugin{ protected HandlerDeclaration getConfigurationFromProfile(Profile profile) throws InvalidProfileException{ return getMultipleDeclarationsFromProfile(profile).get(0); } + protected List getMultipleDeclarationsFromProfile(Profile p)throws InvalidProfileException { Map> map = p.getHandlersMapByID(); if(map.containsKey(getDescriptor().getId())) return map.get(getDescriptor().getId()); else throw new InvalidProfileException("No Configuration found for "+getDescriptor().getId()+" in "+p.getId()); } + } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java index 8c5822b..d708b08 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/IndexerPluginInterface.java @@ -1,10 +1,11 @@ package org.gcube.application.cms.plugins; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.reports.IndexDocumentReport; import org.gcube.application.cms.plugins.requests.IndexDocumentRequest; public interface IndexerPluginInterface extends InitializablePlugin{ - public IndexDocumentReport index(IndexDocumentRequest request); + public IndexDocumentReport index(IndexDocumentRequest request) throws InvalidPluginRequestException; } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java index 25f68a5..cfc3113 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/LifecycleManager.java @@ -1,6 +1,7 @@ package org.gcube.application.cms.plugins; import org.gcube.application.cms.plugins.faults.EventException; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.faults.StepException; import org.gcube.application.cms.plugins.reports.EventExecutionReport; import org.gcube.application.cms.plugins.reports.StepExecutionReport; @@ -14,11 +15,11 @@ public interface LifecycleManager extends InitializablePlugin{ // Lifecycle operations - public StepExecutionReport performStep(StepExecutionRequest request)throws StepException; + public StepExecutionReport performStep(StepExecutionRequest request) throws StepException, InvalidPluginRequestException; public Configuration getCurrentConfiguration() throws ConfigurationException; - public EventExecutionReport onEvent(EventExecutionRequest request) throws EventException; + public EventExecutionReport onEvent(EventExecutionRequest request) throws EventException, InvalidPluginRequestException; public void setPluginManager(PluginManagerInterface manager); } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/MaterializationPlugin.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/MaterializationPlugin.java index 47bbbf9..0e4c3df 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/MaterializationPlugin.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/MaterializationPlugin.java @@ -1,11 +1,12 @@ package org.gcube.application.cms.plugins; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.faults.MaterializationException; import org.gcube.application.cms.plugins.reports.MaterializationReport; import org.gcube.application.cms.plugins.requests.MaterializationRequest; public interface MaterializationPlugin extends InitializablePlugin{ - public MaterializationReport materialize(MaterializationRequest request) throws MaterializationException; + public MaterializationReport materialize(MaterializationRequest request) throws MaterializationException, InvalidPluginRequestException; } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/IndexingException.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/IndexingException.java new file mode 100644 index 0000000..e49cc34 --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/IndexingException.java @@ -0,0 +1,22 @@ +package org.gcube.application.cms.plugins.faults; + +public class IndexingException extends PluginExecutionException{ + public IndexingException() { + } + + public IndexingException(String message) { + super(message); + } + + public IndexingException(String message, Throwable cause) { + super(message, cause); + } + + public IndexingException(Throwable cause) { + super(cause); + } + + public IndexingException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/InvalidPluginRequestException.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/InvalidPluginRequestException.java new file mode 100644 index 0000000..0d65159 --- /dev/null +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/faults/InvalidPluginRequestException.java @@ -0,0 +1,22 @@ +package org.gcube.application.cms.plugins.faults; + +public class InvalidPluginRequestException extends PluginExecutionException { + public InvalidPluginRequestException() { + } + + public InvalidPluginRequestException(String message) { + super(message); + } + + public InvalidPluginRequestException(String message, Throwable cause) { + super(message, cause); + } + + public InvalidPluginRequestException(Throwable cause) { + super(cause); + } + + public InvalidPluginRequestException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/DocumentHandlingReport.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/DocumentHandlingReport.java index b2b17ba..06e7e46 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/DocumentHandlingReport.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/DocumentHandlingReport.java @@ -6,6 +6,7 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.bson.Document; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.faults.PluginExecutionException; import org.gcube.application.cms.plugins.requests.BaseExecutionRequest; import org.gcube.application.cms.serialization.Serialization; @@ -24,7 +25,8 @@ public class DocumentHandlingReport extends Repo LifecycleInformation toSetLifecycleInformation; - public DocumentHandlingReport(@NonNull T theRequest) { + public DocumentHandlingReport(@NonNull T theRequest) throws InvalidPluginRequestException { + theRequest.validate(); this.theRequest = theRequest; toSetLifecycleInformation=theRequest.getDocument().getLifecycleInformation(); resultingDocument = theRequest.getDocument().getTheDocument(); diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/EventExecutionReport.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/EventExecutionReport.java index 6e8e8e7..922a225 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/EventExecutionReport.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/EventExecutionReport.java @@ -2,14 +2,16 @@ package org.gcube.application.cms.plugins.reports; import com.fasterxml.jackson.core.JsonProcessingException; import lombok.Data; +import lombok.ToString; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.requests.EventExecutionRequest; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation; -@Data +@ToString(callSuper = true) public class EventExecutionReport extends DocumentHandlingReport{ - public EventExecutionReport(EventExecutionRequest req){ + public EventExecutionReport(EventExecutionRequest req) throws InvalidPluginRequestException { super(req); this.setToSetLifecycleInformation(theRequest.getDocument().getLifecycleInformation().cleanState()); } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java index a11e950..d99b2c2 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/IndexDocumentReport.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import lombok.Getter; import lombok.NonNull; import lombok.Setter; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.faults.PluginExecutionException; import org.gcube.application.cms.plugins.requests.IndexDocumentRequest; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; @@ -18,7 +19,7 @@ public class IndexDocumentReport extends DocumentHandlingReport{ - public MaterializationReport(@NonNull MaterializationRequest theRequest) { + public MaterializationReport(@NonNull MaterializationRequest theRequest) throws InvalidPluginRequestException { super(theRequest); } } diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/Report.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/Report.java index c79e28b..6bdbd7b 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/Report.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/Report.java @@ -1,12 +1,17 @@ package org.gcube.application.cms.plugins.reports; import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import org.gcube.application.cms.plugins.faults.PluginExecutionException; import java.util.ArrayList; import java.util.List; -@Data +@Getter +@Setter +@NoArgsConstructor public class Report { public static enum Status { @@ -16,6 +21,13 @@ public class Report { private Status status; private List messages; + public Report(Status status,String ... messages) { + this.status = status; + this.messages=new ArrayList<>(); + for (String s : messages) + this.messages.add(s); + } + public Report putMessage(String msg){ if(messages==null)messages=new ArrayList<>(); messages.add(msg); diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/StepExecutionReport.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/StepExecutionReport.java index 4659648..2b4720d 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/StepExecutionReport.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/reports/StepExecutionReport.java @@ -1,6 +1,7 @@ package org.gcube.application.cms.plugins.reports; import lombok.*; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.cms.plugins.requests.EventExecutionRequest; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; @@ -13,7 +14,7 @@ import java.util.List; @ToString public class StepExecutionReport extends DocumentHandlingReport{ - public StepExecutionReport(@NonNull StepExecutionRequest theRequest) { + public StepExecutionReport(@NonNull StepExecutionRequest theRequest) throws InvalidPluginRequestException { super(theRequest); this.getToSetLifecycleInformation().cleanState(); diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java index 3af3ebf..5ead62d 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/requests/BaseExecutionRequest.java @@ -2,6 +2,7 @@ package org.gcube.application.cms.plugins.requests; import lombok.Data; import org.bson.Document; +import org.gcube.application.cms.plugins.faults.InvalidPluginRequestException; import org.gcube.application.geoportal.common.faults.InvalidRequestException; import org.gcube.application.geoportal.common.model.document.ProfiledDocument; import org.gcube.application.geoportal.common.model.profile.Profile; @@ -13,12 +14,17 @@ public class BaseExecutionRequest { ProfiledDocument document; Document callParameters; - public final String getMandatory(String param) throws InvalidRequestException { + public final String getMandatory(String param) throws InvalidPluginRequestException { return getMandatory(param,callParameters); } - public static final String getMandatory(String param,Document params) throws InvalidRequestException { - if(!params.containsKey(param)) throw new InvalidRequestException("Missing mandatory parameter "+param); + public static final String getMandatory(String param,Document params) throws InvalidPluginRequestException { + if(!params.containsKey(param)) throw new InvalidPluginRequestException("Missing mandatory parameter "+param); return params.getString(param); } + + public void validate() throws InvalidPluginRequestException { + if(profile==null)throw new InvalidPluginRequestException("Profile cannot be null "); + if(document==null) throw new InvalidPluginRequestException("Document cannot be null"); + } } diff --git a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/BasicPluginTest.java b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/BasicPluginTest.java index 89dd98b..d923039 100644 --- a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/BasicPluginTest.java +++ b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/BasicPluginTest.java @@ -6,6 +6,7 @@ import org.gcube.application.cms.plugins.InitializablePlugin; import org.gcube.application.cms.plugins.Plugin; import org.gcube.application.cms.plugins.PluginsReflections; import org.gcube.application.cms.plugins.faults.InitializationException; +import org.gcube.application.cms.plugins.faults.PluginExecutionException; import org.gcube.application.geoportal.common.utils.tests.GCubeTest; import org.junit.Assert; import org.junit.BeforeClass; @@ -37,13 +38,14 @@ public class BasicPluginTest { if(p instanceof InitializablePlugin){ InitializablePlugin ip=(InitializablePlugin)p; try { - ip.init(); + ip.init().validate(); + if(GCubeTest.isTestInfrastructureEnabled()){ TokenSetter.set(GCubeTest.getContext()); - ip.initInContext(); + ip.initInContext().validate(); } - } catch (InitializationException e) { + } catch (Exception e) { e.printStackTrace(System.err); Assert.fail("Unable to Init "+p.getDescriptor().getId()); } @@ -54,7 +56,7 @@ public class BasicPluginTest { System.out.println("Plugin Loading OK"); if(GCubeTest.isTestInfrastructureEnabled()){ - ImplementationProvider.get().setEngine(new ISProvider(), ISInterface.class); + } } diff --git a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/model/DummyPlugin.java b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/model/DummyPlugin.java index 992daec..fc0a4e7 100644 --- a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/model/DummyPlugin.java +++ b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/model/DummyPlugin.java @@ -19,18 +19,18 @@ public class DummyPlugin implements LifecycleManager, IndexerPluginInterface, Ma @Override - public IndexDocumentReport index(IndexDocumentRequest request) { + public IndexDocumentReport index(IndexDocumentRequest request) throws InvalidPluginRequestException { return new IndexDocumentReport(request); } @Override public InitializationReport initInContext() throws InitializationException { - return new InitializationReport(); + return new InitializationReport(Report.Status.WARNING,"DUMB"); } @Override public InitializationReport init() throws InitializationException { - return new InitializationReport(); + return new InitializationReport(Report.Status.WARNING,"DUMB"); } @Override @@ -39,7 +39,8 @@ public class DummyPlugin implements LifecycleManager, IndexerPluginInterface, Ma } @Override - public StepExecutionReport performStep(StepExecutionRequest request) throws StepException { + public StepExecutionReport performStep(StepExecutionRequest request) throws StepException, InvalidPluginRequestException { + request.validate(); return new StepExecutionReport(request); } @@ -49,7 +50,7 @@ public class DummyPlugin implements LifecycleManager, IndexerPluginInterface, Ma } @Override - public EventExecutionReport onEvent(EventExecutionRequest request) throws EventException { + public EventExecutionReport onEvent(EventExecutionRequest request) throws EventException, InvalidPluginRequestException { return new EventExecutionReport(request); } @@ -59,7 +60,7 @@ public class DummyPlugin implements LifecycleManager, IndexerPluginInterface, Ma } @Override - public MaterializationReport materialize(MaterializationRequest request) throws MaterializationException { + public MaterializationReport materialize(MaterializationRequest request) throws MaterializationException, InvalidPluginRequestException { return new MaterializationReport(request); } diff --git a/cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/DummyTest.java b/cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/DummyTest.java new file mode 100644 index 0000000..8b473b9 --- /dev/null +++ b/cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/DummyTest.java @@ -0,0 +1,10 @@ +package org.gcube.application.cms.commons.model; + +import org.gcube.application.cms.tests.BasicPluginTest; +import org.junit.Test; + +public class DummyTest extends BasicPluginTest { + + @Test + public void myTest(){} +} diff --git a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java index 8e5e47a..36c7266 100644 --- a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java +++ b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java @@ -9,7 +9,7 @@ import org.bson.Document; import org.gcube.application.cms.plugins.IndexerPluginInterface; import org.gcube.application.cms.plugins.MaterializationPlugin; import org.gcube.application.cms.plugins.PluginManagerInterface; -import org.gcube.application.cms.plugins.faults.EventException; +import org.gcube.application.cms.plugins.faults.*; import org.gcube.application.cms.plugins.model.ComparableVersion; import org.gcube.application.cms.plugins.reports.*; import org.gcube.application.cms.plugins.requests.EventExecutionRequest; @@ -18,9 +18,6 @@ import org.gcube.application.cms.plugins.requests.MaterializationRequest; import org.gcube.application.cms.serialization.Serialization; import org.gcube.application.cms.custom.gna.concessioni.model.ProfiledConcessione; import org.gcube.application.cms.plugins.LifecycleManager; -import org.gcube.application.cms.plugins.faults.InitializationException; -import org.gcube.application.cms.plugins.faults.ShutDownException; -import org.gcube.application.cms.plugins.faults.StepException; import org.gcube.application.cms.plugins.model.PluginDescriptor; import org.gcube.application.cms.plugins.requests.StepExecutionRequest; import org.gcube.application.geoportal.common.model.document.*; @@ -87,7 +84,7 @@ public class ConcessioniLifeCycleManager implements LifecycleManager { } @Override - public StepExecutionReport performStep(StepExecutionRequest request) throws StepException { + public StepExecutionReport performStep(StepExecutionRequest request) throws StepException, InvalidPluginRequestException { log.info("Serving Request {}",request); StepExecutionReport report=new StepExecutionReport(request); report.setStatus(Report.Status.OK); @@ -210,7 +207,7 @@ public class ConcessioniLifeCycleManager implements LifecycleManager { @Override - public EventExecutionReport onEvent(EventExecutionRequest request) throws EventException { + public EventExecutionReport onEvent(EventExecutionRequest request) throws EventException, InvalidPluginRequestException { log.info("Executing Event {}",request); EventExecutionReport report=new EventExecutionReport(request);