Skip to content
Snippets Groups Projects
Select Git revision
  • 166b938d8546db25bcef6c982d6e6ce7ee82bf2d
  • master default
  • fin/ulo-section
  • week45/fancy-builds
  • fin/applogos
  • week41/final-review
  • week41/review-again
  • week41/reporting-on-app
  • week40/apppep
  • week40/review-report
  • week40/elementary
  • week39/transitive
  • week39/lazy-scores
  • week39/application-sections-fix
  • week39/feedback-holes
  • week39/feedback-versioning
  • week38/slide-review
  • issue13/fix
  • issue13/version-upgrade
  • issue12/setup
  • issue10/explorer
21 results

slides.tex

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