Skip to content

Instantly share code, notes, and snippets.

@joegaudet
Created January 19, 2012 20:09
Show Gist options
  • Select an option

  • Save joegaudet/1642276 to your computer and use it in GitHub Desktop.

Select an option

Save joegaudet/1642276 to your computer and use it in GitHub Desktop.
package com.matygo
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.ServletHolder
import org.eclipse.jetty.webapp.WebAppClassLoader.Context
import org.eclipse.jetty.servlet.ServletContextHandler
import org.scalatra.ScalatraServlet
import com.matygo.controllers.users.UsersController
import com.matygo.models.MatygoSchema
import org.reflections.Reflections
import org.reflections.util.ConfigurationBuilder
import org.reflections.util.ClasspathHelper
import org.reflections.scanners.ResourcesScanner
import java.util.regex.Pattern
import com.matygo.util.MLog
import com.matygo.controllers.announcements.AnnouncementsController
import org.eclipse.jetty.servlet.FilterHolder
import org.scalatra.Handler
import java.util.EnumSet
import org.eclipse.jetty.server.DispatcherType
import org.eclipse.jetty.servlet.DefaultServlet
import org.scalatra.ScalatraFilter
import org.eclipse.jetty.server.session.SessionHandler
import com.matygo.controllers.users.SignupController
import com.matygo.controllers.MatygoController
object JettyLauncher { // this is my entry object as specified in sbt project definition
def main(args: Array[String]) {
val server = new Server(8080)
MatygoSchema.createSessionFactory
val context = new ServletContextHandler(ServletContextHandler.SESSIONS)
context.setContextPath("/")
// val reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forPackage("com.matygo.controllers")).setScanners(new ResourcesScanner()))
//
// val testControllers = reflections.getStore().getSubTypesOf("com.matygo.controllers.MatygoTestController")
// val controllers = reflections.getStore().getSubTypesOf("com.matygo.controllers.MatygoController")
// controllers.removeAll(testControllers)
//
// val itr = controllers.iterator()
// while (itr.hasNext()) {
// val klassName = itr.next()
// if (!klassName.contains("TestController")) {
// val klass = this.getClass().getClassLoader().loadClass(klassName)
// MLog.logger.info("Loading: " + klass.toString())
// val controller = klass.newInstance().asInstanceOf[ScalatraFilter]
// context.addFilter(new FilterHolder(controller), "/*", set)
// }
// }
val set = EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.ERROR)
context.addFilter(new FilterHolder(new ScalatraFilter(){
get("/test"){
<h1>It works!</h1>
}
}), "/*", set)
context.addServlet(new ServletHolder(new ScalatraServlet(){
notFound {
<h1>Not found!</h1>
}
}), "/*")
server.start()
server.join()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment