Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid sharing source directories as it breaks intellij #40877

Merged
merged 8 commits into from
Apr 8, 2019
33 changes: 1 addition & 32 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -338,14 +338,6 @@ gradle.projectsEvaluated {
integTest.mustRunAfter test
}
configurations.all { Configuration configuration ->
/*
* The featureAwarePlugin configuration has a dependency on x-pack:plugin:core and x-pack:plugin:core has a dependency on the
* featureAwarePlugin configuration. The below task ordering logic would force :x-pack:plugin:core:test
* :x-pack:test:feature-aware:test to depend on each other circularly. We break that cycle here.
*/
if (configuration.name == "featureAwarePlugin") {
return
}
dependencies.all { Dependency dep ->
Project upstreamProject = dependencyToProject(dep)
if (upstreamProject != null) {
Expand All @@ -357,7 +349,7 @@ gradle.projectsEvaluated {
Task task = project.tasks.findByName(taskName)
Task upstreamTask = upstreamProject.tasks.findByName(taskName)
if (task != null && upstreamTask != null) {
task.mustRunAfter(upstreamTask)
task.shouldRunAfter(upstreamTask)
}
}
}
Expand All @@ -382,21 +374,6 @@ allprojects {
// also ignore other possible build dirs
excludeDirs += file('build')
excludeDirs += file('build-eclipse')

iml {
// fix so that Gradle idea plugin properly generates support for resource folders
// see also https://issues.gradle.org/browse/GRADLE-2975
withXml {
it.asNode().component.content.sourceFolder.findAll { it.@url == 'file://$MODULE_DIR$/src/main/resources' }.each {
it.attributes().remove('isTestSource')
it.attributes().put('type', 'java-resource')
}
it.asNode().component.content.sourceFolder.findAll { it.@url == 'file://$MODULE_DIR$/src/test/resources' }.each {
it.attributes().remove('isTestSource')
it.attributes().put('type', 'java-test-resource')
}
}
}
}
}

Expand All @@ -414,14 +391,6 @@ idea {
vcs = 'Git'
}
}
// Make sure gradle idea was run before running anything in intellij (including import).
File ideaMarker = new File(projectDir, '.local-idea-is-configured')
tasks.idea.doLast {
ideaMarker.setText('', 'UTF-8')
}
if (System.getProperty('idea.active') != null && ideaMarker.exists() == false) {
throw new GradleException('You must run `./gradlew idea` from the root of elasticsearch before importing into IntelliJ')
}

// eclipse configuration
allprojects {
Expand Down
12 changes: 12 additions & 0 deletions qa/full-cluster-restart/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,15 @@ task bwcTestSnapshots {

check.dependsOn(bwcTestSnapshots)

configurations {
testArtifacts.extendsFrom testRuntime
}

task testJar(type: Jar) {
appendix 'test'
from sourceSets.test.output
}

artifacts {
testArtifacts testJar
}
7 changes: 5 additions & 2 deletions x-pack/plugin/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ dependencies {
testCompile project(path: ':modules:reindex', configuration: 'runtime')
testCompile project(path: ':modules:parent-join', configuration: 'runtime')
testCompile project(path: ':modules:analysis-common', configuration: 'runtime')
testCompile(project(':x-pack:license-tools')) {
transitive = false
}
testCompile ("org.elasticsearch.client:elasticsearch-rest-high-level-client:${version}")
}

Expand Down Expand Up @@ -95,8 +98,8 @@ licenseHeaders {
}

// make LicenseSigner available for testing signed licenses
sourceSets.test.java {
srcDir '../../license-tools/src/main/java'
sourceSets.test.resources {
srcDir 'src/main/config'
}

unitTest {
Expand Down
10 changes: 6 additions & 4 deletions x-pack/plugin/security/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,11 @@ dependencies {
compileJava.options.compilerArgs << "-Xlint:-rawtypes,-unchecked"
compileTestJava.options.compilerArgs << "-Xlint:-rawtypes,-unchecked"

processTestResources {
from(project(xpackModule('core')).file('src/main/config'))
from(project(xpackModule('core')).file('src/test/resources'))
}

configurations {
testArtifacts.extendsFrom testRuntime
}
Expand All @@ -148,10 +153,7 @@ artifacts {
archives jar
testArtifacts testJar
}
sourceSets.test.resources {
srcDir '../core/src/test/resources'
srcDir '../core/src/main/config'
}

dependencyLicenses {
mapping from: /java-support|opensaml-.*/, to: 'shibboleth'
mapping from: /http.*/, to: 'httpclient'
Expand Down
12 changes: 7 additions & 5 deletions x-pack/plugin/sql/qa/security/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,17 @@ subprojects {
// Use resources from the parent project in subprojects
sourceSets {
test {
java {
srcDirs = ["${mainProject.projectDir}/src/test/java"]
}
resources {
srcDirs = ["${mainProject.projectDir}/src/test/resources"]
mainProject.sourceSets.test.output.classesDirs.each { dir ->
output.addClassesDir { dir }
}
runtimeClasspath += mainProject.sourceSets.test.output
}
}

processTestResources {
from mainProject.file('src/test/resources')
}

dependencies {
testCompile "org.elasticsearch.plugin:x-pack-core:${version}"
}
Expand Down
10 changes: 1 addition & 9 deletions x-pack/qa/full-cluster-restart/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ dependencies {
// This is total #$%, but the solution is to get the SAML realm (which uses guava) out of security proper
exclude group: "com.google.guava", module: "guava"
}
testCompile project(path: ':qa:full-cluster-restart', configuration: 'testArtifacts')
}

Closure waitWithAuth = { NodeInfo node, AntBuilder ant ->
Expand Down Expand Up @@ -70,15 +71,6 @@ Closure waitWithAuth = { NodeInfo node, AntBuilder ant ->
return tmpFile.exists()
}

String coreFullClusterRestartPath = project(':qa:full-cluster-restart').projectDir.toPath().resolve('src/test/java').toString()
sourceSets {
test {
java {
srcDirs += [coreFullClusterRestartPath]
}
}
}

licenseHeaders {
approvedLicenses << 'Apache'
}
Expand Down
4 changes: 3 additions & 1 deletion x-pack/qa/security-tools-tests/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ dependencies {
}

// add test resources from security, so certificate tool tests can use example certs
sourceSets.test.resources.srcDirs(project(xpackModule('security')).sourceSets.test.resources.srcDirs)
processTestResources {
from(project(xpackModule('security')).sourceSets.test.resources.srcDirs)
}

// we have to repeate these patterns because the security test resources are effectively in the src of this project
forbiddenPatterns {
Expand Down
5 changes: 4 additions & 1 deletion x-pack/qa/third-party/active-directory/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ dependencies {
testFixtures.useFixture ":x-pack:test:smb-fixture"

// add test resources from security, so tests can use example certs
sourceSets.test.resources.srcDirs(project(xpackModule('security')).sourceSets.test.resources.srcDirs)
processTestResources {
from(project(xpackModule('security')).sourceSets.test.resources.srcDirs)
}

compileTestJava.options.compilerArgs << "-Xlint:-rawtypes,-unchecked"

// we have to repeat these patterns because the security test resources are effectively in the src of this project
Expand Down