This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-296
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-296 by this push:
new 63a3a23 WIP.
63a3a23 is described below
commit 63a3a23dcf6ee48981f767fff94c566efd7c51d1
Author: unknown <[email protected]>
AuthorDate: Wed May 26 16:02:02 2021 -0700
WIP.
---
.../org/apache/nlpcraft/common/NCService.scala | 8 +-
.../nlpcraft/common/ascii/NCAsciiTable.scala | 25 ++++-
.../common/extcfg/NCExternalConfigManager.scala | 18 ++--
.../nlp/core/opennlp/NCOpenNlpTokenizer.scala | 5 +-
.../common/opencensus/NCOpenCensusTrace.scala | 2 +-
.../org/apache/nlpcraft/common/util/NCUtils.scala | 101 ++++++++++++---------
.../model/intent/compiler/NCIdlCompilerBase.scala | 2 +-
.../nlpcraft/model/tools/cmdline/NCCli.scala | 79 ++++++++--------
.../model/tools/cmdline/NCCliAnsiBleach.scala | 6 +-
.../sqlgen/impl/NCSqlModelGeneratorImpl.scala | 30 +++---
.../test/impl/NCTestAutoModelValidatorImpl.scala | 4 +-
.../org/apache/nlpcraft/probe/NCProbeBoot.scala | 15 ++-
.../mgrs/conversation/NCConversationManager.scala | 4 +-
.../probe/mgrs/deploy/NCDeployManager.scala | 4 +-
.../mgrs/dialogflow/NCDialogFlowManager.scala | 4 +-
.../probe/mgrs/nlp/NCProbeEnrichmentManager.scala | 12 +--
.../org/apache/nlpcraft/server/NCServer.scala | 13 +--
.../nlp/core/opennlp/NCOpenNlpNerEnricher.scala | 4 +-
.../server/nlp/core/opennlp/NCOpenNlpParser.scala | 6 +-
.../nlpcraft/server/rest/NCBasicRestApi.scala | 4 +-
.../org/apache/nlpcraft/server/sql/NCSql.scala | 11 +--
.../server/sugsyn/NCSuggestSynonymManager.scala | 6 +-
.../nlpcraft/common/ascii/NCAsciiTableSpec.scala | 4 +-
.../nlpcraft/common/crypto/NCCipherSpec.scala | 4 +-
.../nlpcraft/common/makro/NCMacroParserSpec.scala | 4 +-
.../compiler/functions/NCIdlFunctionsDate.scala | 2 +-
.../mgrs/nlp/enrichers/NCEnrichersTestBeans.scala | 10 +-
27 files changed, 204 insertions(+), 183 deletions(-)
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
index 15d98a4..6582256 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/NCService.scala
@@ -76,7 +76,7 @@ abstract class NCService extends LazyLogging with
NCOpenCensusTrace {
*/
protected def ackStarting(): NCService = {
starting = true
- timeStampMs = currentTime
+ timeStampMs = U.now()
logger.trace(s"$name staring...")
@@ -94,7 +94,7 @@ abstract class NCService extends LazyLogging with
NCOpenCensusTrace {
*/
protected def ackStopping(): NCService = {
stopping = true
- timeStampMs = currentTime
+ timeStampMs = U.now()
logger.trace(s"$name stopping...")
@@ -117,7 +117,7 @@ abstract class NCService extends LazyLogging with
NCOpenCensusTrace {
addTags(
currentSpan(),
- "startDurationMs" -> (currentTime - timeStampMs),
+ "startDurationMs" -> (U.now() - timeStampMs),
"state" -> "started"
)
@@ -140,7 +140,7 @@ abstract class NCService extends LazyLogging with
NCOpenCensusTrace {
started = false
addTags(currentSpan(),
- "stopDurationMs" -> (currentTime - timeStampMs),
+ "stopDurationMs" -> (U.now() - timeStampMs),
"state" -> "stopped"
)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
index 4ee4430..0748f64 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/ascii/NCAsciiTable.scala
@@ -18,15 +18,14 @@
package org.apache.nlpcraft.common.ascii
import java.io.{IOException, PrintStream}
-
import com.typesafe.scalalogging.Logger
import org.apache.nlpcraft.common._
import org.apache.nlpcraft.common.ascii.NCAsciiTable._
-import resource._
import org.apache.nlpcraft.common.ansi.NCAnsi._
-import scala.collection.JavaConverters._
import scala.collection.mutable
+import scala.jdk.CollectionConverters.CollectionHasAsScala
+import scala.util.Using
/**
* `ASCII`-based table with minimal styling support.
@@ -204,6 +203,14 @@ class NCAsciiTable {
}
/**
+ * Adds row (one or more row cells).
+ *
+ * @param cells Row cells. For multi-line cells - use `Seq(...)`.
+ */
+ def +=(cells: mutable.Seq[Any]): NCAsciiTable =
+ +=(cells.toSeq: _*)
+
+ /**
* Adds row (one or more row cells) with a given style.
*
* @param cells Row cells tuples (style, text). For multi-line cells - use
`Seq(...)`.
@@ -253,6 +260,14 @@ class NCAsciiTable {
}
/**
+ * Adds header (one or more header cells).
+ *
+ * @param cells Header cells. For multi-line cells - use `Seq(...)`.
+ */
+ def #=(cells: mutable.Seq[Any]): NCAsciiTable =
+ #=(cells.toSeq: _*)
+
+ /**
* Adds styled header (one or more header cells).
*
* @param cells Header cells tuples (style, text). For multi-line cells -
use `Seq(...)`.
@@ -672,11 +687,11 @@ class NCAsciiTable {
private def renderPrintStream(f: => PrintStream, file: String): Unit =
try
- managed(f) acquireAndGet { ps =>
+ Using.resource(f) { ps =>
ps.print(mkString)
}
catch {
- case e: IOException => throw new NCE(s"Error writing file: $file",
e)
+ case e: IOException => throw new NCE(s"Error outputting table into
file: $file", e)
}
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
index 47aad30..30d1eac 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/extcfg/NCExternalConfigManager.scala
@@ -26,15 +26,15 @@ import org.apache.nlpcraft.common.module.NCModule
import org.apache.nlpcraft.common.module.NCModule.{NCModule, PROBE, SERVER}
import org.apache.nlpcraft.common.pool.NCThreadPoolManager
import org.apache.nlpcraft.common.{NCE, NCService, U}
-import resource.managed
import java.io._
import java.net.URL
import java.nio.file.Files
import java.util.concurrent.ConcurrentHashMap
-import scala.collection.JavaConverters._
import scala.concurrent.ExecutionContext
import scala.io.Source
+import scala.jdk.CollectionConverters.ConcurrentMapHasAsScala
+import scala.util.Using
/**
* External configuration manager.
@@ -117,7 +117,7 @@ object NCExternalConfigManager extends NCService {
val url = s"${Config.url}/$MD5_FILE"
try
- managed(Source.fromURL(url)) acquireAndGet { src =>
+ Using.resource(Source.fromURL(url)) { src =>
src.getLines().map(_.trim()).filter(s => s.nonEmpty &&
!s.startsWith("#")).map(f = p => {
def splitPair(s: String, sep: String): (String,
String) = {
val seq = s.split(sep).map(_.strip)
@@ -150,7 +150,7 @@ object NCExternalConfigManager extends NCService {
val v2 =
try
- managed(Files.newInputStream(f.toPath)) acquireAndGet { in
=> DigestUtils.md5Hex(in) }
+ Using.resource(Files.newInputStream(f.toPath)) { in =>
DigestUtils.md5Hex(in) }
catch {
case e: IOException => throw new NCE(s"Failed to get MD5
for: '${f.getAbsolutePath}'", e)
}
@@ -256,7 +256,7 @@ object NCExternalConfigManager extends NCService {
@throws[NCE]
def getDirContent(
typ: NCExternalConfigType, resDir: String, resFilter: String =>
Boolean, parent: Span = null
- ): Stream[NCExternalConfigHolder] =
+ ): LazyList[NCExternalConfigHolder] =
startScopedSpan("getDirContent", parent, "resDir" -> resDir) { _ =>
val resDirPath = getResourcePath(typ, resDir)
@@ -269,9 +269,9 @@ object NCExternalConfigManager extends NCService {
d.listFiles(new FileFilter { override def accept(f: File):
Boolean = f.isFile && resFilter(f.getName) })
if (files != null)
- files.toStream.map(f => NCExternalConfigHolder(typ, f.getName,
mkString(U.readFile(f))))
+ files.to(LazyList).map(f => NCExternalConfigHolder(typ,
f.getName, mkString(U.readFile(f))))
else
- Stream.empty
+ LazyList.empty
}
/**
@@ -307,8 +307,8 @@ object NCExternalConfigManager extends NCService {
val url = s"${Config.url}/${type2String(d.typ)}/${d.file.getName}"
try
- managed(new BufferedInputStream(new URL(url).openStream()))
acquireAndGet { src =>
- managed(new FileOutputStream(d.file)) acquireAndGet { dest =>
+ Using.resource(new BufferedInputStream(new URL(url).openStream()))
{ src =>
+ Using.resource(new FileOutputStream(d.file)) { dest =>
IOUtils.copy(src, dest)
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
index e072ef5..e124bd2 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/nlp/core/opennlp/NCOpenNlpTokenizer.scala
@@ -22,9 +22,10 @@ import opennlp.tools.tokenize.{Tokenizer, TokenizerME,
TokenizerModel}
import org.apache.nlpcraft.common.NCService
import org.apache.nlpcraft.common.nlp.core.{NCNlpCoreToken, NCNlpTokenizer}
import org.apache.nlpcraft.common.extcfg.NCExternalConfigManager
-import resource.managed
import org.apache.nlpcraft.common.extcfg.NCExternalConfigType.OPENNLP
+
import scala.language.{implicitConversions, postfixOps}
+import scala.util.Using
/**
* OpenNLP tokenizer implementation.
@@ -42,7 +43,7 @@ object NCOpenNlpTokenizer extends NCNlpTokenizer {
override def start(parent: Span): NCService = startScopedSpan("start",
parent) { _ =>
ackStarting()
- tokenizer = managed(NCExternalConfigManager.getStream(OPENNLP,
RESOURCE)) acquireAndGet { in =>
+ tokenizer = Using.resource(NCExternalConfigManager.getStream(OPENNLP,
RESOURCE)) { in =>
new TokenizerME(new TokenizerModel(in))
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
index a757dce..13d768a 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/opencensus/NCOpenCensusTrace.scala
@@ -52,7 +52,7 @@ trait NCOpenCensusTrace {
// Mandatory tags.
attrs.put("thread",
AttributeValue.stringAttributeValue(Thread.currentThread().getName))
- attrs.put("timestamp",
AttributeValue.longAttributeValue(System.currentTimeMillis()))
+ attrs.put("timestamp", AttributeValue.longAttributeValue(U.now()))
for ((k, v) <- tags if v != null) v match {
case s: String => attrs.put(k,
AttributeValue.stringAttributeValue(s))
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 956cbff..13bf11b 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
@@ -32,8 +32,8 @@ import java.util.concurrent.{ExecutorService,
LinkedBlockingQueue, RejectedExecu
import java.util.jar.JarFile
import java.util.regex.Pattern
import java.util.stream.Collectors
-import java.util.zip.{ZipInputStream, GZIPInputStream => GIS, GZIPOutputStream
=> GOS}
-import java.util.{Locale, Properties, Random, Timer, TimerTask, Calendar => C}
+import java.util.zip.{ZipInputStream, GZIPInputStream ⇒ GIS, GZIPOutputStream
⇒ GOS}
+import java.util.{Locale, Properties, Random, Timer, TimerTask, Calendar ⇒ C}
import com.fasterxml.jackson.annotation.JsonInclude.Include
import com.fasterxml.jackson.core.`type`.TypeReference
import com.fasterxml.jackson.databind.{DeserializationFeature, ObjectMapper}
@@ -51,17 +51,16 @@ import org.apache.nlpcraft.common.blowfish.NCBlowfishHasher
import org.apache.nlpcraft.common.version.NCVersion
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
-import resource._
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import scala.annotation.tailrec
-import scala.collection.JavaConverters._
import scala.collection.mutable
import scala.concurrent.duration._
import scala.concurrent.{Await, ExecutionContext, Future}
import scala.io.{BufferedSource, Source}
+import scala.jdk.CollectionConverters.{CollectionHasAsScala, MapHasAsScala}
import scala.language.{implicitConversions, postfixOps}
import scala.reflect.{ClassTag, classTag}
import scala.reflect.runtime.universe._
@@ -150,6 +149,11 @@ object NCUtils extends LazyLogging {
def nowUtcTs(): Timestamp = new Timestamp(Instant.now().toEpochMilli)
/**
+ * Shortcut.
+ */
+ def now(): Long = System.currentTimeMillis()
+
+ /**
* Strips ANSI escape sequences from the given string.
*
* @param s
@@ -405,7 +409,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readFile(f: File, enc: String = "UTF-8", log: Logger = logger):
List[String] =
try
- managed(Source.fromFile(f, enc)) acquireAndGet { src =>
+ Using.resource(Source.fromFile(f, enc)) { src =>
getAndLog(src.getLines().map(p => p).toList, f, log)
}
catch {
@@ -434,7 +438,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def mapStream[T](in: InputStream, enc: String, log: Logger = logger,
mapper: Iterator[String] => T): T =
try {
- managed(Source.fromInputStream(in, enc)) acquireAndGet { src =>
+ Using.resource(Source.fromInputStream(in, enc)) { src =>
mapper(src.getLines())
}
}
@@ -453,7 +457,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readTextFile(f: File, enc: String, log: Logger = logger): List[String]
=
try
- managed(Source.fromFile(f, enc)) acquireAndGet { src =>
+ Using.resource(Source.fromFile(f, enc)) { src =>
getAndLog(
readLcTrimFilter(src),
f,
@@ -465,6 +469,16 @@ object NCUtils extends LazyLogging {
}
/**
+ *
+ * @param path
+ * @return
+ */
+ def readObject(path: File): AnyRef =
+ Using.resource(new ObjectInputStream(new FileInputStream(path))) {
+ _.readObject()
+ }
+
+ /**
* Reads lines from given file converting to lower case, trimming, and
filtering
* out empty lines and comments (starting with '#').
*
@@ -475,7 +489,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readTextGzipFile(f: File, enc: String, log: Logger = logger):
List[String] =
try
- managed(Source.fromInputStream(new GIS(new FileInputStream(f)),
enc)) acquireAndGet { src =>
+ Using.resource(Source.fromInputStream(new GIS(new
FileInputStream(f)), enc)) { src =>
getAndLog(
readLcTrimFilter(src),
f,
@@ -497,7 +511,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readTextStream(in: InputStream, enc: String, log: Logger = logger):
List[String] =
try
- managed(Source.fromInputStream(in, enc)) acquireAndGet { src =>
+ Using.resource(Source.fromInputStream(in, enc)) { src =>
readLcTrimFilter(src)
}
catch {
@@ -515,7 +529,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readTextGzipResource(res: String, enc: String, log: Logger = logger):
List[String] =
try
- managed(Source.fromInputStream(new GIS(getStream(res)), enc))
acquireAndGet { src =>
+ Using.resource(Source.fromInputStream(new GIS(getStream(res)),
enc)) { src =>
readLcTrimFilter(src)
}
catch {
@@ -627,12 +641,12 @@ object NCUtils extends LazyLogging {
timer.schedule(
new TimerTask {
override def run(): Unit = {
- val now = System.currentTimeMillis()
+ val now = U.now()
try {
body(())
- logger.debug(s"Timer task executed [name=$name,
execution-time=${System.currentTimeMillis() - now}]")
+ logger.debug(s"Timer task executed [name=$name,
execution-time=${U.now() - now}]")
}
catch {
case e: Throwable => prettyError(logger, s"Error
executing daily '$name' timer:", e)
@@ -658,7 +672,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readGzipFile(f: File, enc: String, log: Logger = logger): List[String]
=
try
- managed(Source.fromInputStream(new GIS(new FileInputStream(f)),
enc)) acquireAndGet { src =>
+ Using.resource(Source.fromInputStream(new GIS(new
FileInputStream(f)), enc)) { src =>
getAndLog(src.getLines().map(p => p).toList, f, log)
}
catch {
@@ -675,7 +689,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def readGzipResource(in: InputStream, enc: String, log: Logger = logger):
List[String] =
try
- managed(Source.fromInputStream(new GIS(in), enc)) acquireAndGet {
src =>
+ Using.resource(Source.fromInputStream(new GIS(in), enc)) { src =>
src.getLines().map(p => p).toList
}
catch {
@@ -702,7 +716,7 @@ object NCUtils extends LazyLogging {
try {
val arr = new Array[Byte](f.length().toInt)
- managed(new FileInputStream(f)) acquireAndGet { in =>
+ Using.resource(new FileInputStream(f)) { in =>
in.read(arr)
}
@@ -739,7 +753,7 @@ object NCUtils extends LazyLogging {
// Do not user BOS here - it makes files corrupted.
try
- managed(new GOS(new FileOutputStream(gz))) acquireAndGet { stream
=>
+ Using.resource(new GOS(new FileOutputStream(gz))) { stream =>
stream.write(readFileBytes(f))
stream.flush()
@@ -772,10 +786,10 @@ object NCUtils extends LazyLogging {
* @param sort Whether to sort output or not.
*/
@throws[IOException]
- def mkTextFile(path: String, lines: Traversable[Any], sort: Boolean =
true) {
+ def mkTextFile(path: String, lines: Iterable[Any], sort: Boolean = true) {
val file = new File(path)
- managed(new PrintStream(file)) acquireAndGet {
+ Using.resource(new PrintStream(file)) {
ps =>
import java.util._
@@ -853,8 +867,8 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def serialize(obj: Any): Array[Byte] = {
try {
- managed(new ByteArrayOutputStream()) acquireAndGet { baos =>
- manageOutput(baos) acquireAndGet { out =>
+ Using.resource(new ByteArrayOutputStream()) { baos =>
+ Using.resource(mkOutStream(baos)) { out =>
out.writeObject(obj)
}
@@ -874,7 +888,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def serializePath(path: String, obj: Any): Unit =
try {
- manageOutput(new FileOutputStream(path)) acquireAndGet { out =>
+ Using.resource(mkOutStream(new FileOutputStream(path))) { out =>
out.writeObject(obj)
}
@@ -900,7 +914,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def deserializePath[T](path: String, log: Logger = logger): T =
try {
- val res = manageInput(new FileInputStream(path)) acquireAndGet {
in =>
+ val res = Using.resource(mkInStream(new FileInputStream(path))) {
in =>
in.readObject().asInstanceOf[T]
}
@@ -920,7 +934,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def deserialize[T](arr: Array[Byte]): T =
try
- manageInput(new ByteArrayInputStream(arr)) acquireAndGet { in =>
+ Using.resource(mkInStream(new ByteArrayInputStream(arr))) { in =>
in.readObject().asInstanceOf[T]
}
catch {
@@ -940,15 +954,15 @@ object NCUtils extends LazyLogging {
*
* @param in
*/
- private def manageInput(in: InputStream):
ManagedResource[ObjectInputStream] =
- managed(new ObjectInputStream(new BufferedInputStream(in)))
+ private def mkInStream(in: InputStream): ObjectInputStream =
+ new ObjectInputStream(new BufferedInputStream(in))
/**
*
* @param out
*/
- private def manageOutput(out: OutputStream):
ManagedResource[ObjectOutputStream] =
- managed(new ObjectOutputStream(new BufferedOutputStream(out)))
+ private def mkOutStream(out: OutputStream): ObjectOutputStream =
+ new ObjectOutputStream(new BufferedOutputStream(out))
/**
* Wrap string value.
@@ -1140,7 +1154,7 @@ object NCUtils extends LazyLogging {
(0 until n).foreach(_ => dest += src.remove(RND.nextInt(src.size)))
- dest
+ dest.toSeq
}
/**
@@ -1166,7 +1180,7 @@ object NCUtils extends LazyLogging {
val arr = new ByteArrayOutputStream(1024)
try {
- managed(new GOS(arr)) acquireAndGet { zip =>
+ Using.resource(new GOS(arr)) { zip =>
zip.write(rawStr.getBytes)
}
@@ -1262,7 +1276,7 @@ object NCUtils extends LazyLogging {
/**
* Generates (a relatively) globally unique ID good for a short-term
usage.
*/
- def genGuid(): String = idGen.encrypt(System.currentTimeMillis(),
System.nanoTime()).
+ def genGuid(): String = idGen.encrypt(U.now(), System.nanoTime()).
toUpperCase.grouped(4).filter(_.length() == 4).mkString("-")
/**
@@ -1403,7 +1417,7 @@ object NCUtils extends LazyLogging {
HttpClient.newHttpClient.send(
HttpRequest.newBuilder()
.uri(
-
URI.create("http://www.google-analytics.com/collect")
+
URI.create("http://www.google-analytics.com/collect") // HTTPs?
)
.POST(
HttpRequest.BodyPublishers.ofString(
@@ -1770,7 +1784,7 @@ object NCUtils extends LazyLogging {
mkDir(new File(outDir))
- managed(new ZipInputStream(new BufferedInputStream(new
FileInputStream(zipFile)))) acquireAndGet { in =>
+ Using.resource(new ZipInputStream(new BufferedInputStream(new
FileInputStream(zipFile)))) { in =>
var entry = in.getNextEntry
while (entry != null) {
@@ -1783,7 +1797,7 @@ object NCUtils extends LazyLogging {
if (!f.createNewFile())
throw new NCE(s"File cannot be created:
${f.getAbsolutePath}")
- managed(new BufferedOutputStream(new
FileOutputStream(f))) acquireAndGet { out =>
+ Using.resource(new BufferedOutputStream(new
FileOutputStream(f))) { out =>
IOUtils.copy(in, out)
}
}
@@ -1843,8 +1857,8 @@ object NCUtils extends LazyLogging {
* @param t Error.
*/
def toString(t: Throwable): String =
- managed(new ByteArrayOutputStream()) acquireAndGet { out =>
- managed(new PrintStream(out)) acquireAndGet { ps =>
+ Using.resource(new ByteArrayOutputStream()) { out =>
+ Using.resource(new PrintStream(out)) { ps =>
t.printStackTrace(ps)
new String(out.toByteArray, "UTF-8")
@@ -1891,11 +1905,13 @@ object NCUtils extends LazyLogging {
url.getProtocol match {
case "file" =>
- managed(new InputStreamReader(getStream(resDir)))
acquireAndGet { reader =>
- managed(new BufferedReader(reader)) acquireAndGet {
bReader =>
-
bReader.lines().collect(Collectors.toList[String]).asScala.map(p =>
s"$resDir/$p")
+ Using.resource(new InputStreamReader(getStream(resDir))) {
reader =>
+ Using.resource(new BufferedReader(reader)) { bufReader =>
+
bufReader.lines().collect(Collectors.toList[String]).asScala.map(p =>
s"$resDir/$p")
}
+ .toSeq
}
+
case "jar" =>
val jar = new
JarFile(URLDecoder.decode(url.getPath.substring(5, url.getPath.indexOf("!")),
"UTF-8"))
val entries = jar.entries
@@ -1909,7 +1925,8 @@ object NCUtils extends LazyLogging {
res += name
}
- res
+ res.toSeq
+
case _ => throw new NCE(s"Cannot list files for: $resDir")
}
}
@@ -1919,9 +1936,9 @@ object NCUtils extends LazyLogging {
*/
@throws[IOException]
def getExternalIp: String =
- managed(new URL("http://checkip.amazonaws.com").openStream())
acquireAndGet { is =>
- managed(new InputStreamReader(is)) acquireAndGet { reader =>
- managed(new BufferedReader(reader)) acquireAndGet { bufReader
=>
+ Using.resource(new URL("http://checkip.amazonaws.com").openStream()) {
is =>
+ Using.resource(new InputStreamReader(is)) { reader =>
+ Using.resource(new BufferedReader(reader)) { bufReader =>
bufReader.readLine()
}
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
index c71ee62..9821815 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/intent/compiler/NCIdlCompilerBase.scala
@@ -1265,7 +1265,7 @@ trait NCIdlCompilerBase {
case "week_of_month" => z0(() =>
Z(Calendar.getInstance().get(Calendar.WEEK_OF_MONTH), 0))
case "week_of_year" => z0(() =>
Z(Calendar.getInstance().get(Calendar.WEEK_OF_YEAR), 0))
case "quarter" => z0(() =>
Z(LocalDate.now().get(IsoFields.QUARTER_OF_YEAR), 0))
- case "now" => z0(() => Z(System.currentTimeMillis(), 0)) // Epoc
time.
+ case "now" => z0(() => Z(U.now(), 0)) // Epoc time.
case _ => throw rtUnknownFunError(fun) // Assertion.
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index 019308d..22c926d 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
@@ -54,12 +54,11 @@ import org.jline.utils.AttributedString
import org.jline.utils.InfoCmp.Capability
import org.apache.nlpcraft.model.tools.cmdline.NCCliRestSpec._
import org.apache.nlpcraft.model.tools.cmdline.NCCliCommands._
-import resource.managed
-import scala.collection.JavaConverters._
+import scala.util.Using
import scala.collection.mutable
-import scala.compat.Platform.currentTime
import scala.compat.java8.OptionConverters._
+import scala.jdk.CollectionConverters.{BufferHasAsJava, CollectionHasAsScala,
SeqHasAsJava}
import scala.util.Try
import scala.util.control.Breaks.{break, breakable}
import scala.util.control.Exception.ignoring
@@ -81,7 +80,7 @@ object NCCli extends NCCliBase {
val m = mutable.HashMap.empty[String, Seq[String]]
try
- managed(new ZipInputStream(U.getStream("cli/templates.zip")))
acquireAndGet { zis =>
+ Using.resource(new
ZipInputStream(U.getStream("cli/templates.zip"))) { zis =>
var entry = zis.getNextEntry
while (entry != null) {
@@ -338,7 +337,7 @@ object NCCli extends NCCliBase {
*
*/
private def cleanUpTempFiles(): Unit = {
- val tstamp = currentTime - 1000 * 60 * 60 * 24 * 2 // 2 days ago.
+ val tstamp = U.now() - 1000 * 60 * 60 * 24 * 2 // 2 days ago.
val files = new File(SystemUtils.getUserHome,
NLPCRAFT_LOC_DIR).listFiles()
@@ -397,7 +396,7 @@ object NCCli extends NCCliBase {
case None => ()
}
- val logTstamp = currentTime
+ val logTstamp = U.now()
// Server log redirect.
val output = new File(SystemUtils.getUserHome,
s".nlpcraft/server_log_$logTstamp.txt")
@@ -510,9 +509,9 @@ object NCCli extends NCCliBase {
var beacon: NCCliServerBeacon = null
var online = false
- val endOfWait = currentTime + timeoutMins.mins
+ val endOfWait = U.now() + timeoutMins.mins
- while (currentTime < endOfWait && !online &&
ProcessHandle.of(srvPid).isPresent) {
+ while (U.now() < endOfWait && !online &&
ProcessHandle.of(srvPid).isPresent) {
if (progressBar.completed) {
// First, load the beacon, if any.
if (beacon == null)
@@ -530,7 +529,7 @@ object NCCli extends NCCliBase {
tailer.stop()
progressBar.stop()
- if (!online && currentTime >= endOfWait) // Timed out -
attempt to kill the timed out process...
+ if (!online && U.now() >= endOfWait) // Timed out - attempt to
kill the timed out process...
ProcessHandle.of(srvPid).asScala match {
case Some(ph) =>
if (ph.destroy())
@@ -654,7 +653,7 @@ object NCCli extends NCCliBase {
case None => Seq("-ea", "-Xms1024m")
}
- val logTstamp = currentTime
+ val logTstamp = U.now()
// Server log redirect.
val output = new File(SystemUtils.getUserHome,
s".nlpcraft/probe_log_$logTstamp.txt")
@@ -769,9 +768,9 @@ object NCCli extends NCCliBase {
)
var beacon: NCCliProbeBeacon = null
- val endOfWait = currentTime + timeoutMins.mins
+ val endOfWait = U.now() + timeoutMins.mins
- while (currentTime < endOfWait && beacon == null &&
ProcessHandle.of(prbPid).isPresent) {
+ while (U.now() < endOfWait && beacon == null &&
ProcessHandle.of(prbPid).isPresent) {
if (progressBar.completed) {
// Load the beacon, if any.
if (beacon == null)
@@ -785,7 +784,7 @@ object NCCli extends NCCliBase {
tailer.stop()
progressBar.stop()
- if (currentTime >= endOfWait)
+ if (U.now() >= endOfWait)
ProcessHandle.of(prbPid).asScala match {
case Some(ph) =>
if (ph.destroy())
@@ -841,7 +840,7 @@ object NCCli extends NCCliBase {
*/
private def tailFile(path: String, lines: Int): Unit =
try
- managed(new ReversedLinesFileReader(new File(path),
StandardCharsets.UTF_8)) acquireAndGet { in =>
+ Using.resource(new ReversedLinesFileReader(new File(path),
StandardCharsets.UTF_8)) { in =>
var tail = List.empty[String]
breakable {
@@ -919,14 +918,14 @@ object NCCli extends NCCliBase {
spinner.start()
- val startMs = currentTime
+ val startMs = U.now()
try
restHealth(endpoint) match {
case 200 =>
spinner.stop()
- logln(g("OK") + " " + c(s"[${currentTime -
startMs}ms]"))
+ logln(g("OK") + " " + c(s"[${U.now() - startMs}ms]"))
case code: Int =>
spinner.stop()
@@ -961,17 +960,15 @@ object NCCli extends NCCliBase {
*/
private def loadServerBeacon(autoSignIn: Boolean = false):
Option[NCCliServerBeacon] = {
val beaconOpt = try {
- val beacon = (
- managed(
- new ObjectInputStream(
- new FileInputStream(
- new File(SystemUtils.getUserHome, SRV_BEACON_PATH)
- )
+ val beacon = Using.resource(
+ new ObjectInputStream(
+ new FileInputStream(
+ new File(SystemUtils.getUserHome, SRV_BEACON_PATH)
)
- ) acquireAndGet {
- _.readObject()
- }
- )
+ )
+ ) {
+ _.readObject()
+ }
.asInstanceOf[NCCliServerBeacon]
ProcessHandle.of(beacon.pid).asScala match {
@@ -1065,17 +1062,15 @@ object NCCli extends NCCliBase {
*/
private def loadProbeBeacon(): Option[NCCliProbeBeacon] = {
val beaconOpt = try {
- val beacon = (
- managed(
- new ObjectInputStream(
- new FileInputStream(
- new File(SystemUtils.getUserHome, PRB_BEACON_PATH)
- )
+ val beacon = Using.resource(
+ new ObjectInputStream(
+ new FileInputStream(
+ new File(SystemUtils.getUserHome, PRB_BEACON_PATH)
)
- ) acquireAndGet {
- _.readObject()
- }
- )
+ )
+ ) {
+ _.readObject()
+ }
.asInstanceOf[NCCliProbeBeacon]
ProcessHandle.of(beacon.pid).asScala match {
@@ -1267,7 +1262,7 @@ object NCCli extends NCCliBase {
for (param <- cmd.params) {
val line =
if (param.value.isDefined)
- T___ +
param.names.zip(Stream.continually(param.value.get)).map(t =>
s"${t._1}=${t._2}").mkString(", ")
+ T___ +
param.names.zip(LazyList.continually(param.value.get)).map(t =>
s"${t._1}=${t._2}").mkString(", ")
else
s"$T___${param.names.mkString(", ")}"
@@ -1293,7 +1288,7 @@ object NCCli extends NCCliBase {
}
}
- lines
+ lines.toSeq
}
def helpHelp(): Unit =
@@ -1483,7 +1478,7 @@ object NCCli extends NCCliBase {
s" ${c("guid")}: ${probe.probeGuid}",
s" ${c("tok")}: ${probe.probeToken}"
),
- DurationFormatUtils.formatDurationHMS(currentTime -
probe.startTstamp),
+ DurationFormatUtils.formatDurationHMS(U.now() -
probe.startTstamp),
Seq(
s"${probe.hostName} (${probe.hostAddr})",
s"${probe.osName} ver. ${probe.osVersion}"
@@ -1929,8 +1924,8 @@ object NCCli extends NCCliBase {
cont = repls.foldLeft(cont)((s, repl) => s.replaceAll(repl._1,
repl._2))
try
- managed(new FileWriter(outFile)) acquireAndGet { w =>
- managed(new BufferedWriter(w)) acquireAndGet { bw =>
+ Using.resource(new FileWriter(outFile)) { w =>
+ Using.resource(new BufferedWriter(w)) { bw =>
bw.write(cont)
}
}
@@ -2795,7 +2790,7 @@ object NCCli extends NCCliBase {
if (buf.nonEmpty)
lines += buf.toString()
- lines.map(_.strip)
+ lines.map(_.strip).toSeq
}
/**
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliAnsiBleach.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliAnsiBleach.scala
index a1a8bff..3a5a825 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliAnsiBleach.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCliAnsiBleach.scala
@@ -21,20 +21,20 @@ import java.io.{BufferedInputStream, BufferedReader}
import org.apache.nlpcraft.common._
import org.jline.utils.InputStreamReader
-import resource.managed
+import scala.util.Using
/**
* Pipe filter to remove ANSI escape sequences.
* Used by 'start-server' command of NLPCraft CLI.
*/
object NCCliAnsiBleach extends App {
- managed(
+ Using.resource(
new BufferedReader(
new InputStreamReader(
new BufferedInputStream(System.in)
)
)
- ) acquireAndGet { in =>
+ ) { in =>
var line = in.readLine()
while (line != null) {
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
index 0c1b5a3..af12a95 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/sqlgen/impl/NCSqlModelGeneratorImpl.scala
@@ -23,7 +23,6 @@ import java.time.format.DateTimeFormatter
import java.time.{Instant, LocalDateTime}
import java.util
import java.util.regex.{Pattern, PatternSyntaxException}
-
import com.fasterxml.jackson.annotation.JsonInclude.Include
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
@@ -34,11 +33,11 @@ import org.apache.nlpcraft.common.version.NCVersion
import org.apache.nlpcraft.model.impl.json.{NCElementJson, NCMacroJson,
NCModelJson}
import org.apache.nlpcraft.model.tools.sqlgen.NCSqlJoinType
import org.apache.nlpcraft.common._
-import resource.managed
-import scala.collection.JavaConverters._
+import scala.util.Using
import scala.collection.immutable.HashMap
import scala.collection.{Seq, mutable}
+import scala.jdk.CollectionConverters.{IterableHasAsJava, SeqHasAsJava}
import scala.util.Try
/**
@@ -57,7 +56,7 @@ object NCSqlModelGeneratorImpl {
private lazy val nameWs = U.normalize(elmNameLc.replaceAll("_"," "),"
")
- lazy val synonym =
+ lazy val synonym: String =
if (elmNameLc == nameWs)
substituteMacros(elmNameLc)
else
@@ -72,10 +71,9 @@ object NCSqlModelGeneratorImpl {
isNullable: String,
isPk: Boolean
) extends NamedEntity {
- val nameLc = name.toLowerCase()
- val elmNameLc = elmName.toLowerCase()
-
- lazy val isNull = isNullable == "YES"
+ val nameLc: String = name.toLowerCase()
+ val elmNameLc: String = elmName.toLowerCase()
+ lazy val isNull: Boolean = isNullable == "YES"
}
case class Table(
@@ -84,8 +82,8 @@ object NCSqlModelGeneratorImpl {
joins: Seq[Join],
columns: mutable.ArrayBuffer[Column] =
mutable.ArrayBuffer.empty[Column]
) extends NamedEntity {
- val nameLc = name.toLowerCase()
- val elmNameLc = elmName.toLowerCase()
+ val nameLc: String = name.toLowerCase()
+ val elmNameLc: String = elmName.toLowerCase()
}
case class ParametersHolder(
@@ -405,7 +403,7 @@ object NCSqlModelGeneratorImpl {
}
try {
- managed(new FileOutputStream(file)) acquireAndGet { stream =>
+ Using.resource(new FileOutputStream(file)) { stream =>
mapper.writerWithDefaultPrettyPrinter().writeValue(stream, mdl)
stream.flush()
@@ -481,12 +479,12 @@ object NCSqlModelGeneratorImpl {
val pks = mutable.HashSet.empty[String]
- managed { getConnection } acquireAndGet { conn =>
+ Using.resource { getConnection } { conn =>
val md = conn.getMetaData
- managed {
+ Using.resource {
md.getColumns(null, params.schema, null, null)
- } acquireAndGet { rs =>
+ } { rs =>
while (rs.next()) {
val schNameOrigin = rs.getString("TABLE_SCHEM")
val tblNameOrigin = rs.getString("TABLE_NAME")
@@ -512,7 +510,7 @@ object NCSqlModelGeneratorImpl {
case None if isAllowed(tblName) =>
pks.clear()
- managed { md.getPrimaryKeys(null,
schNameOrigin, tblNameOrigin) } acquireAndGet { rs =>
+ Using.resource { md.getPrimaryKeys(null,
schNameOrigin, tblNameOrigin) } { rs =>
while (rs.next())
pks +=
rs.getString("COLUMN_NAME").toLowerCase
}
@@ -529,7 +527,7 @@ object NCSqlModelGeneratorImpl {
val fks = mutable.ArrayBuffer.empty[Fk]
- managed { md.getImportedKeys(null,
schNameOrigin, tblNameOrigin) } acquireAndGet { rs =>
+ Using.resource { md.getImportedKeys(null,
schNameOrigin, tblNameOrigin) } { rs =>
while (rs.next())
fks += Fk(
name = rs.getString("FK_NAME"),
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/impl/NCTestAutoModelValidatorImpl.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/impl/NCTestAutoModelValidatorImpl.scala
index a4ee3dc..6f3175e 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/impl/NCTestAutoModelValidatorImpl.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/test/impl/NCTestAutoModelValidatorImpl.scala
@@ -82,11 +82,11 @@ private [test] object NCTestAutoModelValidatorImpl extends
LazyLogging {
cli.open(mdlId)
txts.map (txt => {
- var t = System.currentTimeMillis()
+ var t = U.now()
val res = cli.ask(txt)
- t = System.currentTimeMillis() - t
+ t = U.now() - t
if (res.isFailed)
Result(mdlId, intentId, txt, pass = false,
Some(res.getResultError.get()), t)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index aa2f2cc..bc19a96 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -50,14 +50,13 @@ import
org.apache.nlpcraft.probe.mgrs.nlp.enrichers.stopword.NCStopWordEnricher
import
org.apache.nlpcraft.probe.mgrs.nlp.enrichers.suspicious.NCSuspiciousNounsEnricher
import org.apache.nlpcraft.probe.mgrs.nlp.validate.NCValidateManager
import org.apache.nlpcraft.probe.mgrs.sentence.NCSentenceManager
-import resource.managed
import java.io._
import java.util.concurrent.CompletableFuture
-import scala.collection.JavaConverters._
import scala.collection.mutable
-import scala.compat.Platform.currentTime
+import scala.jdk.CollectionConverters.CollectionHasAsScala
import scala.util.control.Exception.{catching, ignoring}
+import scala.util.Using
/**
* Probe loader.
@@ -65,7 +64,7 @@ import scala.util.control.Exception.{catching, ignoring}
private [probe] object NCProbeBoot extends LazyLogging with NCOpenCensusTrace {
private final val BEACON_PATH = ".nlpcraft/probe_beacon"
- private final val execStart = System.currentTimeMillis()
+ private final val execStart = U.now()
private val startedMgrs = mutable.Buffer.empty[NCService]
@@ -263,7 +262,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
*/
def save(): Unit = {
try {
- managed(new ObjectOutputStream(new FileOutputStream(path)))
acquireAndGet { stream =>
+ Using.resource(new ObjectOutputStream(new
FileOutputStream(path))) { stream =>
val ver = NCVersion.getCurrent
stream.writeObject(NCCliProbeBeacon(
@@ -277,7 +276,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
jarsFolder = cfg.jarsFolder.orNull,
models = cfg.models,
beaconPath = path.getAbsolutePath,
- startMs = currentTime
+ startMs = U.now()
))
stream.flush()
@@ -293,7 +292,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
if (path.exists())
catching(classOf[IOException]) either {
- managed(new ObjectInputStream(new FileInputStream(path)))
acquireAndGet { _.readObject() }
+ U.readObject(path)
} match {
case Left(e) =>
logger.trace(s"Failed to read existing probe beacon:
${path.getAbsolutePath}", e)
@@ -471,7 +470,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
* Asks server start.
*/
private def ackStart() {
- val dur = s"[${U.format((currentTime - execStart) / 1000.0, 2)} sec]"
+ val dur = s"[${U.format((U.now() - execStart) / 1000.0, 2)} sec]"
val tbl = NCAsciiTable()
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
index f24b7b3..b23e797 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/conversation/NCConversationManager.scala
@@ -46,7 +46,7 @@ object NCConversationManager extends NCService {
while (!t.isInterrupted)
try
convs.synchronized {
- val sleepTime = clearForTimeout() -
System.currentTimeMillis()
+ val sleepTime = clearForTimeout() - U.now()
if (sleepTime > 0)
convs.wait(sleepTime)
@@ -85,7 +85,7 @@ object NCConversationManager extends NCService {
startScopedSpan("clearForTimeout") { _ =>
require(Thread.holdsLock(convs))
- val now = System.currentTimeMillis()
+ val now = U.now()
val delKeys = mutable.HashSet.empty[Key]
for ((key, value) <- convs) {
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
index 3b4781c..558c947 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/deploy/NCDeployManager.scala
@@ -38,7 +38,7 @@ import org.apache.nlpcraft.model.intent.solver.NCIntentSolver
import org.apache.nlpcraft.model.intent._
import org.apache.nlpcraft.probe.mgrs.NCProbeSynonymChunkKind.{IDL, REGEX,
TEXT}
import org.apache.nlpcraft.probe.mgrs.{NCProbeModel, NCProbeSynonym,
NCProbeSynonymChunk, NCProbeSynonymsWrapper}
-import resource.managed
+import scala.util.Using
import scala.collection.JavaConverters._
import scala.compat.java8.OptionConverters._
@@ -612,7 +612,7 @@ object NCDeployManager extends NCService with
DecorateAsScala {
val classes = mutable.ArrayBuffer.empty[Class[_ <: NCModel]]
- managed(new JarInputStream(new BufferedInputStream(new
FileInputStream(jarFile)))) acquireAndGet { in =>
+ Using.resource(new JarInputStream(new BufferedInputStream(new
FileInputStream(jarFile)))) { in =>
var entry = in.getNextJarEntry
while (entry != null) {
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
index e6df4a0..46b061f 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/dialogflow/NCDialogFlowManager.scala
@@ -57,7 +57,7 @@ object NCDialogFlowManager extends NCService {
while (!t.isInterrupted)
try
flow.synchronized {
- val sleepTime = clearForTimeout() -
System.currentTimeMillis()
+ val sleepTime = clearForTimeout() - U.now()
if (sleepTime > 0)
flow.wait(sleepTime)
@@ -160,7 +160,7 @@ object NCDialogFlowManager extends NCService {
startScopedSpan("clearForTimeout") { _ =>
require(Thread.holdsLock(flow))
- val now = System.currentTimeMillis()
+ val now = U.now()
val delKeys = mutable.HashSet.empty[Key]
val timeouts = mutable.HashMap.empty[String, Long]
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
index 1cb3cc2..e3530b3 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/mgrs/nlp/NCProbeEnrichmentManager.scala
@@ -165,7 +165,7 @@ object NCProbeEnrichmentManager extends NCService with
NCOpenCensusModelStats {
"mdlId" -> mdlId
)
- startMs.set(System.currentTimeMillis())
+ startMs.set(U.now())
try
ask0(
@@ -228,7 +228,7 @@ object NCProbeEnrichmentManager extends NCService with
NCOpenCensusModelStats {
): Unit = {
require(nlpSens.nonEmpty)
- var start = System.currentTimeMillis()
+ var start = U.now()
val tbl = NCAsciiTable()
@@ -344,7 +344,7 @@ object NCProbeEnrichmentManager extends NCService with
NCOpenCensusModelStats {
NCConnectionManager.send(msg, span)
- val durMs = System.currentTimeMillis() - startMs.get
+ val durMs = U.now() - startMs.get
if (errMsg.isEmpty)
logger.info(s"" +
@@ -621,7 +621,7 @@ object NCProbeEnrichmentManager extends NCService with
NCOpenCensusModelStats {
}
}
- recordStats(M_SYS_LATENCY_MS -> (System.currentTimeMillis() - start))
+ recordStats(M_SYS_LATENCY_MS -> (U.now() - start))
/**
*
@@ -658,7 +658,7 @@ object NCProbeEnrichmentManager extends NCService with
NCOpenCensusModelStats {
var res = mdl.model.onContext(ctx)
- start = System.currentTimeMillis()
+ start = U.now()
if (res == null && mdl.solver != null)
startScopedSpan("intentMatching", span) { _ =>
@@ -668,7 +668,7 @@ object NCProbeEnrichmentManager extends NCService with
NCOpenCensusModelStats {
if (res == null && mdl.solver == null)
throw new IllegalStateException("No intents and no results
from model callbacks.")
- recordStats(M_USER_LATENCY_MS -> (System.currentTimeMillis() -
start))
+ recordStats(M_USER_LATENCY_MS -> (U.now() - start))
if (res == null)
throw new IllegalStateException("Result cannot be null.")
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
index b9dfafd..d235b5d 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/NCServer.scala
@@ -51,12 +51,11 @@ import org.apache.nlpcraft.server.sql.NCSqlManager
import org.apache.nlpcraft.server.sugsyn.NCSuggestSynonymManager
import org.apache.nlpcraft.server.tx.NCTxManager
import org.apache.nlpcraft.server.user.NCUserManager
-import resource.managed
+import scala.util.Using
import java.io._
import java.util.concurrent.CountDownLatch
import scala.collection.mutable
-import scala.compat.Platform.currentTime
import scala.util.control.Exception.{catching, ignoring}
/**
@@ -147,7 +146,7 @@ object NCServer extends App with NCIgniteInstance with
LazyLogging with NCOpenCe
* Acks server start.
*/
protected def ackStart() {
- val dur = s"[${U.format((currentTime - executionStart) / 1000.0, 2)}s]"
+ val dur = s"[${U.format((U.now() - executionStart) / 1000.0, 2)}s]"
val tbl = NCAsciiTable()
@@ -269,7 +268,7 @@ object NCServer extends App with NCIgniteInstance with
LazyLogging with NCOpenCe
}
try {
- managed(new ObjectOutputStream(new FileOutputStream(path)))
acquireAndGet { stream =>
+ Using.resource(new ObjectOutputStream(new
FileOutputStream(path))) { stream =>
val ver = NCVersion.getCurrent
stream.writeObject(NCCliServerBeacon(
@@ -294,7 +293,7 @@ object NCServer extends App with NCIgniteInstance with
LazyLogging with NCOpenCe
acsToksScanMins = Config.acsToksScanMins,
acsToksExpireMins = Config.acsToksExpireMins,
beaconPath = path.getAbsolutePath,
- startMs = currentTime
+ startMs = U.now()
))
stream.flush()
@@ -341,9 +340,7 @@ object NCServer extends App with NCIgniteInstance with
LazyLogging with NCOpenCe
if (path.exists())
catching(classOf[IOException]) either {
- managed(new ObjectInputStream(new FileInputStream(path)))
acquireAndGet {
- _.readObject()
- }
+ U.readObject(path)
} match {
case Left(e) =>
logger.trace(s"Failed to read existing server beacon:
${path.getAbsolutePath}", e)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
index ea47d65..5e2743d 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpNerEnricher.scala
@@ -29,7 +29,7 @@ import org.apache.nlpcraft.common.{NCService, U}
import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
import org.apache.nlpcraft.server.ignite.NCIgniteInstance
import org.apache.nlpcraft.server.nlp.core.NCNlpNerEnricher
-import resource.managed
+import scala.util.Using
import scala.concurrent.ExecutionContext
import scala.util.control.Exception.catching
@@ -57,7 +57,7 @@ object NCOpenNlpNerEnricher extends NCService with
NCNlpNerEnricher with NCIgnit
def add(typ: String, res: String): Unit = {
val f =
- managed(NCExternalConfigManager.getStream(OPENNLP, res, span))
acquireAndGet { in =>
+ Using.resource(NCExternalConfigManager.getStream(OPENNLP, res,
span)) { in =>
new NameFinderME(new TokenNameFinderModel(in))
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
index 30d7f28..3162321 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/nlp/core/opennlp/NCOpenNlpParser.scala
@@ -30,7 +30,7 @@ import org.apache.nlpcraft.common.{NCService, U}
import org.apache.nlpcraft.server.ignite.NCIgniteHelpers._
import org.apache.nlpcraft.server.ignite.NCIgniteInstance
import org.apache.nlpcraft.server.nlp.core.{NCNlpParser, NCNlpWord}
-import resource.managed
+import scala.util.Using
import scala.concurrent.ExecutionContext
import scala.util.control.Exception.catching
@@ -58,13 +58,13 @@ object NCOpenNlpParser extends NCService with NCNlpParser
with NCIgniteInstance
U.executeParallel(
() => {
tagger =
- managed(NCExternalConfigManager.getStream(OPENNLP,
"en-pos-maxent.bin", span)) acquireAndGet { in =>
+ Using.resource(NCExternalConfigManager.getStream(OPENNLP,
"en-pos-maxent.bin", span)) { in =>
new POSTaggerME(new POSModel(in))
}
},
() => {
lemmatizer =
- managed(NCExternalConfigManager.getStream(OPENNLP,
"en-lemmatizer.dict", span)) acquireAndGet { in =>
+ Using.resource(NCExternalConfigManager.getStream(OPENNLP,
"en-lemmatizer.dict", span)) { in =>
new DictionaryLemmatizer(in)
}
}
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
index 7075049..abb34f9 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/rest/NCBasicRestApi.scala
@@ -1910,12 +1910,12 @@ class NCBasicRestApi extends NCRestApi with LazyLogging
with NCOpenCensusTrace w
* @return
*/
private def withMetric(m: Measure, f: () => Route): Route = {
- val start = System.currentTimeMillis()
+ val start = U.now()
try
f()
finally {
- recordStats(m -> (System.currentTimeMillis() - start))
+ recordStats(m -> (U.now() - start))
}
}
diff --git a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
index 9076472..43f31aa 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sql/NCSql.scala
@@ -27,7 +27,6 @@ import org.apache.ignite.transactions.Transaction
import org.apache.nlpcraft.common._
import org.apache.nlpcraft.common.config.NCConfigurable
import org.apache.nlpcraft.server.tx.NCTxManager
-import resource._
import scala.collection._
import scala.util.control.Exception._
@@ -467,7 +466,7 @@ object NCSql extends LazyLogging {
var r = List.empty[R]
catching(psqlErrorCodes) {
- for (ps <- managed { prepare(sql, params) } ; rs <- managed {
ps.executeQuery() } )
+ for (ps <- Using.resource { prepare(sql, params) } ; rs <-
Using.resource { ps.executeQuery() } )
while (rs.next)
r :+= p(rs)
@@ -520,7 +519,7 @@ object NCSql extends LazyLogging {
@throws[NCE]
def insert(sql: String, params: Any*): Unit =
catching(psqlErrorCodes) {
- managed { prepare(sql, params) } acquireAndGet { _.executeUpdate }
+ Using.resource { prepare(sql, params) } { _.executeUpdate }
}
/**
@@ -531,7 +530,7 @@ object NCSql extends LazyLogging {
*/
private def exec(sql: String, params: Any*): Int =
catching[Int](psqlErrorCodes) {
- managed { prepare(sql, params) } acquireAndGet { _.executeUpdate }
+ Using.resource { prepare(sql, params) } { _.executeUpdate }
}
/**
@@ -579,7 +578,7 @@ object NCSql extends LazyLogging {
@throws[NCE]
def select[R](sql: String, callback: R => Unit, params: Any*) (implicit p:
RsParser[R]): Unit =
catching(psqlErrorCodes) {
- for (ps <- managed { prepare(sql, params) } ; rs <- managed {
ps.executeQuery() } )
+ for (ps <- Using.resource { prepare(sql, params) } ; rs <-
Using.resource { ps.executeQuery() } )
while (rs.next)
callback(p(rs))
}
@@ -614,7 +613,7 @@ object NCSql extends LazyLogging {
val tbls = mutable.ArrayBuffer.empty[String]
catching(psqlErrorCodes) {
- for (rs <- managed { connection().getMetaData.getTables(null,
null, null, null)})
+ for (rs <- Using.resource {
connection().getMetaData.getTables(null, null, null, null)})
while (rs.next) {
val tblSchema = rs.getString(2)
diff --git
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
index 84ab37f..ea88988 100644
---
a/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
+++
b/nlpcraft/src/main/scala/org/apache/nlpcraft/server/sugsyn/NCSuggestSynonymManager.scala
@@ -139,7 +139,7 @@ object NCSuggestSynonymManager extends NCService {
*/
def suggest(mdlId: String, minScoreOpt: Option[Double], parent: Span =
null): Future[NCSuggestSynonymResult] =
startScopedSpan("inspect", parent, "mdlId" -> mdlId) { _ =>
- val now = System.currentTimeMillis()
+ val now = U.now()
val promise = Promise[NCSuggestSynonymResult]()
@@ -167,7 +167,7 @@ object NCSuggestSynonymManager extends NCService {
NCSuggestSynonymResult(
modelId = mdlId,
minScore = minScore,
- durationMs = System.currentTimeMillis() -
now,
+ durationMs = U.now() - now,
timestamp = now,
error = err,
suggestions = Seq.empty.asJava,
@@ -416,7 +416,7 @@ object NCSuggestSynonymManager extends NCService {
NCSuggestSynonymResult(
modelId = mdlId,
minScore = minScore,
- durationMs =
System.currentTimeMillis() - now,
+ durationMs = U.now() - now,
timestamp = now,
error = null,
suggestions =
Seq(resJ.asInstanceOf[AnyRef]).asJava,
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
index 8f848c2..05beb1b 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/common/ascii/NCAsciiTableSpec.scala
@@ -75,7 +75,7 @@ class NCAsciiTableSpec {
def testWithVeryBigTable() {
val NUM = 100
- val start = System.currentTimeMillis()
+ val start = U.now()
val t = NCAsciiTable()
@@ -88,7 +88,7 @@ class NCAsciiTableSpec {
t.render()
- val dur = System.currentTimeMillis() - start
+ val dur = U.now() - start
println(s"Rendered in ${dur}ms.")
}
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
index ba61888..19bdf9c 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/common/crypto/NCCipherSpec.scala
@@ -67,11 +67,11 @@ class NCCipherSpec {
val key = NCCipher.makeTokenKey(U.genGuid())
- val now = System.currentTimeMillis()
+ val now = U.now()
val sec = NCCipher.encrypt(Base64.getEncoder.encodeToString(bytes),
key)
- val dur = System.currentTimeMillis() - now
+ val dur = U.now() - now
println(s"Input length: ${str.length}")
println(s"Output length: ${sec.length}")
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
index 8a24721..b0773f2 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/common/makro/NCMacroParserSpec.scala
@@ -72,14 +72,14 @@ class NCMacroParserSpec {
// @Test
def testPerformance() {
- val start = currentTime
+ val start = U.now()
val N = 50000
for (_ <- 0 to N)
parser.expand("a {{{<C>}}} {c|d|e|f|g|h|j|k|l|n|m|p|r}")
- val duration = currentTime - start
+ val duration = U.now() - start
println(s"${N * 1000 / duration} expansions/sec.")
}
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/idl/compiler/functions/NCIdlFunctionsDate.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/idl/compiler/functions/NCIdlFunctionsDate.scala
index d619c51..a18dbec 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/idl/compiler/functions/NCIdlFunctionsDate.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/model/intent/idl/compiler/functions/NCIdlFunctionsDate.scala
@@ -46,7 +46,7 @@ class NCIdlFunctionsDate extends NCIdlFunctions {
s"week_of_month() - ${c.get(C.WEEK_OF_MONTH)} == 0",
s"week_of_year() - ${c.get(C.WEEK_OF_YEAR)} == 0",
s"quarter() - ${d.get(IsoFields.QUARTER_OF_YEAR)} == 0",
- s"now() - ${System.currentTimeMillis()} < 5000"
+ s"now() - ${U.now()} < 5000"
)
}
diff --git
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
index b284ec0..4d352b3 100644
---
a/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
+++
b/nlpcraft/src/test/scala/org/apache/nlpcraft/probe/mgrs/nlp/enrichers/NCEnrichersTestBeans.scala
@@ -18,7 +18,7 @@
package org.apache.nlpcraft.probe.mgrs.nlp.enrichers
import org.apache.nlpcraft.model.NCToken
-import resource.managed
+import scala.util.Using
import java.io.{ByteArrayInputStream, ByteArrayOutputStream,
ObjectInputStream, ObjectOutputStream}
import java.nio.charset.StandardCharsets.UTF_8
@@ -368,8 +368,8 @@ case class NCTestSentence(tokens: Seq[NCTestToken]) {
object NCTestSentence {
def serialize(sens: Iterable[NCTestSentence]): String =
- managed(new ByteArrayOutputStream()) acquireAndGet { bos =>
- managed(new ObjectOutputStream(bos)) acquireAndGet { os =>
+ Using.resource(new ByteArrayOutputStream()) { bos =>
+ Using.resource(new ObjectOutputStream(bos)) { os =>
os.writeObject(sens)
os.flush()
@@ -379,9 +379,9 @@ object NCTestSentence {
}
def deserialize(s: String): Iterable[NCTestSentence] =
- managed(new ObjectInputStream(
+ Using.resource(new ObjectInputStream(
new
ByteArrayInputStream(Base64.getDecoder.decode(s.getBytes(UTF_8))))
- ) acquireAndGet { is =>
+ ) { is =>
is.readObject.asInstanceOf[Iterable[NCTestSentence]]
}
}
\ No newline at end of file