From a880cfe3bfad272a5041e5a16ce5da14a38ae6db Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Tue, 1 May 2018 11:48:43 +0100 Subject: [PATCH 1/4] Adds Eclipse config for xpack licence headers This change adds to a step to the generation of eclipse files for each x-pack project so that the code template for adding new files to x-pack projects uses the Elastic Licence header rather than the Apache 2.0 licence header while non-xpack projects still use the Apache 2.0 licence header x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs --- x-pack/build.gradle | 10 ++++++++++ .../eclipse.settings/org.eclipse.jdt.ui.prefs | 6 ++++++ 2 files changed, 16 insertions(+) create mode 100644 x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs diff --git a/x-pack/build.gradle b/x-pack/build.gradle index 88e09d82168f7..dc6737301990d 100644 --- a/x-pack/build.gradle +++ b/x-pack/build.gradle @@ -33,6 +33,7 @@ subprojects { } File checkstyleSuppressions = file('dev-tools/checkstyle_suppressions.xml') +File eclipseSettings = file('dev-tools/eclipse.settings') subprojects { tasks.withType(Checkstyle) { inputs.file(checkstyleSuppressions) @@ -64,4 +65,13 @@ subprojects { ext.projectSubstitutions["org.elasticsearch.plugin:x-pack:${snapshot}"] = snapshotProject } } + + task copyEclipseSettingsXPack(type: Copy) { + // TODO: "package this up" for external builds + from eclipseSettings + into '.settings' + } + + tasks.eclipse.dependsOn(cleanEclipse, copyEclipseSettings, copyEclipseSettingsXPack) + tasks.copyEclipseSettingsXPack.dependsOn(copyEclipseSettings) } diff --git a/x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs b/x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000000..2b84a88aaeef2 --- /dev/null +++ b/x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +formatter_settings_version=12 +# Intellij IDEA import order +org.eclipse.jdt.ui.importorder=;com;org;java;javax;\#; +# License header +org.eclipse.jdt.ui.text.custom_code_templates= From c6e535eeece3d5ac47ecffad08a240d6ec90cb54 Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Wed, 2 May 2018 10:27:36 +0100 Subject: [PATCH 2/4] iter --- build.gradle | 18 ++++++++++++++++++ .../eclipse.settings/org.eclipse.jdt.ui.prefs | 2 +- .../license-headers/elastic-license-header.txt | 5 +++++ .../license-headers/oss-license-header.txt | 18 ++++++++++++++++++ x-pack/build.gradle | 9 --------- .../eclipse.settings/org.eclipse.jdt.ui.prefs | 6 ------ 6 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 buildSrc/src/main/resources/license-headers/elastic-license-header.txt create mode 100644 buildSrc/src/main/resources/license-headers/oss-license-header.txt delete mode 100644 x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs diff --git a/build.gradle b/build.gradle index c538c0cb898ef..65f4bba353131 100644 --- a/build.gradle +++ b/build.gradle @@ -410,6 +410,24 @@ allprojects { // TODO: "package this up" for external builds from new File(project.rootDir, 'buildSrc/src/main/resources/eclipse.settings') into '.settings' + doLast { + println "THIS DOLAST BLOCK IS RUN HERE" + File eclipseUIPrefsFile = new File('.settings/org.eclipse.jdt.ui.prefs') + println "eclipseUIPrefsFile" + eclipseUIPrefsFile + File licenseHeaderFile; + println "project.name" + project.name + if (project.name.startsWith(':x-pack')) { + licenseHeaderFile = new File(project.rootDir, 'buildSrc/src/main/resources/license-headers/elastic-license-header.txt') + } else { + licenseHeaderFile = new File(project.rootDir, 'buildSrc/src/main/resources/license-headers/oss-license-header.txt') + } + println "licenseHeaderFile" + licenseHeaderFile + String licenseHeader = licenseHeaderFile.getText('UTF-8').replace('\n', '\\n') + println "licenseHeader" + licenseHeader + String updatedPrefs = eclipseUIPrefsFile.getText('UTF-8').replace('@@LICENSE_HEADER_TEXT@@', licenseHeader) + println "updatedPrefs" + updatedPrefs + eclipseUIPrefsFile.write(updatedPrefs, 'UTF-8') + } } // otherwise .settings is not nuked entirely task wipeEclipseSettings(type: Delete) { diff --git a/buildSrc/src/main/resources/eclipse.settings/org.eclipse.jdt.ui.prefs b/buildSrc/src/main/resources/eclipse.settings/org.eclipse.jdt.ui.prefs index 391a871586862..827a41bf634c9 100644 --- a/buildSrc/src/main/resources/eclipse.settings/org.eclipse.jdt.ui.prefs +++ b/buildSrc/src/main/resources/eclipse.settings/org.eclipse.jdt.ui.prefs @@ -3,4 +3,4 @@ formatter_settings_version=12 # Intellij IDEA import order org.eclipse.jdt.ui.importorder=;com;org;java;javax;\#; # License header -org.eclipse.jdt.ui.text.custom_code_templates= +org.eclipse.jdt.ui.text.custom_code_templates= diff --git a/buildSrc/src/main/resources/license-headers/elastic-license-header.txt b/buildSrc/src/main/resources/license-headers/elastic-license-header.txt new file mode 100644 index 0000000000000..30371a1ef54aa --- /dev/null +++ b/buildSrc/src/main/resources/license-headers/elastic-license-header.txt @@ -0,0 +1,5 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ \ No newline at end of file diff --git a/buildSrc/src/main/resources/license-headers/oss-license-header.txt b/buildSrc/src/main/resources/license-headers/oss-license-header.txt new file mode 100644 index 0000000000000..d85645a12efb3 --- /dev/null +++ b/buildSrc/src/main/resources/license-headers/oss-license-header.txt @@ -0,0 +1,18 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch 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. + */ \ No newline at end of file diff --git a/x-pack/build.gradle b/x-pack/build.gradle index dc6737301990d..909a1bf2c1623 100644 --- a/x-pack/build.gradle +++ b/x-pack/build.gradle @@ -65,13 +65,4 @@ subprojects { ext.projectSubstitutions["org.elasticsearch.plugin:x-pack:${snapshot}"] = snapshotProject } } - - task copyEclipseSettingsXPack(type: Copy) { - // TODO: "package this up" for external builds - from eclipseSettings - into '.settings' - } - - tasks.eclipse.dependsOn(cleanEclipse, copyEclipseSettings, copyEclipseSettingsXPack) - tasks.copyEclipseSettingsXPack.dependsOn(copyEclipseSettings) } diff --git a/x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs b/x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 2b84a88aaeef2..0000000000000 --- a/x-pack/dev-tools/eclipse.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,6 +0,0 @@ -eclipse.preferences.version=1 -formatter_settings_version=12 -# Intellij IDEA import order -org.eclipse.jdt.ui.importorder=;com;org;java;javax;\#; -# License header -org.eclipse.jdt.ui.text.custom_code_templates= From 8feddcc6bd1845f72e4c92bce2dbf1dd47ffd32a Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Wed, 2 May 2018 11:56:42 +0100 Subject: [PATCH 3/4] Moves code template logic into the root build.gradle Uses a filter on the copy task for the eclipse settings files to replace the token @@LICENSE_HEADER_TEXT@@ with the correct licence header from the new buildSrc/src/main/resources/license-headers directory --- build.gradle | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 65f4bba353131..395e1f600c9cc 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,7 @@ import org.apache.tools.ant.taskdefs.condition.Os +import org.apache.tools.ant.filters.ReplaceTokens import org.elasticsearch.gradle.BuildPlugin import org.elasticsearch.gradle.LoggedExec import org.elasticsearch.gradle.Version @@ -406,28 +407,19 @@ allprojects { } } } + + File licenseHeaderFile; + if (eclipse.project.name.startsWith(':x-pack')) { + licenseHeaderFile = new File(project.rootDir, 'buildSrc/src/main/resources/license-headers/elastic-license-header.txt') + } else { + licenseHeaderFile = new File(project.rootDir, 'buildSrc/src/main/resources/license-headers/oss-license-header.txt') + } + String licenseHeader = licenseHeaderFile.getText('UTF-8').replace('\n', '\\\\n') task copyEclipseSettings(type: Copy) { // TODO: "package this up" for external builds from new File(project.rootDir, 'buildSrc/src/main/resources/eclipse.settings') into '.settings' - doLast { - println "THIS DOLAST BLOCK IS RUN HERE" - File eclipseUIPrefsFile = new File('.settings/org.eclipse.jdt.ui.prefs') - println "eclipseUIPrefsFile" + eclipseUIPrefsFile - File licenseHeaderFile; - println "project.name" + project.name - if (project.name.startsWith(':x-pack')) { - licenseHeaderFile = new File(project.rootDir, 'buildSrc/src/main/resources/license-headers/elastic-license-header.txt') - } else { - licenseHeaderFile = new File(project.rootDir, 'buildSrc/src/main/resources/license-headers/oss-license-header.txt') - } - println "licenseHeaderFile" + licenseHeaderFile - String licenseHeader = licenseHeaderFile.getText('UTF-8').replace('\n', '\\n') - println "licenseHeader" + licenseHeader - String updatedPrefs = eclipseUIPrefsFile.getText('UTF-8').replace('@@LICENSE_HEADER_TEXT@@', licenseHeader) - println "updatedPrefs" + updatedPrefs - eclipseUIPrefsFile.write(updatedPrefs, 'UTF-8') - } + filter{ it.replaceAll('@@LICENSE_HEADER_TEXT@@', licenseHeader)} } // otherwise .settings is not nuked entirely task wipeEclipseSettings(type: Delete) { From 27a27637dc09152f16767260f21162c28d88f727 Mon Sep 17 00:00:00 2001 From: Colin Goodheart-Smithe Date: Wed, 2 May 2018 15:17:06 +0100 Subject: [PATCH 4/4] Removes leftover line from previous implementation --- x-pack/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/x-pack/build.gradle b/x-pack/build.gradle index 909a1bf2c1623..88e09d82168f7 100644 --- a/x-pack/build.gradle +++ b/x-pack/build.gradle @@ -33,7 +33,6 @@ subprojects { } File checkstyleSuppressions = file('dev-tools/checkstyle_suppressions.xml') -File eclipseSettings = file('dev-tools/eclipse.settings') subprojects { tasks.withType(Checkstyle) { inputs.file(checkstyleSuppressions)