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>