logstash/logstash-core/build.gradle
Jordan Sissel 69c3bc21d4 Remove unnecessary log4j-1.2-api depedency.
This library provides a "log4j 1.2"-like API from the log4j2 library.

We don't seem to use this, and including it seems to be the cause of the
Logstash log4j input rejecting log4j 1.x's SocketAppender with this
message:

    org.apache.log4j.spi.LoggingEvent; class invalid for deserialization

The origin of this error is that log4j2's log4j-1.2-api defines
LoggingEvent without `implements Serializable`.

This commit also includes regenerated gemspec_jars.rb and
logstash-core_jars.rb.

Reference: https://github.com/logstash-plugins/logstash-input-log4j/issues/36

Fixes #6309
2016-12-14 02:19:57 -05:00

128 lines
3.6 KiB
Groovy

import org.yaml.snakeyaml.Yaml
apply plugin: 'java'
apply plugin: 'idea'
// fetch version from Logstash's master versions.yml file
def versionMap = (Map) (new Yaml()).load(new File("$projectDir/../versions.yml").text)
group = 'org.logstash'
description = """Logstash Core Java"""
version = versionMap['logstash-core']
repositories {
mavenCentral()
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.yaml:snakeyaml:1.17'
}
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:deprecation"
// options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
project.sourceCompatibility = 1.8
project.targetCompatibility = 1.8
task sourcesJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: classes) {
from sourceSets.main.allSource
classifier 'sources'
extension 'jar'
}
task javadocJar(type: org.gradle.api.tasks.bundling.Jar, dependsOn: javadoc) {
from javadoc.destinationDir
classifier 'javadoc'
extension 'jar'
}
// copy jar file into the gem lib dir but without the version number in filename
task copyGemjar(type: org.gradle.api.tasks.Copy, dependsOn: sourcesJar) {
from project.jar
into project.file('lib/logstash-core/')
rename(/(.+)-${project.version}.jar/, '$1.jar')
}
task cleanGemjar {
delete fileTree(project.file('lib/logstash-core/')) {
include '*.jar'
}
}
clean.dependsOn(cleanGemjar)
jar.finalizedBy(copyGemjar)
task gemspec_jars << {
File gemspec_jars = file("./gemspec_jars.rb")
gemspec_jars.newWriter().withWriter { w ->
w << "# This file is generated by Gradle as part of the build process. It extracts the build.gradle\n"
w << "# runtime dependencies to generate this gemspec dependencies file to be eval'ed by the gemspec\n"
w << "# for the jar-dependencies requirements.\n\n"
configurations.runtime.allDependencies.each { dependency ->
w << "gem.requirements << \"jar ${dependency.group}:${dependency.name}, ${dependency.version}\"\n"
}
}
}
build.finalizedBy(gemspec_jars)
configurations.create('sources')
configurations.create('javadoc')
configurations.archives {
extendsFrom configurations.sources
extendsFrom configurations.javadoc
}
artifacts {
sources(sourcesJar) {
// Weird Gradle quirk where type will be used for the extension, but only for sources
type 'jar'
}
javadoc(javadocJar) {
type 'javadoc'
}
}
configurations {
provided
}
project.sourceSets {
main.compileClasspath += project.configurations.provided
main.runtimeClasspath += project.configurations.provided
test.compileClasspath += project.configurations.provided
test.runtimeClasspath += project.configurations.provided
}
project.javadoc.classpath += project.configurations.provided
idea {
module {
scopes.PROVIDED.plus += [project.configurations.provided]
}
}
dependencies {
compile 'org.apache.logging.log4j:log4j-api:2.6.2'
compile 'org.apache.logging.log4j:log4j-core:2.6.2'
compile 'com.fasterxml.jackson.core:jackson-core:2.7.4'
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4'
testCompile 'org.apache.logging.log4j:log4j-core:2.6.2:tests'
testCompile 'org.apache.logging.log4j:log4j-api:2.6.2:tests'
testCompile 'junit:junit:4.12'
provided 'org.jruby:jruby-core:1.7.25'
}
// See http://www.gradle.org/docs/current/userguide/gradle_wrapper.html
task wrapper(type: Wrapper) {
description = 'Install Gradle wrapper'
gradleVersion = '2.8'
}