Skip to content
This repository
Browse code

Initial import

  • Loading branch information...
commit fbd0f95d62ac2c5e97e5a4df5a732e9342d60da1 0 parents
jkreps authored January 02, 2009

Showing 318 changed files with 25,972 additions and 0 deletions. Show diff stats Hide diff stats

  1. 33  .classpath
  2. 18  .project
  3. 266  .settings/org.eclipse.jdt.core.prefs
  4. 118  .settings/org.eclipse.jdt.ui.prefs
  5. 12  BUGS
  6. 56  NOTES
  7. 143  TODO
  8. 16  bin/run-wrapper.sh
  9. 21  bin/sort.sh
  10. 9  bin/voldemort-remote-test.sh
  11. 21  bin/voldemort-server.sh
  12. 11  bin/voldemort-shell.sh
  13. 18  build.properties
  14. 180  build.xml
  15. 6  build_number.txt
  16. 10  config/single_node_cluster/config/cluster.xml
  17. 25  config/single_node_cluster/config/server.properties
  18. 18  config/single_node_cluster/config/stores.xml
  19. 17  config/test_config1/config/cluster.xml
  20. 26  config/test_config1/config/server.properties
  21. 19  config/test_config1/config/stores.xml
  22. 3  config/test_config1/simple_ops.txt
  23. 17  config/test_config2/config/cluster.xml
  24. 15  config/test_config2/config/server.properties
  25. 18  config/test_config2/config/stores.xml
  26. 2  docs/eclipse_templates/voldemort-codetemplate.xml
  27. 267  docs/eclipse_templates/voldemort-eclipse-settings.xml
  28. 267  docs/eclipse_templates/voldemort_formatter.xml
  29. 19  docs/fun_projects.txt
  30. 1,438  docs/hash_ring.graffle
  31. BIN  docs/hash_ring.png
  32. 959  docs/logical_arch.graffle
  33. BIN  docs/logical_arch.png
  34. 21  docs/perf/draw_graph.sh
  35. 52  docs/perf/mysql_bdb_comparison.dat
  36. 101  docs/perf/mysqlbench_results.dat
  37. 7  docs/perf/notes.txt
  38. BIN  docs/perf/read_comp.png
  39. BIN  docs/perf/write_comp.png
  40. 2,526  docs/physical_arch.graffle
  41. BIN  docs/physical_arch.png
  42. 116  docs/purpose.txt
  43. 38  example/java/voldemort/examples/ClientExample.java
  44. BIN  lib/catalina-ant.jar
  45. BIN  lib/colt.jar
  46. BIN  lib/commons-codec-1.3.jar
  47. BIN  lib/commons-collections-3.1.jar
  48. BIN  lib/commons-dbcp-1.2.2.jar
  49. BIN  lib/commons-httpclient-3.1.jar
  50. BIN  lib/commons-io-1.3.2.jar
  51. BIN  lib/commons-lang-2.1.jar
  52. BIN  lib/commons-logging.jar
  53. BIN  lib/commons-pool-1.4.jar
  54. BIN  lib/google-collect-snapshot-20080530.jar
  55. BIN  lib/jdom.jar
  56. BIN  lib/je-3.3.62.jar
  57. BIN  lib/jetty-6.1.6rc0.jar
  58. BIN  lib/jetty-util-6.1.6rc0.jar
  59. BIN  lib/junit-4.1.jar
  60. BIN  lib/log4j-1.2.13.jar
  61. BIN  lib/mysql-connector-java-5.1.5-bin.jar
  62. BIN  lib/servlet-api.jar
  63. BIN  lib/slf4j-api-1.4.3.jar
  64. BIN  lib/slf4j-log4j12-1.4.3.jar
  65. BIN  lib/src/bdb-je-3.2.44-src.zip
  66. BIN  lib/src/commons-httpclient-3.1-src.zip
  67. BIN  lib/src/commons-pool-1.4-src.zip
  68. BIN  lib/src/google-collections-src-snapshot-20080530.zip
  69. BIN  lib/src/hadoop-0.18.0-src.zip
  70. BIN  lib/src/jetty-6.1.3-src.zip
  71. BIN  lib/src/mina-core-1.1.5-sources.jar
  72. BIN  lib/src/mysql-connector-java-5.1.5.src.zip
  73. BIN  lib/src/stringtree-2.0.9-src.zip
  74. BIN  lib/velocity-1.5.jar
  75. BIN  lib/xerces.jar
  76. 14  src/java/log4j.properties
  77. 215  src/java/voldemort/VoldemortClientShell.java
  78. 33  src/java/voldemort/VoldemortException.java
  79. 11  src/java/voldemort/annotations/concurrency/Immutable.java
  80. 13  src/java/voldemort/annotations/concurrency/LockedBy.java
  81. 12  src/java/voldemort/annotations/concurrency/NotThreadsafe.java
  82. 12  src/java/voldemort/annotations/concurrency/Threadsafe.java
  83. 5  src/java/voldemort/annotations/concurrency/package.html
  84. 15  src/java/voldemort/annotations/jmx/JmxGetter.java
  85. 19  src/java/voldemort/annotations/jmx/JmxManaged.java
  86. 23  src/java/voldemort/annotations/jmx/JmxOperation.java
  87. 21  src/java/voldemort/annotations/jmx/JmxParam.java
  88. 15  src/java/voldemort/annotations/jmx/JmxSetter.java
  89. 5  src/java/voldemort/annotations/jmx/package.html
  90. 5  src/java/voldemort/annotations/package.html
  91. 198  src/java/voldemort/client/AbstractStoreClientFactory.java
  92. 23  src/java/voldemort/client/BootstrapFailureException.java
  93. 135  src/java/voldemort/client/DefaultStoreClient.java
  94. 131  src/java/voldemort/client/HttpStoreClientFactory.java
  95. 72  src/java/voldemort/client/MockStoreClientFactory.java
  96. 23  src/java/voldemort/client/RoutingTier.java
  97. 131  src/java/voldemort/client/SocketStoreClientFactory.java
  98. 129  src/java/voldemort/client/StoreClient.java
  99. 20  src/java/voldemort/client/StoreClientFactory.java
  100. 25  src/java/voldemort/client/UpdateAction.java
  101. 7  src/java/voldemort/client/VoldemortProtocol.java
  102. 9  src/java/voldemort/client/package.html
  103. 98  src/java/voldemort/cluster/Cluster.java
  104. 114  src/java/voldemort/cluster/Node.java
  105. 78  src/java/voldemort/cluster/NodeStatus.java
  106. 5  src/java/voldemort/cluster/package.html
  107. 98  src/java/voldemort/routing/ConsistentRoutingStrategy.java
  108. 33  src/java/voldemort/routing/RouteToAllStrategy.java
  109. 34  src/java/voldemort/routing/RoutingStrategy.java
  110. 5  src/java/voldemort/routing/package.html
  111. 43  src/java/voldemort/serialization/DefaultSerializerFactory.java
  112. 20  src/java/voldemort/serialization/IdentitySerializer.java
  113. 53  src/java/voldemort/serialization/ObjectSerializer.java
  114. 33  src/java/voldemort/serialization/SerializationException.java
  115. 28  src/java/voldemort/serialization/Serializer.java
  116. 101  src/java/voldemort/serialization/SerializerDefinition.java
  117. 13  src/java/voldemort/serialization/SerializerFactory.java
  118. 65  src/java/voldemort/serialization/SlopSerializer.java
  119. 35  src/java/voldemort/serialization/StringSerializer.java
  120. 45  src/java/voldemort/serialization/VersionedSerializer.java
  121. 7  src/java/voldemort/serialization/VoldemortOpCode.java
  122. 83  src/java/voldemort/serialization/VoldemortOperation.java
  123. 13  src/java/voldemort/serialization/json/EndOfFileException.java
  124. 381  src/java/voldemort/serialization/json/JsonReader.java
  125. 170  src/java/voldemort/serialization/json/JsonTypeDefinition.java
  126. 528  src/java/voldemort/serialization/json/JsonTypeSerializer.java
  127. 40  src/java/voldemort/serialization/json/JsonTypes.java
  128. 5  src/java/voldemort/serialization/package.html
  129. 66  src/java/voldemort/server/AbstractService.java
  130. 561  src/java/voldemort/server/VoldemortConfig.java
  131. 181  src/java/voldemort/server/VoldemortServer.java
  132. 30  src/java/voldemort/server/VoldemortService.java
  133. 91  src/java/voldemort/server/http/HttpService.java
  134. 171  src/java/voldemort/server/http/StoreServlet.java
  135. 60  src/java/voldemort/server/http/VoldemortServletContextListener.java
  136. 54  src/java/voldemort/server/http/gui/AdminServlet.java
  137. 89  src/java/voldemort/server/http/gui/QueryServlet.java
  138. 56  src/java/voldemort/server/http/gui/VelocityEngine.java
  139. 77  src/java/voldemort/server/http/gui/templates/admin.vm
  140. 51  src/java/voldemort/server/http/gui/templates/query.vm
  141. 5  src/java/voldemort/server/http/package.html
  142. 88  src/java/voldemort/server/jmx/JmxService.java
  143. 6  src/java/voldemort/server/package.html
  144. 88  src/java/voldemort/server/scheduler/DataCleanupJob.java
  145. 81  src/java/voldemort/server/scheduler/RebalancingJob.java
  146. 76  src/java/voldemort/server/scheduler/SchedulerService.java
  147. 98  src/java/voldemort/server/scheduler/SlopPusherJob.java
  148. 196  src/java/voldemort/server/socket/SocketServer.java
  149. 46  src/java/voldemort/server/socket/SocketService.java
  150. 120  src/java/voldemort/server/socket/StreamStoreRequestHandler.java
  151. 252  src/java/voldemort/server/storage/StorageService.java
  152. 60  src/java/voldemort/store/DelegatingStore.java
  153. 53  src/java/voldemort/store/Entry.java
  154. 47  src/java/voldemort/store/ErrorCodeMapper.java
  155. 50  src/java/voldemort/store/InsufficientOperationalNodesException.java
  156. 44  src/java/voldemort/store/KeyWrapper.java
  157. 22  src/java/voldemort/store/ObsoleteVersionException.java
  158. 31  src/java/voldemort/store/PersistenceFailureException.java
  159. 35  src/java/voldemort/store/StorageConfiguration.java
  160. 29  src/java/voldemort/store/StorageEngine.java
  161. 59  src/java/voldemort/store/StorageEngineType.java
  162. 30  src/java/voldemort/store/StorageInitializationException.java
  163. 57  src/java/voldemort/store/Store.java
  164. 167  src/java/voldemort/store/StoreDefinition.java
  165. 31  src/java/voldemort/store/StoreOperationFailureException.java
  166. 16  src/java/voldemort/store/StoreUtils.java
  167. 35  src/java/voldemort/store/UnknownFailure.java
  168. 28  src/java/voldemort/store/UnreachableStoreException.java
  169. 95  src/java/voldemort/store/bdb/BdbStorageConfiguration.java
  170. 347  src/java/voldemort/store/bdb/BdbStorageEngine.java
  171. 171  src/java/voldemort/store/filesystem/FilesystemStorageEngine.java
  172. 53  src/java/voldemort/store/gzip/GzipStore.java
  173. 73  src/java/voldemort/store/http/HttpResponseCodeErrorMapper.java
  174. 149  src/java/voldemort/store/http/HttpStore.java
  175. 106  src/java/voldemort/store/logging/LoggingStore.java
  176. 36  src/java/voldemort/store/memory/CacheStorageConfiguration.java
  177. 31  src/java/voldemort/store/memory/InMemoryStorageConfiguration.java
  178. 228  src/java/voldemort/store/memory/InMemoryStorageEngine.java
  179. 146  src/java/voldemort/store/metadata/MetadataStore.java
  180. 36  src/java/voldemort/store/mysql/MysqlStorageConfiguration.java
  181. 312  src/java/voldemort/store/mysql/MysqlStorageEngine.java
  182. 272  src/java/voldemort/store/readonly/ExternalSorter.java
  183. 248  src/java/voldemort/store/readonly/JsonStoreBuilder.java
  184. 38  src/java/voldemort/store/readonly/RandomAccessFileStorageConfiguration.java
  185. 253  src/java/voldemort/store/readonly/RandomAccessFileStore.java
  186. 35  src/java/voldemort/store/readonly/StringSorter.java
  187. 77  src/java/voldemort/store/routed/NodeValue.java
  188. 123  src/java/voldemort/store/routed/ReadRepairer.java
  189. 514  src/java/voldemort/store/routed/RoutedStore.java
  190. 70  src/java/voldemort/store/serialized/SerializingStorageEngine.java
  191. 72  src/java/voldemort/store/serialized/SerializingStore.java
  192. 114  src/java/voldemort/store/slop/Slop.java
  193. 84  src/java/voldemort/store/slop/SlopDetectingStore.java
  194. 134  src/java/voldemort/store/slop/SloppyStore.java
  195. 49  src/java/voldemort/store/socket/SocketAndStreams.java
  196. 51  src/java/voldemort/store/socket/SocketDestination.java
  197. 78  src/java/voldemort/store/socket/SocketPool.java
  198. 81  src/java/voldemort/store/socket/SocketPoolableObjectFactory.java
  199. 150  src/java/voldemort/store/socket/SocketStore.java
  200. 124  src/java/voldemort/store/stats/StatTrackingStore.java
  201. 32  src/java/voldemort/store/versioned/InconsistencyResolvingStore.java
  202. 38  src/java/voldemort/store/versioned/VersionIncrementingStore.java
  203. 437  src/java/voldemort/utils/ByteUtils.java
  204. 19  src/java/voldemort/utils/ClosableIterator.java
  205. 16  src/java/voldemort/utils/ConfigurationException.java
  206. 22  src/java/voldemort/utils/ConstantHashFunction.java
  207. 25  src/java/voldemort/utils/DefaultIterable.java
  208. 44  src/java/voldemort/utils/FnvHashFunction.java
  209. 13  src/java/voldemort/utils/HashFunction.java
  210. 293  src/java/voldemort/utils/JmxUtils.java
  211. 240  src/java/voldemort/utils/Props.java
  212. 44  src/java/voldemort/utils/ReflectUtils.java
  213. 31  src/java/voldemort/utils/SystemTime.java
  214. 31  src/java/voldemort/utils/Time.java
  215. 17  src/java/voldemort/utils/UndefinedPropertyException.java
  216. 143  src/java/voldemort/utils/Utils.java
  217. 5  src/java/voldemort/utils/package.html
  218. 29  src/java/voldemort/versioning/ArbitraryInconsistencyResolver.java
  219. 36  src/java/voldemort/versioning/ChainedResolver.java
  220. 87  src/java/voldemort/versioning/ClockEntry.java
  221. 20  src/java/voldemort/versioning/FailingInconsistencyResolver.java
  222. 24  src/java/voldemort/versioning/InconsistencyResolver.java
  223. 32  src/java/voldemort/versioning/InconsistentDataException.java
  224. 38  src/java/voldemort/versioning/MergingInconsitencyResolver.java
  225. 13  src/java/voldemort/versioning/ObjectMerger.java
  226. 14  src/java/voldemort/versioning/Occured.java
  227. 32  src/java/voldemort/versioning/TimeBasedInconsistencyResolver.java
  228. 327  src/java/voldemort/versioning/VectorClock.java
  229. 41  src/java/voldemort/versioning/VectorClockInconsistencyResolver.java
  230. 22  src/java/voldemort/versioning/Version.java
  231. 88  src/java/voldemort/versioning/Versioned.java
  232. 119  src/java/voldemort/xml/ClusterMapper.java
  233. 25  src/java/voldemort/xml/MappingException.java
  234. 213  src/java/voldemort/xml/StoreDefinitionsMapper.java
  235. 28  src/java/voldemort/xml/cluster.xsd
  236. 52  src/java/voldemort/xml/stores.xsd
  237. 7  test/common/mysql_test_init.sql
  238. 27  test/common/voldemort/BlockingInputStream.java
  239. 28  test/common/voldemort/BlockingOutputStream.java
  240. 47  test/common/voldemort/MockTime.java
  241. 79  test/common/voldemort/ServerTestUtils.java
  242. 134  test/common/voldemort/TestUtils.java
  243. 57  test/common/voldemort/VoldemortTestConstants.java
  244. 69  test/common/voldemort/config/nine-node-cluster.xml
  245. 11  test/common/voldemort/config/one-node-cluster.xml
  246. 20  test/common/voldemort/config/single-store.xml
  247. 21  test/common/voldemort/config/store-with-retention.xml
  248. 34  test/common/voldemort/config/stores.xml
  249. 18  test/common/voldemort/config/two-node-cluster.xml
  250. 51  test/common/voldemort/store/FailingStore.java
  251. 48  test/common/voldemort/store/SleepyStore.java
  252. 2  test/integration/create_mysql_test.sql
  253. 10  test/integration/generate_random_data.py
  254. 41  test/integration/rest.py
  255. 8  test/integration/simple_test.py
  256. 83  test/integration/voldemort/ClientServerTest.java
  257. 27  test/integration/voldemort/InMemoryMultiThreadedTest.java
  258. 76  test/integration/voldemort/MultithreadedStressTest.java
  259. 41  test/integration/voldemort/RandomAccessFileStoreTest.java
  260. 30  test/integration/voldemort/ReadJson.java
  261. 95  test/integration/voldemort/ReadOnlyStoreBuilder.java
  262. 35  test/integration/voldemort/TestArrayCopy.java
  263. 28  test/integration/voldemort/partition/FnvHashFunctionTester.java
  264. 57  test/integration/voldemort/performance/AbstractLoadTestHarness.java
  265. 132  test/integration/voldemort/performance/BdbGrowth.java
  266. 47  test/integration/voldemort/performance/CacheStorageEnginePerformanceTest.java
  267. 73  test/integration/voldemort/performance/HttpClientBench.java
  268. 38  test/integration/voldemort/performance/LocalDirectLoadTest.java
  269. 64  test/integration/voldemort/performance/LocalRoutedStoreLoadTest.java
  270. 124  test/integration/voldemort/performance/MysqlBench.java
  271. 122  test/integration/voldemort/performance/MysqlGrowth.java
  272. 116  test/integration/voldemort/performance/PerformanceTest.java
  273. 29  test/integration/voldemort/performance/RemoteHttpStoreLoadTest.java
  274. 151  test/integration/voldemort/performance/RemoteStoreComparisonTest.java
  275. 102  test/integration/voldemort/performance/RemoteTest.java
  276. 33  test/integration/voldemort/performance/SemiLocalHttpStoreLoadTest.java
  277. 156  test/unit/voldemort/UtilsTest.java
  278. 105  test/unit/voldemort/client/AbstractStoreClientFactoryTest.java
  279. 59  test/unit/voldemort/client/HttpStoreClientFactoryTest.java
  280. 63  test/unit/voldemort/client/SocketStoreClientFactoryTest.java
  281. 68  test/unit/voldemort/cluster/TestCluster.java
  282. 164  test/unit/voldemort/routing/ConsistentRoutingStrategyTest.java
  283. 25  test/unit/voldemort/routing/PartitionedRoutingStrategyTest.java
  284. 65  test/unit/voldemort/scheduled/DataCleanupJobTest.java
  285. 68  test/unit/voldemort/scheduled/SlopPusherTest.java
  286. 26  test/unit/voldemort/serialization/SlopSerializerTest.java
  287. 33  test/unit/voldemort/serialization/VersionedSerializerTest.java
  288. 145  test/unit/voldemort/serialization/json/JsonReaderTest.java
  289. 215  test/unit/voldemort/serialization/json/JsonTypeSerializerTest.java
  290. 75  test/unit/voldemort/server/ServiceTest.java
  291. 79  test/unit/voldemort/server/socket/SocketPoolTest.java
  292. 195  test/unit/voldemort/store/BasicStoreTest.java
  293. 37  test/unit/voldemort/store/ByteArrayStoreTest.java
  294. 85  test/unit/voldemort/store/StorageEngineTest.java
  295. 88  test/unit/voldemort/store/bdb/BdbStorageEngineTest.java
  296. 47  test/unit/voldemort/store/filesystem/FilesystemStorageEngineTest.java
  297. 81  test/unit/voldemort/store/http/HttpStoreTest.java
  298. 30  test/unit/voldemort/store/logging/LoggingStoreTest.java
  299. 46  test/unit/voldemort/store/memory/CacheStorageEngineTest.java
  300. 33  test/unit/voldemort/store/memory/InMemoryStorageEngineTest.java
  301. 11  test/unit/voldemort/store/metadata/MetadataStoreTest.java
  302. 49  test/unit/voldemort/store/mysql/MysqlStorageEngineTest.java
  303. 31  test/unit/voldemort/store/readonly/ExternalSorterTest.java
  304. 15  test/unit/voldemort/store/readonly/JsonStoreBuilderTest.java
  305. 155  test/unit/voldemort/store/routed/ReadRepairerTest.java
  306. 279  test/unit/voldemort/store/routed/RoutedStoreTest.java
  307. 34  test/unit/voldemort/store/serialized/SerializingStoreTest.java
  308. 60  test/unit/voldemort/store/slop/SloppyStoreTest.java
  309. 60  test/unit/voldemort/store/socket/SocketStoreTest.java
  310. 14  test/unit/voldemort/store/socket/SocketStreamHandlerTest.java
  311. 37  test/unit/voldemort/versioning/ClockEntryTest.java
  312. 53  test/unit/voldemort/versioning/VectorClockInconsistencyResolverTest.java
  313. 58  test/unit/voldemort/versioning/VectorClockTest.java
  314. 49  test/unit/voldemort/versioning/VersionedTest.java
  315. 31  test/unit/voldemort/xml/ClusterMapperTest.java
  316. 48  test/unit/voldemort/xml/StoreDefinitionMapperTest.java
  317. 10  tomcat-tasks.properties
  318. 40  web.xml
33  .classpath
... ...
@@ -0,0 +1,33 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<classpath>
  3
+	<classpathentry kind="src" path="src/java"/>
  4
+	<classpathentry kind="src" path="test/unit"/>
  5
+	<classpathentry kind="src" path="test/integration"/>
  6
+	<classpathentry kind="src" path="test/common"/>
  7
+	<classpathentry kind="src" path="example/java"/>
  8
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  9
+	<classpathentry kind="lib" path="lib/catalina-ant.jar"/>
  10
+	<classpathentry kind="lib" path="lib/colt.jar"/>
  11
+	<classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
  12
+	<classpathentry kind="lib" path="lib/commons-collections-3.1.jar"/>
  13
+	<classpathentry kind="lib" path="lib/commons-dbcp-1.2.2.jar"/>
  14
+	<classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>
  15
+	<classpathentry kind="lib" path="lib/commons-io-1.3.2.jar"/>
  16
+	<classpathentry kind="lib" path="lib/commons-lang-2.1.jar"/>
  17
+	<classpathentry kind="lib" path="lib/commons-logging.jar"/>
  18
+	<classpathentry kind="lib" path="lib/commons-pool-1.4.jar"/>
  19
+	<classpathentry kind="lib" path="lib/google-collect-snapshot-20080530.jar" sourcepath="lib/src/google-collections-src-snapshot-20080530.zip"/>
  20
+	<classpathentry kind="lib" path="lib/jdom.jar"/>
  21
+	<classpathentry kind="lib" path="lib/je-3.3.62.jar"/>
  22
+	<classpathentry kind="lib" path="lib/jetty-6.1.6rc0.jar"/>
  23
+	<classpathentry kind="lib" path="lib/jetty-util-6.1.6rc0.jar"/>
  24
+	<classpathentry kind="lib" path="lib/junit-4.1.jar"/>
  25
+	<classpathentry kind="lib" path="lib/log4j-1.2.13.jar"/>
  26
+	<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.5-bin.jar"/>
  27
+	<classpathentry kind="lib" path="lib/servlet-api.jar"/>
  28
+	<classpathentry kind="lib" path="lib/slf4j-api-1.4.3.jar"/>
  29
+	<classpathentry kind="lib" path="lib/slf4j-log4j12-1.4.3.jar"/>
  30
+	<classpathentry kind="lib" path="lib/velocity-1.5.jar"/>
  31
+	<classpathentry kind="lib" path="lib/xerces.jar"/>
  32
+	<classpathentry kind="output" path="classes"/>
  33
+</classpath>
18  .project
... ...
@@ -0,0 +1,18 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<projectDescription>
  3
+	<name>voldemort</name>
  4
+	<comment></comment>
  5
+	<projects>
  6
+	</projects>
  7
+	<buildSpec>
  8
+		<buildCommand>
  9
+			<name>org.eclipse.jdt.core.javabuilder</name>
  10
+			<arguments>
  11
+			</arguments>
  12
+		</buildCommand>
  13
+	</buildSpec>
  14
+	<natures>
  15
+		<nature>org.eclipse.jdt.core.javanature</nature>
  16
+		<nature>com.sysdeo.eclipse.tomcat.tomcatnature</nature>
  17
+	</natures>
  18
+</projectDescription>
266  .settings/org.eclipse.jdt.core.prefs
... ...
@@ -0,0 +1,266 @@
  1
+#Sun Dec 07 11:27:30 PST 2008
  2
+eclipse.preferences.version=1
  3
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
  4
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
  5
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=_
  6
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
  7
+org.eclipse.jdt.core.codeComplete.localPrefixes=
  8
+org.eclipse.jdt.core.codeComplete.localSuffixes=
  9
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
  10
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
  11
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
  12
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=82
  13
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=82
  14
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=82
  15
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=82
  16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=82
  17
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
  18
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=18
  19
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
  20
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=82
  21
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=83
  22
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
  23
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
  24
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=82
  25
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=82
  26
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=82
  27
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
  28
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
  29
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
  30
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=18
  31
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
  32
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
  33
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
  34
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
  35
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
  36
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
  37
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
  38
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
  39
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
  40
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
  41
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
  42
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
  43
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
  44
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
  45
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
  46
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
  47
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
  48
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
  49
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
  50
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
  51
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
  52
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
  53
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
  54
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
  55
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
  56
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
  57
+org.eclipse.jdt.core.formatter.comment.format_header=true
  58
+org.eclipse.jdt.core.formatter.comment.format_html=true
  59
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
  60
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
  61
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
  62
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=false
  63
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
  64
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
  65
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
  66
+org.eclipse.jdt.core.formatter.comment.line_length=80
  67
+org.eclipse.jdt.core.formatter.compact_else_if=true
  68
+org.eclipse.jdt.core.formatter.continuation_indentation=2
  69
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
  70
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
  71
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
  72
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
  73
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
  74
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
  75
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
  76
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
  77
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
  78
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
  79
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
  80
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
  81
+org.eclipse.jdt.core.formatter.indentation.size=4
  82
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
  83
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
  84
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
  85
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
  86
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
  87
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
  88
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
  89
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
  90
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
  91
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
  92
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=do not insert
  93
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert
  94
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not insert
  95
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=do not insert
  96
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=do not insert
  97
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=do not insert
  98
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=do not insert
  99
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
  100
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
  101
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
  102
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
  103
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
  104
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
  105
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
  106
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
  107
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
  108
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
  109
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
  110
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
  111
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
  112
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
  113
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
  114
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
  115
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
  116
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
  117
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
  118
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
  119
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
  120
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
  121
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
  122
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
  123
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
  124
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
  125
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
  126
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
  127
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
  128
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
  129
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
  130
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
  131
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
  132
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
  133
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
  134
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
  135
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
  136
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
  137
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
  138
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
  139
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
  140
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
  141
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
  142
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
  143
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
  144
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
  145
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
  146
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
  147
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
  148
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
  149
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
  150
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
  151
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
  152
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
  153
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
  154
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
  155
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
  156
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
  157
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
  158
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
  159
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
  160
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
  161
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
  162
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
  163
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
  164
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
  165
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
  166
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
  167
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
  168
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
  169
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
  170
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
  171
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
  172
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
  173
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
  174
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
  175
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
  176
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
  177
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
  178
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
  179
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
  180
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
  181
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
  182
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
  183
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
  184
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
  185
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=do not insert
  186
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
  187
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
  188
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
  189
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
  190
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
  191
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
  192
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
  193
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
  194
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
  195
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
  196
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
  197
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
  198
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
  199
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
  200
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
  201
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
  202
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
  203
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
  204
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
  205
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
  206
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
  207
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
  208
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
  209
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
  210
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
  211
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
  212
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
  213
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
  214
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
  215
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
  216
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
  217
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
  218
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
  219
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
  220
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
  221
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
  222
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
  223
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
  224
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
  225
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=do not insert
  226
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
  227
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
  228
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=do not insert
  229
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=do not insert
  230
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
  231
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
  232
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
  233
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=do not insert
  234
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=do not insert
  235
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=do not insert
  236
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
  237
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
  238
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
  239
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
  240
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
  241
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
  242
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
  243
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
  244
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
  245
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
  246
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
  247
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
  248
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
  249
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
  250
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
  251
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
  252
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
  253
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
  254
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
  255
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
  256
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
  257
+org.eclipse.jdt.core.formatter.lineSplit=100
  258
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
  259
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
  260
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
  261
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
  262
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
  263
+org.eclipse.jdt.core.formatter.tabulation.char=space
  264
+org.eclipse.jdt.core.formatter.tabulation.size=4
  265
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
  266
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
118  .settings/org.eclipse.jdt.ui.prefs
... ...
@@ -0,0 +1,118 @@
  1
+#Fri Nov 28 00:09:45 PST 2008
  2
+cleanup.add_default_serial_version_id=true
  3
+cleanup.add_generated_serial_version_id=false
  4
+cleanup.add_missing_annotations=true
  5
+cleanup.add_missing_deprecated_annotations=true
  6
+cleanup.add_missing_methods=true
  7
+cleanup.add_missing_nls_tags=false
  8
+cleanup.add_missing_override_annotations=true
  9
+cleanup.add_serial_version_id=true
  10
+cleanup.always_use_blocks=true
  11
+cleanup.always_use_parentheses_in_expressions=false
  12
+cleanup.always_use_this_for_non_static_field_access=false
  13
+cleanup.always_use_this_for_non_static_method_access=false
  14
+cleanup.convert_to_enhanced_for_loop=false
  15
+cleanup.correct_indentation=true
  16
+cleanup.format_source_code=true
  17
+cleanup.format_source_code_changes_only=false
  18
+cleanup.make_local_variable_final=true
  19
+cleanup.make_parameters_final=false
  20
+cleanup.make_private_fields_final=true
  21
+cleanup.make_type_abstract_if_missing_method=false
  22
+cleanup.make_variable_declarations_final=false
  23
+cleanup.never_use_blocks=false
  24
+cleanup.never_use_parentheses_in_expressions=true
  25
+cleanup.organize_imports=true
  26
+cleanup.qualify_static_field_accesses_with_declaring_class=false
  27
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
  28
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
  29
+cleanup.qualify_static_member_accesses_with_declaring_class=true
  30
+cleanup.qualify_static_method_accesses_with_declaring_class=false
  31
+cleanup.remove_private_constructors=true
  32
+cleanup.remove_trailing_whitespaces=false
  33
+cleanup.remove_trailing_whitespaces_all=true
  34
+cleanup.remove_trailing_whitespaces_ignore_empty=false
  35
+cleanup.remove_unnecessary_casts=true
  36
+cleanup.remove_unnecessary_nls_tags=true
  37
+cleanup.remove_unused_imports=true
  38
+cleanup.remove_unused_local_variables=false
  39
+cleanup.remove_unused_private_fields=true
  40
+cleanup.remove_unused_private_members=false
  41
+cleanup.remove_unused_private_methods=true
  42
+cleanup.remove_unused_private_types=true
  43
+cleanup.sort_members=false
  44
+cleanup.sort_members_all=false
  45
+cleanup.use_blocks=false
  46
+cleanup.use_blocks_only_for_return_and_throw=false
  47
+cleanup.use_parentheses_in_expressions=false
  48
+cleanup.use_this_for_non_static_field_access=false
  49
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
  50
+cleanup.use_this_for_non_static_method_access=false
  51
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
  52
+cleanup_profile=_voldemort
  53
+cleanup_settings_version=2
  54
+eclipse.preferences.version=1
  55
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
  56
+formatter_profile=_voldemort
  57
+formatter_settings_version=11
  58
+org.eclipse.jdt.ui.exception.name=e
  59
+org.eclipse.jdt.ui.gettersetter.use.is=true
  60
+org.eclipse.jdt.ui.ignorelowercasenames=true
  61
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
  62
+org.eclipse.jdt.ui.javadoc=false
  63
+org.eclipse.jdt.ui.keywordthis=false
  64
+org.eclipse.jdt.ui.ondemandthreshold=99
  65
+org.eclipse.jdt.ui.overrideannotation=true
  66
+org.eclipse.jdt.ui.staticondemandthreshold=99
  67
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment"></template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
  68
+sp_cleanup.add_default_serial_version_id=true
  69
+sp_cleanup.add_generated_serial_version_id=false
  70
+sp_cleanup.add_missing_annotations=true
  71
+sp_cleanup.add_missing_deprecated_annotations=true
  72
+sp_cleanup.add_missing_methods=false
  73
+sp_cleanup.add_missing_nls_tags=false
  74
+sp_cleanup.add_missing_override_annotations=true
  75
+sp_cleanup.add_serial_version_id=false
  76
+sp_cleanup.always_use_blocks=true
  77
+sp_cleanup.always_use_parentheses_in_expressions=false
  78
+sp_cleanup.always_use_this_for_non_static_field_access=false
  79
+sp_cleanup.always_use_this_for_non_static_method_access=false
  80
+sp_cleanup.convert_to_enhanced_for_loop=false
  81
+sp_cleanup.correct_indentation=false
  82
+sp_cleanup.format_source_code=true
  83
+sp_cleanup.format_source_code_changes_only=false
  84
+sp_cleanup.make_local_variable_final=false
  85
+sp_cleanup.make_parameters_final=false
  86
+sp_cleanup.make_private_fields_final=true
  87
+sp_cleanup.make_type_abstract_if_missing_method=false
  88
+sp_cleanup.make_variable_declarations_final=true
  89
+sp_cleanup.never_use_blocks=false
  90
+sp_cleanup.never_use_parentheses_in_expressions=true
  91
+sp_cleanup.on_save_use_additional_actions=false
  92
+sp_cleanup.organize_imports=true
  93
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
  94
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
  95
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
  96
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
  97
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
  98
+sp_cleanup.remove_private_constructors=true
  99
+sp_cleanup.remove_trailing_whitespaces=false
  100
+sp_cleanup.remove_trailing_whitespaces_all=true
  101
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
  102
+sp_cleanup.remove_unnecessary_casts=true
  103
+sp_cleanup.remove_unnecessary_nls_tags=false
  104
+sp_cleanup.remove_unused_imports=false
  105
+sp_cleanup.remove_unused_local_variables=false
  106
+sp_cleanup.remove_unused_private_fields=true
  107
+sp_cleanup.remove_unused_private_members=false
  108
+sp_cleanup.remove_unused_private_methods=true
  109
+sp_cleanup.remove_unused_private_types=true
  110
+sp_cleanup.sort_members=false
  111
+sp_cleanup.sort_members_all=false
  112
+sp_cleanup.use_blocks=false
  113
+sp_cleanup.use_blocks_only_for_return_and_throw=false
  114
+sp_cleanup.use_parentheses_in_expressions=false
  115
+sp_cleanup.use_this_for_non_static_field_access=false
  116
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
  117
+sp_cleanup.use_this_for_non_static_method_access=false
  118
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
12  BUGS
... ...
@@ -0,0 +1,12 @@
  1
+1. Connection churn on mac os with many threads, not on Linux.
  2
+2. Sporadic exception in read repair under very, very high concurrency:
  3
+     Exception in thread "pool-2-thread-2" java.util.NoSuchElementException
  4
+        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:844)
  5
+        at java.util.HashMap$KeyIterator.next(HashMap.java:877)
  6
+        at com.google.common.collect.StandardMultimap$WrappedCollection$WrappedIterator.next(StandardMultimap.java:469)
  7
+        at voldemort.store.routed.ReadRepairer.getRepairs(ReadRepairer.java:86)
  8
+        at voldemort.store.routed.RoutedStore$3.run(RoutedStore.java:293)
  9
+        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
  10
+        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
  11
+        at java.lang.Thread.run(Thread.java:613)
  12
+3. Deletes should not attempt on unavailable nodes
56  NOTES
... ...
@@ -0,0 +1,56 @@
  1
+Getting Started
  2
+
  3
+## checkout and build
  4
+jkreps@jkreps-md:/tmp > svn co svn+ssh://cm01.corp/lirepo/voldemort/trunk voldemort
  5
+jkreps@jkreps-md:/tmp > cd voldemort
  6
+jkreps@jkreps-md:/tmp/voldemort > ant
  7
+
  8
+## start single node cluster and connect to table named ÒtestÓ
  9
+jkreps@jkreps-md:/tmp/voldemort > ./bin/voldemort-server.sh config/single_node_cluster &
  10
+jkreps@jkreps-md:/tmp/voldemort> ./bin/voldemort-shell.sh test tcp://localhost:6666
  11
+
  12
+## run some random commands to put and get strings
  13
+> help
  14
+Commands:
  15
+put key value -- Associate the given value with the key.
  16
+get key -- Retrieve the value associated with the key.
  17
+delete key -- Remove all values associated with the key.
  18
+locate key -- Determine which servers host the give key.
  19
+help -- Print this message.
  20
+exit -- Exit from this shell.
  21
+> put "hello" "there"
  22
+> get "hello"
  23
+version(0:1): "there"
  24
+> locate "hello"
  25
+Node 0
  26
+host:  localhost
  27
+port: 6666
  28
+available: yes
  29
+last checked: 4614 ms ago
  30
+
  31
+Example usage in example/java/voldemort/example/VoldemortExample.java.
  32
+Example configurations in config/
  33
+
  34
+
  35
+Code layout
  36
+
  37
+annotations - Helper annotations
  38
+client - Code specific to the client
  39
+cluster - domain model for a voldemort cluster
  40
+routing - Code specific to routing requests
  41
+serialization - Code for turning bytes into objects and vice versa
  42
+server - Code for handling client requests
  43
+store - All the store implementations used by both client and server
  44
+utils - Helpers!
  45
+versioning - Vector clock stuff
  46
+xml - Code for serializing the configuration data...should probably be move to serialization
  47
+
  48
+
  49
+Background Resources
  50
+
  51
+- Amazon Dynamo Paper -- http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf
  52
+- http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
  53
+- OpenDHT and Bamboo papers
  54
+- BDB Performance: http://www.oracle.com/technology/products/berkeley-db/pdf/berkeley-db-perf.pdf
  55
+- Origin of vector clocks: http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf
  56
+- Brewer's conjecture: http://citeseer.ist.psu.edu/544596.html
143  TODO
... ...
@@ -0,0 +1,143 @@
  1
+TODO HIGH
  2
+-- push readonly data to voldemort
  3
+-- mr task to build stores
  4
+-- mechanism to swap table on the fly (HTTP in war, method in vold. server)
  5
+-- initial implementation is in the read-only store using read/write lock
  6
+-- rebalancing JMX control
  7
+
  8
+MEDIUM
  9
+-- reenable slop
  10
+-- Protocolbuffers serialization
  11
+-- Add setters to StoreClientFactories to allow propery-based configuration
  12
+-- Expand socketpool test
  13
+-- Slop detecting store test
  14
+-- Add to remote store comparison (bdb, in memory, routed w/wo read repair)
  15
+-- Add reading from piped input to client shell
  16
+-- support non-null values: make SimpleType a class and add isNullable() for string add encoding
  17
+-- use variable number of bytes for sizes to efficiently support small lists/bytes/strings (e.g. n-1 1 bits, then 7*n bits of number)
  18
+-- Memory-mapped store
  19
+-- RandomAccessFileStore vs. MmapFileStore benchmark
  20
+
  21
+TODO LOW
  22
+-- Rewrite socket pool to not use commons-pool because it sucks 
  23
+-- Support date type formatting
  24
+-- Add type enforcement to jsonreader?
  25
+-- support non-blocking writes (i.e. preferred-writes = 0)
  26
+-- XML mappers should be subpackage of serialization and implement Serializer<Cluster>, Serializer<List<StoreDefinitions>>
  27
+-- Add histograms to StatTrackingStore (http://www.ibm.com/developerworks/xml/library/x-svggrph/)
  28
+-- Switch to JSP and dump velocity
  29
+-- Convert iterators to use Google collections iterator
  30
+-- There are three operation serialization mechanisms: Slop and two VoldemortOperations...this can probably be reduced
  31
+-- Define HTTP protocol more formally
  32
+-- Show running tasks
  33
+-- Add disk usage to dashboards
  34
+-- GUI
  35
+  -- Show running services
  36
+  -- Show running tasks
  37
+
  38
+Slop stores key, table, node
  39
+
  40
+Testing
  41
+1. Does failover work
  42
+2. Concurrency super-smack
  43
+3. Socket timeouts, and routed store timeout
  44
+4. Extended usage test.
  45
+
  46
+Unit testing area
  47
+3. SocketServer - think through state diagram and make sure it is correct
  48
+
  49
+Not Doing
  50
+xxx Varlength ints
  51
+xxx Delete SimpleTypeDefinition
  52
+xxx Move metadata into BDB (soon)
  53
+xxx Lazy bootstrapping in store client (works correctly now)
  54
+xxx Support load factors in partitions not nodes, add this into tagging logic somehow (probably they just get more tags.
  55
+xxx Schema versioning should be called "schema id" to avoid confusion with value versioning
  56
+xxx convert jetty to run off web.xml (http://jetty.mortbay.org/jetty5/tut/Server.html)
  57
+xxx Validate vector clock usage
  58
+xxx *Support for null vector clock to implement clobber semantics*
  59
+xxx Remove obsolete version exception (no!)
  60
+xxx Share threadpool between everyone (socket server, jetty if possible, mina, and client factory)
  61
+xxx Why is metadata store duplicated in voldemortserver and storageservice
  62
+
  63
+Done
  64
+xxx soft-reference "cache" storage type
  65
+xxx Search result tracking test
  66
+xxx Change tags to partitions in configuration
  67
+xxx Routed store *must* timeout
  68
+xxx Archival strategy
  69
+xxx Re-think slop, replication
  70
+xxx Add node liveness check back in
  71
+xxx Adapt serialization layer to hadoop
  72
+xxx Integration with network
  73
+xxx change simple schema to be called JSON
  74
+xxx Move threadpool configuration into storeclient to handle overload better
  75
+xxx Move to li svn
  76
+xxx Add schema for cluster and store xml, and validate against it
  77
+xxx Move config off of VoldemortServer itself
  78
+xxx Add package html for javadoc
  79
+xxx Implement improved partitioning strategy
  80
+xxx Remove partitions from xml
  81
+xxx Delete mina
  82
+xxx Add MockStoreClient
  83
+xxx Incremental JSON parser for table builder
  84
+xxx Remove stringtree dependency
  85
+xxx Test routingstrategy
  86
+xxx Client configured conflict resolution
  87
+xxx Desired vs Required number for get/put/delete
  88
+xxx Think through client node id situation
  89
+xxx Support user defined serializers 
  90
+xxx Prune on write
  91
+xxx Get unit tests back in shape
  92
+xxx Query tool - (add numeric coercion)
  93
+xxx Show running services in gui
  94
+xxx Add package html for javadoc
  95
+xxx Type coercion in simple serializer
  96
+xxx Query tool - needs to use the client -- we need to first serialize the json input
  97
+xxx Schema versioning
  98
+xxx JMX stats
  99
+xxx JSON serialization
  100
+xxx Add store-meta table attribute
  101
+xxx Convert key to bytes
  102
+xxx Clean up client instantiation
  103
+xxx Move java code under java subdir
  104
+xxx Add generated subdirectory for antlr output
  105
+xxx Read repair
  106
+xxx Get ant script building everything
  107
+xxx Split build into voldemort-client.jar and voldemort-server.jar
  108
+xxx Better performance investigation--why is http so slow?
  109
+xxx Metadata persistence using seperate single-partition metadata cluster. N writes required.
  110
+xxx Move storage initialization to seperate service
  111
+xxx Store add/delete--update metadata, physically delete store
  112
+xxx fix abstractservice to check if it is already started/stopped, throw correct exception
  113
+xxx Fix up and test MinaTcpStore
  114
+xxx Test of AsyncWeb vs. Mina vs. Jetty
  115
+xxx Mark nodes as "down"
  116
+xxx Handle version incrementing
  117
+xxx Test with configuration file
  118
+xxx Mark nodes as "down" -- where does this happen?
  119
+xxx Simple integration test
  120
+xxx Detect which instance in the cluster you are
  121
+xxx Client should initialize its own server definition
  122
+xxx Client shell for testing
  123
+xxx Parse configuration for cluster and stores from xml files
  124
+xxx Move server out of testharness
  125
+xxx Unit test consistent hashing scheme
  126
+xxx Simple replication test with a single two node partition
  127
+xxx Handle allow_create properly--slaves must open for reading only and must re-open on election to master
  128
+xxx Fix packaging
  129
+xxx Load test with replication
  130
+xxx Start using httpclient
  131
+xxx Remove abstraction around BDB, we aren't going to support two storage engines anytime soon
  132
+xxx add ant file
  133
+xxx Unify Store and StoreClient interfaces, get rid of client sub dir
  134
+xxx Get performance tests working again
  135
+xxx extend BasicStoreTest for all tests
  136
+xxx get client/server http test working
  137
+xxx Local load test
  138
+xxx Http test
  139
+xxx JMX
  140
+xxx Deploy as
  141
+  xxx Standalone
  142
+  xxx WAR
  143
+  xxx Embedded
16  bin/run-wrapper.sh
... ...
@@ -0,0 +1,16 @@
  1
+#!/bin/bash
  2
+
  3
+base_dir=$(dirname $0)/..
  4
+
  5
+for file in $base_dir/lib/*.jar;
  6
+do
  7
+	CLASSPATH=$CLASSPATH:$file
  8
+done
  9
+
  10
+for file in $base_dir/dist/*.jar;
  11
+do
  12
+  CLASSPATH=$CLASSPATH:$file
  13
+done
  14
+
  15
+export CLASSPATH
  16
+java -Xmx2G -server -cp $CLASSPATH ${1} ${2} ${3} ${4} ${5} ${6} ${7} 
21  bin/sort.sh
... ...
@@ -0,0 +1,21 @@
  1
+#!/bin/bash
  2
+
  3
+if [ $# -gt 2 ];
  4
+then
  5
+  echo 'USAGE: bin/sort.sh file max_memory_lines'
  6
+  exit 1
  7
+fi
  8
+
  9
+base_dir=$(dirname $0)/..
  10
+
  11
+for file in $base_dir/dist/*.jar;
  12
+do
  13
+  CLASSPATH=$CLASSPATH:$file
  14
+done
  15
+
  16
+for file in $base_dir/lib/*.jar;
  17
+do
  18
+  CLASSPATH=$CLASSPATH:$file
  19
+done
  20
+
  21
+java -agentlib:hprof=cpu=samples,depth=10 -Xmx2G -server -cp $CLASSPATH voldemort.store.readonly.StringSorter ${1} ${2}
9  bin/voldemort-remote-test.sh
... ...
@@ -0,0 +1,9 @@
  1
+#!/bin/bash
  2
+
  3
+if [ $# -ne 3 ];
  4
+then
  5
+  echo 'USAGE: bin/voldemort-remote-test.sh bootstrap-url num-requests start-num'
  6
+  exit 1
  7
+fi
  8
+
  9
+bin/run-wrapper.sh voldemort.performance.RemoteTest ${1} ${2} ${3}
21  bin/voldemort-server.sh
... ...
@@ -0,0 +1,21 @@
  1
+#!/bin/bash
  2
+
  3
+if [ $# -gt 1 ];
  4
+then
  5
+	echo 'USAGE: bin/voldemort-server.sh [voldemort_home]'
  6
+	exit 1
  7
+fi
  8
+
  9
+base_dir=$(dirname $0)/..
  10
+
  11
+for file in $base_dir/dist/*.jar;
  12
+do
  13
+  CLASSPATH=$CLASSPATH:$file
  14
+done
  15
+
  16
+for file in $base_dir/lib/*.jar;
  17
+do
  18
+  CLASSPATH=$CLASSPATH:$file
  19
+done
  20
+
  21
+java -Xmx2G -server -cp $CLASSPATH -Dcom.sun.management.jmxremote voldemort.server.VoldemortServer ${1}
11  bin/voldemort-shell.sh
... ...
@@ -0,0 +1,11 @@
  1
+#!/bin/bash
  2
+
  3
+if [ $# != 2 ];
  4
+then
  5
+	echo 'USAGE: bin/voldemort-shell.sh store_name bootstrap_url [command_file]'
  6
+	exit 1
  7
+fi
  8
+
  9
+base_dir=$(dirname $0)/..
  10
+
  11
+$base_dir/bin/run-wrapper.sh voldemort.VoldemortClientShell ${1} ${2} ${3}
18  build.properties
... ...
@@ -0,0 +1,18 @@
  1
+src.dir=src
  2
+java.dir=src/java
  3
+lib.dir=lib
  4
+docs.dir=docs
  5
+javadoc.dir=docs/javadoc
  6
+dist.dir=dist
  7
+war.dir=war
  8
+classes.dir=dist/classes
  9
+commontestsrc.dir=test/common
  10
+unittestsrc.dir=test/unit
  11
+inttestsrc.dir=test/integration
  12
+testclasses.dir=dist/testclasses
  13
+testreport.dir=dist/junit-reports
  14
+testhtml.dir=dist/junit-reports/html
  15
+tomcat.manager.url=http://localhost:8080/manager
  16
+tomcat.manager.username=tomcat
  17
+tomcat.manager.password=tomcat
  18
+tomcat.context=/voldemort
180  build.xml
... ...
@@ -0,0 +1,180 @@
  1
+<?xml version="1.0"?>
  2
+
  3
+<project name="voldemort" basedir="." default="all">
  4
+  <property file="build.properties"/>
  5
+
  6
+  <property name="name" value="voldemort"/>
  7
+  <property name="display.name" value="Voldemort"/>
  8
+  <property name="author" value="Jay Kreps"/>
  9
+
  10
+  <path id="main-classpath">
  11
+    <fileset dir="${lib.dir}">
  12
+      <include name="*.jar"/>
  13
+    </fileset>
  14
+    <pathelement path="${classes.dir}"/>
  15
+  </path>
  16
+
  17
+  <path id="test-classpath">
  18
+    <path refid="main-classpath"/>
  19
+    <pathelement path="${testclasses.dir}"/>
  20
+  </path>
  21
+
  22
+  <macrodef name="replace-dir">
  23
+    <attribute name="dir"/>
  24
+    <sequential>
  25
+      <delete dir="@{dir}"/>
  26
+      <mkdir dir="@{dir}"/>
  27
+    </sequential>
  28
+  </macrodef>
  29
+
  30
+  <target name="all" depends="clean, jar, war, test" description="Build all artifacts." />
  31
+
  32
+  <target name="usage">
  33
+    <echo message=""/>
  34
+    <echo message="${name} build file"/>
  35
+    <echo message="-----------------------------------"/>
  36
+    <echo message=""/>
  37
+    <echo message="Available targets are:"/>
  38
+    <echo message=""/>
  39
+    <echo message="build -- Build the application"/>
  40
+    <echo message="client -- Build a jar file for clients to use"/>
  41
+    <echo message="jar -- Build a jar file for the client."/>
  42
+    <echo message="war -- Build a war file for deploying the server to a servlet container"/>
  43
+    <echo message="docs -- Create html documentation"/>
  44
+    <echo message="clean -- Delete generated files"/>
  45
+    <echo message=""/>
  46
+  </target>
  47
+
  48
+  <target name="clean" description="Delete generated files.">
  49
+    <delete dir="${dist.dir}" />
  50
+    <replace-dir dir="${javadoc.dir}"/>
  51
+  </target>
  52
+
  53
+  <target name="build" description="Compile main source tree java files">
  54
+    <replace-dir dir="${classes.dir}"/>
  55
+    <!-- copy non-java files to classes dir to load from classpath -->
  56
+    <copy todir="${classes.dir}">
  57
+      <fileset dir="${java.dir}">
  58
+        <exclude name="**/*.java"/>
  59
+      </fileset>
  60
+    </copy>
  61
+    <javac destdir="${classes.dir}" target="1.5" debug="true" deprecation="true" failonerror="true">
  62
+      <src path="${java.dir}"/>
  63
+      <classpath refid="main-classpath"/>
  64
+    </javac>
  65
+    <buildnumber file="build_number.txt"/>
  66
+  </target>
  67
+
  68
+  <target name="test" depends="build, buildtest" description="Build test jar file">
  69
+    <jar destfile="${dist.dir}/${name}-test.jar">
  70
+      <fileset dir="${testclasses.dir}"/>
  71
+    </jar>
  72
+  </target>
  73
+
  74
+  <target name="jar" depends="build" description="Build server jar file">
  75
+    <jar destfile="${dist.dir}/${name}.jar">
  76
+      <fileset dir="${classes.dir}">
  77
+        <include name="**/*.*"/>
  78
+      </fileset>
  79
+      <!-- include src code for ide convenience -->
  80
+      <fileset dir="${java.dir}" />
  81
+    </jar>
  82
+  </target>
  83
+  
  84
+  <target name="utils" depends="build" description="Build a jar file with voldemort util classes.">
  85
+    <tstamp>
  86
+      <format property="TODAY" pattern="yyyy-MM-dd" locale="en,US"/>
  87
+    </tstamp>
  88
+    <jar destfile="${dist.dir}/${name}-utils-${TODAY}.jar">
  89
+      <fileset dir="${classes.dir}">
  90
+        <include name="voldemort/VoldemortException.class"/>
  91
+        <include name="voldemort/Serializer.class"/>
  92
+        <include name="voldemort/serialization/SerializationException.class"/>
  93
+        <include name="voldemort/serialization/json/*"/>
  94
+        <include name="voldemort/utils/*"/>
  95
+      </fileset>
  96
+    </jar>
  97
+  </target>
  98
+
  99
+  <target name="buildtest" description="Compile test classes">
  100
+    <replace-dir dir="${testclasses.dir}"/>
  101
+    <javac destdir="${testclasses.dir}" target="1.5" debug="true" deprecation="true" failonerror="true">
  102
+      <src path="${unittestsrc.dir}"/>
  103
+      <src path="${inttestsrc.dir}"/>
  104
+      <src path="${commontestsrc.dir}"/>
  105
+      <classpath refid="main-classpath"/>
  106
+    </javac>
  107
+  </target>
  108
+
  109
+  <target name="junit" depends="build, buildtest" description="Run junit tests.">
  110
+    <replace-dir dir="${testreport.dir}"/>
  111
+    <replace-dir dir="${testhtml.dir}"/>
  112
+    <junit printsummary="yes" showoutput="true">
  113
+      <classpath refid="test-classpath"/>
  114
+      <formatter type="xml"/>
  115
+      <batchtest fork="yes" todir="${testreport.dir}">
  116
+        <fileset dir="${unittestsrc.dir}">
  117
+          <include name="**/*Test.java"/>
  118
+        </fileset>
  119
+      </batchtest>
  120
+    </junit>
  121
+    <junitreport todir="${testhtml.dir}">
  122
+      <fileset dir="${testreport.dir}">
  123
+        <include name="TEST-*.xml"/>
  124
+      </fileset>
  125
+      <report todir="${testhtml.dir}" styledir="junitreport" format="frames" />
  126
+    </junitreport>
  127
+  </target>
  128
+
  129
+  <target name="war" depends="build" description="Build server war file">
  130
+    <war destfile="${dist.dir}/${name}.war" webxml="web.xml" basedir="${classes.dir}">
  131
+      <classes dir="${classes.dir}"/>
  132
+      <lib dir="${lib.dir}">
  133
+        <exclude name="${lib.dir}/servlet-api.jar"/>
  134
+        <exclude name="${lib.dir}/src/**"/>
  135
+      </lib>
  136
+    </war>
  137
+  </target>
  138
+
  139
+  <target name="docs" description="Create complete Javadoc documentation">
  140
+    <replace-dir dir="${javadoc.dir}"/>
  141
+    <javadoc sourcepath="${java.dir}" destdir="${javadoc.dir}" windowtitle="${display.name}"
  142
+                 source="1.5" author="true" version="true" use="true" packagenames="*">
  143
+      <doctitle>${display.name}</doctitle>
  144
+      <bottom>${author}</bottom>
  145
+      <classpath refid="main-classpath"/>
  146
+    </javadoc>
  147
+  </target>
  148
+
  149
+  <target name="redeploy" depends="war, deploy">
  150
+  </target>
  151
+
  152
+  <taskdef file="tomcat-tasks.properties">
  153
+    <classpath>
  154
+      <path location="${lib.dir}/catalina-ant.jar"/>
  155
+    </classpath>
  156
+  </taskdef>
  157
+
  158
+  <target name="list" description="List Tomcat applications">
  159
+    <list url="${tomcat.manager.url}"
  160
+                 username="${tomcat.manager.username}"
  161
+                 password="${tomcat.manager.password}"/>
  162
+  </target>
  163
+
  164
+  <target name="deploy" description="Deploy application" depends="war">
  165
+    <deploy url="${tomcat.manager.url}"
  166
+                 username="${tomcat.manager.username}"
  167
+                 password="${tomcat.manager.password}"
  168
+                 path="${tomcat.context}"
  169
+                 update="true"
  170
+                 war="file:${dist.dir}/${name}.war"/>
  171
+  </target>
  172
+
  173
+  <target name="undeploy" description="Undeploy application">
  174
+    <undeploy url="${tomcat.manager.url}"
  175
+                 username="${tomcat.manager.username}"
  176
+                 password="${tomcat.manager.password}"
  177
+                 path="${tomcat.context}"/>
  178
+  </target>
  179
+
  180
+</project>
6  build_number.txt
... ...
@@ -0,0 +1,6 @@
  1
+#Build Number for ANT. Do not edit!
  2
+#Fri Jan 02 13:30:12 PST 2009
  3
+build.number=139
  4
+>>>>>>>=1.8
  5
+=\=\=\=\=\=\=
  6
+<<<<<<<=build_number.txt
10  config/single_node_cluster/config/cluster.xml
... ...
@@ -0,0 +1,10 @@
  1
+<cluster>
  2
+	<name>mycluster</name>
  3
+	<server>
  4
+		<id>0</id>
  5
+		<host>localhost</host>
  6
+		<http-port>8081</http-port>
  7
+		<socket-port>6666</socket-port>
  8
+		<partitions>0, 1</partitions>
  9
+	</server>
  10
+</cluster>
25  config/single_node_cluster/config/server.properties
... ...
@@ -0,0 +1,25 @@
  1
+# The ID of *this* particular cluster node
  2
+node.id=0
  3
+
  4
+max.threads=100
  5
+
  6
+############### DB options ######################
  7
+
  8
+http.enable=true
  9
+socket.enable=true
  10
+mina.enable=false
  11
+bdb.enable=true
  12
+
  13
+# BDB
  14
+bdb.sync.transactions=false
  15
+bdb.cache.size=100MB
  16
+
  17
+http.port=8081
  18
+socket.port=6666
  19
+
  20
+# Mysql
  21
+mysql.host=localhost
  22
+mysql.port=1521
  23
+mysql.user=root
  24
+mysql.password=3306
  25
+mysql.database=test
18  config/single_node_cluster/config/stores.xml
... ...
@@ -0,0 +1,18 @@
  1
+<stores>
  2
+	<store>