Skip to content
Snippets Groups Projects
Select Git revision
  • ce51dea29d9fa667aa97b5a72d717de8e8b29765
  • main default
  • master
  • tempAndrToMaster
4 results

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()
      }
    }