{"action":"created","issue":{"url":"https://api.github.com/repos/scalatra/scalatra/issues/530","labels_url":"https://api.github.com/repos/scalatra/scalatra/issues/530/labels{/name}","comments_url":"https://api.github.com/repos/scalatra/scalatra/issues/530/comments","events_url":"https://api.github.com/repos/scalatra/scalatra/issues/530/events","html_url":"https://github.com/scalatra/scalatra/pull/530","id":91078451,"number":530,"title":"Created ScalatraBaseFallback, ScalatraServletFallback and ScalatraFiterFallback which use the non-macro DSL.","user":{"login":"dozed","id":239058,"avatar_url":"https://avatars.githubusercontent.com/u/239058?v=3","gravatar_id":"","url":"https://api.github.com/users/dozed","html_url":"https://github.com/dozed","followers_url":"https://api.github.com/users/dozed/followers","following_url":"https://api.github.com/users/dozed/following{/other_user}","gists_url":"https://api.github.com/users/dozed/gists{/gist_id}","starred_url":"https://api.github.com/users/dozed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dozed/subscriptions","organizations_url":"https://api.github.com/users/dozed/orgs","repos_url":"https://api.github.com/users/dozed/repos","events_url":"https://api.github.com/users/dozed/events{/privacy}","received_events_url":"https://api.github.com/users/dozed/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-25T21:19:57Z","updated_at":"2015-06-27T06:11:26Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/scalatra/scalatra/pulls/530","html_url":"https://github.com/scalatra/scalatra/pull/530","diff_url":"https://github.com/scalatra/scalatra/pull/530.diff","patch_url":"https://github.com/scalatra/scalatra/pull/530.patch"},"body":""},"comment":{"url":"https://api.github.com/repos/scalatra/scalatra/issues/comments/115972209","html_url":"https://github.com/scalatra/scalatra/pull/530#issuecomment-115972209","issue_url":"https://api.github.com/repos/scalatra/scalatra/issues/530","id":115972209,"user":{"login":"seratch","id":19658,"avatar_url":"https://avatars.githubusercontent.com/u/19658?v=3","gravatar_id":"","url":"https://api.github.com/users/seratch","html_url":"https://github.com/seratch","followers_url":"https://api.github.com/users/seratch/followers","following_url":"https://api.github.com/users/seratch/following{/other_user}","gists_url":"https://api.github.com/users/seratch/gists{/gist_id}","starred_url":"https://api.github.com/users/seratch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seratch/subscriptions","organizations_url":"https://api.github.com/users/seratch/orgs","repos_url":"https://api.github.com/users/seratch/repos","events_url":"https://api.github.com/users/seratch/events{/privacy}","received_events_url":"https://api.github.com/users/seratch/received_events","type":"User","site_admin":false},"created_at":"2015-06-27T06:11:26Z","updated_at":"2015-06-27T06:11:26Z","body":"@dozed I just tried this patched version but unfortunately even when inheriting ScalatraBaseBase instead doesn't solve the problem users cannot override CoreDsl methods.\r\n\r\nhttps://github.com/seratch/skinny-framework/tree/scalatra-2.4.0.RC2-2\r\n\r\n```diff\r\n$ git diff\r\ndiff --git a/framework/src/main/scala/org/scalatra/SkinnyScalatraBase.scala b/framework/src/main/scala/org/scalatra/SkinnyScalatraBase.scala\r\nindex fe73cb4..33ce394 100644\r\n--- a/framework/src/main/scala/org/scalatra/SkinnyScalatraBase.scala\r\n+++ b/framework/src/main/scala/org/scalatra/SkinnyScalatraBase.scala\r\n@@ -19,7 +19,7 @@ import skinny.logging.Logging\r\n  * So We've patched ScalatraBase to ignore \"org.scalatra.ScalatraFilter.afterFilters.Run\" only for Filters.\r\n  * Hope Scalatra to support ignoring \"org.scalatra.ScalatraFilter.afterFilters.Run\" option to 3rd party.\r\n  */\r\n-trait SkinnyScalatraBase extends ScalatraBase with Logging {\r\n+trait SkinnyScalatraBase extends ScalatraBaseBase with Logging {\r\n\r\n   override protected def executeRoutes() {\r\n     var result: Any = null\r\n@@ -133,14 +133,13 @@ trait SkinnyScalatraBase extends ScalatraBase with Logging {\r\n   protected def detectTooManyErrorFilterRegistrationnAsAnErrorAtSkinnyScalatraBase: Boolean = false\r\n\r\n   // https://github.com/scalatra/scalatra/blob/v2.3.1/core/src/main/scala/org/scalatra/ScalatraBase.scala#L333-L335\r\n-  override def error(handler: ErrorHandler) {\r\n+  def error(handler: ErrorHandler) {\r\n     val count = errorMethodCallCountAtSkinnyScalatraBase.incrementAndGet()\r\n     if (count > 500) {\r\n       val message = s\"skinny's error filter registration for this controller has been evaluated $count times, this behavior will cause memory leak.\"\r\n       if (detectTooManyErrorFilterRegistrationnAsAnErrorAtSkinnyScalatraBase) throw new RuntimeException(message)\r\n       else logger.warn(message)\r\n     }\r\n-    super.error(handler)\r\n   }\r\n\r\n }\r\ndiff --git a/project/Build.scala b/project/Build.scala\r\nindex 730dec9..ccf132d 100644\r\n--- a/project/Build.scala\r\n+++ b/project/Build.scala\r\n@@ -6,7 +6,8 @@ import scala.language.postfixOps\r\n object SkinnyFrameworkBuild extends Build {\r\n\r\n   lazy val currentVersion = \"1.3.19\"\r\n-  lazy val scalatraVersion = \"2.4.0-RC2-2\"\r\n+  // locally published version with #530\r\n+  lazy val scalatraVersion = \"2.4.0.RC2-2-530\"\r\n   lazy val json4SVersion = \"3.3.0.RC2\"\r\n   lazy val scalikeJDBCVersion = \"2.2.7\"\r\n   lazy val h2Version = \"1.4.187\"\r\n```\r\n\r\nGot a following compilation error:\r\n\r\n```bash\r\n$ sbt framework/test\r\n[info] Compiling 76 Scala sources to /Users/seratch/Documents/github/skinny-framework/framework/target/scala-2.11/classes...\r\n[error] /Users/seratch/Documents/github/skinny-framework/framework/src/main/scala/skinny/controller/SkinnyControllerBase.scala:22: trait SkinnyControllerBase inherits conflicting members:\r\n[error]   method error in trait SkinnyScalatraBase of type (handler: org.scalatra.ErrorHandler)Unit  and\r\n[error]   macro method error in trait ScalatraBase of type (handler: org.scalatra.ErrorHandler)Unit\r\n[error] (Note: this can be resolved by declaring an override in trait SkinnyControllerBase.)\r\n[error] trait SkinnyControllerBase\r\n[error]       ^\r\n```\r\n"}}