This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new f00a7a8e7b5 CAMEL-13573 : create parquet-avro dataformat
f00a7a8e7b5 is described below
commit f00a7a8e7b534e3b0f67091bb46e7604a642e825
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed May 31 14:48:48 2023 +0200
CAMEL-13573 : create parquet-avro dataformat
---
.../apache/camel/catalog/dataformats.properties | 1 +
.../camel/catalog/dataformats}/parquetAvro.json | 16 ++-
.../apache/camel/catalog/models/parquetAvro.json | 1 +
components/camel-parquet-avro/pom.xml | 156 +++++++++++----------
.../avro/ParquetAvroDataFormatConfigurer.java | 28 ++++
.../apache/camel/configurer/parquetAvro-dataformat | 2 +
.../org/apache/camel/dataformat.properties | 4 +-
.../dataformat/parquet/avro}/parquetAvro.json | 16 ++-
.../parquet/avro/ParquetAvroDataFormat.java | 5 +-
.../apache/camel/model/dataformat/parquetAvro.json | 1 +
.../model/dataformat/ParquetAvroDataFormat.java | 3 +
.../org/apache/camel/main/dataformats.properties | 1 +
parent/pom.xml | 10 +-
13 files changed, 151 insertions(+), 93 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats.properties
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats.properties
index fe2d0ef4d53..9d7b2dc0cdc 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats.properties
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats.properties
@@ -25,6 +25,7 @@ jsonApi
jsonb
lzf
mimeMultipart
+parquetAvro
pgp
protobuf
protobufJackson
diff --git
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/parquetAvro.json
similarity index 60%
copy from
core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
copy to
catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/parquetAvro.json
index 9ddbb89eeae..31f864c81aa 100644
---
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/dataformats/parquetAvro.json
@@ -1,15 +1,19 @@
{
- "model": {
- "kind": "model",
+ "dataformat": {
+ "kind": "dataformat",
"name": "parquetAvro",
"title": "Parquet File",
+ "description": "Parquet Avro serialization and de-serialization.",
"deprecated": false,
"firstVersion": "4.0.0",
"label": "dataformat,transformation,file",
- "javaType": "org.apache.camel.model.dataformat.ParquetAvroDataFormat",
- "abstract": false,
- "input": false,
- "output": false
+ "javaType":
"org.apache.camel.dataformat.parquet.avro.ParquetAvroDataFormat",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-parquet-avro",
+ "version": "4.0.0-SNAPSHOT",
+ "modelName": "parquetAvro",
+ "modelJavaType": "org.apache.camel.model.dataformat.ParquetAvroDataFormat"
},
"properties": {
"unmarshalType": { "index": 0, "kind": "attribute", "displayName":
"Unmarshal Type", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "Class to use when unmarshalling." },
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/parquetAvro.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/parquetAvro.json
index 9ddbb89eeae..b61d7563ce3 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/parquetAvro.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/models/parquetAvro.json
@@ -3,6 +3,7 @@
"kind": "model",
"name": "parquetAvro",
"title": "Parquet File",
+ "description": "Parquet Avro serialization and de-serialization.",
"deprecated": false,
"firstVersion": "4.0.0",
"label": "dataformat,transformation,file",
diff --git a/components/camel-parquet-avro/pom.xml
b/components/camel-parquet-avro/pom.xml
index 1e0bb0e595c..3dffc2bb319 100644
--- a/components/camel-parquet-avro/pom.xml
+++ b/components/camel-parquet-avro/pom.xml
@@ -1,89 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
- <modelVersion>4.0.0</modelVersion>
+ 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
- <parent>
- <artifactId>components</artifactId>
- <groupId>org.apache.camel</groupId>
- <version>4.0.0-SNAPSHOT</version>
- </parent>
+ http://www.apache.org/licenses/LICENSE-2.0
- <groupId>org.apache.camel.dataformat.parquet.avro</groupId>
- <artifactId>camel-parquet-avro</artifactId>
- <packaging>jar</packaging>
- <version>4.0.0-SNAPSHOT</version>
+ 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.
- <name>Camel :: ParquetAvro</name>
- <description>Camel ParquetAvro DataFormat</description>
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- </properties>
+ <parent>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>components</artifactId>
+ <version>4.0.0-SNAPSHOT</version>
+ </parent>
- <dependencies>
+ <artifactId>camel-parquet-avro</artifactId>
+ <packaging>jar</packaging>
+ <name>Camel :: Parquet Avro</name>
+ <description>Camel ParquetAvro DataFormat</description>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-support</artifactId>
- </dependency>
+ <dependencies>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>${commons-io-version}</version>
- </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-support</artifactId>
+ </dependency>
- <dependency>
- <groupId>org.apache.parquet</groupId>
- <artifactId>parquet-common</artifactId>
- <version>${parquet-common-version}</version>
- </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io-version}</version>
+ </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-client</artifactId>
- <version>${hadoop3-version}</version>
- <scope>provided</scope>
- </dependency>
+ <dependency>
+ <groupId>org.apache.parquet</groupId>
+ <artifactId>parquet-common</artifactId>
+ <version>${parquet-common-version}</version>
+ </dependency>
- <dependency>
- <groupId>org.apache.parquet</groupId>
- <artifactId>parquet-avro</artifactId>
- <version>${parquet-avro-version}</version>
- </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-client</artifactId>
+ <version>${hadoop3-version}</version>
+ <scope>provided</scope>
+ </dependency>
- <!-- logging -->
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-slf4j-impl</artifactId>
- <version>${log4j2-version}</version>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>org.apache.parquet</groupId>
+ <artifactId>parquet-avro</artifactId>
+ <version>${parquet-avro-version}</version>
+ </dependency>
- <!-- testing -->
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-test-junit5</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-spring-xml</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-test-spring-junit5</artifactId>
- <scope>test</scope>
- </dependency>
+ <!-- logging -->
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <version>${log4j2-version}</version>
+ <scope>test</scope>
+ </dependency>
- <dependency>
- <groupId>jakarta.xml.bind</groupId>
- <artifactId>jakarta.xml.bind-api</artifactId>
- <version>${jakarta-xml-bind-api-version}</version>
- <optional>true</optional>
- </dependency>
- </dependencies>
+ <!-- testing -->
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring-xml</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-spring-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ <version>${jakarta-xml-bind-api-version}</version>
+ <optional>true</optional>
+ </dependency>
+ </dependencies>
</project>
diff --git
a/components/camel-parquet-avro/src/generated/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormatConfigurer.java
b/components/camel-parquet-avro/src/generated/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormatConfigurer.java
new file mode 100644
index 00000000000..fef4c7f83f3
--- /dev/null
+++
b/components/camel-parquet-avro/src/generated/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormatConfigurer.java
@@ -0,0 +1,28 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.dataformat.parquet.avro;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class ParquetAvroDataFormatConfigurer extends PropertyConfigurerSupport
implements GeneratedPropertyConfigurer {
+
+ @Override
+ public boolean configure(CamelContext camelContext, Object target, String
name, Object value, boolean ignoreCase) {
+ ParquetAvroDataFormat dataformat = (ParquetAvroDataFormat) target;
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "unmarshaltype":
+ case "unmarshalType":
dataformat.setUnmarshalType(property(camelContext, java.lang.Class.class,
value)); return true;
+ default: return false;
+ }
+ }
+
+}
+
diff --git
a/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/configurer/parquetAvro-dataformat
b/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/configurer/parquetAvro-dataformat
new file mode 100644
index 00000000000..ffc8d3a1305
--- /dev/null
+++
b/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/configurer/parquetAvro-dataformat
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.dataformat.parquet.avro.ParquetAvroDataFormatConfigurer
diff --git
a/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/dataformat.properties
b/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/dataformat.properties
index b7957ac1a85..f6f509e5b14 100644
---
a/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/dataformat.properties
+++
b/components/camel-parquet-avro/src/generated/resources/META-INF/services/org/apache/camel/dataformat.properties
@@ -1,7 +1,7 @@
# Generated by camel build tools - do NOT edit this file!
dataFormats=parquetAvro
-groupId=org.apache.camel.dataformat.parquet.avro
+groupId=org.apache.camel
artifactId=camel-parquet-avro
version=4.0.0-SNAPSHOT
-projectName=Camel :: ParquetAvro
+projectName=Camel :: Parquet Avro
projectDescription=Camel ParquetAvro DataFormat
diff --git
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
b/components/camel-parquet-avro/src/generated/resources/org/apache/camel/dataformat/parquet/avro/parquetAvro.json
similarity index 60%
copy from
core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
copy to
components/camel-parquet-avro/src/generated/resources/org/apache/camel/dataformat/parquet/avro/parquetAvro.json
index 9ddbb89eeae..31f864c81aa 100644
---
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
+++
b/components/camel-parquet-avro/src/generated/resources/org/apache/camel/dataformat/parquet/avro/parquetAvro.json
@@ -1,15 +1,19 @@
{
- "model": {
- "kind": "model",
+ "dataformat": {
+ "kind": "dataformat",
"name": "parquetAvro",
"title": "Parquet File",
+ "description": "Parquet Avro serialization and de-serialization.",
"deprecated": false,
"firstVersion": "4.0.0",
"label": "dataformat,transformation,file",
- "javaType": "org.apache.camel.model.dataformat.ParquetAvroDataFormat",
- "abstract": false,
- "input": false,
- "output": false
+ "javaType":
"org.apache.camel.dataformat.parquet.avro.ParquetAvroDataFormat",
+ "supportLevel": "Preview",
+ "groupId": "org.apache.camel",
+ "artifactId": "camel-parquet-avro",
+ "version": "4.0.0-SNAPSHOT",
+ "modelName": "parquetAvro",
+ "modelJavaType": "org.apache.camel.model.dataformat.ParquetAvroDataFormat"
},
"properties": {
"unmarshalType": { "index": 0, "kind": "attribute", "displayName":
"Unmarshal Type", "required": false, "type": "string", "javaType":
"java.lang.String", "deprecated": false, "autowired": false, "secret": false,
"description": "Class to use when unmarshalling." },
diff --git
a/components/camel-parquet-avro/src/main/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormat.java
b/components/camel-parquet-avro/src/main/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormat.java
index ec5496bb62b..16792228dd6 100644
---
a/components/camel-parquet-avro/src/main/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormat.java
+++
b/components/camel-parquet-avro/src/main/java/org/apache/camel/dataformat/parquet/avro/ParquetAvroDataFormat.java
@@ -47,7 +47,7 @@ public class ParquetAvroDataFormat extends ServiceSupport
implements DataFormat,
private Class<?> unmarshalType;
public String getDataFormatName() {
- return "parquet-avro";
+ return "parquetAvro";
}
public void marshal(Exchange exchange, Object graph, OutputStream stream)
throws Exception {
@@ -118,6 +118,9 @@ public class ParquetAvroDataFormat extends ServiceSupport
implements DataFormat,
return unmarshalType;
}
+ /**
+ * Class to use when unmarshalling.
+ */
public void setUnmarshalType(Class<?> unmarshalType) {
this.unmarshalType = unmarshalType;
}
diff --git
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
index 9ddbb89eeae..b61d7563ce3 100644
---
a/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
+++
b/core/camel-core-model/src/generated/resources/org/apache/camel/model/dataformat/parquetAvro.json
@@ -3,6 +3,7 @@
"kind": "model",
"name": "parquetAvro",
"title": "Parquet File",
+ "description": "Parquet Avro serialization and de-serialization.",
"deprecated": false,
"firstVersion": "4.0.0",
"label": "dataformat,transformation,file",
diff --git
a/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/ParquetAvroDataFormat.java
b/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/ParquetAvroDataFormat.java
index ab784706d03..231def0d63c 100644
---
a/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/ParquetAvroDataFormat.java
+++
b/core/camel-core-model/src/main/java/org/apache/camel/model/dataformat/ParquetAvroDataFormat.java
@@ -26,6 +26,9 @@ import org.apache.camel.builder.DataFormatBuilder;
import org.apache.camel.model.DataFormatDefinition;
import org.apache.camel.spi.Metadata;
+/**
+ * Parquet Avro serialization and de-serialization.
+ */
@Metadata(firstVersion = "4.0.0", label = "dataformat,transformation,file",
title = "Parquet File")
@XmlRootElement(name = "parquetAvro")
@XmlAccessorType(XmlAccessType.FIELD)
diff --git
a/core/camel-main/src/generated/resources/org/apache/camel/main/dataformats.properties
b/core/camel-main/src/generated/resources/org/apache/camel/main/dataformats.properties
index fe2d0ef4d53..9d7b2dc0cdc 100644
---
a/core/camel-main/src/generated/resources/org/apache/camel/main/dataformats.properties
+++
b/core/camel-main/src/generated/resources/org/apache/camel/main/dataformats.properties
@@ -25,6 +25,7 @@ jsonApi
jsonb
lzf
mimeMultipart
+parquetAvro
pgp
protobuf
protobufJackson
diff --git a/parent/pom.xml b/parent/pom.xml
index 8369be92079..93a88df3229 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1902,6 +1902,11 @@
<artifactId>camel-paho-mqtt5</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-parquet-avro</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-pdf</artifactId>
@@ -2457,11 +2462,6 @@
<artifactId>dummy-component</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.camel.dataformat.parquet.avro</groupId>
- <artifactId>camel-parquet-avro</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>org.apache.camel.maven</groupId>
<artifactId>camel-debezium-maven-plugin</artifactId>