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 <6814482+mme...@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>