Simplify and cleanup MultiJvm, MultiNode, Copyright in sbt build

This commit is contained in:
Matthew de Detrich 2024-01-21 11:27:34 +11:00 committed by Matthew de Detrich
parent b273c06c68
commit 9b00480828
9 changed files with 35 additions and 61 deletions

View file

@ -11,22 +11,18 @@
* Copyright (C) 2018-2022 Lightbend Inc. <https://www.lightbend.com>
*/
import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport._
import de.heikoseeberger.sbtheader.{ CommentCreator, HeaderPlugin, NewLine }
import org.apache.commons.lang3.StringUtils
import sbt.Keys._
import sbt._
import MultiJvmPlugin.MultiJvmKeys._
object CopyrightHeader extends AutoPlugin {
import HeaderPlugin.autoImport._
trait CopyrightHeader extends AutoPlugin {
override def requires = HeaderPlugin
override def trigger = allRequirements
override def requires: Plugins = HeaderPlugin
override def trigger: PluginTrigger = allRequirements
protected def headerMappingSettings: Seq[Def.Setting[_]] =
Seq(Compile, Test, MultiJvm).flatMap { config =>
override def projectSettings = Def.settings(
Seq(Compile, Test).flatMap { config =>
inConfig(config)(
Seq(
headerLicense := Some(HeaderLicense.Custom(apacheHeader)),
@ -36,20 +32,7 @@ trait CopyrightHeader extends AutoPlugin {
HeaderFileType.conf -> hashLineComment,
HeaderFileType("template") -> cStyleComment,
HeaderFileType("sbt") -> cStyleComment)))
}
override def projectSettings: Seq[Def.Setting[_]] =
Def.settings(headerMappingSettings, additional)
def additional: Seq[Def.Setting[_]] =
Def.settings(Compile / compile := {
(Compile / headerCreate).value
(Compile / compile).value
},
Test / compile := {
(Test / headerCreate).value
(Test / compile).value
})
})
val apacheFromAkkaSourceHeader: String =
"""Licensed to the Apache Software Foundation (ASF) under one or more
@ -89,7 +72,7 @@ trait CopyrightHeader extends AutoPlugin {
HeaderCommentStyle.cStyleBlockComment.commentCreator(apacheFromAkkaSourceHeader,
existingText) + NewLine * 2 + currentText
case Some(currentText) =>
throw new IllegalStateException(s"Unable to detect copyright for header:[$currentText]")
throw new IllegalStateException(s"Unable to detect copyright for header: [$currentText]")
case None =>
HeaderCommentStyle.cStyleBlockComment.commentCreator(text, existingText)
}
@ -127,11 +110,6 @@ trait CopyrightHeader extends AutoPlugin {
private def isValidCopyrightAnnotated(text: String): Boolean =
isApacheCopyrighted(text)
private def isOnlyLightbendOrEpflCopyrightAnnotated(text: String): Boolean = {
private def isOnlyLightbendOrEpflCopyrightAnnotated(text: String): Boolean =
(isLightbendCopyrighted(text) || isLAMPCopyrighted(text)) && !isApacheCopyrighted(text)
}
}
object CopyrightHeader extends CopyrightHeader
object CopyrightHeaderInPr extends CopyrightHeader

View file

@ -11,17 +11,17 @@
* Copyright (C) 2019-2022 Lightbend Inc. <https://www.lightbend.com>
*/
import de.heikoseeberger.sbtheader.HeaderPlugin
import CopyrightHeader.cStyleComment
import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport._
import sbt.Keys.sourceDirectory
import sbt.{ inConfig, Compile, Def, Plugins, Test, _ }
import spray.boilerplate.BoilerplatePlugin
object CopyrightHeaderForBoilerplate extends CopyrightHeader {
override def requires: Plugins = BoilerplatePlugin && HeaderPlugin
object CopyrightHeaderForBoilerplate extends AutoPlugin {
override def requires: Plugins = BoilerplatePlugin && CopyrightHeader
override def trigger: PluginTrigger = allRequirements
override protected def headerMappingSettings: Seq[Def.Setting[_]] = {
super.headerMappingSettings
override def projectSettings: Seq[Def.Setting[_]] = {
Seq(Compile, Test).flatMap { config =>
inConfig(config) {
Seq(

View file

@ -11,11 +11,13 @@
* Copyright (C) 2019-2022 Lightbend Inc. <https://www.lightbend.com>
*/
import CopyrightHeader.cStyleComment
import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport.{ headerMappings, headerSources, HeaderFileType }
import sbt.Keys.baseDirectory
import sbt.{ inConfig, Compile, Def, PluginTrigger, Test, _ }
object CopyrightHeaderForBuild extends CopyrightHeader {
object CopyrightHeaderForBuild extends AutoPlugin {
override def requires: Plugins = CopyrightHeader
override def trigger: PluginTrigger = noTrigger
override def projectSettings: Seq[Def.Setting[_]] = {

View file

@ -15,10 +15,12 @@ import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport.headerSources
import sbt.Keys.sourceDirectory
import sbt.{ Compile, Def, Test, _ }
object CopyrightHeaderForJdk9 extends CopyrightHeader {
object CopyrightHeaderForJdk9 extends AutoPlugin {
override protected def headerMappingSettings: Seq[Def.Setting[_]] = {
super.headerMappingSettings
override def requires = CopyrightHeader && Jdk9
override def trigger = allRequirements
override def projectSettings: Seq[Def.Setting[_]] = {
import Jdk9._
Seq(
Compile / headerSources ++=

View file

@ -11,13 +11,17 @@
* Copyright (C) 2019-2022 Lightbend Inc. <https://www.lightbend.com>
*/
import CopyrightHeader.cStyleComment
import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport.{ headerMappings, headerSources, HeaderFileType }
import sbt.Keys.sourceDirectory
import sbt.{ inConfig, Compile, Def, Test, _ }
object CopyrightHeaderForProtobuf extends CopyrightHeader {
override protected def headerMappingSettings: Seq[Def.Setting[_]] = {
super.headerMappingSettings
object CopyrightHeaderForProtobuf extends AutoPlugin {
override def requires = CopyrightHeader
override def trigger = allRequirements
override def projectSettings: Seq[Def.Setting[_]] = {
Seq(Compile, Test).flatMap { config =>
inConfig(config) {
Seq(

View file

@ -12,8 +12,8 @@
*/
import TestExtras.Filter.Keys._
import MultiJvmPlugin.MultiJvmKeys.multiJvmCreateLogger
import MultiJvmPlugin.MultiJvmKeys._
import MultiJvmPlugin.autoImport.multiJvmCreateLogger
import MultiJvmPlugin.autoImport._
import sbt.{ Def, _ }
import sbt.Keys._
@ -47,7 +47,7 @@ object MultiNode extends AutoPlugin {
val multiTest = CliOptions.multiNode.ifTrue(MultiJvm / multiNodeTest).getOrElse(MultiJvm / test)
override def trigger = noTrigger
override def requires = plugins.JvmPlugin
override def requires = plugins.JvmPlugin && MultiJvmPlugin
override lazy val projectSettings: Seq[Def.Setting[_]] = multiJvmSettings

View file

@ -85,7 +85,6 @@ object PekkoValidatePullRequest extends AutoPlugin {
*/
object MultiNodeWithPrValidation extends AutoPlugin {
import PekkoValidatePullRequest._
import MultiJvmPlugin.MultiJvmKeys.MultiJvm
override def trigger = allRequirements
override def requires = PekkoValidatePullRequest && MultiNode