Skip to content
This repository
Browse code

* Fixed #1292 - added version to the @deprecated messages.

* Removed more compiler warnings.
* Changed S.respondAsync to use RestContinuation.async (and removed deprecated usage)
  • Loading branch information...
commit c82e7837a2161868636f36a499d9d70027c677f0 1 parent 8397639
Diego Medina authored

Showing 49 changed files with 125 additions and 154 deletions. Show diff stats Hide diff stats

  1. 18  core/common/src/main/scala/net/liftweb/common/Box.scala
  2. 2  core/common/src/main/scala/net/liftweb/common/HList.scala
  3. 2  core/common/src/main/scala/net/liftweb/common/ParseDouble.scala
  4. 12  core/json/benchmark/Serbench.scala
  5. 6  core/json/src/main/scala/net/liftweb/json/Formats.scala
  6. 2  core/json/src/main/scala/net/liftweb/json/JsonAST.scala
  7. 2  core/json/src/main/scala/net/liftweb/json/JsonParser.scala
  8. 2  core/json/src/main/scala/net/liftweb/json/Meta.scala
  9. 12  core/util/src/main/scala/net/liftweb/util/BindHelpers.scala
  10. 9  core/util/src/main/scala/net/liftweb/util/ClassHelpers.scala
  11. 2  core/util/src/main/scala/net/liftweb/util/StringHelpers.scala
  12. 2  core/util/src/main/scala/net/liftweb/util/TimeHelpers.scala
  13. 2  core/util/src/main/scala/net/liftweb/util/ValueHolder.scala
  14. 2  core/util/src/main/scala/net/liftweb/util/package.scala
  15. 4  persistence/db/src/main/scala/net/liftweb/db/DB.scala
  16. 5  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedField.scala
  17. 6  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedForeignKey.scala
  18. 2  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedString.scala
  19. 4  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedUniqueId.scala
  20. 3  persistence/mapper/src/main/scala/net/liftweb/mapper/Mapper.scala
  21. 12  persistence/mapper/src/main/scala/net/liftweb/mapper/ProtoUser.scala
  22. 2  persistence/mapper/src/main/scala/net/liftweb/mapper/package.scala
  23. 2  persistence/mongodb/src/main/scala/net/liftweb/mongodb/JObjectParser.scala
  24. 6  persistence/mongodb/src/main/scala/net/liftweb/mongodb/Meta.scala
  25. 2  persistence/mongodb/src/main/scala/net/liftweb/mongodb/Mongo.scala
  26. 12  persistence/record/src/main/scala/net/liftweb/record/ProtoUser.scala
  27. 2  persistence/record/src/main/scala/net/liftweb/record/RecordHelpers.scala
  28. 2  persistence/squeryl-record/src/main/scala/net/liftweb/squerylrecord/SquerylRecord.scala
  29. 8  web/testkit/src/main/scala/net/liftweb/mocks/MockHttpServletRequest.scala
  30. 2  web/webkit/src/main/scala/net/liftweb/builtin/snippet/A.scala
  31. 3  web/webkit/src/main/scala/net/liftweb/builtin/snippet/Msgs.scala
  32. 12  web/webkit/src/main/scala/net/liftweb/http/CometActor.scala
  33. 2  web/webkit/src/main/scala/net/liftweb/http/LiftResponse.scala
  34. 22  web/webkit/src/main/scala/net/liftweb/http/LiftRules.scala
  35. 2  web/webkit/src/main/scala/net/liftweb/http/LiftScreen.scala
  36. 2  web/webkit/src/main/scala/net/liftweb/http/LiftSession.scala
  37. 4  web/webkit/src/main/scala/net/liftweb/http/Paginator.scala
  38. 9  web/webkit/src/main/scala/net/liftweb/http/Req.scala
  39. 9  web/webkit/src/main/scala/net/liftweb/http/RequestType.scala
  40. 38  web/webkit/src/main/scala/net/liftweb/http/S.scala
  41. 4  web/webkit/src/main/scala/net/liftweb/http/SHtml.scala
  42. 4  web/webkit/src/main/scala/net/liftweb/http/Templates.scala
  43. 2  web/webkit/src/main/scala/net/liftweb/http/jquery/JqSHtml.scala
  44. 4  web/webkit/src/main/scala/net/liftweb/http/js/JsCommands.scala
  45. 6  web/webkit/src/main/scala/net/liftweb/http/js/jquery/JqJsCmds.scala
  46. 2  web/webkit/src/main/scala/net/liftweb/http/package.scala
  47. 2  web/webkit/src/main/scala/net/liftweb/http/provider/servlet/HTTPResponseServlet.scala
  48. 1  web/webkit/src/main/scala/net/liftweb/http/provider/servlet/HTTPServletSession.scala
  49. 2  web/webkit/src/main/scala/net/liftweb/http/rest/RestContinuation.scala
18  core/common/src/main/scala/net/liftweb/common/Box.scala
@@ -106,7 +106,7 @@ sealed trait BoxTrait {
106 106
    * 
107 107
    * @return <code>Full(in)</code> if <code>in</code> is not null; Empty otherwise
108 108
    */
109  
-  @deprecated("Use legacyNullTest")
  109
+  @deprecated("Use legacyNullTest", "2.5")
110 110
   def apply[T](in: T): Box[T] = legacyNullTest(in)
111 111
 
112 112
   /**
@@ -192,8 +192,7 @@ sealed trait BoxTrait {
192 192
  *   <li> you can "pass" a Box to a function for side effects: <code>Full(1) $ { x: Box[Int] => println(x openOr 0) }</code></li>
193 193
  * </ul>
194 194
  */
195  
-@serializable
196  
-sealed abstract class Box[+A] extends Product {
  195
+sealed abstract class Box[+A] extends Product with Serializable{
197 196
   self =>
198 197
   /**
199 198
    * Returns true if this Box contains no value (is Empty or Failure or ParamFailure)
@@ -472,8 +471,7 @@ sealed abstract class Box[+A] extends Product {
472 471
 /**
473 472
  * Full is a Box containing a value.
474 473
  */
475  
-@serializable
476  
-final case class Full[+A](value: A) extends Box[A] {
  474
+final case class Full[+A](value: A) extends Box[A]{
477 475
 
478 476
   def isEmpty: Boolean = false
479 477
 
@@ -551,14 +549,12 @@ final case class Full[+A](value: A) extends Box[A] {
551 549
 /**
552 550
  * Singleton object representing an Empty Box
553 551
  */
554  
-@serializable
555 552
 case object Empty extends EmptyBox
556 553
 
557 554
 /**
558 555
  * The EmptyBox is a Box containing no value.
559 556
  */
560  
-@serializable
561  
-sealed abstract class EmptyBox extends Box[Nothing] {
  557
+sealed abstract class EmptyBox extends Box[Nothing] with Serializable {
562 558
 
563 559
   def isEmpty: Boolean = true
564 560
 
@@ -600,8 +596,7 @@ object Failure {
600 596
  * A Failure is an EmptyBox with an additional failure message explaining the reason for its being empty.
601 597
  * It can also optionally provide an exception or a chain of causes represented as a list of other Failure objects
602 598
  */
603  
-@serializable
604  
-sealed case class Failure(msg: String, exception: Box[Throwable], chain: Box[Failure]) extends EmptyBox {
  599
+sealed case class Failure(msg: String, exception: Box[Throwable], chain: Box[Failure]) extends EmptyBox{
605 600
   type A = Nothing
606 601
 
607 602
   /**
@@ -683,11 +678,10 @@ sealed case class Failure(msg: String, exception: Box[Throwable], chain: Box[Fai
683 678
  * A ParamFailure is a Failure with an additional typesafe parameter that can
684 679
  * allow an application to store other information related to the failure.
685 680
  */
686  
-@serializable
687 681
 final class ParamFailure[T](override val msg: String,
688 682
 		            override val exception: Box[Throwable],
689 683
 		            override val chain: Box[Failure], val param: T) extends
690  
-  Failure(msg, exception, chain) {
  684
+  Failure(msg, exception, chain) with Serializable{
691 685
     override def toString(): String = "ParamFailure("+msg+", "+exception+
692 686
     ", "+chain+", "+param+")"
693 687
 
2  core/common/src/main/scala/net/liftweb/common/HList.scala
@@ -101,7 +101,7 @@ sealed trait ExcludeThisType[A, B]
101 101
  * that a type is not a subtype of another type
102 102
  */
103 103
 object ExcludeThisType {
104  
-  def unexpected: Nothing = error("Unexpected invocation")
  104
+  def unexpected: Nothing = sys.error("Unexpected invocation")
105 105
 
106 106
   // Uses ambiguity to rule out the cases we're trying to exclude
107 107
   implicit def nsub[A, B]: A ExcludeThisType B = null
2  core/common/src/main/scala/net/liftweb/common/ParseDouble.scala
@@ -27,7 +27,7 @@ package common
27 27
  *
28 28
  * @see http://blogs.oracle.com/security/entry/security_alert_for_cve-2010-44
29 29
  */
30  
-@deprecated("Use a newer or patched JVM instead.")
  30
+@deprecated("Use a newer or patched JVM instead.", "2.5")
31 31
 object ParseDouble {
32 32
   private val BrokenDouble = BigDecimal("2.2250738585072012e-308")
33 33
 
12  core/json/benchmark/Serbench.scala
@@ -41,12 +41,8 @@ object Serbench extends Benchmark {
41 41
     }
42 42
   }
43 43
 
44  
-  @serializable
45  
-  case class Project(name: String, startDate: Date, lang: Option[Language], teams: List[Team])
46  
-  @serializable
47  
-  case class Language(name: String, version: Double)
48  
-  @serializable
49  
-  case class Team(role: String, members: List[Employee])
50  
-  @serializable
51  
-  case class Employee(name: String, experience: Int)
  44
+  case class Project(name: String, startDate: Date, lang: Option[Language], teams: List[Team]) extends Serializable
  45
+  case class Language(name: String, version: Double) extends Serializable
  46
+  case class Team(role: String, members: List[Employee]) extends Serializable
  47
+  case class Employee(name: String, experience: Int) extends Serializable
52 48
 }
6  core/json/src/main/scala/net/liftweb/json/Formats.scala
@@ -166,7 +166,7 @@ trait TypeHints {
166 166
      * Chooses most specific class.
167 167
      */
168 168
     def hintFor(clazz: Class[_]): String = components.filter(_.containsHint_?(clazz))
169  
-        .map(th => (th.hintFor(clazz), th.classFor(th.hintFor(clazz)).getOrElse(error("hintFor/classFor not invertible for " + th))))
  169
+        .map(th => (th.hintFor(clazz), th.classFor(th.hintFor(clazz)).getOrElse(sys.error("hintFor/classFor not invertible for " + th))))
170 170
         .sort((x, y) => (delta(x._2, clazz) - delta(y._2, clazz)) < 0).head._1
171 171
 
172 172
     def classFor(hint: String): Option[Class[_]] = {
@@ -197,7 +197,7 @@ private[json] object ClassDelta {
197 197
     else if (class2.isAssignableFrom(class1)) {
198 198
       1 + delta(class1.getSuperclass, class2)
199 199
     }
200  
-    else error("Don't call delta unless one class is assignable from the other")
  200
+    else sys.error("Don't call delta unless one class is assignable from the other")
201 201
   }
202 202
 }
203 203
 
@@ -205,7 +205,7 @@ private[json] object ClassDelta {
205 205
  */
206 206
 case object NoTypeHints extends TypeHints {
207 207
   val hints = Nil
208  
-  def hintFor(clazz: Class[_]) = error("NoTypeHints does not provide any type hints.")
  208
+  def hintFor(clazz: Class[_]) = sys.error("NoTypeHints does not provide any type hints.")
209 209
   def classFor(hint: String) = None
210 210
 }
211 211
 
2  core/json/src/main/scala/net/liftweb/json/JsonAST.scala
@@ -396,7 +396,7 @@ object JsonAST {
396 396
     case JDouble(n)    => text(n.toString)
397 397
     case JInt(n)       => text(n.toString)
398 398
     case JNull         => text("null")
399  
-    case JNothing      => error("can't render 'nothing'")
  399
+    case JNothing      => sys.error("can't render 'nothing'")
400 400
     case JString(null) => text("null")
401 401
     case JString(s)    => text("\"" + quote(s) + "\"")
402 402
     case JArray(arr)   => text("[") :: series(trimArr(arr).map(render)) :: text("]")
2  core/json/src/main/scala/net/liftweb/json/JsonParser.scala
@@ -134,7 +134,7 @@ object JsonParser {
134 134
   private val BrokenDouble = BigDecimal("2.2250738585072012e-308")
135 135
   private[json] def parseDouble(s: String) = {
136 136
     val d = BigDecimal(s)
137  
-    if (d == BrokenDouble) error("Error parsing 2.2250738585072012e-308")
  137
+    if (d == BrokenDouble) sys.error("Error parsing 2.2250738585072012e-308")
138 138
     else d.doubleValue
139 139
   }
140 140
 
2  core/json/src/main/scala/net/liftweb/json/Meta.scala
@@ -394,7 +394,7 @@ private[json] object Meta {
394 394
       case x: java.lang.Short => JInt(BigInt(x.asInstanceOf[Short]))
395 395
       case x: Date => JString(formats.dateFormat.format(x))
396 396
       case x: Symbol => JString(x.name)
397  
-      case _ => error("not a primitive " + a.asInstanceOf[AnyRef].getClass)
  397
+      case _ => sys.error("not a primitive " + a.asInstanceOf[AnyRef].getClass)
398 398
     }
399 399
   }
400 400
 }
12  core/util/src/main/scala/net/liftweb/util/BindHelpers.scala
@@ -708,7 +708,7 @@ trait BindHelpers {
708 708
   /**
709 709
    *  transforms a Box into a Text node
710 710
    */
711  
-  @deprecated("use -> instead")
  711
+  @deprecated("use -> instead", "2.4")
712 712
   object BindParamAssoc {
713 713
     implicit def canStrBoxNodeSeq(in: Box[Any]): Box[NodeSeq] = in.map(_ match {
714 714
       case null => Text("null")
@@ -789,7 +789,7 @@ trait BindHelpers {
789 789
    *
790 790
    * @deprecated use -> instead
791 791
    */
792  
-  @deprecated("use -> instead")
  792
+  @deprecated("use -> instead", "2.4")
793 793
   class BindParamAssoc(val name: String) {
794 794
     def -->(value: String): BindParam = TheBindParam(name, if (null eq value) NodeSeq.Empty else Text(value))
795 795
     def -->(value: NodeSeq): BindParam = TheBindParam(name, value)
@@ -812,7 +812,7 @@ trait BindHelpers {
812 812
    *
813 813
    * @deprecated use -> instead
814 814
    */
815  
-  @deprecated("use -> instead")
  815
+  @deprecated("use -> instead", "2.4")
816 816
   implicit def strToBPAssoc(in: String): BindParamAssoc = new BindParamAssoc(in)
817 817
 
818 818
   /**
@@ -822,7 +822,7 @@ trait BindHelpers {
822 822
    *
823 823
    * @deprecated use -> instead
824 824
    */
825  
-  @deprecated("use -> instead")
  825
+  @deprecated("use -> instead", "2.4")
826 826
   implicit def symToSAAssoc(in: Symbol): SuperArrowAssoc = new SuperArrowAssoc(in.name)
827 827
 
828 828
   /**
@@ -831,7 +831,7 @@ trait BindHelpers {
831 831
    *
832 832
    * @deprecated use bind instead
833 833
    */
834  
-  @deprecated("use bind instead")
  834
+  @deprecated("use bind instead", "2.4")
835 835
   def xbind(namespace: String, xml: NodeSeq)(transform: PartialFunction[String, NodeSeq => NodeSeq]): NodeSeq = {
836 836
     def rec_xbind(xml: NodeSeq): NodeSeq = {
837 837
       xml.flatMap {
@@ -1133,7 +1133,7 @@ trait BindHelpers {
1133 1133
    * @param atWhat data to bind
1134 1134
    * @deprecated use the bind function instead
1135 1135
    */
1136  
-  @deprecated("use the bind function instead")
  1136
+  @deprecated("use the bind function instead", "2.3")
1137 1137
   def processBind(around: NodeSeq, atWhat: Map[String, NodeSeq]): NodeSeq = {
1138 1138
 
1139 1139
     /** Find element matched predicate f(x).isDefined, and return f(x) if found or None otherwise. */
9  core/util/src/main/scala/net/liftweb/util/ClassHelpers.scala
@@ -151,9 +151,12 @@ trait ClassHelpers { self: ControlHelpers =>
151 151
   def findClass(where: List[(String, List[String])]): Box[Class[AnyRef]] =
152 152
   findType[AnyRef](where)
153 153
 
154  
-  @deprecated("Use StringHelpers.camelify") def camelCase(name : String): String = StringHelpers.camelify(name)
155  
-  @deprecated("Use StringHelpers.camelifyMethod") def camelCaseMethod(name: String): String = StringHelpers.camelifyMethod(name)
156  
-  @deprecated("Use StringHelpers.snakify") def unCamelCase(name : String) = StringHelpers.snakify(name)
  154
+  @deprecated("Use StringHelpers.camelify", "2.3")
  155
+  def camelCase(name : String): String = StringHelpers.camelify(name)
  156
+  @deprecated("Use StringHelpers.camelifyMethod", "2.3")
  157
+  def camelCaseMethod(name: String): String = StringHelpers.camelifyMethod(name)
  158
+  @deprecated("Use StringHelpers.snakify", "2.3")
  159
+  def unCamelCase(name : String) = StringHelpers.snakify(name)
157 160
 
158 161
   /**
159 162
    * @return true if the method is public and has no parameters
2  core/util/src/main/scala/net/liftweb/util/StringHelpers.scala
@@ -364,7 +364,7 @@ trait StringHelpers {
364 364
   /** @return a SuperString with more available methods such as roboSplit or commafy */
365 365
   implicit def listStringToSuper(in: List[String]): SuperListString = new SuperListString(in)
366 366
 
367  
-  @deprecated("Use blankForNull instead")
  367
+  @deprecated("Use blankForNull instead", "2.3")
368 368
   def emptyForNull(s: String) = blankForNull(s)
369 369
 
370 370
   /**
2  core/util/src/main/scala/net/liftweb/util/TimeHelpers.scala
@@ -295,9 +295,9 @@ trait TimeHelpers { self: ControlHelpers =>
295 295
   def currentYear: Int = Calendar.getInstance.get(Calendar.YEAR)
296 296
 
297 297
   /**
298  
-   * @deprecated use now instead
299 298
    * @return the current time as a Date object
300 299
    */
  300
+  @deprecated("use now instead", "2.4")
301 301
   def timeNow = new Date
302 302
 
303 303
   /**
2  core/util/src/main/scala/net/liftweb/util/ValueHolder.scala
@@ -25,7 +25,7 @@ trait ValueHolder {
25 25
    *
26 26
    * @deprecated
27 27
    */
28  
-  @deprecated("Use get")
  28
+  @deprecated("Use get", "2.4")
29 29
   def is: ValueType
30 30
 
31 31
   /**
2  core/util/src/main/scala/net/liftweb/util/package.scala
@@ -26,6 +26,6 @@ package object util {
26 26
   /**
27 27
    * Changed the name ActorPing to Schedule
28 28
    */
29  
-  @deprecated("Use Schedule")
  29
+  @deprecated("Use Schedule", "2.3")
30 30
   val ActorPing = Schedule
31 31
 }
4  persistence/db/src/main/scala/net/liftweb/db/DB.scala
@@ -147,7 +147,7 @@ trait DB extends Loggable {
147 147
    * perform this function after transaction has ended.  This is helpful for sending messages to Actors after we know
148 148
    * a transaction has been either committed or rolled back
149 149
    */
150  
-  @deprecated("Use appendPostTransaction {committed => ...}")
  150
+  @deprecated("Use appendPostTransaction {committed => ...}", "2.4")
151 151
   def performPostCommit(f: => Unit) {
152 152
     postCommit = (() => f) :: postCommit
153 153
   }
@@ -326,7 +326,7 @@ trait DB extends Loggable {
326 326
   /**
327 327
    *  Append a function to be invoked after the transaction has ended for the given connection identifier
328 328
    */
329  
-  @deprecated("Use appendPostTransaction (name, {committed => ...})")
  329
+  @deprecated("Use appendPostTransaction (name, {committed => ...})", "2.4")
330 330
   def appendPostFunc(name: ConnectionIdentifier, func: () => Unit) {
331 331
     appendPostTransaction(name, dontUse => func())
332 332
   }
5  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedField.scala
@@ -66,8 +66,7 @@ trait MixableMappedField extends BaseField {
66 66
  * The base (not Typed) trait that defines a field that is mapped to a column or more than 1 column
67 67
  * (e.g., MappedPassword) in the database
68 68
  */
69  
-@serializable
70  
-trait BaseMappedField extends SelectableField with Bindable with MixableMappedField {
  69
+trait BaseMappedField extends SelectableField with Bindable with MixableMappedField with Serializable{
71 70
 
72 71
   def dbDisplay_? = true
73 72
 
@@ -695,7 +694,7 @@ trait MappedField[FieldType <: Any,OwnerType <: Mapper[OwnerType]] extends Typed
695 694
 }
696 695
 
697 696
 object MappedField {
698  
-  @deprecated("Automatic conversion to the field's type is not safe and will be removed. Please use field.get instead")
  697
+  @deprecated("Automatic conversion to the field's type is not safe and will be removed. Please use field.get instead", "2.5")
699 698
   implicit def mapToType[T, A<:Mapper[A]](in : MappedField[T, A]): T = in.is
700 699
 }
701 700
 
6  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedForeignKey.scala
@@ -210,12 +210,12 @@ with LifecycleCallbacks {
210 210
 }
211 211
 
212 212
 
213  
-@deprecated("Functionality folded into MappedForeignKey, so just use MappedLongForeignKey. Will be removed in 2.5")
  213
+@deprecated("Functionality folded into MappedForeignKey, so just use MappedLongForeignKey. Will be removed in 2.5", "2.4")
214 214
 class LongMappedMapper[T<:Mapper[T], O<:KeyedMapper[Long,O]](theOwner: T, foreign: => KeyedMetaMapper[Long, O])
215 215
   extends MappedLongForeignKey[T,O](theOwner, foreign)
216 216
 
217 217
 
218  
-@deprecated("Functionality folded into MappedForeignKey, so just use MappedLongForeignKey. Will be removed in 2.5")
  218
+@deprecated("Functionality folded into MappedForeignKey, so just use MappedLongForeignKey. Will be removed in 2.5", "2.4")
219 219
 trait LongMappedForeignMapper[T<:Mapper[T],O<:KeyedMapper[Long,O]]
220 220
                               extends MappedLongForeignKey[T,O]
221 221
 
@@ -226,7 +226,7 @@ extends MappedLong[T](theOwner) with MappedForeignKey[Long,T,O] with BaseForeign
226 226
 
227 227
   def foreignMeta = _foreignMeta
228 228
 
229  
-  @deprecated("Use 'box' instead")
  229
+  @deprecated("Use 'box' instead", "2.4")
230 230
   def can: Box[Long] = if (defined_?) Full(is) else Empty
231 231
 
232 232
   def box: Box[Long] = if (defined_?) Full(is) else Empty
2  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedString.scala
@@ -52,7 +52,7 @@ trait ValidateLength extends MixableMappedField {
52 52
 }
53 53
 
54 54
 trait HasApplyBoxString[T] {
55  
-  @deprecated("Just use apply(x openOr null). Will be removed in 2.5.")
  55
+  @deprecated("Just use apply(x openOr null). Will be removed in 2.5.", "2.4")
56 56
   def apply(ov: Box[String])(implicit disambiguateFromApplyBoxedForeign: BoxedStringToken): T = apply(ov openOr null)
57 57
   def apply(x: String): T
58 58
 }
4  persistence/mapper/src/main/scala/net/liftweb/mapper/MappedUniqueId.scala
@@ -35,10 +35,10 @@ abstract class MappedUniqueId[T<:Mapper[T]](override val fieldOwner: T, override
35 35
   * A field that holds the birth year for the user
36 36
   */
37 37
 abstract class MappedBirthYear[T <: Mapper[T]](owner: T, minAge: Int) extends MappedInt[T](owner) {
38  
-  override def defaultValue = year(timeNow) - minAge
  38
+  override def defaultValue = year(now) - minAge
39 39
 
40 40
   override def _toForm: Box[NodeSeq] = {
41  
-    val end = (year(timeNow) - minAge)
  41
+    val end = (year(now) - minAge)
42 42
     val start = end - 100
43 43
     Full(SHtml.selectObj((start to end).
44 44
 		  toList.
3  persistence/mapper/src/main/scala/net/liftweb/mapper/Mapper.scala
@@ -32,8 +32,7 @@ trait BaseMapper extends FieldContainer {
32 32
   def save: Boolean
33 33
 }
34 34
 
35  
-@serializable
36  
-trait Mapper[A<:Mapper[A]] extends BaseMapper {
  35
+trait Mapper[A<:Mapper[A]] extends BaseMapper with Serializable{
37 36
   self: A =>
38 37
   type MapperType = A
39 38
 
12  persistence/mapper/src/main/scala/net/liftweb/mapper/ProtoUser.scala
@@ -78,7 +78,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends KeyedMapper[Long, T] with UserIdAsStr
78 78
   /**
79 79
    * The string name for the first name field
80 80
    */
81  
-  def firstNameDisplayName = ??("first.name")
  81
+  def firstNameDisplayName = S.?("first.name")
82 82
 
83 83
   /**
84 84
    * The last field for the User.  You can override the behavior
@@ -99,7 +99,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends KeyedMapper[Long, T] with UserIdAsStr
99 99
   /**
100 100
    * The last name string
101 101
    */
102  
-  def lastNameDisplayName = ??("last.name")
  102
+  def lastNameDisplayName = S.?("last.name")
103 103
 
104 104
   /**
105 105
    * The email field for the User.  You can override the behavior
@@ -122,7 +122,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends KeyedMapper[Long, T] with UserIdAsStr
122 122
   /**
123 123
    * The email first name
124 124
    */
125  
-  def emailDisplayName = ??("email.address")
  125
+  def emailDisplayName = S.?("email.address")
126 126
 
127 127
   /**
128 128
    * The password field for the User.  You can override the behavior
@@ -142,7 +142,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends KeyedMapper[Long, T] with UserIdAsStr
142 142
   /**
143 143
    * The display name for the password field
144 144
    */
145  
-  def passwordDisplayName = ??("password")
  145
+  def passwordDisplayName = S.?("password")
146 146
 
147 147
   /**
148 148
    * The superuser field for the User.  You can override the behavior
@@ -422,12 +422,12 @@ trait MegaProtoUser[T <: MegaProtoUser[T]] extends ProtoUser[T] {
422 422
   /**
423 423
    * The string for the timezone field
424 424
    */
425  
-  def timezoneDisplayName = ??("time.zone")
  425
+  def timezoneDisplayName = S.?("time.zone")
426 426
 
427 427
   /**
428 428
    * The string for the locale field
429 429
    */
430  
-  def localeDisplayName = ??("locale")
  430
+  def localeDisplayName = S.?("locale")
431 431
 
432 432
 }
433 433
 
2  persistence/mapper/src/main/scala/net/liftweb/mapper/package.scala
@@ -27,6 +27,6 @@ package object mapper {
27 27
   def DefaultConnectionIdentifier = db.DefaultConnectionIdentifier
28 28
   def DriverType = db.DriverType
29 29
 
30  
-  @deprecated("Use util.Safe instead.")
  30
+  @deprecated("Use util.Safe instead.", "2.4")
31 31
   def Safe = util.Safe
32 32
 }
2  persistence/mongodb/src/main/scala/net/liftweb/mongodb/JObjectParser.scala
@@ -124,7 +124,7 @@ object JObjectParser extends SimpleInjector {
124 124
       case JInt(n) => renderInteger(n)
125 125
       case JDouble(n) => new java.lang.Double(n)
126 126
       case JNull => null
127  
-      case JNothing => error("can't render 'nothing'")
  127
+      case JNothing => sys.error("can't render 'nothing'")
128 128
       case JString(null) => "null"
129 129
       case JString(s) => stringProcessor.vend(s)
130 130
       case _ =>  ""
6  persistence/mongodb/src/main/scala/net/liftweb/mongodb/Meta.scala
@@ -65,7 +65,7 @@ private[mongodb] object Meta {
65 65
       case x: java.lang.Byte => JInt(BigInt(x.asInstanceOf[Byte]))
66 66
       case x: java.lang.Boolean => JBool(x.asInstanceOf[Boolean])
67 67
       case x: java.lang.Short => JInt(BigInt(x.asInstanceOf[Short]))
68  
-      case _ => error("not a primitive " + a.asInstanceOf[AnyRef].getClass)
  68
+      case _ => sys.error("not a primitive " + a.asInstanceOf[AnyRef].getClass)
69 69
     }
70 70
 
71 71
     /*
@@ -100,8 +100,8 @@ private[mongodb] object Meta {
100 100
       case x: ObjectId => objectIdAsJValue(x, formats)
101 101
       case x: Pattern => patternAsJValue(x)
102 102
       case x: UUID => uuidAsJValue(x)
103  
-      case x: DBRef => error("DBRefs are not supported.")
104  
-      case _ => error("not a mongotype " + a.asInstanceOf[AnyRef].getClass)
  103
+      case x: DBRef => sys.error("DBRefs are not supported.")
  104
+      case _ => sys.error("not a mongotype " + a.asInstanceOf[AnyRef].getClass)
105 105
     }
106 106
   }
107 107
 
2  persistence/mongodb/src/main/scala/net/liftweb/mongodb/Mongo.scala
@@ -68,7 +68,7 @@ object MongoHost {
68 68
 /*
69 69
 * Wrapper for creating a Replica Pair
70 70
 */
71  
-@deprecated("Use `MongoSet` with `List[ServerAddress]` as argument instead")
  71
+@deprecated("Use `MongoSet` with `List[ServerAddress]` as argument instead", "2.5")
72 72
 case class MongoPair(left: ServerAddress, right: ServerAddress, options: MongoOptions = new MongoOptions) extends MongoHostBase {
73 73
   lazy val mongo = new Mongo(left, right, options)
74 74
 }
12  persistence/record/src/main/scala/net/liftweb/record/ProtoUser.scala
@@ -77,7 +77,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends Record[T] {
77 77
   /**
78 78
    * The string name for the first name field
79 79
    */
80  
-  def firstNameDisplayName = ??("first.name")
  80
+  def firstNameDisplayName = S.?("first.name")
81 81
 
82 82
   /**
83 83
    * The last field for the User.  You can override the behavior
@@ -98,7 +98,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends Record[T] {
98 98
   /**
99 99
    * The last name string
100 100
    */
101  
-  def lastNameDisplayName = ??("last.name")
  101
+  def lastNameDisplayName = S.?("last.name")
102 102
 
103 103
   /**
104 104
    * The email field for the User.  You can override the behavior
@@ -122,7 +122,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends Record[T] {
122 122
   /**
123 123
    * The email first name
124 124
    */
125  
-  def emailDisplayName = ??("email.address")
  125
+  def emailDisplayName = S.?("email.address")
126 126
 
127 127
   /**
128 128
    * The password field for the User.  You can override the behavior
@@ -142,7 +142,7 @@ trait ProtoUser[T <: ProtoUser[T]] extends Record[T] {
142 142
   /**
143 143
    * The display name for the password field
144 144
    */
145  
-  def passwordDisplayName = ??("password")
  145
+  def passwordDisplayName = S.?("password")
146 146
 
147 147
   /**
148 148
    * The superuser field for the User.  You can override the behavior
@@ -419,12 +419,12 @@ trait MegaProtoUser[T <: MegaProtoUser[T]] extends ProtoUser[T] {
419 419
   /**
420 420
    * The string for the timezone field
421 421
    */
422  
-  def timezoneDisplayName = ??("time.zone")
  422
+  def timezoneDisplayName = S.?("time.zone")
423 423
 
424 424
   /**
425 425
    * The string for the locale field
426 426
    */
427  
-  def localeDisplayName = ??("locale")
  427
+  def localeDisplayName = S.?("locale")
428 428
 
429 429
 }
430 430
 
2  persistence/record/src/main/scala/net/liftweb/record/RecordHelpers.scala
@@ -29,7 +29,7 @@ object RecordHelpers {
29 29
       case JArray(vs)  => JsArray(vs.map(jvalueToJsExp): _*)
30 30
       case JBool(b)    => if (b) JsTrue else JsFalse
31 31
       case JDouble(d)  => Num(d)
32  
-      case JField(n,v) => error("no parallel")
  32
+      case JField(n,v) => sys.error("no parallel")
33 33
       case JInt(i)     => Num(i)
34 34
       case JNothing    => JsNull
35 35
       case JNull       => JsNull
2  persistence/squeryl-record/src/main/scala/net/liftweb/squerylrecord/SquerylRecord.scala
@@ -63,7 +63,7 @@ object SquerylRecord extends Loggable {
63 63
    * */
64 64
   private object currentSession extends DynoVar[Session]
65 65
   
66  
-  @deprecated(message = "Lift DB.use style transactions do not properly clean up Squeryl resources.  Please use initWithSquerylSession instead.")
  66
+  @deprecated(message = "Lift DB.use style transactions do not properly clean up Squeryl resources.  Please use initWithSquerylSession instead.", "2.5")
67 67
   def init(mkAdapter: () => DatabaseAdapter) = {
68 68
     FieldMetaData.factory = new RecordMetaDataFactory
69 69
     SessionFactory.externalTransactionManagementAdapter = Some(() => 
8  web/testkit/src/main/scala/net/liftweb/mocks/MockHttpServletRequest.scala
@@ -59,10 +59,10 @@ import json.JsonAST._
59 59
  *
60 60
  */
61 61
 class MockHttpServletRequest(val url : String = null, var contextPath : String = "") extends HttpServletRequest {
62  
-  @deprecated("Use the \"attributes\" var instead")
  62
+  @deprecated("Use the \"attributes\" var instead", "2.4")
63 63
   def attr = attributes
64 64
 
65  
-  @deprecated("Use the \"attributes\" var instead")
  65
+  @deprecated("Use the \"attributes\" var instead", "2.4")
66 66
   def attr_= (attrs : Map[String,Object]) = attributes = attrs
67 67
 
68 68
   var attributes: Map[String, Object] = Map()
@@ -183,10 +183,10 @@ class MockHttpServletRequest(val url : String = null, var contextPath : String =
183 183
    */
184 184
   var parameters : List[(String,String)] = Nil
185 185
 
186  
-  @deprecated("Use the \"parameters\" var instead")
  186
+  @deprecated("Use the \"parameters\" var instead", "2.4")
187 187
   def parameterMap = Map(parameters : _*)
188 188
 
189  
-  @deprecated("Use the \"parameters\" var instead")
  189
+  @deprecated("Use the \"parameters\" var instead", "2.4")
190 190
   def parameterMap_= (params : Map[String, List[String]]) {
191 191
     parameters = params.toList.flatMap {
192 192
       case (key,values) => values.map{(key,_)}
2  web/webkit/src/main/scala/net/liftweb/builtin/snippet/A.scala
@@ -23,7 +23,7 @@ import net.liftweb.http._
23 23
 import net.liftweb.http.js._
24 24
 import net.liftweb.util._
25 25
 
26  
-@deprecated("Use any of the ajax methods in SHtml instead.")
  26
+@deprecated("Use any of the ajax methods in SHtml instead.", "2.5")
27 27
 object A extends DispatchSnippet {
28 28
 
29 29
   def dispatch : DispatchIt = {
3  web/webkit/src/main/scala/net/liftweb/builtin/snippet/Msgs.scala
@@ -23,10 +23,9 @@ import scala.xml._
23 23
 import net.liftweb.util.Helpers._
24 24
 import net.liftweb.http.js._
25 25
 import JsCmds._
26  
-import net.liftweb.common.{Box, Full, Empty}
  26
+import net.liftweb.common.{Box, Empty}
27 27
 import common.Full
28 28
 import xml.Text
29  
-import snippet.AjaxMessageMeta
30 29
 
31 30
 
32 31
 /**
12  web/webkit/src/main/scala/net/liftweb/http/CometActor.scala
@@ -285,7 +285,7 @@ trait ListenerManager {
285 285
    * favor of doing the filtering in the registered Actor's
286 286
    * message handling partial functions instead.
287 287
    */
288  
-  @deprecated("Accept/reject logic should be done in the partial function that handles the message.")
  288
+  @deprecated("Accept/reject logic should be done in the partial function that handles the message.", "2.4")
289 289
   protected def updateIfPassesTest(update: Any)(info: ActorTest) {
290 290
     info match {
291 291
       case (who, test) => if (test.isDefinedAt(update) && test(update)) who ! update
@@ -329,7 +329,7 @@ trait ListenerManager {
329 329
  *
330 330
  * @see CometListener
331 331
  */
332  
-@deprecated("Use the CometListener trait instead.")
  332
+@deprecated("Use the CometListener trait instead.", "2.4")
333 333
 trait CometListenee extends CometListener {
334 334
   self: CometActor =>
335 335
 }
@@ -372,7 +372,7 @@ trait CometListener extends CometActor {
372 372
    * the session's context.  This causes problems.  Accept/reject logic should be done
373 373
    * in the partial function that handles the message.
374 374
    */
375  
-  @deprecated("Accept/reject logic should be done in the partial function that handles the message.")
  375
+  @deprecated("Accept/reject logic should be done in the partial function that handles the message.", "2.4")
376 376
   protected def shouldUpdate: PartialFunction[Any, Boolean] = {
377 377
     case _ => true
378 378
   }
@@ -572,7 +572,7 @@ trait CometActor extends LiftActor with LiftCometActor with BindHelpers {
572 572
 
573 573
   @volatile private var _defaultHtml: NodeSeq = _
574 574
 
575  
-  @deprecated("Use defaultHtml")
  575
+  @deprecated("Use defaultHtml", "2.3")
576 576
   def defaultXml = _defaultHtml
577 577
 
578 578
   /**
@@ -1525,7 +1525,6 @@ object Notice {
1525 1525
  * @param destroyScript is executed when the comet widget is redrawn ( e.g., if you register drag or mouse-over or some events, you unregister them here so the page doesn't leak resources.)
1526 1526
  * @param ignoreHtmlOnJs -- if the reason for sending the render is a Comet update, ignore the xhtml part and just run the JS commands.  This is useful in IE when you need to redraw the stuff inside <table><tr><td>... just doing innerHtml on <tr> is broken in IE
1527 1527
  */
1528  
-@serializable
1529 1528
 case class RenderOut(xhtml: Box[NodeSeq], fixedXhtml: Box[NodeSeq], script: Box[JsCmd], destroyScript: Box[JsCmd], ignoreHtmlOnJs: Boolean) {
1530 1529
   def this(xhtml: NodeSeq) = this (Full(xhtml), Empty, Empty, Empty, false)
1531 1530
 
@@ -1538,6 +1537,5 @@ case class RenderOut(xhtml: Box[NodeSeq], fixedXhtml: Box[NodeSeq], script: Box[
1538 1537
       destroyScript, ignoreHtmlOnJs)
1539 1538
 }
1540 1539
 
1541  
-@serializable
1542  
-private[http] object Never
  1540
+private[http] object Never extends Serializable
1543 1541
 
2  web/webkit/src/main/scala/net/liftweb/http/LiftResponse.scala
@@ -481,7 +481,7 @@ object DocType {
481 481
  * Avoid using this in favor of LiftRules.docType
482 482
  *
483 483
  */
484  
-@deprecated("Avoid using this in favor of LiftRules.docType")
  484
+@deprecated("Avoid using this in favor of LiftRules.docType", "2.3")
485 485
 object ResponseInfo {
486 486
 
487 487
    def docType: PartialFunction[Req, Box[String]] = new PartialFunction[Req, Box[String]](){
22  web/webkit/src/main/scala/net/liftweb/http/LiftRules.scala
@@ -366,7 +366,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
366 366
    * has been deprecated in favor of statelessReqTest which also passes
367 367
    * the HTTPRequest instance for testing of the user agent and other stuff.
368 368
    */
369  
-  @deprecated("Use statelessReqTest")
  369
+  @deprecated("Use statelessReqTest", "2.4")
370 370
   val statelessTest = RulesSeq[StatelessTestPF]
371 371
 
372 372
 
@@ -462,7 +462,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
462 462
   /**
463 463
    * Set the doc type used.  Use the HtmlProperties
464 464
    */
465  
-  @deprecated("Use the HtmlProperties")
  465
+  @deprecated("Use the HtmlProperties", "2.4")
466 466
   val docType: FactoryMaker[Req => Box[String]] = new FactoryMaker( (r: Req) => r  match {
467 467
     case _ if S.skipDocType => Empty
468 468
     case _ if S.getDocType._1 => S.getDocType._2
@@ -602,7 +602,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
602 602
    * contingent on an unchanged LiftRules.noCometSessionCommand and on
603 603
    * liftComet.lift_sessionLost not being overridden client-side.
604 604
    */
605  
-  @scala.deprecated("Use LiftRules.noCometSessionCmd.")
  605
+  @deprecated("Use LiftRules.noCometSessionCmd.", "2.5")
606 606
   @volatile var noCometSessionPage = "/"
607 607
 
608 608
   /**
@@ -1024,7 +1024,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1024 1024
    * no session will be created and no JSESSIONID cookie will be presented to the user (unless
1025 1025
    * the user has presented a JSESSIONID cookie).
1026 1026
    */
1027  
-  @scala.deprecated("Use statelessDispatch")
  1027
+  @deprecated("Use statelessDispatch", "2.4")
1028 1028
   def statelessDispatchTable = statelessDispatch
1029 1029
 
1030 1030
   /**
@@ -1221,7 +1221,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1221 1221
   /**
1222 1222
    * Use statelessRewrite or statefuleRewrite
1223 1223
    */
1224  
-  @deprecated("Use statelessRewrite or statefuleRewrite")
  1224
+  @deprecated("Use statelessRewrite or statefuleRewrite", "2.3")
1225 1225
   val rewrite = statelessRewrite
1226 1226
 
1227 1227
   /**
@@ -1355,9 +1355,9 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1355 1355
    * LiftRules.noCometSessionCmd).
1356 1356
    */
1357 1357
   @volatile var redirectAsyncOnSessionLoss = true
1358  
-  @deprecated("Use redirectAsyncOnSessionLoss instead.")
  1358
+  @deprecated("Use redirectAsyncOnSessionLoss instead.", "2.5")
1359 1359
   def redirectAjaxOnSessionLoss = redirectAsyncOnSessionLoss
1360  
-  @deprecated("Use redirectAsyncOnSessionLoss instead.")
  1360
+  @deprecated("Use redirectAsyncOnSessionLoss instead.", "2.5")
1361 1361
   def redirectAjaxOnSessionLoss_=(updated:Boolean) = redirectAsyncOnSessionLoss = updated
1362 1362
 
1363 1363
   /**
@@ -1490,7 +1490,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1490 1490
   /**
1491 1491
    * Tells Lift if the Ajax JavaScript shoukd be included. By default it is set to true.
1492 1492
    */
1493  
-  @deprecated("Use autoIncludeAjaxCalc")
  1493
+  @deprecated("Use autoIncludeAjaxCalc", "2.4")
1494 1494
   @volatile var autoIncludeAjax: LiftSession => Boolean = session => autoIncludeAjaxCalc.vend().apply(session)
1495 1495
 
1496 1496
   val autoIncludeAjaxCalc: FactoryMaker[() => LiftSession => Boolean] = 
@@ -1716,7 +1716,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1716 1716
    * A function to format a Date... can be replaced by a function that is user-specific
1717 1717
    Replaced by dateTimeConverter
1718 1718
    */
1719  
-  @deprecated("Replaced by dateTimeConverter")
  1719
+  @deprecated("Replaced by dateTimeConverter", "2.3")
1720 1720
   @volatile var formatDate: Date => String = date => date match {
1721 1721
     case null => LiftRules.dateTimeConverter.vend.formatDate(new Date(0L))
1722 1722
     case s    => toInternetDate(s)
@@ -1726,7 +1726,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1726 1726
    * A function that parses a String into a Date... can be replaced by something that's user-specific
1727 1727
    Replaced by dateTimeConverter
1728 1728
    */
1729  
-  @deprecated("Replaced by dateTimeConverter")
  1729
+  @deprecated("Replaced by dateTimeConverter", "2.3")
1730 1730
   @volatile var parseDate: String => Box[Date] = str => str match {
1731 1731
     case null => Empty
1732 1732
     case s => Helpers.toDate(s)
@@ -1752,7 +1752,7 @@ class LiftRules() extends Factory with FormVendor with LazyLoggable {
1752 1752
   /**
1753 1753
    * Provides the async provider instance responsible for suspending/resuming requests
1754 1754
    */
1755  
-  @deprecated("Register your povider via addSyncProvider")
  1755
+  @deprecated("Register your povider via addSyncProvider", "2.4")
1756 1756
   var servletAsyncProvider: (HTTPRequest) => ServletAsyncProvider = null // (req) => new Jetty6AsyncProvider(req)
1757 1757
 
1758 1758
   /**
2  web/webkit/src/main/scala/net/liftweb/http/LiftScreen.scala
@@ -67,7 +67,7 @@ trait AbstractScreen extends Factory {
67 67
    *
68 68
    * @deprecated
69 69
    */
70  
-  @deprecated("use addFields()")
  70
+  @deprecated("use addFields()", "2.4")
71 71
   protected def _register(field: () => FieldContainer) = addFields(field)
72 72
 
73 73
   protected def hasUploadField: Boolean = screenFields.foldLeft(false)(_ | _.uploadField_?)
2  web/webkit/src/main/scala/net/liftweb/http/LiftSession.scala
@@ -143,7 +143,7 @@ object LiftSession {
143 143
    * Check to see if the template is marked designer friendly
144 144
    * and lop off the stuff before the first surround
145 145
    */
146  
-  @deprecated("Use Templates.checkForContentId")
  146
+  @deprecated("Use Templates.checkForContentId", "2.3")
147 147
   def checkForContentId(in: NodeSeq): NodeSeq =
148 148
     Templates.checkForContentId(in)
149 149
 
4  web/webkit/src/main/scala/net/liftweb/http/Paginator.scala
@@ -164,9 +164,9 @@ trait PaginatorSnippet[T] extends Paginator[T] {
164 164
    */
165 165
   def currentXml: NodeSeq = 
166 166
     if(count==0)
167  
-      Text(??("paginator.norecords"))
  167
+      Text(S.?("paginator.norecords"))
168 168
     else
169  
-      Text(??("paginator.displayingrecords", 
  169
+      Text(S.?("paginator.displayingrecords",
170 170
               Array(recordsFrom, recordsTo, count).map(_.asInstanceOf[AnyRef]) : _*))
171 171
 
172 172
   /**
9  web/webkit/src/main/scala/net/liftweb/http/Req.scala
@@ -212,11 +212,10 @@ trait UserAgentCalculator {
212 212
   def userAgent: Box[String]
213 213
 }
214 214
 
215  
-@serializable
216  
-sealed trait ParamHolder {
  215
+sealed trait ParamHolder extends Serializable{
217 216
   def name: String
218 217
 }
219  
-@serializable
  218
+
220 219
 final case class NormalParamHolder(name: String, value: String) extends ParamHolder
221 220
 
222 221
 /**
@@ -227,9 +226,8 @@ final case class NormalParamHolder(name: String, value: String) extends ParamHol
227 226
  * @param mimeType the mime type, as specified in the Content-Type field
228 227
  * @param fileName The local filename on the client
229 228
  */
230  
-@serializable
231 229
 abstract class FileParamHolder(val name: String, val mimeType: String,
232  
-                               val fileName: String) extends ParamHolder
  230
+                               val fileName: String) extends ParamHolder with Serializable
233 231
 {
234 232
   /**
235 233
    * Returns the contents of the uploaded file as a Byte array.
@@ -1222,7 +1220,6 @@ final case class RewriteRequest(path: ParsePath, requestType: RequestType, httpR
1222 1220
 /**
1223 1221
  * The representation of an URI path
1224 1222
  */
1225  
-@serializable
1226 1223
 case class ParsePath(partPath: List[String], suffix: String, absolute: Boolean, endSlash: Boolean) {
1227 1224
   def drop(cnt: Int) = ParsePath(partPath.drop(cnt), suffix, absolute, endSlash)
1228 1225
 
9  web/webkit/src/main/scala/net/liftweb/http/RequestType.scala
@@ -19,8 +19,7 @@ package http
19 19
 
20 20
 import provider._
21 21
 
22  
-@serializable
23  
-abstract class RequestType {
  22
+abstract class RequestType extends Serializable{
24 23
   def post_? : Boolean = false
25 24
 
26 25
   def get_? : Boolean = false
@@ -34,32 +33,26 @@ abstract class RequestType {
34 33
   def method: String
35 34
 }
36 35
 
37  
-@serializable
38 36
 case object GetRequest extends RequestType {
39 37
   override def get_? = true
40 38
   def method = "GET"
41 39
 }
42  
-@serializable
43 40
 case object PostRequest extends RequestType {
44 41
   override def post_? = true
45 42
   def method = "POST"
46 43
 }
47  
-@serializable
48 44
 case object HeadRequest extends RequestType {
49 45
   override def head_? = true
50 46
   def method = "HEAD"
51 47
 }
52  
-@serializable
53 48
 case object PutRequest extends RequestType {
54 49
   override def put_? = true
55 50
   def method = "PUT"
56 51
 }
57  
-@serializable
58 52
 case object DeleteRequest extends RequestType {
59 53
   override def delete_? = true
60 54
   def method = "DELETE"
61 55
 }
62  
-@serializable
63 56
 case class UnknownRequest(val method: String) extends RequestType
64 57
 
65 58
 object RequestType {
38  web/webkit/src/main/scala/net/liftweb/http/S.scala
@@ -127,8 +127,7 @@ object S extends S {
127 127
   /**
128 128
    *  Impersonates a function that will be called when uploading files
129 129
    */
130  
-  @serializable
131  
-  private final class BinFuncHolder(val func: FileParamHolder => Any, val owner: Box[String]) extends AFuncHolder {
  130
+  private final class BinFuncHolder(val func: FileParamHolder => Any, val owner: Box[String]) extends AFuncHolder with Serializable{
132 131
     def apply(in: List[String]) {logger.info("You attempted to call a 'File Upload' function with a normal parameter.  Did you forget to 'enctype' to 'multipart/form-data'?")}
133 132
 
134 133
     override def apply(in: FileParamHolder) = func(in)
@@ -152,8 +151,7 @@ object S extends S {
152 151
    * Impersonates a function that is executed on HTTP requests from client. The function
153 152
    * takes a String as the only parameter and returns an Any.
154 153
    */
155  
-  @serializable
156  
-  private final class SFuncHolder(val func: String => Any, val owner: Box[String]) extends AFuncHolder {
  154
+  private final class SFuncHolder(val func: String => Any, val owner: Box[String]) extends AFuncHolder with Serializable{
157 155
     def this(func: String => Any) = this (func, Empty)
158 156
 
159 157
     def apply(in: List[String]): Any = in.headOption.toList.map(func(_))
@@ -169,8 +167,7 @@ object S extends S {
169 167
    * Impersonates a function that is executed on HTTP requests from client. The function
170 168
    * takes a List[String] as the only parameter and returns an Any.
171 169
    */
172  
-  @serializable
173  
-  private final class LFuncHolder(val func: List[String] => Any, val owner: Box[String]) extends AFuncHolder {
  170
+  private final class LFuncHolder(val func: List[String] => Any, val owner: Box[String]) extends AFuncHolder with Serializable {
174 171
     def apply(in: List[String]): Any = func(in)
175 172
   }
176 173
 
@@ -184,16 +181,14 @@ object S extends S {
184 181
    * Impersonates a function that is executed on HTTP requests from client. The function
185 182
    * takes zero arguments and returns an Any.
186 183
    */
187  
-  @serializable
188  
-  private final class NFuncHolder(val func: () => Any, val owner: Box[String]) extends AFuncHolder {
  184
+  private final class NFuncHolder(val func: () => Any, val owner: Box[String]) extends AFuncHolder with Serializable{
189 185
     def apply(in: List[String]): Any = in.headOption.toList.map(s => func())
190 186
   }
191 187
 
192 188
   /**
193 189
    * Abstrats a function that is executed on HTTP requests from client.
194 190
    */
195  
-  @serializable
196  
-  sealed trait AFuncHolder extends Function1[List[String], Any] {
  191
+  sealed trait AFuncHolder extends Function1[List[String], Any] with Serializable{
197 192
     def owner: Box[String]
198 193
 
199 194
     def apply(in: List[String]): Any
@@ -1026,7 +1021,7 @@ trait S extends HasParams with Loggable {
1026 1021
    *
1027 1022
    * @return the localized version of the string
1028 1023
    */
1029  
-  @deprecated("Use S.?() instead. S.?? will be removed in 2.6")
  1024
+  @deprecated("Use S.?() instead. S.?? will be removed in 2.6", "2.5")
1030 1025
   def ??(str: String): String = ?(str)
1031 1026
 
1032 1027
   /**
@@ -1037,7 +1032,7 @@ trait S extends HasParams with Loggable {
1037 1032
    *
1038 1033
    * @return the localized version of the string
1039 1034
    */
1040  
-  @deprecated("Use S.?() instead. S.?? will be removed in 2.6")
  1035
+  @deprecated("Use S.?() instead. S.?? will be removed in 2.6", "2.5")
1041 1036
   def ??(str: String, params: AnyRef*): String = String.format(locale, ?(str), params: _*)
1042 1037
 
1043 1038
   private def ?!(str: String, resBundle: List[ResourceBundle]): String = resBundle.flatMap(r => tryo(r.getObject(str) match {
@@ -2018,7 +2013,7 @@ for {
2018 2013
    *
2019 2014
    * @param attr The attributes to set temporarily
2020 2015
    */
2021  
-  @deprecated("Use the S.withAttrs method instead")
  2016
+  @deprecated("Use the S.withAttrs method instead", "2.4")
2022 2017
   def setVars[T](attr: MetaData)(f: => T): T = withAttrs(attr)(f)
2023 2018
 
2024 2019
   /**
@@ -2655,10 +2650,10 @@ for {
2655 2650
    */
2656 2651
   private[http] def noticesToJsCmd: JsCmd = LiftRules.noticesToJsCmd()
2657 2652
 
2658  
-  @deprecated("Use AFuncHolder.listStrToAF")
  2653
+  @deprecated("Use AFuncHolder.listStrToAF", "2.4")
2659 2654
   def toLFunc(in: List[String] => Any): AFuncHolder = LFuncHolder(in, Empty)
2660 2655
 
2661  
-  @deprecated("Use AFuncHolder.unitToAF")
  2656
+  @deprecated("Use AFuncHolder.unitToAF", "2.4")
2662 2657
   def toNFunc(in: () => Any): AFuncHolder = NFuncHolder(in, Empty)
2663 2658
 
2664 2659
   implicit def stuff2ToUnpref(in: (Symbol, Any)): UnprefixedAttribute = new UnprefixedAttribute(in._1.name, Text(in._2.toString), Null)
@@ -2754,7 +2749,7 @@ for {
2754 2749
    *
2755 2750
    * Use fmapFunc(AFuncHolder)(String => T)
2756 2751
    */
2757  
-  @deprecated("Use fmapFunc(AFuncHolder)(String => T)")