Select Git revision
Level.cs
SearchDB.scala 1.58 KiB
package info.kwarc.mmt.errorview
import java.util
import org.apache.camel.Exchange
import org.apache.camel.component.jackson.JacksonDataFormat
import org.apache.camel.model.DataFormatDefinition
import org.apache.camel.scala.dsl.builder.RouteBuilder
import org.apache.camel.util.jndi.JndiContext
import org.eclipse.jetty.server.handler.ResourceHandler
class SearchDB extends RouteBuilder {
def query2HashMap(ex: Exchange): util.HashMap[String, String] = {
val hm = new util.HashMap[String, String]()
hm.put("text", "%" + ex.getIn.getHeader("text") + "%")
hm.put("limit", ex.getIn.getHeader("limit").toString)
hm
}
Table.columns.map { col =>
(("jetty:http://localhost:8383/count/" + col) transform
(ex => "%" + ex.getIn.getHeader("text") + "%")) -->
("db:SELECT COUNT(*) as count FROM errors WHERE " + col + " LIKE #") marshal
new DataFormatDefinition(new JacksonDataFormat())
(("jetty:http://localhost:8383/search/" + col) transform query2HashMap) -->
("db:SELECT * FROM errors WHERE " + col + " LIKE :#text LIMIT :#limit") marshal
new DataFormatDefinition(new JacksonDataFormat())
}
"jetty:http://localhost:8383/static?matchOnUriPrefix=true&handlers=#staticHandler" --> "log:a"
}
object SearchDB {
def main(args: scala.Array[String]) {
val (context, _) = Table.initArgs(args)
val resHandler = new ResourceHandler()
resHandler.setResourceBase("src/main/resource")
val jdni = new JndiContext()
jdni.bind("staticHandler", resHandler)
context.setJndiContext(jdni)
context.addRoutes(new SearchDB())
context.start()
}
}