Skip to content
Snippets Groups Projects
Commit 9f9f26bc authored by cmaeder's avatar cmaeder
Browse files

added assertion and refactored

parent 34bff9fd
No related branches found
No related tags found
No related merge requests found
......@@ -5,8 +5,7 @@ import org.slf4j.{Logger, LoggerFactory}
import scala.xml._
/**
* Created by maeder on 13.01.15.
* try parsing <error> tags
* try parsing <error> tags and populate database via inserting
*/
class ParseXML(db: PopulateDB) {
val log: Logger = LoggerFactory.getLogger(this.getClass)
......@@ -52,7 +51,10 @@ class ParseXML(db: PopulateDB) {
} catch {
case e: NumberFormatException => infoMessage(e.getMessage)
}
db.insertError(List(f.getPath, t, smsg, level, x.text))
// see Table.columns for the proper argument order
val vs = List(f.getPath, t, smsg, level, x.text)
assert(vs.length == Table.columns.length)
db.insertRow(vs)
if (elems.nonEmpty)
infoMessage("ignored sub-elements")
}
......
......@@ -10,18 +10,21 @@ import scala.collection.JavaConverters._
class PopulateDB extends RouteBuilder {
def insertError(vs: List[String]): Unit = {
val insertRoute = "direct:insertRow"
val initRoute = "direct:initTable"
def insertRow(vs: List[String]): Unit = {
val hm = new util.HashMap[String, String]((Table.columns zip vs).toMap.asJava)
getContext.createProducerTemplate().sendBody("direct:insertValues", hm)
getContext.createProducerTemplate().sendBody(insertRoute, hm)
}
def initTable(): Unit =
getContext.createProducerTemplate().sendBody("direct:createTables", null)
getContext.createProducerTemplate().sendBody(initRoute, null)
"direct:insertValues" -->
insertRoute -->
("db:insert into " + Table.name + Table.columns.mkString(" (", ", ", ") values ") +
Table.columns.map(":#" + _).mkString("(", ", ", ")"))
"direct:createTables" --> ("db:drop table if exists " + Table.name) -->
initRoute --> ("db:drop table if exists " + Table.name) -->
("db:create table " + Table.name +
Table.columns.map(_ + " STRING").mkString(" (id integer primary key, ", ", ", ")"))
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment