diff --git a/pom.xml b/pom.xml
index e7756b5..c153d72 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,11 +14,11 @@
- 11
- 11
+ 17
+ 17
-
\ No newline at end of file
+
diff --git a/simple-plugin/pom.xml b/simple-plugin/pom.xml
index 080eca8..9875c33 100644
--- a/simple-plugin/pom.xml
+++ b/simple-plugin/pom.xml
@@ -27,7 +27,7 @@
org.ehrbase.openehr
bom
- 0.21.0-SNAPSHOT
+ 0.28.0-SNAPSHOT
pom
import
@@ -56,46 +56,44 @@
provided
+
org.apache.maven.plugins
- maven-jar-plugin
- 2.4
+ maven-assembly-plugin
+ 3.1.0
+
+ src/main/assembly/assembly.xml
+
+ ${project.artifactId}-${project.version}-plugin
+ false
+ false
+
+ true
+ true
+
${plugin.id}
- ${plugin.class}
${plugin.version}
${plugin.provider}
+ ${plugin.class}
${plugin.dependencies}
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.3.0
-
-
- // explicitly include all dependencies not in ehrbase in the jar.
-
- dummy
-
-
-
+ make-assembly
package
- shade
+ single
-
-
\ No newline at end of file
+
diff --git a/simple-plugin/src/main/assembly/assembly.xml b/simple-plugin/src/main/assembly/assembly.xml
new file mode 100644
index 0000000..024836a
--- /dev/null
+++ b/simple-plugin/src/main/assembly/assembly.xml
@@ -0,0 +1,19 @@
+
+ plugin
+
+ jar
+
+ false
+
+
+
+ true
+ true
+ runtime
+ /
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener3.java b/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener3.java
index 1dd278c..968c39f 100644
--- a/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener3.java
+++ b/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener3.java
@@ -1,18 +1,28 @@
package org.ehrbase.example_plugin;
+import com.nedap.archie.rm.composition.Composition;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.function.Function;
+import org.ehrbase.plugin.dto.CompositionIdWithVersionAndEhrId;
+import org.ehrbase.plugin.dto.CompositionVersionIdWithEhrId;
import org.ehrbase.plugin.dto.CompositionWithEhrId;
-import org.ehrbase.plugin.extensionpoints.AbstractCompositionExtensionPoint;
+import org.ehrbase.plugin.dto.CompositionWithEhrIdAndPreviousVersion;
+import org.ehrbase.plugin.extensionpoints.CompositionExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
import org.pf4j.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
-import java.util.UUID;
-
/**
* @author Stefan Spiska
*/
+@Order(0)
@Extension
-public class CompositionListener3 extends AbstractCompositionExtensionPoint {
+public class CompositionListener3 implements CompositionExtensionPoint {
+ private static final Logger log = LoggerFactory.getLogger(CompositionListener3.class);
private ExampleComponent ExampleComponent;
@@ -22,17 +32,80 @@ public CompositionListener3(ExampleComponent ExampleComponent) {
this.ExampleComponent = ExampleComponent;
}
- @Override
public CompositionWithEhrId beforeCreation(CompositionWithEhrId input) {
- System.out.println("Before Creation CompositionListener3");
+ log.info("Before Creation CompositionListener3");
ExampleComponent.add(
- input.getComposition());
+ input.getComposition());
return input;
}
- @Override
public UUID afterCreation(UUID output) {
- System.out.println("After Creation CompositionListener3");
- return super.afterCreation(output);
+ log.info("After Creation CompositionListener3");
+ return output;
+ }
+
+ @Override
+ public UUID aroundCreation(CompositionWithEhrId input, Function chain) {
+ log.info("Around Creation start CompositionListener3");
+ UUID uuid = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeCreation, this::afterCreation);
+ log.info("Around Creation end CompositionListener3");
+ return uuid;
+ }
+
+ public CompositionWithEhrIdAndPreviousVersion beforeUpdate(CompositionWithEhrIdAndPreviousVersion input) {
+ log.info("Before Update CompositionListener3");
+ return input;
+ }
+
+ public UUID afterUpdate(UUID output) {
+ log.info("After Update CompositionListener3");
+ return output;
+ }
+
+ @Override
+ public UUID aroundUpdate(CompositionWithEhrIdAndPreviousVersion input,
+ Function chain) {
+ log.info("Around Update start CompositionListener3");
+ UUID uuid = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeUpdate, this::afterUpdate);
+ log.info("Around Update end CompositionListener3");
+ return uuid;
+ }
+
+ public CompositionVersionIdWithEhrId beforeDelete(CompositionVersionIdWithEhrId input) {
+ log.info("Before Delete CompositionListener3");
+ return input;
+ }
+
+ public Void afterDelete(Void v) {
+ log.info("After Delete CompositionListener3");
+ return v;
+ }
+
+ @Override
+ public Void aroundDelete(CompositionVersionIdWithEhrId input, Function chain) {
+ log.info("Around Delete start CompositionListener3");
+ Void unused = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeDelete, this::afterDelete);
+ log.info("Around Delete end CompositionListener3");
+ return unused;
+ }
+
+ public CompositionIdWithVersionAndEhrId beforeRetrieve(CompositionIdWithVersionAndEhrId input) {
+ log.info("Before Retrieve CompositionListener3");
+ return input;
+ }
+
+ public Optional afterRetrieve(Optional output) {
+ log.info("After Retrieve CompositionListener3");
+ return output;
+ }
+
+ @Override
+ public Optional aroundRetrieve(CompositionIdWithVersionAndEhrId input,
+ Function> chain) {
+ log.info("Around Retrieve start CompositionListener3");
+ Optional composition =
+ ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeRetrieve, this::afterRetrieve);
+ log.info("Around Retrieve end CompositionListener3");
+ return composition;
}
}
diff --git a/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener4.java b/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener4.java
new file mode 100644
index 0000000..bbb9d97
--- /dev/null
+++ b/simple-plugin/src/main/java/org/ehrbase/example_plugin/CompositionListener4.java
@@ -0,0 +1,95 @@
+package org.ehrbase.example_plugin;
+
+import com.nedap.archie.rm.composition.Composition;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.function.Function;
+import org.ehrbase.plugin.dto.CompositionIdWithVersionAndEhrId;
+import org.ehrbase.plugin.dto.CompositionVersionIdWithEhrId;
+import org.ehrbase.plugin.dto.CompositionWithEhrId;
+import org.ehrbase.plugin.dto.CompositionWithEhrIdAndPreviousVersion;
+import org.ehrbase.plugin.extensionpoints.CompositionExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
+import org.pf4j.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.PriorityOrdered;
+
+/**
+ * @author Stefan Spiska
+ */
+
+@Extension
+public class CompositionListener4 implements CompositionExtensionPoint, PriorityOrdered {
+ private static final Logger log = LoggerFactory.getLogger(CompositionListener4.class);
+
+ @Override
+ public int getOrder() {
+ return 0;
+ }
+
+ public CompositionWithEhrId beforeCreation(CompositionWithEhrId input) {
+ log.info("Before Creation CompositionListener4");
+ return input;
+ }
+
+ @Override
+ public UUID aroundCreation(CompositionWithEhrId input, Function chain) {
+ log.info("Around Creation start CompositionListener4");
+ UUID uuid = ExtensionPointHelper.before(input, chain, this::beforeCreation);
+ log.info("Around Creation end CompositionListener4");
+ return uuid;
+ }
+
+ public UUID afterUpdate(UUID output) {
+ log.info("After Update CompositionListener4");
+ return output;
+ }
+
+ @Override
+ public UUID aroundUpdate(CompositionWithEhrIdAndPreviousVersion input,
+ Function chain) {
+ log.info("Around Update start CompositionListener4");
+ UUID uuid = ExtensionPointHelper.after(input, chain, this::afterUpdate);
+ log.info("Around Update end CompositionListener4");
+ return uuid;
+ }
+
+ public CompositionVersionIdWithEhrId beforeDelete(CompositionVersionIdWithEhrId input) {
+ log.info("Before Delete CompositionListener4");
+ return input;
+ }
+
+ public Void afterDelete(Void v) {
+ log.info("After Delete CompositionListener4");
+ return v;
+ }
+
+ @Override
+ public Void aroundDelete(CompositionVersionIdWithEhrId input, Function chain) {
+ log.info("Around Delete start CompositionListener4");
+ Void unused = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeDelete, this::afterDelete);
+ log.info("Around Delete end CompositionListener4");
+ return unused;
+ }
+
+ public CompositionIdWithVersionAndEhrId beforeRetrieve(CompositionIdWithVersionAndEhrId input) {
+ log.info("Before Retrieve CompositionListener4");
+ return input;
+ }
+
+ public Optional afterRetrieve(Optional output) {
+ log.info("After Retrieve CompositionListener4");
+ return output;
+ }
+
+ @Override
+ public Optional aroundRetrieve(CompositionIdWithVersionAndEhrId input,
+ Function> chain) {
+ log.info("Around Retrieve start CompositionListener4");
+ Optional composition =
+ ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeRetrieve, this::afterRetrieve);
+ log.info("Around Retrieve end CompositionListener4");
+ return composition;
+ }
+}
diff --git a/simple-plugin/src/main/java/org/ehrbase/example_plugin/EhrListener1.java b/simple-plugin/src/main/java/org/ehrbase/example_plugin/EhrListener1.java
new file mode 100644
index 0000000..005b1c3
--- /dev/null
+++ b/simple-plugin/src/main/java/org/ehrbase/example_plugin/EhrListener1.java
@@ -0,0 +1,81 @@
+package org.ehrbase.example_plugin;
+
+import com.nedap.archie.rm.changecontrol.OriginalVersion;
+import com.nedap.archie.rm.ehr.EhrStatus;
+import java.util.Optional;
+import java.util.UUID;
+import java.util.function.Function;
+import org.ehrbase.plugin.dto.EhrStatusVersionRequestParameters;
+import org.ehrbase.plugin.dto.EhrStatusWithEhrId;
+import org.ehrbase.plugin.extensionpoints.EhrExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
+import org.pf4j.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author Stefan Spiska
+ */
+@Extension
+public class EhrListener1 implements EhrExtensionPoint {
+ private static final Logger log = LoggerFactory.getLogger(EhrListener1.class);
+
+ public EhrStatusWithEhrId beforeCreation(EhrStatusWithEhrId input) {
+ log.info("Before Creation EhrListener1");
+ return input;
+ }
+
+ public UUID afterCreation(UUID output) {
+ log.info("After Creation EhrListener1");
+ return output;
+ }
+
+ @Override
+ public UUID aroundCreation(EhrStatusWithEhrId input, Function chain) {
+ log.info("Around Creation start EhrListener1");
+ UUID uuid = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeCreation, this::afterCreation);
+ log.info("Around Creation end EhrListener1");
+ return uuid;
+ }
+
+ public EhrStatusWithEhrId beforeUpdate(EhrStatusWithEhrId input) {
+ log.info("Before Update EhrListener1");
+ return input;
+ }
+
+ public UUID afterUpdate(UUID output) {
+ log.info("After Update EhrListener1");
+ return output;
+ }
+
+ @Override
+ public UUID aroundUpdate(EhrStatusWithEhrId input,
+ Function chain) {
+ log.info("Around Update start EhrListener1");
+ UUID uuid = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeUpdate, this::afterUpdate);
+ log.info("Around Update end EhrListener1");
+ return uuid;
+ }
+
+
+ public EhrStatusVersionRequestParameters beforeRetrieveAtVersion(EhrStatusVersionRequestParameters input) {
+ log.info("Before Retrieve EhrListener1");
+ return input;
+ }
+
+ public Optional> afterRetrieveAtVersion(Optional> output) {
+ log.info("After Retrieve EhrListener1");
+ return output;
+ }
+
+ @Override
+ public Optional> aroundRetrieveAtVersion(EhrStatusVersionRequestParameters input,
+ Function>> chain) {
+ log.info("Around Retrieve start EhrListener1");
+ Optional> ehrStatusVersion =
+ ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeRetrieveAtVersion, this::afterRetrieveAtVersion);
+ log.info("Around Retrieve end EhrListener1");
+ return ehrStatusVersion;
+ }
+}
diff --git a/simple-plugin/src/main/java/org/ehrbase/example_plugin/QueryListener1.java b/simple-plugin/src/main/java/org/ehrbase/example_plugin/QueryListener1.java
new file mode 100644
index 0000000..4a10960
--- /dev/null
+++ b/simple-plugin/src/main/java/org/ehrbase/example_plugin/QueryListener1.java
@@ -0,0 +1,34 @@
+package org.ehrbase.example_plugin;
+
+import java.util.function.Function;
+import org.ehrbase.openehr.sdk.response.dto.ehrscape.QueryResultDto;
+import org.ehrbase.plugin.dto.QueryWithParameters;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
+import org.ehrbase.plugin.extensionpoints.QueryExtensionPoint;
+import org.pf4j.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Extension
+public class QueryListener1 implements QueryExtensionPoint {
+ private static final Logger log = LoggerFactory.getLogger(QueryListener1.class);
+
+ public QueryWithParameters beforeQueryExecution(QueryWithParameters input) {
+ log.info("Before Query Exec QueryListener1");
+ return input;
+ }
+
+ public QueryResultDto afterQueryExecution(QueryResultDto output) {
+ log.info("After Query Exec QueryListener1");
+ return output;
+ }
+
+ @Override
+ public QueryResultDto aroundQueryExecution(QueryWithParameters input, Function chain) {
+ log.info("Around Query Exec start QueryListener1");
+ QueryResultDto queryResultDto =
+ ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeQueryExecution, this::afterQueryExecution);
+ log.info("Around Query Exec end QueryListener1");
+ return queryResultDto;
+ }
+}
diff --git a/simple-plugin/src/main/java/org/ehrbase/example_plugin/TemplateListener1.java b/simple-plugin/src/main/java/org/ehrbase/example_plugin/TemplateListener1.java
new file mode 100644
index 0000000..f1f3f7a
--- /dev/null
+++ b/simple-plugin/src/main/java/org/ehrbase/example_plugin/TemplateListener1.java
@@ -0,0 +1,32 @@
+package org.ehrbase.example_plugin;
+
+import java.util.function.Function;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
+import org.ehrbase.plugin.extensionpoints.TemplateExtensionPoint;
+import org.openehr.schemas.v1.OPERATIONALTEMPLATE;
+import org.pf4j.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@Extension
+public class TemplateListener1 implements TemplateExtensionPoint {
+ private static final Logger log = LoggerFactory.getLogger(TemplateListener1.class);
+
+ public OPERATIONALTEMPLATE beforeCreation(OPERATIONALTEMPLATE input) {
+ log.info("Before Template Creation TemplateListener1");
+ return input;
+ }
+
+ public String afterCreation(String output) {
+ log.info("After Template Creation TemplateListener1");
+ return output;
+ }
+
+ @Override
+ public String aroundCreation(OPERATIONALTEMPLATE input, Function chain) {
+ log.info("Around Template Creation start TemplateListener1");
+ String s = ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeCreation, this::afterCreation);
+ log.info("Around Template Creation end TemplateListener1");
+ return s;
+ }
+}
diff --git a/simple-plugin/src/main/java/org/ehrbase/example_plugin/TestProperty.java b/simple-plugin/src/main/java/org/ehrbase/example_plugin/TestProperty.java
index 0016085..659b14a 100644
--- a/simple-plugin/src/main/java/org/ehrbase/example_plugin/TestProperty.java
+++ b/simple-plugin/src/main/java/org/ehrbase/example_plugin/TestProperty.java
@@ -5,6 +5,7 @@
/**
* @author Stefan Spiska
*/
+// Read from ${plugin-config-dir}\${plugin.id}\test.yml
@ConfigurationProperties(prefix = "test.sub1")
public class TestProperty {
diff --git a/web-plugin/pom.xml b/web-plugin/pom.xml
index 8290021..e235877 100644
--- a/web-plugin/pom.xml
+++ b/web-plugin/pom.xml
@@ -24,10 +24,11 @@
+
org.ehrbase.openehr
bom
- 0.21.0-SNAPSHOT
+ 0.28.0-SNAPSHOT
pom
import
@@ -36,7 +37,6 @@
-
org.springframework
spring-context
@@ -55,42 +55,50 @@
service
provided
+
+
+
+ com.indvd00m.ascii.render
+ ascii-render
+ 2.2.0
+
+
+
+
org.apache.maven.plugins
- maven-jar-plugin
- 2.4
+ maven-assembly-plugin
+ 3.1.0
+
+ src/main/assembly/assembly.xml
+
+ ${project.artifactId}-${project.version}-plugin
+ false
+ false
+
+ true
+ true
+
${plugin.id}
- ${plugin.class}
${plugin.version}
${plugin.provider}
+ ${plugin.class}
${plugin.dependencies}
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.3.0
-
-
- // explicitly include all dependencies not in ehrbase in the jar.
-
- dummy
-
-
-
+ make-assembly
package
- shade
+ single
@@ -98,4 +106,4 @@
-
\ No newline at end of file
+
diff --git a/web-plugin/src/main/assembly/assembly.xml b/web-plugin/src/main/assembly/assembly.xml
new file mode 100644
index 0000000..024836a
--- /dev/null
+++ b/web-plugin/src/main/assembly/assembly.xml
@@ -0,0 +1,19 @@
+
+ plugin
+
+ jar
+
+ false
+
+
+
+ true
+ true
+ runtime
+ /
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener1.java b/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener1.java
index b1b0e25..7c804f1 100644
--- a/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener1.java
+++ b/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener1.java
@@ -1,19 +1,23 @@
package org.ehrbase.example_web_plugin;
+import java.util.UUID;
+import java.util.function.Function;
import org.ehrbase.plugin.dto.CompositionWithEhrId;
-import org.ehrbase.plugin.extensionpoints.AbstractCompositionExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.CompositionExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
import org.pf4j.Extension;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
-import java.util.UUID;
-
/**
* @author Stefan Spiska
*/
@Extension
@Order(1)
-public class CompositionListener1 extends AbstractCompositionExtensionPoint {
+public class CompositionListener1 implements CompositionExtensionPoint {
+ private static final Logger log = LoggerFactory.getLogger(CompositionListener1.class);
private ExampleService exampleService;
@@ -23,17 +27,20 @@ public CompositionListener1(ExampleService exampleService) {
this.exampleService = exampleService;
}
- @Override
public CompositionWithEhrId beforeCreation(CompositionWithEhrId input) {
- System.out.println("Before Creation CompositionListener1");
+ log.info("Before Creation CompositionListener1");
exampleService.add(
- input.getComposition());
+ input.getComposition());
return input;
}
- @Override
public UUID afterCreation(UUID output) {
- System.out.println("After Creation CompositionListener1");
- return super.afterCreation(output);
+ log.info("After Creation CompositionListener1");
+ return output;
+ }
+
+ @Override
+ public UUID aroundCreation(CompositionWithEhrId input, Function chain) {
+ return ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeCreation, this::afterCreation);
}
}
diff --git a/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener2.java b/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener2.java
index 2ef6ddb..d936c37 100644
--- a/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener2.java
+++ b/web-plugin/src/main/java/org/ehrbase/example_web_plugin/CompositionListener2.java
@@ -1,33 +1,35 @@
package org.ehrbase.example_web_plugin;
+import java.util.UUID;
+import java.util.function.Function;
import org.ehrbase.plugin.dto.CompositionWithEhrId;
-import org.ehrbase.plugin.extensionpoints.AbstractCompositionExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.CompositionExtensionPoint;
+import org.ehrbase.plugin.extensionpoints.ExtensionPointHelper;
import org.pf4j.Extension;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
-import java.util.UUID;
-
/**
* @author Stefan Spiska
*/
@Extension
@Order(2)
-public class CompositionListener2 extends AbstractCompositionExtensionPoint {
-
-
-
+public class CompositionListener2 implements CompositionExtensionPoint {
+ private static final Logger log = LoggerFactory.getLogger(CompositionListener2.class);
- @Override
public CompositionWithEhrId beforeCreation(CompositionWithEhrId input) {
- System.out.println("Before Creation CompositionListener2");
-
+ log.info("Before Creation CompositionListener2");
return input;
}
- @Override
public UUID afterCreation(UUID output) {
- System.out.println("After Creation CompositionListener2");
- return super.afterCreation(output);
+ log.info("After Creation CompositionListener2");
+ return output;
+ }
+
+ @Override
+ public UUID aroundCreation(CompositionWithEhrId input, Function chain) {
+ return ExtensionPointHelper.beforeAndAfter(input, chain, this::beforeCreation, this::afterCreation);
}
}
diff --git a/web-plugin/src/main/java/org/ehrbase/example_web_plugin/ExampleController.java b/web-plugin/src/main/java/org/ehrbase/example_web_plugin/ExampleController.java
index 3f57022..cdf6482 100644
--- a/web-plugin/src/main/java/org/ehrbase/example_web_plugin/ExampleController.java
+++ b/web-plugin/src/main/java/org/ehrbase/example_web_plugin/ExampleController.java
@@ -1,5 +1,11 @@
package org.ehrbase.example_web_plugin;
+import com.indvd00m.ascii.render.Render;
+import com.indvd00m.ascii.render.api.ICanvas;
+import com.indvd00m.ascii.render.api.IContextBuilder;
+import com.indvd00m.ascii.render.api.IRender;
+import com.indvd00m.ascii.render.elements.Label;
+import com.indvd00m.ascii.render.elements.Rectangle;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -32,5 +38,15 @@ public ResponseEntity