Created
July 28, 2011 17:35
-
-
Save rktoomey/1112062 to your computer and use it in GitHub Desktop.
Using xsbt 0.10.1 with salat
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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