This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new ca5a8a5 Added tests and docs for the simple language #2533
ca5a8a5 is described below
commit ca5a8a5c7f31baba1d949a33867454869a532fe3
Author: aldettinger <[email protected]>
AuthorDate: Thu Apr 29 17:17:56 2021 +0200
Added tests and docs for the simple language #2533
---
.../ROOT/pages/reference/extensions/core.adoc | 44 ++++++++
.../core/runtime/src/main/doc/configuration.adoc | 42 ++++++++
integration-tests/pom.xml | 1 +
integration-tests/simple/pom.xml | 117 +++++++++++++++++++++
.../language/simple/ReflectionConfigurations.java | 39 +++++++
.../quarkus/language/simple/SimpleResource.java | 83 +++++++++++++++
.../quarkus/language/simple/SimpleRoutes.java | 37 +++++++
.../src/main/resources/application.properties | 17 +++
.../simple/src/main/resources/mysimple.txt | 1 +
.../org/apache/camel/quarkus/core/SimpleIT.java | 24 +++++
.../org/apache/camel/quarkus/core/SimpleTest.java | 63 +++++++++++
tooling/scripts/test-categories.yaml | 1 +
12 files changed, 469 insertions(+)
diff --git a/docs/modules/ROOT/pages/reference/extensions/core.adoc
b/docs/modules/ROOT/pages/reference/extensions/core.adoc
index f8c1d7f..de535c4 100644
--- a/docs/modules/ROOT/pages/reference/extensions/core.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/core.adoc
@@ -47,6 +47,50 @@ Check the xref:user-guide/index.adoc[User guide] for more
information about writ
== Additional Camel Quarkus configuration
+=== Simple language
+
+==== Using the OGNL notation
+When using the OGNL notation from the simple language, the
`camel-quarkus-bean` extension should be used.
+
+For instance, the expression below is accessing the `getAddress()` method on
the message body of type `Client`.
+[source,java]
+---
+simple("${body.address}")
+---
+
+In such a situation, one should take an additional dependency on the
camel-quarkus-bean extension xref:{cq-camel-components}::bean-component.adoc[as
described here].
+Note that in native mode, some classes may need to be registered for
reflection. In the example above, the `Client` class
+needs to be
link:https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection[registered
for reflection].
+
+==== Using dynamic type resolution in native mode
+When dynamically resolving a type from simple expressions like
`${mandatoryBodyAs(TYPE)}` or `${body} is TYPE`, it may be needed to register
some classes for reflection manually.
+
+For instance, the simple expressions below is dynamically resolving the type
`java.nio.ByteBuffer` at runtime:
+[source,java]
+---
+simple("${body} is 'java.nio.ByteBuffer'")
+---
+
+As such, the class `java.nio.ByteBuffer` needs to be
link:https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection[registered
for reflection].
+
+==== Using the simple language with classpath resources in native mode
+Beyond standard usages, a trick is needed when using the simple language with
classpath resources in native mode. In such a situation, one needs to
explicitly embed the resources in the native executable by specifying the
`include-patterns` option.
+
+For instance, the route below would load a simple script from a classpath
resource named _mysimple.txt_:
+[source,java]
+----
+from("direct:start").transform().simple("resource:classpath:mysimple.txt");
+----
+
+In order to work in native mode the `include-patterns` configuration should be
set. For instance, in the `application.properties` file as below :
+[source,properties]
+----
+quarkus.camel.native.resources.include-patterns = *.txt
+----
+
+More information about selecting resources for inclusion in the native
executable could be found at
xref:user-guide/native-mode.adoc#embedding-resource-in-native-executable[Embedding
resource in native executable].
+
+
[width="100%",cols="80,5,15",options="header"]
|===
| Configuration property | Type | Default
diff --git a/extensions-core/core/runtime/src/main/doc/configuration.adoc
b/extensions-core/core/runtime/src/main/doc/configuration.adoc
new file mode 100644
index 0000000..37be2ca
--- /dev/null
+++ b/extensions-core/core/runtime/src/main/doc/configuration.adoc
@@ -0,0 +1,42 @@
+=== Simple language
+
+==== Using the OGNL notation
+When using the OGNL notation from the simple language, the
`camel-quarkus-bean` extension should be used.
+
+For instance, the expression below is accessing the `getAddress()` method on
the message body of type `Client`.
+[source,java]
+---
+simple("${body.address}")
+---
+
+In such a situation, one should take an additional dependency on the
camel-quarkus-bean extension xref:{cq-camel-components}::bean-component.adoc[as
described here].
+Note that in native mode, some classes may need to be registered for
reflection. In the example above, the `Client` class
+needs to be
link:https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection[registered
for reflection].
+
+==== Using dynamic type resolution in native mode
+When dynamically resolving a type from simple expressions like
`${mandatoryBodyAs(TYPE)}` or `${body} is TYPE`, it may be needed to register
some classes for reflection manually.
+
+For instance, the simple expressions below is dynamically resolving the type
`java.nio.ByteBuffer` at runtime:
+[source,java]
+---
+simple("${body} is 'java.nio.ByteBuffer'")
+---
+
+As such, the class `java.nio.ByteBuffer` needs to be
link:https://quarkus.io/guides/writing-native-applications-tips#registering-for-reflection[registered
for reflection].
+
+==== Using the simple language with classpath resources in native mode
+Beyond standard usages, a trick is needed when using the simple language with
classpath resources in native mode. In such a situation, one needs to
explicitly embed the resources in the native executable by specifying the
`include-patterns` option.
+
+For instance, the route below would load a simple script from a classpath
resource named _mysimple.txt_:
+[source,java]
+----
+from("direct:start").transform().simple("resource:classpath:mysimple.txt");
+----
+
+In order to work in native mode the `include-patterns` configuration should be
set. For instance, in the `application.properties` file as below :
+[source,properties]
+----
+quarkus.camel.native.resources.include-patterns = *.txt
+----
+
+More information about selecting resources for inclusion in the native
executable could be found at
xref:user-guide/native-mode.adoc#embedding-resource-in-native-executable[Embedding
resource in native executable].
\ No newline at end of file
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index b0c3e07..dbcdefd 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -187,6 +187,7 @@
<module>servicenow</module>
<module>servlet</module>
<module>shiro</module>
+ <module>simple</module>
<module>slack</module>
<module>smallrye-reactive-messaging</module>
<module>soap</module>
diff --git a/integration-tests/simple/pom.xml b/integration-tests/simple/pom.xml
new file mode 100644
index 0000000..9f4a9e4
--- /dev/null
+++ b/integration-tests/simple/pom.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-integration-tests</artifactId>
+ <version>1.9.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>camel-quarkus-integration-test-simple</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: Simple :: Tests</name>
+ <description>The camel quarkus integration tests for the simple
language</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-direct</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-bean</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy</artifactId>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.rest-assured</groupId>
+ <artifactId>rest-assured</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- The following dependencies guarantee that this module is built
after them. You can update them by running `mvn process-resources -Pformat -N`
from the source tree root directory -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-bean-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-direct-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>native</id>
+ <activation>
+ <property>
+ <name>native</name>
+ </property>
+ </activation>
+ <properties>
+ <quarkus.package.type>native</quarkus.package.type>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
diff --git
a/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/ReflectionConfigurations.java
b/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/ReflectionConfigurations.java
new file mode 100644
index 0000000..503c1c2
--- /dev/null
+++
b/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/ReflectionConfigurations.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.language.simple;
+
+import java.nio.ByteBuffer;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+
+/**
+ * Manually register some third party classes for reflection.
+ */
+public class ReflectionConfigurations {
+
+ // Needed as "${mandatoryBodyAs(String).OGNL}" reflectively invokes method
'String.toUpperCase()'
+ @RegisterForReflection(targets = String.class, fields = false)
+ public class StringReflectionConfiguration {
+ }
+
+ // Needed as "${body} is TYPE" reflectively resolves 'java.nio.ByteBuffer'
+ // at runtime
+ @RegisterForReflection(targets = ByteBuffer.class, fields = false, methods
= false)
+ public class ByteBufferReflectionConfiguration {
+ }
+
+}
diff --git
a/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/SimpleResource.java
b/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/SimpleResource.java
new file mode 100644
index 0000000..face86e
--- /dev/null
+++
b/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/SimpleResource.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.language.simple;
+
+import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.camel.ProducerTemplate;
+
+@Path("/simple")
+@ApplicationScoped
+public class SimpleResource {
+
+ @Inject
+ ProducerTemplate template;
+
+ @Path("/filter")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String filter(boolean premium) {
+ return template.requestBodyAndHeader("direct:filter-simple",
"NOT-PREMIUM", "premium", premium, String.class);
+ }
+
+ @Path("/transform")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String transform(String user) {
+ return template.requestBodyAndHeader("direct:transform-simple", null,
"user", user, String.class);
+ }
+
+ @Path("/resource")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String resource(String body) {
+ return template.requestBody("direct:resource-simple", body,
String.class);
+ }
+
+ @Path("/mandatoryBodyAs")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String mandatoryBodyAs(byte[] body) {
+ return template.requestBody("direct:mandatoryBodyAs-simple", body,
String.class);
+ }
+
+ @Path("/bodyIs")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String mandatoryBodyAs(String body) {
+ if ("A body of type String".equals(body)) {
+ return template.requestBody("direct:bodyIs-simple", "STRING",
String.class);
+ } else {
+ return template.requestBody("direct:bodyIs-simple",
ByteBuffer.wrap(body.getBytes(StandardCharsets.UTF_8)),
+ String.class);
+ }
+ }
+}
diff --git
a/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/SimpleRoutes.java
b/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/SimpleRoutes.java
new file mode 100644
index 0000000..a211d37
--- /dev/null
+++
b/integration-tests/simple/src/main/java/org/apache/camel/quarkus/language/simple/SimpleRoutes.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.language.simple;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class SimpleRoutes extends RouteBuilder {
+
+ @Override
+ public void configure() {
+ from("direct:filter-simple").filter().simple("${in.header.premium} ==
true").setBody(constant("PREMIUM"));
+
+ from("direct:transform-simple").transform().simple("Hello
${in.header.user} !");
+
+
from("direct:resource-simple").transform().simple("resource:classpath:mysimple.txt");
+
+
from("direct:mandatoryBodyAs-simple").filter().simple("${mandatoryBodyAs(String).toUpperCase()}
== 'GOLD'")
+ .setBody(constant("PREMIUM"));
+
+ from("direct:bodyIs-simple").filter().simple("${body} is
'java.nio.ByteBuffer'").setBody(constant("BYTE_BUFFER"));
+ }
+
+}
diff --git a/integration-tests/simple/src/main/resources/application.properties
b/integration-tests/simple/src/main/resources/application.properties
new file mode 100644
index 0000000..3b3c4fc
--- /dev/null
+++ b/integration-tests/simple/src/main/resources/application.properties
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+quarkus.camel.native.resources.include-patterns = *.txt
\ No newline at end of file
diff --git a/integration-tests/simple/src/main/resources/mysimple.txt
b/integration-tests/simple/src/main/resources/mysimple.txt
new file mode 100644
index 0000000..d47026a
--- /dev/null
+++ b/integration-tests/simple/src/main/resources/mysimple.txt
@@ -0,0 +1 @@
+The name is ${body}
\ No newline at end of file
diff --git
a/integration-tests/simple/src/test/java/org/apache/camel/quarkus/core/SimpleIT.java
b/integration-tests/simple/src/test/java/org/apache/camel/quarkus/core/SimpleIT.java
new file mode 100644
index 0000000..04ec3a7
--- /dev/null
+++
b/integration-tests/simple/src/test/java/org/apache/camel/quarkus/core/SimpleIT.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.core;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+public class SimpleIT extends SimpleTest {
+
+}
diff --git
a/integration-tests/simple/src/test/java/org/apache/camel/quarkus/core/SimpleTest.java
b/integration-tests/simple/src/test/java/org/apache/camel/quarkus/core/SimpleTest.java
new file mode 100644
index 0000000..520a53f
--- /dev/null
+++
b/integration-tests/simple/src/test/java/org/apache/camel/quarkus/core/SimpleTest.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.core;
+
+import io.quarkus.test.junit.QuarkusTest;
+import org.junit.jupiter.api.Test;
+
+import static io.restassured.RestAssured.given;
+import static org.hamcrest.CoreMatchers.is;
+
+@QuarkusTest
+public class SimpleTest {
+
+ @Test
+ public void premiumHeaderShouldPassThroughFilter() {
+
given().body(true).when().get("/simple/filter").then().statusCode(200).body(is("PREMIUM"));
+ }
+
+ @Test
+ public void notPremiumHeaderShouldNotPassThroughFilter() {
+
given().body(false).when().get("/simple/filter").then().statusCode(200).body(is("NOT-PREMIUM"));
+ }
+
+ @Test
+ public void aliceUserHeaderShouldBeTransformedToHelloAlice() {
+
given().body("Alice").when().get("/simple/transform").then().statusCode(200).body(is("Hello
Alice !"));
+ }
+
+ @Test
+ public void aliceBodyShouldBeTransformedToTheNameIsAlice() {
+
given().body("Alice").when().get("/simple/resource").then().statusCode(200).body(is("The
name is Alice"));
+ }
+
+ @Test
+ public void goldBodyShouldPassThroughFilter() {
+
given().body("gold").when().get("/simple/mandatoryBodyAs").then().statusCode(200).body(is("PREMIUM"));
+ }
+
+ @Test
+ public void stringBodyShouldNotPassThroughBodyIsFilter() {
+ given().body("A body of type
String").when().get("/simple/bodyIs").then().statusCode(200).body(is("STRING"));
+ }
+
+ @Test
+ public void byteBufferBodyShouldPassThroughBodyIsFilter() {
+ given().body("A body of type
ByteBuffer").when().get("/simple/bodyIs").then().statusCode(200).body(is("BYTE_BUFFER"));
+ }
+
+}
diff --git a/tooling/scripts/test-categories.yaml
b/tooling/scripts/test-categories.yaml
index e732d5d..f28c5c4 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -37,6 +37,7 @@ group-02:
- oaipmh
- pubnub
- protobuf
+ - simple
- smallrye-reactive-messaging
- solr
- sql