Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

This push brings more improvements to the release candidate for the n…

…ew pants build system as well as python support for server sets

pants:
  + Add support for --gen-thrift-version= to allow for use of alternate thrift compilers
  + Fix python protobuf code gen
  + Updates to eclipse goal's generated project config to better match commons checkstyle
  + Add support for --(idea|eclipse)-intransitive to only map sources specified on the command line into projects
  + Fixup pants target caching by replacing BUILD file caching with external dependency caching
  + Add an option for commands to acquire a run-lock when they are not re-entrant.
  + Fixup phase preparation to allow for multiple rounds when goals inject new targets into the run context in the prepare step
  + Add support for a scalac_plugin target
  + Introduce a scalac plugin to track source -> classes and eliminate deprecated flags
  + Correctly map jmake return codes when run via popen instead of via a nailgun
  + Add support for maven and sbt local repositories for snapshot sharing
  + Add handling for vm crashes while running tests
  + Fallback to searching for pants nailguns via psutil when its available and pid files are deleted

python:
  + A new ZooKeeper client and Group abstraction with a Reliable ServerSet implementation and app integration

jvm:
  upgrades:
    guava-12.0, finagle 3.0.0, zookeeper 3.4.3

  + Various improvements in logging support including AppLauncher support for glog style flags vi the LogModule
  + Angrybird zookeeper server - a zookeeper server with an api to control events for testing
  + Create a Histogram interface in metric and a memory efficient implementation that creates gauges automatically based on the distribution of values rather than pre-determined buckets
  • Loading branch information...
commit cad94179358448d6cf62ebfb3a9fe55f6cdeef2f 1 parent 96557b2
John Sirois authored
Showing with 8,344 additions and 2,106 deletions.
  1. +1 −0  .gitignore
  2. +41 −19 3rdparty/BUILD
  3. +6 −6 BUILD.commons
  4. BIN  build-support/bin/protobuf/mac/10.5/2.3.0/protoc
  5. BIN  build-support/bin/thrift/linux/i386/0.5.0/thrift
  6. BIN  build-support/bin/thrift/linux/x86_64/0.5.0-finagle/thrift
  7. BIN  build-support/bin/thrift/linux/x86_64/0.7.0/thrift
  8. BIN  build-support/bin/thrift/mac/10.5/0.5.0-finagle/thrift
  9. BIN  build-support/bin/thrift/mac/10.6/0.5.0-finagle/thrift
  10. BIN  build-support/bin/thrift/mac/10.7/0.5.0-finagle/thrift
  11. BIN  build-support/bin/thrift/mac/10.7/0.7.0/thrift
  12. +1 −0  build-support/commons/checkstyle/checkstyle_suppressions.xml
  13. +1 −1  build-support/commons/ivy/BUILD
  14. +13 −0 build-support/commons/ivy/ivysettings.xml
  15. +0 −389 build-support/commons/ivy/publish.properties
  16. +481 −0 build-support/commons/ivy/pushdb/publish.properties
  17. +1 −1  build-support/profiles/junit.ivy.xml
  18. +33 −0 build-support/profiles/scala-dependencies-2.8.1.ivy.xml
  19. +1 −1  pants
  20. +9 −0 src/java/com/twitter/common/application/modules/LogModule.java
  21. +3 −3 src/java/com/twitter/common/application/modules/StatsModule.java
  22. +4 −4 src/java/com/twitter/common/args/ArgScanner.java
  23. +5 −2 src/java/com/twitter/common/args/ArgumentInfo.java
  24. +1 −3 src/java/com/twitter/common/args/BUILD
  25. +2 −2 src/java/com/twitter/common/args/OptionInfo.java
  26. +1 −1  src/java/com/twitter/common/args/ParserOracle.java
  27. +1 −2  src/java/com/twitter/common/args/Parsers.java
  28. +3 −3 src/java/com/twitter/common/args/PositionalInfo.java
  29. +21 −5 src/java/com/twitter/common/args/TypeUtil.java
  30. +1 −1  src/java/com/twitter/common/args/Verifiers.java
  31. +4 −3 src/java/com/twitter/common/args/parsers/AmountParser.java
  32. +2 −2 src/java/com/twitter/common/args/parsers/ListParser.java
  33. +3 −3 src/java/com/twitter/common/args/parsers/MapParser.java
  34. +3 −3 src/java/com/twitter/common/args/parsers/PairParser.java
  35. +2 −2 src/java/com/twitter/common/args/parsers/SetParser.java
  36. +3 −2 src/java/com/twitter/common/args/parsers/TimeDurationParser.java
  37. +3 −1 src/java/com/twitter/common/logging/BUILD
  38. +272 −0 src/java/com/twitter/common/logging/RootLogConfig.java
  39. +1 −0  src/java/com/twitter/common/metrics/BUILD
  40. +0 −5 src/java/com/twitter/common/metrics/Events.java
  41. +143 −0 src/java/com/twitter/common/metrics/Histogram.java
  42. +9 −0 src/java/com/twitter/common/metrics/Metrics.java
  43. +0 −102 src/java/com/twitter/common/metrics/Rate.java
  44. +0 −100 src/java/com/twitter/common/metrics/Ratio.java
  45. +5 −5 src/java/com/twitter/common/net/http/handlers/VarsHandler.java
  46. +2 −2 src/java/com/twitter/common/net/http/handlers/VarsJsonHandler.java
  47. +0 −27 src/java/com/twitter/common/reflect/BUILD
  48. +0 −160 src/java/com/twitter/common/reflect/TypeToken.java
  49. +339 −0 src/java/com/twitter/common/stats/ApproximateHistogram.java
  50. +3 −0  src/java/com/twitter/common/stats/BUILD
  51. +3 −2 src/java/com/twitter/common/stats/CounterMap.java
  52. +26 −0 src/java/com/twitter/common/stats/Histogram.java
  53. +32 −0 src/java/com/twitter/common/stats/Precision.java
  54. +65 −44 src/java/com/twitter/common/stats/Stats.java
  55. +0 −1  src/java/com/twitter/common/testing/BUILD
  56. +10 −11 src/java/com/twitter/common/testing/EasyMockTest.java
  57. +72 −0 src/java/com/twitter/common/testing/runner/AbortableListener.java
  58. +0 −36 src/java/com/twitter/common/testing/runner/FailFastListener.java
  59. +30 −14 src/java/com/twitter/common/testing/runner/JUnitConsoleRunner.java
  60. +75 −20 src/java/com/twitter/common/zookeeper/guice/ServerSetModule.java
  61. +110 −0 src/java/com/twitter/common/zookeeper/testing/angrybird/AngryBirdZooKeeperMain.java
  62. +249 −0 src/java/com/twitter/common/zookeeper/testing/angrybird/AngryBirdZooKeeperServer.java
  63. +117 −0 src/java/com/twitter/common/zookeeper/testing/angrybird/AngryBirdZooKeeperThriftService.java
  64. +23 −0 src/java/com/twitter/common/zookeeper/testing/angrybird/BUILD
  65. +10 −0 src/python/twitter/common/app/modules/BUILD
  66. +159 −0 src/python/twitter/common/app/modules/serverset.py
  67. +1 −1  src/python/twitter/common/contextutil/__init__.py
  68. +13 −5 src/python/twitter/common/dirutil/__init__.py
  69. +77 −0 src/python/twitter/common/dirutil/lock.py
  70. +19 −10 src/python/twitter/common/dirutil/tail.py
  71. +70 −0 src/python/twitter/common/http/diagnostics.py
  72. 0  src/python/twitter/common/reviewboard/__init__.py
  73. +4 −8 {tests/java/com/twitter/common/reflect → src/python/twitter/common/testing}/BUILD
  74. 0  src/python/twitter/common/testing/__init__.py
  75. +67 −0 src/python/twitter/common/testing/clock.py
  76. +15 −4 src/python/twitter/common/zookeeper/BUILD
  77. +0 −2  src/python/twitter/common/zookeeper/__init__.py
  78. +425 −107 src/python/twitter/common/zookeeper/client.py
  79. +8 −0 src/python/twitter/common/zookeeper/group/BUILD
  80. +13 −0 src/python/twitter/common/zookeeper/group/__init__.py
  81. +401 −0 src/python/twitter/common/zookeeper/group/group.py
  82. +25 −0 src/python/twitter/common/zookeeper/named_value.py
  83. +0 −69 src/python/twitter/common/zookeeper/port_allocator.py
  84. +9 −0 src/python/twitter/common/zookeeper/serverset/BUILD
  85. +8 −0 src/python/twitter/common/zookeeper/serverset/__init__.py
  86. +185 −0 src/python/twitter/common/zookeeper/serverset/endpoint.py
  87. +91 −0 src/python/twitter/common/zookeeper/serverset/serverset.py
  88. +15 −17 src/python/twitter/common/zookeeper/serversets/client.py
  89. 0  src/python/twitter/common/zookeeper/serversets/serverset_tool.py
  90. +0 −220 src/python/twitter/common/zookeeper/test_cluster.py
  91. +166 −0 src/python/twitter/common/zookeeper/test_server.py
  92. +80 −0 src/python/twitter/common/zookeeper/util.py
  93. +8 −2 src/python/twitter/pants/BUILD
  94. +61 −0 src/python/twitter/pants/INSTALL.md
  95. +4 −0 src/python/twitter/pants/README.md
  96. +28 −1 src/python/twitter/pants/__init__.py
  97. +3 −4 src/python/twitter/pants/ant/bang.py
  98. +2 −5 src/python/twitter/pants/ant/ide.py
  99. +1 −0  src/python/twitter/pants/ant/lib.py
  100. +61 −7 src/python/twitter/pants/base/build_cache.py
  101. +1 −1  src/python/twitter/pants/base/build_info.py
  102. +32 −26 src/python/twitter/pants/base/parse_context.py
  103. +4 −0 src/python/twitter/pants/base/target.py
  104. +56 −20 src/python/twitter/pants/bin/pants_exe.py
  105. +15 −5 src/python/twitter/pants/commands/__init__.py
  106. +8 −2 src/python/twitter/pants/commands/goal.py
  107. +11 −7 src/python/twitter/pants/goal/__init__.py
  108. +100 −28 src/python/twitter/pants/goal/context.py
  109. +3 −8 src/python/twitter/pants/goal/group.py
  110. +75 −5 src/python/twitter/pants/goal/phase.py
  111. +8 −0 src/python/twitter/pants/python/BUILD
  112. +840 −0 src/python/twitter/pants/python/README.md
  113. +3 −14 src/python/twitter/pants/python/python_chroot.py
  114. +3 −7 src/python/twitter/pants/python/test_builder.py
  115. +6 −0 src/python/twitter/pants/targets/__init__.py
  116. +7 −1 src/python/twitter/pants/targets/doc.py
  117. +6 −0 src/python/twitter/pants/targets/internal.py
  118. +54 −0 src/python/twitter/pants/targets/java_thriftstore_dml_library.py
  119. +52 −0 src/python/twitter/pants/targets/scalac_plugin.py
  120. +6 −1 src/python/twitter/pants/targets/sources.py
  121. +4 −3 src/python/twitter/pants/targets/with_sources.py
  122. +44 −12 src/python/twitter/pants/tasks/__init__.py
  123. +10 −19 src/python/twitter/pants/tasks/binary_create.py
  124. +20 −2 src/python/twitter/pants/tasks/binary_utils.py
  125. +12 −2 src/python/twitter/pants/tasks/bundle_create.py
  126. +6 −4 src/python/twitter/pants/tasks/code_gen.py
  127. +280 −0 src/python/twitter/pants/tasks/eclipse/files/org.eclipse.jdt.core.prefs
  128. +60 −0 src/python/twitter/pants/tasks/eclipse/files/org.eclipse.jdt.ui.prefs
  129. +2 −1  src/python/twitter/pants/tasks/eclipse_gen.py
  130. +21 −9 src/python/twitter/pants/tasks/ide_gen.py
  131. +5 −7 src/python/twitter/pants/tasks/jar_publish.py
  132. +6 −34 src/python/twitter/pants/tasks/java_compile.py
  133. +9 −4 src/python/twitter/pants/tasks/javadoc_gen.py
  134. +76 −0 src/python/twitter/pants/tasks/jvm_compiler_dependencies.py
  135. +1 −1  src/python/twitter/pants/tasks/markdown_to_html.py
  136. +52 −8 src/python/twitter/pants/tasks/nailgun_task.py
  137. +12 −12 src/python/twitter/pants/tasks/protobuf_gen.py
  138. +61 −60 src/python/twitter/pants/tasks/scala_compile.py
  139. +16 −12 src/python/twitter/pants/tasks/thrift_gen.py
  140. +147 −0 src/python/twitter/pants/tasks/thriftstore_dml_gen.py
  141. +9 −0 src/python/twitter/thrift/util/BUILD
  142. +87 −0 src/python/twitter/thrift/util/generic_struct_parser.py
  143. +13 −0 src/scala/com/twitter/common/tools/compiler/BUILD
  144. +180 −0 src/scala/com/twitter/common/tools/compiler/plugins/DependencyEmitter.scala
  145. +7 −0 src/thrift/com/twitter/common/zookeeper/testing/angrybird/BUILD
  146. +93 −0 src/thrift/com/twitter/common/zookeeper/testing/angrybird/zk_test.thrift
  147. +1 −3 src/thrift/org/apache/scribe/0.1.2/scribe.thrift
  148. +0 −1  tests/java/com/twitter/common/BUILD
  149. +5 −5 tests/java/com/twitter/common/args/ParsersTest.java
  150. +319 −0 tests/java/com/twitter/common/logging/RootLogConfigTest.java
  151. +119 −0 tests/java/com/twitter/common/metrics/HistogramTest.java
  152. +5 −18 tests/java/com/twitter/common/metrics/MetricsIT.java
  153. +31 −0 tests/java/com/twitter/common/metrics/MetricsTest.java
  154. +0 −82 tests/java/com/twitter/common/metrics/RateTest.java
  155. +0 −49 tests/java/com/twitter/common/metrics/RatioTest.java
  156. +3 −3 tests/java/com/twitter/common/net/http/handlers/StatSupplierTestBase.java
  157. +1 −2  tests/java/com/twitter/common/net/http/handlers/VarsHandlerTest.java
  158. +0 −117 tests/java/com/twitter/common/reflect/TypeTokenTest.java
  159. +7 −5 tests/java/com/twitter/common/thrift/callers/RetryingCallerTest.java
  160. +8 −1 tests/java/com/twitter/common/zookeeper/BUILD
  161. +167 −0 tests/java/com/twitter/common/zookeeper/testing/angrybird/AngryBirdZooKeeperTest.java
  162. +11 −0 tests/java/com/twitter/common/zookeeper/testing/angrybird/BUILD
  163. +1 −0  tests/python/twitter/common/BUILD
  164. +91 −0 tests/python/twitter/common/dirutil/lock_test.py
  165. +4 −0 tests/python/twitter/common/zookeeper/BUILD
  166. +182 −22 tests/python/twitter/common/zookeeper/client_test.py
  167. +16 −0 tests/python/twitter/common/zookeeper/group/BUILD
  168. +353 −0 tests/python/twitter/common/zookeeper/group/test_group.py
  169. +16 −0 tests/python/twitter/common/zookeeper/serverset/BUILD
  170. +90 −0 tests/python/twitter/common/zookeeper/serverset/test_serverset.py
  171. +2 −1  tests/python/twitter/common/zookeeper/serversets/BUILD
  172. +54 −32 tests/python/twitter/common/zookeeper/serversets/client_test.py
  173. +1 −0  tests/python/twitter/thrift/BUILD
  174. +8 −0 tests/python/twitter/thrift/util/BUILD
  175. +61 −0 tests/python/twitter/thrift/util/test_generic_struct_parser.py
View
1  .gitignore
@@ -6,6 +6,7 @@
.coverage*
.idea
.pants.d
+.pants.run
.project
.settings
.classpath
View
60 3rdparty/BUILD
@@ -50,36 +50,41 @@ Notice: force is NOT transitive, so any indirectly depended package will not hav
jar_library(name = 'cascading2-core',
dependencies = [
- jar(org = 'cascading', name = 'cascading-core', rev = '2.0.0-wip-238')
+ jar(org = 'cascading', name = 'cascading-core', rev = '2.0.0-wip-291')
.exclude(org = 'org.apache.hadoop', name="hadoop-core")
])
jar_library(name = 'cascading-kryo',
dependencies = [
- jar(org = 'cascading.kryo', name = 'cascading.kryo', rev = '0.2.0')
+ jar(org = 'cascading.kryo', name = 'cascading.kryo', rev = '0.3.1')
+ ])
+
+jar_library(name = 'maple',
+ dependencies = [
+ jar(org = 'com.twitter', name = 'maple', rev = '0.1.7')
])
jar_library(name = 'cascading2-local',
dependencies = [
- jar(org = 'cascading', name = 'cascading-local', rev = '2.0.0-wip-238')
+ jar(org = 'cascading', name = 'cascading-local', rev = '2.0.0-wip-291')
.exclude(org = 'org.apache.hadoop', name="hadoop-core")
])
jar_library(name = 'cascading2-hadoop',
dependencies = [
- jar(org = 'cascading', name = 'cascading-hadoop', rev = '2.0.0-wip-238')
+ jar(org = 'cascading', name = 'cascading-hadoop', rev = '2.0.0-wip-291')
.exclude(org = 'org.apache.hadoop', name="hadoop-core")
])
jar_library(name = 'cascading-thrift',
dependencies = [
- jar(org = 'backtype', name = 'cascading-thrift', rev = '0.2.2')
+ jar(org = 'backtype', name = 'cascading-thrift', rev = '0.2.5')
.exclude(org = 'org.apache.thrift')
])
jar_library(name = 'cascading2-test',
- dependencies = [ jar(org = 'cascading', name = 'cascading-test', rev = '2.0.0-wip-238') ]
+ dependencies = [ jar(org = 'cascading', name = 'cascading-test', rev = '2.0.0-wip-291') ]
)
jar_library(name = 'cascading.jdbc',
@@ -135,7 +140,7 @@ jar_library(name = 'commons-logging',
)
# common rev for all com.twitter%finagle* artifacts
-FINAGLE_REV = '2.0.1'
+FINAGLE_REV = '3.0.0'
jar_library(name = 'finagle-b3',
dependencies = [ jar(org = 'com.twitter', name = 'finagle-b3', rev = FINAGLE_REV),
@@ -157,8 +162,8 @@ jar_library(name = 'gson',
jar_library(name = 'guava',
dependencies = [
jar(
- org = 'com.google.guava', name = 'guava', rev = '11.0.2',
- apidocs = 'http://docs.guava-libraries.googlecode.com/git-history/v11.0.2/javadoc/'
+ org = 'com.google.guava', name = 'guava', rev = '12.0',
+ apidocs = 'http://docs.guava-libraries.googlecode.com/git-history/v12.0/javadoc/'
).with_sources(),
# This dependency should not need to be explicit but its currently required to work
@@ -246,14 +251,6 @@ jar_library(name = 'lucene-snowball',
]
)
-jar_library(name = 'mahout-core',
- dependencies = [ jar(org = 'org.apache.mahout', name = 'mahout-core', rev = '0.6-T1')
- .exclude(org = 'com.google.collections', name = 'google-collections') ])
-
-jar_library(name = 'mahout-math',
- dependencies = [ jar(org = 'org.apache.mahout', name = 'mahout-math', rev = '0.6-T1')
- .exclude(org = 'com.google.collections', name = 'google-collections') ])
-
jar_library(name = 'meat-locker',
dependencies = [ jar(org='com.twitter', name='meat-locker', rev='0.1.6') ]
)
@@ -270,6 +267,12 @@ jar_library(name = 'protobuf-2.3.0',
jar_library(name = 'protobuf-java',
dependencies = [ pants(':protobuf-2.3.0') ])
+jar_library(name = 'scala-compiler',
+ dependencies = [
+ jar(org='org.scala-lang', name='scala-compiler', rev='2.8.1').with_sources()
+ ]
+ )
+
jar_library(name = 'scala-library',
dependencies = [
jar(org='org.scala-lang', name='scala-library', rev='2.8.1').with_sources()
@@ -333,6 +336,11 @@ jar_library(name = 'thrift-0.5.0-finagle',
]
)
+jar_library(name = 'thrift-0.7.0',
+ dependencies = [
+ jar(org = 'org.apache.thrift', name = 'libthrift', rev = '0.7.0'),
+ ]
+ )
jar_library(name = 'thrift',
dependencies = [ pants(':thrift-0.5') ])
@@ -348,9 +356,12 @@ jar_library(name = 'twitter-text',
dependencies = [ jar(org = 'com.twitter', name = 'twitter-text', rev = '1.4.10') ])
# common rev for all com.twitter%util* artifacts
-UTIL_REV = '1.8.18'
+UTIL_REV = '3.0.0'
jar_library(name = 'util',
- dependencies = [ jar(org = 'com.twitter', name = 'util', rev = UTIL_REV) ])
+ dependencies = [
+ jar(org = 'com.twitter', name = 'util', rev = UTIL_REV)
+ .exclude(org = 'com.twitter.common.zookeeper')
+ ])
jar_library(name = 'util-core',
dependencies = [ jar(org = 'com.twitter', name = 'util-core', rev = UTIL_REV) ])
@@ -381,6 +392,12 @@ jar_library(name = 'twadoop',
]
)
+jar_library(name = 'commons-net',
+ dependencies = [
+ jar(org = 'commons-net', name = 'commons-net', rev = '3.1')
+ ]
+ )
+
###############
# Test support
#
@@ -422,9 +439,14 @@ jar_library(name = 'specs', dependencies = [ pants(':specs_2.8') ])
jar_library(name = 'tl4j',
dependencies = [
jar(org = 'com.google.testing', name = 'test-libraries-for-java', rev = '1.1.1')
+ # tl4j by default pulls in junit-4.6, which conflicts with 4.10 needed by our
+ # testing code (e.g. ConcurrentJunitRunner). So exclude it here so that the junit
+ # target defined above is used instead. tl4j seems to be happy with junit-4.10.
+ .exclude(org = 'junit', name='junit')
]
)
+
# TODO(John Sirois): support an ivy 'runtime' configuration and punch through a way to indicate this
# via pants
jar_library(name = 'easymockclassextension',
View
12 BUILD.commons
@@ -23,19 +23,17 @@ from contextlib import contextmanager
from zipfile import ZipFile
from twitter.pants import goal, is_internal
-from twitter.pants.base.build_file import BuildFile
from twitter.pants.base.parse_context import ParseContext
from twitter.pants.python.python_chroot import PythonChroot
from twitter.pants.targets import JavaLibrary, JvmBinary, ScalaLibrary
from twitter.pants.tasks import Task
-def reinstall():
+def reinstall(context):
pex = os.path.join(ROOT_DIR, 'pants.pex')
- def build_pex():
+ with ParseContext.temp(os.path.basename(__file__)):
pants_exe = pants('src/python/twitter/pants').resolve().next()
chroot = PythonChroot(pants_exe, ROOT_DIR)
- chroot.dump().write(pex)
- ParseContext(BuildFile(ROOT_DIR, os.path.basename(__file__))).do_in_context(build_pex)
+ chroot.dump().build(pex)
print('\nPants reinstalled from live local source.')
@@ -45,10 +43,12 @@ def reinstall():
# When we re-run, pass on the remaining goals and flags so we can pick up where we leave off here.
index = sys.argv.index('reinstall')
args.extend(sys.argv[index+1:])
- print('Respawning with: %s\n' % ' '.join(args))
+ print('Respawning with: %s\n' % ' '.join(args))
sys.stdout.flush()
sys.stderr.flush()
+
+ context.lock.release()
os.execv(pex, args)
goal(
View
BIN  build-support/bin/protobuf/mac/10.5/2.3.0/protoc
Binary file not shown
View
BIN  build-support/bin/thrift/linux/i386/0.5.0/thrift
Binary file not shown
View
BIN  build-support/bin/thrift/linux/x86_64/0.5.0-finagle/thrift
Binary file not shown
View
BIN  build-support/bin/thrift/linux/x86_64/0.7.0/thrift
Binary file not shown
View
BIN  build-support/bin/thrift/mac/10.5/0.5.0-finagle/thrift
Binary file not shown
View
BIN  build-support/bin/thrift/mac/10.6/0.5.0-finagle/thrift
Binary file not shown
View
BIN  build-support/bin/thrift/mac/10.7/0.5.0-finagle/thrift
Binary file not shown
View
BIN  build-support/bin/thrift/mac/10.7/0.7.0/thrift
Binary file not shown
View
1  build-support/commons/checkstyle/checkstyle_suppressions.xml
@@ -55,4 +55,5 @@ limitations under the License.
<suppress files="com/twitter/common/thrift/.*\.java" checks=".*"/>
<suppress files="com/twitter/common/util/.*\.java" checks=".*"/>
<suppress files="com/twitter/common/zookeeper/.*\.java" checks=".*"/>
+ <suppress files="com/twitter/common/metrics/.*\.java" checks="MagicNumber"/>
</suppressions>
View
2  build-support/commons/ivy/BUILD
@@ -19,4 +19,4 @@ import os
# Publicly accessible twitter maven repo that houses twitter-commons artifacts
repo(name = 'public',
url = 'http://maven.twttr.com',
- push_db = os.path.join(os.path.dirname(__file__), 'publish.properties'))
+ push_db = os.path.join(os.path.dirname(__file__), 'pushdb', 'publish.properties'))
View
13 build-support/commons/ivy/ivysettings.xml
@@ -97,6 +97,19 @@ limitations under the License.
checkmodified="true">
<artifact pattern="${root.dir}/3rdparty/[artifact]-[revision].[ext]"/>
</filesystem>
+
+ <!-- Fall back to local repositories-->
+ <!-- sbt standard -->
+ <ibiblio name="local.sbt"
+ m2compatible="true"
+ usepoms="true"
+ root="file://${user.home}/.ivy2/local"/>
+
+ <!-- mvn standard -->
+ <ibiblio name="local.m2"
+ m2compatible="true"
+ usepoms="true"
+ root="file://${user.home}/.m2/repository"/>
</chain>
</macrodef>
View
389 build-support/commons/ivy/publish.properties
@@ -1,389 +0,0 @@
-revision.major.com.twitter.common%base=0
-revision.minor.com.twitter.common%base=0
-revision.patch.com.twitter.common%base=37
-revision.sha.com.twitter.common%base=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%collections=0
-revision.minor.com.twitter.common%collections=0
-revision.patch.com.twitter.common%collections=33
-revision.sha.com.twitter.common%collections=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%quantity=0
-revision.minor.com.twitter.common%quantity=0
-revision.patch.com.twitter.common%quantity=29
-revision.sha.com.twitter.common%quantity=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%stats-util=0
-revision.minor.com.twitter.common%stats-util=0
-revision.patch.com.twitter.common%stats-util=11
-revision.sha.com.twitter.common%stats-util=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%util-system-mocks=0
-revision.minor.com.twitter.common%util-system-mocks=0
-revision.patch.com.twitter.common%util-system-mocks=25
-revision.sha.com.twitter.common%util-system-mocks=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%util-sampler=0
-revision.minor.com.twitter.common%util-sampler=0
-revision.patch.com.twitter.common%util-sampler=20
-revision.sha.com.twitter.common%util-sampler=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%stats=0
-revision.minor.com.twitter.common%stats=0
-revision.patch.com.twitter.common%stats=41
-revision.sha.com.twitter.common%stats=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%util=0
-revision.minor.com.twitter.common%util=0
-revision.patch.com.twitter.common%util=39
-revision.sha.com.twitter.common%util=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%util-caching=0
-revision.minor.com.twitter.common%util-caching=0
-revision.patch.com.twitter.common%util-caching=9
-revision.sha.com.twitter.common%util-caching=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%dynamic-host-set=0
-revision.minor.com.twitter.common%dynamic-host-set=0
-revision.patch.com.twitter.common%dynamic-host-set=17
-revision.sha.com.twitter.common%dynamic-host-set=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%net-pool=0
-revision.minor.com.twitter.common%net-pool=0
-revision.patch.com.twitter.common%net-pool=24
-revision.sha.com.twitter.common%net-pool=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%io=0
-revision.minor.com.twitter.common%io=0
-revision.patch.com.twitter.common%io=19
-revision.sha.com.twitter.common%io=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%io-thrift=0
-revision.minor.com.twitter.common%io-thrift=0
-revision.patch.com.twitter.common%io-thrift=17
-revision.sha.com.twitter.common%io-thrift=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%service-thrift=0
-revision.minor.com.twitter.common%service-thrift=0
-revision.patch.com.twitter.common%service-thrift=23
-revision.sha.com.twitter.common%service-thrift=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%zookeeper=0
-revision.minor.com.twitter.common%zookeeper=0
-revision.patch.com.twitter.common%zookeeper=35
-revision.sha.com.twitter.common%zookeeper=f71d964930dbaf33857576aafe04a3c4c7a48de0
-revision.major.com.twitter.common%args=0
-revision.minor.com.twitter.common%args=1
-revision.patch.com.twitter.common%args=35
-revision.sha.com.twitter.common%args=7f8452ff26b6edf273cff0f6ccba6a991298c3e0
-revision.major.com.twitter.common%application=0
-revision.minor.com.twitter.common%application=0
-revision.patch.com.twitter.common%application=24
-revision.sha.com.twitter.common%application=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%thrift=0
-revision.minor.com.twitter.common%thrift=0
-revision.patch.com.twitter.common%thrift=28
-revision.sha.com.twitter.common%thrift=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%hosebird-client=0
-revision.minor.com.twitter.common%hosebird-client=0
-revision.patch.com.twitter.common%hosebird-client=2
-revision.sha.com.twitter.common%hosebird-client=92d8755ca2489f71398ceea8d96e03977a22f3c8
-revision.major.com.twitter.common%stats-ostrich-adapter=0
-revision.minor.com.twitter.common%stats-ostrich-adapter=0
-revision.patch.com.twitter.common%stats-ostrich-adapter=5
-revision.sha.com.twitter.common%stats-ostrich-adapter=53c63632a9a17197b22e0d8ec761bc073c7d48f4
-revision.major.org.apache.scribe%scribe_client=0
-revision.minor.org.apache.scribe%scribe_client=1
-revision.patch.org.apache.scribe%scribe_client=8
-revision.sha.org.apache.scribe%scribe_client=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%net-http-handlers-text=0
-revision.minor.com.twitter.common%net-http-handlers-text=0
-revision.patch.com.twitter.common%net-http-handlers-text=17
-revision.sha.com.twitter.common%net-http-handlers-text=cbcc745e133d5c321683f1b737eff0e63e870e55
-revision.major.com.twitter.common%net-http=0
-revision.minor.com.twitter.common%net-http=0
-revision.patch.com.twitter.common%net-http=18
-revision.sha.com.twitter.common%net-http=7f8452ff26b6edf273cff0f6ccba6a991298c3e0
-revision.major.com.twitter.common%stats-time-series=0
-revision.minor.com.twitter.common%stats-time-series=0
-revision.patch.com.twitter.common%stats-time-series=22
-revision.sha.com.twitter.common%stats-time-series=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%stats-jvm=0
-revision.minor.com.twitter.common%stats-jvm=0
-revision.patch.com.twitter.common%stats-jvm=20
-revision.sha.com.twitter.common%stats-jvm=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%net-http-handlers-time-series=0
-revision.minor.com.twitter.common%net-http-handlers-time-series=0
-revision.patch.com.twitter.common%net-http-handlers-time-series=17
-revision.sha.com.twitter.common%net-http-handlers-time-series=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%inject=0
-revision.minor.com.twitter.common%inject=0
-revision.patch.com.twitter.common%inject=16
-revision.sha.com.twitter.common%inject=0de65813a509407615e0424db11d3a7def72b578
-revision.major.com.twitter.common%net-http-handlers-string-template=0
-revision.minor.com.twitter.common%net-http-handlers-string-template=0
-revision.patch.com.twitter.common%net-http-handlers-string-template=18
-revision.sha.com.twitter.common%net-http-handlers-string-template=cbcc745e133d5c321683f1b737eff0e63e870e55
-revision.major.com.twitter.common%net-http-handlers-thrift=0
-revision.minor.com.twitter.common%net-http-handlers-thrift=0
-revision.patch.com.twitter.common%net-http-handlers-thrift=17
-revision.sha.com.twitter.common%net-http-handlers-thrift=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%logging=0
-revision.minor.com.twitter.common%logging=0
-revision.patch.com.twitter.common%logging=16
-revision.sha.com.twitter.common%logging=0de65813a509407615e0424db11d3a7def72b578
-revision.major.com.twitter.common%net-http-handlers=0
-revision.minor.com.twitter.common%net-http-handlers=0
-revision.patch.com.twitter.common%net-http-handlers=25
-revision.sha.com.twitter.common%net-http-handlers=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%io-hdfs=0
-revision.minor.com.twitter.common%io-hdfs=0
-revision.patch.com.twitter.common%io-hdfs=6
-revision.sha.com.twitter.common%io-hdfs=92d8755ca2489f71398ceea8d96e03977a22f3c8
-revision.major.com.twitter.common%stats-provider=0
-revision.minor.com.twitter.common%stats-provider=0
-revision.patch.com.twitter.common%stats-provider=20
-revision.sha.com.twitter.common%stats-provider=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%util-hdfs=0
-revision.minor.com.twitter.common%util-hdfs=0
-revision.patch.com.twitter.common%util-hdfs=1
-revision.sha.com.twitter.common%util-hdfs=92d8755ca2489f71398ceea8d96e03977a22f3c8
-revision.major.com.twitter.common%net-util=0
-revision.minor.com.twitter.common%net-util=0
-revision.patch.com.twitter.common%net-util=28
-revision.sha.com.twitter.common%net-util=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%zookeeper-testing=0
-revision.minor.com.twitter.common%zookeeper-testing=0
-revision.patch.com.twitter.common%zookeeper-testing=12
-revision.sha.com.twitter.common%zookeeper-testing=0de65813a509407615e0424db11d3a7def72b578
-revision.major.com.twitter.common%serverset=2
-revision.minor.com.twitter.common%serverset=0
-revision.patch.com.twitter.common%serverset=3
-revision.sha.com.twitter.common%serverset=1bf67c85c195ab040acf4c9a4ec84bbf086a7ef2
-revision.major.com.twitter.common%application-http=0
-revision.minor.com.twitter.common%application-http=0
-revision.patch.com.twitter.common%application-http=18
-revision.sha.com.twitter.common%application-http=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%jdk-logging=0
-revision.minor.com.twitter.common%jdk-logging=0
-revision.patch.com.twitter.common%jdk-logging=16
-revision.sha.com.twitter.common%jdk-logging=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%application-action=0
-revision.minor.com.twitter.common%application-action=0
-revision.patch.com.twitter.common%application-action=24
-revision.sha.com.twitter.common%application-action=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%application-modules=0
-revision.minor.com.twitter.common%application-modules=0
-revision.patch.com.twitter.common%application-modules=1
-revision.sha.com.twitter.common%application-modules=819707d084f415a0eff7421a0e8c695775d6480f
-revision.major.com.twitter.common%application-module-applauncher=0
-revision.minor.com.twitter.common%application-module-applauncher=0
-revision.patch.com.twitter.common%application-module-applauncher=13
-revision.sha.com.twitter.common%application-module-applauncher=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%application-module-lifecycle=0
-revision.minor.com.twitter.common%application-module-lifecycle=0
-revision.patch.com.twitter.common%application-module-lifecycle=13
-revision.sha.com.twitter.common%application-module-lifecycle=af64e94fa8474887210fed5425e206c307a654b2
-revision.major.com.twitter.common%application-module-http=0
-revision.minor.com.twitter.common%application-module-http=0
-revision.patch.com.twitter.common%application-module-http=12
-revision.sha.com.twitter.common%application-module-http=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%application-module-log=0
-revision.minor.com.twitter.common%application-module-log=0
-revision.patch.com.twitter.common%application-module-log=10
-revision.sha.com.twitter.common%application-module-log=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%application-module-stats=0
-revision.minor.com.twitter.common%application-module-stats=0
-revision.patch.com.twitter.common%application-module-stats=11
-revision.sha.com.twitter.common%application-module-stats=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%application-module-stats_export=0
-revision.minor.com.twitter.common%application-module-stats_export=0
-revision.patch.com.twitter.common%application-module-stats_export=5
-revision.sha.com.twitter.common%application-module-stats_export=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%logging-scribe=0
-revision.minor.com.twitter.common%logging-scribe=0
-revision.patch.com.twitter.common%logging-scribe=5
-revision.sha.com.twitter.common%logging-scribe=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%memcached=0
-revision.minor.com.twitter.common%memcached=0
-revision.patch.com.twitter.common%memcached=5
-revision.sha.com.twitter.common%memcached=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%adserver_thrift=1
-revision.minor.com.twitter.common%adserver_thrift=0
-revision.patch.com.twitter.common%adserver_thrift=0
-revision.sha.com.twitter.common%adserver_thrift=8e4135085f31d6e52d01c669ac77590a2ce4a452
-revision.major.com.twitter.common%adserver_rpc=1
-revision.minor.com.twitter.common%adserver_rpc=0
-revision.patch.com.twitter.common%adserver_rpc=2
-revision.sha.com.twitter.common%adserver_rpc=2ac6c967dcd2b8a3f1a190f345d4d0971847dc34
-revision.major.com.twitter.common%io-json=0
-revision.minor.com.twitter.common%io-json=0
-revision.patch.com.twitter.common%io-json=9
-revision.sha.com.twitter.common%io-json=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%text=0
-revision.minor.com.twitter.common%text=0
-revision.patch.com.twitter.common%text=12
-revision.sha.com.twitter.common%text=0de65813a509407615e0424db11d3a7def72b578
-revision.major.com.twitter.common%args-apt=0
-revision.minor.com.twitter.common%args-apt=0
-revision.patch.com.twitter.common%args-apt=21
-revision.sha.com.twitter.common%args-apt=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%thrift-text=0
-revision.minor.com.twitter.common%thrift-text=0
-revision.patch.com.twitter.common%thrift-text=6
-revision.sha.com.twitter.common%thrift-text=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%service-thrift-finagle=0
-revision.minor.com.twitter.common%service-thrift-finagle=0
-revision.patch.com.twitter.common%service-thrift-finagle=9
-revision.sha.com.twitter.common%service-thrift-finagle=53f4d78a6258efdd87a7617825c250f8def12022
-revision.major.com.twitter.common%util-executor-service-shutdown=0
-revision.minor.com.twitter.common%util-executor-service-shutdown=0
-revision.patch.com.twitter.common%util-executor-service-shutdown=11
-revision.sha.com.twitter.common%util-executor-service-shutdown=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%objectsize=0
-revision.minor.com.twitter.common%objectsize=0
-revision.patch.com.twitter.common%objectsize=4
-revision.sha.com.twitter.common%objectsize=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%util-testing=0
-revision.minor.com.twitter.common%util-testing=0
-revision.patch.com.twitter.common%util-testing=3
-revision.sha.com.twitter.common%util-testing=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.org.apache.scribe%scribe_client_finagle=0
-revision.minor.org.apache.scribe%scribe_client_finagle=0
-revision.patch.org.apache.scribe%scribe_client_finagle=1
-revision.sha.org.apache.scribe%scribe_client_finagle=4d4308e89712d3d6c61105c41bdee313ea4d4440
-revision.major.com.twitter.common%args-core=0
-revision.minor.com.twitter.common%args-core=0
-revision.patch.com.twitter.common%args-core=11
-revision.sha.com.twitter.common%args-core=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%checkstyle=0
-revision.minor.com.twitter.common%checkstyle=0
-revision.patch.com.twitter.common%checkstyle=3
-revision.sha.com.twitter.common%checkstyle=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%specs-testing=0
-revision.minor.com.twitter.common%specs-testing=0
-revision.patch.com.twitter.common%specs-testing=4
-revision.sha.com.twitter.common%specs-testing=d287beda9ca3ae1d26d6ed2557e0649e4cd898af
-revision.major.com.twitter.common%reflect=0
-revision.minor.com.twitter.common%reflect=0
-revision.patch.com.twitter.common%reflect=7
-revision.sha.com.twitter.common%reflect=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common%junit-runner=0
-revision.minor.com.twitter.common%junit-runner=0
-revision.patch.com.twitter.common%junit-runner=6
-revision.sha.com.twitter.common%junit-runner=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%client=0
-revision.minor.com.twitter.common.zookeeper%client=0
-revision.patch.com.twitter.common.zookeeper%client=6
-revision.sha.com.twitter.common.zookeeper%client=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common.zookeeper%node=0
-revision.minor.com.twitter.common.zookeeper%node=0
-revision.patch.com.twitter.common.zookeeper%node=7
-revision.sha.com.twitter.common.zookeeper%node=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%map=0
-revision.minor.com.twitter.common.zookeeper%map=0
-revision.patch.com.twitter.common.zookeeper%map=8
-revision.sha.com.twitter.common.zookeeper%map=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%lock=0
-revision.minor.com.twitter.common.zookeeper%lock=0
-revision.patch.com.twitter.common.zookeeper%lock=6
-revision.sha.com.twitter.common.zookeeper%lock=a41449906659f5b524043300f15e50d3726d3675
-revision.major.com.twitter.common.zookeeper%group=0
-revision.minor.com.twitter.common.zookeeper%group=0
-revision.patch.com.twitter.common.zookeeper%group=7
-revision.sha.com.twitter.common.zookeeper%group=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%partitioner=0
-revision.minor.com.twitter.common.zookeeper%partitioner=0
-revision.patch.com.twitter.common.zookeeper%partitioner=7
-revision.sha.com.twitter.common.zookeeper%partitioner=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%candidate=0
-revision.minor.com.twitter.common.zookeeper%candidate=0
-revision.patch.com.twitter.common.zookeeper%candidate=7
-revision.sha.com.twitter.common.zookeeper%candidate=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%server-set=0
-revision.minor.com.twitter.common.zookeeper%server-set=0
-revision.patch.com.twitter.common.zookeeper%server-set=8
-revision.sha.com.twitter.common.zookeeper%server-set=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%singleton-service=0
-revision.minor.com.twitter.common.zookeeper%singleton-service=0
-revision.patch.com.twitter.common.zookeeper%singleton-service=8
-revision.sha.com.twitter.common.zookeeper%singleton-service=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%args-duration-parser=0
-revision.minor.com.twitter.common%args-duration-parser=0
-revision.patch.com.twitter.common%args-duration-parser=3
-revision.sha.com.twitter.common%args-duration-parser=0de65813a509407615e0424db11d3a7def72b578
-revision.major.com.twitter.common%inject-timed=0
-revision.minor.com.twitter.common%inject-timed=0
-revision.patch.com.twitter.common%inject-timed=3
-revision.sha.com.twitter.common%inject-timed=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%metrics=0
-revision.minor.com.twitter.common%metrics=0
-revision.patch.com.twitter.common%metrics=3
-revision.sha.com.twitter.common%metrics=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.zookeeper%guice=0
-revision.minor.com.twitter.common.zookeeper%guice=0
-revision.patch.com.twitter.common.zookeeper%guice=4
-revision.sha.com.twitter.common.zookeeper%guice=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common%application-module-thrift=0
-revision.minor.com.twitter.common%application-module-thrift=0
-revision.patch.com.twitter.common%application-module-thrift=3
-revision.sha.com.twitter.common%application-module-thrift=e4f2d04eea5c50f48c542b05aea4e87b91454e71
-revision.major.com.twitter.common.tools%java-compiler=0
-revision.minor.com.twitter.common.tools%java-compiler=0
-revision.patch.com.twitter.common.tools%java-compiler=4
-revision.sha.com.twitter.common.tools%java-compiler=92428855fcf5965a0b1091a5238a50320584991a
-revision.fingerprint.com.twitter.common%junit-runner=a5d4dd3ef4ebc16d7b2d4ea322a405c5f7dab57e
-revision.fingerprint.com.twitter.common%specs-testing=02f8f68c42cff3355f6d9e893041c80ce9ba407b
-revision.fingerprint.com.twitter.common%service-thrift=d42aa48adc25a5dd64d3771d5653b96ebfb9f7c3
-revision.fingerprint.com.twitter.common%dynamic-host-set=807410e77d52208d3f9588e4816e8fb9dbaa62f3
-revision.fingerprint.com.twitter.common%reflect=35bdd9940f503588f256f4b502eac23936b24482
-revision.fingerprint.com.twitter.common%args-core=7ba4d4e4f499aa9294528f1f67d836d66f40c252
-revision.fingerprint.com.twitter.common%args-apt=5b4842a16620432853561532b327e77c4475c85c
-revision.fingerprint.com.twitter.common%stats-provider=912a0edd1c031f1dc5f827b635a8a82358bd7f7b
-revision.fingerprint.com.twitter.common%jdk-logging=9e2f271762853c598eb4e0f221ce5b50133eba3b
-revision.fingerprint.com.twitter.common%util-system-mocks=e8e7fbb789eec436d73a1dbcf83ac5276f334c95
-revision.fingerprint.com.twitter.common%util-sampler=8b9c7ad9725aef5ddb2a5cbeb99abc6b1405a380
-revision.fingerprint.com.twitter.common%collections=f0779eb0a3cafb4aa5736bc308a443e17c8cea36
-revision.fingerprint.com.twitter.common%quantity=032d53ec05a7f7274c3ed8732718123ebaf74afa
-revision.fingerprint.com.twitter.common%base=be0c0a5240a3cd300701c9dff896230853df454f
-revision.fingerprint.com.twitter.common%io=0559a122e1b0c202d4b3867a58d53cb678651993
-revision.fingerprint.com.twitter.common%io-thrift=94510a8ad43cf3e63622e3a517efdd5a040f5b88
-revision.fingerprint.com.twitter.common%io-json=2aa3704308bfb10130490ee3ea1992203a2835ea
-revision.fingerprint.com.twitter.common%util-executor-service-shutdown=a20ccc2ccd2f443f50a7d364cb6302d1d6c7b70c
-revision.fingerprint.com.twitter.common%net-util=379cae12244e113f7ecce015fe3d45d877f2fc6c
-revision.fingerprint.com.twitter.common%args=17d53bcf996c439e291e5fa3c5f1660b966e01ee
-revision.fingerprint.com.twitter.common%application-action=9977ee4423eaaad8e26c25969bcd4a16118329f0
-revision.fingerprint.com.twitter.common%stats=f6607906405fe86487d9383ce45163eaf0eb443a
-revision.fingerprint.com.twitter.common%util=522efa48e6c31c36b6e8f19dcae30009ab2d11ba
-revision.fingerprint.com.twitter.common.zookeeper%client=dde3bfb6907cbc5194d722ff66ade39c7bc4227a
-revision.fingerprint.com.twitter.common.zookeeper%node=503c5fadafbab8b88f8f17c19f3a20b05df6e614
-revision.fingerprint.com.twitter.common.zookeeper%map=ff0ffc12810e8994709ed55acfc443052d4d8718
-revision.fingerprint.com.twitter.common.zookeeper%lock=06698ce5914ef5a3d16228aa2159ca234d3083de
-revision.fingerprint.com.twitter.common%zookeeper-testing=58ede0104ca1d9358393fd1ca7e3368f000dd661
-revision.fingerprint.com.twitter.common.zookeeper%group=636972411e5507f3d724a415fa25a95057457af9
-revision.fingerprint.com.twitter.common.zookeeper%candidate=7ca1c84d9108997401e5d1f5d4484c1e9aaed1ec
-revision.fingerprint.com.twitter.common.zookeeper%partitioner=f999b5a9743aaa5a10f123d8e074940f51c75953
-revision.fingerprint.com.twitter.common.zookeeper%server-set=9b6b217b3c948f5cb045ae17fd1ac790abb7d14d
-revision.fingerprint.com.twitter.common.zookeeper%singleton-service=07264c671225edbac56f77c3c239f80a452d316d
-revision.fingerprint.com.twitter.common%application-module-lifecycle=7a145e40920b3c1f2ef87ca57a1ce812a8ec4114
-revision.fingerprint.com.twitter.common%net-http-handlers-text=6581d3578e2c7a6a05c33c61c696c7b81f073bf8
-revision.fingerprint.com.twitter.common%net-http-handlers-string-template=d22e51f2d5892e801a27d9f2ea26bd88f05f13b5
-revision.fingerprint.com.twitter.common%net-http-handlers=a7dc1b3b3b8674a2e8f29c8c9113ee3487ad809c
-revision.fingerprint.com.twitter.common%application-module-applauncher=96012b2c66532e3345010ba14a62a059698b2b4d
-revision.fingerprint.com.twitter.common%application=b1b43d623eea12e041eb051a0916f85843bc8a9e
-revision.fingerprint.com.twitter.common%net-http=e47378950f5f166a6aac7c8ca85a0232bf612cda
-revision.fingerprint.com.twitter.common%stats-time-series=b4acac328abaee1bb56d4155c18c1e784f286b5e
-revision.fingerprint.com.twitter.common%net-http-handlers-time-series=a52ea20f9e4be35fd602f31fc7c24ececb85ef83
-revision.fingerprint.com.twitter.common%application-http=7db0d3308fa4587426ac521867a1af72132dd8d2
-revision.fingerprint.com.twitter.common%net-pool=74a9298c229fc30bef2dc4f0a392050f189a12f5
-revision.fingerprint.com.twitter.common%thrift=8aa75d550e9fd3be8fbd6462b3f36e5072b21d0b
-revision.fingerprint.com.twitter.common%net-http-handlers-thrift=9f6858ee1e8fb983617ae3d02901ffd1440d13d2
-revision.fingerprint.com.twitter.common%application-module-http=02b6e4bb613d7772eae4fdd5dcce52da2812534f
-revision.fingerprint.com.twitter.common%inject=c112cfad32613cba547baa9a2e6b12d09454afbb
-revision.fingerprint.com.twitter.common%logging=1f7292b1623d97752f7ec728e3d5edf0fe497908
-revision.fingerprint.com.twitter.common%text=a213bf4877054b19bc737e24e24cf7850668bc45
-revision.fingerprint.com.twitter.common%args-duration-parser=89c2b60858868f290c1d81fae3b849cbfb7ef954
-revision.fingerprint.com.twitter.common%stats-jvm=aa248621ac8351d068ef6f0dc625f4df59a83486
-revision.fingerprint.com.twitter.common%application-module-log=067bfdf5927e17d3012cb3252eb83387eb1e4410
-revision.fingerprint.com.twitter.common%application-module-stats=038d665179d1f85d5b16c3cac27af95b0c1dd2f1
-revision.fingerprint.com.twitter.common.tools%java-compiler=f453e2548084092ca9618eab76a8980374a3e7df
-revision.fingerprint.com.twitter.common%objectsize=325ba24754c6ac83ffe74076f05e90891b518ddd
-revision.fingerprint.org.apache.scribe%scribe_client=ddadb3abda4dbb8a1d90360435575a8f69d1bfdd
-revision.fingerprint.com.twitter.common%memcached=6656194bd4702b7a7b9072610e89656a477dcf35
-revision.fingerprint.com.twitter.common%checkstyle=9f5f211f35df497ef2ad7dbb0f13002550a9bc1d
-revision.fingerprint.com.twitter.common%thrift-text=e613b46f94da65d35ea3925a7cbc2f4e2c5ffd2b
-revision.fingerprint.com.twitter.common%util-testing=82572fb19445fdca9fa84be254abce2ce5f31ccf
-revision.fingerprint.com.twitter.common%metrics=348178aeafecafa4ea942d8568bd15bf41fe0f51
-revision.fingerprint.com.twitter.common%application-module-stats_export=3747666daea6e146c5b344c01bc8d951c4fd43a5
-revision.fingerprint.com.twitter.common%util-caching=7caa2d000cf1f792f680bf4917c2989787a41e9a
-revision.fingerprint.com.twitter.common%inject-timed=7e8c5222df0ca12fd967d4fcc77f21fd99af62e6
-revision.fingerprint.com.twitter.common%stats-util=92a5928f948dcc581a4041bd23a77610d8f69f5e
-revision.fingerprint.com.twitter.common%logging-scribe=f0be821735aeb373e813c4fcfaf2d8d2d8714c83
-revision.fingerprint.com.twitter.common%application-module-thrift=9854c61e3e66baa9ce21e8f551ec59d5a4c1c095
-revision.fingerprint.com.twitter.common.zookeeper%guice=8b9e0b60c9094e5fa538a20e2badeadc00f89614
View
481 build-support/commons/ivy/pushdb/publish.properties
@@ -0,0 +1,481 @@
+revision.major.com.twitter.common%base=0
+revision.minor.com.twitter.common%base=0
+revision.patch.com.twitter.common%base=39
+revision.sha.com.twitter.common%base=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%collections=0
+revision.minor.com.twitter.common%collections=0
+revision.patch.com.twitter.common%collections=35
+revision.sha.com.twitter.common%collections=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%quantity=0
+revision.minor.com.twitter.common%quantity=0
+revision.patch.com.twitter.common%quantity=31
+revision.sha.com.twitter.common%quantity=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%stats-util=0
+revision.minor.com.twitter.common%stats-util=0
+revision.patch.com.twitter.common%stats-util=15
+revision.sha.com.twitter.common%stats-util=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%util-system-mocks=0
+revision.minor.com.twitter.common%util-system-mocks=0
+revision.patch.com.twitter.common%util-system-mocks=27
+revision.sha.com.twitter.common%util-system-mocks=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%util-sampler=0
+revision.minor.com.twitter.common%util-sampler=0
+revision.patch.com.twitter.common%util-sampler=22
+revision.sha.com.twitter.common%util-sampler=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%stats=0
+revision.minor.com.twitter.common%stats=0
+revision.patch.com.twitter.common%stats=44
+revision.sha.com.twitter.common%stats=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%util=0
+revision.minor.com.twitter.common%util=0
+revision.patch.com.twitter.common%util=44
+revision.sha.com.twitter.common%util=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%util-caching=0
+revision.minor.com.twitter.common%util-caching=0
+revision.patch.com.twitter.common%util-caching=12
+revision.sha.com.twitter.common%util-caching=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%dynamic-host-set=0
+revision.minor.com.twitter.common%dynamic-host-set=0
+revision.patch.com.twitter.common%dynamic-host-set=20
+revision.sha.com.twitter.common%dynamic-host-set=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%net-pool=0
+revision.minor.com.twitter.common%net-pool=0
+revision.patch.com.twitter.common%net-pool=29
+revision.sha.com.twitter.common%net-pool=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%io=0
+revision.minor.com.twitter.common%io=0
+revision.patch.com.twitter.common%io=21
+revision.sha.com.twitter.common%io=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%io-thrift=0
+revision.minor.com.twitter.common%io-thrift=0
+revision.patch.com.twitter.common%io-thrift=19
+revision.sha.com.twitter.common%io-thrift=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%service-thrift=0
+revision.minor.com.twitter.common%service-thrift=0
+revision.patch.com.twitter.common%service-thrift=27
+revision.sha.com.twitter.common%service-thrift=578e645074641345000b9127886bc6b305096885
+revision.major.com.twitter.common%zookeeper=0
+revision.minor.com.twitter.common%zookeeper=0
+revision.patch.com.twitter.common%zookeeper=35
+revision.sha.com.twitter.common%zookeeper=f71d964930dbaf33857576aafe04a3c4c7a48de0
+revision.major.com.twitter.common%args=0
+revision.minor.com.twitter.common%args=1
+revision.patch.com.twitter.common%args=39
+revision.sha.com.twitter.common%args=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%application=0
+revision.minor.com.twitter.common%application=0
+revision.patch.com.twitter.common%application=26
+revision.sha.com.twitter.common%application=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common%thrift=0
+revision.minor.com.twitter.common%thrift=0
+revision.patch.com.twitter.common%thrift=34
+revision.sha.com.twitter.common%thrift=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%hosebird-client=0
+revision.minor.com.twitter.common%hosebird-client=0
+revision.patch.com.twitter.common%hosebird-client=2
+revision.sha.com.twitter.common%hosebird-client=92d8755ca2489f71398ceea8d96e03977a22f3c8
+revision.major.com.twitter.common%stats-ostrich-adapter=0
+revision.minor.com.twitter.common%stats-ostrich-adapter=0
+revision.patch.com.twitter.common%stats-ostrich-adapter=5
+revision.sha.com.twitter.common%stats-ostrich-adapter=53c63632a9a17197b22e0d8ec761bc073c7d48f4
+revision.major.org.apache.scribe%scribe_client=0
+revision.minor.org.apache.scribe%scribe_client=1
+revision.patch.org.apache.scribe%scribe_client=9
+revision.sha.org.apache.scribe%scribe_client=c14cd6d5800b78092736118de591898496062f71
+revision.major.com.twitter.common%net-http-handlers-text=0
+revision.minor.com.twitter.common%net-http-handlers-text=0
+revision.patch.com.twitter.common%net-http-handlers-text=19
+revision.sha.com.twitter.common%net-http-handlers-text=cef6fedcebcf9fcaeee66df7f9a5cebf353a546e
+revision.major.com.twitter.common%net-http=0
+revision.minor.com.twitter.common%net-http=0
+revision.patch.com.twitter.common%net-http=21
+revision.sha.com.twitter.common%net-http=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%stats-time-series=0
+revision.minor.com.twitter.common%stats-time-series=0
+revision.patch.com.twitter.common%stats-time-series=25
+revision.sha.com.twitter.common%stats-time-series=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%stats-jvm=0
+revision.minor.com.twitter.common%stats-jvm=0
+revision.patch.com.twitter.common%stats-jvm=23
+revision.sha.com.twitter.common%stats-jvm=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%net-http-handlers-time-series=0
+revision.minor.com.twitter.common%net-http-handlers-time-series=0
+revision.patch.com.twitter.common%net-http-handlers-time-series=20
+revision.sha.com.twitter.common%net-http-handlers-time-series=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%inject=0
+revision.minor.com.twitter.common%inject=0
+revision.patch.com.twitter.common%inject=19
+revision.sha.com.twitter.common%inject=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%net-http-handlers-string-template=0
+revision.minor.com.twitter.common%net-http-handlers-string-template=0
+revision.patch.com.twitter.common%net-http-handlers-string-template=20
+revision.sha.com.twitter.common%net-http-handlers-string-template=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%net-http-handlers-thrift=0
+revision.minor.com.twitter.common%net-http-handlers-thrift=0
+revision.patch.com.twitter.common%net-http-handlers-thrift=22
+revision.sha.com.twitter.common%net-http-handlers-thrift=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%logging=0
+revision.minor.com.twitter.common%logging=0
+revision.patch.com.twitter.common%logging=22
+revision.sha.com.twitter.common%logging=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%net-http-handlers=0
+revision.minor.com.twitter.common%net-http-handlers=0
+revision.patch.com.twitter.common%net-http-handlers=29
+revision.sha.com.twitter.common%net-http-handlers=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%io-hdfs=0
+revision.minor.com.twitter.common%io-hdfs=0
+revision.patch.com.twitter.common%io-hdfs=6
+revision.sha.com.twitter.common%io-hdfs=92d8755ca2489f71398ceea8d96e03977a22f3c8
+revision.major.com.twitter.common%stats-provider=0
+revision.minor.com.twitter.common%stats-provider=0
+revision.patch.com.twitter.common%stats-provider=23
+revision.sha.com.twitter.common%stats-provider=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%util-hdfs=0
+revision.minor.com.twitter.common%util-hdfs=0
+revision.patch.com.twitter.common%util-hdfs=1
+revision.sha.com.twitter.common%util-hdfs=92d8755ca2489f71398ceea8d96e03977a22f3c8
+revision.major.com.twitter.common%net-util=0
+revision.minor.com.twitter.common%net-util=0
+revision.patch.com.twitter.common%net-util=30
+revision.sha.com.twitter.common%net-util=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%zookeeper-testing=0
+revision.minor.com.twitter.common%zookeeper-testing=0
+revision.patch.com.twitter.common%zookeeper-testing=14
+revision.sha.com.twitter.common%zookeeper-testing=578e645074641345000b9127886bc6b305096885
+revision.major.com.twitter.common%serverset=2
+revision.minor.com.twitter.common%serverset=0
+revision.patch.com.twitter.common%serverset=3
+revision.sha.com.twitter.common%serverset=1bf67c85c195ab040acf4c9a4ec84bbf086a7ef2
+revision.major.com.twitter.common%application-http=0
+revision.minor.com.twitter.common%application-http=0
+revision.patch.com.twitter.common%application-http=22
+revision.sha.com.twitter.common%application-http=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%jdk-logging=0
+revision.minor.com.twitter.common%jdk-logging=0
+revision.patch.com.twitter.common%jdk-logging=18
+revision.sha.com.twitter.common%jdk-logging=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%application-action=0
+revision.minor.com.twitter.common%application-action=0
+revision.patch.com.twitter.common%application-action=27
+revision.sha.com.twitter.common%application-action=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%application-modules=0
+revision.minor.com.twitter.common%application-modules=0
+revision.patch.com.twitter.common%application-modules=1
+revision.sha.com.twitter.common%application-modules=819707d084f415a0eff7421a0e8c695775d6480f
+revision.major.com.twitter.common%application-module-applauncher=0
+revision.minor.com.twitter.common%application-module-applauncher=0
+revision.patch.com.twitter.common%application-module-applauncher=15
+revision.sha.com.twitter.common%application-module-applauncher=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common%application-module-lifecycle=0
+revision.minor.com.twitter.common%application-module-lifecycle=0
+revision.patch.com.twitter.common%application-module-lifecycle=15
+revision.sha.com.twitter.common%application-module-lifecycle=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common%application-module-http=0
+revision.minor.com.twitter.common%application-module-http=0
+revision.patch.com.twitter.common%application-module-http=15
+revision.sha.com.twitter.common%application-module-http=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common%application-module-log=0
+revision.minor.com.twitter.common%application-module-log=0
+revision.patch.com.twitter.common%application-module-log=16
+revision.sha.com.twitter.common%application-module-log=72ed1a0d25efad83e2b040de10a042eeef524252
+revision.major.com.twitter.common%application-module-stats=0
+revision.minor.com.twitter.common%application-module-stats=0
+revision.patch.com.twitter.common%application-module-stats=14
+revision.sha.com.twitter.common%application-module-stats=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common%application-module-stats_export=0
+revision.minor.com.twitter.common%application-module-stats_export=0
+revision.patch.com.twitter.common%application-module-stats_export=6
+revision.sha.com.twitter.common%application-module-stats_export=af8a3a3f4dacf78a55cfa4eda8c8800269996080
+revision.major.com.twitter.common%logging-scribe=0
+revision.minor.com.twitter.common%logging-scribe=0
+revision.patch.com.twitter.common%logging-scribe=7
+revision.sha.com.twitter.common%logging-scribe=c14cd6d5800b78092736118de591898496062f71
+revision.major.com.twitter.common%memcached=0
+revision.minor.com.twitter.common%memcached=0
+revision.patch.com.twitter.common%memcached=5
+revision.sha.com.twitter.common%memcached=e4f2d04eea5c50f48c542b05aea4e87b91454e71
+revision.major.com.twitter.common%adserver_thrift=1
+revision.minor.com.twitter.common%adserver_thrift=0
+revision.patch.com.twitter.common%adserver_thrift=0
+revision.sha.com.twitter.common%adserver_thrift=8e4135085f31d6e52d01c669ac77590a2ce4a452
+revision.major.com.twitter.common%adserver_rpc=1
+revision.minor.com.twitter.common%adserver_rpc=0
+revision.patch.com.twitter.common%adserver_rpc=2
+revision.sha.com.twitter.common%adserver_rpc=2ac6c967dcd2b8a3f1a190f345d4d0971847dc34
+revision.major.com.twitter.common%io-json=0
+revision.minor.com.twitter.common%io-json=0
+revision.patch.com.twitter.common%io-json=12
+revision.sha.com.twitter.common%io-json=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%text=0
+revision.minor.com.twitter.common%text=0
+revision.patch.com.twitter.common%text=17
+revision.sha.com.twitter.common%text=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%args-apt=0
+revision.minor.com.twitter.common%args-apt=0
+revision.patch.com.twitter.common%args-apt=24
+revision.sha.com.twitter.common%args-apt=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%thrift-text=0
+revision.minor.com.twitter.common%thrift-text=0
+revision.patch.com.twitter.common%thrift-text=10
+revision.sha.com.twitter.common%thrift-text=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%service-thrift-finagle=0
+revision.minor.com.twitter.common%service-thrift-finagle=0
+revision.patch.com.twitter.common%service-thrift-finagle=9
+revision.sha.com.twitter.common%service-thrift-finagle=53f4d78a6258efdd87a7617825c250f8def12022
+revision.major.com.twitter.common%util-executor-service-shutdown=0
+revision.minor.com.twitter.common%util-executor-service-shutdown=0
+revision.patch.com.twitter.common%util-executor-service-shutdown=13
+revision.sha.com.twitter.common%util-executor-service-shutdown=93bf413847e4043b3cb537e896e824228d9e5ce3
+revision.major.com.twitter.common%objectsize=0
+revision.minor.com.twitter.common%objectsize=0
+revision.patch.com.twitter.common%objectsize=4
+revision.sha.com.twitter.common%objectsize=e4f2d04eea5c50f48c542b05aea4e87b91454e71
+revision.major.com.twitter.common%util-testing=0
+revision.minor.com.twitter.common%util-testing=0
+revision.patch.com.twitter.common%util-testing=3
+revision.sha.com.twitter.common%util-testing=e4f2d04eea5c50f48c542b05aea4e87b91454e71
+revision.major.org.apache.scribe%scribe_client_finagle=0
+revision.minor.org.apache.scribe%scribe_client_finagle=0
+revision.patch.org.apache.scribe%scribe_client_finagle=1
+revision.sha.org.apache.scribe%scribe_client_finagle=4d4308e89712d3d6c61105c41bdee313ea4d4440
+revision.major.com.twitter.common%args-core=0
+revision.minor.com.twitter.common%args-core=0
+revision.patch.com.twitter.common%args-core=14
+revision.sha.com.twitter.common%args-core=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%checkstyle=0
+revision.minor.com.twitter.common%checkstyle=0
+revision.patch.com.twitter.common%checkstyle=3
+revision.sha.com.twitter.common%checkstyle=e4f2d04eea5c50f48c542b05aea4e87b91454e71
+revision.major.com.twitter.common%specs-testing=0
+revision.minor.com.twitter.common%specs-testing=0
+revision.patch.com.twitter.common%specs-testing=4
+revision.sha.com.twitter.common%specs-testing=d287beda9ca3ae1d26d6ed2557e0649e4cd898af
+revision.major.com.twitter.common%reflect=0
+revision.minor.com.twitter.common%reflect=0
+revision.patch.com.twitter.common%reflect=9
+revision.sha.com.twitter.common%reflect=cef6fedcebcf9fcaeee66df7f9a5cebf353a546e
+revision.major.com.twitter.common%junit-runner=0
+revision.minor.com.twitter.common%junit-runner=0
+revision.patch.com.twitter.common%junit-runner=12
+revision.sha.com.twitter.common%junit-runner=4b34692489dd71130305bf69346408d02f34ea57
+revision.major.com.twitter.common.zookeeper%client=0
+revision.minor.com.twitter.common.zookeeper%client=0
+revision.patch.com.twitter.common.zookeeper%client=8
+revision.sha.com.twitter.common.zookeeper%client=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common.zookeeper%node=0
+revision.minor.com.twitter.common.zookeeper%node=0
+revision.patch.com.twitter.common.zookeeper%node=11
+revision.sha.com.twitter.common.zookeeper%node=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common.zookeeper%map=0
+revision.minor.com.twitter.common.zookeeper%map=0
+revision.patch.com.twitter.common.zookeeper%map=12
+revision.sha.com.twitter.common.zookeeper%map=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common.zookeeper%lock=0
+revision.minor.com.twitter.common.zookeeper%lock=0
+revision.patch.com.twitter.common.zookeeper%lock=7
+revision.sha.com.twitter.common.zookeeper%lock=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common.zookeeper%group=0
+revision.minor.com.twitter.common.zookeeper%group=0
+revision.patch.com.twitter.common.zookeeper%group=12
+revision.sha.com.twitter.common.zookeeper%group=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common.zookeeper%partitioner=0
+revision.minor.com.twitter.common.zookeeper%partitioner=0
+revision.patch.com.twitter.common.zookeeper%partitioner=11
+revision.sha.com.twitter.common.zookeeper%partitioner=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.major.com.twitter.common.zookeeper%candidate=0
+revision.minor.com.twitter.common.zookeeper%candidate=0
+revision.patch.com.twitter.common.zookeeper%candidate=12
+revision.sha.com.twitter.common.zookeeper%candidate=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common.zookeeper%server-set=0
+revision.minor.com.twitter.common.zookeeper%server-set=0
+revision.patch.com.twitter.common.zookeeper%server-set=14
+revision.sha.com.twitter.common.zookeeper%server-set=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common.zookeeper%singleton-service=0
+revision.minor.com.twitter.common.zookeeper%singleton-service=0
+revision.patch.com.twitter.common.zookeeper%singleton-service=14
+revision.sha.com.twitter.common.zookeeper%singleton-service=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.major.com.twitter.common%args-duration-parser=0
+revision.minor.com.twitter.common%args-duration-parser=0
+revision.patch.com.twitter.common%args-duration-parser=5
+revision.sha.com.twitter.common%args-duration-parser=578e645074641345000b9127886bc6b305096885
+revision.major.com.twitter.common%inject-timed=0
+revision.minor.com.twitter.common%inject-timed=0
+revision.patch.com.twitter.common%inject-timed=4
+revision.sha.com.twitter.common%inject-timed=af8a3a3f4dacf78a55cfa4eda8c8800269996080
+revision.major.com.twitter.common%metrics=0
+revision.minor.com.twitter.common%metrics=0
+revision.patch.com.twitter.common%metrics=4
+revision.sha.com.twitter.common%metrics=d41c7d3976cec16e7a4cad15c680717e782bec3b
+revision.major.com.twitter.common.zookeeper%guice=0
+revision.minor.com.twitter.common.zookeeper%guice=0
+revision.patch.com.twitter.common.zookeeper%guice=4
+revision.sha.com.twitter.common.zookeeper%guice=e4f2d04eea5c50f48c542b05aea4e87b91454e71
+revision.major.com.twitter.common%application-module-thrift=0
+revision.minor.com.twitter.common%application-module-thrift=0
+revision.patch.com.twitter.common%application-module-thrift=4
+revision.sha.com.twitter.common%application-module-thrift=af8a3a3f4dacf78a55cfa4eda8c8800269996080
+revision.major.com.twitter.common.tools%java-compiler=0
+revision.minor.com.twitter.common.tools%java-compiler=0
+revision.patch.com.twitter.common.tools%java-compiler=10
+revision.sha.com.twitter.common.tools%java-compiler=19bde3f9c2636ab7ae05b7eb5bc5e3a207ec03fe
+revision.fingerprint.com.twitter.common%junit-runner=91ec228567dbdf7a4a87ac37f8d7514df931b9c2
+revision.fingerprint.com.twitter.common%specs-testing=02f8f68c42cff3355f6d9e893041c80ce9ba407b
+revision.fingerprint.com.twitter.common%service-thrift=bb614f6ed6f3a26670b586f0de54c749d45b763a
+revision.fingerprint.com.twitter.common%dynamic-host-set=ece9ceff35909338c13a8034a4d6e13c9f306dbd
+revision.fingerprint.com.twitter.common%reflect=35bdd9940f503588f256f4b502eac23936b24482
+revision.fingerprint.com.twitter.common%args-core=c1338ac27ef42092a65385706a1c9c2726a887ca
+revision.fingerprint.com.twitter.common%args-apt=e63a8708b7caf9a07163f1579705e7cf741567b5
+revision.fingerprint.com.twitter.common%stats-provider=b2e484e2a8eec797f5046a255df3b27e169b91f3
+revision.fingerprint.com.twitter.common%jdk-logging=39c94c2e83af43773a2e90be3978212bf161694b
+revision.fingerprint.com.twitter.common%util-system-mocks=e9287563fadcfde79309c0981e701df54dfc92d3
+revision.fingerprint.com.twitter.common%util-sampler=87723df537245616972d50100ba3360ec6933a06
+revision.fingerprint.com.twitter.common%collections=49523bd73d3b9ad8c6a8cae17b6f7998317ddf2f
+revision.fingerprint.com.twitter.common%quantity=5442b1526a48ecbe98e7e77e17219815b6cc0436
+revision.fingerprint.com.twitter.common%base=0620208b2566757725ea1f0e63113843c8f9fc63
+revision.fingerprint.com.twitter.common%io=ed443c625bd1ebdff85ed6e42b9a4cd8d43235a3
+revision.fingerprint.com.twitter.common%io-thrift=82756d7a0e36f67f1ff09363b51db113f227a0a6
+revision.fingerprint.com.twitter.common%io-json=786ed5f0b79f9bb40e57e64a2a34fcf46f1de2f5
+revision.fingerprint.com.twitter.common%util-executor-service-shutdown=cae29782781d1b7b9c61a4342fe3ad82d54228ee
+revision.fingerprint.com.twitter.common%net-util=1dc1dc25408fde3d6f986ce7a60a992ed56aa4ce
+revision.fingerprint.com.twitter.common%args=d43a42357bacaba5b8b1c182f6b802518697a6c6
+revision.fingerprint.com.twitter.common%application-action=814b880889d67f6fddf1a23de8d669f76f94635e
+revision.fingerprint.com.twitter.common%stats=b841acbe08fcc2e316754e565b7967dfbd0afd52
+revision.fingerprint.com.twitter.common%util=53e2bd4181e3b08ea37ac62f3a817b787fa1928c
+revision.fingerprint.com.twitter.common.zookeeper%client=e8e47cf40633f8bea83d4a420a2bcc2c220f8904
+revision.fingerprint.com.twitter.common.zookeeper%node=f579ee97034ccc0288a362f9636bcaecbbcd8047
+revision.fingerprint.com.twitter.common.zookeeper%map=9c8ec9e05c28981c49475d4737cccf0519f33e18
+revision.fingerprint.com.twitter.common.zookeeper%lock=06698ce5914ef5a3d16228aa2159ca234d3083de
+revision.fingerprint.com.twitter.common%zookeeper-testing=061b1d3cd5f8941a2f71430efad2f9e30f068787
+revision.fingerprint.com.twitter.common.zookeeper%group=4e50241a2def44110c7391b636ab0234eae4e395
+revision.fingerprint.com.twitter.common.zookeeper%candidate=508ce8358f216006ce23ba28824d2e45d57b729d
+revision.fingerprint.com.twitter.common.zookeeper%partitioner=7af5700035d23d1039b39e450747f714124ba3ac
+revision.fingerprint.com.twitter.common.zookeeper%server-set=4042543b633f0b9759e4e1009484e6c4324cf9a1
+revision.fingerprint.com.twitter.common.zookeeper%singleton-service=0836f6975f13375223168088bc806b9899c16086
+revision.fingerprint.com.twitter.common%application-module-lifecycle=deb59bfd6dbcbfee3cf1b03f34bd3da87e4b38eb
+revision.fingerprint.com.twitter.common%net-http-handlers-text=6581d3578e2c7a6a05c33c61c696c7b81f073bf8
+revision.fingerprint.com.twitter.common%net-http-handlers-string-template=2b11f72c3686af4bf2fc7f28212c2a1e1444b5d2
+revision.fingerprint.com.twitter.common%net-http-handlers=c21396bfb09e8226b9cbad86caba9d6068fc5792
+revision.fingerprint.com.twitter.common%application-module-applauncher=e1ac797fcc61d5093f0db571470af3132560db8c
+revision.fingerprint.com.twitter.common%application=acd1901d766ef5880495a79e32afdf971effa18a
+revision.fingerprint.com.twitter.common%net-http=949e9b2b62563053bd1983bcf700861a783d3a8f
+revision.fingerprint.com.twitter.common%stats-time-series=073e4ea9e9d2448141f5465a5c054a47dd35aac9
+revision.fingerprint.com.twitter.common%net-http-handlers-time-series=3123a1c8bd6e914854449f7b409f2c970e6b0b5c
+revision.fingerprint.com.twitter.common%application-http=9cb2222a66e40a0e3e6efab7482ce5789632c8cb
+revision.fingerprint.com.twitter.common%net-pool=c198b32725f151bc12d972f516a318444cc88152
+revision.fingerprint.com.twitter.common%thrift=546c44e2c22cbefceb57a4df543085eb2a77323c
+revision.fingerprint.com.twitter.common%net-http-handlers-thrift=e940d8d9055c46aa90cd7f6678c6f4b00ce4402d
+revision.fingerprint.com.twitter.common%application-module-http=09ba413967097b50535ee785a33e106fdb71f5b8
+revision.fingerprint.com.twitter.common%inject=ca5bf6201c974ed517ec0843cf80f1ac67e5c0d8
+revision.fingerprint.com.twitter.common%logging=ccc6b90c110d9d527a831dd6cf2f37167d671d36
+revision.fingerprint.com.twitter.common%text=fc938f5a3138a3cd4eea32bd51c2453b02625871
+revision.fingerprint.com.twitter.common%args-duration-parser=ea35fde6c3b08fbbd0f6e3f4cc8417a96ae2e78f
+revision.fingerprint.com.twitter.common%stats-jvm=f3ac9f13d1e061f48c732b3d53c4eb90c8c51bed
+revision.fingerprint.com.twitter.common%application-module-log=947b5b65fe27f60c06c7a03eed2ea49b2de2b0cc
+revision.fingerprint.com.twitter.common%application-module-stats=def432042dac471469e4b41ee441d469e7cd5dd0
+revision.fingerprint.com.twitter.common.tools%java-compiler=493a1f114eb8f30f1738a219b9cc1974ae559248
+revision.fingerprint.com.twitter.common%objectsize=325ba24754c6ac83ffe74076f05e90891b518ddd
+revision.fingerprint.org.apache.scribe%scribe_client=c0568b6b6b141f1aad2c30a8aa421ca6577ee787
+revision.fingerprint.com.twitter.common%memcached=6656194bd4702b7a7b9072610e89656a477dcf35
+revision.fingerprint.com.twitter.common%checkstyle=9f5f211f35df497ef2ad7dbb0f13002550a9bc1d
+revision.fingerprint.com.twitter.common%thrift-text=0ec997fc13cfb4a1b0bfc617ba96ba13abf02537
+revision.fingerprint.com.twitter.common%util-testing=82572fb19445fdca9fa84be254abce2ce5f31ccf
+revision.fingerprint.com.twitter.common%metrics=eb3aef17a223122d24b169b5ef6a22ca244e3760
+revision.fingerprint.com.twitter.common%application-module-stats_export=cebaf09d8b59ca839803ab3136c54177d28163db
+revision.fingerprint.com.twitter.common%util-caching=91f5552cef62001081e3bc14d2abfb75f0a02a6b
+revision.fingerprint.com.twitter.common%inject-timed=41304db7577f5ff7643a26ef7580fcf61e0d73e2
+revision.fingerprint.com.twitter.common%stats-util=786ad4ded52ed37e7d96e5ec869bc08dfca9f0a2
+revision.fingerprint.com.twitter.common%logging-scribe=20c43cb32c1bd8241f53e06286aa4fae584a9c9a
+revision.fingerprint.com.twitter.common%application-module-thrift=600abb1c038315e0b3b081eac53a425ea6d4a9e9
+revision.fingerprint.com.twitter.common.zookeeper%guice=8b9e0b60c9094e5fa538a20e2badeadc00f89614
+revision.major.com.twitter.common%flags=0
+revision.minor.com.twitter.common%flags=0
+revision.patch.com.twitter.common%flags=1
+revision.sha.com.twitter.common%flags=4faa75831fd55b584407c9ab637e3b5d2fe6f9bf
+revision.fingerprint.com.twitter.common%flags=83ea81fba272099b89cf8038b5efffd7d1e06c20
+revision.snapshot.com.twitter.common%junit-runner=false
+revision.snapshot.com.twitter.common.tools%java-compiler=false
+revision.snapshot.com.twitter.common%logging=false
+revision.snapshot.com.twitter.common%text=false
+revision.snapshot.com.twitter.common%application-module-log=false
+revision.snapshot.com.twitter.common%thrift-text=false
+revision.snapshot.com.twitter.common%service-thrift=false
+revision.snapshot.com.twitter.common%args-core=false
+revision.snapshot.com.twitter.common%args-apt=false
+revision.major.com.twitter.common%stat=0
+revision.minor.com.twitter.common%stat=0
+revision.patch.com.twitter.common%stat=2
+revision.snapshot.com.twitter.common%stat=false
+revision.sha.com.twitter.common%stat=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.fingerprint.com.twitter.common%stat=d3645ac8a8b286caa87d6a2b25b373a20400c658
+revision.snapshot.com.twitter.common%stats-provider=false
+revision.major.com.twitter.common%stat-registry=0
+revision.minor.com.twitter.common%stat-registry=0
+revision.patch.com.twitter.common%stat-registry=2
+revision.snapshot.com.twitter.common%stat-registry=false
+revision.sha.com.twitter.common%stat-registry=3ba77227935a8cfb37a8971e5f216e79e3e22872
+revision.fingerprint.com.twitter.common%stat-registry=082bf6c8de59016d09dc4eca25e9f1f6cafc625d
+revision.snapshot.com.twitter.common%io-json=false
+revision.snapshot.com.twitter.common%args=false
+revision.snapshot.com.twitter.common%args-duration-parser=false
+revision.snapshot.com.twitter.common%application-action=false
+revision.snapshot.com.twitter.common%zookeeper-testing=false
+revision.snapshot.com.twitter.common%application-module-lifecycle=false
+revision.snapshot.com.twitter.common%stats=false
+revision.snapshot.com.twitter.common%application-module-stats_export=false
+revision.snapshot.com.twitter.common%util-caching=false
+revision.snapshot.com.twitter.common%stats-time-series=false
+revision.snapshot.com.twitter.common%net-http-handlers-time-series=false
+revision.snapshot.com.twitter.common%inject-timed=false
+revision.snapshot.com.twitter.common%stats-jvm=false
+revision.snapshot.com.twitter.common%net-http-handlers=false
+revision.snapshot.com.twitter.common%application-http=false
+revision.snapshot.com.twitter.common%application-module-http=false
+revision.snapshot.com.twitter.common%util=false
+revision.snapshot.com.twitter.common%application-module-stats=false
+revision.snapshot.com.twitter.common.zookeeper%node=false
+revision.snapshot.com.twitter.common.zookeeper%map=false
+revision.snapshot.com.twitter.common%stats-util=false
+revision.snapshot.com.twitter.common%net-pool=false
+revision.snapshot.com.twitter.common%thrift=false
+revision.snapshot.com.twitter.common%logging-scribe=false
+revision.snapshot.com.twitter.common%net-http-handlers-thrift=false
+revision.snapshot.com.twitter.common%application-module-thrift=false
+revision.snapshot.com.twitter.common.zookeeper%group=false
+revision.snapshot.com.twitter.common.zookeeper%candidate=false
+revision.snapshot.com.twitter.common.zookeeper%partitioner=false
+revision.snapshot.com.twitter.common.zookeeper%server-set=false
+revision.snapshot.com.twitter.common.zookeeper%singleton-service=false
+revision.snapshot.com.twitter.common%application-module-applauncher=false
+revision.snapshot.com.twitter.common%application=false
+revision.major.com.twitter.common.tools%dependency-emitter-plugin_2.8.1=0
+revision.minor.com.twitter.common.tools%dependency-emitter-plugin_2.8.1=0
+revision.patch.com.twitter.common.tools%dependency-emitter-plugin_2.8.1=3
+revision.snapshot.com.twitter.common.tools%dependency-emitter-plugin_2.8.1=false
+revision.sha.com.twitter.common.tools%dependency-emitter-plugin_2.8.1=113142b77ce74c456a221c8272fbf49bfad04b98
+revision.fingerprint.com.twitter.common.tools%dependency-emitter-plugin_2.8.1=729377c29d1a3c8d6037b5202b98f80f58eaa456
+revision.snapshot.com.twitter.common%inject=false
+revision.snapshot.com.twitter.common%dynamic-host-set=false
+revision.snapshot.com.twitter.common%net-http-handlers-text=false
+revision.snapshot.com.twitter.common%net-http=false
+revision.snapshot.com.twitter.common%reflect=false
+revision.snapshot.com.twitter.common%jdk-logging=false
+revision.snapshot.com.twitter.common%util-system-mocks=false
+revision.snapshot.com.twitter.common%util-sampler=false
+revision.snapshot.com.twitter.common%collections=false
+revision.snapshot.com.twitter.common%quantity=false
+revision.snapshot.com.twitter.common%base=false
+revision.snapshot.com.twitter.common%io=false
+revision.snapshot.com.twitter.common%io-thrift=false
+revision.snapshot.com.twitter.common%net-http-handlers-string-template=false
+revision.snapshot.com.twitter.common%util-executor-service-shutdown=false
+revision.snapshot.com.twitter.common%net-util=false
+revision.snapshot.com.twitter.common.zookeeper%client=false
+revision.snapshot.com.twitter.common.zookeeper%lock=false
+revision.snapshot.com.twitter.common%metrics=false
+revision.major.com.twitter.common_internal%net-http-handlers-rpc=0
+revision.minor.com.twitter.common_internal%net-http-handlers-rpc=0
+revision.patch.com.twitter.common_internal%net-http-handlers-rpc=3
+revision.snapshot.com.twitter.common_internal%net-http-handlers-rpc=false
+revision.sha.com.twitter.common_internal%net-http-handlers-rpc=85e44a1c7e495fc58fb6d30b7174d37419decfa1
+revision.fingerprint.com.twitter.common_internal%net-http-handlers-rpc=cbbbbc981c42950b61c0856271436d24f848ec99
+revision.snapshot.org.apache.scribe%scribe_client=false
View
2  build-support/profiles/junit.ivy.xml
@@ -27,6 +27,6 @@ limitations under the License.
<dependencies>
<dependency org="junit" name="junit-dep" rev="4.10"/>
<dependency org="org.hamcrest" name="hamcrest-core" rev="1.2"/>
- <dependency org="com.twitter.common" name="junit-runner" rev="0.0.9"/>
+ <dependency org="com.twitter.common" name="junit-runner" rev="0.0.12"/>
</dependencies>
</ivy-module>
View
33 build-support/profiles/scala-dependencies-2.8.1.ivy.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+
+<!--
+=================================================================================================
+Copyright 2011 Twitter, Inc.
+_________________________________________________________________________________________________
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this work except in compliance with the License.
+You may obtain a copy of the License in the LICENSE file, or at:
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+=================================================================================================
+-->
+
+<ivy-module version="2.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
+
+ <info organisation="com.twitter" module="pants-libs"/>
+
+ <dependencies>
+ <dependency org="com.twitter.common.tools"
+ name="dependency-emitter-plugin_2.8.1"
+ rev="0.0.3"
+ transitive="false"/>
+ </dependencies>
+</ivy-module>
View
2  pants
@@ -45,7 +45,7 @@ if [ -z "${PANTS_DEV}" -a ! -e $MY_DIR/pants.pex ]; then
run_pants_bare src/python/twitter/pants:pants
if [ ! -e $MY_DIR/dist/pants.pex ]; then
echo "Unable to build pants! Cannot continue!"
- exit
+ exit 1
else
mv $MY_DIR/dist/pants.pex $MY_DIR/pants.pex
cp $MY_DIR/pants.pex $VIRTUAL_PYTHON/pants.pex
View
9 src/java/com/twitter/common/application/modules/LogModule.java
@@ -32,6 +32,7 @@
import com.twitter.common.args.constraints.IsDirectory;
import com.twitter.common.base.Command;
import com.twitter.common.logging.LogUtil;
+import com.twitter.common.logging.RootLogConfig;
import com.twitter.common.net.http.handlers.LogPrinter;
import com.twitter.common.stats.StatImpl;
import com.twitter.common.stats.Stats;
@@ -67,12 +68,20 @@
help = "The directory where application logs are written.")
private static final Arg<File> LOG_DIR = Arg.create(null);
+ // TODO(franco): change this flag's default to true, then remove after enough forewarning.
+ @CmdLine(name = "use_glog",
+ help = "True to use the new glog-based configuration for the root logger.")
+ private static final Arg<Boolean> USE_GLOG = Arg.create(false);
+
@Override
protected void configure() {
// Bind the default log directory.
bind(File.class).annotatedWith(Names.named(LogPrinter.LOG_DIR_KEY)).toInstance(getLogDir());
LifecycleModule.bindStartupAction(binder(), ExportLogDir.class);
+ if (USE_GLOG.get()) {
+ RootLogConfig.configureFromFlags();
+ }
}
private File getLogDir() {
View
6 src/java/com/twitter/common/application/modules/StatsModule.java
@@ -89,9 +89,9 @@ protected void configure() {
.toInstance(SAMPLING_INTERVAL.get());
bind(TimeSeriesRepository.class).to(TimeSeriesRepositoryImpl.class).in(Singleton.class);
- bind(new TypeLiteral<Supplier<Iterable<Stat>>>() { }).toInstance(
- new Supplier<Iterable<Stat>>() {
- @Override public Iterable<Stat> get() {
+ bind(new TypeLiteral<Supplier<Iterable<Stat<?>>>>() { }).toInstance(
+ new Supplier<Iterable<Stat<?>>>() {
+ @Override public Iterable<Stat<?>> get() {
return Stats.getVariables();
}
}
View
8 src/java/com/twitter/common/args/ArgScanner.java
@@ -455,12 +455,12 @@ private boolean process(final ParserOracle parserOracle,
throw new IllegalArgumentException(sb.toString());
}
- infoLog("-------------------------------------------------------------------------");
- infoLog("Command line argument values");
+ LOG.info("-------------------------------------------------------------------------");
+ LOG.info("Command line argument values");
for (String commandLineArgumentInfo : commandLineArgumentInfos) {
- infoLog(commandLineArgumentInfo);
+ LOG.info(commandLineArgumentInfo);
}
- infoLog("-------------------------------------------------------------------------");
+ LOG.info("-------------------------------------------------------------------------");
return true;
}
View
7 src/java/com/twitter/common/args/ArgumentInfo.java
@@ -29,11 +29,11 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.constraints.NotNullVerifier;
import com.twitter.common.base.MorePreconditions;
import com.twitter.common.collections.Pair;
-import com.twitter.common.reflect.TypeToken;
import static com.google.common.base.Preconditions.checkArgument;
@@ -169,7 +169,10 @@ void collectConstraints(Verifiers verifierOracle, ImmutableList.Builder<String>
for (Pair<? extends Verifier<? super T>, Annotation> pair : getVerifiers(verifierOracle)) {
Verifier<? super T> verifier = pair.getFirst();
Annotation annotation = pair.getSecond();
- Class<T> rawType = type.getRawType();
+
+ @SuppressWarnings("unchecked") // type.getType() is T
+ Class<? extends T> rawType = (Class<? extends T>) type.getType();
+
String constraint = verifier.toString(rawType, annotation);
constraints.add(constraint);
}
View
4 src/java/com/twitter/common/args/BUILD
@@ -36,7 +36,6 @@ annotation_processor(name = 'core',
dependencies = [
pants('3rdparty:guava'),
pants('3rdparty:jsr305'),
- pants('src/java/com/twitter/common/reflect')
],
sources = CORE_SOURCES,
)
@@ -70,7 +69,6 @@ java_library(name = 'args',
pants('src/java/com/twitter/common/base'),
pants('src/java/com/twitter/common/net:util'),
pants('src/java/com/twitter/common/quantity'),
- pants('src/java/com/twitter/common/reflect'),
],
sources = rglobs('*.java') - APT_SOURCES - CORE_SOURCES - DURATION_PARSER
)
@@ -83,8 +81,8 @@ java_library(name = 'duration_parser',
),
dependencies = [
pants(':args'),
+ pants('3rdparty:guava'),
pants('3rdparty:util-core'),
- pants('src/java/com/twitter/common/reflect'),
],
sources = DURATION_PARSER
)
View
4 src/java/com/twitter/common/args/OptionInfo.java
@@ -27,9 +27,9 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.apt.Configuration;
-import com.twitter.common.reflect.TypeToken;
import static com.google.common.base.Preconditions.checkArgument;
@@ -87,7 +87,7 @@ static OptionInfo createFromField(Field field) {
checkValidName(name),
help,
Arg.<T>create(),
- TypeToken.create(type),
+ TypeToken.of(type),
prefix,
ImmutableList.<Annotation>of(),
null);
View
2  src/java/com/twitter/common/args/ParserOracle.java
@@ -16,7 +16,7 @@
package com.twitter.common.args;
-import com.twitter.common.reflect.TypeToken;
+import com.google.common.reflect.TypeToken;
/**
* A registry of Parsers for different supported argument types.
View
3  src/java/com/twitter/common/args/Parsers.java
@@ -23,13 +23,12 @@
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.apt.Configuration;
import com.twitter.common.args.apt.Configuration.ParserInfo;
-import com.twitter.common.reflect.TypeToken;
import static com.google.common.base.Preconditions.checkArgument;
-
import static com.twitter.common.args.apt.Configuration.ConfigurationException;
/**
View
6 src/java/com/twitter/common/args/PositionalInfo.java
@@ -28,9 +28,9 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.apt.Configuration;
-import com.twitter.common.reflect.TypeToken;
/**
* Description of a positional command line argument.
@@ -73,7 +73,7 @@ static PositionalInfo createFromField(Field field) {
Preconditions.checkArgument(
TypeUtil.getRawType(TypeUtil.getTypeParam(field)) == List.class,
"Field is annotated for positional parsing but is not of Arg<List<?>> type");
- Type nestedType = TypeToken.extractTypeToken(TypeUtil.getTypeParam(field));
+ Type nestedType = TypeUtil.extractTypeToken(TypeUtil.getTypeParam(field));
@SuppressWarnings("unchecked")
PositionalInfo positionalInfo = new PositionalInfo(
@@ -81,7 +81,7 @@ static PositionalInfo createFromField(Field field) {
positional.help(),
ArgumentInfo.getArgForField(field),
TypeUtil.getTypeParamTypeToken(field),
- TypeToken.create(nestedType),
+ TypeToken.of(nestedType),
Arrays.asList(field.getAnnotations()),
positional.parser());
return positionalInfo;
View
26 src/java/com/twitter/common/args/TypeUtil.java
@@ -26,8 +26,7 @@
import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
-
-import com.twitter.common.reflect.TypeToken;
+import com.google.common.reflect.TypeToken;
/**
* Utility class to extract generic type information.
@@ -82,7 +81,7 @@ private TypeUtil() {
}
/**
- * Convenience method to call {@link #getTypeParams(Field)}, with the requirement that there
+ * Convenience method to call {@link #getTypeParam(Field)}, with the requirement that there
* is exactly one type parameter on the field.
*
* @param field The field to extract type parameters from.
@@ -92,7 +91,7 @@ private TypeUtil() {
List<Type> typeParams = getTypeParams(field.getGenericType());
Preconditions.checkArgument(typeParams.size() == 1,
"Expected exactly one type parameter for field " + field);
- return TypeToken.create(typeParams.get(0));
+ return TypeToken.of(typeParams.get(0));
}
/**
@@ -102,6 +101,23 @@ private TypeUtil() {
* @return The field type parameter.
*/
public static Type getTypeParam(Field field) {
- return TypeToken.extractTypeToken(field.getGenericType());
+ return extractTypeToken(field.getGenericType());
+ }
+
+ /**
+ * Extracts the actual type parameter for a singly parameterized type.
+ *
+ * @param type The parameterized type to extract the type argument from.
+ * @return The type of the single specified type parameter for {@code type}.
+ * @throws IllegalArgumentException if the supplied type does not have exactly one specified type
+ * parameter
+ */
+ public static Type extractTypeToken(Type type) {
+ Preconditions.checkNotNull(type);
+ Preconditions.checkArgument(type instanceof ParameterizedType, "Missing type parameter.");
+ Type[] typeArguments = ((ParameterizedType) type).getActualTypeArguments();
+ Preconditions.checkArgument(typeArguments.length == 1,
+ "Expected a type with exactly 1 type argument");
+ return typeArguments[0];
}
}
View
2  src/java/com/twitter/common/args/Verifiers.java
@@ -22,10 +22,10 @@
import javax.annotation.Nullable;
import com.google.common.collect.ImmutableMap;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.apt.Configuration;
import com.twitter.common.collections.Pair;
-import com.twitter.common.reflect.TypeToken;
import static com.twitter.common.args.apt.Configuration.ConfigurationException;
import static com.twitter.common.args.apt.Configuration.VerifierInfo;
View
7 src/java/com/twitter/common/args/parsers/AmountParser.java
@@ -21,12 +21,13 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import com.google.common.reflect.TypeToken;
+
import com.twitter.common.args.ArgParser;
import com.twitter.common.args.Parser;
import com.twitter.common.args.ParserOracle;
import com.twitter.common.quantity.Amount;
import com.twitter.common.quantity.Unit;
-import com.twitter.common.reflect.TypeToken;
import static com.google.common.base.Preconditions.checkArgument;
@@ -47,7 +48,7 @@ public AmountParser() {
@Override
Amount doParse(ParserOracle parserOracle, String raw, List<Type> typeParams) {
Type valueType = typeParams.get(0);
- Parser parser = parserOracle.get(TypeToken.create(valueType));
+ Parser parser = parserOracle.get(TypeToken.of(valueType));
Matcher matcher = AMOUNT_PATTERN.matcher(raw);
checkArgument(matcher.matches(),
@@ -57,7 +58,7 @@ Amount doParse(ParserOracle parserOracle, String raw, List<Type> typeParams) {
String unitRaw = matcher.group(2);
Type unitType = typeParams.get(1);
- Parser<Unit> unitParser = parserOracle.get(TypeToken.create(Unit.class));
+ Parser<Unit> unitParser = parserOracle.get(TypeToken.of(Unit.class));
Unit unit = unitParser.parse(parserOracle, unitType, unitRaw);
checkArgument(unit.getClass() == unitType, String.format(
"Unit type (%s) does not match argument type (%s).",
View
4 src/java/com/twitter/common/args/parsers/ListParser.java
@@ -22,12 +22,12 @@
import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.ArgParser;
import com.twitter.common.args.Parser;
import com.twitter.common.args.ParserOracle;
import com.twitter.common.args.Parsers;
-import com.twitter.common.reflect.TypeToken;
/**
* List parser.
@@ -44,7 +44,7 @@ public ListParser() {
@Override
List doParse(final ParserOracle parserOracle, String raw, final List<Type> typeParams) {
final Type listType = typeParams.get(0);
- final Parser parser = parserOracle.get(TypeToken.create(listType));
+ final Parser parser = parserOracle.get(TypeToken.of(listType));
return ImmutableList.copyOf(Iterables.transform(Parsers.MULTI_VALUE_SPLITTER.split(raw),
new Function<String, Object>() {
@Override public Object apply(String raw) {
View
6 src/java/com/twitter/common/args/parsers/MapParser.java
@@ -23,12 +23,12 @@
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.ArgParser;
import com.twitter.common.args.Parser;
import com.twitter.common.args.ParserOracle;
import com.twitter.common.args.Parsers;
-import com.twitter.common.reflect.TypeToken;
import static com.google.common.base.Preconditions.checkArgument;
@@ -51,10 +51,10 @@ public MapParser() {
@Override
Map doParse(ParserOracle parserOracle, String raw, List<Type> typeParams) {
Type keyType = typeParams.get(0);
- Parser keyParser = parserOracle.get(TypeToken.create(keyType));
+ Parser keyParser = parserOracle.get(TypeToken.of(keyType));
Type valueType = typeParams.get(1);
- Parser valueParser = parserOracle.get(TypeToken.create(valueType));
+ Parser valueParser = parserOracle.get(TypeToken.of(valueType));
ImmutableMap.Builder map = ImmutableMap.builder();
for (String keyAndValue : Parsers.MULTI_VALUE_SPLITTER.split(raw)) {
View
6 src/java/com/twitter/common/args/parsers/PairParser.java
@@ -20,13 +20,13 @@
import java.util.List;
import com.google.common.collect.ImmutableList;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.ArgParser;
import com.twitter.common.args.Parser;
import com.twitter.common.args.ParserOracle;
import com.twitter.common.args.Parsers;
import com.twitter.common.collections.Pair;
-import com.twitter.common.reflect.TypeToken;
import static com.google.common.base.Preconditions.checkArgument;
@@ -45,10 +45,10 @@ public PairParser() {
@Override
Pair doParse(ParserOracle parserOracle, String raw, List<Type> typeParams) {
Type leftType = typeParams.get(0);
- Parser leftParser = parserOracle.get(TypeToken.create(leftType));
+ Parser leftParser = parserOracle.get(TypeToken.of(leftType));
Type rightType = typeParams.get(1);
- Parser rightParser = parserOracle.get(TypeToken.create(rightType));
+ Parser rightParser = parserOracle.get(TypeToken.of(rightType));
List<String> parts = ImmutableList.copyOf(Parsers.MULTI_VALUE_SPLITTER.split(raw));
checkArgument(parts.size() == 2,
View
4 src/java/com/twitter/common/args/parsers/SetParser.java
@@ -23,12 +23,12 @@
import com.google.common.base.Function;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.common.reflect.TypeToken;
import com.twitter.common.args.ArgParser;
import com.twitter.common.args.Parser;
import com.twitter.common.args.ParserOracle;
import com.twitter.common.args.Parsers;
-import com.twitter.common.reflect.TypeToken;
/**
* Set parser.
@@ -45,7 +45,7 @@ public SetParser() {
@Override
Set doParse(final ParserOracle parserOracle, String raw, List<Type> typeParams) {
final Type setType = typeParams.get(0);
- final Parser parser = parserOracle.get(TypeToken.create(setType));
+ final Parser parser = parserOracle.get(TypeToken.of(setType));
return ImmutableSet.copyOf(Iterables.transform(Parsers.MULTI_VALUE_SPLITTER.split(raw),
new Function<String, Object>() {
View
5 src/java/com/twitter/common/args/parsers/TimeDurationParser.java
@@ -18,12 +18,13 @@
import java.lang.reflect.Type;
+import com.google.common.reflect.TypeToken;
+
import com.twitter.common.args.ArgParser;
import com.twitter.common.args.Parser;
import com.twitter.common.args.ParserOracle;
import com.twitter.common.quantity.Amount;
import com.twitter.common.quantity.Time;
-import com.twitter.common.reflect.TypeToken;
import com.twitter.util.Duration;
@@ -43,7 +44,7 @@
@Override
public Duration parse(ParserOracle parserOracle, Type type, String raw)
throws IllegalArgumentException {
- Parser amountParser = parserOracle.get(TypeToken.create(Amount.class));
+ Parser amountParser = parserOracle.get(TypeToken.of(Amount.class));
@SuppressWarnings("unchecked")
Amount<Long, Time> parsed = (Amount<Long, Time>)
View
4 src/java/com/twitter/common/logging/BUILD
@@ -26,11 +26,13 @@ java_library(name = 'logging',
pants('3rdparty:commons-lang'),
pants('3rdparty:guava'),
pants('3rdparty:joda-time'),
+ pants('src/java/com/twitter/common/args'),
],
sources = [
'Log.java',
'LogUtil.java',
- 'LogFormatter.java'
+ 'LogFormatter.java',
+ 'RootLogConfig.java'
]
)
View
272 src/java/com/twitter/common/logging/RootLogConfig.java
@@ -0,0 +1,272 @@
+package com.twitter.common.logging;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogManager;
+import java.util.logging.Logger;
+
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+
+import com.twitter.common.args.Arg;
+import com.twitter.common.args.CmdLine;
+
+/**
+ * A configuration class for the root java.util.logging Logger.
+ *
+ * Defines flags to control the behavior behavior of the root logger similarly to Google's glog
+ * library (see http://code.google.com/p/google-glog ).
+ */
+public class RootLogConfig {
+ /**
+ * An enum reflecting log {@link Level} constants.
+ */
+ public enum LogLevel {
+ FINEST(Level.FINEST),
+ FINER(Level.FINER),
+ FINE(Level.FINE),
+ CONFIG(Level.CONFIG),
+ INFO(Level.INFO),
+ WARNING(Level.WARNING),
+ SEVERE(Level.SEVERE);
+
+ private final Level level;
+
+ private LogLevel(Level level) {
+ this.level = level;
+ }
+
+ private Level getLevel() {
+ return level;
+ }
+
+ private int intValue() {
+ return level.intValue();
+ }
+ }
+
+ @CmdLine(name = "logtostderr", help = "Log messages to stderr instead of logfiles.")
+ private static Arg<Boolean> LOGTOSTDERR = Arg.create(false);
+
+ @CmdLine(name = "alsologtostderr",
+ help = "Log messages to stderr, in addition to log files. Ignored when --logtostderr")
+ private static Arg<Boolean> ALSOLOGTOSTDERR = Arg.create(false);
+
+ @CmdLine(name = "vlog",
+ help = "The value is one of the constants in java.util.logging.Level. "
+ + "Shows all messages with level equal or higher "
+ + "than the value of this flag.")
+ private static Arg<LogLevel> VLOG = Arg.create(LogLevel.INFO);
+
+ @CmdLine(name = "vmodule",
+ help = "Per-class verbose level. The argument has to contain a comma-separated list "
+ + "of <class_name>=<log_level>. <class_name> is the full-qualified name of a "
+ + "class, <log_level> is one of the constants in java.util.logging.Level. "
+ + "<log_level> overrides any value given by --vlog.")
+ private static Arg<Map<Class<?>, LogLevel>> VMODULE =
+ Arg.<Map<Class<?>, LogLevel>>create(new HashMap<Class<?>, LogLevel>());
+
+ // TODO(franco): change this flag's default to true, then remove after enough forewarning.
+ @CmdLine(name = "use_glog_formatter", help = "True to use the glog formatter exclusively.")
+ private static Arg<Boolean> USE_GLOG_FORMATTER = Arg.create(false);
+
+ /**
+ * A builder-pattern class used to perform the configuration programmatically
+ * (i.e. not through flags).
+ * Example:
+ * <code>
+ * RootLogConfig.builder().logToStderr(true).apply();
+ * </code>
+ */
+ public static class Configuration {
+ private boolean logToStderr = false;
+ private boolean alsoLogToStderr = false;
+ private boolean useGLogFormatter = false;
+ private LogLevel vlog = null;
+ private Map<Class<?>, LogLevel> vmodule = null;
+ private String rootLoggerName = "";
+
+ private Configuration() {}
+ /**
+ * Only log messages to stderr, instead of log files. Overrides alsologtostderr.
+ * Default: false.
+ *
+ * @param flag True to enable, false to disable.
+ * @return this Configuration object.
+ */
+ public Configuration logToStderr(boolean flag) {
+ this.logToStderr = flag;
+ return this;
+ }
+
+ /**
+ * Also log messages to stderr, in addition to log files.
+ * Overridden by logtostderr.
+ * Default: false.
+ *
+ * @param flag True to enable, false to disable.
+ * @return this Configuration object.
+ */
+ public Configuration alsoLogToStderr(boolean flag) {
+ this.alsoLogToStderr = flag;
+ return this;
+ }
+
+ /**
+ * Format log messages in one-line with a header, similar to google-glog.
+ * Default: false.
+ *
+ * @param flag True to enable, false to disable.
+ * @return this Configuration object.
+ */
+ public Configuration useGLogFormatter(boolean flag) {
+ this.useGLogFormatter = flag;
+ return this;
+ }
+
+ /**
+ * Output log messages at least at the given verbosity level.
+ * Overridden by vmodule.
+ * Default: INFO
+ *
+ * @param level LogLevel enumerator for the minimum log message verbosity level that is output.
+ * @return this Configuration object.
+ */
+ public Configuration vlog(LogLevel level) {
+ Preconditions.checkNotNull(level);
+ this.vlog = level;
+ return this;
+ }
+
+ /**
+ * Output log messages for a given set of classes at the associated verbosity levels.
+ * Overrides vlog.
+ * Default: no classes are treated specially.
+ *
+ * @param pairs Map of classes and correspoding log levels.
+ * @return this Configuration object.
+ */
+ public Configuration vmodule(Map<Class<?>, LogLevel> pairs) {
+ Preconditions.checkNotNull(pairs);
+ this.vmodule = pairs;
+ return this;
+ }
+
+ /**
+ * Applies this configuration to the root log.
+ */
+ public void apply() {
+ RootLogConfig.configure(this);
+ }
+
+ // Intercepts the root logger, for testing purposes only.
+ @VisibleForTesting
+ Configuration rootLoggerName(String name) {
+ Preconditions.checkNotNull(name);
+ Preconditions.checkArgument(!name.isEmpty());
+ this.rootLoggerName = name;
+ return this;
+ }
+ }
+
+ /**
+ * Creates a new Configuration builder object.
+ * @return The newly built Configuration.
+ */
+ public static Configuration builder() {
+ return new Configuration();
+ }
+
+ /**
+ * Configures the root log properties using flags.
+ * This is the entry point used by AbstractApplication via LogModule.
+ */
+ public static void configureFromFlags() {
+ builder()
+ .logToStderr