Skip to content

Instantly share code, notes, and snippets.

@d6y
Created October 19, 2011 17:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d6y/1298988 to your computer and use it in GitHub Desktop.
Save d6y/1298988 to your computer and use it in GitHub Desktop.
Packaging twitter util log
# I'm using Java 1.6 on Mac 10.7.2
# The sbt7 command is a shell script to start sbt 0.7 defined as:
~$ more /opt/sbt7/sbt
java -XX:MaxPermSize=612m -Xmx912M $JAVA_OPTS $WITH_REBEL -jar `dirname $0`/sbt-launch.jar "$@"
~$ echo $JAVA_OPTS
-Dfile.encoding=utf8
# I use JRebel, but I don't believe that's relevant
~$ mkdir foo
~$ cd foo
foo$ git clone git@github.com:d6y/util.git
Initialized empty Git repository in /Users/richard/foo/util/.git/
remote: Counting objects: 5674, done.
remote: Compressing objects: 100% (2062/2062), done.
remote: Total 5674 (delta 2170), reused 5552 (delta 2048)
Receiving objects: 100% (5674/5674), 878.82 KiB | 857 KiB/s, done.
Resolving deltas: 100% (2170/2170), done.
foo$ cd util/
util (master)$ sbt7 update package
#############################################################
JRebel 4.0.3 (201107251640)
with Enterprise Add-On! (see http://jrebel.com/enterprise)
(c) Copyright ZeroTurnaround OU, Estonia, Tartu.
Over the last 30 days JRebel prevented
at least 31 redeploys/restarts saving you about 1.3 hours.
Over the last 255 days JRebel prevented
at least 860 redeploys/restarts saving you about 34.9 hours.
This product is licensed to Richard Dallaway (Personal)
until September 14, 2012
The following plugins are disabled at the moment:
* Apache Wink plugin 0.1 (set -Drebel.wink_plugin=true to enable)
JRebel Apache Wink Plugin
* Click plugin (set -Drebel.click_plugin=true to enable)
Reloads menu.xml menu definitions of Apache Click projects.
* Glassfish METRO plugin (set -Drebel.metro_plugin=true to enable)
Supports METRO JAX-WS 2.2.3 implementation of the JAX-WS standard
* IceFaces plugin (set -Drebel.icefaces_plugin=true to enable)
JRebel IceFaces Plugin
* JAXB Plugin (set -Drebel.jaxb_plugin=true to enable)
Enables support for class reloading to JAXB 2 RI
* JBoss AOP plugin (set -Drebel.jbossaop_plugin=true to enable)
Integration with jboss aop agent
* Jackson plugin (set -Drebel.jackson_plugin=true to enable)
Supports reloading Jackson's JsonSerializer caches.
* Lift plugin (set -Drebel.lift_plugin=true to enable)
Supports reloading singleton objects that extend RestHelper, MVCHelper,
LiftScreen or Wizard.
* RESTEasy plugin (set -Drebel.resteasy_plugin=true to enable)
Supports adding/changing methods with @Path annotation for RESTEasy application.
* Seam-Wicket plugin (set -Drebel.seam_wicket_plugin=true to enable)
Integration with load time weaving seam annotations to wicket classes
(-javaagent:<path-to-jboss-seam-wicket-jar>)
* Spring WS plugin (set -Drebel.springws_plugin=true to enable)
Enables reloading of endpoint mappings and wsdl definitions in Spring Web
Services 2
* WebObjects plugin (set -Drebel.webobjects_plugin=true to enable)
WebObjects JRebel Plugin
#############################################################
JRebel: A newer version '4.5.1' is available for download
JRebel: from http://www.zeroturnaround.com/jrebel/upgrade/
Getting Scala 2.7.7 ...
:: retrieving :: org.scala-tools.sbt#boot-scala
confs: [default]
2 artifacts copied, 0 already retrieved (9911kB/117ms)
Getting org.scala-tools.sbt sbt_2.7.7 0.7.5 ...
:: retrieving :: org.scala-tools.sbt#boot-app
confs: [default]
16 artifacts copied, 0 already retrieved (4271kB/93ms)
[info] Recompiling plugin definition...
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info]
[info] Updating plugins...
[info] :: retrieving :: plugin-definition#plugin-definition_2.7.7 [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 4 artifacts copied, 0 already retrieved (3926kB/31ms)
[success] Plugins updated successfully.
[info]
[info] Extracted source plugin ./lib_managed/scala_2.7.7/standard-project-0.12.7.jar ...
[info] Recompiling plugin...
[info] Source analysis: 37 new/modified, 0 indirectly invalidated, 0 removed.
[info] Recompiling project definition...
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[warn] No .svnrepo file; no svn repo will be configured.
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
Getting Scala 2.9.0-1 ...
:: retrieving :: org.scala-tools.sbt#boot-scala
confs: [default]
2 artifacts copied, 0 already retrieved (20188kB/80ms)
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
[info] Standard project rules 0.12.7 loaded (2011-05-24).
[warn] No .svnrepo file; no svn repo will be configured.
[info] Building project util 2.9.0-1_1.10.3-SNAPSHOT against Scala 2.9.0-1
[info] using Project with sbt 0.7.5 and Scala 2.7.7
[info]
[info] == util-core / update ==
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/org/scala-tools/testing/specs_2.9.0-1/1.6.8/specs_2.9.0-1-1.6.8-sources.jar ...
[info] [SUCCESSFUL ] org.scala-tools.testing#specs_2.9.0-1;1.6.8!specs_2.9.0-1.jar(src) (6689ms)
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/3.8.2/junit-3.8.2.jar ...
[info] [SUCCESSFUL ] junit#junit;3.8.2!junit.jar (1045ms)
[info] :: retrieving :: com.twitter#util-core [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 5 artifacts copied, 0 already retrieved (5343kB/188ms)
[info] == util-core / update ==
[info]
[info] == util-eval / update ==
[info] :: retrieving :: com.twitter#util-eval [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 9 artifacts copied, 0 already retrieved (45719kB/101ms)
[info] == util-eval / update ==
[info]
[info] == util-collection / update ==
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/com/google/guava/guava/r08/guava-r08.jar ...
[info] [SUCCESSFUL ] com.google.guava#guava;r08!guava.jar (16940ms)
[info] :: retrieving :: com.twitter#util-collection [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 7 artifacts copied, 0 already retrieved (6993kB/291ms)
[info] == util-collection / update ==
[info]
[info] == util-hashing / update ==
[info] :: retrieving :: com.twitter#util-hashing [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 5 artifacts copied, 0 already retrieved (5343kB/21ms)
[info] == util-hashing / update ==
[info]
[info] == util-logging / update ==
[info] :: retrieving :: com.twitter#util-logging [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 5 artifacts copied, 0 already retrieved (5343kB/42ms)
[info] == util-logging / update ==
[info]
[info] == util-thrift / update ==
[info] downloading http://maven.twttr.com/thrift/libthrift/0.5.0/libthrift-0.5.0.jar ...
[info] [SUCCESSFUL ] thrift#libthrift;0.5.0!libthrift.jar (1972ms)
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/org/slf4j/slf4j-nop/1.5.8/slf4j-nop-1.5.8.jar ...
[info] [SUCCESSFUL ] org.slf4j#slf4j-nop;1.5.8!slf4j-nop.jar (354ms)
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar ...
[info] [SUCCESSFUL ] org.slf4j#slf4j-api;1.5.8!slf4j-api.jar (457ms)
[info] :: retrieving :: com.twitter#util-thrift [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 8 artifacts copied, 0 already retrieved (5627kB/62ms)
[info] == util-thrift / update ==
[info]
[info] == util-reflect / update ==
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/cglib/cglib/2.2/cglib-2.2.jar ...
[info] [SUCCESSFUL ] cglib#cglib;2.2!cglib.jar (4888ms)
[info] downloading http://mirrors.ibiblio.org/pub/mirrors/maven2/asm/asm/3.1/asm-3.1.jar ...
[info] [SUCCESSFUL ] asm#asm;3.1!asm.jar (454ms)
[info] :: retrieving :: com.twitter#util-reflect [sync]
[info] confs: [compile, runtime, test, provided, system, optional, sources, javadoc]
[info] 7 artifacts copied, 0 already retrieved (5657kB/62ms)
[info] == util-reflect / update ==
[info]
[info] == util / update ==
[warn] No dependency configuration found, using defaults.
[info] :: retrieving :: com.twitter#util [sync]
[info] confs: [default]
[info] 0 artifacts copied, 0 already retrieved (0kB/10ms)
[info] == util / update ==
[success] Successful.
[info]
[info] Total time: 74 s, completed Oct 19, 2011 6:12:49 PM
[info]
[info] == util-core / check-deps-exist ==
[info] == util-core / check-deps-exist ==
[info]
[info] == util-hashing / check-deps-exist ==
[info] == util-hashing / check-deps-exist ==
[info]
[info] == util-thrift / check-deps-exist ==
[info] == util-thrift / check-deps-exist ==
[info]
[info] == util-reflect / check-deps-exist ==
[info] == util-reflect / check-deps-exist ==
[info]
[info] == util-collection / check-deps-exist ==
[info] == util-collection / check-deps-exist ==
[info]
[info] == util-logging / check-deps-exist ==
[info] == util-logging / check-deps-exist ==
[info]
[info] == util-core / compile ==
[info] Source analysis: 47 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[warn] /Users/richard/foo/util/util-core/src/main/scala/com/twitter/util/Time.scala:36: @deprecated now takes two arguments; see the scaladoc.
[warn] @deprecated("use Time.fromMilliseconds(...) instead")
[warn] ^
[warn] /Users/richard/foo/util/util-core/src/main/scala/com/twitter/util/Time.scala:217: @deprecated now takes two arguments; see the scaladoc.
[warn] @deprecated("use sinceEpoch")
[warn] ^
[warn] /Users/richard/foo/util/util-core/src/main/scala/com/twitter/util/Time.scala:266: @deprecated now takes two arguments; see the scaladoc.
[warn] @deprecated("use time.untilNow")
[warn] ^
[warn] /Users/richard/foo/util/util-core/src/main/scala/com/twitter/util/Time.scala:372: value MaxLong in object BigInt is deprecated: Use Long.MaxValue
[warn] if (bigC > BigInt.MaxLong || bigC < BigInt.MinLong)
[warn] ^
[warn] /Users/richard/foo/util/util-core/src/main/scala/com/twitter/util/Time.scala:372: value MinLong in object BigInt is deprecated: Use Long.MinValue
[warn] if (bigC > BigInt.MaxLong || bigC < BigInt.MinLong)
[warn] ^
[warn] 5 warnings found
[info] Compilation successful.
[info] Post-analysis: 381 classes.
[info] == util-core / compile ==
[info]
[info] == util-eval / check-deps-exist ==
[info] == util-eval / check-deps-exist ==
[info]
[info] == util-reflect / compile ==
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[info] Compilation successful.
[info] Post-analysis: 12 classes.
[info] == util-reflect / compile ==
[info]
[info] == util-logging / compile ==
[info] Source analysis: 11 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[info] Compilation successful.
[info] Post-analysis: 91 classes.
[info] == util-logging / compile ==
[info]
[info] == util-collection / compile ==
[info] Source analysis: 3 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[warn] /Users/richard/foo/util/util-collection/src/main/scala/com/twitter/util/MapMaker.scala:26: method expiration in class MapMaker is deprecated: see corresponding Javadoc for more information.
[warn] def expiration(expiration: Duration) = { mapMaker.expiration(expiration.inMillis, MS); this }
[warn] ^
[warn] /Users/richard/foo/util/util-collection/src/main/scala/com/twitter/util/SetMaker.scala:22: method expiration in class MapMaker is deprecated: see corresponding Javadoc for more information.
[warn] def expiration(expiration: Duration) = { mapMaker.expiration(expiration.inMillis, TimeUnit.MILLISECONDS); this }
[warn] ^
[warn] two warnings found
[info] Compilation successful.
[info] Post-analysis: 15 classes.
[info] == util-collection / compile ==
[info]
[info] == util-core / test-compile ==
[info] Source analysis: 32 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[warn] /Users/richard/foo/util/util-core/src/test/scala/com/twitter/util/TimeSpec.scala:167: value MaxLong in object BigInt is deprecated: Use Long.MaxValue
[warn] if (bigC.abs > BigInt.MaxLong)
[warn] ^
[warn] /Users/richard/foo/util/util-core/src/test/scala/com/twitter/util/TimeSpec.scala:181: value MaxLong in object BigInt is deprecated: Use Long.MaxValue
[warn] if (bigC.abs > BigInt.MaxLong)
[warn] ^
[warn] /Users/richard/foo/util/util-core/src/test/scala/com/twitter/util/TimeSpec.scala:195: value MaxLong in object BigInt is deprecated: Use Long.MaxValue
[warn] if (bigC.abs > BigInt.MaxLong)
[warn] ^
[warn] three warnings found
[info] Compilation successful.
[info] Post-analysis: 1575 classes.
[info] == util-core / test-compile ==
[info]
[info] == util-hashing / compile ==
[info] Source analysis: 4 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[info] Compilation successful.
[info] Post-analysis: 27 classes.
[info] == util-hashing / compile ==
[info]
[info] == util-thrift / compile ==
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[info] Compilation successful.
[info] Post-analysis: 5 classes.
[info] == util-thrift / compile ==
[info]
[info] == util-eval / compile ==
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling main sources...
[warn] /Users/richard/foo/util/util-eval/src/main/scala/com/twitter/util/Eval.scala:37: @deprecated now takes two arguments; see the scaladoc.
[warn] @deprecated("use a throw-away instance of Eval instead")
[warn] ^
[warn] one warning found
[info] Compilation successful.
[info] Post-analysis: 26 classes.
[info] == util-eval / compile ==
[info]
[info] == util-core / copy-resources ==
[info] == util-core / copy-resources ==
[info]
[info] == util-core / copy-test-resources ==
[info] == util-core / copy-test-resources ==
[info]
[info] == util-logging / copy-resources ==
[info] == util-logging / copy-resources ==
[info]
[info] == util-thrift / copy-resources ==
[info] == util-thrift / copy-resources ==
[info]
[info] == util-hashing / test-compile ==
[info] Source analysis: 2 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[info] Compilation successful.
[info] Post-analysis: 18 classes.
[info] == util-hashing / test-compile ==
[info]
[info] == util-collection / test-compile ==
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[info] Compilation successful.
[info] Post-analysis: 29 classes.
[info] == util-collection / test-compile ==
[info]
[info] == util-eval / copy-test-resources ==
[info] == util-eval / copy-test-resources ==
[info]
[info] == util-collection / copy-test-resources ==
[info] == util-collection / copy-test-resources ==
[info]
[info] == util-reflect / copy-test-resources ==
[info] == util-reflect / copy-test-resources ==
[info]
[info] == util-hashing / copy-test-resources ==
[info] == util-hashing / copy-test-resources ==
[info]
[info] == util-eval / copy-resources ==
[info] == util-eval / copy-resources ==
[info]
[info] == util-reflect / test-compile ==
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[info] Compilation successful.
[info] Post-analysis: 77 classes.
[info] == util-reflect / test-compile ==
[info]
[info] == util-thrift / copy-test-resources ==
[info] == util-thrift / copy-test-resources ==
[info]
[info] == util-logging / test-compile ==
[info] Source analysis: 7 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[info] Compilation successful.
[info] Post-analysis: 230 classes.
[info] == util-logging / test-compile ==
[info]
[info] == util-reflect / copy-resources ==
[info] == util-reflect / copy-resources ==
[info]
[info] == util-eval / test-compile ==
[info] Source analysis: 1 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[info] Compilation successful.
[info] Post-analysis: 29 classes.
[info] == util-eval / test-compile ==
[info]
[info] == util-collection / copy-resources ==
[info] == util-collection / copy-resources ==
[info]
[info] == util-core / write-build-properties ==
[info] == util-core / write-build-properties ==
[info]
[info] == util-hashing / copy-resources ==
[info] == util-hashing / copy-resources ==
[info]
[info] == util-thrift / test-compile ==
[info] Source analysis: 2 new/modified, 0 indirectly invalidated, 0 removed.
[info] Compiling test sources...
[info] Compilation successful.
[info] Post-analysis: 18 classes.
[info] == util-thrift / test-compile ==
[info]
[info] == util-logging / copy-test-resources ==
[info] == util-logging / copy-test-resources ==
[info]
[info] == util-eval / write-build-properties ==
[info] == util-eval / write-build-properties ==
[info]
[info] == util-thrift / write-build-properties ==
[info] == util-thrift / write-build-properties ==
[info]
[info] == util-reflect / write-build-properties ==
[info] == util-reflect / write-build-properties ==
[info]
[info] == util-hashing / write-build-properties ==
[info] == util-hashing / write-build-properties ==
[info]
[info] == util-collection / write-build-properties ==
[info] == util-collection / write-build-properties ==
[info]
[info] == util-reflect / test-start ==
[info] == util-reflect / test-start ==
[info]
[info] == util-reflect / com.twitter.util.reflect.ProxySpec ==
[info] + ProxyFactory should
[info] + generate a factory for an interface
[info] + generate a factory for a class with a default constructor
[info] + must not throw UndeclaredThrowableException
[info] + MethodCall returnsUnit must be true for unit/void methods
[info] + MethodCall returnsFuture must be true for methods that return a future or subclass
[info] + MethodCall throws an exception when invoked without a target
[info] + MethodCall can be invoked with alternate target
[info] + MethodCall can be invoked with alternate arguments
[info] + MethodCall can be invoked with alternate target and arguments
[info] + maintains proxy creation speed
[info] o maintains invocation speed
[info] == util-reflect / com.twitter.util.reflect.ProxySpec ==
[info]
[info] == util-reflect / test-complete ==
[info] == util-reflect / test-complete ==
[info]
[info] == util-reflect / <anonymous> ==
[info] == util-reflect / <anonymous> ==
[info]
[info] == util-logging / test-start ==
[info] == util-logging / test-start ==
[info]
[info] == util-logging / com.twitter.logging.ThrottledHandlerSpec ==
[info] + ThrottledHandler should
[info] + throttle keyed log messages
[info] + log the summary even if nothing more is logged with that name
[info] == util-logging / com.twitter.logging.ThrottledHandlerSpec ==
[info]
[info] == util-logging / com.twitter.logging.QueueingHandlerSpec ==
java.lang.Exception: Unable to log for whatever reason.
at com.twitter.logging.QueueingHandlerSpec$$anonfun$1$$anonfun$apply$14$$anon$5.publish(QueueingHandlerSpec.scala:112)
at com.twitter.logging.QueueingHandler$$anon$1.run(QueueingHandler.scala:40)
[info] + QueueingHandler should
[info] + publish
[info] + publish, drop on overflow
[info] + flush
[info] + close
[info] + handle exceptions in the underlying handler
[info] == util-logging / com.twitter.logging.QueueingHandlerSpec ==
[info]
[info] == util-logging / com.twitter.logging.FileHandlerSpec ==
[info] + FileHandler should
[info] + honor append setting on logfiles
[info] + respond to a sighup to reopen a logfile with sun.misc
[info] + roll logs on time
[info] + hourly
[info] + weekly
[info] + roll logs into new files
[info] + keep no more than N log files around
[info] + roll log files based on max size
[info] == util-logging / com.twitter.logging.FileHandlerSpec ==
[info]
[info] == util-logging / com.twitter.logging.FormatterSpec ==
[info] + Formatter should
[info] + create a prefix
[info] + format text
[info] + format a timestamp
[info] + do lazy message evaluation
[info] + format package names
[info] + handle other prefixes
[info] + truncate line
[info] + write stack traces
[info] + simple
[info] + nested
[info] == util-logging / com.twitter.logging.FormatterSpec ==
[info]
[info] == util-logging / com.twitter.logging.ScribeHandlerSpec ==
[info] + ScribeHandler should
[info] + build a scribe RPC call
[info] + be able to log binary data
[info] + throw away log messages if scribe is too busy
[info] == util-logging / com.twitter.logging.ScribeHandlerSpec ==
[info]
[info] == util-logging / com.twitter.logging.SyslogHandlerSpec ==
[info] + SyslogHandler should
[info] + write syslog entries
[info] + with server name
[info] + with BSD time format
[info] == util-logging / com.twitter.logging.SyslogHandlerSpec ==
[info]
[info] == util-logging / com.twitter.logging.LoggerSpec ==
[info] + Logger should
[info] + provide level name and value maps
[info] + figure out package names
[info] + log a message, with timestamp
[info] + get single-threaded return the same value
[info] + get multi-threaded return the same value
[info] + configure logging
[info] + file handler
[info] + syslog handler
[info] + complex config
[info] == util-logging / com.twitter.logging.LoggerSpec ==
[info]
[info] == util-logging / test-complete ==
[info] == util-logging / test-complete ==
[info]
[info] == util-logging / <anonymous> ==
[info] == util-logging / <anonymous> ==
[info]
[info] == util-logging / write-build-properties ==
[info] == util-logging / write-build-properties ==
[info]
[info] == util-thrift / test-start ==
[info] == util-thrift / test-start ==
[info]
[info] == util-thrift / com.twitter.util.ThriftSerializerSpec ==
[info] + ThriftSerializer should
[info] + encode JSON
[info] + [not] decode JSON
[info] + encode and decode binary
[info] + encode and decode compact
[info] == util-thrift / com.twitter.util.ThriftSerializerSpec ==
[info]
[info] == util-thrift / test-complete ==
[info] == util-thrift / test-complete ==
[info]
[info] == util-thrift / <anonymous> ==
[info] == util-thrift / <anonymous> ==
[info]
[info] == util-thrift / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_cc23d197
[info] == util-thrift / Test cleanup 1 ==
[info]
[info] == util-thrift / test-finish ==
[info] Passed: : Total 5, Failed 0, Errors 0, Passed 5, Skipped 0
[info]
[info] All tests PASSED.
[info] == util-thrift / test-finish ==
[info]
[info] == util-thrift / test-cleanup ==
[info] == util-thrift / test-cleanup ==
[info]
[info] == util-logging / test-finish ==
[info] Passed: : Total 47, Failed 0, Errors 0, Passed 47, Skipped 0
[info]
[info] All tests PASSED.
[info] == util-logging / test-finish ==
[info]
[info] == util-logging / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_384cb8b1
[info] == util-logging / Test cleanup 1 ==
[info]
[info] == util-logging / test-cleanup ==
[info] == util-logging / test-cleanup ==
[info]
[info] == util-eval / test-start ==
[info] == util-eval / test-start ==
[info]
[info] == util-eval / com.twitter.util.EvalSpec ==
[info] + Evaluator should
[info] + apply('expression')
[info] + apply(new File(...))
[info] + apply(new File(...), new File(...))
[info] + apply(InputStream)
[info] + inPlace('expression')
[info] + check
[info] + #include
[info] + toSource returns post-processed code
[info] + throws a compilation error when Ruby is #included
[info] == util-eval / com.twitter.util.EvalSpec ==
[info]
[info] == util-eval / test-complete ==
[info] == util-eval / test-complete ==
[info]
[info] == util-eval / <anonymous> ==
[info] == util-eval / <anonymous> ==
[info]
[info] == util-collection / test-start ==
[info] == util-collection / test-start ==
[info]
[info] == util-collection / com.twitter.util.MapMakerSpec ==
[info] + MapMaker should
[info] + A weak value map removes items when there is no longer a reference to them
[info] + calling contains does not trigger compute function
[info] + max size is enforced
[info] + EvictionListener is called upon eviction
[info] == util-collection / com.twitter.util.MapMakerSpec ==
[info]
[info] == util-collection / test-complete ==
[info] == util-collection / test-complete ==
[info]
[info] == util-collection / <anonymous> ==
[info] == util-collection / <anonymous> ==
[info]
[info] == util-collection / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_b27aa5a9
[info] == util-collection / Test cleanup 1 ==
[info]
[info] == util-collection / test-finish ==
[info] Passed: : Total 5, Failed 0, Errors 0, Passed 5, Skipped 0
[info]
[info] All tests PASSED.
[info] == util-collection / test-finish ==
[info]
[info] == util-collection / test-cleanup ==
[info] == util-collection / test-cleanup ==
[info]
[info] == util-eval / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_d10ba653
[info] == util-eval / Test cleanup 1 ==
[info]
[info] == util-eval / test-finish ==
[info] Passed: : Total 10, Failed 0, Errors 0, Passed 10, Skipped 0
[info]
[info] All tests PASSED.
[info] == util-eval / test-finish ==
[info]
[info] == util-eval / test-cleanup ==
[info] == util-eval / test-cleanup ==
[info]
[info] == util-hashing / test-start ==
[info] == util-hashing / test-start ==
[info]
[info] == util-hashing / com.twitter.hashing.DiagnosticsSpec ==
[info] + Diagnostics should
[info] o print distribution
[info] == util-hashing / com.twitter.hashing.DiagnosticsSpec ==
[info]
[info] == util-hashing / com.twitter.hashing.KetamaDistributorSpec ==
[info] + KetamaDistributor should
[info] + pick the correct node
[info] == util-hashing / com.twitter.hashing.KetamaDistributorSpec ==
[info]
[info] == util-hashing / test-complete ==
[info] == util-hashing / test-complete ==
[info]
[info] == util-hashing / <anonymous> ==
[info] == util-hashing / <anonymous> ==
[info]
[info] == util-hashing / test-finish ==
[info] Passed: : Total 4, Failed 0, Errors 0, Passed 3, Skipped 1
[info]
[info] All tests PASSED.
[info] == util-hashing / test-finish ==
[info]
[info] == util-hashing / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_8074ff34
[info] == util-hashing / Test cleanup 1 ==
[info]
[info] == util-hashing / test-cleanup ==
[info] == util-hashing / test-cleanup ==
[info]
[info] == util-reflect / test-finish ==
[info] Passed: : Total 12, Failed 0, Errors 0, Passed 11, Skipped 1
[info]
[info] All tests PASSED.
[info] == util-reflect / test-finish ==
[info]
[info] == util-reflect / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_95b48014
[info] == util-reflect / Test cleanup 1 ==
[info]
[info] == util-reflect / test-cleanup ==
[info] == util-reflect / test-cleanup ==
[info]
[info] == util-core / test-start ==
[info] == util-core / test-start ==
[info]
[info] == util-core / com.twitter.util.StringEncoderSpec ==
[info] + strip new lines
[info] + decode value with stripped new lines
[info] == util-core / com.twitter.util.StringEncoderSpec ==
[info]
[info] == util-core / com.twitter.concurrent.ConcurrentPoolSpec ==
[info] + reserve items
[info] + yield items in FIFO order
[info] + kill empty lists
[info] == util-core / com.twitter.concurrent.ConcurrentPoolSpec ==
[info]
[info] == util-core / com.twitter.util.StringConversionsSpec ==
[info] + string should
[info] + quoteC
[info] + unquoteC
[info] + hexlify
[info] + unhexlify
[info] == util-core / com.twitter.util.StringConversionsSpec ==
[info]
[info] == util-core / com.twitter.util.StateMachineSpec ==
[info] + StateMachine should
[info] + allows transitions that are permitted
[info] + throws exceptions when a transition is not permitted
[info] == util-core / com.twitter.util.StateMachineSpec ==
[info]
[info] == util-core / com.twitter.util.StorageUnitSpec ==
[info] + StorageUnit should
[info] + convert whole numbers into storage units (back and forth)
[info] + confer an essential humanity
[info] == util-core / com.twitter.util.StorageUnitSpec ==
[info]
[info] == util-core / com.twitter.concurrent.ChannelSpec ==
[info] + ChannelSource should
[info] + send & receive
[info] + respond before any sent messages
[info] + close
[info] + receive is triggered when there is a subscriber
[info] + map
[info] + filter
[info] + merge
[info] + pipe
[info] + first
[info] + backpressure
[info] + numObservers
[info] == util-core / com.twitter.concurrent.ChannelSpec ==
[info]
[info] == util-core / com.twitter.util.RingBufferSpec ==
[info] + RingBuffer should
[info] + empty
[info] + handle single element
[info] + handle multiple element
[info] + handle overwrite/rollover
[info] + removeWhere
[info] == util-core / com.twitter.util.RingBufferSpec ==
[info]
[info] == util-core / com.twitter.concurrent.IVarSpec ==
[info] + IVar should
[info] + invoke gets after value is set
[info] + set value once
[info] + invoke multiple gets
[info] + chain properly
[info] == util-core / com.twitter.concurrent.IVarSpec ==
[info]
[info] == util-core / com.twitter.util.BoundedStackSpec ==
[info] + BoundedStack should
[info] + empty
[info] + handle single element
[info] + handle multiple element
[info] + handle overwrite/rollover
[info] + handle update
[info] + insert at 0 is same as +=
[info] + insert at count pushes to bottom
[info] + insert > count throws exception
[info] == util-core / com.twitter.util.BoundedStackSpec ==
[info]
[info] == util-core / com.twitter.util.LastWriteWinsQueueSpec ==
[info] + LastWriteWinsQueue should
[info] + add & remove items
[info] + last write wins
[info] == util-core / com.twitter.util.LastWriteWinsQueueSpec ==
[info]
[info] == util-core / com.twitter.util.FuturePoolSpec ==
[info] + FuturePool should
[info] + dispatch to another thread
[info] == util-core / com.twitter.util.FuturePoolSpec ==
[info]
[info] == util-core / com.twitter.io.StreamIOSpec ==
[info] + StreamIO.copy should
[info] + copy the entire stream
[info] + produce empty streams from empty streams
[info] == util-core / com.twitter.io.StreamIOSpec ==
[info]
[info] == util-core / com.twitter.util.PoolSpec ==
[info] + SimplePool should
[info] + with a simple queue of items
[info] + it reseves items in FIFO order
[info] + with an object factory and a health check
[info] + reserve & release
[info] + reserve & dispose
[info] == util-core / com.twitter.util.PoolSpec ==
[info]
[info] == util-core / com.twitter.concurrent.BrokerSpec ==
[info] + Broker (unbuffered) should
[info] + send data (send, recv)
[info] + send data (recv, send)
[info] == util-core / com.twitter.concurrent.BrokerSpec ==
[info]
[info] == util-core / com.twitter.util.U64Spec ==
[info] + comparable
[info] + comparable in range
[info] + divisible
[info] + ids should survive conversions
[info] + ids should be serializable
[info] == util-core / com.twitter.util.U64Spec ==
[info]
[info] == util-core / com.twitter.concurrent.SerializedSpec ==
[info] + Serialized should
[info] + runs blocks, one at a time, in the order received
[info] == util-core / com.twitter.concurrent.SerializedSpec ==
[info]
[info] == util-core / com.twitter.util.TimeSpec ==
[info] + Time should
[info] + now should be now
[info] + withTimeAt
[info] + withTimeAt nested
[info] + withCurrentTimeFrozen
[info] + advance
[info] + compare
[info] + + delta
[info] + - delta
[info] + - time
[info] + max
[info] + min
[info] + moreOrLessEquals
[info] + floor
[info] + since
[info] + sinceEpoch
[info] + sinceNow
[info] + until
[info] + untilEpoch
[info] + untilNow
[info] + preserve MaxValue
[info] + TimeMath should
[info] + add
[info] + sub
[info] + mull
[info] == util-core / com.twitter.util.TimeSpec ==
[info]
[info] == util-core / com.twitter.util.DurationSpec ==
[info] + Duration should
[info] + *
[info] + /
[info] + %
[info] + floor
[info] + abs
[info] + afterEpoch
[info] + fromNow
[info] + ago
[info] + compare
[info] + + delta
[info] + - delta
[info] + max
[info] + min
[info] + moreOrLessEquals
[info] + inTimeUnit
[info] + time milliseconds
[info] + time nanoseconds
[info] + be hashable
[info] == util-core / com.twitter.util.DurationSpec ==
[info]
[info] == util-core / com.twitter.util.CredentialsSpec ==
[info] + Credentials should
[info] + parse a simple auth file
[info] + parse a more complex auth file
[info] + work for java peeps too
[info] == util-core / com.twitter.util.CredentialsSpec ==
[info]
[info] == util-core / com.twitter.concurrent.ConcurrentMultiMapSpec ==
[info] + behave like a multimap
[info] == util-core / com.twitter.concurrent.ConcurrentMultiMapSpec ==
[info]
[info] == util-core / com.twitter.util.TimerSpec ==
[info] + ThreadStoppingTimer should
[info] + stop timers in a different thread
[info] + ReferenceCountedTimer should
[info] + example 1
[info] + call the factory when it is first acquired
[info] + stop the underlying timer when acquire count reaches 0
[info] + ScheduledThreadPoolTimer should
[info] + initialize and stop
[info] + increment a counter
[info] == util-core / com.twitter.util.TimerSpec ==
[info]
[info] == util-core / com.twitter.concurrent.AsyncMutexSpec ==
[info] + AsyncMutex should
[info] + admit only one operation at a time
[info] == util-core / com.twitter.concurrent.AsyncMutexSpec ==
[info]
[info] == util-core / com.twitter.util.ConfigSpec ==
[info] + Config should
[info] + computed should delay evaluation
[info] + subclass can override indepedent var for use in dependent var
[info] + missingValues
[info] + must return empty Seq when no values are missing
[info] + must find top-level missing values
[info] + must find top-level and nested missing values
[info] == util-core / com.twitter.util.ConfigSpec ==
[info]
[info] == util-core / com.twitter.concurrent.OfferSpec ==
[info] + Offer.map should
[info] + apply f in poll
[info] + apply f in enqueue
[info] + Offer.choose should
[info] + select the first among unsatisfied events (poll)
[info] + select the first among unsatisfied events (enqueue)
[info] + shuffle events
[info] + Offer.sync should
[info] + succeed immediately when poll is successful
[info] + enqueue when poll is unsuccesful
[info] + propagate value
[info] + dequeue
[info] + Offer.const should
[info] + always provide the same result
[info] + evaluate argument for each poll()
[info] + catch illegal use
[info] + Offer.orElse should
[info] + with const orElse
[info] + poll orElse event when poll fails
[info] + not poll orElse event when poll succeed
[info] + not enqueue orElse event
[info] + Offer.foreach should
[info] + synchronize on offers forever
[info] + Offer.timeout should
[info] + be available after timeout (poll)
[info] + be available after timeout (enqueue)
[info] + cancel timer task when cancelled
[info] + Offer.enumToChannel should
[info] + synchronize only when a responder is present
[info] + stop synchronizing on close
[info] + Integration should
[info] + select across multiple brokers
[info] == util-core / com.twitter.concurrent.OfferSpec ==
[info]
[info] == util-core / com.twitter.concurrent.ConcurrentBijectionSpec ==
[info] + maintain a bijective map
[info] + maintain the bijective property
[info] + delete mappings
[info] + iterate over mappings
[info] == util-core / com.twitter.concurrent.ConcurrentBijectionSpec ==
[info]
[info] == util-core / com.twitter.util.CancellableSpec ==
[info] + CancellableSink should
[info] + cancel once
[info] == util-core / com.twitter.util.CancellableSpec ==
[info]
[info] == util-core / com.twitter.concurrent.AsyncSemaphoreSpec ==
[info] + AsyncSemaphore should
[info] + execute immediately while permits are available
[info] + execute deferred computations when permits are released
[info] == util-core / com.twitter.concurrent.AsyncSemaphoreSpec ==
[info]
[info] == util-core / com.twitter.util.FutureSpec ==
[info] + Future should
[info] + times
[info] + when everything succeeds
[info] + when some succeed and some fail
[info] + when cancelled
[info] + whileDo
[info] + when everything succeeds
[info] + when some succeed and some fail
[info] + when cancelled
[info] + Promise should
[info] + map
[info] + when it's all chill
[info] + when there's a problem in the passed in function
[info] + cancellation
[info] + flatMap
[info] + successes
[info] + apply
[info] + respond
[info] + cancellation
[info] + failures
[info] + apply
[info] + respond
[info] + when there is an exception in the passed in function
[info] + rescue
[info] + successes
[info] + apply
[info] + respond
[info] + failures
[info] + apply
[info] + respond
[info] + when the error handler errors
[info] + cancellation
[info] + foreach
[info] + respond
[info] + when the result has arrived
[info] + when the result has not yet arrived it buffers computations
[info] + Future() handles exceptions
[info] + propagate locals
[info] + propagate locals across threads
[info] + cancellation
[info] + dispatch onCancellation upon cancellation
[info] + cancel a linked cancellable (after cancellation)
[info] + cancel a linked cancellable (before cancellation)
[info] + within
[info] + when we run out of time
[info] + when everything is chill
[info] + cancellation
[info] + FutureTask
[info] + should return result
[info] + should throw result
[info] + Future.select()
[info] + should select the first [result] to complete
[info] + should select the first [exception] to complete
[info] + should propagate cancellation
[info] + Future.join()
[info] + should only return when both futures complete
[info] + should return with exception if the first future throws
[info] + return with exception if the second future throws
[info] + propagate cancellation
[info] + Future.collect()
[info] + should only return when both futures complete
[info] + should return with exception if the first future throws
[info] + should return with exception if the second future throws
[info] + should propagate cancellation
[info] + Future.select()
[info] + should return the first result
[info] + success (0)
[info] + should failure (0)
[info] + success (1)
[info] + should failure (1)
[info] + success (2)
[info] + should failure (2)
[info] + success (3)
[info] + should failure (3)
[info] + success (4)
[info] + should failure (4)
[info] + success (5)
[info] + should failure (5)
[info] + success (6)
[info] + should failure (6)
[info] + success (7)
[info] + should failure (7)
[info] + success (8)
[info] + should failure (8)
[info] + success (9)
[info] + should failure (9)
[info] + should fail if we attempt to select an empty future sequence
[info] + should propagate cancellation
[info] + Future.toOffer
[info] + should activate when future is satisfied (poll)
[info] + should activate when future is satisfied (enqueue)
[info] == util-core / com.twitter.util.FutureSpec ==
[info]
[info] == util-core / com.twitter.util.LocalSpec ==
[info] + Local should
[info] + be undefined by default
[info] + hold on to values
[info] + restore saved values
[info] + have a per-thread definition
[info] + unset undefined variables when restoring
[info] == util-core / com.twitter.util.LocalSpec ==
[info]
[info] == util-core / com.twitter.util.TrySpec ==
[info] + Try() should
[info] + catch exceptions and lift into the Try type
[info] + Try should
[info] + rescue
[info] + getOrElse
[info] + apply
[info] + map
[info] + when there is no exception
[info] + when there is an exception
[info] + flatMap
[info] + when there is no exception
[info] + when there is an exception
[info] + for
[info] + with no Throw values
[info] + with Throw values
[info] + throws before
[info] + throws after
[info] + returns the FIRST Throw
[info] == util-core / com.twitter.util.TrySpec ==
[info]
[info] == util-core / test-complete ==
[info] == util-core / test-complete ==
[info]
[info] == util-core / <anonymous> ==
[info] == util-core / <anonymous> ==
[info]
[info] == util-core / package ==
[info] Packaging ./util-core/target/util-core-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-core / package ==
[info]
[info] == util-thrift / package ==
[info] Packaging ./util-thrift/target/util-thrift-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-thrift / package ==
[info]
[info] == util-reflect / package ==
[info] Packaging ./util-reflect/target/util-reflect-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-reflect / package ==
[info]
[info] == util-hashing / package ==
[info] Packaging ./util-hashing/target/util-hashing-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-hashing / package ==
[info]
[info] == util-logging / package ==
[info] Packaging ./util-logging/target/util-logging-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-logging / package ==
[info]
[info] == util-collection / package ==
[info] Packaging ./util-collection/target/util-collection-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-collection / package ==
[info]
[info] == util-eval / package ==
[info] Packaging ./util-eval/target/util-eval-2.9.0-1_1.10.3-SNAPSHOT.jar ...
[info] Packaging complete.
[info] == util-eval / package ==
[info]
[info] == util-core / Test cleanup 1 ==
[info] Deleting directory /var/folders/4g/9fsv2z2x57n86hc76lfcjbdm0000gn/T/sbt_d126f827
[info] == util-core / Test cleanup 1 ==
[info]
[info] == util-core / test-finish ==
[info] Passed: : Total 295, Failed 0, Errors 0, Passed 295, Skipped 0
[info]
[info] All tests PASSED.
[info] == util-core / test-finish ==
[info]
[info] == util-core / test-cleanup ==
[info] == util-core / test-cleanup ==
[info]
[info] == util / package ==
[info] == util / package ==
[success] Successful.
[info]
[info] Total time: 183 s, completed Oct 19, 2011 6:15:52 PM
[info]
[info] Total session time: 287 s, completed Oct 19, 2011 6:15:52 PM
[success] Build completed successfully.
util (master)$ ls -lart */target/*.jar
-rw-r--r-- 1 richard staff 8770 19 Oct 18:15 util-thrift/target/util-thrift-2.9.0-1_1.10.3-SNAPSHOT.jar
-rw-r--r-- 1 richard staff 15754 19 Oct 18:15 util-reflect/target/util-reflect-2.9.0-1_1.10.3-SNAPSHOT.jar
-rw-r--r-- 1 richard staff 488140 19 Oct 18:15 util-core/target/util-core-2.9.0-1_1.10.3-SNAPSHOT.jar
-rw-r--r-- 1 richard staff 152934 19 Oct 18:15 util-logging/target/util-logging-2.9.0-1_1.10.3-SNAPSHOT.jar
-rw-r--r-- 1 richard staff 33166 19 Oct 18:15 util-hashing/target/util-hashing-2.9.0-1_1.10.3-SNAPSHOT.jar
-rw-r--r-- 1 richard staff 36787 19 Oct 18:15 util-eval/target/util-eval-2.9.0-1_1.10.3-SNAPSHOT.jar
-rw-r--r-- 1 richard staff 30039 19 Oct 18:15 util-collection/target/util-collection-2.9.0-1_1.10.3-SNAPSHOT.jar
util (master)$ cat project/build.properties
#Project properties
#Mon Jul 18 18:26:38 PDT 2011
project.organization=com.twitter
project.name=util
sbt.version=0.7.5
project.version=2.9.0-1_1.10.3-SNAPSHOT
def.scala.version=2.7.7
build.scala.versions=2.9.0-1
project.initialize=false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment