diff --git a/avro-fastserde/README.md b/avro-fastserde/README.md deleted file mode 100644 index 19757b4b8..000000000 --- a/avro-fastserde/README.md +++ /dev/null @@ -1,12 +0,0 @@ -avro-fastserde -========= - -This is a fork of https://github.com/RTBHOUSE/avro-fastserde - -Notable features include: - -* The code has been altered to support multiple major versions of avro at runtime (by using - the helper module) -* various performance improvements to array fields? - -instructions and examples TBD \ No newline at end of file diff --git a/avro-fastserde/build.gradle b/avro-fastserde/build.gradle deleted file mode 100644 index 50e0b3606..000000000 --- a/avro-fastserde/build.gradle +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Copyright 2020 LinkedIn Corp. - * Licensed under the BSD 2-Clause License (the "License"). - * See License in the project root for license information. - */ - -plugins { - id "java-library" - id "me.champeau.gradle.jmh" version "0.5.0" -} - -configurations { - avro1_4 - avro1_5 - avro1_6 - avro1_7 - avro1_8 - avro1_9 - avro1_10 - avro1_11 -} - -test { - //we run test multiple times with different avro - //versions, so don't use the default test task - enabled = false -} - -def AVRO_1_4 = "org.apache.avro:avro:1.4.1" -def AVRO_1_5 = "org.apache.avro:avro:1.5.4" -def AVRO_1_6 = "org.apache.avro:avro:1.6.3" -def AVRO_1_7 = "org.apache.avro:avro:1.7.7" -def AVRO_1_8 = "org.apache.avro:avro:1.8.2" -def AVRO_1_9 = "org.apache.avro:avro:1.9.2" -def AVRO_1_10 = "org.apache.avro:avro:1.10.2" -def AVRO_1_11 = "org.apache.avro:avro:1.11.1" -def USE_AVRO_1_4 = project.hasProperty("USE_AVRO_1_4") ? true : false -def USE_AVRO_1_5 = project.hasProperty("USE_AVRO_1_5") ? true : false -def USE_AVRO_1_6 = project.hasProperty("USE_AVRO_1_6") ? true : false -def USE_AVRO_1_7 = project.hasProperty("USE_AVRO_1_7") ? true : false -def USE_AVRO_1_8 = project.hasProperty("USE_AVRO_1_8") ? true : false -def USE_AVRO_1_9 = project.hasProperty("USE_AVRO_1_9") ? true : false -//def USE_AVRO_1_10 = project.hasProperty("USE_AVRO_1_10") ? true : false -def USE_AVRO_1_11 = project.hasProperty("USE_AVRO_1_11") ? true : false -// default to use Avro-1.10 lib -def AVRO_LIB = AVRO_1_10 -def USE_AVRO_1_10 = true -if (USE_AVRO_1_4) { - AVRO_LIB = AVRO_1_4 - USE_AVRO_1_10 = false -} else if (USE_AVRO_1_5) { - AVRO_LIB = AVRO_1_5 - USE_AVRO_1_10 = false -} else if (USE_AVRO_1_6) { - AVRO_LIB = AVRO_1_6 - USE_AVRO_1_10 = false -} else if (USE_AVRO_1_7) { - AVRO_LIB = AVRO_1_7 - USE_AVRO_1_10 = false -} else if (USE_AVRO_1_8) { - AVRO_LIB = AVRO_1_8 - USE_AVRO_1_10 = false -} else if (USE_AVRO_1_9) { - AVRO_LIB = AVRO_1_9 - USE_AVRO_1_10 = false -} else if (USE_AVRO_1_11) { - AVRO_LIB = AVRO_1_11 - USE_AVRO_1_10 = false -} - - - -jmh { - profilers = ['gc', 'pauses'] - duplicateClassesStrategy = 'warn' - clean { - delete "$buildDir/jmh-generated-classes" - delete "$buildDir/jmh-generated-sources" - } -} - -sourceSets { - codegen - jmh { - java.srcDirs = ['src/jmh/java'] - compileClasspath += test.output - runtimeClasspath += test.output - } -} - -dependencies { - implementation project(":helper:helper") - - implementation "org.slf4j:slf4j-api:1.7.14" - implementation "org.apache.commons:commons-lang3:3.4" - implementation "com.sun.codemodel:codemodel:2.6" - - // By default, the compile and testCompile configuration is using avro-1.8, and - // if you need to switch to an old version of Avro, we need to make - // sure the test classes is generated by the old version of Avro by - // executing the following gradle task: 'generateAvroClasses14' or - // 'generateAvroClasses17' based on which Avro version you choose. - compileOnly AVRO_LIB - - testCompileOnly AVRO_LIB - - jmh AVRO_LIB - - testImplementation 'org.testng:testng:6.14.3' - testImplementation 'org.slf4j:slf4j-simple:1.7.14' - jmhImplementation "org.openjdk.jmh:jmh-core:1.19" - jmhAnnotationProcessor "org.openjdk.jmh:jmh-generator-annprocess:1.19" - - avro1_4 (AVRO_1_4) { - exclude group: "org.mortbay.jetty" - exclude group: "org.apache.velocity" - exclude group: "commons-lang" - exclude group: "org.jboss.netty" - exclude group: "com.thoughtworks.paranamer", module: "paranamer-ant" - exclude group: "org.slf4j" - } - avro1_5 (AVRO_1_5) { - exclude group: "org.slf4j" - } - avro1_6 (AVRO_1_6) { - exclude group: "org.slf4j" - } - avro1_7 (AVRO_1_7) { - exclude group: "org.slf4j" - } - avro1_8 (AVRO_1_8) { - exclude group: "org.slf4j" - } - avro1_9 (AVRO_1_9) { - exclude group: "org.slf4j" - } - avro1_10 (AVRO_1_10) { - exclude group: "org.slf4j" - } - avro1_11 (AVRO_1_11) { - exclude group: "org.slf4j" - } - - codegenCompile ("org.apache.avro:avro-compiler:1.10.2") { - exclude group: "org.slf4j" - } - codegenCompile project(":avro-fastserde") -} - -compileJmhJava { - dependsOn compileTestJava -} - -def avroVersions = ["1_4", "1_5", "1_6", "1_7", "1_8", "1_9", "1_10", "1_11"] - -for (String avroVersion : avroVersions) { - - task "testAvro${avroVersion}" (type: Test, group: "Verification", description: "runs unit tests with avro ${avroVersion}") { - - useTestNG() { - excludeGroups "perfTest" - } - - testLogging { - events "passed", "skipped", "failed" - } - - classpath = project.sourceSets.test.runtimeClasspath.filter { - File file -> !(file.name.contains("avro") && !file.name.contains("helper")) - }.plus (configurations."avro${avroVersion}") - - def gradleIsFun = avroVersion - - doFirst { - System.out.println("classpath for avro " + gradleIsFun + " is:") - classpath.each { System.out.println(it) } - } - } -} - -test { - testLogging.showStandardStreams = true -} - -task cleanGeneratedClassFiles(type: Delete) { - delete fileTree(dir: 'src/codegen', include: '**/*.class') -} - -task cleanAllGeneratedFiles(type: Delete) { - delete fileTree(dir: 'src/codegen', include: '**/*.java') -} - -build.dependsOn cleanAllGeneratedFiles, testAvro1_4, testAvro1_5, testAvro1_6, testAvro1_7, testAvro1_8, testAvro1_9, testAvro1_10, testAvro1_11 -build.finalizedBy cleanGeneratedClassFiles - -task generateAvroClasses1_4(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_140" -} - -task generateAvroClasses1_5(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_154" -} - -task generateAvroClasses1_6(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_163" -} - -task generateAvroClasses1_7(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_177" -} - -task generateAvroClasses1_8(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_182" -} - -task generateAvroClasses1_9(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_192" -} - -task generateAvroClasses1_10(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_1100" -} - -task generateAvroClasses1_11(type:Exec) { - commandLine "./regenerate_avro.sh" - args "default_avro_1110" -} - -task whetherToCompileAvroClasses1_10() { - if (USE_AVRO_1_4) { - dependsOn generateAvroClasses1_4 - } else if (USE_AVRO_1_5) { - dependsOn generateAvroClasses1_5 - } else if (USE_AVRO_1_6) { - dependsOn generateAvroClasses1_6 - } else if (USE_AVRO_1_7) { - dependsOn generateAvroClasses1_7 - } else if (USE_AVRO_1_8) { - dependsOn generateAvroClasses1_8 - } else if (USE_AVRO_1_9) { - dependsOn generateAvroClasses1_9 - } else if (USE_AVRO_1_11) { - dependsOn generateAvroClasses1_11 - } else { - dependsOn generateAvroClasses1_10 - } -} -// Only pre-compile for Avro-1.10 since the default Avro version is 1.10 -compileTestJava.dependsOn whetherToCompileAvroClasses1_10 - -// Need to create several similar tasks since gradle will only run the same task at most once, -// but we need to clean up and re-compile for each Avro version since the avro classes will be -// generated with every Avro version. -task cleanupAndRebuildTestsForAvro1_4(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_4' -} -task cleanupAndRebuildTestsForAvro1_5(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_5' -} -task cleanupAndRebuildTestsForAvro1_6(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_6' -} -task cleanupAndRebuildTestsForAvro1_7(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_7' -} -task cleanupAndRebuildTestsForAvro1_8(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_8' -} -task cleanupAndRebuildTestsForAvro1_9(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_9' -} -task cleanupAndRebuildTestsForAvro1_10(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_10' -} -task cleanupAndRebuildTestsForAvro1_11(type:Exec) { - workingDir '../' - commandLine './gradlew', 'avro-fastserde:clean', 'avro-fastserde:testClasses', '-PUSE_AVRO_1_11' -} -cleanupAndRebuildTestsForAvro1_4.dependsOn generateAvroClasses1_4 -cleanupAndRebuildTestsForAvro1_5.dependsOn generateAvroClasses1_5 -cleanupAndRebuildTestsForAvro1_6.dependsOn generateAvroClasses1_6 -cleanupAndRebuildTestsForAvro1_7.dependsOn generateAvroClasses1_7 -cleanupAndRebuildTestsForAvro1_8.dependsOn generateAvroClasses1_8 -cleanupAndRebuildTestsForAvro1_9.dependsOn generateAvroClasses1_9 -cleanupAndRebuildTestsForAvro1_10.dependsOn generateAvroClasses1_10 -cleanupAndRebuildTestsForAvro1_11.dependsOn generateAvroClasses1_11 - -testAvro1_4.dependsOn cleanupAndRebuildTestsForAvro1_4 -testAvro1_5.dependsOn cleanupAndRebuildTestsForAvro1_5 -testAvro1_6.dependsOn cleanupAndRebuildTestsForAvro1_6 -testAvro1_7.dependsOn cleanupAndRebuildTestsForAvro1_7 -testAvro1_8.dependsOn cleanupAndRebuildTestsForAvro1_8 -testAvro1_9.dependsOn cleanupAndRebuildTestsForAvro1_9 -testAvro1_10.dependsOn cleanupAndRebuildTestsForAvro1_10 -testAvro1_11.dependsOn cleanupAndRebuildTestsForAvro1_11 - -//custom publishing code to export a dependency on "helper-all": -publishing { - publications { - "$project.name"(MavenPublication) { - groupId project.group - artifactId project.name - version project.version - - from components.java - artifact sourceJar - artifact javadocJar - artifact testJar - - //we strive to meet https://central.sonatype.org/pages/requirements.html - pom { - name = 'Avro Util' - description = 'utilities for writing code that works across major avro versions' - url = 'https://github.com/linkedin/avro-util' - - licenses { - license { - name = 'BSD 2-Clause' - url = 'https://raw.githubusercontent.com/linkedin/avro-util/master/LICENSE' - } - } - developers { - developer { - id = 'radai-rosenblatt' - name = 'Radai Rosenblatt' - email = 'radai.rosenblatt@gmail.com' - organization = 'LinkedIn' - organizationUrl = 'linkedin.com' - } - developer { - id = 'abhishekmendhekar' - name = 'Abhishek Mendhekar' - organization = 'LinkedIn' - organizationUrl = 'linkedin.com' - } - developer { - id = 'jimhe' - name = 'Jim He' - email = 'jimjhe@gmail.com' - organization = 'LinkedIn' - organizationUrl = 'linkedin.com' - } - developer { - id = 'ghosthack' - name = 'Adrian Fernandez' - email = 'adrian@ghosthack.com' - organization = 'LinkedIn' - organizationUrl = 'linkedin.com' - } - } - scm { - connection = 'scm:git:git://github.com:linkedin/avro-util.git' - developerConnection = 'scm:git:ssh://github.com:linkedin/avro-util.git' - url = 'https://github.com/linkedin/avro-util' - } - } - - //remove the dependency on helper, and replace with one on helper-all - pom.withXml { - Node dependenciesNode = (Node) (asNode().dependencies[0]) - Collection dependencyNodes = dependenciesNode.children() - List toRemove = new ArrayList<>() - - for (Node o : dependencyNodes) { - if ("$project.group" == o.groupId[0].text() && "helper" == o.artifactId[0].text()) { - toRemove.add(o) - } - } - - for (Node o : toRemove) { - dependencyNodes.remove(o) - } - - def dependencyNode = dependenciesNode.appendNode('dependency') - dependencyNode.appendNode('groupId', "$project.group") - dependencyNode.appendNode('artifactId', "helper-all") - dependencyNode.appendNode('version', "$project.version") - dependencyNode.appendNode('scope', "compile") - } - } - } - - //repositories inherited from parent build.gradle -} diff --git a/avro-fastserde/gettingstarted.md b/avro-fastserde/gettingstarted.md deleted file mode 100644 index 540ead308..000000000 --- a/avro-fastserde/gettingstarted.md +++ /dev/null @@ -1,74 +0,0 @@ -Getting Started -=============== - -## Introduction - -This lib is a fork of the open-source project: https://github.com/RTBHOUSE/avro-fastserde. -You could get more information regarding the original thinking of this lib by this comprehensive -blog: https://techblog.rtbhouse.com/2017/04/18/fast-avro/. - -In the high-level, this is an alternative of the standard Avro serialization/de-serialization -framework, but with better performance by doing runtime code generation. -According to the prod experiment, the de-serlialization time could be reduced by 90% for -some complicated schema, and the serialization time is also improved substantially. - -If your application is encountering performance issue with Avro serialization/de-serialization, -you might want to give it a try. - -When bringing this lib to LinkedIn, we have done the following improvements so far: -1. Made the lib work with both Avro-1.4 and Avro-1.7; -2. Modified the lib to return "Utf8" instead of "String" to align with -the standard Avro lib; -3. Improved the performance of the original lib by caching the generated -de-serlializer in "FastSpecificDatumReader" and "FastGenericDatumReader"; -4. Improved the unit tests to always run the tests against both this fast lib -and the standard Avro lib; -5. Improved the de-serialization generator to support object reuse; -6. Introduced some GC optimization for float vectors; - -We will continue to improve this lib in the future since we are seeing this lib could -be widely used. - - -## Requirements - -## Installation/Setting Up - -Gradle dependency: -com.linkedin.avroutil:avro-codegen:0.1.1 - -## Using the Product or Service - -Since all the APIs in this lib is compatible with the generic Avro lib, so it is very -straightforward to use them. - -For de-serialization, there are two classes: -FastGenericDatumReader -FastSpecificDatumReader - -For serialization, there are also two classes: -FastGenericDatumWriter -FastSpecificDatumWriter - -Code example: -import com.linkedin.avro.fastserde.FastGenericDatumReader; -import com.linkedin.avro.fastserde.FastGenericDatumWriter; -import com.linkedin.avro.fastserde.FastSpecificDatumReader; -import com.linkedin.avro.fastserde.FastSpecificDatumWriter; - -... - -FastGenericDatumReader fastGenericDatumReader = new FastGenericDatumReader<>(writerSchema, readerSchema); -fastGenericDatumReader.read(reuse, binaryDecoder); - -FastGenericDatumWriter fastGenericDatumWriter = new FastGenericDatumWriter<>(schema); -fastGenericDatumWriter.write(data, binaryEncoder); - -FastSpecificDatumReader fastSpecificDatumReader = new FastSpecificDatumReader<>(writerSchema, readerSchema); -fastSpecificDatumReader.read(reuse, binaryDecoder); - -FastSpecificDatumWriter fastSpecificDatumWriter = new FastSpecificDatumWriter<>(schema); -fastSpecificDatumWriter.write(data, binaryEncoder); - - - diff --git a/avro-fastserde/regenerate_avro.sh b/avro-fastserde/regenerate_avro.sh deleted file mode 100755 index 4f76deb9f..000000000 --- a/avro-fastserde/regenerate_avro.sh +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/bash - -mkdir -p avro_tools - -# Avro-1.4.1 could not handle `alias` properly, so we choose to use avro-tools-1.4.0 to generate specific record -# to ignore `alias` fields. -DEFAULT_AVRO_TOOLS_140_JAR="avro_tools/avro_tools_140/avro-tools-1.4.0.jar" -DEFAULT_AVRO_TOOLS_154_JAR="avro_tools/avro_tools_154/avro-tools-1.5.4.jar" -DEFAULT_AVRO_TOOLS_163_JAR="avro_tools/avro_tools_163/avro-tools-1.6.3.jar" -DEFAULT_AVRO_TOOLS_177_JAR="avro_tools/avro_tools_177/avro-tools-1.7.7.jar" -DEFAULT_AVRO_TOOLS_182_JAR="avro_tools/avro_tools_182/avro-tools-1.8.2.jar" -DEFAULT_AVRO_TOOLS_192_JAR="avro_tools/avro_tools_192/avro-tools-1.9.2.jar" -DEFAULT_AVRO_TOOLS_1100_JAR="avro_tools/avro_tools_1100/avro-tools-1.10.2.jar" -DEFAULT_AVRO_TOOLS_1110_JAR="avro_tools/avro_tools_1110/avro-tools-1.11.0.jar" - -if [ ! -f $DEFAULT_AVRO_TOOLS_140_JAR ]; then - mkdir -p avro_tools/avro_tools_140 && pushd . && cd avro_tools/avro_tools_140 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro/1.4.0/avro-tools-1.4.0.jar" -o avro-tools-1.4.0.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_154_JAR ]; then - mkdir -p avro_tools/avro_tools_154 && pushd . && cd avro_tools/avro_tools_154 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.5.4/avro-tools-1.5.4.jar" -o avro-tools-1.5.4.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_163_JAR ]; then - mkdir -p avro_tools/avro_tools_163 && pushd . && cd avro_tools/avro_tools_163 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.6.3/avro-tools-1.6.3.jar" -o avro-tools-1.6.3.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_177_JAR ]; then - mkdir -p avro_tools/avro_tools_177 && pushd . && cd avro_tools/avro_tools_177 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.7.7/avro-tools-1.7.7.jar" -o avro-tools-1.7.7.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_182_JAR ]; then - mkdir -p avro_tools/avro_tools_182 && pushd . && cd avro_tools/avro_tools_182 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.8.2/avro-tools-1.8.2.jar" -o avro-tools-1.8.2.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_192_JAR ]; then - mkdir -p avro_tools/avro_tools_192 && pushd . && cd avro_tools/avro_tools_192 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.9.2/avro-tools-1.9.2.jar" -o avro-tools-1.9.2.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_1100_JAR ]; then - mkdir -p avro_tools/avro_tools_1100 && pushd . && cd avro_tools/avro_tools_1100 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.10.2/avro-tools-1.10.2.jar" -o avro-tools-1.10.2.jar - popd -fi -if [ ! -f $DEFAULT_AVRO_TOOLS_1110_JAR ]; then - mkdir -p avro_tools/avro_tools_1110 && pushd . && cd avro_tools/avro_tools_1110 - curl -s -L -O -C - "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/1.11.0/avro-tools-1.11.0.jar" -o avro-tools-1.11.0.jar - popd -fi - - -# schema path to compile -AVRO_SCHEMAS_PATH=( - "src/test/avro/splitRecordTest1.avsc" - "src/test/avro/splitRecordTest2.avsc" - "src/test/avro/fastserdetest.avsc" - "src/test/avro/defaultsTest.avsc" - "src/test/avro/stringableTest.avsc" - "src/test/avro/benchmarkSchema.avsc" -) -AVRO_SCHEMAS_ROOT_PATH="src/test/avro" - -# path to store the generated -CODE_GEN_PATH="src/test/java" - -# full path to store the compiled classes, and the dimension of this array -# should be same as ${#AVRO_SCHEMAS_PATH[@]} -FULL_CODE_GEN_PATH=( - "${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro/*.java" - "${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro/*.java" - "${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro/*.java" - "${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro/*.java" - "${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro/*.java" - "${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro/*.java" -) -FULL_CODE_GEN_ROOT_PATH="${CODE_GEN_PATH}/com/linkedin/avro/fastserde/generated/avro" - -if [[ $# -lt 1 ]]; then - echo "Usage: $0 avro_tools_path" - echo "" - echo " avro_tools_path: full path to the avro-tools-1.x.x.jar file (required). If you use 'default_avro_140', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_140_JAR" - echo "" - echo "if you use 'default_avro_154', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_154_JAR" - echo "" - echo "if you use 'default_avro_177', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_163_JAR" - echo "" - echo "if you use 'default_avro_163', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_177_JAR" - echo "" - echo "if you use 'default_avro_182', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_182_JAR" - echo "" - echo "if you use 'default_avro_192', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_192_JAR" - echo "" - echo "if you use 'default_avro_1100', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_1100_JAR" - echo "" - echo "if you use 'default_avro_1110', it will take:" - echo "" - echo "$DEFAULT_AVRO_TOOLS_1110_JAR" - echo "" - echo "The $0 script uses avro-tools to generate SpecificRecord classes for the Avro schemas stored in:" - echo "" - for path in `ls ${AVRO_SCHEMAS_ROOT_PATH}/*.avsc`; do - echo " $path" - done - echo "" - echo "The auto-generated classes are purged before each run and then re-generated here:" - echo "" - for path in `ls ${FULL_CODE_GEN_ROOT_PATH}/*.java`; do - echo " $path" - done - echo "" - exit 1 -fi - -AVRO_TOOLS_PATH_PARAM=$1 -echo $AVRO_TOOLS_PATH_PARAM - -if [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_140' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_140_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_154' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_154_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_163' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_163_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_177' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_177_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_182' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_182_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_192' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_192_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_1100' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_1100_JAR -elif [ "$AVRO_TOOLS_PATH_PARAM" = 'default_avro_1110' ]; then - AVRO_TOOLS_JAR=$DEFAULT_AVRO_TOOLS_1110_JAR -else - AVRO_TOOLS_JAR=$AVRO_TOOLS_PATH_PARAM -fi - -for file in `ls ${FULL_CODE_GEN_ROOT_PATH}/*.java`; do - rm -f ${file} -done - -echo "Finished deleting old files. About to generate new ones using $AVRO_TOOLS_JAR..." - -for file in `ls ${AVRO_SCHEMAS_ROOT_PATH}/*.avsc`; do - echo ${file} - java -jar $AVRO_TOOLS_JAR compile schema ${file} $CODE_GEN_PATH - echo "Finished generation for schema path: ${file}" -done - -echo "Done!" diff --git a/fastserde/avro-fastserde-jmh/build.gradle b/fastserde/avro-fastserde-jmh/build.gradle new file mode 100644 index 000000000..bc6f67675 --- /dev/null +++ b/fastserde/avro-fastserde-jmh/build.gradle @@ -0,0 +1,33 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" + id "me.champeau.jmh" version "0.6.6" +} + +sourceSets { + codegen + jmh { + java.srcDirs = ['src/jmh/java'] + } +} + +jmh { + profilers = ['gc', 'pauses'] + clean { + delete "$buildDir/jmh-generated-classes" + delete "$buildDir/jmh-generated-sources" + } +} + +dependencies { + jmh project(":fastserde:avro-fastserde") + jmh testFixtures(project(":fastserde:avro-fastserde-tests110")) + jmh "org.apache.avro:avro:1.10.2" + jmhImplementation "org.openjdk.jmh:jmh-core:1.34" + jmhAnnotationProcessor "org.openjdk.jmh:jmh-generator-annprocess:1.34" +} diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/BenchmarkConstants.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/BenchmarkConstants.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/BenchmarkConstants.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/BenchmarkConstants.java diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/FastAvroSerdesBenchmark.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/FastAvroSerdesBenchmark.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/FastAvroSerdesBenchmark.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/FastAvroSerdesBenchmark.java diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/FloatArrayBenchmark.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/FloatArrayBenchmark.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/FloatArrayBenchmark.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/FloatArrayBenchmark.java diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/AvroRandomDataGenerator.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/AvroRandomDataGenerator.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/AvroRandomDataGenerator.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/AvroRandomDataGenerator.java diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/GenericRecordBuilder.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/GenericRecordBuilder.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/GenericRecordBuilder.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/GenericRecordBuilder.java diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilder.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilder.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilder.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilder.java diff --git a/avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilderBase.java b/fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilderBase.java similarity index 100% rename from avro-fastserde/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilderBase.java rename to fastserde/avro-fastserde-jmh/src/jmh/java/com/linkedin/avro/fastserde/generator/RecordBuilderBase.java diff --git a/avro-fastserde/src/test/avro/RecordWithLargeUnionField.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/RecordWithLargeUnionField.avsc similarity index 100% rename from avro-fastserde/src/test/avro/RecordWithLargeUnionField.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/RecordWithLargeUnionField.avsc diff --git a/avro-fastserde/src/test/avro/benchmarkSchema.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/benchmarkSchema.avsc similarity index 100% rename from avro-fastserde/src/test/avro/benchmarkSchema.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/benchmarkSchema.avsc diff --git a/avro-fastserde/src/test/avro/defaultsTest.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/defaultsTest.avsc similarity index 100% rename from avro-fastserde/src/test/avro/defaultsTest.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/defaultsTest.avsc diff --git a/avro-fastserde/src/test/avro/fastserdetest.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/fastserdetest.avsc similarity index 100% rename from avro-fastserde/src/test/avro/fastserdetest.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/fastserdetest.avsc diff --git a/avro-fastserde/src/test/avro/floatArrayBenchmarkSchema.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/floatArrayBenchmarkSchema.avsc similarity index 100% rename from avro-fastserde/src/test/avro/floatArrayBenchmarkSchema.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/floatArrayBenchmarkSchema.avsc diff --git a/avro-fastserde/src/test/avro/removedTypesTest.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/removedTypesTest.avsc similarity index 100% rename from avro-fastserde/src/test/avro/removedTypesTest.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/removedTypesTest.avsc diff --git a/avro-fastserde/src/test/avro/splitRecordTest1.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/splitRecordTest1.avsc similarity index 100% rename from avro-fastserde/src/test/avro/splitRecordTest1.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/splitRecordTest1.avsc diff --git a/avro-fastserde/src/test/avro/splitRecordTest2.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/splitRecordTest2.avsc similarity index 100% rename from avro-fastserde/src/test/avro/splitRecordTest2.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/splitRecordTest2.avsc diff --git a/avro-fastserde/src/test/avro/stringableTest.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/stringableTest.avsc similarity index 100% rename from avro-fastserde/src/test/avro/stringableTest.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/stringableTest.avsc diff --git a/avro-fastserde/src/test/avro/unionOfRecordsWithSameNameEnumField.avsc b/fastserde/avro-fastserde-tests-common/src/test/avro/unionOfRecordsWithSameNameEnumField.avsc similarity index 100% rename from avro-fastserde/src/test/avro/unionOfRecordsWithSameNameEnumField.avsc rename to fastserde/avro-fastserde-tests-common/src/test/avro/unionOfRecordsWithSameNameEnumField.avsc diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtilTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtilTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtilTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtilTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDatumWriterTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDatumWriterTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDatumWriterTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDatumWriterTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDeserializerDefaultsTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDeserializerDefaultsTest.java similarity index 99% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDeserializerDefaultsTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDeserializerDefaultsTest.java index 4cd30f321..b2c3ad7b7 100644 --- a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDeserializerDefaultsTest.java +++ b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDeserializerDefaultsTest.java @@ -513,7 +513,7 @@ private GenericRecord newGenericSubRecord(String subField, String anotherField, @SuppressWarnings("unchecked") private T decodeSpecificSlow(Schema readerSchema, Schema writerSchema, Decoder decoder) { - org.apache.avro.io.DatumReader datumReader = new SpecificDatumReader<>(writerSchema, readerSchema); + org.apache.avro.io.DatumReader datumReader = new SpecificDatumReader<>(writerSchema, readerSchema); try { return datumReader.read(null, decoder); } catch (IOException e) { diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorForReuseTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorForReuseTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorForReuseTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorForReuseTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastGenericDeserializerGeneratorTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericDeserializerGeneratorTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastGenericDeserializerGeneratorTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericDeserializerGeneratorTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastGenericSerializerGeneratorTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSerdeCacheTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSerdeCacheTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSerdeCacheTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSerdeCacheTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSerdeTestsSupport.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSerdeTestsSupport.java similarity index 99% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSerdeTestsSupport.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSerdeTestsSupport.java index 77459cb0e..c19d7741a 100644 --- a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSerdeTestsSupport.java +++ b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSerdeTestsSupport.java @@ -214,7 +214,7 @@ public static T specificDataFromDecoder(Schema writerSchema, Decoder decoder } public static File getCodeGenDirectory() throws IOException { - Path codeGenOutput = Paths.get("./src/codegen/java/"); + Path codeGenOutput = Paths.get("./build/codegen/java/"); File dir; if (Files.notExists(codeGenOutput)) { dir = Files.createDirectories(codeGenOutput).toFile(); diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGeneratorTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGeneratorTest.java similarity index 99% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGeneratorTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGeneratorTest.java index 2e4771717..bb6a6bdc7 100644 --- a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGeneratorTest.java +++ b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGeneratorTest.java @@ -27,7 +27,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; import org.apache.avro.AvroTypeException; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSpecificSerializerGeneratorTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSpecificSerializerGeneratorTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastSpecificSerializerGeneratorTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastSpecificSerializerGeneratorTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastStringableTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastStringableTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/FastStringableTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/FastStringableTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/PrimitiveArrayListTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/PrimitiveArrayListTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/PrimitiveArrayListTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/PrimitiveArrayListTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/SchemaAssistantTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/SchemaAssistantTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/SchemaAssistantTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/SchemaAssistantTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/UtilsTest.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/UtilsTest.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/UtilsTest.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/UtilsTest.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericDeserializer.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericDeserializer.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericDeserializer.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericDeserializer.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericSerializer.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericSerializer.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericSerializer.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/AvroGenericSerializer.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/BenchmarkTestObject.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/BenchmarkTestObject.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/BenchmarkTestObject.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/BenchmarkTestObject.java diff --git a/avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/SerDeMicroBenchmark.java b/fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/SerDeMicroBenchmark.java similarity index 100% rename from avro-fastserde/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/SerDeMicroBenchmark.java rename to fastserde/avro-fastserde-tests-common/src/test/java/com/linkedin/avro/fastserde/micro/benchmark/SerDeMicroBenchmark.java diff --git a/avro-fastserde/src/test/resources/schema/defaultsTestOld.avsc b/fastserde/avro-fastserde-tests-common/src/test/resources/schema/defaultsTestOld.avsc similarity index 100% rename from avro-fastserde/src/test/resources/schema/defaultsTestOld.avsc rename to fastserde/avro-fastserde-tests-common/src/test/resources/schema/defaultsTestOld.avsc diff --git a/avro-fastserde/src/test/resources/schema/defaultsTestSubrecord.avsc b/fastserde/avro-fastserde-tests-common/src/test/resources/schema/defaultsTestSubrecord.avsc similarity index 100% rename from avro-fastserde/src/test/resources/schema/defaultsTestSubrecord.avsc rename to fastserde/avro-fastserde-tests-common/src/test/resources/schema/defaultsTestSubrecord.avsc diff --git a/avro-fastserde/src/test/resources/schema/fastserdetestold.avsc b/fastserde/avro-fastserde-tests-common/src/test/resources/schema/fastserdetestold.avsc similarity index 100% rename from avro-fastserde/src/test/resources/schema/fastserdetestold.avsc rename to fastserde/avro-fastserde-tests-common/src/test/resources/schema/fastserdetestold.avsc diff --git a/avro-fastserde/src/test/resources/schema/fastserdetestoldextendedenum.avsc b/fastserde/avro-fastserde-tests-common/src/test/resources/schema/fastserdetestoldextendedenum.avsc similarity index 100% rename from avro-fastserde/src/test/resources/schema/fastserdetestoldextendedenum.avsc rename to fastserde/avro-fastserde-tests-common/src/test/resources/schema/fastserdetestoldextendedenum.avsc diff --git a/avro-fastserde/src/test/resources/schema/removedTypesOldTest.avsc b/fastserde/avro-fastserde-tests-common/src/test/resources/schema/removedTypesOldTest.avsc similarity index 100% rename from avro-fastserde/src/test/resources/schema/removedTypesOldTest.avsc rename to fastserde/avro-fastserde-tests-common/src/test/resources/schema/removedTypesOldTest.avsc diff --git a/avro-fastserde/src/test/resources/schema/removedTypesTestWithADifferentNamespace.avsc b/fastserde/avro-fastserde-tests-common/src/test/resources/schema/removedTypesTestWithADifferentNamespace.avsc similarity index 100% rename from avro-fastserde/src/test/resources/schema/removedTypesTestWithADifferentNamespace.avsc rename to fastserde/avro-fastserde-tests-common/src/test/resources/schema/removedTypesTestWithADifferentNamespace.avsc diff --git a/fastserde/avro-fastserde-tests110/build.gradle b/fastserde/avro-fastserde-tests110/build.gradle new file mode 100644 index 000000000..152700809 --- /dev/null +++ b/fastserde/avro-fastserde-tests110/build.gradle @@ -0,0 +1,102 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" + id "java-test-fixtures" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } + testFixtures { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.10.2") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + testFixturesApi 'org.testng:testng:6.14.3' + testFixturesApi 'org.slf4j:slf4j-simple:1.7.14' + testFixturesApi ("org.apache.avro:avro:1.10.2") { + exclude group: "org.slf4j" + } + testFixturesApi project(":helper:helper") + testFixturesApi (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.10.2" + codegen "org.apache.avro:avro-compiler:1.10.2" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen +compileTestFixturesJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests111/build.gradle b/fastserde/avro-fastserde-tests111/build.gradle new file mode 100644 index 000000000..51db7c41e --- /dev/null +++ b/fastserde/avro-fastserde-tests111/build.gradle @@ -0,0 +1,81 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.11.1") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.11.1" + codegen "org.apache.avro:avro-compiler:1.11.1" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests14/build.gradle b/fastserde/avro-fastserde-tests14/build.gradle new file mode 100644 index 000000000..74a4b840a --- /dev/null +++ b/fastserde/avro-fastserde-tests14/build.gradle @@ -0,0 +1,92 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.4.1") { + exclude group: "org.mortbay.jetty" + exclude group: "org.apache.velocity" + exclude group: "commons-lang" + exclude group: "org.jboss.netty" + exclude group: "com.thoughtworks.paranamer", module: "paranamer-ant" + exclude group: "org.slf4j" + } + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testCompile ("org.apache.avro:avro:1.4.1") { + exclude group: "org.mortbay.jetty" + exclude group: "org.apache.velocity" + exclude group: "commons-lang" + exclude group: "org.jboss.netty" + exclude group: "com.thoughtworks.paranamer", module: "paranamer-ant" + exclude group: "org.slf4j" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} +task downloadAvro { + doLast { + project.mkdir "$buildDir" + ant.get(src: "https://repo1.maven.org/maven2/org/apache/avro/avro/1.4.0/avro-tools-1.4.0.jar", dest: "$buildDir/avro-tools-1.4.0.jar") + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn downloadAvro + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = files("$buildDir/avro-tools-1.4.0.jar") + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests15/build.gradle b/fastserde/avro-fastserde-tests15/build.gradle new file mode 100644 index 000000000..0d1cd27a2 --- /dev/null +++ b/fastserde/avro-fastserde-tests15/build.gradle @@ -0,0 +1,81 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.5.4") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.5.4" + codegen "org.apache.avro:avro-compiler:1.5.4" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests16/build.gradle b/fastserde/avro-fastserde-tests16/build.gradle new file mode 100644 index 000000000..d50d316ec --- /dev/null +++ b/fastserde/avro-fastserde-tests16/build.gradle @@ -0,0 +1,81 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.6.3") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.6.3" + codegen "org.apache.avro:avro-compiler:1.6.3" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests17/build.gradle b/fastserde/avro-fastserde-tests17/build.gradle new file mode 100644 index 000000000..cf9a46545 --- /dev/null +++ b/fastserde/avro-fastserde-tests17/build.gradle @@ -0,0 +1,81 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.7.7") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.7.7" + codegen "org.apache.avro:avro-compiler:1.7.7" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests18/build.gradle b/fastserde/avro-fastserde-tests18/build.gradle new file mode 100644 index 000000000..0239643e3 --- /dev/null +++ b/fastserde/avro-fastserde-tests18/build.gradle @@ -0,0 +1,81 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.8.2") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.8.2" + codegen "org.apache.avro:avro-compiler:1.8.2" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde-tests19/build.gradle b/fastserde/avro-fastserde-tests19/build.gradle new file mode 100644 index 000000000..920dedbb2 --- /dev/null +++ b/fastserde/avro-fastserde-tests19/build.gradle @@ -0,0 +1,81 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +configurations { + codegen +} + +sourceSets { + test { + java { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/java" + srcDir "$buildDir/generated/avro" + } + resources { + srcDir "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/resources" + } + } +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.9.2") { + exclude group: "org.slf4j" + } + + testCompile (project(":fastserde:avro-fastserde")) { + exclude group: "org.apache.avro" + } + + testImplementation 'org.testng:testng:6.14.3' + testImplementation 'org.slf4j:slf4j-simple:1.7.14' + + codegen project(":helper:helper") + codegen "org.apache.avro:avro-tools:1.9.2" + codegen "org.apache.avro:avro-compiler:1.9.2" +} + +test { + testLogging.showStandardStreams = false + + useTestNG() { + excludeGroups "perfTest" + } + + testLogging { + events "failed" + } +} + +task runVanillaAvroCodegen { + description = 'generate specific classes using vanilla avro' + + dependsOn configurations.codegen + // define input and output files so we can have incremental build when nothing changes + inputs.dir("$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro") + outputs.dir("$buildDir/generated/avro") + + fileTree(dir: "$rootProject.projectDir/fastserde/avro-fastserde-tests-common/src/test/avro", include:'**/*.avsc').each { file -> + doLast { + javaexec { + classpath = configurations.codegen + main = 'org.apache.avro.tool.Main' + args = ["compile", "schema", file.getAbsolutePath(), "$buildDir/generated/avro"] + } + } + } +} + +compileTestJava.dependsOn runVanillaAvroCodegen \ No newline at end of file diff --git a/fastserde/avro-fastserde/build.gradle b/fastserde/avro-fastserde/build.gradle new file mode 100644 index 000000000..ea81f205a --- /dev/null +++ b/fastserde/avro-fastserde/build.gradle @@ -0,0 +1,110 @@ +/* + * Copyright 2020 LinkedIn Corp. + * Licensed under the BSD 2-Clause License (the "License"). + * See License in the project root for license information. + */ + +plugins { + id "java-library" +} + +dependencies { + implementation project(":helper:helper") + + implementation "org.slf4j:slf4j-api:1.7.14" + implementation "org.apache.commons:commons-lang3:3.4" + implementation "com.sun.codemodel:codemodel:2.6" + + compile ("org.apache.avro:avro:1.10.2") { + exclude group: "org.slf4j" + } +} + +//custom publishing code to export a dependency on "helper-all": +publishing { + publications { + "$project.name"(MavenPublication) { + groupId project.group + artifactId project.name + version project.version + + from components.java + artifact sourceJar + artifact javadocJar + artifact testJar + + //we strive to meet https://central.sonatype.org/pages/requirements.html + pom { + name = 'Avro Util' + description = 'utilities for writing code that works across major avro versions' + url = 'https://github.com/linkedin/avro-util' + + licenses { + license { + name = 'BSD 2-Clause' + url = 'https://raw.githubusercontent.com/linkedin/avro-util/master/LICENSE' + } + } + developers { + developer { + id = 'radai-rosenblatt' + name = 'Radai Rosenblatt' + email = 'radai.rosenblatt@gmail.com' + organization = 'LinkedIn' + organizationUrl = 'linkedin.com' + } + developer { + id = 'abhishekmendhekar' + name = 'Abhishek Mendhekar' + organization = 'LinkedIn' + organizationUrl = 'linkedin.com' + } + developer { + id = 'jimhe' + name = 'Jim He' + email = 'jimjhe@gmail.com' + organization = 'LinkedIn' + organizationUrl = 'linkedin.com' + } + developer { + id = 'ghosthack' + name = 'Adrian Fernandez' + email = 'adrian@ghosthack.com' + organization = 'LinkedIn' + organizationUrl = 'linkedin.com' + } + } + scm { + connection = 'scm:git:git://github.com:linkedin/avro-util.git' + developerConnection = 'scm:git:ssh://github.com:linkedin/avro-util.git' + url = 'https://github.com/linkedin/avro-util' + } + } + + //remove the dependency on helper, and replace with one on helper-all + pom.withXml { + Node dependenciesNode = (Node) (asNode().dependencies[0]) + Collection dependencyNodes = dependenciesNode.children() + List toRemove = new ArrayList<>() + + for (Node o : dependencyNodes) { + if ("$project.group" == o.groupId[0].text() && "helper" == o.artifactId[0].text()) { + toRemove.add(o) + } + } + + for (Node o : toRemove) { + dependencyNodes.remove(o) + } + + def dependencyNode = dependenciesNode.appendNode('dependency') + dependencyNode.appendNode('groupId', "$project.group") + dependencyNode.appendNode('artifactId', "helper-all") + dependencyNode.appendNode('version', "$project.version") + dependencyNode.appendNode('scope', "compile") + } + } + } + + //repositories inherited from parent build.gradle +} diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveBooleanList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveBooleanList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveBooleanList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveBooleanList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveDoubleList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveDoubleList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveDoubleList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveDoubleList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveFloatList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveFloatList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveFloatList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveFloatList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveIntList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveIntList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveIntList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveIntList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveLongList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveLongList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveLongList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/api/PrimitiveLongList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/ByteBufferBackedPrimitiveFloatList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/ByteBufferBackedPrimitiveFloatList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/ByteBufferBackedPrimitiveFloatList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/ByteBufferBackedPrimitiveFloatList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/CompositeByteBuffer.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/CompositeByteBuffer.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/CompositeByteBuffer.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/CompositeByteBuffer.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastAvroConcurrentHashMap.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastAvroConcurrentHashMap.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastAvroConcurrentHashMap.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastAvroConcurrentHashMap.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtil.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtil.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtil.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDatumReaderWriterUtil.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializer.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializer.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializer.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializer.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorBase.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorBase.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorBase.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorBase.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorException.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorException.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorException.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastDeserializerGeneratorException.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumReader.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumReader.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumReader.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumReader.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumWriter.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumWriter.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumWriter.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDatumWriter.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDeserializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDeserializerGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDeserializerGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericDeserializerGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericSerializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericSerializerGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericSerializerGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastGenericSerializerGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeBase.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeBase.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeBase.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeBase.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeCache.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeCache.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeCache.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeCache.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeGeneratorException.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeGeneratorException.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeGeneratorException.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerdeGeneratorException.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializer.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializer.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializer.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializer.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSerializerGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumReader.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumReader.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumReader.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumReader.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumWriter.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumWriter.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumWriter.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDatumWriter.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificDeserializerGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificSerializerGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificSerializerGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificSerializerGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/FastSpecificSerializerGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistant.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistantException.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistantException.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistantException.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/SchemaAssistantException.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/Utils.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/Utils.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/Utils.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/Utils.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/WeakIdentityHashMap.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/WeakIdentityHashMap.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/WeakIdentityHashMap.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/WeakIdentityHashMap.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Avro19Resolver.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Avro19Resolver.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Avro19Resolver.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Avro19Resolver.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Parser.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Parser.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Parser.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Parser.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ResolvingGrammarGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ResolvingGrammarGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ResolvingGrammarGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ResolvingGrammarGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Symbol.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Symbol.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Symbol.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/Symbol.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ValidatingGrammarGenerator.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ValidatingGrammarGenerator.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ValidatingGrammarGenerator.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/backport/ValidatingGrammarGenerator.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveBooleanList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveBooleanList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveBooleanList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveBooleanList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveDoubleList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveDoubleList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveDoubleList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveDoubleList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveFloatList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveFloatList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveFloatList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveFloatList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveIntList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveIntList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveIntList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveIntList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveLongList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveLongList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveLongList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/coldstart/ColdPrimitiveLongList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveArrayList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveArrayList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveArrayList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveArrayList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveBooleanArrayList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveBooleanArrayList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveBooleanArrayList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveBooleanArrayList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveDoubleArrayList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveDoubleArrayList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveDoubleArrayList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveDoubleArrayList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveFloatArrayList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveFloatArrayList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveFloatArrayList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveFloatArrayList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveIntArrayList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveIntArrayList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveIntArrayList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveIntArrayList.java diff --git a/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveLongArrayList.java b/fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveLongArrayList.java similarity index 100% rename from avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveLongArrayList.java rename to fastserde/avro-fastserde/src/main/java/com/linkedin/avro/fastserde/primitive/PrimitiveLongArrayList.java diff --git a/avro-fastserde/src/main/java/org/apache/avro/generic/ColdDatumReaderMixIn.java b/fastserde/avro-fastserde/src/main/java/org/apache/avro/generic/ColdDatumReaderMixIn.java similarity index 100% rename from avro-fastserde/src/main/java/org/apache/avro/generic/ColdDatumReaderMixIn.java rename to fastserde/avro-fastserde/src/main/java/org/apache/avro/generic/ColdDatumReaderMixIn.java diff --git a/avro-fastserde/src/main/java/org/apache/avro/generic/ColdGenericDatumReader.java b/fastserde/avro-fastserde/src/main/java/org/apache/avro/generic/ColdGenericDatumReader.java similarity index 100% rename from avro-fastserde/src/main/java/org/apache/avro/generic/ColdGenericDatumReader.java rename to fastserde/avro-fastserde/src/main/java/org/apache/avro/generic/ColdGenericDatumReader.java diff --git a/avro-fastserde/src/main/java/org/apache/avro/generic/ColdSpecificDatumReader.java b/fastserde/avro-fastserde/src/main/java/org/apache/avro/generic/ColdSpecificDatumReader.java similarity index 100% rename from avro-fastserde/src/main/java/org/apache/avro/generic/ColdSpecificDatumReader.java rename to fastserde/avro-fastserde/src/main/java/org/apache/avro/generic/ColdSpecificDatumReader.java diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ac33e9944..1c4bcc29e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/helper/tests/helper-tests-110/build.gradle b/helper/tests/helper-tests-110/build.gradle index a244eab59..7193c6a31 100644 --- a/helper/tests/helper-tests-110/build.gradle +++ b/helper/tests/helper-tests-110/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-111/build.gradle b/helper/tests/helper-tests-111/build.gradle index 3898f0088..9431af9c6 100644 --- a/helper/tests/helper-tests-111/build.gradle +++ b/helper/tests/helper-tests-111/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-111_0/build.gradle b/helper/tests/helper-tests-111_0/build.gradle index 3b13433e0..05e3d16ea 100644 --- a/helper/tests/helper-tests-111_0/build.gradle +++ b/helper/tests/helper-tests-111_0/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-14/build.gradle b/helper/tests/helper-tests-14/build.gradle index 585a0feae..f2a015d13 100644 --- a/helper/tests/helper-tests-14/build.gradle +++ b/helper/tests/helper-tests-14/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-15/build.gradle b/helper/tests/helper-tests-15/build.gradle index a6ae6cf0b..88e4e5f1f 100644 --- a/helper/tests/helper-tests-15/build.gradle +++ b/helper/tests/helper-tests-15/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-16/build.gradle b/helper/tests/helper-tests-16/build.gradle index ba36331a8..f36fdfb50 100644 --- a/helper/tests/helper-tests-16/build.gradle +++ b/helper/tests/helper-tests-16/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-17/build.gradle b/helper/tests/helper-tests-17/build.gradle index 534b6437b..7c08b66f6 100644 --- a/helper/tests/helper-tests-17/build.gradle +++ b/helper/tests/helper-tests-17/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-18/build.gradle b/helper/tests/helper-tests-18/build.gradle index e707c3fc4..e9b7cd231 100644 --- a/helper/tests/helper-tests-18/build.gradle +++ b/helper/tests/helper-tests-18/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/helper/tests/helper-tests-19/build.gradle b/helper/tests/helper-tests-19/build.gradle index 12c746e5d..d516b5f66 100644 --- a/helper/tests/helper-tests-19/build.gradle +++ b/helper/tests/helper-tests-19/build.gradle @@ -8,7 +8,7 @@ plugins { id "java-library" id "jacoco" id "checkstyle" - id "me.champeau.gradle.jmh" version "0.5.3" + id "me.champeau.jmh" version "0.6.6" } dependencies { diff --git a/settings.gradle b/settings.gradle index 71a4a046d..17078fd32 100644 --- a/settings.gradle +++ b/settings.gradle @@ -55,9 +55,6 @@ include 'helper:tests:helper-tests-110' include 'helper:tests:helper-tests-111' include 'helper:tests:helper-tests-111_0' -//fast avro -include 'avro-fastserde' - //spotbugs plugin include 'spotbugs-plugin' @@ -82,4 +79,15 @@ include 'avro-builder:tests:codegen-charseq-method' include 'avro-builder:tests:codegen-no-utf8-in-putbyindex' include 'avro-builder:tests:tests-allavro' -include 'demos:spotbugs-demo' \ No newline at end of file +include 'demos:spotbugs-demo' + +include 'fastserde:avro-fastserde' +include 'fastserde:avro-fastserde-jmh' +include 'fastserde:avro-fastserde-tests14' +include 'fastserde:avro-fastserde-tests15' +include 'fastserde:avro-fastserde-tests16' +include 'fastserde:avro-fastserde-tests17' +include 'fastserde:avro-fastserde-tests18' +include 'fastserde:avro-fastserde-tests19' +include 'fastserde:avro-fastserde-tests110' +include 'fastserde:avro-fastserde-tests111' \ No newline at end of file