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/03/28 08:08:06 UTC

[camel] branch master updated: CAMEL-14798: Separate Avro rpc functionality out of camel-avro component to new camel-avro-rpc component (#3686)

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 480d180  CAMEL-14798: Separate Avro rpc functionality out of camel-avro component to new camel-avro-rpc component (#3686)
480d180 is described below

commit 480d1804aabfd3fb1f046a63b31af4a1bbe67ffe
Author: Matej Melko <68...@users.noreply.github.com>
AuthorDate: Sat Mar 28 09:07:51 2020 +0100

    CAMEL-14798: Separate Avro rpc functionality out of camel-avro component to new camel-avro-rpc component (#3686)
    
    modify components documentation
---
 apache-camel/src/main/descriptors/common-bin.xml   |  1 +
 bom/camel-bom/pom.xml                              |  5 ++
 components/{camel-avro => camel-avro-rpc}/pom.xml  | 31 +++-------
 .../component/avro/AvroComponentConfigurer.java    |  0
 .../component/avro/AvroEndpointConfigurer.java     |  0
 .../services/org/apache/camel/component.properties |  6 +-
 .../services/org/apache/camel/component/avro       |  0
 .../org/apache/camel/configurer/avro-component     |  2 +
 .../org/apache/camel/configurer/avro-endpoint      |  2 +
 .../org/apache/camel/component/avro/avro.json      |  2 +-
 .../src/main/docs/avro-component.adoc              | 13 +++--
 .../apache/camel/component/avro/AvroComponent.java |  0
 .../component/avro/AvroComponentException.java     |  0
 .../camel/component/avro/AvroConfiguration.java    |  0
 .../apache/camel/component/avro/AvroConstants.java |  0
 .../apache/camel/component/avro/AvroConsumer.java  |  0
 .../apache/camel/component/avro/AvroEndpoint.java  |  0
 .../camel/component/avro/AvroHttpEndpoint.java     |  0
 .../camel/component/avro/AvroHttpProducer.java     |  0
 .../apache/camel/component/avro/AvroListener.java  |  0
 .../camel/component/avro/AvroNettyEndpoint.java    |  0
 .../camel/component/avro/AvroNettyProducer.java    |  0
 .../apache/camel/component/avro/AvroProducer.java  |  0
 .../camel/component/avro/AvroReflectRequestor.java |  0
 .../camel/component/avro/AvroReflectResponder.java |  0
 .../component/avro/AvroSpecificRequestor.java      |  0
 .../component/avro/AvroSpecificResponder.java      |  0
 .../apache/camel/component/avro/AvroTransport.java |  0
 .../src/test/avro/test.avpr                        |  0
 .../java/org/apache/camel/avro/generated/Key.java  |  0
 .../camel/avro/generated/KeyValueProtocol.java     |  0
 .../org/apache/camel/avro/generated/Value.java     |  0
 .../camel/avro/impl/KeyValueProtocolImpl.java      |  0
 .../java/org/apache/camel/avro/test/TestPojo.java  |  0
 .../org/apache/camel/avro/test/TestReflection.java |  0
 .../apache/camel/avro/test/TestReflectionImpl.java |  0
 .../component/avro/AvroConsumerTestSupport.java    |  0
 .../camel/component/avro/AvroHttpConsumerTest.java |  0
 .../camel/component/avro/AvroHttpProducerTest.java |  0
 .../component/avro/AvroHttpSpringProducerTest.java |  0
 .../component/avro/AvroNettyConsumerTest.java      |  0
 .../component/avro/AvroNettyProducerTest.java      |  0
 .../avro/AvroNettySpringConsumerTest.java          |  0
 .../avro/AvroNettySpringProducerTest.java          |  0
 .../component/avro/AvroProducerTestSupport.java    |  0
 .../camel/component/avro/AvroSettingsTest.java     |  0
 .../camel/component/avro/AvroTestSupport.java      |  0
 .../component/avro/processors/GetProcessor.java    |  0
 .../component/avro/processors/PutProcessor.java    |  0
 .../avro/processors/ReflectionInOnlyProcessor.java |  0
 .../avro/processors/ReflectionInOutProcessor.java  |  0
 .../src/test/resources/log4j2.properties           | 32 +++++++++++
 .../camel/component/avro/avro-http-consumer.xml    |  0
 .../camel/component/avro/avro-http-producer.xml    |  0
 .../camel/component/avro/avro-netty-consumer.xml   |  0
 .../camel/component/avro/avro-netty-producer.xml   |  0
 components/camel-avro/pom.xml                      | 12 +---
 .../camel-avro/src/main/docs/avro-dataformat.adoc  | 66 +---------------------
 .../avro/AvroMarshalAndUnmarshallTest.java         |  2 +-
 .../avro/example}/Value.java                       | 29 +++++-----
 .../camel/dataformat/avro/springDataFormat.xml     |  8 +--
 components/pom.xml                                 |  1 +
 core/camel-allcomponents/pom.xml                   |  4 ++
 .../component/ComponentsBuilderFactory.java        |  4 +-
 .../component/dsl/AvroComponentBuilderFactory.java |  4 +-
 .../src/generated/resources/metadata.json          |  2 +-
 .../endpoint/dsl/AvroEndpointBuilderFactory.java   |  8 +--
 .../modules/ROOT/pages/avro-component.adoc         | 15 ++---
 docs/components/modules/ROOT/pages/index.adoc      |  2 +-
 .../modules/dataformats/pages/avro-dataformat.adoc | 66 +---------------------
 parent/pom.xml                                     |  5 ++
 71 files changed, 111 insertions(+), 211 deletions(-)

diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml
index 0bb98dd..3e8bff3 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -67,6 +67,7 @@
         <include>org.apache.camel:camel-atomix</include>
         <include>org.apache.camel:camel-attachments</include>
         <include>org.apache.camel:camel-avro</include>
+        <include>org.apache.camel:camel-avro-rpc</include>
         <include>org.apache.camel:camel-aws-cw</include>
         <include>org.apache.camel:camel-aws-ddb</include>
         <include>org.apache.camel:camel-aws-ec2</include>
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 7d2c1f4..563ef34 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -123,6 +123,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-avro-rpc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-aws-cw</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/components/camel-avro/pom.xml b/components/camel-avro-rpc/pom.xml
similarity index 71%
copy from components/camel-avro/pom.xml
copy to components/camel-avro-rpc/pom.xml
index 1adcd55..f10e6ca 100644
--- a/components/camel-avro/pom.xml
+++ b/components/camel-avro-rpc/pom.xml
@@ -1,23 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
@@ -26,10 +10,10 @@
         <version>3.2.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>camel-avro</artifactId>
+    <artifactId>camel-avro-rpc</artifactId>
     <packaging>jar</packaging>
-    <name>Camel :: Avro</name>
-    <description>Camel Avro data format</description>
+    <name>Camel :: Avro RPC</name>
+    <description>Camel Avro  RPC component</description>
 
     <properties>
     </properties>
@@ -107,5 +91,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
+</project>
\ No newline at end of file
diff --git a/components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java b/components/camel-avro-rpc/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java
similarity index 100%
rename from components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java
rename to components/camel-avro-rpc/src/generated/java/org/apache/camel/component/avro/AvroComponentConfigurer.java
diff --git a/components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroEndpointConfigurer.java b/components/camel-avro-rpc/src/generated/java/org/apache/camel/component/avro/AvroEndpointConfigurer.java
similarity index 100%
rename from components/camel-avro/src/generated/java/org/apache/camel/component/avro/AvroEndpointConfigurer.java
rename to components/camel-avro-rpc/src/generated/java/org/apache/camel/component/avro/AvroEndpointConfigurer.java
diff --git a/components/camel-avro/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/component.properties
similarity index 54%
rename from components/camel-avro/src/generated/resources/META-INF/services/org/apache/camel/component.properties
rename to components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index 75bf43b..766df82 100644
--- a/components/camel-avro/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -1,7 +1,7 @@
 # Generated by camel build tools - do NOT edit this file!
 components=avro
 groupId=org.apache.camel
-artifactId=camel-avro
+artifactId=camel-avro-rpc
 version=3.2.0-SNAPSHOT
-projectName=Camel :: Avro
-projectDescription=Camel Avro data format
+projectName=Camel :: Avro RPC
+projectDescription=Camel Avro  RPC component
diff --git a/components/camel-avro/src/generated/resources/META-INF/services/org/apache/camel/component/avro b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/component/avro
similarity index 100%
rename from components/camel-avro/src/generated/resources/META-INF/services/org/apache/camel/component/avro
rename to components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/component/avro
diff --git a/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/configurer/avro-component b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/configurer/avro-component
new file mode 100644
index 0000000..a0285fc
--- /dev/null
+++ b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/configurer/avro-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.avro.AvroComponentConfigurer
diff --git a/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/configurer/avro-endpoint b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/configurer/avro-endpoint
new file mode 100644
index 0000000..ffaec06
--- /dev/null
+++ b/components/camel-avro-rpc/src/generated/resources/META-INF/services/org/apache/camel/configurer/avro-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.avro.AvroEndpointConfigurer
diff --git a/components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json b/components/camel-avro-rpc/src/generated/resources/org/apache/camel/component/avro/avro.json
similarity index 99%
rename from components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json
rename to components/camel-avro-rpc/src/generated/resources/org/apache/camel/component/avro/avro.json
index af77f4b..b0d1136 100644
--- a/components/camel-avro/src/generated/resources/org/apache/camel/component/avro/avro.json
+++ b/components/camel-avro-rpc/src/generated/resources/org/apache/camel/component/avro/avro.json
@@ -15,7 +15,7 @@
     "javaType": "org.apache.camel.component.avro.AvroComponent",
     "firstVersion": "2.10.0",
     "groupId": "org.apache.camel",
-    "artifactId": "camel-avro",
+    "artifactId": "camel-avro-rpc",
     "version": "3.2.0-SNAPSHOT"
   },
   "componentProperties": {
diff --git a/components/camel-avro/src/main/docs/avro-component.adoc b/components/camel-avro-rpc/src/main/docs/avro-component.adoc
similarity index 98%
rename from components/camel-avro/src/main/docs/avro-component.adoc
rename to components/camel-avro-rpc/src/main/docs/avro-component.adoc
index 719ea77..54efa07 100644
--- a/components/camel-avro/src/main/docs/avro-component.adoc
+++ b/components/camel-avro-rpc/src/main/docs/avro-component.adoc
@@ -3,15 +3,16 @@
 
 *Since Camel 2.10*
 
+*Since Camel 2.10*
+
+
 // HEADER START
 *Both producer and consumer is supported*
 // HEADER END
 
-This component provides a dataformat for avro, which allows
-serialization and deserialization of messages using Apache Avro's binary
-dataformat. Moreover, it provides support for Apache Avro's rpc, by
+This component provides a support for Apache Avro's rpc, by
 providing producers and consumers endpoint for using avro over netty or
-http.
+http. Before Camel 3.2 this functionality was a part of camel-avro component.
 
 Maven users will need to add the following dependency to their `pom.xml`
 for this component:
@@ -20,7 +21,7 @@ for this component:
 ------------------------------------------------------------
 <dependency>
     <groupId>org.apache.camel</groupId>
-    <artifactId>camel-avro</artifactId>
+    <artifactId>camel-avro-rpc</artifactId>
     <version>x.x.x</version>
     <!-- use the same version as your Camel core version -->
 </dependency>
@@ -320,4 +321,4 @@ 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.
 
-include::camel-spring-boot::page$avro-starter.adoc[]
+include::camel-spring-boot::page$avro-starter.adoc[]
\ No newline at end of file
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroComponent.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroComponent.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponentException.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroComponentException.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponentException.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroComponentException.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConstants.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroConstants.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConstants.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroConstants.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConsumer.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroConsumer.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConsumer.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroConsumer.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroHttpEndpoint.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroHttpEndpoint.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroHttpEndpoint.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroHttpEndpoint.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroHttpProducer.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroListener.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroListener.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroListener.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroNettyEndpoint.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroNettyEndpoint.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroNettyEndpoint.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroNettyEndpoint.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroNettyProducer.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroNettyProducer.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroNettyProducer.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroNettyProducer.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroProducer.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroProducer.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroProducer.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectRequestor.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroReflectRequestor.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectRequestor.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroReflectRequestor.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroReflectResponder.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificRequestor.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroSpecificRequestor.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificRequestor.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroSpecificRequestor.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroSpecificResponder.java
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroTransport.java b/components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroTransport.java
similarity index 100%
rename from components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroTransport.java
rename to components/camel-avro-rpc/src/main/java/org/apache/camel/component/avro/AvroTransport.java
diff --git a/components/camel-avro/src/test/avro/test.avpr b/components/camel-avro-rpc/src/test/avro/test.avpr
similarity index 100%
rename from components/camel-avro/src/test/avro/test.avpr
rename to components/camel-avro-rpc/src/test/avro/test.avpr
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/generated/Key.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/generated/Key.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/generated/Key.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/generated/Key.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/generated/KeyValueProtocol.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/generated/KeyValueProtocol.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/generated/KeyValueProtocol.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/generated/KeyValueProtocol.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/generated/Value.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/generated/Value.java
similarity index 100%
copy from components/camel-avro/src/test/java/org/apache/camel/avro/generated/Value.java
copy to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/generated/Value.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/impl/KeyValueProtocolImpl.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/impl/KeyValueProtocolImpl.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/impl/KeyValueProtocolImpl.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/impl/KeyValueProtocolImpl.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/test/TestPojo.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/test/TestPojo.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/test/TestPojo.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/test/TestPojo.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/test/TestReflection.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/test/TestReflection.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/test/TestReflection.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/test/TestReflection.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/test/TestReflectionImpl.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/avro/test/TestReflectionImpl.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/test/TestReflectionImpl.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/avro/test/TestReflectionImpl.java
diff --git a/components/camel-avro/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
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroConsumerTestSupport.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroConsumerTestSupport.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroHttpConsumerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroHttpConsumerTest.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroHttpConsumerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroHttpConsumerTest.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroHttpProducerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroHttpProducerTest.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroHttpProducerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroHttpProducerTest.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroHttpSpringProducerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroHttpSpringProducerTest.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroHttpSpringProducerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroHttpSpringProducerTest.java
diff --git a/components/camel-avro/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
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroNettyConsumerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyConsumerTest.java
diff --git a/components/camel-avro/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
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroNettyProducerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettyProducerTest.java
diff --git a/components/camel-avro/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
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroNettySpringConsumerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringConsumerTest.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroNettySpringProducerTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringProducerTest.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroNettySpringProducerTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroNettySpringProducerTest.java
diff --git a/components/camel-avro/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
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroProducerTestSupport.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroProducerTestSupport.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroSettingsTest.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroSettingsTest.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroSettingsTest.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroSettingsTest.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/AvroTestSupport.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/GetProcessor.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/GetProcessor.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/GetProcessor.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/GetProcessor.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/PutProcessor.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/PutProcessor.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/PutProcessor.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/PutProcessor.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOnlyProcessor.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOnlyProcessor.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOnlyProcessor.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOnlyProcessor.java
diff --git a/components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOutProcessor.java b/components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOutProcessor.java
similarity index 100%
rename from components/camel-avro/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOutProcessor.java
rename to components/camel-avro-rpc/src/test/java/org/apache/camel/component/avro/processors/ReflectionInOutProcessor.java
diff --git a/components/camel-avro-rpc/src/test/resources/log4j2.properties b/components/camel-avro-rpc/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..2bdd397
--- /dev/null
+++ b/components/camel-avro-rpc/src/test/resources/log4j2.properties
@@ -0,0 +1,32 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+appender.out.type = File
+appender.out.name = out
+appender.out.fileName = target/camel-avro-test.log
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+logger.camel.name = org.apache.camel
+logger.camel.level = DEBUG
+logger.avro.name = org.apache.camel.dataformat.avro
+logger.avro.level = DEBUG
+rootLogger.level = INFO
+rootLogger.appenderRef.out.ref = out
diff --git a/components/camel-avro/src/test/resources/org/apache/camel/component/avro/avro-http-consumer.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-http-consumer.xml
similarity index 100%
rename from components/camel-avro/src/test/resources/org/apache/camel/component/avro/avro-http-consumer.xml
rename to components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-http-consumer.xml
diff --git a/components/camel-avro/src/test/resources/org/apache/camel/component/avro/avro-http-producer.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-http-producer.xml
similarity index 100%
rename from components/camel-avro/src/test/resources/org/apache/camel/component/avro/avro-http-producer.xml
rename to components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-http-producer.xml
diff --git a/components/camel-avro/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/avro-netty-consumer.xml
similarity index 100%
rename from components/camel-avro/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/avro-netty-consumer.xml
diff --git a/components/camel-avro/src/test/resources/org/apache/camel/component/avro/avro-netty-producer.xml b/components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-producer.xml
similarity index 100%
rename from components/camel-avro/src/test/resources/org/apache/camel/component/avro/avro-netty-producer.xml
rename to components/camel-avro-rpc/src/test/resources/org/apache/camel/component/avro/avro-netty-producer.xml
diff --git a/components/camel-avro/pom.xml b/components/camel-avro/pom.xml
index 1adcd55..43ac06c 100644
--- a/components/camel-avro/pom.xml
+++ b/components/camel-avro/pom.xml
@@ -32,7 +32,7 @@
     <description>Camel Avro data format</description>
 
     <properties>
-    </properties>
+</properties>
 
     <build>
         <plugins>
@@ -68,16 +68,6 @@
             <groupId>org.apache.avro</groupId>
             <artifactId>avro</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.avro</groupId>
-            <artifactId>avro-ipc-netty</artifactId>
-            <version>${avro-ipc-netty-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.avro</groupId>
-            <artifactId>avro-ipc-jetty</artifactId>
-            <version>${avro-ipc-jetty-version}</version>
-        </dependency>
 
         <!-- testing -->
         <dependency>
diff --git a/components/camel-avro/src/main/docs/avro-dataformat.adoc b/components/camel-avro/src/main/docs/avro-dataformat.adoc
index 97386d1..f783613 100644
--- a/components/camel-avro/src/main/docs/avro-dataformat.adoc
+++ b/components/camel-avro/src/main/docs/avro-dataformat.adoc
@@ -5,9 +5,7 @@
 
 This component provides a dataformat for avro, which allows
 serialization and deserialization of messages using Apache Avro's binary
-dataformat. Moreover, it provides support for Apache Avro's rpc, by
-providing producers and consumers endpoint for using avro over netty or
-http.
+dataformat. Since Camel 3.2 rpc functionality was moved into separate `camel-avro-rpc` component.
 
 Maven users will need to add the following dependency to their `pom.xml`
 for this component:
@@ -22,73 +20,11 @@ for this component:
 </dependency>
 ------------------------------------------------------------
 
-== Apache Avro Overview
-
-Avro allows you to define message types and a protocol using a json like
-format and then generate java code for the specified types and messages.
-An example of how a schema looks like is below.
-
-[source,xml]
-------------------------------------------------------------------------------------------
-{"namespace": "org.apache.camel.avro.generated",
- "protocol": "KeyValueProtocol",
-
- "types": [
-     {"name": "Key", "type": "record",
-      "fields": [
-          {"name": "key",   "type": "string"}
-      ]
-     },
-     {"name": "Value", "type": "record",
-      "fields": [
-          {"name": "value",   "type": "string"}
-      ]
-     }
- ],
-
- "messages": {
-     "put": {
-         "request": [{"name": "key", "type": "Key"}, {"name": "value", "type": "Value"} ],
-         "response": "null"
-     },
-     "get": {
-         "request": [{"name": "key", "type": "Key"}],
-         "response": "Value"
-     }
- }
-}
-------------------------------------------------------------------------------------------
 
 You can easily generate classes from a schema, using maven, ant etc.
 More details can be found at the
 http://avro.apache.org/docs/current/[Apache Avro documentation].
 
-However, it doesn't enforce a schema first approach and you can create
-schema for your existing classes. *Since 2.12* you can use existing
-protocol interfaces to make RCP calls. You should use interface for the
-protocol itself and POJO beans or primitive/String classes for parameter
-and result types. Here is an example of the class that corresponds to
-schema above:
-
-[source,java]
---------------------------------------------------------------
-package org.apache.camel.avro.reflection;
-
-public interface KeyValueProtocol {
-    void put(String key, Value value);
-    Value get(String key);
-}
-
-class Value {
-    private String value;
-    public String getValue() { return value; }
-    public void setValue(String value) { this.value = value; }
-}
---------------------------------------------------------------
-
-_Note: Existing classes can be used only for RPC (see below), not in
-data format._
-
 == Using the Avro data format
 
 Using the avro data format is as easy as specifying that the class that
diff --git a/components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/AvroMarshalAndUnmarshallTest.java b/components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/AvroMarshalAndUnmarshallTest.java
index 08d327a..1fd89ba 100644
--- a/components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/AvroMarshalAndUnmarshallTest.java
+++ b/components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/AvroMarshalAndUnmarshallTest.java
@@ -17,9 +17,9 @@
 package org.apache.camel.dataformat.avro;
 
 import org.apache.camel.CamelException;
-import org.apache.camel.avro.generated.Value;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.dataformat.avro.example.Value;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 
diff --git a/components/camel-avro/src/test/java/org/apache/camel/avro/generated/Value.java b/components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/example/Value.java
similarity index 75%
rename from components/camel-avro/src/test/java/org/apache/camel/avro/generated/Value.java
rename to components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/example/Value.java
index a1533ee..5846997 100644
--- a/components/camel-avro/src/test/java/org/apache/camel/avro/generated/Value.java
+++ b/components/camel-avro/src/test/java/org/apache/camel/dataformat/avro/example/Value.java
@@ -20,10 +20,11 @@
  * 
  * DO NOT EDIT DIRECTLY
  */
-package org.apache.camel.avro.generated;  
+package org.apache.camel.dataformat.avro.example;
+
 @SuppressWarnings("all")
 public class Value extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
-  public static final org.apache.avro.Schema SCHEMA$ = org.apache.avro.Schema.parse("{\"type\":\"record\",\"name\":\"Value\",\"namespace\":\"org.apache.camel.avro.generated\",\"fields\":[{\"name\":\"value\",\"type\":\"string\"}]}");
+  public static final org.apache.avro.Schema SCHEMA$ = org.apache.avro.Schema.parse("{\"type\":\"record\",\"name\":\"Value\",\"namespace\":\"org.apache.camel.dataformat.avro.example\",\"fields\":[{\"name\":\"value\",\"type\":\"string\"}]}");
   @Deprecated public java.lang.CharSequence value;
   public org.apache.avro.Schema getSchema() { return SCHEMA$; }
   // Used by DatumWriter.  Applications should not call. 
@@ -58,18 +59,18 @@ public class Value extends org.apache.avro.specific.SpecificRecordBase implement
   }
 
   /** Creates a new Value RecordBuilder */
-  public static org.apache.camel.avro.generated.Value.Builder newBuilder() {
-    return new org.apache.camel.avro.generated.Value.Builder();
+  public static org.apache.camel.dataformat.avro.example.Value.Builder newBuilder() {
+    return new org.apache.camel.dataformat.avro.example.Value.Builder();
   }
   
   /** Creates a new Value RecordBuilder by copying an existing Builder */
-  public static org.apache.camel.avro.generated.Value.Builder newBuilder(org.apache.camel.avro.generated.Value.Builder other) {
-    return new org.apache.camel.avro.generated.Value.Builder(other);
+  public static org.apache.camel.dataformat.avro.example.Value.Builder newBuilder(org.apache.camel.dataformat.avro.example.Value.Builder other) {
+    return new org.apache.camel.dataformat.avro.example.Value.Builder(other);
   }
   
   /** Creates a new Value RecordBuilder by copying an existing Value instance */
-  public static org.apache.camel.avro.generated.Value.Builder newBuilder(org.apache.camel.avro.generated.Value other) {
-    return new org.apache.camel.avro.generated.Value.Builder(other);
+  public static org.apache.camel.dataformat.avro.example.Value.Builder newBuilder(org.apache.camel.dataformat.avro.example.Value other) {
+    return new org.apache.camel.dataformat.avro.example.Value.Builder(other);
   }
   
   /**
@@ -82,17 +83,17 @@ public class Value extends org.apache.avro.specific.SpecificRecordBase implement
 
     /** Creates a new Builder */
     private Builder() {
-      super(org.apache.camel.avro.generated.Value.SCHEMA$);
+      super(org.apache.camel.dataformat.avro.example.Value.SCHEMA$);
     }
     
     /** Creates a Builder by copying an existing Builder */
-    private Builder(org.apache.camel.avro.generated.Value.Builder other) {
+    private Builder(org.apache.camel.dataformat.avro.example.Value.Builder other) {
       super(other);
     }
     
     /** Creates a Builder by copying an existing Value instance */
-    private Builder(org.apache.camel.avro.generated.Value other) {
-            super(org.apache.camel.avro.generated.Value.SCHEMA$);
+    private Builder(org.apache.camel.dataformat.avro.example.Value other) {
+            super(org.apache.camel.dataformat.avro.example.Value.SCHEMA$);
       if (isValidValue(fields()[0], other.value)) {
         this.value = data().deepCopy(fields()[0].schema(), other.value);
         fieldSetFlags()[0] = true;
@@ -105,7 +106,7 @@ public class Value extends org.apache.avro.specific.SpecificRecordBase implement
     }
     
     /** Sets the value of the 'value' field */
-    public org.apache.camel.avro.generated.Value.Builder setValue(java.lang.CharSequence value) {
+    public org.apache.camel.dataformat.avro.example.Value.Builder setValue(java.lang.CharSequence value) {
       validate(fields()[0], value);
       this.value = value;
       fieldSetFlags()[0] = true;
@@ -118,7 +119,7 @@ public class Value extends org.apache.avro.specific.SpecificRecordBase implement
     }
     
     /** Clears the value of the 'value' field */
-    public org.apache.camel.avro.generated.Value.Builder clearValue() {
+    public org.apache.camel.dataformat.avro.example.Value.Builder clearValue() {
       value = null;
       fieldSetFlags()[0] = false;
       return this;
diff --git a/components/camel-avro/src/test/resources/org/apache/camel/dataformat/avro/springDataFormat.xml b/components/camel-avro/src/test/resources/org/apache/camel/dataformat/avro/springDataFormat.xml
index 75a797c..e1be597 100644
--- a/components/camel-avro/src/test/resources/org/apache/camel/dataformat/avro/springDataFormat.xml
+++ b/components/camel-avro/src/test/resources/org/apache/camel/dataformat/avro/springDataFormat.xml
@@ -26,18 +26,18 @@
 
     <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
         <dataFormats>
-            <avro id="avro1" instanceClassName="org.apache.camel.avro.generated.Value"/>
+            <avro id="avro1" instanceClassName="org.apache.camel.dataformat.avro.example.Value"/>
         </dataFormats>
         <route>
             <from uri="direct:in"/>
             <marshal>
-                <avro instanceClassName="org.apache.camel.avro.generated.Value"/>
+                <avro instanceClassName="org.apache.camel.dataformat.avro.example.Value"/>
             </marshal>
         </route>
         <route>
             <from uri="direct:back"/>
             <unmarshal>
-                <avro instanceClassName="org.apache.camel.avro.generated.Value"/>
+                <avro instanceClassName="org.apache.camel.dataformat.avro.example.Value"/>
             </unmarshal>
             <to uri="mock:reverse"/>
         </route>
@@ -58,7 +58,7 @@
     </camelContext>
 
     <bean id="avro2" class="org.apache.camel.dataformat.avro.AvroDataFormat">
-        <property name="instanceClassName" value="org.apache.camel.avro.generated.Value"/>
+        <property name="instanceClassName" value="org.apache.camel.dataformat.avro.example.Value"/>
     </bean>
 
 </beans>
diff --git a/components/pom.xml b/components/pom.xml
index 8412e24..04f9ae1 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -104,6 +104,7 @@
         <module>camel-atom</module>
         <module>camel-atomix</module>
         <module>camel-avro</module>
+        <module>camel-avro-rpc</module>
         <module>camel-aws-cw</module>
         <module>camel-aws-ddb</module>
         <module>camel-aws-ec2</module>
diff --git a/core/camel-allcomponents/pom.xml b/core/camel-allcomponents/pom.xml
index 96ddfe1..ab56336 100644
--- a/core/camel-allcomponents/pom.xml
+++ b/core/camel-allcomponents/pom.xml
@@ -88,6 +88,10 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-avro-rpc</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
 			<artifactId>camel-avro</artifactId>
 		</dependency>
 		<dependency>
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index afbeb20..a87d3bf 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -219,12 +219,12 @@ public interface ComponentsBuilderFactory {
         return org.apache.camel.builder.component.dsl.AtomixValueComponentBuilderFactory.atomixValue();
     }
     /**
-     * Avro (camel-avro)
+     * Avro (camel-avro-rpc)
      * Working with Apache Avro for data serialization.
      * 
      * Category: messaging,transformation
      * Since: 2.10
-     * Maven coordinates: org.apache.camel:camel-avro
+     * Maven coordinates: org.apache.camel:camel-avro-rpc
      */
     static org.apache.camel.builder.component.dsl.AvroComponentBuilderFactory.AvroComponentBuilder avro() {
         return org.apache.camel.builder.component.dsl.AvroComponentBuilderFactory.avro();
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AvroComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AvroComponentBuilderFactory.java
index 945da7f..62ea02a 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AvroComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AvroComponentBuilderFactory.java
@@ -31,12 +31,12 @@ import org.apache.camel.component.avro.AvroComponent;
 public interface AvroComponentBuilderFactory {
 
     /**
-     * Avro (camel-avro)
+     * Avro (camel-avro-rpc)
      * Working with Apache Avro for data serialization.
      * 
      * Category: messaging,transformation
      * Since: 2.10
-     * Maven coordinates: org.apache.camel:camel-avro
+     * Maven coordinates: org.apache.camel:camel-avro-rpc
      */
     static AvroComponentBuilder avro() {
         return new AvroComponentBuilderImpl();
diff --git a/core/camel-componentdsl/src/generated/resources/metadata.json b/core/camel-componentdsl/src/generated/resources/metadata.json
index 85db046..6a77557 100644
--- a/core/camel-componentdsl/src/generated/resources/metadata.json
+++ b/core/camel-componentdsl/src/generated/resources/metadata.json
@@ -358,7 +358,7 @@
     "javaType": "org.apache.camel.component.avro.AvroComponent",
     "firstVersion": "2.10.0",
     "groupId": "org.apache.camel",
-    "artifactId": "camel-avro",
+    "artifactId": "camel-avro-rpc",
     "version": "3.2.0-SNAPSHOT"
   },
   "Aws2CwComponentBuilderFactory": {
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AvroEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AvroEndpointBuilderFactory.java
index cfbeed6..cb7a386 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AvroEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AvroEndpointBuilderFactory.java
@@ -748,12 +748,12 @@ public interface AvroEndpointBuilderFactory {
 
     public interface AvroBuilders {
         /**
-         * Avro (camel-avro)
+         * Avro (camel-avro-rpc)
          * Working with Apache Avro for data serialization.
          * 
          * Category: messaging,transformation
          * Since: 2.10
-         * Maven coordinates: org.apache.camel:camel-avro
+         * Maven coordinates: org.apache.camel:camel-avro-rpc
          * 
          * Syntax: <code>avro:transport:host:port/messageName</code>
          * 
@@ -775,12 +775,12 @@ public interface AvroEndpointBuilderFactory {
         }
     }
     /**
-     * Avro (camel-avro)
+     * Avro (camel-avro-rpc)
      * Working with Apache Avro for data serialization.
      * 
      * Category: messaging,transformation
      * Since: 2.10
-     * Maven coordinates: org.apache.camel:camel-avro
+     * Maven coordinates: org.apache.camel:camel-avro-rpc
      * 
      * Syntax: <code>avro:transport:host:port/messageName</code>
      * 
diff --git a/docs/components/modules/ROOT/pages/avro-component.adoc b/docs/components/modules/ROOT/pages/avro-component.adoc
index 8e00117..5e8a89a 100644
--- a/docs/components/modules/ROOT/pages/avro-component.adoc
+++ b/docs/components/modules/ROOT/pages/avro-component.adoc
@@ -1,18 +1,19 @@
 [[avro-component]]
 = Avro Component
-:page-source: components/camel-avro/src/main/docs/avro-component.adoc
+:page-source: components/camel-avro-rpc/src/main/docs/avro-component.adoc
 
 *Since Camel 2.10*
 
+*Since Camel 2.10*
+
+
 // HEADER START
 *Both producer and consumer is supported*
 // HEADER END
 
-This component provides a dataformat for avro, which allows
-serialization and deserialization of messages using Apache Avro's binary
-dataformat. Moreover, it provides support for Apache Avro's rpc, by
+This component provides a support for Apache Avro's rpc, by
 providing producers and consumers endpoint for using avro over netty or
-http.
+http. Before Camel 3.2 this functionality was a part of camel-avro component.
 
 Maven users will need to add the following dependency to their `pom.xml`
 for this component:
@@ -21,7 +22,7 @@ for this component:
 ------------------------------------------------------------
 <dependency>
     <groupId>org.apache.camel</groupId>
-    <artifactId>camel-avro</artifactId>
+    <artifactId>camel-avro-rpc</artifactId>
     <version>x.x.x</version>
     <!-- use the same version as your Camel core version -->
 </dependency>
@@ -321,4 +322,4 @@ 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.
 
-include::camel-spring-boot::page$avro-starter.adoc[]
+include::camel-spring-boot::page$avro-starter.adoc[]
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/pages/index.adoc b/docs/components/modules/ROOT/pages/index.adoc
index f8c8c40..1e40650 100644
--- a/docs/components/modules/ROOT/pages/index.adoc
+++ b/docs/components/modules/ROOT/pages/index.adoc
@@ -49,7 +49,7 @@ Number of Components: 329 in 262 JAR artifacts (1 deprecated)
 
 | xref:atomix-value-component.adoc[Atomix Value] (camel-atomix) | 2.20 | The atomix-value component is used to access Atomix's distributed value.
 
-| xref:avro-component.adoc[Avro] (camel-avro) | 2.10 | Working with Apache Avro for data serialization.
+| xref:avro-component.adoc[Avro] (camel-avro-rpc) | 2.10 | Working with Apache Avro for data serialization.
 
 | xref:aws2-cw-component.adoc[AWS 2 CloudWatch] (camel-aws2-cw) | 3.1 | The aws2-cw component is used for sending metrics to an Amazon CloudWatch.
 
diff --git a/docs/components/modules/dataformats/pages/avro-dataformat.adoc b/docs/components/modules/dataformats/pages/avro-dataformat.adoc
index 82b72c3..5f4501d 100644
--- a/docs/components/modules/dataformats/pages/avro-dataformat.adoc
+++ b/docs/components/modules/dataformats/pages/avro-dataformat.adoc
@@ -6,9 +6,7 @@
 
 This component provides a dataformat for avro, which allows
 serialization and deserialization of messages using Apache Avro's binary
-dataformat. Moreover, it provides support for Apache Avro's rpc, by
-providing producers and consumers endpoint for using avro over netty or
-http.
+dataformat. Since Camel 3.2 rpc functionality was moved into separate `camel-avro-rpc` component.
 
 Maven users will need to add the following dependency to their `pom.xml`
 for this component:
@@ -23,73 +21,11 @@ for this component:
 </dependency>
 ------------------------------------------------------------
 
-== Apache Avro Overview
-
-Avro allows you to define message types and a protocol using a json like
-format and then generate java code for the specified types and messages.
-An example of how a schema looks like is below.
-
-[source,xml]
-------------------------------------------------------------------------------------------
-{"namespace": "org.apache.camel.avro.generated",
- "protocol": "KeyValueProtocol",
-
- "types": [
-     {"name": "Key", "type": "record",
-      "fields": [
-          {"name": "key",   "type": "string"}
-      ]
-     },
-     {"name": "Value", "type": "record",
-      "fields": [
-          {"name": "value",   "type": "string"}
-      ]
-     }
- ],
-
- "messages": {
-     "put": {
-         "request": [{"name": "key", "type": "Key"}, {"name": "value", "type": "Value"} ],
-         "response": "null"
-     },
-     "get": {
-         "request": [{"name": "key", "type": "Key"}],
-         "response": "Value"
-     }
- }
-}
-------------------------------------------------------------------------------------------
 
 You can easily generate classes from a schema, using maven, ant etc.
 More details can be found at the
 http://avro.apache.org/docs/current/[Apache Avro documentation].
 
-However, it doesn't enforce a schema first approach and you can create
-schema for your existing classes. *Since 2.12* you can use existing
-protocol interfaces to make RCP calls. You should use interface for the
-protocol itself and POJO beans or primitive/String classes for parameter
-and result types. Here is an example of the class that corresponds to
-schema above:
-
-[source,java]
---------------------------------------------------------------
-package org.apache.camel.avro.reflection;
-
-public interface KeyValueProtocol {
-    void put(String key, Value value);
-    Value get(String key);
-}
-
-class Value {
-    private String value;
-    public String getValue() { return value; }
-    public void setValue(String value) { this.value = value; }
-}
---------------------------------------------------------------
-
-_Note: Existing classes can be used only for RPC (see below), not in
-data format._
-
 == Using the Avro data format
 
 Using the avro data format is as easy as specifying that the class that
diff --git a/parent/pom.xml b/parent/pom.xml
index a2ffb18..dabb498 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -956,6 +956,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-avro-rpc</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-aws-cw</artifactId>
         <version>${project.version}</version>
       </dependency>