Skip to content

Commit b8a30a7

Browse files
felixbrjenkins
authored and
jenkins
committed
util/util-logging: Add Scala3 cross-build
Cross build util-logging with Scala 3. Util PR #295 Signed-off-by: Hamdi Allam <[email protected]> JIRA Issues: CSL-11409 Differential Revision: https://phabricator.twitter.biz/D764508
1 parent 91551dc commit b8a30a7

File tree

8 files changed

+53
-30
lines changed

8 files changed

+53
-30
lines changed

build.sbt

+1-1
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ lazy val utilLogging = Project(
540540
id = "util-logging",
541541
base = file("util-logging")
542542
).settings(
543-
sharedSettings
543+
sharedScala3EnabledSettings
544544
).settings(
545545
name := "util-logging"
546546
).dependsOn(utilCore, utilApp, utilStats)

util-logging/src/main/scala/com/twitter/logging/FileHandler.scala

+18-5
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,21 @@
1616

1717
package com.twitter.logging
1818

19-
import java.io.{File, FileOutputStream, FilenameFilter, OutputStream}
19+
import java.io.File
20+
import java.io.FileOutputStream
21+
import java.io.FilenameFilter
22+
import java.io.OutputStream
2023
import java.nio.charset.Charset
21-
import java.util.{Calendar, Date, logging => javalog}
24+
import java.util.Calendar
25+
import java.util.Date
26+
import java.util.{logging => javalog}
2227

23-
import com.twitter.util.{TwitterDateFormat, HandleSignal, Return, StorageUnit, Time, Try}
28+
import com.twitter.util.TwitterDateFormat
29+
import com.twitter.util.HandleSignal
30+
import com.twitter.util.Return
31+
import com.twitter.util.StorageUnit
32+
import com.twitter.util.Time
33+
import com.twitter.util.Try
2434

2535
sealed abstract class Policy
2636
object Policy {
@@ -224,9 +234,12 @@ class FileHandler(
224234
}
225235
case Policy.Weekly(weekday) => {
226236
next.set(Calendar.HOUR_OF_DAY, 0)
227-
do {
237+
238+
next.add(Calendar.DAY_OF_MONTH, 1)
239+
while (next.get(Calendar.DAY_OF_WEEK) != weekday) {
228240
next.add(Calendar.DAY_OF_MONTH, 1)
229-
} while (next.get(Calendar.DAY_OF_WEEK) != weekday)
241+
}
242+
230243
Some(next)
231244
}
232245
}

util-logging/src/main/scala/com/twitter/logging/Handler.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -150,5 +150,5 @@ class ConsoleHandler(formatter: Formatter = new Formatter(), level: Option[Level
150150

151151
def close(): Unit = {}
152152

153-
def flush(): Unit = Console.flush
153+
def flush(): Unit = Console.flush()
154154
}

util-logging/src/main/scala/com/twitter/logging/Logger.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class Logger protected (val name: String, private val wrapped: javalog.Logger) {
6666
*/
6767
@varargs
6868
final def log(level: Level, thrown: Throwable, message: String, items: Any*): Unit = {
69-
val myLevel = getLevel
69+
val myLevel = getLevel()
7070
if ((myLevel eq null) || (level.intValue >= myLevel.intValue)) {
7171

7272
val record =
@@ -136,7 +136,7 @@ class Logger protected (val name: String, private val wrapped: javalog.Logger) {
136136
* and attach an exception and stack trace.
137137
*/
138138
def logLazy(level: Level, thrown: Throwable, message: => AnyRef): Unit = {
139-
val myLevel = getLevel
139+
val myLevel = getLevel()
140140
if ((myLevel eq null) || (level.intValue >= myLevel.intValue)) {
141141
val record = new LazyLogRecord(level, message)
142142
record.setLoggerName(wrapped.getName)

util-logging/src/test/scala/com/twitter/logging/FileHandlerTest.scala

+8-3
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,18 @@
1717
package com.twitter.logging
1818

1919
import java.io._
20-
import java.util.{Calendar, Date, UUID, logging => javalog}
20+
import java.util.Calendar
21+
import java.util.Date
22+
import java.util.UUID
23+
import java.util.{logging => javalog}
2124
import com.twitter.conversions.StorageUnitOps._
2225
import com.twitter.conversions.DurationOps._
2326
import com.twitter.io.TempFolder
2427
import com.twitter.util.Time
2528
import java.nio.file.attribute.BasicFileAttributes
26-
import java.nio.file.{Files, Path, Paths}
29+
import java.nio.file.Files
30+
import java.nio.file.Path
31+
import java.nio.file.Paths
2732
import java.util.function.BiPredicate
2833
import org.scalatest.wordspec.AnyWordSpec
2934

@@ -353,7 +358,7 @@ class FileHandlerTest extends AnyWordSpec with TempFolder {
353358
}
354359

355360
val files = listLogFiles(folderName + "/LogFileDir")
356-
files.foreach { f: File =>
361+
files.foreach { (f: File) =>
357362
val len = f.length().bytes
358363
if (len > fileSizeInMegaBytes.megabytes) {
359364
fail("Failed to roll over the log file")

util-logging/src/test/scala/com/twitter/logging/LogRecordTest.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import org.scalatest.funsuite.AnyFunSuite
66
class LogRecordTest extends AnyFunSuite {
77
test("LogRecord should getMethod properly") {
88
Logger.withLoggers(Nil) {
9-
new LogRecordTestHelper({ r: JRecord => r.getSourceMethodName() }) {
9+
new LogRecordTestHelper({ (r: JRecord) => r.getSourceMethodName() }) {
1010
def makingLogRecord() = {
1111
logger.log(Level.INFO, "OK")
1212
assert(handler.get == "makingLogRecord")
@@ -34,7 +34,7 @@ abstract class LogRecordTestHelper(formats: JRecord => String) {
3434
logger.addHandler(handler)
3535
}
3636

37-
class Foo extends LogRecordTestHelper({ r: JRecord => r.getSourceClassName() }) {
37+
class Foo extends LogRecordTestHelper({ (r: JRecord) => r.getSourceClassName }) {
3838
def makingLogRecord(): Unit = {
3939
logger.log(Level.INFO, "OK")
4040
}

util-logging/src/test/scala/com/twitter/logging/LoggerTest.scala

+16-12
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ package com.twitter.logging
1919
import com.twitter.conversions.DurationOps._
2020
import com.twitter.io.TempFolder
2121
import java.net.InetSocketAddress
22-
import java.util.concurrent.{Callable, CountDownLatch, Executors, Future, TimeUnit}
22+
import java.util.concurrent.Callable
23+
import java.util.concurrent.CountDownLatch
24+
import java.util.concurrent.Executors
25+
import java.util.concurrent.Future
26+
import java.util.concurrent.TimeUnit
2327
import java.util.{logging => javalog}
2428
import org.scalatest.BeforeAndAfter
2529
import scala.collection.mutable
@@ -68,7 +72,7 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
6872
logger.addHandler(traceHandler)
6973
}
7074

71-
def logLines(): Seq[String] = traceHandler.get.split("\n")
75+
def logLines(): Seq[String] = traceHandler.get.split("\n").toIndexedSeq
7276

7377
/**
7478
* Verify that the logger set up with `traceLogger` has received a log line with the given
@@ -124,7 +128,7 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
124128
"asdf" + executed + " hi there"
125129
}
126130

127-
logger.debugLazy(function)
131+
logger.debugLazy(function())
128132
assert(!executed)
129133
}
130134

@@ -136,7 +140,7 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
136140
executed = true
137141
"asdf" + executed + " hi there"
138142
}
139-
logger.debugLazy(function)
143+
logger.debugLazy(function())
140144
assert(executed)
141145
}
142146

@@ -263,11 +267,11 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
263267
val otherFactories = List(LoggerFactory(node = "", level = Some(Level.INFO)))
264268
Logger.configure(initialFactories)
265269

266-
assert(Logger.get("").getLevel == Level.DEBUG)
270+
assert(Logger.get("").getLevel() == Level.DEBUG)
267271
Logger.withLoggers(otherFactories) {
268272
assert(Logger.get("").getLevel() == Level.INFO)
269273
}
270-
assert(Logger.get("").getLevel == Level.DEBUG)
274+
assert(Logger.get("").getLevel() == Level.DEBUG)
271275
}
272276

273277
"configure logging" should {
@@ -294,13 +298,13 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
294298
) :: Nil
295299
).apply()
296300

297-
assert(log.getLevel == Level.DEBUG)
301+
assert(log.getLevel() == Level.DEBUG)
298302
assert(log.getHandlers().length == 1)
299303
val handler = log.getHandlers()(0).asInstanceOf[FileHandler]
300304
val fileName = folderName + separator + "test.log"
301305
assert(handler.filename == fileName)
302306
assert(handler.append == false)
303-
assert(handler.getLevel == Level.INFO)
307+
assert(handler.getLevel() == Level.INFO)
304308
val formatter = handler.formatter
305309
assert(
306310
formatter.formatPrefix(javalog.Level.WARNING, "10:55", "hello") == "WARNING 10:55 hello"
@@ -325,7 +329,7 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
325329
) :: Nil
326330
).apply()
327331

328-
assert(log.getHandlers.length == 1)
332+
assert(log.getHandlers().length == 1)
329333
val h = log.getHandlers()(0).asInstanceOf[SyslogHandler]
330334
assert(h.dest.asInstanceOf[InetSocketAddress].getHostName == "localhost")
331335
assert(h.dest.asInstanceOf[InetSocketAddress].getPort == 212)
@@ -365,9 +369,9 @@ class LoggerTest extends AnyWordSpec with TempFolder with BeforeAndAfter {
365369
) :: Nil
366370

367371
Logger.configure(factories)
368-
assert(Logger.get("").getLevel == Level.INFO)
369-
assert(Logger.get("w3c").getLevel == Level.OFF)
370-
assert(Logger.get("bad_jobs").getLevel == Level.INFO)
372+
assert(Logger.get("").getLevel() == Level.INFO)
373+
assert(Logger.get("w3c").getLevel() == Level.OFF)
374+
assert(Logger.get("bad_jobs").getLevel() == Level.INFO)
371375
try {
372376
Logger.get("").getHandlers()(0).asInstanceOf[ThrottledHandler]
373377
} catch {

util-logging/src/test/scala/com/twitter/logging/SyslogHandlerTest.scala

+5-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616

1717
package com.twitter.logging
1818

19-
import java.net.{DatagramPacket, DatagramSocket}
19+
import java.net.DatagramPacket
20+
import java.net.DatagramSocket
2021
import java.util.{logging => javalog}
2122

2223
import org.scalatest.wordspec.AnyWordSpec
@@ -45,7 +46,7 @@ class SyslogHandlerTest extends AnyWordSpec {
4546
syslog.publish(record1)
4647
syslog.publish(record2)
4748

48-
SyslogFuture.sync
49+
SyslogFuture.sync()
4950
val p = new DatagramPacket(new Array[Byte](1024), 1024)
5051
serverSocket.receive(p)
5152
assert(
@@ -78,7 +79,7 @@ class SyslogHandlerTest extends AnyWordSpec {
7879
).apply()
7980
syslog.publish(record1)
8081

81-
SyslogFuture.sync
82+
SyslogFuture.sync()
8283
val p = new DatagramPacket(new Array[Byte](1024), 1024)
8384
serverSocket.receive(p)
8485
assert(
@@ -104,7 +105,7 @@ class SyslogHandlerTest extends AnyWordSpec {
104105
).apply()
105106
syslog.publish(record1)
106107

107-
SyslogFuture.sync
108+
SyslogFuture.sync()
108109
val p = new DatagramPacket(new Array[Byte](1024), 1024)
109110
serverSocket.receive(p)
110111
assert(

0 commit comments

Comments
 (0)