orpiske commented on code in PR #8617:
URL: https://github.com/apache/camel/pull/8617#discussion_r1003411317


##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

Review Comment:
   Same note as above about reusing the standards set from the parent pom.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>

Review Comment:
   There's a typo in the description.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>

Review Comment:
   Incorrect license.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+                       <version>${commons-lang3.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>commons-cli</groupId>
+                       <artifactId>commons-cli</artifactId>
+                       <version>${commons-cli.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Camel dependencies 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jackson</artifactId>
+               
+
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-main</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jsonpath</artifactId>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20211205</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>commons-validator</groupId>
+                       <artifactId>commons-validator</artifactId>
+                       <version>${commons-validator.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.launchdarkly</groupId>
+                       <artifactId>okhttp-eventsource</artifactId>
+                       <version>${launchdarkly.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Casper DSKs 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>com.syntifi.casper</groupId>
+                       <artifactId>casper-sdk</artifactId>
+                       <version>${casper-sdk.version}</version>
+               </dependency>
+
+
+               <!--//////////////////////////////////// logging 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.logging.log4j</groupId>
+                       <artifactId>log4j-slf4j-impl</artifactId>
+                       <scope>runtime</scope>
+                       <version>${log4j2.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// testing 
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>${junit.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test-junit5</artifactId>
+                       <version>${camel.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-core</artifactId>
+                       <version>${mockito-core.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-junit-jupiter</artifactId>
+                       <version>${mockito-junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+                       <version>${junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-web</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       
<groupId>org.springframework.boot</groupId>
+                                       
<artifactId>spring-boot-starter-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+                       <version>${springframework.version}</version>
+               </dependency>

Review Comment:
   I'll leave for others more knowledgeable about Camel Spring Boot (CSB) to 
comment on this specific part, but I am afraid these tests would need to be 
moved to CSB. 



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/CasperConstants.java:
##########
@@ -0,0 +1,73 @@
+package org.apache.camel.component.casper;
+
+/**
+ * Constants
+ * @author mabahma
+ */
+public interface CasperConstants {
+       //RPC Calls
+       String ENDPOINT_SERVICE = "NETWORK_PEERS, 
NODE_STATUS,DEPLOY,LAST_BLOCK,BLOCK,LAST_BLOCK_TRANSFERS,BLOCK_TRANSFERS,STATE_ROOT_HASH,ACCOUNT_INFO"
+            + 
",AUCTION_INFO,ERA_INFO,STATE_ITEM,ACCOUNT_BALANC,ERPC_SCHEMA,GLOBAL_STATE,VALIDATOR_CHANGES,DICTIONARY_ITEM"
+            + "";

Review Comment:
   I don't think this extra "" is necessary.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+                       <version>${commons-lang3.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>commons-cli</groupId>
+                       <artifactId>commons-cli</artifactId>
+                       <version>${commons-cli.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Camel dependencies 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jackson</artifactId>
+               
+
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-main</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jsonpath</artifactId>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20211205</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>commons-validator</groupId>
+                       <artifactId>commons-validator</artifactId>
+                       <version>${commons-validator.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.launchdarkly</groupId>
+                       <artifactId>okhttp-eventsource</artifactId>
+                       <version>${launchdarkly.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Casper DSKs 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>com.syntifi.casper</groupId>
+                       <artifactId>casper-sdk</artifactId>
+                       <version>${casper-sdk.version}</version>
+               </dependency>
+
+
+               <!--//////////////////////////////////// logging 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.logging.log4j</groupId>
+                       <artifactId>log4j-slf4j-impl</artifactId>
+                       <scope>runtime</scope>
+                       <version>${log4j2.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// testing 
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>${junit.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test-junit5</artifactId>
+                       <version>${camel.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-core</artifactId>
+                       <version>${mockito-core.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-junit-jupiter</artifactId>
+                       <version>${mockito-junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+                       <version>${junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-web</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       
<groupId>org.springframework.boot</groupId>
+                                       
<artifactId>spring-boot-starter-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
+                       <version>${springframework.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>net.bytebuddy</groupId>
+                       <artifactId>byte-buddy</artifactId>
+                       <version>${byte-buddy.version}</version>
+                       <scope>runtime</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.objenesis</groupId>
+                       <artifactId>objenesis</artifactId>
+                       <version>${objenesis.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-databind</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-core</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
 -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-annotations</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2
 -->
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-log4j2</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+       </dependencies>
+
+
+       <build>
+               <plugins>
+
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <configuration>
+                                       <encoding>UTF-8</encoding>
+                               </configuration>
+                       </plugin>
+
+                       <!-- generate camel meta-data -->
+                       <plugin>
+                               <groupId>org.apache.camel</groupId>
+                               
<artifactId>camel-package-maven-plugin</artifactId>
+                               <version>${camel.version}</version>
+                               <executions>
+                                       <execution>
+                                               <id>generate</id>
+                                               <goals>
+                                                       <goal>generate</goal>
+                                               </goals>
+                                               <phase>process-classes</phase>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.codehaus.mojo</groupId>
+                               
<artifactId>build-helper-maven-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <executions>
+                                       <execution>
+                                               <phase>initialize</phase>
+                                               <goals>
+                                                       <goal>add-source</goal>
+                                                       
<goal>add-resource</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <sources>
+                                                               
<source>src/generated/java</source>
+                                                       </sources>
+                                                       <resources>
+                                                               <resource>
+                                                                       
<directory>src/generated/resources</directory>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+
+                       <plugin>
+                               <artifactId>maven-compiler-plugin</artifactId>
+                               <version>3.9.0</version>
+                               <configuration>
+                                       <source>1.8</source>
+                                       <target>1.8</target>
+                               </configuration>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-source-plugin</artifactId>
+                               <version>2.2.1</version>
+                               <executions>
+                                       <execution>
+                                               <id>attach-sources</id>
+                                               <goals>
+                                                       <goal>jar-no-fork</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-surefire-plugin</artifactId>
+                               <version>2.22.0</version>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-failsafe-plugin</artifactId>
+                               <version>2.22.0</version>
+                       </plugin>

Review Comment:
   Likely not necessary.



##########
components/camel-casper/src/main/docs/casper-component.adoc:
##########
@@ -0,0 +1,64 @@
+= Casper Camel Connector Component
+:doctitle: Casper Camel Connector
+:shortname: casper
+:artifactid: camel-casper
+:description: Camel casper endpoint : to interract with Casper nodes
+:since: 3.20.0
+:supportlevel: Preview
+:component-header: Both producer and consumer are supported
+//Manually maintained attributes
+:camel-spring-boot-name: casper
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The Casper blockchain component uses the Casper Java SDK :
+https://github.com/syntifi/casper-sdk  and allows you to interact with Casper 
nodes.
+
+add the folllowing dependency maven  `pom.xml` file.

Review Comment:
   Typo and missing capitalization. 



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/examples/DemoApp.java:
##########
@@ -0,0 +1,204 @@
+package org.apache.camel.component.casper.examples;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.casper.CasperConstants;
+import org.apache.camel.component.jackson.JacksonDataFormat;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.syntifi.casper.sdk.model.auction.AuctionState;
+import com.syntifi.casper.sdk.model.balance.BalanceData;
+import com.syntifi.casper.sdk.model.block.JsonBlock;
+import com.syntifi.casper.sdk.model.era.JsonEraValidators;
+import com.syntifi.casper.sdk.model.stateroothash.StateRootHashData;
+
+/**
+ * Demo Class loading Casper components example routes  
+ * @author p35862
+ *
+ */
+
+@SuppressWarnings("deprecation")
+public class DemoApp {
+       public static final Logger LOG = LoggerFactory.getLogger(DemoApp.class);
+
+       /**
+        * loads route 1
+        * @param cntxt : Camel context
+        * @param temp : producerTemplate
+        * @throws Exception : exception
+        */
+       private static void loadroute1(CamelContext cntxt, ProducerTemplate 
temp) throws Exception {
+               cntxt.addRoutes(new RouteBuilder() {
+                       public void configure() throws Exception {
+                               from("direct:" + 
CasperConstants.STATE_ROOT_HASH).routeId("STATE_ROOT_HASH")

Review Comment:
   Nitpick: use `fromF` as it is cleaner than concatenating route code.



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/examples/DemoApp.java:
##########
@@ -0,0 +1,204 @@
+package org.apache.camel.component.casper.examples;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.casper.CasperConstants;
+import org.apache.camel.component.jackson.JacksonDataFormat;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.syntifi.casper.sdk.model.auction.AuctionState;
+import com.syntifi.casper.sdk.model.balance.BalanceData;
+import com.syntifi.casper.sdk.model.block.JsonBlock;
+import com.syntifi.casper.sdk.model.era.JsonEraValidators;
+import com.syntifi.casper.sdk.model.stateroothash.StateRootHashData;
+
+/**
+ * Demo Class loading Casper components example routes  
+ * @author p35862
+ *
+ */
+
+@SuppressWarnings("deprecation")
+public class DemoApp {

Review Comment:
   As this PR is very big already, I'd consider moving this as a separate PR to 
the [camel-examples repository](https://github.com/apache/camel-examples)



##########
components/camel-casper/src/test/java/org/apache/camel/component/casper/producer/CasperProducerWith_STATE_ITEM_OperationTest.java:
##########
@@ -0,0 +1,88 @@
+package org.apache.camel.component.casper.producer;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.apache.camel.CamelExchangeException;
+import org.apache.camel.Exchange;
+import org.apache.camel.Produce;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.casper.CasperConstants;
+import org.apache.camel.component.casper.CasperTestSupport;
+import org.apache.commons.cli.MissingArgumentException;
+import org.junit.jupiter.api.Test;
+
+import com.syntifi.casper.sdk.model.storedvalue.StoredValue;
+
+@SuppressWarnings("rawtypes")

Review Comment:
   Avoid suppressing warnings. Ideally, all warnings should be fixed prior to 
inclusion.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+                       <version>${commons-lang3.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>commons-cli</groupId>
+                       <artifactId>commons-cli</artifactId>
+                       <version>${commons-cli.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Camel dependencies 
//////////////////////////////////// -->

Review Comment:
   Nitpick: no need to format the comment like this.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>

Review Comment:
   This is is incorrect and causes a cyclic dependency. It can be removed. Any 
required dependency should be added specifically here if needed.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+                       <version>${commons-lang3.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>commons-cli</groupId>
+                       <artifactId>commons-cli</artifactId>
+                       <version>${commons-cli.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Camel dependencies 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jackson</artifactId>
+               
+
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-main</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jsonpath</artifactId>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20211205</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>commons-validator</groupId>
+                       <artifactId>commons-validator</artifactId>
+                       <version>${commons-validator.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.launchdarkly</groupId>
+                       <artifactId>okhttp-eventsource</artifactId>
+                       <version>${launchdarkly.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Casper DSKs 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>com.syntifi.casper</groupId>
+                       <artifactId>casper-sdk</artifactId>
+                       <version>${casper-sdk.version}</version>
+               </dependency>
+
+
+               <!--//////////////////////////////////// logging 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.logging.log4j</groupId>
+                       <artifactId>log4j-slf4j-impl</artifactId>
+                       <scope>runtime</scope>
+                       <version>${log4j2.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// testing 
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>${junit.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test-junit5</artifactId>
+                       <version>${camel.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-core</artifactId>
+                       <version>${mockito-core.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-junit-jupiter</artifactId>
+                       <version>${mockito-junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+                       <version>${junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-web</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       
<groupId>org.springframework.boot</groupId>
+                                       
<artifactId>spring-boot-starter-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
+                       <version>${springframework.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>net.bytebuddy</groupId>
+                       <artifactId>byte-buddy</artifactId>
+                       <version>${byte-buddy.version}</version>
+                       <scope>runtime</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.objenesis</groupId>
+                       <artifactId>objenesis</artifactId>
+                       <version>${objenesis.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-databind</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-core</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
 -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-annotations</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2
 -->
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-log4j2</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+       </dependencies>
+
+
+       <build>
+               <plugins>
+
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <configuration>
+                                       <encoding>UTF-8</encoding>
+                               </configuration>
+                       </plugin>

Review Comment:
   Probably can reuse what is already defined in the parent pom(s).



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>

Review Comment:
   Compilation and/or build parameters should try to reuse what is already 
defined in the parent pom(s). 



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>

Review Comment:
   Versions should be defined in both the parent pom as well as the 
camel-dependencies. Additionally, it is recommended to try to use the same 
versions defined there whenever possible. 



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/CasperConstants.java:
##########
@@ -0,0 +1,73 @@
+package org.apache.camel.component.casper;
+
+/**
+ * Constants
+ * @author mabahma
+ */
+public interface CasperConstants {

Review Comment:
   Please use a class to define the constants instead of using an interface.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+                       <version>${commons-lang3.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>commons-cli</groupId>
+                       <artifactId>commons-cli</artifactId>
+                       <version>${commons-cli.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Camel dependencies 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jackson</artifactId>
+               
+
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-main</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jsonpath</artifactId>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20211205</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>commons-validator</groupId>
+                       <artifactId>commons-validator</artifactId>
+                       <version>${commons-validator.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.launchdarkly</groupId>
+                       <artifactId>okhttp-eventsource</artifactId>
+                       <version>${launchdarkly.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Casper DSKs 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>com.syntifi.casper</groupId>
+                       <artifactId>casper-sdk</artifactId>
+                       <version>${casper-sdk.version}</version>
+               </dependency>
+
+
+               <!--//////////////////////////////////// logging 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.logging.log4j</groupId>
+                       <artifactId>log4j-slf4j-impl</artifactId>
+                       <scope>runtime</scope>
+                       <version>${log4j2.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// testing 
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>${junit.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test-junit5</artifactId>
+                       <version>${camel.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-core</artifactId>
+                       <version>${mockito-core.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-junit-jupiter</artifactId>
+                       <version>${mockito-junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+                       <version>${junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-web</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       
<groupId>org.springframework.boot</groupId>
+                                       
<artifactId>spring-boot-starter-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
+                       <version>${springframework.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>net.bytebuddy</groupId>
+                       <artifactId>byte-buddy</artifactId>
+                       <version>${byte-buddy.version}</version>
+                       <scope>runtime</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.objenesis</groupId>
+                       <artifactId>objenesis</artifactId>
+                       <version>${objenesis.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-databind</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-core</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
 -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-annotations</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2
 -->
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-log4j2</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+       </dependencies>
+
+
+       <build>
+               <plugins>
+
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <configuration>
+                                       <encoding>UTF-8</encoding>
+                               </configuration>
+                       </plugin>
+
+                       <!-- generate camel meta-data -->
+                       <plugin>
+                               <groupId>org.apache.camel</groupId>
+                               
<artifactId>camel-package-maven-plugin</artifactId>
+                               <version>${camel.version}</version>
+                               <executions>
+                                       <execution>
+                                               <id>generate</id>
+                                               <goals>
+                                                       <goal>generate</goal>
+                                               </goals>
+                                               <phase>process-classes</phase>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.codehaus.mojo</groupId>
+                               
<artifactId>build-helper-maven-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <executions>
+                                       <execution>
+                                               <phase>initialize</phase>
+                                               <goals>
+                                                       <goal>add-source</goal>
+                                                       
<goal>add-resource</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <sources>
+                                                               
<source>src/generated/java</source>
+                                                       </sources>
+                                                       <resources>
+                                                               <resource>
+                                                                       
<directory>src/generated/resources</directory>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+
+                       <plugin>
+                               <artifactId>maven-compiler-plugin</artifactId>
+                               <version>3.9.0</version>
+                               <configuration>
+                                       <source>1.8</source>
+                                       <target>1.8</target>
+                               </configuration>
+                       </plugin>

Review Comment:
   This is not necessary. Also, Camel supports Java 11+. 



##########
components/camel-casper/src/main/docs/casper-component.adoc:
##########
@@ -0,0 +1,64 @@
+= Casper Camel Connector Component
+:doctitle: Casper Camel Connector
+:shortname: casper
+:artifactid: camel-casper
+:description: Camel casper endpoint : to interract with Casper nodes

Review Comment:
   I'd follow the description pattern used in other components. Please look at 
how we write the description for the `camel-kafka` component and try to 
describe this one on the same way.



##########
components/camel-casper/pom.xml:
##########
@@ -0,0 +1,395 @@
+<?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/maven-v4_0_0.xsd";>
+
+       <modelVersion>4.0.0</modelVersion>
+
+       <parent>
+               <groupId>org.apache.camel</groupId>
+               <artifactId>components</artifactId>
+               <version>3.20.0-SNAPSHOT</version>
+       </parent>
+
+
+       <artifactId>camel-casper</artifactId>
+       <packaging>jar</packaging>
+
+       <name>Camel :: Casper</name>
+       <description>Camel Casper blockchaine component</description>
+       <url>https://casperlabs.io/</url>
+
+
+       <properties>
+               <compiler.source>1.8</compiler.source>
+               <compiler.target>1.8</compiler.target>
+               
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
+               
<maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
+               
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+               
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+               <log4j2.version>2.13.3</log4j2.version>
+               <camel.version>3.14.2</camel.version>
+               <casper-java-sdk.version>0.3.0</casper-java-sdk.version>
+               <junit.version>4.13.2</junit.version>
+               <launchdarkly.version>2.3.2</launchdarkly.version>
+               <commons-lang3.version>3.11</commons-lang3.version>
+               <casper-sdk.version>0.1.0</casper-sdk.version>
+               <commons-cli.version>1.4</commons-cli.version>
+               <commons-validator.version>1.7</commons-validator.version>
+               <junit-jupiter.version>5.8.0</junit-jupiter.version>
+               <mockito-core.version>3.12.2</mockito-core.version>
+               
<mockito-junit-jupiter.version>3.12.2</mockito-junit-jupiter.version>
+               <springframework.version>2.1.2.RELEASE</springframework.version>
+               <fasterxml.jackson.version>2.13.0</fasterxml.jackson.version>
+               <byte-buddy.version>1.9.3</byte-buddy.version>
+               <objenesis.version>2.6</objenesis.version>
+
+               <tomcat.version>9.0.54</tomcat.version>
+       </properties>
+
+       <licenses>
+               <license>
+                       <name>MIT License</name>
+                       
<url>http://www.opensource.org/licenses/mit-license.php</url>
+               </license>
+       </licenses>
+
+
+       <dependencyManagement>
+               <dependencies>
+                       <dependency>
+                               <groupId>org.apache.camel</groupId>
+                               <artifactId>camel-bom</artifactId>
+                               <version>${camel.version}</version>
+                               <scope>import</scope>
+                               <type>pom</type>
+                       </dependency>
+               </dependencies>
+       </dependencyManagement>
+
+       <dependencies>
+
+
+               <dependency>
+                       <groupId>org.apache.commons</groupId>
+                       <artifactId>commons-lang3</artifactId>
+                       <version>${commons-lang3.version}</version>
+               </dependency>
+               <dependency>
+                       <groupId>commons-cli</groupId>
+                       <artifactId>commons-cli</artifactId>
+                       <version>${commons-cli.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Camel dependencies 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jackson</artifactId>
+               
+
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-main</artifactId>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-jsonpath</artifactId>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.json</groupId>
+                       <artifactId>json</artifactId>
+                       <version>20211205</version>
+               </dependency>
+
+               <dependency>
+                       <groupId>commons-validator</groupId>
+                       <artifactId>commons-validator</artifactId>
+                       <version>${commons-validator.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.launchdarkly</groupId>
+                       <artifactId>okhttp-eventsource</artifactId>
+                       <version>${launchdarkly.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// Casper DSKs 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>com.syntifi.casper</groupId>
+                       <artifactId>casper-sdk</artifactId>
+                       <version>${casper-sdk.version}</version>
+               </dependency>
+
+
+               <!--//////////////////////////////////// logging 
//////////////////////////////////// -->
+
+               <dependency>
+                       <groupId>org.apache.logging.log4j</groupId>
+                       <artifactId>log4j-slf4j-impl</artifactId>
+                       <scope>runtime</scope>
+                       <version>${log4j2.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// testing 
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>${junit.version}</version>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.camel</groupId>
+                       <artifactId>camel-test-junit5</artifactId>
+                       <version>${camel.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-core</artifactId>
+                       <version>${mockito-core.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-junit-jupiter</artifactId>
+                       <version>${mockito-junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.junit.jupiter</groupId>
+                       <artifactId>junit-jupiter</artifactId>
+                       <version>${junit-jupiter.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-web</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       
<groupId>org.springframework.boot</groupId>
+                                       
<artifactId>spring-boot-starter-logging</artifactId>
+                               </exclusion>
+                       </exclusions>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-test</artifactId>
+                       <version>${springframework.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+               <dependency>
+                       <groupId>net.bytebuddy</groupId>
+                       <artifactId>byte-buddy</artifactId>
+                       <version>${byte-buddy.version}</version>
+                       <scope>runtime</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.objenesis</groupId>
+                       <artifactId>objenesis</artifactId>
+                       <version>${objenesis.version}</version>
+                       <scope>test</scope>
+               </dependency>
+
+
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-databind</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-core</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations
 -->
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-annotations</artifactId>
+                       <version>${fasterxml.jackson.version}</version>
+               </dependency>
+
+               <!-- 
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2
 -->
+               <dependency>
+                       <groupId>org.springframework.boot</groupId>
+                       <artifactId>spring-boot-starter-log4j2</artifactId>
+                       <version>${springframework.version}</version>
+               </dependency>
+
+               <!--//////////////////////////////////// SSE tests  
//////////////////////////////////// -->
+
+
+       </dependencies>
+
+
+       <build>
+               <plugins>
+
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <configuration>
+                                       <encoding>UTF-8</encoding>
+                               </configuration>
+                       </plugin>
+
+                       <!-- generate camel meta-data -->
+                       <plugin>
+                               <groupId>org.apache.camel</groupId>
+                               
<artifactId>camel-package-maven-plugin</artifactId>
+                               <version>${camel.version}</version>
+                               <executions>
+                                       <execution>
+                                               <id>generate</id>
+                                               <goals>
+                                                       <goal>generate</goal>
+                                               </goals>
+                                               <phase>process-classes</phase>
+                                       </execution>
+                               </executions>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.codehaus.mojo</groupId>
+                               
<artifactId>build-helper-maven-plugin</artifactId>
+                               <version>3.2.0</version>
+                               <executions>
+                                       <execution>
+                                               <phase>initialize</phase>
+                                               <goals>
+                                                       <goal>add-source</goal>
+                                                       
<goal>add-resource</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <sources>
+                                                               
<source>src/generated/java</source>
+                                                       </sources>
+                                                       <resources>
+                                                               <resource>
+                                                                       
<directory>src/generated/resources</directory>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+
+                       <plugin>
+                               <artifactId>maven-compiler-plugin</artifactId>
+                               <version>3.9.0</version>
+                               <configuration>
+                                       <source>1.8</source>
+                                       <target>1.8</target>
+                               </configuration>
+                       </plugin>
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-source-plugin</artifactId>
+                               <version>2.2.1</version>
+                               <executions>
+                                       <execution>
+                                               <id>attach-sources</id>
+                                               <goals>
+                                                       <goal>jar-no-fork</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+
+
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-surefire-plugin</artifactId>
+                               <version>2.22.0</version>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-failsafe-plugin</artifactId>
+                               <version>2.22.0</version>
+                       </plugin>
+
+                       <!-- SSE Test-->
+
+                       <plugin>
+                               <groupId>org.springframework.boot</groupId>
+                               
<artifactId>spring-boot-maven-plugin</artifactId>
+                               <version>2.1.2.RELEASE</version>
+                       </plugin>
+
+
+                       <!-- JaCoCo plugin-->
+                       <plugin>
+                               <groupId>org.jacoco</groupId>
+                               <artifactId>jacoco-maven-plugin</artifactId>
+                               <version>0.8.7</version>
+                               <executions>
+                                       <execution>
+                                               <goals>
+                                                       
<goal>prepare-agent</goal>
+                                               </goals>
+                                       </execution>
+                                       <execution>
+                                               <id>report</id>
+                                               <phase>prepare-package</phase>
+                                               <goals>
+                                                       <goal>report</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>

Review Comment:
   Not necessary. We do not generate Jacoco reports at the moment.



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/CasperEndPoint.java:
##########
@@ -0,0 +1,138 @@
+package org.apache.camel.component.casper;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.InvalidPathException;
+import java.util.Arrays;
+
+import org.apache.camel.Category;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
+import org.apache.camel.support.DefaultEndpoint;
+import org.apache.commons.validator.routines.UrlValidator;
+
+import com.syntifi.casper.sdk.service.CasperService;
+
+/**
+ * Camel casper endpoint : to interract with Casper nodes
+ * 
+ * @author p35862
+ *
+ */
+
+@UriEndpoint(firstVersion = "3.14.2", scheme = "casper", title = "Casper Camel 
Connector", syntax = "casper:nodeUrl", label = "casper", category = { 
Category.BITCOIN, Category.BLOCKCHAIN,

Review Comment:
   The `firstVersion` is incorrect. 



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/CasperEndPoint.java:
##########
@@ -0,0 +1,138 @@
+package org.apache.camel.component.casper;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.InvalidPathException;
+import java.util.Arrays;
+
+import org.apache.camel.Category;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
+import org.apache.camel.support.DefaultEndpoint;
+import org.apache.commons.validator.routines.UrlValidator;
+
+import com.syntifi.casper.sdk.service.CasperService;
+
+/**
+ * Camel casper endpoint : to interract with Casper nodes
+ * 
+ * @author p35862
+ *
+ */
+
+@UriEndpoint(firstVersion = "3.14.2", scheme = "casper", title = "Casper Camel 
Connector", syntax = "casper:nodeUrl", label = "casper", category = { 
Category.BITCOIN, Category.BLOCKCHAIN,
+               Category.API })
+public class CasperEndPoint extends DefaultEndpoint {
+       /**
+        * CasperService bean : Casper java SDK
+        */
+       private CasperService casperService;
+       /**
+        * nodeUrl : node address
+        */
+       @UriPath(description = "Node URL,  e.g. http://localhost:7777/ for 
producer, http://localhost:9999/events/main for consumer")
+       @Metadata(required = true)
+       private String nodeUrl;
+       /**
+        * Casper component configuration
+        */
+       @UriParam(description = "Casper component configuration")
+       private CasperConfiguration configuration;
+       /**
+        * CasperEndPoint constructor
+        *
+        * @param uri             : Node Uri
+        * @param remaining       : remaining
+        * @param casperComponent : casperComponent, either producer or consumer
+        * @param configuration   : casperConfiguration
+        * @throws URISyntaxException : URISyntaxException
+        */
+       public CasperEndPoint(String uri, String remaining, CasperComponent 
casperComponent, CasperConfiguration configuration) throws URISyntaxException {
+               super(uri, casperComponent);
+               this.configuration = configuration;
+               validateAndSetURL(remaining);
+               // this.nodeUrl = remaining;
+       }
+
+       /**
+        * Create a Casper Consumer component
+        *
+        * @param processor : Apache Camel Processor
+        * @return CasperConsumer : Casper Consumer component
+        * @throws Exception : exception
+        */
+       @Override
+       public Consumer createConsumer(Processor processor) throws Exception {
+               URI uri = new URI(nodeUrl);
+               String event = configuration.getEvent();
+               if 
(!Arrays.asList(CasperConstants.CONSUMER_PATHS.split(",")).stream().anyMatch(s 
-> s.equals(uri.getPath())))
+                       throw new InvalidPathException(uri.getPath(),
+                                       String.format("Invalid path '%s' for 
Casper Stream event server: expected '/events/main', '/events/deploys' or 
'/events/sigs ", uri.getPath()));
+               if (ConsumerEvent.findByName(event) != null) {
+                       CasperConsumer consumer = new CasperConsumer(this, 
processor, configuration);
+                       configureConsumer(consumer);
+                       return consumer;

Review Comment:
   This probably is going to be highlighted by checkstyle, but raising it 
nonetheless:  this formatting is incorrect due to missing `{`, `}` for the 
blocks. 
   
    



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/examples/DemoApp.java:
##########
@@ -0,0 +1,204 @@
+package org.apache.camel.component.casper.examples;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.casper.CasperConstants;
+import org.apache.camel.component.jackson.JacksonDataFormat;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.syntifi.casper.sdk.model.auction.AuctionState;
+import com.syntifi.casper.sdk.model.balance.BalanceData;
+import com.syntifi.casper.sdk.model.block.JsonBlock;
+import com.syntifi.casper.sdk.model.era.JsonEraValidators;
+import com.syntifi.casper.sdk.model.stateroothash.StateRootHashData;
+
+/**
+ * Demo Class loading Casper components example routes  
+ * @author p35862
+ *
+ */
+
+@SuppressWarnings("deprecation")

Review Comment:
   Please don't suppress deprecation warnings. Ideally, they should be fixed 
prior to inclusion.



##########
components/camel-casper/src/main/java/org/apache/camel/component/casper/examples/DemoApp.java:
##########
@@ -0,0 +1,204 @@
+package org.apache.camel.component.casper.examples;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.casper.CasperConstants;
+import org.apache.camel.component.jackson.JacksonDataFormat;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.syntifi.casper.sdk.model.auction.AuctionState;
+import com.syntifi.casper.sdk.model.balance.BalanceData;
+import com.syntifi.casper.sdk.model.block.JsonBlock;
+import com.syntifi.casper.sdk.model.era.JsonEraValidators;
+import com.syntifi.casper.sdk.model.stateroothash.StateRootHashData;
+
+/**
+ * Demo Class loading Casper components example routes  
+ * @author p35862
+ *
+ */
+
+@SuppressWarnings("deprecation")
+public class DemoApp {
+       public static final Logger LOG = LoggerFactory.getLogger(DemoApp.class);
+
+       /**
+        * loads route 1
+        * @param cntxt : Camel context
+        * @param temp : producerTemplate
+        * @throws Exception : exception
+        */
+       private static void loadroute1(CamelContext cntxt, ProducerTemplate 
temp) throws Exception {
+               cntxt.addRoutes(new RouteBuilder() {
+                       public void configure() throws Exception {
+                               from("direct:" + 
CasperConstants.STATE_ROOT_HASH).routeId("STATE_ROOT_HASH")
+                                               
.to("casper:http://65.21.227.180:7777/?operation="; + 
CasperConstants.STATE_ROOT_HASH)
+                                               .process(new Processor() {
+
+                                                       @Override
+                                                       public void 
process(Exchange exchange) throws Exception {
+                                                               
StateRootHashData state = (StateRootHashData) exchange.getIn().getBody();
+                                                               LOG.info("* 
Current STATE_ROOT_HASH is : " + state.getStateRootHash());

Review Comment:
   Please use log markers (ie.: `LOG.info("Current STATE_ROOT_HASH is : {}", 
state.getStateRootHash());` 
   
   Also, as a general suggestion, avoid using custom markers/formatters in the 
log messages (i.e.: prefixing them with **** or other characters). 



##########
components/camel-casper/src/test/java/org/apache/camel/component/casper/consumer/CasperConsumerComponentTest.java:
##########
@@ -0,0 +1,57 @@
+package org.apache.camel.component.casper.consumer;
+
+import static org.junit.Assert.assertThrows;
+//import static org.junit.jupiter.api.Assertions.assertThrows;

Review Comment:
   Commented code should be removed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to