You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nlpcraft.apache.org by ar...@apache.org on 2021/05/18 21:26:58 UTC
[incubator-nlpcraft] branch scala-2.13 updated: WIP.
This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch scala-2.13
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/scala-2.13 by this push:
new 22eec41 WIP.
22eec41 is described below
commit 22eec414fd3aaa1615ee5b057353d7132b92760b
Author: unknown <ar...@datalingvo.com>
AuthorDate: Tue May 18 14:26:45 2021 -0700
WIP.
---
.../nlpcraft/examples/sql/db/SqlAccess.scala | 8 +--
nlpcraft/pom.xml | 10 +--
.../nlpcraft/common/ascii/NCAsciiTable.scala | 4 +-
.../common/extcfg/NCExternalConfigManager.scala | 10 +--
.../nlp/core/opennlp/NCOpenNlpTokenizer.scala | 4 +-
.../org/apache/nlpcraft/common/util/NCUtils.scala | 74 +++++++++++-----------
.../nlpcraft/model/tools/cmdline/NCCli.scala | 5 +-
.../model/tools/cmdline/NCCliAnsiBleach.scala | 6 +-
.../sqlgen/impl/NCSqlModelGeneratorImpl.scala | 22 +++----
.../org/apache/nlpcraft/probe/NCProbeBoot.scala | 6 +-
.../probe/mgrs/deploy/NCDeployManager.scala | 1 -
.../org/apache/nlpcraft/server/NCServer.scala | 6 +-
.../nlp/core/opennlp/NCOpenNlpNerEnricher.scala | 4 +-
.../server/nlp/core/opennlp/NCOpenNlpParser.scala | 6 +-
.../mgrs/nlp/enrichers/NCEnrichersTestBeans.scala | 10 +--
pom.xml | 37 ++++++-----
16 files changed, 102 insertions(+), 111 deletions(-)
diff --git a/nlpcraft-examples/sql/src/main/java/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala b/nlpcraft-examples/sql/src/main/java/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala
index 8ee31d1..d95d84b 100644
--- a/nlpcraft-examples/sql/src/main/java/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala
+++ b/nlpcraft-examples/sql/src/main/java/org/apache/nlpcraft/examples/sql/db/SqlAccess.scala
@@ -18,13 +18,13 @@
package org.apache.nlpcraft.examples.sql.db
import java.sql.{Connection, PreparedStatement, SQLException}
-
import com.github.vertical_blank.sqlformatter.SqlFormatter
import com.typesafe.scalalogging.LazyLogging
import org.apache.nlpcraft.common.ascii.NCAsciiTable
import org.h2.jdbc.JdbcSQLException
import org.h2.jdbcx.JdbcDataSource
-import resource.managed
+
+import scala.util.Using
/**
* Ad-hoc querying for H2 Database. This is a simple, single thread implementation.
@@ -71,10 +71,10 @@ object SqlAccess extends LazyLogging {
}
try {
- managed { getPs } acquireAndGet { ps ⇒
+ Using.resource { getPs } { ps ⇒
qry.parameters.zipWithIndex.foreach { case (p, idx) ⇒ ps.setObject(idx + 1, p) }
- managed { ps.executeQuery() } acquireAndGet { rs ⇒
+ Using.resource { ps.executeQuery() } { rs ⇒
val md = rs.getMetaData
val cnt = md.getColumnCount
diff --git a/nlpcraft/pom.xml b/nlpcraft/pom.xml
index 9a198c1..2ea8dfc 100644
--- a/nlpcraft/pom.xml
+++ b/nlpcraft/pom.xml
@@ -130,10 +130,6 @@
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
- <groupId>com.jsuereth</groupId>
- <artifactId>scala-arm_${scala.base}</artifactId>
- </dependency>
- <dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-langdetect</artifactId>
<!-- Ignite contains 13 version but it contains 12. -->
@@ -190,15 +186,15 @@
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-http_2.12</artifactId>
+ <artifactId>akka-http_2.13</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-stream_2.12</artifactId>
+ <artifactId>akka-stream_2.13</artifactId>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-http-spray-json_2.12</artifactId>
+ <artifactId>akka-http-spray-json_2.13</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
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 3b828ca..ed031d1 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,13 @@
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
/**
* `ASCII`-based table with minimal styling support.
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 9a964cc..c12bca4 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,7 +26,6 @@ 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
@@ -35,6 +34,7 @@ import java.util.concurrent.ConcurrentHashMap
import scala.collection.JavaConverters._
import scala.concurrent.ExecutionContext
import scala.io.Source
+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)
}
@@ -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 7efbf1e..62933bd 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,7 +22,7 @@ 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 scala.util.Using
import org.apache.nlpcraft.common.extcfg.NCExternalConfigType.OPENNLP
import scala.language.{implicitConversions, postfixOps}
@@ -42,7 +42,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/util/NCUtils.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/common/util/NCUtils.scala
index 4e2e7bd..065b4f4 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
@@ -50,17 +50,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._
import scala.language.{implicitConversions, postfixOps}
import scala.reflect.{ClassTag, classTag}
import scala.reflect.runtime.universe._
@@ -393,7 +392,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 {
@@ -422,7 +421,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())
}
}
@@ -441,7 +440,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,
@@ -463,7 +462,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,
@@ -485,7 +484,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 {
@@ -503,7 +502,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 {
@@ -646,7 +645,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 {
@@ -663,7 +662,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 {
@@ -690,7 +689,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)
}
@@ -727,7 +726,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()
@@ -760,10 +759,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._
@@ -841,8 +840,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(objOutput(baos)) { out ⇒
out.writeObject(obj)
}
@@ -862,7 +861,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def serializePath(path: String, obj: Any): Unit =
try {
- manageOutput(new FileOutputStream(path)) acquireAndGet { out ⇒
+ Using.resource(objOutput(new FileOutputStream(path))) { out ⇒
out.writeObject(obj)
}
@@ -888,7 +887,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(objInput(new FileInputStream(path))) { in ⇒
in.readObject().asInstanceOf[T]
}
@@ -908,7 +907,7 @@ object NCUtils extends LazyLogging {
@throws[NCE]
def deserialize[T](arr: Array[Byte]): T =
try
- manageInput(new ByteArrayInputStream(arr)) acquireAndGet { in ⇒
+ Using.resource(objInput(new ByteArrayInputStream(arr))) { in ⇒
in.readObject().asInstanceOf[T]
}
catch {
@@ -928,15 +927,15 @@ object NCUtils extends LazyLogging {
*
* @param in
*/
- private def manageInput(in: InputStream): ManagedResource[ObjectInputStream] =
- managed(new ObjectInputStream(new BufferedInputStream(in)))
+ private def objInput(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 objOutput(out: OutputStream): ObjectOutputStream =
+ new ObjectOutputStream(new BufferedOutputStream(out))
/**
* Wrap string value.
@@ -1128,7 +1127,7 @@ object NCUtils extends LazyLogging {
(0 until n).foreach(_ ⇒ dest += src.remove(RND.nextInt(src.size)))
- dest
+ dest.toSeq
}
/**
@@ -1154,7 +1153,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)
}
@@ -1685,7 +1684,7 @@ object NCUtils extends LazyLogging {
*/
@throws[Exception]
def jsonToScalaMap(json: String): Map[String, Object] =
- GSON.fromJson(json, classOf[java.util.HashMap[String, Object]]).asScala.toMap
+ GSON.fromJson(json, classOf[java.util.HashMap[String, Object]]).toMap
/**
* Shortcut to convert given JSON to Java map with default mapping.
@@ -1758,7 +1757,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) {
@@ -1771,7 +1770,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)
}
}
@@ -1831,8 +1830,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")
@@ -1879,11 +1878,13 @@ object NCUtils extends LazyLogging {
url.getProtocol match {
case "file" ⇒
- managed(new InputStreamReader(getStream(resDir))) acquireAndGet { reader ⇒
- managed(new BufferedReader(reader)) acquireAndGet { bReader ⇒
+ Using.resource(new InputStreamReader(getStream(resDir))) { reader ⇒
+ Using.resource(new BufferedReader(reader)) { bReader ⇒
bReader.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
@@ -1897,7 +1898,8 @@ object NCUtils extends LazyLogging {
res += name
}
- res
+ res.toSeq
+
case _ ⇒ throw new NCE(s"Cannot list files for: $resDir")
}
}
@@ -1907,9 +1909,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/tools/cmdline/NCCli.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/model/tools/cmdline/NCCli.scala
index 5328005..b6d0fe5 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,13 +54,12 @@ 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.collection.mutable
import scala.compat.Platform.currentTime
import scala.compat.java8.OptionConverters._
-import scala.util.Try
+import scala.util.{Try, Using}
import scala.util.control.Breaks.{break, breakable}
import scala.util.control.Exception.ignoring
@@ -79,7 +78,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) {
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 ab44c05..4e69232 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 e82d564..fa08fde 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,12 +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.collection.immutable.HashMap
import scala.collection.{Seq, mutable}
-import scala.util.Try
+import scala.util.{Try, Using}
/**
* Scala-based SQL model engine.
@@ -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")
@@ -511,8 +509,8 @@ object NCSqlModelGeneratorImpl {
case Some(t) ⇒ t
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/probe/NCProbeBoot.scala b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
index a0f7820..236b5aa 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -50,13 +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.util.Using
import scala.util.control.Exception.{catching, ignoring}
/**
@@ -261,7 +261,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(
@@ -291,7 +291,7 @@ private [probe] object NCProbeBoot extends LazyLogging with NCOpenCensusTrace {
if (path.exists())
catching(classOf[IOException]) either {
- managed(new ObjectInputStream(new FileInputStream(path))) acquireAndGet { _.readObject() }
+ Using.resource(new ObjectInputStream(new FileInputStream(path))) { _.readObject() }
} match {
case Left(e) ⇒
logger.trace(s"Failed to read existing probe beacon: ${path.getAbsolutePath}", e)
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 d56bbdc..c1f64e9 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,6 @@ 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.collection.JavaConverters._
import scala.compat.java8.OptionConverters._
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 1015372..0223b72 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,12 @@ 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 java.io._
import java.util.concurrent.CountDownLatch
import scala.collection.mutable
import scala.compat.Platform.currentTime
+import scala.util.Using
import scala.util.control.Exception.{catching, ignoring}
/**
@@ -267,7 +267,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(
@@ -339,7 +339,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 {
+ Using.resource(new ObjectInputStream(new FileInputStream(path))) {
_.readObject()
}
} match {
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 a78baa3..a479c4b 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,9 +29,9 @@ 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.concurrent.ExecutionContext
+import scala.util.Using
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 c080ca3..0306bad 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,9 +30,9 @@ 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.concurrent.ExecutionContext
+import scala.util.Using
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/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 0a88cfb..b668289 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,6 @@
package org.apache.nlpcraft.probe.mgrs.nlp.enrichers
import org.apache.nlpcraft.model.NCToken
-import resource.managed
import java.io.{ByteArrayInputStream, ByteArrayOutputStream, ObjectInputStream, ObjectOutputStream}
import java.nio.charset.StandardCharsets.UTF_8
@@ -26,6 +25,7 @@ import java.util
import java.util.{Base64, Optional}
import scala.collection.JavaConverters._
import scala.compat.java8.OptionConverters._
+import scala.util.Using
/**
* Tests infrastructure beans.
@@ -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
diff --git a/pom.xml b/pom.xml
index b85025e..7e7e1ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,7 +72,7 @@
<properties>
<!-- Major Scala version. -->
- <scala.base>2.12</scala.base>
+ <scala.base>2.13</scala.base>
<java.ver>11</java.ver>
<maven.build.timestamp.format>yyyy-MM-dd-HH-mm</maven.build.timestamp.format>
@@ -83,7 +83,7 @@
<gridgain.agent.ver>2.8.1.2</gridgain.agent.ver>
<scala.plugin.ver>4.3.1</scala.plugin.ver>
<log4j.ver>2.12.0</log4j.ver>
- <scala.ver>${scala.base}.11</scala.ver>
+ <scala.ver>${scala.base}.6</scala.ver>
<scala.config.ver>1.3.4</scala.config.ver>
<commons.codec.ver>1.14</commons.codec.ver>
<commons.io.ver>2.7</commons.io.ver>
@@ -93,11 +93,10 @@
<jsoup.ver>1.13.1</jsoup.ver>
<slf4j.ver>1.7.26</slf4j.ver>
<scala.logging.ver>3.9.2</scala.logging.ver>
- <scala.arm.ver>2.0</scala.arm.ver>
<scala.xml.ver>1.1.1</scala.xml.ver>
<c3p0.ver>0.9.5.4</c3p0.ver> <!-- Upgraded to due security vulnerability. -->
<scalatest.ver>3.0.8</scalatest.ver>
- <lift.json.ver>3.3.0</lift.json.ver>
+ <lift.json.ver>3.4.3</lift.json.ver>
<scalaj.ver>2.4.1</scalaj.ver>
<spray.ver>1.3.5</spray.ver>
<tika.ver>1.21</tika.ver>
@@ -127,9 +126,15 @@
<maven.clean.plugin.ver>3.1.0</maven.clean.plugin.ver>
<apache.rat.plugin.ver>0.13</apache.rat.plugin.ver>
<org.antlr4.ver>4.9</org.antlr4.ver>
- <akka.http.2.12.ver>10.2.0</akka.http.2.12.ver>
- <akka.stream.2.12.ver>2.6.8</akka.stream.2.12.ver>
- <akka.http.spray.json.2.12.ver>10.2.0</akka.http.spray.json.2.12.ver>
+
+<!-- <akka.http.2.12.ver>10.2.0</akka.http.2.12.ver>-->
+<!-- <akka.stream.2.12.ver>2.6.8</akka.stream.2.12.ver>-->
+<!-- <akka.http.spray.json.2.12.ver>10.2.0</akka.http.spray.json.2.12.ver>-->
+
+ <akka.http.2.13.ver>10.2.4</akka.http.2.13.ver>
+ <akka.stream.2.13.ver>2.6.14</akka.stream.2.13.ver>
+ <akka.http.spray.json.2.13.ver>10.2.4</akka.http.spray.json.2.13.ver>
+
<google.guava.ver>29.0-jre</google.guava.ver>
<diff.utils.ver>4.7</diff.utils.ver>
<vertical.blank.ver>1.0.1</vertical.blank.ver>
@@ -322,12 +327,6 @@
</dependency>
<dependency>
- <groupId>com.jsuereth</groupId>
- <artifactId>scala-arm_${scala.base}</artifactId>
- <version>${scala.arm.ver}</version>
- </dependency>
-
- <dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-langdetect</artifactId>
<version>${tika.ver}</version>
@@ -408,20 +407,20 @@
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-http_2.12</artifactId>
- <version>${akka.http.2.12.ver}</version>
+ <artifactId>akka-http_${scala.base}</artifactId>
+ <version>${akka.http.2.13.ver}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-stream_2.12</artifactId>
- <version>${akka.stream.2.12.ver}</version>
+ <artifactId>akka-stream_${scala.base}</artifactId>
+ <version>${akka.stream.2.13.ver}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
- <artifactId>akka-http-spray-json_2.12</artifactId>
- <version>${akka.http.spray.json.2.12.ver}</version>
+ <artifactId>akka-http-spray-json_${scala.base}</artifactId>
+ <version>${akka.http.spray.json.2.13.ver}</version>
</dependency>
<dependency>