Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
f1e3e8a
upgrade dependencies to partially suit scala 3 build
pjfanning Dec 11, 2021
738418e
update travis script
pjfanning Dec 11, 2021
d1394e1
Update .travis.yml
pjfanning Dec 11, 2021
6a127bd
remove scala-reflect dependency for scala 3 build
pjfanning Dec 11, 2021
c35283d
continue refactor
pjfanning Dec 11, 2021
5765a4f
stub out unimplemented methods
pjfanning Dec 11, 2021
6d0a117
wip
pjfanning Dec 11, 2021
367f9e7
wip
pjfanning Dec 11, 2021
4e80516
wip
pjfanning Dec 11, 2021
bcdec3d
Update LoggerMacro.scala
pjfanning Dec 11, 2021
b38c0b5
wip
pjfanning Dec 11, 2021
f117839
wip
pjfanning Dec 11, 2021
9c0d2de
fatal api
pjfanning Dec 11, 2021
3cf0749
trace
pjfanning Dec 11, 2021
67c0afc
debug
pjfanning Dec 11, 2021
4b1170d
wip
pjfanning Dec 11, 2021
d2952be
Update Logger.scala
pjfanning Dec 12, 2021
f589918
Update Logger.scala
pjfanning Dec 13, 2021
b295650
wip
pjfanning Dec 13, 2021
4cb4821
Update Logger.scala
pjfanning Dec 13, 2021
b2f34ff
wip
pjfanning Dec 13, 2021
cd43fee
log4j 2.16.0
pjfanning Dec 14, 2021
39dd0fe
Update LoggerTest.scala
pjfanning Dec 16, 2021
a5c596d
compile issue in test
pjfanning Dec 16, 2021
79987cd
Update LoggerTest.scala
pjfanning Dec 16, 2021
4155c9c
Update Logger.scala
pjfanning Dec 17, 2021
a22e36a
wip
pjfanning Dec 17, 2021
4f6fd5c
wip
pjfanning Dec 17, 2021
f4451c7
Update Logger.scala
pjfanning Dec 17, 2021
8a6d45f
wip
pjfanning Dec 17, 2021
25275d5
Update build.sbt
pjfanning Dec 17, 2021
361e987
wip
pjfanning Dec 17, 2021
5f5671a
Update README.md
pjfanning Dec 17, 2021
1ac63ef
upgrades
pjfanning Dec 18, 2021
e5437c3
wip
pjfanning Dec 18, 2021
7d32336
Merge branch 'master' into scala3
pjfanning Dec 21, 2021
d5f7465
wip
pjfanning Dec 21, 2021
a3e8ef8
Update LoggerTest.scala
pjfanning Dec 21, 2021
57771ec
wip
pjfanning Dec 21, 2021
f3c7689
Update LoggerTest.scala
pjfanning Dec 21, 2021
658ee9f
Merge branch 'master' into scala3
pjfanning Dec 21, 2021
a02bce8
refactor build
pjfanning Dec 21, 2021
9e18a89
Merge branch 'master' into scala3
pjfanning Dec 21, 2021
bd7e10c
remove some macros
pjfanning Dec 21, 2021
d7dd07c
run build for all support scala versions
pjfanning Dec 21, 2021
a703bc4
Update ci.yml
pjfanning Dec 21, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,9 @@ jobs:
build:
strategy:
matrix:
java: [ '8', '11', '17' ]
os: [ 'ubuntu-latest' ]
os: [ubuntu-latest]
scala: [2.10.7, 2.11.12, 2.12.15, 2.13.7, 3.0.2]
java: ['8', '11', '17']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
Expand All @@ -36,5 +37,16 @@ jobs:
with:
java-version: ${{ matrix.java }}
distribution: 'zulu'
- name: Cache sbt
uses: actions/cache@v2
with:
path: |
~/.sbt
~/.ivy2/cache
~/.coursier/cache/v1
~/.cache/coursier/v1
~/AppData/Local/Coursier/Cache/v1
~/Library/Caches/Coursier/v1
key: ${{ runner.os }}-sbt-cache-v2-${{ hashFiles('**/*.sbt') }}-${{ hashFiles('project/build.properties') }}
- name: Build
run: sbt -batch "+ test"
run: sbt ++${{ matrix.scala }} test
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ target/
velocity.log
felix-cache/
bin/
.bsp/sbt.json
4 changes: 3 additions & 1 deletion BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

Moved to [site docs](./src/asciidoctor/build.adoc).

Install [sbt](https://www.scala-sbt.org/) if you do not have it installed.

Summary:

./sbt "+ publishM2"
sbt "+ publishM2"
58 changes: 40 additions & 18 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ lazy val metadataSettings = Seq(
lazy val compileSettings = Seq(
scalacOptions := Seq("-feature", "-unchecked", "-deprecation"),
scalaVersion := scala213,
crossScalaVersions := Seq(scala210, scala211, scala212, scala213)
crossScalaVersions := Seq(scala210, scala211, scala212, scala213, scala3)
)

lazy val publishSettings = Seq(
publishMavenStyle := true,
publishArtifact in Test := false,
Test / publishArtifact := false,
publishTo := {
if (isSnapshot.value) {
Some("Apache Snapshots" at "https://repository.apache.org/content/repositories/snapshots")
Expand All @@ -82,23 +82,45 @@ lazy val licensePackagingSettings =
)

lazy val sourceSettings = Seq(
unmanagedSourceDirectories in Compile ++= {
(unmanagedSourceDirectories in Compile).value.map { dir =>
Compile / unmanagedSourceDirectories ++= {
(Compile / unmanagedSourceDirectories).value.flatMap { dir =>
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, n11)) if n11 >= 11 => file(dir.getPath ++ "-2.11+")
case Some((2, n10)) if n10 <= 10 => file(dir.getPath ++ "-2.10")
case Some((3, _)) => Seq(file(dir.getPath ++ "-3"))
case Some((2, n11)) if n11 >= 11 => Seq(file(dir.getPath ++ "-2"), file(dir.getPath ++ "-2.11+"))
case Some((2, n10)) if n10 <= 10 => Seq(file(dir.getPath ++ "-2"), file(dir.getPath ++ "-2.10"))
}
}
},
unmanagedSourceDirectories in Compile ++= {
(unmanagedSourceDirectories in Compile).value.map { dir =>
Compile / unmanagedSourceDirectories ++= {
(Compile / unmanagedSourceDirectories).value.map { dir =>
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((3, _)) => file(dir.getPath ++ "-2.13+")
case Some((2, n13)) if n13 >= 13 => file(dir.getPath ++ "-2.13+")
case Some((2, n12)) if n12 <= 12 => file(dir.getPath ++ "-2.12-")
}
}
}
)

lazy val testSourceSettings = Seq(
Test / unmanagedSourceDirectories ++= {
(Test / unmanagedSourceDirectories).value.map { dir =>
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((3, _)) => file(dir.getPath ++ "-3")
case Some((2, _)) => file(dir.getPath ++ "-2")
}
}
},
Compile / unmanagedSourceDirectories ++= {
(Compile / unmanagedSourceDirectories).value.map { dir =>
CrossVersion.partialVersion(scalaVersion.value) match {
case Some((3, _)) => file(dir.getPath ++ "-2.13+")
case Some((2, n13)) if n13 >= 13 => file(dir.getPath ++ "-2.13+")
case Some((2, n12)) if n12 <= 12 => file(dir.getPath ++ "-2.12-")
}
}
}
)
)

lazy val releaseSettings = Seq(
releaseCrossBuild := true,
Expand All @@ -109,7 +131,7 @@ lazy val releaseSettings = Seq(
checkSnapshotDependencies,
inquireVersions,
runClean,
releaseStepTask(auditCheck in Compile),
releaseStepTask(Compile / auditCheck),
runTest,
setReleaseVersion,
commitReleaseVersion,
Expand All @@ -125,20 +147,19 @@ lazy val releaseSettings = Seq(

lazy val siteSettings = Seq(
apiURL := Some(url(s"https://logging.apache.org/log4j/log4j-scala-${version.value}/")),
siteSubdirName in SiteScaladoc := s"api/${scalaBinaryVersion.value}",
managedSources in Asciidoc += {
(auditReport in Compile).value
(target in Compile).value / "rat.adoc"
SiteScaladoc / siteSubdirName := s"api/${scalaBinaryVersion.value}",
Asciidoc / managedSources += {
(Compile / auditReport).value
(Compile / target).value / "rat.adoc"
},
mappings in makeSite ++= Seq(
makeSite / mappings ++= Seq(
(baseDirectory.value / "LICENSE.txt", "LICENSE"),
(baseDirectory.value / "NOTICE.txt", "NOTICE")
)
)

lazy val apiDependencies = Seq(
libraryDependencies ++= Seq(
scalaReflect(scalaVersion.value),
libraryDependencies ++= scalaReflect(scalaVersion.value).toSeq ++ Seq(
osgiCoreApi,
log4jApi,
log4jApiTests,
Expand All @@ -165,6 +186,7 @@ lazy val root = (project in file("."))
.settings(publishSettings: _*)
.settings(licensePackagingSettings: _*)
.settings(sourceSettings: _*)
.settings(testSourceSettings: _*)
.settings(releaseSettings: _*)
.settings(siteSettings: _*)
.settings(apiDependencies: _*)
Expand All @@ -174,7 +196,7 @@ lazy val nopublish = Seq(
publish := {},
publishLocal := {},
publishM2 := {},
skip in publish := true
publish / skip := true
)

lazy val sample = (project in file("sample"))
Expand Down
23 changes: 12 additions & 11 deletions project/Dependencies.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,23 +19,24 @@ import sbt._
object Dependencies {
val scala210 = "2.10.7"
val scala211 = "2.11.12"
val scala212 = "2.12.10"
val scala213 = "2.13.1"
val scala212 = "2.12.15"
val scala213 = "2.13.7"
val scala3 = "3.0.2"

def scalaReflect(version: String): ModuleID =
"org.scala-lang" % "scala-reflect" % version
def scalaReflect(version: String) =
if (version.startsWith("3")) None else Some("org.scala-lang" % "scala-reflect" % version)

private val log4jV = "2.17.0"
val osgiCoreApi = "org.osgi" % "org.osgi.core" % "6.0.0" % Provided
val log4jApi = "org.apache.logging.log4j" % "log4j-api" % log4jV
val log4jApiTests = "org.apache.logging.log4j" % "log4j-api" % log4jV % Test classifier "tests"
val log4jCore = "org.apache.logging.log4j" % "log4j-core" % log4jV % Runtime
val junit = "junit" % "junit" % "4.12" % Test
val scalactic = "org.scalactic" %% "scalactic" % "3.2.0-M1" % Compile
val scalatest = "org.scalatest" %% "scalatest" % "3.2.0-M1" % Test
val scalatestFunsuit = "org.scalatest" %% "scalatest-funsuite" % "3.2.0-M1" % Test
val scalatestMatcher = "org.scalatest" %% "scalatest-matchers-core" % "3.2.0-M1" % Test
val scalatestJunit = "org.scalatestplus" %% "scalatestplus-junit" % "1.0.0-M2" % Test
val scalatestMockito = "org.scalatestplus" %% "scalatestplus-mockito" % "1.0.0-M2" % Test
val mockito = "org.mockito" % "mockito-core" % "3.1.0" % Test
val scalactic = "org.scalactic" %% "scalactic" % "3.2.10" % Compile
val scalatest = "org.scalatest" %% "scalatest" % "3.2.10" % Test
val scalatestFunsuit = "org.scalatest" %% "scalatest-funsuite" % "3.2.10" % Test
val scalatestMatcher = "org.scalatest" %% "scalatest-matchers-core" % "3.2.10" % Test
val scalatestJunit = "org.scalatestplus" %% "junit-4-13" % "3.2.10.0" % Test
val scalatestMockito = "org.scalatestplus" %% "mockito-3-12" % "3.2.10.0" % Test
val mockito = "org.mockito" % "mockito-core" % "4.2.0" % Test
}
1 change: 0 additions & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.1")
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.8")
addSbtPlugin("com.typesafe.sbt" % "sbt-license-report" % "1.2.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "1.3.2")
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.9.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-osgi" % "0.9.3")
// for quicker resolutions from Maven Central of new releases, uncomment:
//resolvers += Resolver.sonatypeRepo("public")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@
*/
package org.apache.logging.log4j.scala

import org.apache.logging.log4j.message.{EntryMessage, Message}
import org.apache.logging.log4j.spi.AbstractLogger
import org.apache.logging.log4j.message.Message
import org.apache.logging.log4j.{Level, Marker}

import scala.language.experimental.macros
Expand Down Expand Up @@ -337,89 +336,4 @@ private object LoggerMacro {
}
)


def traceEntry(c: LoggerContext)(): c.Expr[EntryMessage] =
c.universe.reify(
c.prefix.splice.delegate.traceEntry()
)

def traceEntryParams(c: LoggerContext)(params: c.Expr[AnyRef]*): c.Expr[EntryMessage] = {
import c.universe._
val isEnabled = Apply(
Select(Select(c.prefix.tree, newTermName("delegate")), newTermName("isEnabled")),
List(
reify(Level.TRACE).tree,
reify(AbstractLogger.ENTRY_MARKER).tree,
reify(null: AnyRef).tree,
reify(null).tree
)
)

val log = Apply(
Select(Select(c.prefix.tree, newTermName("delegate")), newTermName("traceEntry")),
reify(null: String).tree :: (params map (_.tree)).toList
)
c.Expr[EntryMessage](If(isEnabled, log, reify(null).tree))
}


def traceEntryMessage(c: LoggerContext)(message: c.Expr[Message]): c.Expr[EntryMessage] =
c.universe.reify(
if (c.prefix.splice.delegate.isEnabled(Level.TRACE, AbstractLogger.ENTRY_MARKER, null: AnyRef, null)) {
c.prefix.splice.delegate.traceEntry(message.splice) // TODO should not do ifEnabled check
} else {
null
}
)

def traceExit(c: LoggerContext)(): c.Expr[Unit] =
c.universe.reify(
c.prefix.splice.delegate.traceExit()
)

def traceExitResult[R: c.WeakTypeTag](c: LoggerContext)(result: c.Expr[R]): c.Expr[R] =
c.universe.reify(
c.prefix.splice.delegate.traceExit(result.splice)
)

def traceExitEntryMessage(c: LoggerContext)(entryMessage: c.Expr[EntryMessage]): c.Expr[Unit] =
c.universe.reify(
c.prefix.splice.delegate.traceExit(entryMessage.splice)
)

def traceExitEntryMessageResult[R: c.WeakTypeTag](c: LoggerContext)(entryMessage: c.Expr[EntryMessage], result: c.Expr[R]): c.Expr[R] =
c.universe.reify(
c.prefix.splice.delegate.traceExit(entryMessage.splice, result.splice)
)

def traceExitMessageResult[R: c.WeakTypeTag](c: LoggerContext)(message: c.Expr[Message], result: c.Expr[R]): c.Expr[R] =
c.universe.reify(
{
if (message.splice != null && c.prefix.splice.delegate.isEnabled(Level.TRACE, AbstractLogger.EXIT_MARKER, message.splice, null)) {
c.prefix.splice.delegate.traceExit(message.splice, result.splice) // TODO should not do ifEnabled check
}
result.splice
}
)

def throwing[T <: Throwable: c.WeakTypeTag](c: LoggerContext)(t: c.Expr[T]): c.Expr[T] =
c.universe.reify(
c.prefix.splice.delegate.throwing(t.splice)
)

def throwingLevel[T <: Throwable: c.WeakTypeTag](c: LoggerContext)(level: c.Expr[Level], t: c.Expr[T]): c.Expr[T] =
c.universe.reify(
c.prefix.splice.delegate.throwing(level.splice, t.splice)
)

def catching(c: LoggerContext)(t: c.Expr[Throwable]): c.Expr[Unit] =
c.universe.reify(
c.prefix.splice.delegate.catching(t.splice)
)

def catchingLevel(c: LoggerContext)(level: c.Expr[Level], t: c.Expr[Throwable]): c.Expr[Unit] =
c.universe.reify(
c.prefix.splice.delegate.catching(level.splice, t.splice)
)

}
Loading