Skip to content

Commit 07b5f26

Browse files
authored
NIFI-14917 Upgraded Avro from 1.11.4 to 1.12.0 (#10251)
Signed-off-by: David Handermann <exceptionfactory@apache.org>
1 parent 8174854 commit 07b5f26

File tree

4 files changed

+12
-6
lines changed
  • nifi-extension-bundles
    • nifi-parquet-bundle/nifi-parquet-processors/src/main/java/org/apache/nifi/processors/parquet
    • nifi-registry-bundle/nifi-registry-service/src/main/java/org/apache/nifi/schemaregistry/services
    • nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro

4 files changed

+12
-6
lines changed

nifi-extension-bundles/nifi-parquet-bundle/nifi-parquet-processors/src/main/java/org/apache/nifi/processors/parquet/ConvertAvroToParquet.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121

2222
import org.apache.avro.Schema;
23+
import org.apache.avro.SchemaFormatter;
2324
import org.apache.avro.file.DataFileStream;
2425
import org.apache.avro.generic.GenericDatumReader;
2526
import org.apache.avro.generic.GenericRecord;
@@ -133,7 +134,7 @@ public void onTrigger(ProcessContext context, ProcessSession session) throws Pro
133134
final DataFileStream<GenericRecord> dataFileReader = new DataFileStream<>(in, new GenericDatumReader<>())) {
134135

135136
Schema avroSchema = dataFileReader.getSchema();
136-
getLogger().debug(avroSchema.toString(true));
137+
getLogger().debug(SchemaFormatter.format("json/pretty", avroSchema));
137138
ParquetWriter<GenericRecord> writer = createParquetWriter(context, flowFile, rawOut, avroSchema );
138139

139140
try {

nifi-extension-bundles/nifi-registry-bundle/nifi-registry-service/src/main/java/org/apache/nifi/schemaregistry/services/AvroSchemaRegistry.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package org.apache.nifi.schemaregistry.services;
1818

19+
import org.apache.avro.NameValidator;
1920
import org.apache.avro.Schema;
2021
import org.apache.nifi.annotation.behavior.DynamicProperty;
2122
import org.apache.nifi.annotation.documentation.CapabilityDescription;
@@ -76,7 +77,9 @@ public void onPropertyModified(final PropertyDescriptor descriptor, final String
7677
} else {
7778
try {
7879
// Use a non-strict parser here, a strict parse can be done (if specified) in customValidate().
79-
final Schema avroSchema = new Schema.Parser().setValidate(false).parse(newValue);
80+
final Schema avroSchema = new Schema.Parser(NameValidator.NO_VALIDATION)
81+
.setValidateDefaults(false)
82+
.parse(newValue);
8083
final SchemaIdentifier schemaId = SchemaIdentifier.builder().name(descriptor.getName()).build();
8184
final RecordSchema recordSchema = AvroTypeUtil.createSchema(avroSchema, newValue, schemaId);
8285
recordSchemas.put(descriptor.getName(), recordSchema);
@@ -98,7 +101,10 @@ protected Collection<ValidationResult> customValidate(ValidationContext validati
98101
String input = entry.getValue();
99102

100103
try {
101-
final Schema avroSchema = new Schema.Parser().setValidate(strict).parse(input);
104+
final Schema.Parser parser = strict
105+
? new Schema.Parser(NameValidator.STRICT_VALIDATOR).setValidateDefaults(true)
106+
: new Schema.Parser(NameValidator.NO_VALIDATION).setValidateDefaults(false);
107+
final Schema avroSchema = parser.parse(input);
102108
AvroTypeUtil.createSchema(avroSchema, input, SchemaIdentifier.EMPTY);
103109
} catch (final Exception e) {
104110
results.add(new ValidationResult.Builder()

nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestWriteAvroResult.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.apache.avro.file.CodecFactory;
2424
import org.apache.avro.file.DataFileStream;
2525
import org.apache.avro.generic.GenericArray;
26-
import org.apache.avro.generic.GenericData.Array;
2726
import org.apache.avro.generic.GenericDatumReader;
2827
import org.apache.avro.generic.GenericFixed;
2928
import org.apache.avro.generic.GenericRecord;
@@ -459,7 +458,7 @@ protected void assertMatch(final Record record, final GenericRecord avroRecord)
459458
assertEquals(o, bb.get());
460459
}
461460
} else if (recordValue instanceof Object[]) {
462-
assertInstanceOf(Array.class, avroValue, fieldName + " should have been instanceof Array");
461+
assertInstanceOf(GenericArray.class, avroValue, fieldName + " should have been instanceof GenericArray");
463462
final GenericArray<?> avroArray = (GenericArray<?>) avroValue;
464463
final Object[] recordArray = (Object[]) recordValue;
465464
assertEquals(recordArray.length, avroArray.size(),

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
<jetty.version>12.0.25</jetty.version>
140140
<jackson.bom.version>2.20.0</jackson.bom.version>
141141
<jackson.annotations.version>2.20</jackson.annotations.version>
142-
<avro.version>1.11.4</avro.version>
142+
<avro.version>1.12.0</avro.version>
143143
<jaxb.runtime.version>4.0.5</jaxb.runtime.version>
144144
<javax.annotation-api.version>1.3.2</javax.annotation-api.version>
145145
<jakarta.xml.bind-api.version>4.0.2</jakarta.xml.bind-api.version>

0 commit comments

Comments
 (0)