Skip to content

Instantly share code, notes, and snippets.

@rktoomey
Created July 28, 2011 17:35
Show Gist options
  • Save rktoomey/1112062 to your computer and use it in GitHub Desktop.
Save rktoomey/1112062 to your computer and use it in GitHub Desktop.
Using xsbt 0.10.1 with salat
rose@calisson:~$ sudo su - cb
cb@calisson:~$ ls -al
total 36
drwxr-xr-x 2 cb cb 4096 2011-09-16 15:02 .
drwxr-xr-x 5 root root 4096 2011-01-27 09:07 ..
-rw------- 1 cb cb 2599 2011-09-16 15:02 .bash_history
-rw-r--r-- 1 cb cb 220 2010-08-10 16:47 .bash_logout
-rw-r--r-- 1 cb cb 3353 2010-08-10 16:47 .bashrc
-rw-r--r-- 1 cb cb 179 2010-09-15 07:41 examples.desktop
-rw-r--r-- 1 cb cb 675 2010-08-10 16:47 .profile
-rw------- 1 cb cb 7149 2011-04-22 10:43 .viminfo
cb@calisson:~$ git clone git://github.com/novus/salat.git
Cloning into salat...
remote: Counting objects: 4134, done.
remote: Compressing objects: 100% (1398/1398), done.
remote: Total 4134 (delta 1539), reused 3925 (delta 1331)
Receiving objects: 100% (4134/4134), 463.02 KiB, done.
Resolving deltas: 100% (1539/1539), done.
cb@calisson:~$ cd salat/
cb@calisson:~/salat$ ls -al
total 48
drwxr-xr-x 8 cb cb 4096 2011-09-16 15:02 .
drwxr-xr-x 3 cb cb 4096 2011-09-16 15:02 ..
drwxr-xr-x 8 cb cb 4096 2011-09-16 15:02 .git
-rw-r--r-- 1 cb cb 191 2011-09-16 15:02 .gitignore
-rw-r--r-- 1 cb cb 613 2011-09-16 15:02 LICENSE.md
drwxr-xr-x 2 cb cb 4096 2011-09-16 15:02 notes
drwxr-xr-x 3 cb cb 4096 2011-09-16 15:02 project
drwxr-xr-x 4 cb cb 4096 2011-09-16 15:02 project_sbt0.7
-rw-r--r-- 1 cb cb 5892 2011-09-16 15:02 README.md
drwxr-xr-x 3 cb cb 4096 2011-09-16 15:02 salat-core
drwxr-xr-x 3 cb cb 4096 2011-09-16 15:02 salat-util
cb@calisson:~/salat$ which xsbt
/usr/bin/xsbt
cb@calisson:~/salat$ cat /usr/bin/xsbt
java -Xms512M -Xmx1500M -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:ReservedCodeCacheSize=256M -jar /opt/lib/sbt-launch.jar "$@"
cb@calisson:~/salat$ xsbt test
Getting net.java.dev.jna jna 3.2.3 ...
downloading http://repo1.maven.org/maven2/net/java/dev/jna/jna/3.2.3/jna-3.2.3.jar ...
[SUCCESSFUL ] net.java.dev.jna#jna;3.2.3!jna.jar (1322ms)
:: retrieving :: org.scala-tools.sbt#boot-app
confs: [default]
1 artifacts copied, 0 already retrieved (838kB/16ms)
Getting Scala 2.8.1 (for sbt)...
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.8.1/scala-compiler-2.8.1.jar ...
[SUCCESSFUL ] org.scala-lang#scala-compiler;2.8.1!scala-compiler.jar (3581ms)
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.8.1/scala-library-2.8.1.jar ...
[SUCCESSFUL ] org.scala-lang#scala-library;2.8.1!scala-library.jar (2823ms)
downloading http://repo1.maven.org/maven2/jline/jline/0.9.91/jline-0.9.91.jar ...
[SUCCESSFUL ] jline#jline;0.9.91!jline.jar (953ms)
downloading http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar ...
[SUCCESSFUL ] junit#junit;3.8.1!junit.jar (999ms)
:: retrieving :: org.scala-tools.sbt#boot-scala
confs: [default]
4 artifacts copied, 0 already retrieved (15296kB/32ms)
Getting org.scala-tools.sbt sbt_2.8.1 0.10.1 ...
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt_2.8.1/0.10.1/jars/sbt_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#sbt_2.8.1;0.10.1!sbt_2.8.1.jar (91ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/main_2.8.1/0.10.1/jars/main_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#main_2.8.1;0.10.1!main_2.8.1.jar (652ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/compiler-interface/0.10.1/jars/compiler-interface-src.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#compiler-interface;0.10.1!compiler-interface-src.jar (136ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/compiler-interface/0.10.1/jars/compiler-interface-bin.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#compiler-interface;0.10.1!compiler-interface-bin.jar (119ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/precompiled-2_9_0-1/0.10.1/jars/compiler-interface-bin.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#precompiled-2_9_0-1;0.10.1!compiler-interface-bin.jar (120ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/actions_2.8.1/0.10.1/jars/actions_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#actions_2.8.1;0.10.1!actions_2.8.1.jar (254ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/interface/0.10.1/jars/interface.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#interface;0.10.1!interface.jar (91ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/io_2.8.1/0.10.1/jars/io_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#io_2.8.1;0.10.1!io_2.8.1.jar (202ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/ivy_2.8.1/0.10.1/jars/ivy_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#ivy_2.8.1;0.10.1!ivy_2.8.1.jar (390ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/launcher-interface_2.8.1/0.10.1/jars/launcher-interface_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#launcher-interface_2.8.1;0.10.1!launcher-interface_2.8.1.jar (88ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/logging_2.8.1/0.10.1/jars/logging_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#logging_2.8.1;0.10.1!logging_2.8.1.jar (109ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/process_2.8.1/0.10.1/jars/process_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#process_2.8.1;0.10.1!process_2.8.1.jar (132ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/run_2.8.1/0.10.1/jars/run_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#run_2.8.1;0.10.1!run_2.8.1.jar (123ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/classfile_2.8.1/0.10.1/jars/classfile_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#classfile_2.8.1;0.10.1!classfile_2.8.1.jar (114ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/classpath_2.8.1/0.10.1/jars/classpath_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#classpath_2.8.1;0.10.1!classpath_2.8.1.jar (108ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/incremental-compiler_2.8.1/0.10.1/jars/incremental-compiler_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#incremental-compiler_2.8.1;0.10.1!incremental-compiler_2.8.1.jar (165ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/persist_2.8.1/0.10.1/jars/persist_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#persist_2.8.1;0.10.1!persist_2.8.1.jar (126ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/compile_2.8.1/0.10.1/jars/compile_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#compile_2.8.1;0.10.1!compile_2.8.1.jar (123ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/completion_2.8.1/0.10.1/jars/completion_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#completion_2.8.1;0.10.1!completion_2.8.1.jar (196ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/discovery_2.8.1/0.10.1/jars/discovery_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#discovery_2.8.1;0.10.1!discovery_2.8.1.jar (81ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/task-system_2.8.1/0.10.1/jars/task-system_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#task-system_2.8.1;0.10.1!task-system_2.8.1.jar (124ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/tasks_2.8.1/0.10.1/jars/tasks_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#tasks_2.8.1;0.10.1!tasks_2.8.1.jar (116ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/tracking_2.8.1/0.10.1/jars/tracking_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#tracking_2.8.1;0.10.1!tracking_2.8.1.jar (94ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/testing_2.8.1/0.10.1/jars/testing_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#testing_2.8.1;0.10.1!testing_2.8.1.jar (104ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/control_2.8.1/0.10.1/jars/control_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#control_2.8.1;0.10.1!control_2.8.1.jar (90ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/collections_2.8.1/0.10.1/jars/collections_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#collections_2.8.1;0.10.1!collections_2.8.1.jar (154ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/api_2.8.1/0.10.1/jars/api_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#api_2.8.1;0.10.1!api_2.8.1.jar (196ms)
downloading http://repo1.maven.org/maven2/org/scala-tools/sbinary/sbinary_2.8.1/0.4.0/sbinary_2.8.1-0.4.0.jar ...
[SUCCESSFUL ] org.scala-tools.sbinary#sbinary_2.8.1;0.4.0!sbinary_2.8.1.jar (785ms)
downloading http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar ...
[SUCCESSFUL ] org.apache.ivy#ivy;2.2.0!ivy.jar (1217ms)
downloading http://repo1.maven.org/maven2/com/jcraft/jsch/0.1.31/jsch-0.1.31.jar ...
[SUCCESSFUL ] com.jcraft#jsch;0.1.31!jsch.jar (1019ms)
downloading http://repo1.maven.org/maven2/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar ...
[SUCCESSFUL ] commons-httpclient#commons-httpclient;3.1!commons-httpclient.jar (1030ms)
downloading http://repo1.maven.org/maven2/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar ...
[SUCCESSFUL ] commons-logging#commons-logging;1.0.4!commons-logging.jar (996ms)
downloading http://repo1.maven.org/maven2/commons-codec/commons-codec/1.2/commons-codec-1.2.jar ...
[SUCCESSFUL ] commons-codec#commons-codec;1.2!commons-codec.jar (1000ms)
downloading http://repo1.maven.org/maven2/jline/jline/0.9.94/jline-0.9.94.jar ...
[SUCCESSFUL ] jline#jline;0.9.94!jline.jar (999ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/cache_2.8.1/0.10.1/jars/cache_2.8.1.jar ...
[SUCCESSFUL ] org.scala-tools.sbt#cache_2.8.1;0.10.1!cache_2.8.1.jar (177ms)
downloading http://repo1.maven.org/maven2/org/scala-tools/testing/test-interface/0.5/test-interface-0.5.jar ...
[SUCCESSFUL ] org.scala-tools.testing#test-interface;0.5!test-interface.jar (569ms)
:: retrieving :: org.scala-tools.sbt#boot-app
confs: [default]
36 artifacts copied, 0 already retrieved (6414kB/35ms)
[info] Set current project to default-22ac77 (in build file:/home/cb/salat/project/plugins/)
[info] Updating {file:/home/cb/salat/project/plugins/}default-22ac77...
[info] Done updating.
[info] Compiling 1 Scala source to /home/cb/salat/project/target/scala_2.8.1/classes...
[info] Set current project to salat (in build file:/home/cb/salat/)
[info] Formatting 6 Scala sources {file:/home/cb/salat/}salat-util(test)...
[info] Formatting 11 Scala sources {file:/home/cb/salat/}salat-util(compile)...
[info] Formatting 36 Scala sources {file:/home/cb/salat/}salat-core(test)...
[info] Formatting 32 Scala sources {file:/home/cb/salat/}salat-core(compile)...
[info] Updating {file:/home/cb/salat/}salat...
[info] Updating {file:/home/cb/salat/}salat-util...
[info] Done updating.
[info] No tests to run for {file:/home/cb/salat/}salat/test:test
[info] Done updating.
[info] Updating {file:/home/cb/salat/}salat-core...
[info] Compiling 11 Scala sources to /home/cb/salat/salat-util/target/scala-2.8.1.final/classes...
[info] Compiling 6 Scala sources to /home/cb/salat/salat-util/target/scala-2.8.1.final/test-classes...
[warn] /home/cb/salat/salat-util/src/test/scala/com/novus/salat/util/SalatDAOUtilSpec.scala:23: imported `SalatDAOUtils' is permanently hidden by definition of object SalatDAOUtils in package util
[warn] import com.novus.salat.util.SalatDAOUtils
[warn] ^
[info] Done updating.
[info] Compiling 32 Scala sources and 6 Java sources to /home/cb/salat/salat-core/target/scala-2.8.1.final/classes...
[warn] one warning found
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/package.scala:25: imported `Grater' is permanently hidden by definition of class Grater in package salat
[warn] import com.novus.salat.{ Grater, Context }
[warn] ^
3 [specs2.DefaultExecutionStrategy7] INFO com.novus.salat.util.encoding.TypeHintEncodingSpec - clazzName: com.novus.salat.util.model.ConcreteCaseObject$
[info] instantiate with a list of chars
[info] + setting the base to the number of distinct chars
[info] + creating two lookup maps BigInt <-> Char
[info] + blow up if the char list is empty
[info] + blow up if there are duplicate chars
[info]
[info] encode and decode to BigInt
[info] + a simple class name consisting of a-zA-z and dots
[info] + a class name with an underscore
[info] + a class name with a dollar sign
[info] a class name with unicode characters
[info] + full JLS unicode encoding must succeed
[info] + US ASCII encoding must fail
[info]
[info]
[info]
[info] Total for specification TypeHintEncodingSpec
[info] Finished in 3 seconds, 467 ms
[info] 9 examples, 0 failure, 0 error
[info]
836 [specs2.DefaultExecutionStrategy8] WARN com.novus.salat.util.BestAvailableConstructor$ - constructor: clazz='class com.novus.salat.util.model.OnlyEmptyConstructor' ---> found only empty constructor 'public com.novus.salat.util.model.OnlyEmptyConstructor()'
[info] BestAvailableConstructor should
[info] + find a constructor with args when one is present
[info] + discard an empty constructor in favour of one with args
[info] + throw an exception if more than one constructor with args is present
[info] + allow an empty constructor if no better alternative exists
[info]
[info]
[info] Total for specification BestAvailableConstructorSpec
[info] Finished in 204 ms
[info] 4 examples, 0 failure, 0 error
[info]
[info] DAO Utils should
[info] + provide a method that returns exactly one result or detonates with a useful error
[info]
[info]
[info] Total for specification SalatDAOUtilSpec
[info] Finished in 4 ms
[info] 1 example, 0 failure, 0 error
[info]
[info] Passed: : Total 14, Failed 0, Errors 0, Passed 14, Skipped 0
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Extractors.scala:51: non variable type-argument String in type pattern scala.collection.Map[String,_] is unchecked since it is eliminated by erasure
[warn] case map: scala.collection.Map[String, _] => {
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Injectors.scala:51: non variable type-argument Any in type pattern Traversable[Any] is unchecked since it is eliminated by erasure
[warn] case traversable: Traversable[Any] => Some(traversableImpl(pt, traversable.map(transform(path, t, _))))
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/extract/Extractors.scala:232: non variable type-argument String in type pattern scala.collection.Map[String,_] is unchecked since it is eliminated by erasure
[warn] case map: scala.collection.Map[String, _] => {
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/extract/Extractors.scala:251: type com.novus.salat.annotations.raw.EnumAs @scala.annotation.target.getter in type pattern com.novus.salat.annotations.package.EnumAs is unchecked since it is eliminated by erasure
[warn] case specific: EnumAs => specific.strategy
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/inject/Injectors.scala:340: non variable type-argument Any in type pattern Traversable[Any] is unchecked since it is eliminated by erasure
[warn] case traversable: Traversable[Any] => Some(traversableImpl(parentType, traversable.map {
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/inject/Injectors.scala:406: type com.novus.salat.annotations.raw.EnumAs @scala.annotation.target.getter in type pattern com.novus.salat.annotations.package.EnumAs is unchecked since it is eliminated by erasure
[warn] case specific: EnumAs => specific.strategy
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Injectors.scala:94: type Integer in package scala is deprecated: use <code>java.lang.Integer</code> instead
[warn] invoke(companionObject, id.asInstanceOf[Integer])
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Injectors.scala:98: type Integer in package scala is deprecated: use <code>java.lang.Integer</code> instead
[warn] invoke(companionObject, id.asInstanceOf[Integer])
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/util/MissingGraterExplanation.scala:28: match is not exhaustive!
[warn] missing combination None
[warn] def clazzFromTypeHint(typeHint: Option[String])(implicit ctx: Context): Option[Class[_]] = typeHint match {
[warn] ^
[warn] 10 warnings found
[info] Compiling 36 Scala sources to /home/cb/salat/salat-core/target/scala-2.8.1.final/test-classes...
[info] Salat grater should
[info] + preserve ScalaBigDecimal precision to 16 places
[info] + preserve scala.BigDecimal precision to 16 places
[info]
[info] properly deserialize any number type out of Mongo back into a BigDecimal
[info] + whole number
[info] + decimal
[info]
[info]
[info] Total for specification BigDecimalPrecisionTest
[info] Finished in 2 seconds, 829 ms
[info] 4 examples, 0 failure, 0 error
[info]
[info] Salat simple DAO should
[info] + supply a useful description for debugging
[info] + insert a case class
[info] + insert a collection of case classes
[info] + no-op inserting an empty collection of objects
[info] + support findOne returning Option[T]
[info] + support findOneById returning Option[T]
[info] + support updating a case class
[info] + support saving a case class
[info] + support removing a case class
[info] + support find returning a Mongo cursor typed to a case class
[info] + support find with a set of keys
[info] + support findOne with an object typed to the id
[info] + support using a query to bring back a typed list of ids
[info] + support using an iterator
[info] + support primitive projections
[info] + support using a projection on an Option field to filter out Nones
[info] + support case class projections
[info]
[info]
[info] Total for specification SalatDAOSpec
[info] Finished in 692 ms
[info] 17 examples, 0 failure, 0 error
[info]
2295 [specs2.DefaultExecutionStrategy1] INFO com.novus.salat.test.CaseObjectSupport - mine: Wardrobe(List(Zoot))
2343 [specs2.DefaultExecutionStrategy1] INFO com.novus.salat.test.CaseObjectSupport - dbo : Map(_typeHint -> com.novus.salat.test.model.Wardrobe, suits -> [ { "_typeHint" : "com.novus.salat.test.model.Zoot$"}])
[info] a grater should
[info] support case objects
[info] + be able to serialize case objects
[info] + be able to deserialize case objects
[info]
[info]
[info]
[info] Total for specification CaseObjectSupport
[info] Finished in 116 ms
[info] 2 examples, 0 failure, 0 error
[info]
2632 [specs2.DefaultExecutionStrategy1] INFO com.novus.salat.transform.DBObjectInjectorChain$ -
caseClassTransformer:
[BEFORE] com.mongodb.casbah.commons.Implicits$$anon$1: 'Map(a -> whatever, b -> 42)'
--[com.novus.salat.transform.SimpleCaseClass]-->
[AFTER] com.novus.salat.transform.SimpleCaseClass: 'SimpleCaseClass(Some(whatever),42)'
2632 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.transform.DBObjectInjectorChain$ -
caseClassTransformer:
[BEFORE] com.mongodb.casbah.commons.Implicits$$anon$1: 'Map(a -> whatever, b -> 42)'
--[com.novus.salat.transform.SimpleCaseClass]-->
[AFTER] com.novus.salat.transform.SimpleCaseClass: 'SimpleCaseClass(Some(whatever),42)'
2632 [specs2.DefaultExecutionStrategy2] INFO com.novus.salat.transform.DBObjectInjectorChain$ -
caseClassTransformer:
[BEFORE] com.mongodb.casbah.commons.Implicits$$anon$1: 'Map(a -> whatever, b -> 42)'
--[com.novus.salat.transform.SimpleCaseClass]-->
[AFTER] com.novus.salat.transform.SimpleCaseClass: 'SimpleCaseClass(Some(whatever),42)'
[info] DBObject injector chain should
[info] offer a straight-through transformation that does not alter type
[info] + for java.util.Date
[info] + for java.lang.String
[info]
[info] transform BigDecimal
[info] + from a Double
[info] + from a Long
[info] + from an Int
[info] + from a Float
[info] + from a Short
[info] + from a BigDecimal (how this comes IN as a big decimal I still have no idea!)
[info]
[info] transform BigInt
[info] + from a String
[info] + from a byte array
[info] + from a scala.BigInt
[info] + from a java.math.BigInteger
[info] + from a Long
[info] + from an Int
[info]
[info] transform case classes
[info] + from DBObject
[info] + from MongoDBObject
[info]
[info] transform Options
[info] + String to Option[String]
[info] + isBigDecimal type to Option[BigDecimal]
[info] + isBigInt type to Option[BigInt]
[info] + DBO to Option[A<:CaseClass]
[info]
[info]
[info]
[info] Total for specification DBObjectInjectorChainTest
[info] Finished in 670 ms
[info] 20 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] + support serializing and deserializing a random uuid
[info] + support serializing and deserializing a msb/lsb uuid
[info] + support serializing and deserializing a uuid with name from bytes
[info]
[info]
[info] Total for specification UUIDSupportSpec
[info] Finished in 319 ms
[info] 3 examples, 0 failure, 0 error
[info]
3155 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.util.RegisterURIConversionHelpers$ - Registering java.net.URI Scala Conversions.
3352 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.util.URIDeserializer$$anon$1 - DECODING: URI~http://slashdot.org
[info] The @Key annotation should
[info] + override a field name to persist with the given value
[info] + override a field name when used in a trait
[info] + override a field name when used in an abstract superclass
[info] + work with a field whose type is handled by a custom BSON encoding hook
[info]
[info]
[info] Total for specification KeyAnnotationSpec
[info] Finished in 471 ms
[info] 4 examples, 0 failure, 0 error
[info]
[info] A grater should
[info] + support characters
[info]
[info]
[info] Total for specification CharacterSpec
[info] Finished in 63 ms
[info] 1 example, 0 failure, 0 error
[info]
[info] Salat extractors and injectors should
[info] supports Maps whose key is a String
[info] + scala.collection.Map[String, _]
[info] + scala.collection.immutable.Map[String, _]
[info] + scala.collection.mutable.Map[String, _]
[info]
[info] support Set[_]
[info] + support scala.collection.Set[_]
[info] + support scala.collection.immutable.Set[_]
[info] + support scala.collection.mutable.Set[_]
[info]
[info] + support List[_]
[info] support Seq[_]
[info] + support scala.collection.Seq[_]
[info] + support scala.collection.immutable.Seq[_]
[info] + support scala.collection.mutable.Seq[_]
[info]
[info] support Buffer[_]
[info] + support scala.collection.mutable.Buffer[_]
[info] + support scala.collection.mutable.ArrayBuffer[_]
[info]
[info] + support Vector[_]
[info] support IndexedSeq[_]
[info] + support scala.collection.IndexedSeq[_]
[info] + support scala.collection.immutable.IndexedSeq[_]
[info] + support scala.collection.mutable.IndexedSeq[_]
[info]
[info] support linked lists
[info] + LinkedList[_]
[info] + DoubleLinkedList[_]
[info]
[info]
[info]
[info] Total for specification CollectionSupportSpec
[info] Finished in 1 second, 918 ms
[info] 18 examples, 0 failure, 0 error
[info]
[info] A grater should
[info] + support BigInt
[info]
[info]
[info] Total for specification BigIntSpec
[info] Finished in 78 ms
[info] 1 example, 0 failure, 0 error
[info]
5811 [specs2.DefaultExecutionStrategy1] INFO com.novus.salat.test.MapSupportSpec - Displaying MongoDBObject with 5 entries:
[0] k=java.lang.String v=java.lang.String
_typeHint -> com.novus.salat.test.model.AttributeObject
[1] k=java.lang.String v=java.lang.Long
_id -> 42
[2] k=java.lang.String v=com.mongodb.BasicDBObject
urls -> { "foo" : { "_typeHint" : "com.novus.salat.test.model.UrlID" , "dh" : 1 , "ph" : 2} , "bar" : { "_typeHint" : "com.novus.salat.test.model.UrlID" , "dh" : 3 , "ph" : 4}}
[3] k=java.lang.String v=java.lang.String
key -> testKey1
[4] k=java.lang.String v=java.lang.String
bestDef -> bestDef1
[info] a grater should
[info] + support objects that contain maps
[info]
[info]
[info] Total for specification MapSupportSpec
[info] Finished in 80 ms
[info] 1 example, 0 failure, 0 error
[info]
6330 [pool-2-thread-8] INFO com.novus.salat.test.CustomContextSpec - CustomContextSpec: custom classloader returning Class[_] class com.novus.salat.test.CustomContextSpec$$anonfun$1$$anonfun$apply$15$$anon$2$Ida for com.novus.salat.test.CustomContextSpec$$anonfun$1$$anonfun$apply$15$$anon$2$Ida
6360 [specs2.DefaultExecutionStrategy6] INFO com.novus.salat.test.CustomContextSpec$$anonfun$1$$anonfun$apply$15$$anonfun$apply$69$$anon$9 - Context: registering classloader 2
6367 [specs2.DefaultExecutionStrategy2] INFO com.novus.salat.test.CustomContextSpec$$anonfun$1$$anonfun$apply$88$$anon$10 - registerGlobalKeyOverride: context=Some(CustomContextSpec-5) will globally remap key='lake' to 'swamp'
6369 [specs2.DefaultExecutionStrategy3] INFO com.novus.salat.test.CustomContextSpec$$anonfun$1$$anonfun$apply$15$$anonfun$apply$16$$anon$3 - Context: registering classloader 2
6370 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.per_class_key_remapping.package$$anon$6 - perClassKeyOverrides: context=Some(TestContext-PerClassKeyRemapping) will remap key='consumed' to 'fire' for all instance of clazz='com.novus.salat.test.model.Rhoda'
6374 [specs2.DefaultExecutionStrategy5] INFO com.novus.salat.test.CustomContextSpec$$anonfun$1$$anonfun$apply$15$$anonfun$apply$43$$anon$7 - This is my custom context and I would prefer not to register your classloader, sir
[info] Salat context should
[info] + allow creation of a custom context
[info] provide flexible classloader handling
[info] + allow registration of custom classloaders that precede the default classloader
[info] + allow creation of a context overrides defaults to specify its own classloader
[info] + percolate a custom context down the entire chain
[info]
[info] + allow registering global key overrides
[info] + allow registering a per-class key override
[info]
[info]
[info] Total for specification CustomContextSpec
[info] Finished in 254 ms
[info] 6 examples, 0 failure, 0 error
[info]
[info] mongo-java-driver 2.5.2 should
[info] + not be confused about the difference between Int and Long when parsing from stringified JSON
[info]
[info]
[info] Total for specification MongoJavaDriver252IntLongBugSpec
[info] Finished in 19 ms
[info] 1 example, 0 failure, 0 error
[info]
6642 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - generated 29524 nodes in 118 msec
7242 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - 3368126 bytes deflated
7437 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 194 msec
7588 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 150 msec
7767 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 179 msec
7884 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 117 msec
8004 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 120 msec
8170 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 165 msec
8296 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 126 msec
8414 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 117 msec
8540 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 126 msec
8660 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 120 msec
8785 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 125 msec
8892 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 107 msec
9008 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 116 msec
9126 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 118 msec
9257 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 131 msec
9377 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 120 msec
9487 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 110 msec
9650 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 163 msec
9771 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 121 msec
9890 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 119 msec
10007 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 117 msec
10165 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 158 msec
10287 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 121 msec
10405 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 118 msec
10523 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 118 msec
10639 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 116 msec
10759 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 120 msec
10876 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 117 msec
10981 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 105 msec
11113 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 132 msec
11243 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 130 msec
11362 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 118 msec
11481 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 118 msec
11637 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 156 msec
11743 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 106 msec
11863 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 120 msec
11985 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 121 msec
12105 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 120 msec
12250 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 145 msec
12356 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 106 msec
12471 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 115 msec
12600 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 129 msec
12734 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 134 msec
12864 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 130 msec
12986 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 122 msec
13103 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 116 msec
13229 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 126 msec
13363 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 134 msec
13484 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 121 msec
13612 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode deflation time: 128 msec
14270 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 491 msec
14406 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 136 msec
14549 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 143 msec
14702 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 153 msec
14832 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 130 msec
14959 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 127 msec
15082 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 123 msec
15216 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 134 msec
15358 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 142 msec
15482 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 124 msec
15608 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 126 msec
15741 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 133 msec
15879 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 137 msec
15994 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 115 msec
16112 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 118 msec
16234 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 121 msec
16346 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 112 msec
16458 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 112 msec
16576 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 118 msec
16696 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 120 msec
16810 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 114 msec
16922 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 112 msec
17035 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 113 msec
17149 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 114 msec
17262 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 113 msec
17388 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 126 msec
17500 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 112 msec
17612 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 112 msec
17732 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 120 msec
17845 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 113 msec
17964 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 118 msec
18077 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 113 msec
18191 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 114 msec
18313 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 122 msec
18440 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 127 msec
18559 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 119 msec
18680 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 121 msec
18809 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 129 msec
18933 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 124 msec
19054 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 121 msec
19188 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 133 msec
19313 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 125 msec
19436 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 123 msec
19556 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 120 msec
19685 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 129 msec
19826 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 141 msec
19961 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 135 msec
20080 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 119 msec
20194 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 114 msec
20314 [specs2.DefaultExecutionStrategy4] INFO com.novus.salat.test.TimingSpec - com.novus.salat.test.model.ListNode inflation time: 119 msec
[info] performance should
[info] + try to beat casbah-mapper, too
[info]
[info]
[info] Total for specification TimingSpec
[info] Finished in 13 seconds, 803 ms
[info] 1 example, 0 failure, 0 error
[info]
20417 [specs2.DefaultExecutionStrategy1] INFO com.novus.salat.test.BasicCaseObjectSpec - before: Edward(a value,2,3.30003,None,None,None,Some(aaa value),Some(22),Some(33.30003))
20418 [specs2.DefaultExecutionStrategy1] INFO com.novus.salat.test.BasicCaseObjectSpec - after : { "_typeHint" : "com.novus.salat.test.model.Edward" , "a" : "a value" , "b" : 2 , "c" : 3.30003 , "aaa" : "aaa value" , "bbb" : 22 , "ccc" : 33.30003}
20473 [specs2.DefaultExecutionStrategy2] INFO com.novus.salat.test.BasicCaseObjectSpec - before: Alice(x,Some(y),Basil(Some(80),81,Clara(List(l1, l2),List(1, 2),List(Desmond(Map(foo1 -> Alice(foo,None,Basil(None,1067,Clara(List(),List(),List()))), baz1 -> Alice(baz,Some(quux),Basil(None,1067,Clara(List(),List(),List())))),Map(a1 -> 1, c1 -> 2),Some(Basil(None,24,Clara(List(l3, l4),List(1, 2, 3),List()))))))))
20474 [specs2.DefaultExecutionStrategy2] INFO com.novus.salat.test.BasicCaseObjectSpec - after : { "_typeHint" : "com.novus.salat.test.model.Alice" , "x" : "x" , "y" : "y" , "z" : { "_typeHint" : "com.novus.salat.test.model.Basil" , "p" : 80 , "q" : 81 , "r" : { "_typeHint" : "com.novus.salat.test.model.Clara" , "l" : [ "l1" , "l2"] , "m" : [ 1 , 2] , "n" : [ { "_typeHint" : "com.novus.salat.test.model.Desmond" , "h" : { "foo1" : { "_typeHint" : "com.novus.salat.test.model.Alice" , "x" : "foo" , "z" : { "_typeHint" : "com.novus.salat.test.model.Basil" , "q" : 1067 , "r" : { "_typeHint" : "com.novus.salat.test.model.Clara" , "l" : [ ] , "m" : [ ] , "n" : [ ]}}} , "baz1" : { "_typeHint" : "com.novus.salat.test.model.Alice" , "x" : "baz" , "y" : "quux" , "z" : { "_typeHint" : "com.novus.salat.test.model.Basil" , "q" : 1067 , "r" : { "_typeHint" : "com.novus.salat.test.model.Clara" , "l" : [ ] , "m" : [ ] , "n" : [ ]}}}} , "i" : { "a1" : 1 , "c1" : 2} , "j" : { "_typeHint" : "com.novus.salat.test.model.Basil" , "q" : 24 , "r" : { "_typeHint" : "com.novus.salat.test.model.Clara" , "l" : [ "l3" , "l4"] , "m" : [ 1 , 2 , 3] , "n" : [ ]}}}]}}}
[info] a grater should
[info] make DBObject-s out of case class instances
[info] + properly treat primitive values and optional values
[info] + work with object graphs
[info]
[info] instantiate case class instances using data from DBObject-s
[info] + cover primitive types
[info] + and silly object graphs
[info] + and also object graphs of even sillier shapes
[info]
[info]
[info] usage example for the README should
[info] + print out some sample JSON
[info]
[info]
[info] Total for specification BasicCaseObjectSpec
[info] Finished in 317 ms
[info] 6 examples, 0 failure, 0 error
[info]
[info] SalatDAO's child collection trait should
[info] + support finding children by typed parent id
[info] + support finding child IDs by typed parent id
[info] + support updating children by typed parent id
[info] + support removing children by parent id
[info] + support primitive projections by parent id
[info] + support case class projections by parent id
[info] + support counting by parent id
[info] + support counting by parent id with fields
[info]
[info]
[info] Total for specification ChildCollectionSpec
[info] Finished in 306 ms
[info] 8 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] + work with case classes that have lazy values
[info]
[info]
[info] Total for specification LazyValSpec
[info] Finished in 23 ms
[info] 1 example, 0 failure, 0 error
[info]
[info] a grater should
[info] + handle a collection of concrete instances of a trait annotated with @Salat
[info] + handle a collection of concrete instances of an abstract class annotated with @Salat
[info] + properly deserialize a raw DBObject containing concrete instances of a trait annotated with @Salat
[info]
[info] + handle a value typed to a top-level trait
[info] + handle multiple levels of @Salat annotation
[info]
[info] Total for specification SalatTraitSpec
[info] Finished in 327 ms
[info] 5 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] persist and retrieve sorted things
[info] + a case class with a sorted list
[info] + handle sorted sequences
[info]
[info]
[info]
[info] Total for specification SortedSeqSpec
[info] Finished in 33 ms
[info] 2 examples, 0 failure, 0 error
[info]
[info] A grater should
[info] + support org.scala_tools.time.TypeImports.DateTime
[info] + support org.joda.time.DateTime
[info] + support dates parsed from JSON
[info]
[info]
[info] Total for specification DateTimeSpec
[info] Finished in 122 ms
[info] 3 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] support Option[String]
[info] + with value
[info] + with no value
[info]
[info] support Option[BigDecimal]
[info] + with value
[info] + with no value
[info]
[info]
[info]
[info] Total for specification OptionSupportSpec
[info] Finished in 199 ms
[info] 4 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] + handle a case class containing a list typed to a common trait
[info] handle a case class typed to a common trait
[info] + handle a case class containing a list of case classes typed to a common trait
[info]
[info]
[info]
[info] Total for specification ListOfCommonTraitSpec
[info] Finished in 14 ms
[info] 2 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] persist and retrieve sets
[info] + a case class with a set
[info] + handle sets
[info]
[info]
[info]
[info] Total for specification SetSpec
[info] Finished in 19 ms
[info] 2 examples, 0 failure, 0 error
[info]
[info] A context that uses type hints only when necessary should
[info] lookup_! graters
[error] x by name of case class
[error] 'None' is not Some with value'$anon$3(class com.novus.salat.test.model.James @ com.novus.salat.test.when_necessary.package$$anon$2@2ddb2de0)' (ContextSpec.scala:37)
[info] + by instance of case class
[info] + by type
[info]
[info]
[info] A context that never uses type hints should
[info] lookup_! graters
[error] x by name of case class
[error] 'None' is not Some with value'$anon$3(class com.novus.salat.test.model.James @ com.novus.salat.test.never.package$$anon$3@7daebd4d)' (ContextSpec.scala:57)
[info] + by instance of case class
[info] + by type
[info]
[info]
[info] A context that always uses type hints should
[info] lookup_! graters
[info] + by MongoDBObject
[error] x by name of case class
[error] 'None' is not Some with value'$anon$3(class com.novus.salat.test.model.James @ com.novus.salat.test.always.package$$anon$1@3303152a)' (ContextSpec.scala:85)
[info] + by instance of case class
[info] + by type
[info]
[info] extract type hints
[info] + from dbo
[info]
[info] allow the use of implicits to do clever things
[info] + implicitly convert case class <-> dbo
[info]
[info]
[info] A context that uses a custom key for type hints should
[info] lookup_! graters
[info] + by MongoDBObject
[error] x by name of case class
[error] 'None' is not Some with value'$anon$3(class com.novus.salat.test.model.James @ com.novus.salat.test.custom_type_hint.package$$anon$5@1c3cde76)' (ContextSpec.scala:132)
[info] + by instance of case class
[info] + by type
[info]
[info] extract type hints
[info] + from dbo
[info]
[info]
[info]
[info] Total for specification ContextSpec
[info] Finished in 454 ms
[info] 17 examples, 4 failures, 0 error
[info]
[info] a proxy grater should
[info] + delegate heavy lifting to correct "concrete" graters
[info]
[info]
[info] Total for specification ProxySpec
[info] Finished in 2 ms
[info] 1 example, 0 failure, 0 error
[info]
[info] A grater should
[info] + support floats
[info]
[info]
[info] Total for specification FloatSpec
[info] Finished in 54 ms
[info] 1 example, 0 failure, 0 error
[info]
[info] Missing grater explanation should
[info] handle type hint glitches in DBOs
[info] + explain when a type hint refers to a class that can't be found
[info] + explain when a type hint refers to a trait
[info] + explain when a type hint refers to an abstract class
[info] + explain when a type hint refers to a class that is not a case class
[info]
[info]
[info]
[info] Total for specification MissingGraterExplanationSpec
[info] Finished in 121 ms
[info] 4 examples, 0 failure, 0 error
[info]
[info] a grater should
[info] work with Scala enums
[info] + be able to serialize Scala enums
[info] + be able to deserialize Scala enums
[info]
[info]
[info] a context should
[info] + provide a default enum handling strategy of toString
[info] + allow for context-level custom enum handling strategy
[info] + allow an individual enum annotated with EnumAs to override default enum handling strategy
[info] + allow an individual enum annotated with EnumAs to override custom enum handling strategy
[info]
[info]
[info] Total for specification EnumSupportSpec
[info] Finished in 474 ms
[info] 6 examples, 0 failure, 0 error
[info]
[info] Binary type hint strategy should
[info] handle a class name
[info] + encode class name as BitInt
[info] + decode a BigInt into a class name
[info] + for legacy purposes, pass a string type hint back through
[info] + aggressively memoizes
[info]
[info] + encode case object classname as a string
[info]
[info]
[info] Total for specification TypeHintStrategySpec
[info] Finished in 57 ms
[info] 5 examples, 0 failure, 0 error
[info]
[info] com.novus.salat.annotations.Persist should
[info] allow a field inside a case class to be persisted
[info] + a simple string val
[info] + a value that requires a transformer
[info] + a var
[info]
[info] + respect @Ignore
[info] + respect @Persist declared in a trait
[info] + respect @Persist declared in immediate superclass
[info] work with @Salat on a trait
[info] + where @Persist is declared in the subclasses implementing the trait
[info] + where a collection is typed to a trait declaring @Persist
[info]
[info]
[info]
[info] Total for specification PersistAnnotationSpec
[info] Finished in 1 second, 141 ms
[info] 8 examples, 0 failure, 0 error
[info]
[error] Failed: : Total 154, Failed 4, Errors 0, Passed 150, Skipped 0
[error] Failed tests:
[error] com.novus.salat.test.ContextSpec
[error] {file:/home/cb/salat/}salat-core/test:test: Tests unsuccessful
[error] Total time: 108 s, completed Sep 16, 2011 3:05:42 PM
cb@calisson:~/salat$ xsbt publish-local
[info] Set current project to default-22ac77 (in build file:/home/cb/salat/project/plugins/)
[info] Set current project to salat (in build file:/home/cb/salat/)
[info] Packaging /home/cb/salat/target/scala-2.8.1.final/salat_2.8.1-0.0.8-SNAPSHOT-sources.jar ...
[info] Packaging /home/cb/salat/salat-core/target/scala-2.8.1.final/salat-core_2.8.1-0.0.8-SNAPSHOT-sources.jar ...
[info] Packaging /home/cb/salat/salat-util/target/scala-2.8.1.final/salat-util_2.8.1-0.0.8-SNAPSHOT-sources.jar ...
[info] Done packaging.
[info] Done packaging.
[info] Done packaging.
[info] Generating API documentation for main sources...
[info] No sources specified.
[info] Generating API documentation for main sources...
[info] Packaging /home/cb/salat/target/scala-2.8.1.final/salat_2.8.1-0.0.8-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[info] Packaging /home/cb/salat/target/scala-2.8.1.final/salat_2.8.1-0.0.8-SNAPSHOT.jar ...
[info] Done packaging.
[info] Packaging /home/cb/salat/salat-util/target/scala-2.8.1.final/salat-util_2.8.1-0.0.8-SNAPSHOT.jar ...
[info] Wrote /home/cb/salat/salat-util/target/scala-2.8.1.final/salat-util_2.8.1-0.0.8-SNAPSHOT.pom
[info] :: delivering :: com.novus#salat_2.8.1;0.0.8-SNAPSHOT :: 0.0.8-SNAPSHOT :: release :: Fri Sep 16 15:06:07 EDT 2011
[info] Done packaging.
[info] Generating API documentation for main sources...
[info] delivering ivy file to /home/cb/salat/target/scala-2.8.1.final/ivy-0.0.8-SNAPSHOT.xml
[info] :: delivering :: com.novus#salat-util_2.8.1;0.0.8-SNAPSHOT :: 0.0.8-SNAPSHOT :: release :: Fri Sep 16 15:06:07 EDT 2011
[info] delivering ivy file to /home/cb/salat/salat-util/target/scala-2.8.1.final/ivy-0.0.8-SNAPSHOT.xml
[info] Wrote /home/cb/salat/target/scala-2.8.1.final/salat_2.8.1-0.0.8-SNAPSHOT.pom
[info] :: delivering :: com.novus#salat-core_2.8.1;0.0.8-SNAPSHOT :: 0.0.8-SNAPSHOT :: release :: Fri Sep 16 15:06:07 EDT 2011
[info] delivering ivy file to /home/cb/salat/salat-core/target/scala-2.8.1.final/ivy-0.0.8-SNAPSHOT.xml
[info] Wrote /home/cb/salat/salat-core/target/scala-2.8.1.final/salat-core_2.8.1-0.0.8-SNAPSHOT.pom
[info] published salat_2.8.1 to /home/cb/.ivy2/local/com.novus/salat_2.8.1/0.0.8-SNAPSHOT/poms/salat_2.8.1.pom
[info] published salat_2.8.1 to /home/cb/.ivy2/local/com.novus/salat_2.8.1/0.0.8-SNAPSHOT/jars/salat_2.8.1.jar
[info] published salat_2.8.1 to /home/cb/.ivy2/local/com.novus/salat_2.8.1/0.0.8-SNAPSHOT/srcs/salat_2.8.1-sources.jar
[info] published salat_2.8.1 to /home/cb/.ivy2/local/com.novus/salat_2.8.1/0.0.8-SNAPSHOT/docs/salat_2.8.1-javadoc.jar
[info] published ivy to /home/cb/.ivy2/local/com.novus/salat_2.8.1/0.0.8-SNAPSHOT/ivys/ivy.xml
[info] Packaging /home/cb/salat/salat-core/target/scala-2.8.1.final/salat-core_2.8.1-0.0.8-SNAPSHOT.jar ...
[info] Done packaging.
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/package.scala:25: imported `Grater' is permanently hidden by definition of class Grater in package salat
[warn] import com.novus.salat.{ Grater, Context }
[warn] ^
model contains 0 documentable templates
[info] API documentation generation successful.
[info] Packaging /home/cb/salat/salat-util/target/scala-2.8.1.final/salat-util_2.8.1-0.0.8-SNAPSHOT-javadoc.jar ...
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Extractors.scala:51: non variable type-argument String in type pattern scala.collection.Map[String,_] is unchecked since it is eliminated by erasure
[warn] case map: scala.collection.Map[String, _] => {
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Injectors.scala:51: non variable type-argument Any in type pattern Traversable[Any] is unchecked since it is eliminated by erasure
[warn] case traversable: Traversable[Any] => Some(traversableImpl(pt, traversable.map(transform(path, t, _))))
[warn] ^
[info] Done packaging.
[info] published salat-util_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-util_2.8.1/0.0.8-SNAPSHOT/poms/salat-util_2.8.1.pom
[info] published salat-util_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-util_2.8.1/0.0.8-SNAPSHOT/jars/salat-util_2.8.1.jar
[info] published salat-util_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-util_2.8.1/0.0.8-SNAPSHOT/srcs/salat-util_2.8.1-sources.jar
[info] published salat-util_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-util_2.8.1/0.0.8-SNAPSHOT/docs/salat-util_2.8.1-javadoc.jar
[info] published ivy to /home/cb/.ivy2/local/com.novus/salat-util_2.8.1/0.0.8-SNAPSHOT/ivys/ivy.xml
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/extract/Extractors.scala:232: non variable type-argument String in type pattern scala.collection.Map[String,_] is unchecked since it is eliminated by erasure
[warn] case map: scala.collection.Map[String, _] => {
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/extract/Extractors.scala:251: type com.novus.salat.annotations.raw.EnumAs @scala.annotation.target.getter in type pattern com.novus.salat.annotations.package.EnumAs is unchecked since it is eliminated by erasure
[warn] case specific: EnumAs => specific.strategy
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/inject/Injectors.scala:340: non variable type-argument Any in type pattern Traversable[Any] is unchecked since it is eliminated by erasure
[warn] case traversable: Traversable[Any] => Some(traversableImpl(parentType, traversable.map {
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transformers/inject/Injectors.scala:406: type com.novus.salat.annotations.raw.EnumAs @scala.annotation.target.getter in type pattern com.novus.salat.annotations.package.EnumAs is unchecked since it is eliminated by erasure
[warn] case specific: EnumAs => specific.strategy
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Injectors.scala:94: type Integer in package scala is deprecated: use <code>java.lang.Integer</code> instead
[warn] invoke(companionObject, id.asInstanceOf[Integer])
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/transform_scratch/Injectors.scala:98: type Integer in package scala is deprecated: use <code>java.lang.Integer</code> instead
[warn] invoke(companionObject, id.asInstanceOf[Integer])
[warn] ^
model contains 0 documentable templates
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/dao/SalatDAO.scala:28: Tag '@type' is not recognised
[warn] /** Base DAO class.
[warn] ^
[warn] /home/cb/salat/salat-core/src/main/scala/com/novus/salat/dao/SalatDAO.scala:365: Tag '@fieldsThatMustNotExist' is not recognised
[warn] /** Convenience method on collection.count
[warn] ^
[warn] 11 warnings found
[info] API documentation generation successful.
[info] Packaging /home/cb/salat/salat-core/target/scala-2.8.1.final/salat-core_2.8.1-0.0.8-SNAPSHOT-javadoc.jar ...
[info] Done packaging.
[info] published salat-core_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-core_2.8.1/0.0.8-SNAPSHOT/poms/salat-core_2.8.1.pom
[info] published salat-core_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-core_2.8.1/0.0.8-SNAPSHOT/jars/salat-core_2.8.1.jar
[info] published salat-core_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-core_2.8.1/0.0.8-SNAPSHOT/srcs/salat-core_2.8.1-sources.jar
[info] published salat-core_2.8.1 to /home/cb/.ivy2/local/com.novus/salat-core_2.8.1/0.0.8-SNAPSHOT/docs/salat-core_2.8.1-javadoc.jar
[info] published ivy to /home/cb/.ivy2/local/com.novus/salat-core_2.8.1/0.0.8-SNAPSHOT/ivys/ivy.xml
[success] Total time: 16 s, completed Sep 16, 2011 3:06:22 PM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment