blob: b21593c3695877664674d9fc145839c549b6c766 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
// The purpose of this module is to re-shade org.apache.orc.storage to the original org.apache.hadoop.hive package
// name. This is to be used by Hive3 for features including e.g. vectorization.
project(':iceberg-hive3-orc-bundle') {
apply plugin: 'com.github.johnrengelman.shadow'
tasks.jar.dependsOn tasks.shadowJar
configurations {
implementation {
exclude group: 'com.github.luben'
}
}
dependencies {
implementation project(':iceberg-data')
implementation project(':iceberg-orc')
testCompileOnly project(path: ':iceberg-data', configuration: 'testArtifacts')
testCompileOnly project(path: ':iceberg-orc', configuration: 'testArtifacts')
}
shadowJar {
configurations = [project.configurations.compileClasspath, project.configurations.runtimeClasspath]
zip64 true
// include the LICENSE and NOTICE files for the shaded Jar
from(projectDir) {
include 'LICENSE'
include 'NOTICE'
}
// Relocate dependencies to avoid conflicts
relocate 'org.apache.orc.storage', 'org.apache.hadoop.hive'
// We really only need Iceberg and Orc classes, but with relocated references for storage-api classes (see above)
// Unfortunately the include list feature of this shader plugin doesn't work as expected
dependencies {
exclude 'com/**/*'
exclude 'edu/**/*'
exclude 'io/**'
exclude 'javax/**'
exclude 'org/apache/avro/**/*'
exclude 'org/apache/commons/**/*'
exclude 'org/checkerframework/**/*'
exclude 'org/codehaus/**/*'
exclude 'org/intellij/**/*'
exclude 'org/jetbrains/**/*'
exclude 'org/slf4j/**/*'
exclude 'org/threeten/**/*'
exclude 'org/xerial/**/*'
exclude 'org/apache/parquet/**/*'
exclude 'org/apache/yetus/**/*'
exclude 'shaded/parquet/**/*'
}
classifier null
}
jar {
enabled = false
}
}