You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/11/30 19:21:38 UTC

[camel] branch master updated: CAMEL-15879 Update avro version to 1.10.x (1.10.0) (#4702)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new a78fff1  CAMEL-15879 Update avro version to 1.10.x (1.10.0) (#4702)
a78fff1 is described below

commit a78fff15f29898c5893db98a9977b1cf6e1629e8
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Mon Nov 30 20:21:01 2020 +0100

    CAMEL-15879 Update avro version to 1.10.x (1.10.0) (#4702)
---
 camel-dependencies/pom.xml                         |   6 +-
 .../apache/camel/catalog/docs/avro-component.adoc  |   4 +
 .../src/main/docs/avro-component.adoc              |   4 +
 .../component/avro/AvroConsumerTestSupport.java    |  22 ++++
 .../component/avro/AvroNettyConsumerTest.java      | 121 +++++++++++++--------
 .../component/avro/AvroNettyProducerTest.java      |  73 +++++++------
 .../avro/AvroNettySpringConsumerTest.java          |   5 +-
 .../component/avro/AvroProducerTestSupport.java    |  10 +-
 .../camel/component/avro/ConsumerRouteType.java    |  24 ++++
 .../camel/component/avro/ProducerRouteType.java    |  22 ++++
 .../base.xml}                                      |  40 -------
 .../reflect.xml}                                   |  49 ---------
 .../component/avro/netty-consumer/specific.xml     |  45 ++++++++
 .../avro/netty-consumer/specificProcessor.xml      |  40 +++++++
 .../avro/netty-consumer/specificProcessorWrong.xml |  37 +++++++
 .../modules/ROOT/pages/avro-component.adoc         |   4 +
 parent/pom.xml                                     |   6 +-
 17 files changed, 334 insertions(+), 178 deletions(-)

diff --git a/camel-dependencies/pom.xml b/camel-dependencies/pom.xml
index ac24247..6e09bca 100644
--- a/camel-dependencies/pom.xml
+++ b/camel-dependencies/pom.xml
@@ -65,9 +65,9 @@
     <atmosphere-version-range>[2.6,3.0)</atmosphere-version-range>
     <atomix-catalyst-version>1.2.1</atomix-catalyst-version>
     <atomix-version>1.0.8</atomix-version>
-    <avro-ipc-jetty-version>1.9.1</avro-ipc-jetty-version>
-    <avro-ipc-netty-version>1.9.1</avro-ipc-netty-version>
-    <avro-version>1.9.1</avro-version>
+    <avro-ipc-jetty-version>1.10.0</avro-ipc-jetty-version>
+    <avro-ipc-netty-version>1.10.0</avro-ipc-netty-version>
+    <avro-version>1.10.0</avro-version>
     <awaitility-version>4.0.3</awaitility-version>
     <aws-java-sdk-swf-libs>1.11.22</aws-java-sdk-swf-libs>
     <aws-java-sdk-version>1.11.714</aws-java-sdk-version>
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc
index ce5588f..18255f0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/avro-component.adoc
@@ -274,4 +274,8 @@ is used and `getProcessor` will receive Value class directly in body,
 while `putProcessor` will receive an array of size 2 with String key and
 Value value filled as array contents.
 
+== Karaf support
+
+This component is not supported in Karaf.
+
 include::camel-spring-boot::page$avro-starter.adoc[]
diff --git a/components/camel-avro-rpc/src/main/docs/avro-component.adoc b/components/camel-avro-rpc/src/main/docs/avro-component.adoc
index ce5588f..18255f0 100644
--- a/components/camel-avro-rpc/src/main/docs/avro-component.adoc
+++ b/components/camel-avro-rpc/src/main/docs/avro-component.adoc
@@ -274,4 +274,8 @@ is used and `getProcessor` will receive Value class directly in body,
 while `putProcessor` will receive an array of size 2 with String key and
 Value value filled as array contents.
 
+== Karaf support
+
+This component is not supported in Karaf.
+
 include::camel-spring-boot::page$avro-starter.adoc[]
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroConsumerTestSupport.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroConsumerTestSupport.java
index 602187f..fe99af2 100644
--- a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroConsumerTestSupport.java
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroConsumerTestSupport.java
@@ -188,4 +188,26 @@ public abstract class AvroConsumerTestSupport extends AvroTestSupport {
         Object response = reflectRequestor.request("getTestPojo", request);
         assertEquals(testPojo.getPojoName(), ((TestPojo) response).getPojoName());
     }
+
+    protected ConsumerRouteType getRouteType() {
+        switch (getCurrentTestName()) {
+            case "testInOut()":
+            case "testInOnly()":
+                return ConsumerRouteType.specific;
+            case "testInOutMessageInRoute()":
+            case "testInOnlyWrongMessageName()":
+            case "testInOnlyMessageInRoute()":
+                return ConsumerRouteType.specificProcessor;
+            case "testInOnlyReflectSingleParameterNotSet()":
+            case "testInOutReflectionPojoTest()":
+            case "testInOnlyReflectionPojoTest()":
+            case "testInOutReflectRequestor()":
+            case "testInOnlyReflectRequestor()":
+                return ConsumerRouteType.reflect;
+            case "testInOnlyToNotExistingRoute()":
+                return ConsumerRouteType.specificProcessorWrong;
+            default:
+                throw new IllegalStateException(String.format("Test '%s' is not listed.", getCurrentTestName()));
+        }
+    }
 }
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyConsumerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyConsumerTest.java
index ffaf1a2..27c6c2e 100644
--- a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyConsumerTest.java
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyConsumerTest.java
@@ -34,17 +34,29 @@ public class AvroNettyConsumerTest extends AvroConsumerTestSupport {
 
     @Override
     protected void initializeTranceiver() throws IOException {
-        transceiver = new NettyTransceiver(new InetSocketAddress("localhost", avroPort));
-        requestor = new SpecificRequestor(KeyValueProtocol.class, transceiver);
-
-        transceiverMessageInRoute = new NettyTransceiver(new InetSocketAddress("localhost", avroPortMessageInRoute));
-        requestorMessageInRoute = new SpecificRequestor(KeyValueProtocol.class, transceiverMessageInRoute);
-
-        transceiverForWrongMessages = new NettyTransceiver(new InetSocketAddress("localhost", avroPortForWrongMessages));
-        requestorForWrongMessages = new SpecificRequestor(KeyValueProtocol.class, transceiverForWrongMessages);
-
-        reflectTransceiver = new NettyTransceiver(new InetSocketAddress("localhost", avroPortReflection));
-        reflectRequestor = new ReflectRequestor(TestReflection.class, reflectTransceiver);
+        ConsumerRouteType type = getRouteType();
+
+        switch (type) {
+            case reflect:
+                reflectTransceiver = new NettyTransceiver(new InetSocketAddress("localhost", avroPortReflection));
+                reflectRequestor = new ReflectRequestor(TestReflection.class, reflectTransceiver);
+                return;
+            case specific:
+                transceiver = new NettyTransceiver(new InetSocketAddress("localhost", avroPort));
+                requestor = new SpecificRequestor(KeyValueProtocol.class, transceiver);
+                return;
+            case specificProcessor:
+                transceiverMessageInRoute = new NettyTransceiver(new InetSocketAddress("localhost", avroPortMessageInRoute));
+                requestorMessageInRoute = new SpecificRequestor(KeyValueProtocol.class, transceiverMessageInRoute);
+                return;
+            case specificProcessorWrong:
+                transceiverForWrongMessages
+                        = new NettyTransceiver(new InetSocketAddress("localhost", avroPortForWrongMessages));
+                requestorForWrongMessages = new SpecificRequestor(KeyValueProtocol.class, transceiverForWrongMessages);
+                return;
+            default:
+                throw new IllegalStateException("Unsupported type of route.");
+        }
     }
 
     @Override
@@ -52,45 +64,58 @@ public class AvroNettyConsumerTest extends AvroConsumerTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                //In Only
-                from("avro:netty:localhost:" + avroPort + "?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                        .choice()
-                        .when().simple("${in.headers." + AvroConstants.AVRO_MESSAGE_NAME + "} == 'put'")
-                        .process(new PutProcessor(keyValue))
-                        .when().simple("${in.headers." + AvroConstants.AVRO_MESSAGE_NAME + "} == 'get'")
-                        .process(new GetProcessor(keyValue));
-
-                from("avro:netty:localhost:" + avroPortMessageInRoute
-                     + "/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                             .process(new PutProcessor(keyValue));
-
-                from("avro:netty:localhost:" + avroPortMessageInRoute
-                     + "/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                             .process(new GetProcessor(keyValue));
-
-                from("avro:netty:localhost:" + avroPortForWrongMessages
-                     + "/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                             .process(new PutProcessor(keyValue));
-
-                from("avro:netty:localhost:" + avroPortReflection
-                     + "/setName?protocolClassName=org.apache.camel.avro.test.TestReflection&singleParameter=true")
-                             .process(new ReflectionInOnlyProcessor(testReflection));
-
-                from("avro:netty:localhost:" + avroPortReflection
-                     + "/setAge?protocolClassName=org.apache.camel.avro.test.TestReflection")
-                             .process(new ReflectionInOnlyProcessor(testReflection));
-
-                from("avro:http:localhost:" + avroPortReflection
-                     + "/setTestPojo?protocolClassName=org.apache.camel.avro.test.TestReflection&singleParameter=true")
-                             .process(new ReflectionInOnlyProcessor(testReflection));
 
-                from("avro:http:localhost:" + avroPortReflection
-                     + "/increaseAge?protocolClassName=org.apache.camel.avro.test.TestReflection&singleParameter=true")
-                             .process(new ReflectionInOutProcessor(testReflection));
+                switch (getRouteType()) {
+                    case specific:
+                        from("avro:netty:localhost:" + avroPort
+                             + "?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                     .choice()
+                                     .when().simple("${in.headers." + AvroConstants.AVRO_MESSAGE_NAME + "} == 'put'")
+                                     .process(new PutProcessor(keyValue))
+                                     .when().simple("${in.headers." + AvroConstants.AVRO_MESSAGE_NAME + "} == 'get'")
+                                     .process(new GetProcessor(keyValue));
+                        break;
+                    case specificProcessor:
+                        from("avro:netty:localhost:" + avroPortMessageInRoute
+                             + "/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                     .process(new GetProcessor(keyValue));
+
+                        from("avro:netty:localhost:" + avroPortMessageInRoute
+                             + "/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                     .process(new PutProcessor(keyValue));
+
+                        break;
+                    case specificProcessorWrong:
+                        from("avro:netty:localhost:" + avroPortForWrongMessages
+                             + "/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                     .process(new PutProcessor(keyValue));
+                        break;
+                    case reflect:
+                        from("avro:netty:localhost:" + avroPortReflection
+                             + "/getTestPojo?protocolClassName=org.apache.camel.avro.test.TestReflection")
+                                     .process(new ReflectionInOutProcessor(testReflection));
+
+                        from("avro:netty:localhost:" + avroPortReflection
+                             + "/setAge?protocolClassName=org.apache.camel.avro.test.TestReflection")
+                                     .process(new ReflectionInOnlyProcessor(testReflection));
+
+                        from("avro:http:localhost:" + avroPortReflection
+                             + "/setTestPojo?protocolClassName=org.apache.camel.avro.test.TestReflection&singleParameter=true")
+                                     .process(new ReflectionInOnlyProcessor(testReflection));
+
+                        from("avro:http:localhost:" + avroPortReflection
+                             + "/increaseAge?protocolClassName=org.apache.camel.avro.test.TestReflection&singleParameter=true")
+                                     .process(new ReflectionInOutProcessor(testReflection));
+
+                        from("avro:netty:localhost:" + avroPortReflection
+                             + "/setName?protocolClassName=org.apache.camel.avro.test.TestReflection&singleParameter=true")
+                                     .process(new ReflectionInOnlyProcessor(testReflection));
+
+                        break;
+                    default:
+                        throw new IllegalStateException("Unsupported type of route.");
+                }
 
-                from("avro:netty:localhost:" + avroPortReflection
-                     + "/getTestPojo?protocolClassName=org.apache.camel.avro.test.TestReflection")
-                             .process(new ReflectionInOutProcessor(testReflection));
             }
         };
     }
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyProducerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyProducerTest.java
index 9971c1b..f0b5b46 100644
--- a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyProducerTest.java
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyProducerTest.java
@@ -28,14 +28,14 @@ import org.apache.camel.builder.RouteBuilder;
 public class AvroNettyProducerTest extends AvroProducerTestSupport {
 
     @Override
-    protected void initializeServer() {
-        if (server == null) {
+    protected void initializeServer() throws InterruptedException {
+        if (server == null && getRouteType() == ProducerRouteType.specific) {
             server = new NettyServer(
                     new SpecificResponder(KeyValueProtocol.PROTOCOL, keyValue), new InetSocketAddress("localhost", avroPort));
             server.start();
         }
 
-        if (serverReflection == null) {
+        if (serverReflection == null && getRouteType() == ProducerRouteType.reflect) {
             serverReflection = new NettyServer(
                     new ReflectResponder(TestReflection.class, testReflection),
                     new InetSocketAddress("localhost", avroPortReflection));
@@ -48,40 +48,47 @@ public class AvroNettyProducerTest extends AvroProducerTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                //In Only
-                from("direct:in")
-                        .to("avro:netty:localhost:" + avroPort
-                            + "?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol");
+                switch (getRouteType()) {
+                    case specific:
+                        //In Only
+                        from("direct:in")
+                                .to("avro:netty:localhost:" + avroPort
+                                    + "?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol");
 
-                //In Only with message in route
-                from("direct:in-message-name")
-                        .errorHandler(deadLetterChannel("mock:in-message-name-error"))
-                        .to("avro:netty:localhost:" + avroPort
-                            + "/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                        .to("mock:result-in-message-name");
+                        //In Only with message in route
+                        from("direct:in-message-name")
+                                .errorHandler(deadLetterChannel("mock:in-message-name-error"))
+                                .to("avro:netty:localhost:" + avroPort
+                                    + "/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                .to("mock:result-in-message-name");
 
-                //In Only with existing interface
-                from("direct:in-reflection")
-                        .to("avro:netty:localhost:" + avroPortReflection
-                            + "/setName?protocolClassName=org.apache.camel.avro.test.TestReflection");
+                        //InOut
+                        from("direct:inout")
+                                .to("avro:netty:localhost:" + avroPort
+                                    + "?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                .to("mock:result-inout");
 
-                //InOut
-                from("direct:inout")
-                        .to("avro:netty:localhost:" + avroPort
-                            + "?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                        .to("mock:result-inout");
+                        //InOut
+                        from("direct:inout-message-name")
+                                .to("avro:netty:localhost:" + avroPort
+                                    + "/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
+                                .to("mock:result-inout-message-name");
+                        break;
+                    case reflect:
+                        //In Only with existing interface
+                        from("direct:in-reflection")
+                                .to("avro:netty:localhost:" + avroPortReflection
+                                    + "/setName?protocolClassName=org.apache.camel.avro.test.TestReflection");
 
-                //InOut
-                from("direct:inout-message-name")
-                        .to("avro:netty:localhost:" + avroPort
-                            + "/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol")
-                        .to("mock:result-inout-message-name");
-
-                //InOut with existing interface
-                from("direct:inout-reflection")
-                        .to("avro:netty:localhost:" + avroPortReflection
-                            + "/increaseAge?protocolClassName=org.apache.camel.avro.test.TestReflection")
-                        .to("mock:result-inout-reflection");
+                        //InOut with existing interface
+                        from("direct:inout-reflection")
+                                .to("avro:netty:localhost:" + avroPortReflection
+                                    + "/increaseAge?protocolClassName=org.apache.camel.avro.test.TestReflection")
+                                .to("mock:result-inout-reflection");
+                        break;
+                    default:
+                        throw new IllegalStateException("Unsupported type of route.");
+                }
             }
         };
     }
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringConsumerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringConsumerTest.java
index 99f265f..15e3608 100644
--- a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringConsumerTest.java
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringConsumerTest.java
@@ -49,7 +49,10 @@ public class AvroNettySpringConsumerTest extends AvroNettyConsumerTest {
 
     @Override
     protected CamelContext createCamelContext() throws Exception {
-        applicationContext = new ClassPathXmlApplicationContext("org/apache/camel/component/avro/avro-netty-consumer.xml");
+        String xmlPath = "org/apache/camel/component/avro/netty-consumer/";
+
+        applicationContext = new ClassPathXmlApplicationContext(xmlPath + "base.xml", xmlPath + getRouteType().name() + ".xml");
+
         return SpringCamelContext.springCamelContext(applicationContext, true);
     }
 
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroProducerTestSupport.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroProducerTestSupport.java
index d18160b..c42548d 100644
--- a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroProducerTestSupport.java
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroProducerTestSupport.java
@@ -36,7 +36,7 @@ public abstract class AvroProducerTestSupport extends AvroTestSupport {
     KeyValueProtocolImpl keyValue = new KeyValueProtocolImpl();
     TestReflectionImpl testReflection = new TestReflectionImpl();
 
-    protected abstract void initializeServer() throws IOException;
+    protected abstract void initializeServer() throws IOException, InterruptedException;
 
     @Override
     protected void doPreSetup() throws Exception {
@@ -142,4 +142,12 @@ public abstract class AvroProducerTestSupport extends AvroTestSupport {
         mock.assertIsSatisfied(5000);
     }
 
+    protected ProducerRouteType getRouteType() {
+        if (getCurrentTestName().contains("Reflection")) {
+            return ProducerRouteType.reflect;
+        }
+
+        return ProducerRouteType.specific;
+    }
+
 }
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/ConsumerRouteType.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/ConsumerRouteType.java
new file mode 100644
index 0000000..b84f36d
--- /dev/null
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/ConsumerRouteType.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.avro;
+
+public enum ConsumerRouteType {
+    specific,
+    specificProcessor,
+    specificProcessorWrong,
+    reflect
+}
diff --git a/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/ProducerRouteType.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/ProducerRouteType.java
new file mode 100644
index 0000000..c659ef4
--- /dev/null
+++ b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/ProducerRouteType.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.avro;
+
+public enum ProducerRouteType {
+    specific,
+    reflect
+}
diff --git a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-consumer.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/base.xml
similarity index 59%
copy from components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-consumer.xml
copy to components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/base.xml
index 3c3814e..b07889d 100644
--- a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-consumer.xml
+++ b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/base.xml
@@ -39,46 +39,6 @@
                 </when>
             </choice>
         </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortMessageInRoute}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <process ref="putProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortMessageInRoute}}/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <process ref="getProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortForWrongMessages}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <process ref="putProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortReflection}}/setName?protocolClassName=org.apache.camel.avro.test.TestReflection&amp;singleParameter=true"/>
-            <process ref="reflectionInOnlyProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortReflection}}/setAge?protocolClassName=org.apache.camel.avro.test.TestReflection"/>
-            <process ref="reflectionInOnlyProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortReflection}}/setTestPojo?protocolClassName=org.apache.camel.avro.test.TestReflection&amp;singleParameter=true"/>
-            <process ref="reflectionInOnlyProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortReflection}}/increaseAge?protocolClassName=org.apache.camel.avro.test.TestReflection&amp;singleParameter=true"/>
-            <process ref="reflectionInOutProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortReflection}}/getTestPojo?protocolClassName=org.apache.camel.avro.test.TestReflection"/>
-            <process ref="reflectionInOutProcessor"/>
-        </route>
 
     </camelContext>
 
diff --git a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-consumer.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/reflect.xml
similarity index 56%
rename from components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-consumer.xml
rename to components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/reflect.xml
index 3c3814e..b610f78 100644
--- a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-consumer.xml
+++ b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/reflect.xml
@@ -27,35 +27,6 @@
     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
         <propertyPlaceholder id="properties" ignoreMissingLocation="true" location="classpath:custom.properties"/>
         <route>
-            <from uri="avro:netty:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <choice>
-                <when>
-                    <simple>${in.headers.CamelAvroMessageName} == 'put'</simple>
-                    <process ref="putProcessor"/>
-                </when>
-                <when>
-                    <simple>${in.headers.CamelAvroMessageName} == 'get'</simple>
-                    <process ref="getProcessor"/>
-                </when>
-            </choice>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortMessageInRoute}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <process ref="putProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortMessageInRoute}}/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <process ref="getProcessor"/>
-        </route>
-        
-        <route>
-            <from uri="avro:netty:localhost:{{avroPortForWrongMessages}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
-            <process ref="putProcessor"/>
-        </route>
-        
-        <route>
             <from uri="avro:netty:localhost:{{avroPortReflection}}/setName?protocolClassName=org.apache.camel.avro.test.TestReflection&amp;singleParameter=true"/>
             <process ref="reflectionInOnlyProcessor"/>
         </route>
@@ -82,24 +53,4 @@
 
     </camelContext>
 
-    <bean id="keyValue" class="org.apache.camel.avro.impl.KeyValueProtocolImpl"/>
-    
-    <bean id="testReflection" class="org.apache.camel.avro.test.TestReflectionImpl"/>
-
-    <bean id="getProcessor" class="org.apache.camel.component.avro.processors.GetProcessor">
-        <constructor-arg ref="keyValue"/>
-    </bean>
-
-    <bean id="putProcessor" class="org.apache.camel.component.avro.processors.PutProcessor">
-        <constructor-arg ref="keyValue"/>
-    </bean>
-    
-    <bean id="reflectionInOnlyProcessor" class="org.apache.camel.component.avro.processors.ReflectionInOnlyProcessor">
-    	<constructor-arg ref="testReflection"/>
-    </bean>
-    
-    <bean id="reflectionInOutProcessor" class="org.apache.camel.component.avro.processors.ReflectionInOutProcessor">
-    	<constructor-arg ref="testReflection"/>
-    </bean>
-
 </beans>
\ No newline at end of file
diff --git a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specific.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specific.xml
new file mode 100644
index 0000000..d22dd25
--- /dev/null
+++ b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specific.xml
@@ -0,0 +1,45 @@
+<?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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+
+    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+        <propertyPlaceholder id="properties" ignoreMissingLocation="true" location="classpath:custom.properties"/>
+        <route>
+            <from uri="avro:netty:localhost:{{avroport}}?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <choice>
+                <when>
+                    <simple>${in.headers.CamelAvroMessageName} == 'put'</simple>
+                    <process ref="putProcessor"/>
+                </when>
+                <when>
+                    <simple>${in.headers.CamelAvroMessageName} == 'get'</simple>
+                    <process ref="getProcessor"/>
+                </when>
+            </choice>
+        </route>
+
+    </camelContext>
+
+</beans>
\ No newline at end of file
diff --git a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specificProcessor.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specificProcessor.xml
new file mode 100644
index 0000000..82b334e
--- /dev/null
+++ b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specificProcessor.xml
@@ -0,0 +1,40 @@
+<?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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+
+    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+        <propertyPlaceholder id="properties" ignoreMissingLocation="true" location="classpath:custom.properties"/>
+        <route>
+            <from uri="avro:netty:localhost:{{avroPortMessageInRoute}}/get?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <process ref="getProcessor"/>
+        </route>
+
+        <route >
+            <from uri="avro:netty:localhost:{{avroPortMessageInRoute}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <process ref="putProcessor"/>
+        </route>
+    </camelContext>
+
+</beans>
\ No newline at end of file
diff --git a/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specificProcessorWrong.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specificProcessorWrong.xml
new file mode 100644
index 0000000..cec071b
--- /dev/null
+++ b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/netty-consumer/specificProcessorWrong.xml
@@ -0,0 +1,37 @@
+<?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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+
+    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+        <propertyPlaceholder id="properties" ignoreMissingLocation="true" location="classpath:custom.properties"/>
+
+        <route>
+            <from uri="avro:netty:localhost:{{avroPortForWrongMessages}}/put?protocolClassName=org.apache.camel.avro.generated.KeyValueProtocol"/>
+            <process ref="putProcessor"/>
+        </route>
+        
+    </camelContext>
+
+</beans>
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/pages/avro-component.adoc b/docs/components/modules/ROOT/pages/avro-component.adoc
index 4b01652..29c2320 100644
--- a/docs/components/modules/ROOT/pages/avro-component.adoc
+++ b/docs/components/modules/ROOT/pages/avro-component.adoc
@@ -276,4 +276,8 @@ is used and `getProcessor` will receive Value class directly in body,
 while `putProcessor` will receive an array of size 2 with String key and
 Value value filled as array contents.
 
+== Karaf support
+
+This component is not supported in Karaf.
+
 include::camel-spring-boot::page$avro-starter.adoc[]
diff --git a/parent/pom.xml b/parent/pom.xml
index 9042c64..4d0a6ff 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -73,9 +73,9 @@
         <atmosphere-version-range>[2.6,3.0)</atmosphere-version-range>
         <atomix-version>1.0.8</atomix-version>
         <atomix-catalyst-version>1.2.1</atomix-catalyst-version>
-        <avro-version>1.9.1</avro-version>
-        <avro-ipc-jetty-version>1.9.1</avro-ipc-jetty-version>
-        <avro-ipc-netty-version>1.9.1</avro-ipc-netty-version>
+        <avro-version>1.10.0</avro-version>
+        <avro-ipc-jetty-version>1.10.0</avro-ipc-jetty-version>
+        <avro-ipc-netty-version>1.10.0</avro-ipc-netty-version>
         <awaitility-version>4.0.3</awaitility-version>
         <aws-java-sdk-version>1.11.714</aws-java-sdk-version>
         <aws-java-sdk2-version>2.15.35</aws-java-sdk2-version>