This is an automated email from the ASF dual-hosted git repository.
aradzinski pushed a commit to branch NLPCRAFT-41-2
in repository https://gitbox.apache.org/repos/asf/incubator-nlpcraft.git
The following commit(s) were added to refs/heads/NLPCRAFT-41-2 by this push:
new 1b5e967 WIP.
1b5e967 is described below
commit 1b5e96791ea4204631dcf8028204ac1ecc9624b8
Author: Aaron Radzinski <[email protected]>
AuthorDate: Wed Sep 9 22:09:27 2020 -0700
WIP.
---
nlpcraft/src/main/resources/log4j2.xml | 22 ++++++--
.../org/apache/nlpcraft/probe/NCProbeBoot.scala | 23 +++++++-
.../probe/mgrs/deploy/NCDeployManager.scala | 66 ++++++++++++----------
nlpcraft/src/test/resources/log4j2.xml | 24 +++++---
4 files changed, 90 insertions(+), 45 deletions(-)
diff --git a/nlpcraft/src/main/resources/log4j2.xml
b/nlpcraft/src/main/resources/log4j2.xml
index 3e5d3b7..1bdc05d 100644
--- a/nlpcraft/src/main/resources/log4j2.xml
+++ b/nlpcraft/src/main/resources/log4j2.xml
@@ -18,23 +18,33 @@
-->
<Configuration status="INFO">
+ <Properties>
+ <Property name="pattern">%d{MMM-dd|HH:mm:ss}|%-5p| %m%n</Property>
+ </Properties>
<Appenders>
- <Console name="CONSOLE" target="SYSTEM_OUT">
- <PatternLayout pattern="%d{MMM-dd|HH:mm:ss}|%-5p| %m%n"/>
+ <Console name="stdout" target="SYSTEM_OUT">
+ <PatternLayout pattern="${pattern}"/>
+ <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="ACCEPT"/>
+ </Console>
+ <Console name="stderr" target="SYSTEM_ERR">
+ <PatternLayout pattern="${pattern}"/>
+ <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stdout"/>
+ <AppenderRef ref="stderr"/>
</Root>
<Logger name="org.apache.nlpcraft" level="INFO" additivity="false">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stdout"/>
+ <AppenderRef ref="stderr"/>
</Logger>
<Logger name="com.mchange" level="WARN" additivity="false">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stderr"/>
</Logger>
<Logger name="org.apache.ignite" level="WARN" additivity="false">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stderr"/>
</Logger>
</Loggers>
</Configuration>
\ No newline at end of file
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 dad67ab..bab2fb1 100644
--- a/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
+++ b/nlpcraft/src/main/scala/org/apache/nlpcraft/probe/NCProbeBoot.scala
@@ -70,6 +70,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
var upLink: (String, Integer),
var downLink: (String, Integer),
var jarsFolder: Option[String],
+ var model: Option[String],
var models: Seq[String],
var lifecycle: Seq[String]
) {
@@ -90,6 +91,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
withValue(s"$prefix.token", fromAnyRef("3141592653589793")).
withValue(s"$prefix.upLink", fromAnyRef("localhost:8201")).
withValue(s"$prefix.downLink", fromAnyRef("localhost:8202")).
+ withValue(s"$prefix.model", fromAnyRef(null)).
withValue(s"$prefix.models", fromIterable(Seq().asJava)).
withValue(s"$prefix.lifecycle", fromIterable(Seq().asJava)).
withValue(s"$prefix.resultMaxSizeBytes", fromAnyRef(1048576)).
@@ -142,6 +144,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
val upLink: (String, Integer) = getHostPort(s"$prefix.upLink")
val downLink: (String, Integer) = getHostPort(s"$prefix.downLink")
val jarsFolder: Option[String] =
getStringOpt(s"$prefix.jarsFolder")
+ val model: Option[String] = getStringOpt(s"$prefix.model")
val models: Seq[String] = getStringList(s"$prefix.models")
val lifecycle: Seq[String] = getStringList(s"$prefix.lifecycle")
}
@@ -152,6 +155,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
Cfg.upLink,
Cfg.downLink,
Cfg.jarsFolder,
+ Cfg.model,
Cfg.models,
Cfg.lifecycle
)
@@ -302,6 +306,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
val upLink: (String, Integer) = getHostPort(upLinkStr)
val dnLink: (String, Integer) = getHostPort(dnLinkStr)
val jarsFolder: Option[String] =
getStringOpt(s"$prefix.jarsFolder")
+ val model: Option[String] = getStringOpt(s"$prefix.model")
val models: Seq[String] = mdlClasses.map(_.getName).toSeq
val lifecycle: Seq[String] = getStringList(s"$prefix.lifecycle")
}
@@ -314,6 +319,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
Cfg.upLink,
Cfg.dnLink,
Cfg.jarsFolder,
+ Cfg.model,
Cfg.models,
Cfg.lifecycle),
fut
@@ -366,15 +372,25 @@ private [probe] object NCProbeBoot extends LazyLogging
with NCOpenCensusTrace {
val tbl = NCAsciiTable()
val ver = NCVersion.getCurrent
-
+
tbl += ("Probe ID", cfg.id)
tbl += ("Probe Token", cfg.token)
tbl += ("API Version", ver.version + ", " + ver.date.toString)
tbl += ("Down-Link", cfg.downLinkString)
tbl += ("Up-Link", cfg.upLinkString)
- tbl += ("Models", cfg.models)
tbl += ("Lifecycle", cfg.lifecycle)
- tbl += ("JARs Folder", cfg.jarsFolder.getOrElse(""))
+
+ cfg.model match {
+ case Some(m) ⇒
+ tbl += ("Model", m)
+ tbl += ("Models" , "<ignored>")
+ tbl += ("JARs Folder", "<ignored>")
+
+ case None ⇒
+ tbl += ("Model", "<ignored>")
+ tbl += ("Models" , cfg.models)
+ tbl += ("JARs Folder", cfg.jarsFolder.getOrElse(""))
+ }
tbl.info(logger, Some("Probe Configuration:"))
}
@@ -414,6 +430,7 @@ private [probe] object NCProbeBoot extends LazyLogging with
NCOpenCensusTrace {
"downlink" → cfg.downLinkString,
"relVer" → ver.version,
"relDate" → ver.date.toString,
+ "model" → cfg.model.getOrElse(""),
"models" → cfg.models.mkString(","),
"lifecycle" → cfg.lifecycle.mkString(","),
"jarFolder" → cfg.jarsFolder
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 3aca836..a7e494b 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
@@ -50,6 +50,7 @@ object NCDeployManager extends NCService with DecorateAsScala
{
// It should reload config.
def modelFactoryType: Option[String] =
getStringOpt(s"$pre.modelFactory.type")
def modelFactoryProps: Option[Map[String, String]] =
getMapOpt(s"$pre.modelFactory.properties")
+ def model: Option[String] = getStringOpt(s"$pre.model")
def models: Seq[String] = getStringList(s"$pre.models")
def jarsFolder: Option[String] = getStringOpt(s"$pre.jarsFolder")
}
@@ -217,37 +218,44 @@ object NCDeployManager extends NCService with
DecorateAsScala {
@throws[NCE]
override def start(parent: Span = null): NCService =
startScopedSpan("start", parent) { _ ⇒
- modelFactory = new NCBasicModelFactory
models = ArrayBuffer.empty[NCModelWrapper]
- // Initialize model factory (if configured).
- Config.modelFactoryType match {
- case Some(mft) ⇒
- modelFactory = makeModelFactory(mft)
-
-
modelFactory.initialize(Config.modelFactoryProps.getOrElse(Map.empty[String,
String]).asJava)
-
- case None ⇒ // No-op.
- }
-
- models ++= Config.models.map(makeModel)
-
- Config.jarsFolder match {
- case Some(jarsFolder) ⇒
- val jarsFile = new File(jarsFolder)
-
- if (!jarsFile.exists())
- throw new NCE(s"JAR folder path '$jarsFolder' does not
exist.")
- if (!jarsFile.isDirectory)
- throw new NCE(s"JAR folder path '$jarsFolder' is not a
directory.")
-
- val src = this.getClass.getProtectionDomain.getCodeSource
- val locJar = if (src == null) null else new
File(src.getLocation.getPath)
-
- for (jar ← scanJars(jarsFile) if jar != locJar)
- models ++= extractModels(jar)
-
- case None ⇒ // No-op.
+ Config.model match {
+ case Some(mdlClsName) ⇒
+ models += makeModel(mdlClsName)
+
+ case None ⇒
+ modelFactory = new NCBasicModelFactory
+
+ // Initialize model factory (if configured).
+ Config.modelFactoryType match {
+ case Some(mft) ⇒
+ modelFactory = makeModelFactory(mft)
+
+
modelFactory.initialize(Config.modelFactoryProps.getOrElse(Map.empty[String,
String]).asJava)
+
+ case None ⇒ // No-op.
+ }
+
+ models ++= Config.models.map(makeModel)
+
+ Config.jarsFolder match {
+ case Some(jarsFolder) ⇒
+ val jarsFile = new File(jarsFolder)
+
+ if (!jarsFile.exists())
+ throw new NCE(s"JAR folder path '$jarsFolder' does
not exist.")
+ if (!jarsFile.isDirectory)
+ throw new NCE(s"JAR folder path '$jarsFolder' is
not a directory.")
+
+ val src =
this.getClass.getProtectionDomain.getCodeSource
+ val locJar = if (src == null) null else new
File(src.getLocation.getPath)
+
+ for (jar ← scanJars(jarsFile) if jar != locJar)
+ models ++= extractModels(jar)
+
+ case None ⇒ // No-op.
+ }
}
// Verify models' identities.
diff --git a/nlpcraft/src/test/resources/log4j2.xml
b/nlpcraft/src/test/resources/log4j2.xml
index d8508aa..a233dc6 100644
--- a/nlpcraft/src/test/resources/log4j2.xml
+++ b/nlpcraft/src/test/resources/log4j2.xml
@@ -18,23 +18,33 @@
-->
<Configuration status="INFO">
+ <Properties>
+ <Property name="pattern">%d{MMM-dd|HH:mm:ss}|%-5p| %C{1} - (%F:%L) -
%m%n</Property>
+ </Properties>
<Appenders>
- <Console name="CONSOLE" target="SYSTEM_OUT">
- <PatternLayout pattern="%d{MMM-dd|HH:mm:ss}|%-5p| %C{1} - (%F:%L)
- %m%n"/>
+ <Console name="stdout" target="SYSTEM_OUT">
+ <PatternLayout pattern="${pattern}"/>
+ <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="ACCEPT"/>
+ </Console>
+ <Console name="stderr" target="SYSTEM_ERR">
+ <PatternLayout pattern="${pattern}"/>
+ <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</Console>
</Appenders>
<Loggers>
<Root level="INFO">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stdout"/>
+ <AppenderRef ref="stderr"/>
</Root>
- <Logger name="org.apache.nlpcraft" level="DEBUG" additivity="false">
- <AppenderRef ref="CONSOLE"/>
+ <Logger name="org.apache.nlpcraft" level="INFO" additivity="false">
+ <AppenderRef ref="stdout"/>
+ <AppenderRef ref="stderr"/>
</Logger>
<Logger name="com.mchange" level="WARN" additivity="false">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stderr"/>
</Logger>
<Logger name="org.apache.ignite" level="WARN" additivity="false">
- <AppenderRef ref="CONSOLE"/>
+ <AppenderRef ref="stderr"/>
</Logger>
</Loggers>
</Configuration>
\ No newline at end of file