You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by cr...@apache.org on 2013/08/12 18:21:45 UTC
[15/15] git commit: initial import.
initial import.
Project: http://git-wip-us.apache.org/repos/asf/incubator-samza/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-samza/commit/5ff71e51
Tree: http://git-wip-us.apache.org/repos/asf/incubator-samza/tree/5ff71e51
Diff: http://git-wip-us.apache.org/repos/asf/incubator-samza/diff/5ff71e51
Branch: refs/heads/master
Commit: 5ff71e51f650c74636b17653fcc5172a653eab65
Parents:
Author: Chris Riccomini <cr...@criccomi-mn.linkedin.biz>
Authored: Mon Aug 12 09:19:28 2013 -0700
Committer: Chris Riccomini <cr...@criccomi-mn.linkedin.biz>
Committed: Mon Aug 12 09:19:28 2013 -0700
----------------------------------------------------------------------
.gitignore | 24 +
DISCLAIMER | 1 +
HEADER | 16 +
LICENSE | 580 ++++
README.md | 55 +
RELEASE.md | 16 +
build.gradle | 182 ++
docs/README.md | 35 +
docs/_config.yml | 5 +
docs/_layouts/default.html | 77 +
docs/_layouts/page.html | 7 +
docs/_notes/TODO.md | 95 +
docs/_tools/generate-javadocs.sh | 23 +
docs/_tools/publish-site.sh | 34 +
docs/community/committers.md | 46 +
docs/community/irc.md | 12 +
docs/community/mailing-lists.md | 16 +
docs/contribute/code.md | 16 +
docs/contribute/coding-guide.md | 97 +
docs/contribute/disclaimer.md | 6 +
docs/contribute/projects.md | 20 +
docs/contribute/rules.md | 22 +
docs/contribute/seps.md | 27 +
docs/css/main.css | 161 ++
.../documentation/comparisons/mupd8-samza.png | Bin 0 -> 8217 bytes
.../learn/documentation/comparisons/mupd8.png | Bin 0 -> 7308 bytes
.../documentation/container/checkpointing-2.png | Bin 0 -> 18449 bytes
.../documentation/container/checkpointing.png | Bin 0 -> 14613 bytes
.../learn/documentation/container/job-flow.png | Bin 0 -> 31104 bytes
.../learn/documentation/container/metrics.png | Bin 0 -> 20542 bytes
.../container/tasks-and-partitions.png | Bin 0 -> 14362 bytes
.../documentation/introduction/dag.graffle | 1009 +++++++
.../learn/documentation/introduction/dag.png | Bin 0 -> 22276 bytes
.../introduction/group-by-example.png | Bin 0 -> 18340 bytes
.../documentation/introduction/job.graffle | 512 ++++
.../learn/documentation/introduction/job.png | Bin 0 -> 8954 bytes
.../introduction/job_detail.graffle | 1320 +++++++++
.../documentation/introduction/job_detail.png | Bin 0 -> 18176 bytes
.../introduction/samza-ecosystem.png | Bin 0 -> 2473 bytes
.../documentation/introduction/samza-hadoop.png | Bin 0 -> 2542 bytes
.../introduction/samza-yarn-integration.png | Bin 0 -> 9400 bytes
.../samza-yarn-kafka-integration.png | Bin 0 -> 12798 bytes
.../introduction/samza_state.graffle | 1654 +++++++++++
.../documentation/introduction/samza_state.png | Bin 0 -> 40635 bytes
.../documentation/introduction/stream.graffle | 2670 ++++++++++++++++++
.../learn/documentation/introduction/stream.png | Bin 0 -> 19806 bytes
.../motivation/data-processing-spectrum-1.png | Bin 0 -> 21773 bytes
.../motivation/data-processing-spectrum-2.png | Bin 0 -> 21902 bytes
.../motivation/data-processing-spectrum-3.png | Bin 0 -> 29389 bytes
.../documentation/yarn/samza-am-dashboard.png | Bin 0 -> 55603 bytes
docs/img/apache-egg-logo.png | Bin 0 -> 8626 bytes
docs/img/samza-icon.png | Bin 0 -> 7722 bytes
docs/index.md | 34 +
docs/learn/documentation/0.7.0/api/overview.md | 99 +
.../0.7.0/comparisons/introduction.md | 50 +
.../documentation/0.7.0/comparisons/mupd8.md | 72 +
.../documentation/0.7.0/comparisons/storm.md | 94 +
.../0.7.0/container/checkpointing.md | 45 +
.../documentation/0.7.0/container/event-loop.md | 61 +
.../documentation/0.7.0/container/index.md | 18 +
docs/learn/documentation/0.7.0/container/jmx.md | 13 +
.../documentation/0.7.0/container/metrics.md | 50 +
.../0.7.0/container/state-management.md | 115 +
.../documentation/0.7.0/container/streams.md | 40 +
.../0.7.0/container/task-runner.md | 43 +
.../documentation/0.7.0/container/windowing.md | 16 +
docs/learn/documentation/0.7.0/index.html | 73 +
.../0.7.0/introduction/architecture.md | 90 +
.../0.7.0/introduction/background.md | 55 +
.../0.7.0/introduction/concepts.md | 58 +
.../0.7.0/jobs/configuration-table.html | 224 ++
.../documentation/0.7.0/jobs/configuration.md | 45 +
.../documentation/0.7.0/jobs/job-runner.md | 46 +
docs/learn/documentation/0.7.0/jobs/logging.md | 53 +
.../learn/documentation/0.7.0/jobs/packaging.md | 31 +
.../learn/documentation/0.7.0/jobs/yarn-jobs.md | 16 +
.../documentation/0.7.0/operations/kafka.md | 16 +
.../documentation/0.7.0/operations/security.md | 56 +
.../0.7.0/yarn/application-master.md | 53 +
.../learn/documentation/0.7.0/yarn/isolation.md | 30 +
docs/learn/tutorials/0.7.0/committing.md | 6 +
.../tutorials/0.7.0/configuring-kafka-system.md | 6 +
docs/learn/tutorials/0.7.0/group-by-count.md | 6 +
docs/learn/tutorials/0.7.0/index.md | 17 +
docs/learn/tutorials/0.7.0/initialize-close.md | 6 +
docs/learn/tutorials/0.7.0/joining-streams.md | 6 +
docs/learn/tutorials/0.7.0/sort-stream.md | 6 +
docs/learn/tutorials/0.7.0/windowing.md | 6 +
docs/startup/download/index.md | 81 +
docs/startup/hello-samza/0.7.0/index.md | 84 +
gradle.properties | 3 +
gradle/buildscript.gradle | 12 +
gradle/dependency-versions-scala-2.8.1.gradle | 6 +
gradle/dependency-versions-scala-2.9.2.gradle | 6 +
gradle/dependency-versions.gradle | 12 +
gradle/license.gradle | 9 +
gradle/maven.gradle | 19 +
gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49875 bytes
gradle/wrapper/gradle-wrapper.properties | 6 +
gradlew | 164 ++
.../main/java/org/apache/samza/Partition.java | 59 +
.../java/org/apache/samza/SamzaException.java | 43 +
.../org/apache/samza/checkpoint/Checkpoint.java | 67 +
.../samza/checkpoint/CheckpointManager.java | 34 +
.../checkpoint/CheckpointManagerFactory.java | 27 +
.../java/org/apache/samza/config/Config.java | 219 ++
.../apache/samza/config/ConfigException.java | 38 +
.../org/apache/samza/config/ConfigFactory.java | 26 +
.../org/apache/samza/config/ConfigRewriter.java | 27 +
.../java/org/apache/samza/config/MapConfig.java | 107 +
.../org/apache/samza/job/ApplicationStatus.java | 34 +
.../org/apache/samza/job/CommandBuilder.java | 62 +
.../java/org/apache/samza/job/StreamJob.java | 32 +
.../org/apache/samza/job/StreamJobFactory.java | 26 +
.../java/org/apache/samza/metrics/Counter.java | 75 +
.../java/org/apache/samza/metrics/DataType.java | 34 +
.../java/org/apache/samza/metrics/Gauge.java | 53 +
.../java/org/apache/samza/metrics/Metric.java | 27 +
.../apache/samza/metrics/MetricsRegistry.java | 26 +
.../apache/samza/metrics/MetricsReporter.java | 28 +
.../samza/metrics/MetricsReporterFactory.java | 26 +
.../org/apache/samza/metrics/MetricsType.java | 34 +
.../apache/samza/metrics/MetricsVisitor.java | 37 +
.../samza/metrics/ReadableMetricsRegistry.java | 33 +
.../ReadableMetricsRegistryListener.java | 26 +
.../apache/samza/serializers/Deserializer.java | 24 +
.../org/apache/samza/serializers/Serde.java | 23 +
.../apache/samza/serializers/SerdeFactory.java | 26 +
.../apache/samza/serializers/Serializer.java | 24 +
.../org/apache/samza/storage/StorageEngine.java | 49 +
.../samza/storage/StorageEngineFactory.java | 61 +
.../samza/system/IncomingMessageEnvelope.java | 98 +
.../system/IncomingMessageEnvelopePicker.java | 26 +
.../samza/system/OutgoingMessageEnvelope.java | 134 +
.../org/apache/samza/system/SystemAdmin.java | 28 +
.../org/apache/samza/system/SystemConsumer.java | 35 +
.../org/apache/samza/system/SystemFactory.java | 31 +
.../org/apache/samza/system/SystemProducer.java | 32 +
.../org/apache/samza/system/SystemStream.java | 78 +
.../samza/system/SystemStreamPartition.java | 77 +
.../system/SystemStreamPartitionIterator.java | 83 +
.../org/apache/samza/task/ClosableTask.java | 24 +
.../org/apache/samza/task/InitableTask.java | 26 +
.../org/apache/samza/task/MessageCollector.java | 26 +
.../java/org/apache/samza/task/StreamTask.java | 26 +
.../java/org/apache/samza/task/TaskContext.java | 31 +
.../org/apache/samza/task/TaskCoordinator.java | 26 +
.../samza/task/TaskLifecycleListener.java | 59 +
.../task/TaskLifecycleListenerFactory.java | 26 +
.../org/apache/samza/task/WindowableTask.java | 24 +
.../apache/samza/util/BlockingEnvelopeMap.java | 251 ++
.../main/java/org/apache/samza/util/Clock.java | 24 +
.../apache/samza/util/NoOpMetricsRegistry.java | 36 +
.../samza/util/SinglePartitionSystemAdmin.java | 46 +
.../TestSystemStreamPartitionIterator.java | 118 +
.../samza/util/TestBlockingEnvelopeMap.java | 207 ++
.../samza/util/TestNoOpMetricsRegistry.java | 55 +
.../util/TestSinglePartitionSystemAdmin.java | 37 +
.../file/FileSystemCheckpointManager.scala | 86 +
.../FileSystemCheckpointManagerConfig.scala | 31 +
.../org/apache/samza/config/JobConfig.scala | 43 +
.../org/apache/samza/config/MetricsConfig.scala | 53 +
.../apache/samza/config/ScalaMapConfig.scala | 37 +
.../apache/samza/config/SerializerConfig.scala | 42 +
.../samza/config/ShellCommandConfig.scala | 53 +
.../org/apache/samza/config/StorageConfig.scala | 46 +
.../org/apache/samza/config/StreamConfig.scala | 80 +
.../org/apache/samza/config/SystemConfig.scala | 52 +
.../org/apache/samza/config/TaskConfig.scala | 75 +
.../factories/PropertiesConfigFactory.scala | 49 +
.../serializers/JsonConfigSerializer.scala | 39 +
.../apache/samza/container/SamzaContainer.scala | 608 ++++
.../samza/container/SamzaContainerMetrics.scala | 33 +
.../apache/samza/container/TaskInstance.scala | 241 ++
.../samza/container/TaskInstanceMetrics.scala | 34 +
.../scala/org/apache/samza/job/JobRunner.scala | 135 +
.../apache/samza/job/ShellCommandBuilder.scala | 39 +
.../samza/job/local/LocalJobFactory.scala | 82 +
.../org/apache/samza/job/local/ProcessJob.scala | 129 +
.../org/apache/samza/job/local/ThreadJob.scala | 81 +
.../org/apache/samza/metrics/JmxServer.scala | 110 +
.../org/apache/samza/metrics/JvmMetrics.scala | 148 +
.../samza/metrics/MetricsRegistryMap.scala | 70 +
.../samza/metrics/reporter/JmxReporter.scala | 145 +
.../apache/samza/metrics/reporter/Metrics.scala | 55 +
.../samza/metrics/reporter/MetricsHeader.scala | 68 +
.../metrics/reporter/MetricsSnapshot.scala | 43 +
.../reporter/MetricsSnapshotReporter.scala | 144 +
.../MetricsSnapshotReporterFactory.scala | 125 +
.../samza/serializers/CheckpointSerde.scala | 66 +
.../apache/samza/serializers/SerdeManager.scala | 123 +
.../apache/samza/serializers/StringSerde.scala | 39 +
.../samza/storage/TaskStorageManager.scala | 121 +
.../org/apache/samza/system/DefaultPicker.scala | 28 +
.../apache/samza/system/SystemConsumers.scala | 134 +
.../apache/samza/system/SystemProducers.scala | 49 +
.../apache/samza/task/ReadableCollector.scala | 37 +
.../apache/samza/task/ReadableCoordinator.scala | 34 +
.../apache/samza/util/DaemonThreadFactory.scala | 30 +
.../main/scala/org/apache/samza/util/Util.scala | 122 +
samza-core/src/test/resources/test.properties | 24 +
.../file/TestFileSystemCheckpointManager.scala | 67 +
.../factories/TestPropertiesConfigFactory.scala | 45 +
.../org/apache/samza/job/TestJobRunner.scala | 52 +
.../apache/samza/job/local/TestProcessJob.scala | 44 +
.../apache/samza/job/local/TestThreadJob.scala | 49 +
.../apache/samza/metrics/TestJmxServer.scala | 58 +
.../metrics/reporter/TestJmxReporter.scala | 81 +
.../samza/task/TestReadableCoordinator.scala | 45 +
.../lib/kafka_2.8.1-0.8.1-SNAPSHOT-test.jar | Bin 0 -> 878410 bytes
samza-kafka/lib/kafka_2.8.1-0.8.1-SNAPSHOT.jar | Bin 0 -> 2680590 bytes
.../lib/kafka_2.9.2-0.8.1-SNAPSHOT-test.jar | Bin 0 -> 906945 bytes
samza-kafka/lib/kafka_2.9.2-0.8.1-SNAPSHOT.jar | Bin 0 -> 2747348 bytes
.../kafka/KafkaCheckpointManager.scala | 294 ++
.../kafka/KafkaCheckpointManagerFactory.scala | 94 +
.../org/apache/samza/config/KafkaConfig.scala | 99 +
.../apache/samza/config/KafkaSerdeConfig.scala | 36 +
.../samza/config/RegExTopicGenerator.scala | 110 +
.../apache/samza/serializers/KafkaSerde.scala | 46 +
.../apache/samza/system/kafka/BrokerProxy.scala | 215 ++
.../samza/system/kafka/BrokerProxyMetrics.scala | 52 +
.../samza/system/kafka/DefaultFetch.scala | 48 +
.../apache/samza/system/kafka/GetOffset.scala | 94 +
.../samza/system/kafka/KafkaSystemAdmin.scala | 51 +
.../system/kafka/KafkaSystemConsumer.scala | 188 ++
.../samza/system/kafka/KafkaSystemFactory.scala | 107 +
.../system/kafka/KafkaSystemProducer.scala | 114 +
.../apache/samza/system/kafka/MessageSink.scala | 30 +
.../system/kafka/TopicAndPartitionMetrics.scala | 56 +
.../samza/system/kafka/TopicMetadataCache.scala | 68 +
.../org/apache/samza/system/kafka/Toss.scala | 28 +
.../util/ClientUtilTopicMetadataStore.scala | 50 +
.../scala/org/apache/samza/util/KafkaUtil.scala | 44 +
.../checkpoint/TestKafkaCheckpointManager.scala | 152 +
.../samza/config/TestKafkaSerdeConfig.scala | 39 +
.../samza/config/TestRegExTopicGenerator.scala | 87 +
.../samza/serializers/TestKafkaSerde.scala | 32 +
.../samza/system/kafka/TestBrokerProxy.scala | 178 ++
.../system/kafka/TestKafkaSystemFactory.scala | 85 +
.../system/kafka/TestKafkaSystemProducer.scala | 155 +
.../system/kafka/TestTopicMetadataCache.scala | 121 +
.../java/org/apache/samza/storage/kv/Entry.java | 46 +
.../samza/storage/kv/KeyValueIterator.java | 26 +
.../apache/samza/storage/kv/KeyValueStore.java | 74 +
.../apache/samza/storage/kv/CachedStore.scala | 161 ++
.../storage/kv/KeyValueStorageEngine.scala | 97 +
.../kv/KeyValueStorageEngineFactory.scala | 78 +
.../samza/storage/kv/LevelDbKeyValueStore.scala | 156 +
.../apache/samza/storage/kv/LoggedStore.scala | 84 +
.../storage/kv/SerializedKeyValueStore.scala | 95 +
.../samza/storage/kv/TestKeyValueStores.scala | 172 ++
.../apache/samza/serializers/JsonSerde.scala | 38 +
.../serializers/MetricsSnapshotSerde.scala | 42 +
.../samza/serializers/TestJsonSerde.scala | 33 +
.../serializers/TestMetricsSnapshotSerde.scala | 43 +
samza-shell/src/main/assembly/src.xml | 31 +
samza-shell/src/main/bash/kill-yarn-job.sh | 19 +
samza-shell/src/main/bash/run-am.sh | 19 +
samza-shell/src/main/bash/run-class.sh | 61 +
samza-shell/src/main/bash/run-job.sh | 19 +
samza-shell/src/main/bash/run-task.sh | 19 +
samza-test/java.hprof.txt | 65 +
.../test/integration/SimpleStatefulTask.java | 35 +
.../test/integration/StatePerfTestTask.java | 35 +
.../samza/test/integration/join/Checker.java | 71 +
.../samza/test/integration/join/Emitter.java | 88 +
.../test/integration/join/EpochPartitioner.java | 13 +
.../samza/test/integration/join/Joiner.java | 93 +
.../samza/test/integration/join/Watcher.java | 77 +
samza-test/src/main/resources/common.properties | 25 +
.../main/resources/hello-stateful-world.samsa | 13 +
.../src/main/resources/join/checker.samsa | 18 +
.../src/main/resources/join/emitter.samsa | 15 +
samza-test/src/main/resources/join/joiner.samsa | 13 +
.../src/main/resources/join/watcher.samsa | 13 +
samza-test/src/main/resources/log4j.xml | 21 +
.../src/main/resources/perf/counter.samsa | 12 +
.../test/integration/TestStatefulTask.scala | 436 +++
.../scalate/WEB-INF/layouts/default.scaml | 27 +
.../resources/scalate/WEB-INF/views/index.scaml | 107 +
.../resources/scalate/css/bootstrap.min.css | 9 +
.../main/resources/scalate/js/bootstrap.min.js | 6 +
.../org/apache/samza/config/YarnConfig.scala | 78 +
.../apache/samza/job/yarn/ClientHelper.scala | 201 ++
.../apache/samza/job/yarn/SamzaAppMaster.scala | 86 +
.../job/yarn/SamzaAppMasterLifecycle.scala | 73 +
.../samza/job/yarn/SamzaAppMasterMetrics.scala | 90 +
.../samza/job/yarn/SamzaAppMasterService.scala | 66 +
.../samza/job/yarn/SamzaAppMasterState.scala | 54 +
.../job/yarn/SamzaAppMasterTaskManager.scala | 334 +++
.../apache/samza/job/yarn/YarnAppMaster.scala | 76 +
.../samza/job/yarn/YarnAppMasterListener.scala | 73 +
.../org/apache/samza/job/yarn/YarnJob.scala | 108 +
.../apache/samza/job/yarn/YarnJobFactory.scala | 33 +
.../samza/util/hadoop/HttpFileSystem.scala | 98 +
.../samza/util/hadoop/HttpInputStream.scala | 46 +
.../webapp/ApplicationMasterRestServlet.scala | 104 +
.../webapp/ApplicationMasterWebServlet.scala | 43 +
.../org/apache/samza/webapp/WebAppServer.scala | 51 +
.../job/yarn/TestSamzaAppMasterLifecycle.scala | 135 +
.../job/yarn/TestSamzaAppMasterService.scala | 49 +
.../yarn/TestSamzaAppMasterTaskManager.scala | 431 +++
.../samza/job/yarn/TestYarnAppMaster.scala | 143 +
settings.gradle | 7 +
304 files changed, 25647 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ac261dc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+project/boot/
+target/
+.classpath
+.project
+.scala_dependencies
+.settings/
+dist/
+record_timestamps.log*
+deployable.tgz
+.idea/
+.idea_modules/
+*.iml
+*.ipr
+*.iws
+*/.cache
+dashboard-deployable.tgz
+deployable.tar
+dist-dashboard
+docs/_site
+.gradle
+build
+**/bin
+samza-test/state
+docs/learn/documentation/0.7.0/api/javadocs
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/DISCLAIMER
----------------------------------------------------------------------
diff --git a/DISCLAIMER b/DISCLAIMER
new file mode 100644
index 0000000..1ec4f5c
--- /dev/null
+++ b/DISCLAIMER
@@ -0,0 +1 @@
+Apache Samza is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/HEADER
----------------------------------------------------------------------
diff --git a/HEADER b/HEADER
new file mode 100644
index 0000000..60b675e
--- /dev/null
+++ b/HEADER
@@ -0,0 +1,16 @@
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License 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.
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..fd83093
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,580 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License 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.
+
+-----------------------------------------------------------------------
+
+SLF4J LICENSE
+
+Copyright (c) 2004-2013 QOS.ch
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+-----------------------------------------------------------------------
+
+JUNIT LICENSE
+
+JUnit
+
+Common Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial code and
+ documentation distributed under this Agreement, and
+ b) in the case of each subsequent Contributor:
+
+ i) changes to the Program, and
+
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+distributed by that particular Contributor. A Contribution 'originates' from a
+Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to
+the Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii) are
+not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free copyright license to
+reproduce, prepare derivative works of, publicly display, publicly perform,
+distribute and sublicense the Contribution of such Contributor, if any, and
+such derivative works, in source code and object code form.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+Recipient a non-exclusive, worldwide, royalty-free patent license under
+Licensed Patents to make, use, sell, offer to sell, import and otherwise
+transfer the Contribution of such Contributor, if any, in source code and
+object code form. This patent license shall apply to the combination of the
+Contribution and the Program if, at the time the Contribution is added by the
+Contributor, such addition of the Contribution causes such combination to be
+covered by the Licensed Patents. The patent license shall not apply to any
+other combinations which include the Contribution. No hardware per se is
+licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the
+licenses to its Contributions set forth herein, no assurances are provided by
+any Contributor that the Program does not infringe the patent or other
+intellectual property rights of any other entity. Each Contributor disclaims
+any liability to Recipient for claims brought by any other entity based on
+infringement of intellectual property rights or otherwise. As a condition to
+exercising the rights and licenses granted hereunder, each Recipient hereby
+assumes sole responsibility to secure any other intellectual property rights
+needed, if any. For example, if a third party patent license is required to
+allow Recipient to distribute the Program, it is Recipient's responsibility to
+acquire that license before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has sufficient
+copyright rights in its Contribution, if any, to grant the copyright license
+set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under
+its own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+
+ b) its license agreement:
+
+ i) effectively disclaims on behalf of all Contributors all warranties and
+conditions, express and implied, including warranties or conditions of title
+and non-infringement, and implied warranties or conditions of merchantability
+and fitness for a particular purpose;
+
+ ii) effectively excludes on behalf of all Contributors all liability for
+damages, including direct, indirect, special, incidental and consequential
+damages, such as lost profits;
+
+ iii) states that any provisions which differ from this Agreement are
+offered by that Contributor alone and not by any other party; and
+
+ iv) states that source code for the Program is available from such
+Contributor, and informs licensees how to obtain it in a reasonable manner on
+or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+
+ b) a copy of this Agreement must be included with each copy of the
+Program.
+
+Contributors may not remove or alter any copyright notices contained within the
+Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor
+to control, and cooperate with the Commercial Contributor in, the defense and
+any related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using
+and distributing the Program and assumes all risks associated with its exercise
+of rights under this Agreement, including but not limited to the risks and
+costs of program errors, compliance with applicable laws, damage to or loss of
+data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against a Contributor with respect to
+a patent applicable to software (including a cross-claim or counterclaim in a
+lawsuit), then any patent licenses granted by that Contributor to such
+Recipient under this Agreement shall terminate as of the date such litigation
+is filed. In addition, if Recipient institutes patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software or
+hardware) infringes such Recipient's patent(s), then such Recipient's rights
+granted under Section 2(b) shall terminate as of the date such litigation is
+filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue
+and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+IBM is the initial Agreement Steward. IBM may assign the responsibility to
+serve as the Agreement Steward to a suitable separate entity. Each new version
+of the Agreement will be given a distinguishing version number. The Program
+(including Contributions) may always be distributed subject to the version of
+the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly stated
+in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether
+expressly, by implication, estoppel or otherwise. All rights in the Program not
+expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial
+in any resulting litigation.
+
+-----------------------------------------------------------------------
+
+GRIZZLED SLF4J LICENSE
+
+This software is released under a BSD license, adapted from
+<http://opensource.org/licenses/bsd-license.php>
+
+Copyright © 2010 Brian M. Clapper.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+* Neither the name "clapper.org" nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+-----------------------------------------------------------------------
+
+SCALATRA LICENSE
+
+Scalatra is distributed under the following terms:
+
+Copyright (c) Alan Dipert <al...@gmail.com>. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-----------------------------------------------------------------------
+
+SCALA LICENSE
+
+Copyright (c) 2002-2013 EPFL, Lausanne, unless otherwise specified.
+All rights reserved.
+
+This software was developed by the Programming Methods Laboratory of the
+Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland.
+
+Permission to use, copy, modify, and distribute this software in source
+or binary form for any purpose with or without fee is hereby granted,
+provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the EPFL nor the names of its contributors
+ may be used to endorse or promote products derived from this
+ software without specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-----------------------------------------------------------------------
+
+JOPTSIMPLE LICENSE
+
+The MIT License
+
+Copyright (c) 2004-2013 Paul R. Holser, Jr.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..d55740e
--- /dev/null
+++ b/README.md
@@ -0,0 +1,55 @@
+## What is Samza?
+
+Apache Incubator Samza is a distributed stream processing framework. It uses <a target="_blank" href="http://kafka.apache.org">Apache Kafka</a> for messaging, and <a target="_blank" href="http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html">Apache Hadoop YARN</a> to provide fault tolerance, processor isolation, security, and resource management.
+
+* **Simpe API:** Unlike most low-level messaging system APIs, Samza provides a very simple call-back based "process message" API that should be familiar to anyone that's used Map/Reduce.
+* **Managed state:** Samza manages snapshotting and restoration of a stream processor's state. Samza will restore a stream processor's state to a snapshot consistent with the processor's last read messages when the processor is restarted.
+* **Fault tolerance:** Samza will work with YARN to restart your stream processor if there is a machine or processor failure.
+* **Durability:** Samza uses Kafka to guarantee that messages will be processed in the order they were written to a partition, and that no messages will ever be lost.
+* **Scalability:** Samza is partitioned and distributed at every level. Kafka provides ordered, partitioned, re-playable, fault-tolerant streams. YARN provides a distributed environment for Samza containers to run in.
+* **Pluggable:** Though Samza works out of the box with Kafka and YARN, Samza provides a pluggable API that lets you run Samza with other messaging systems and execution environments.
+* **Processor isolation:** Samza works with Apache YARN, which supports processor security through Hadoop's security model, and resource isolation through Linux CGroups.
+
+Check out [Hello Samza](/startup/hello-samza/0.7.0) to try Samza. Read the [Background](/learn/documentation/0.7.0/introduction/background.html) page to learn more about Samza.
+
+### Building Samza
+
+To build Samza, run:
+
+ ./gradlew clean build
+
+#### Scala and YARN
+
+Samza builds with [Scala](http://www.scala-lang.org/) 2.9.2 and [YARN](http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html) 2.0.5-alpha, by default. Use the -PscalaVersion and -PyarnVersion switches to change versions. Samza supports building Scala with 2.8.1 or 2.9.2, and building YARN with 2.0.3-alpha, 2.0.4-alpha, and 2.0.5-alpha.
+
+ ./gradlew -PscalaVersion=2.8.1 -PyarnVersion=2.0.3-alpha clean build
+
+YARN protocols are backwards incompatible, so you must pick the version that matches your YARN grid.
+
+### Testing Samza
+
+To run all tests:
+
+ ./gradlew clean test
+
+To run a single test:
+
+ ./gradlew clean :samza-test:test -Dtest.single=TestStatefulTask
+
+#### Maven
+
+Samza uses Kafka, which is not managed by Maven. To use Kafka as though it were a Maven artifact, Samza installs Kafka into a local repository using the `mvn install` command. You must have Maven installed to build Samza.
+
+### Developers
+
+To get eclipse projects, run:
+
+ ./gradlew eclipse
+
+For IntelliJ, run:
+
+ ./gradlew idea
+
+### Pardon our Dust
+
+Apache Samza is currently undergoing incubation at the [Apache Software Foundation](http://www.apache.org/).
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/RELEASE.md
----------------------------------------------------------------------
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 0000000..06a22df
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,16 @@
+Validate that all Samza source files have proper license information in their header.
+
+ ./gradlew check
+
+Auto-generate all missing headers in files:
+
+ ./gradlew licenseFormatMain
+
+To release to a local Maven repository:
+
+ ./gradlew clean publishToMavenLocal
+ ./gradlew -PscalaVersion=2.8.1 clean publishToMavenLocal
+
+To generate test coverage reports:
+
+ ./gradlew clean jacocoTestReport
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..4c4e99c
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,182 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+
+ apply from: file('gradle/buildscript.gradle'), to: buildscript
+}
+
+allprojects {
+ repositories {
+ // Required for Kafka. Kafka's 0.8.0-beta1 Maven Central
+ // POM is broken. Should go away in future releases.
+ maven {
+ url 'https://repository.apache.org/content/groups/public'
+ }
+ mavenCentral()
+ mavenLocal()
+ }
+}
+
+apply from: file('gradle/license.gradle')
+apply from: file('gradle/maven.gradle')
+apply from: file("gradle/dependency-versions.gradle")
+apply from: file("gradle/dependency-versions-scala-" + scalaVersion + ".gradle")
+
+subprojects {
+ group = "org.apache.samza"
+
+ apply plugin: 'jacoco'
+ apply plugin: 'eclipse'
+ apply plugin: 'idea'
+ apply plugin: 'project-report'
+}
+
+project(':samza-api') {
+ apply plugin: 'java'
+
+ dependencies {
+ testCompile "junit:junit:$junitVersion"
+ }
+}
+
+project(":samza-core_$scalaVersion") {
+ apply plugin: 'scala'
+
+ dependencies {
+ compile project(':samza-api')
+ compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.clapper:grizzled-slf4j_$scalaVersion:$grizzledVersion"
+ compile "net.sf.jopt-simple:jopt-simple:$joptSimpleVersion"
+ compile "org.codehaus.jackson:jackson-jaxrs:$jacksonVersion"
+ testCompile "junit:junit:$junitVersion"
+ }
+}
+
+project(":samza-kafka_$scalaVersion") {
+ apply plugin: 'scala'
+
+ dependencies {
+ compile project(':samza-api')
+ compile project(":samza-core_$scalaVersion")
+ compile project(":samza-serializers_$scalaVersion")
+ compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.clapper:grizzled-slf4j_$scalaVersion:$grizzledVersion"
+ compile "com.101tec:zkclient:$zkClientVersion"
+ compile "org.codehaus.jackson:jackson-jaxrs:$jacksonVersion"
+ // these can all go away when kafka is in maven
+ compile files("lib/kafka_$scalaVersion-" + kafkaVersion + ".jar")
+ compile "com.yammer.metrics:metrics-core:$metricsVersion"
+ compile "com.yammer.metrics:metrics-annotation:$metricsVersion"
+ // end these can all go away when kafka is in maven
+ testCompile "junit:junit:$junitVersion"
+ testCompile "org.mockito:mockito-all:$mockitoVersion"
+ // these can all go away when kafka is in maven
+ testCompile files("lib/kafka_$scalaVersion-$kafkaVersion-test.jar")
+ // end these can all go away when kafka is in maven
+ }
+}
+
+project(":samza-serializers_$scalaVersion") {
+ apply plugin: 'scala'
+
+ dependencies {
+ compile project(':samza-api')
+ compile project(":samza-core_$scalaVersion")
+ compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.clapper:grizzled-slf4j_$scalaVersion:$grizzledVersion"
+ compile "org.codehaus.jackson:jackson-jaxrs:$jacksonVersion"
+ testCompile "junit:junit:$junitVersion"
+ }
+}
+
+project(":samza-yarn_$scalaVersion") {
+ apply plugin: 'scala'
+
+ jar {
+ classifier = "yarn-$yarnVersion"
+ }
+
+ dependencies {
+ compile project(':samza-api')
+ compile project(":samza-core_$scalaVersion")
+ compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.scala-lang:scala-compiler:$scalaVersion"
+ compile "org.clapper:grizzled-slf4j_$scalaVersion:$grizzledVersion"
+ compile "org.codehaus.jackson:jackson-jaxrs:$jacksonVersion"
+ compile "commons-httpclient:commons-httpclient:$commonsHttpClientVersion"
+ compile "org.eclipse.jetty:jetty-webapp:$jettyVersion"
+ compile("org.apache.hadoop:hadoop-yarn-api:$yarnVersion") {
+ exclude module: 'slf4j-log4j12'
+ }
+ compile("org.apache.hadoop:hadoop-yarn-common:$yarnVersion") {
+ exclude module: 'slf4j-log4j12'
+ }
+ compile("org.apache.hadoop:hadoop-yarn-client:$yarnVersion") {
+ exclude module: 'slf4j-log4j12'
+ }
+ compile("org.apache.hadoop:hadoop-common:$yarnVersion") {
+ exclude module: 'slf4j-log4j12'
+ exclude module: 'servlet-api'
+ exclude module: 'jetty'
+ exclude module: 'jetty-util'
+ }
+ compile("org.scalatra:scalatra_$scalaVersion:$scalatraVersion") {
+ exclude module: 'scala-compiler'
+ exclude module: 'slf4j-api'
+ }
+ compile("org.scalatra:scalatra-scalate_$scalaVersion:$scalatraVersion") {
+ exclude module: 'scala-compiler'
+ exclude module: 'slf4j-api'
+ }
+ testCompile "junit:junit:$junitVersion"
+ }
+
+ repositories {
+ maven {
+ url "http://repo.typesafe.com/typesafe/releases"
+ }
+ }
+}
+
+project(":samza-shell") {
+ apply plugin: 'java'
+
+ task shellTarGz(type: Tar) {
+ compression = Compression.GZIP
+ classifier = 'dist'
+ from 'src/main/bash'
+ }
+}
+
+project(":samza-kv_$scalaVersion") {
+ apply plugin: 'scala'
+
+ dependencies {
+ compile project(':samza-api')
+ compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.clapper:grizzled-slf4j_$scalaVersion:$grizzledVersion"
+ compile "org.fusesource.leveldbjni:leveldbjni-all:$leveldbVersion"
+ testCompile "junit:junit:$junitVersion"
+ }
+}
+
+project(":samza-test_$scalaVersion") {
+ apply plugin: 'scala'
+
+ dependencies {
+ compile project(':samza-api')
+ compile project(":samza-kv_$scalaVersion")
+ compile "org.scala-lang:scala-library:$scalaVersion"
+ compile "org.clapper:grizzled-slf4j_$scalaVersion:$grizzledVersion"
+ compile "net.sf.jopt-simple:jopt-simple:$joptSimpleVersion"
+ compile "javax.mail:mail:1.4"
+ compile files("../samza-kafka/lib/kafka_$scalaVersion-" + kafkaVersion + ".jar")
+ testCompile "junit:junit:$junitVersion"
+ testCompile files("../samza-kafka/lib/kafka_$scalaVersion-" + kafkaVersion + "-test.jar")
+ testCompile "com.101tec:zkclient:$zkClientVersion"
+ testCompile project(":samza-core_$scalaVersion")
+ testCompile project(":samza-kafka_$scalaVersion")
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/README.md
----------------------------------------------------------------------
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..0c1d55c
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,35 @@
+## Setup
+
+Samza's documentation uses Jekyll to build a website out of markdown pages. To install Jekyll, run this command:
+
+ sudo gem install jekyll redcarpet
+
+To run the website locally, execute:
+
+ jekyll serve --watch --host 0.0.0.0
+
+To compile the website in the _site directory, execute:
+
+ jekyll build
+
+## Versioning
+
+The "Learn" section of this website is versioned. To add a new version, copy the folder at the version number-level (0.7.0 to 0.8.0, for example).
+
+All links between pages inside a versioned folder should be relative links, not absolute.
+
+## Javadocs
+
+To auto-generate the latest Javadocs, run:
+
+ _tools/generate-javadocs.sh <version>
+
+The version number is the number that will be used in the /docs/learn/documentation/<version>/api/javadocs path.
+
+## Release
+
+To build and publish the website to Samza's Apache SVN repository, run:
+
+ _tools/publish-site.sh 0.7.0 "updating welcome page" criccomini
+
+This command will re-build the Javadocs and website, checkout https://svn.apache.org/repos/asf/incubator/samza/site/ locally, copy the site into the directory, and commit the changes.
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/_config.yml
----------------------------------------------------------------------
diff --git a/docs/_config.yml b/docs/_config.yml
new file mode 100644
index 0000000..bc84c84
--- /dev/null
+++ b/docs/_config.yml
@@ -0,0 +1,5 @@
+permalink: /:categories/:title
+name: Samza
+pygments: true
+markdown: redcarpet
+exclude: ['_notes']
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/_layouts/default.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html
new file mode 100644
index 0000000..da2f3cd
--- /dev/null
+++ b/docs/_layouts/default.html
@@ -0,0 +1,77 @@
+<html>
+ <head>
+ <title>Samza {% if page.title %}- {{page.title}}{% endif %}</title>
+ <link href="/css/main.css" rel="stylesheet"/>
+ <link href='http://fonts.googleapis.com/css?family=Ropa+Sans' rel='stylesheet' type='text/css'/>
+ <link href="http://netdna.bootstrapcdn.com/font-awesome/3.1.1/css/font-awesome.css" rel="stylesheet"/>
+ <link rel="icon" type="image/png" href="/img/samza-icon.png">
+ </head>
+ <body>
+ <div class="container">
+ <div class="container-inner">
+ <div class="header">
+ <div class="page">
+ <div class="logo">
+ <a href="/" class="logo">samza</a>
+ </div>
+ <div class="top-icons">
+ <a href="/startup/download"><i class="icon-download top-icon"></i></a>
+ <a href="http://git-wip-us.apache.org/repos/asf/incubator-samza.git" target="_blank"><i class="icon-code top-icon" style="font-weight: bold;"></i></a>
+ <a href="https://twitter.com/samzastream" target="_blank"><i class="icon-twitter top-icon"></i></a>
+ </div>
+ </div>
+ </div>
+
+ <div class="page">
+ <!-- menu -->
+ <div class="menu">
+ <div class="menu-inner">
+ <div class="menu-title"><i class="icon-rocket"></i> Getting Started</div>
+ <div class="menu-category">
+ <a href="/startup/hello-samza/0.7.0">Hello Samza</a><br/>
+ <a href="/startup/download">Download</a><br/>
+ </div>
+ <div class="menu-title"><i class="icon-book"></i> Learn</div>
+ <div class="menu-category">
+ <a href="/learn/documentation/0.7.0">Documentation</a><br/>
+ <a href="/learn/tutorials/0.7.0">Tutorials</a><br/>
+ FAQ<br/>
+ <a href="http://wiki.apache.org/samza">Wiki</a><br/>
+ Papers & Talks<br/>
+ </div>
+ <div class="menu-title"><i class="icon-comments"></i> Community</div>
+ <div class="menu-category">
+ <a href="/community/mailing-lists.html">Mailing Lists</a><br/>
+ <a href="/community/irc.html">IRC</a><br/>
+ <a href="https://issues.apache.org/jira/browse/SAMZA">Bugs</a><br/>
+ Powered by<br/>
+ Ecosystem<br/>
+ <a href="/community/committers.html">Committers</a>
+ </div>
+ <div class="menu-title"><i class="icon-code"></i> Contribute</div>
+ <div class="menu-category">
+ <a href="/contribute/rules.html">Rules</a><br/>
+ <a href="/contribute/coding-guide.html">Coding Guide</a><br/>
+ <a href="/contribute/projects.html">Projects</a><br/>
+ <a href="/contribute/seps.html">SEPs</a><br/>
+ <a href="/contribute/code.html">Code</a><br/>
+ <a href="https://reviews.apache.org/groups/samza">Review Board</a><br/>
+ <a href="https://builds.apache.org/">Unit Tests</a><br/>
+ <a href="/contribute/disclaimer.html">Disclaimer</a>
+ </div>
+ </div>
+ </div>
+ <!-- body -->
+ <div class="body">
+ {{content}}
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="footer">
+ <div class="page footer-content">
+ <!-- nothing for now. -->
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/_layouts/page.html
----------------------------------------------------------------------
diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html
new file mode 100644
index 0000000..007adf9
--- /dev/null
+++ b/docs/_layouts/page.html
@@ -0,0 +1,7 @@
+---
+layout: default
+---
+
+<h2>{{ page.title }}</h2>
+
+{{ content }}
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/_notes/TODO.md
----------------------------------------------------------------------
diff --git a/docs/_notes/TODO.md b/docs/_notes/TODO.md
new file mode 100644
index 0000000..5ce8301
--- /dev/null
+++ b/docs/_notes/TODO.md
@@ -0,0 +1,95 @@
+## TODO items
+
+* rename everything to samza
+* cut a 0.7 branch
+* release samza 0.7.0 snapshot to artifactory
+* docs
+ YARN
+ Fault tolerance
+ Security
+ * comparisons pages
+ * JMS
+ * Aurora
+ * JMS
+ * S4
+ * configuration update (make sure we have everything)
+ * add versioning link in docs page, so you can get to other version numbers
+* tutorials
+ * Configuring a Kafka System
+ * Configuring a YARN cluster
+ * Joining Streams
+ * Sorting a Stream
+ * Group-by and Counting
+ * Initializing and Closing
+ * Windowing
+ * Committing
+* add versioning link in docs page, so you can get to other version numbers
+
+## Rules/coding guideline/config brainstorm
+
+Before contributing to Samza, please have a look at the rules listed below.
+
+### Coding Style
+
+TODO add coding style rules for Java and Scala. Should look into enforcing them through Maven.
+
+### Metrics
+
+TODO we should add some metric rules here.
+
+### Configuration
+
+12. TODO When in Scala * how to handle null/none?
+
+```
+public interface MyConfig
+{
+ @Config("yarn.package.uri")
+ URI getYarnPackageUri();
+
+ @Config("systems.<system>.consumer.factory")
+ @Default()
+ Class<StreamConsumerFactory> getSystemsConsumerFactory(String systemName);
+
+ @Config("systems.<system>.*")
+ Map<String, String> getSystems(String systemName);
+}
+```
+
+<!-- https://github.com/brianm/config-magic -->
+
+Open:
+
+* We are mixing wiring and configuration together. How do other systems handle this?
+* We have fragmented configuration (anybody can define configuration). How do other systems handle this?
+* Want to do "best practices" configuration name validation at compile time (enforce rules outlined above).
+* How to handle getting of submaps? Should it return a config object, instead? If so, should it be typed? (e.g. config.getSubset("foo.bar.") = Config or config.getSubset("foo.bar.") = SystemConfig)
+
+Solved:
+
+* Want to auto-generate documentation based off of configuration.
+ @Description
+* Should support global defaults for a config property. Right now, we do config.getFoo.getOrElse() everywhere.
+ @Default
+* How to handle undefined configuration? How to make this interoperable with both Java and Scala (i.e. should we support Option in Scala)?
+ getInt("foo", null) or getInt("foo"); latter throws an exception if undefined. In Scala, Option(getInt("foo", null)) does the trick.
+* Should work with CFG2 and Java .properties files.
+* Should remain immutable.
+* Should remove implicits. Just confusing.
+ val kafkaConfig = new KafkaConfig(config)
+ val systemConfig = new SystemConfig(config)
+
+```
+public interface MyConfig
+{
+ @Config("yarn.package.uri")
+ URI getYarnPackageUri();
+
+ @Config("systems.<system>.consumer.factory")
+ @Default()
+ Class<StreamConsumerFactory> getSystemsConsumerFactory(String systemName);
+
+ @Config("systems.<system>.*")
+ Map<String, String> getSystems(String systemName);
+}
+```
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/_tools/generate-javadocs.sh
----------------------------------------------------------------------
diff --git a/docs/_tools/generate-javadocs.sh b/docs/_tools/generate-javadocs.sh
new file mode 100755
index 0000000..4beb55e
--- /dev/null
+++ b/docs/_tools/generate-javadocs.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+BASE_DIR=$DIR/../..
+VERSION=$1
+JAVADOC_DIR=$BASE_DIR/docs/learn/documentation/$VERSION/api/javadocs
+
+if test -z "$VERSION"; then
+ echo
+ echo " USAGE:"
+ echo
+ echo " ${BASH_SOURCE[0]##*/} 0.7.0"
+ echo
+ exit 0
+fi
+
+cd $BASE_DIR
+./gradlew javadoc
+rm -rf $JAVADOC_DIR
+mkdir -p $JAVADOC_DIR
+cp -r $BASE_DIR/samza-api/build/docs/javadoc/* $JAVADOC_DIR
+git add $JAVADOC_DIR
+cd -
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/_tools/publish-site.sh
----------------------------------------------------------------------
diff --git a/docs/_tools/publish-site.sh b/docs/_tools/publish-site.sh
new file mode 100755
index 0000000..285c9e7
--- /dev/null
+++ b/docs/_tools/publish-site.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+BASE_DIR=$DIR/../..
+DOCS_DIR=$BASE_DIR/docs
+VERSION=$1
+COMMENT=$2
+USER=$3
+
+if test -z "$VERSION" || test -z "$COMMENT" || test -z "$USER"; then
+ echo
+ echo " USAGE:"
+ echo
+ echo " ${BASH_SOURCE[0]##*/} 0.7.0 \"updating welcome page\" criccomini"
+ echo
+ exit 0
+fi
+
+echo "Using uer: $USER"
+echo "Using version: $VERSION"
+echo "Using comment: $COMMENT"
+echo "Generating javadocs."
+$DOCS_DIR/_tools/generate-javadocs.sh $VERSION
+
+echo "Building site."
+cd $DOCS_DIR
+jekyll build
+
+echo "Checking out SVN site."
+SVN_TMP=`mktemp -d /tmp/samza-svn.XXXX`
+svn co https://svn.apache.org/repos/asf/incubator/samza/ $SVN_TMP
+cp -r _site/* $SVN_TMP/site/
+svn add --force $SVN_TMP/site
+svn commit $SVN_TMP -m"$COMMENT" --username $USER
+rm -rf $SVN_TMP
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/community/committers.md
----------------------------------------------------------------------
diff --git a/docs/community/committers.md b/docs/community/committers.md
new file mode 100644
index 0000000..a240978
--- /dev/null
+++ b/docs/community/committers.md
@@ -0,0 +1,46 @@
+---
+layout: page
+title: Committers
+---
+
+**Jakob Homan**<br/>
+Apache Member, Committer, and PMC member<br/>
+<a href="http://www.linkedin.com/in/jghoman" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="http://twitter.com/blueboxtraveler" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+**Jay Kreps**<br/>
+Committer, and PMC member<br/>
+<a href="http://www.linkedin.com/in/jaykreps" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="http://twitter.com/jaykreps" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+**Chris Riccomini**<br/>
+Committer, and PMC member<br/>
+<a href="http://www.linkedin.com/in/riccomini" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="http://twitter.com/criccomini" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+**Sriram Subramanian**<br/>
+Committer, and PMC member<br/>
+<a href="http://www.linkedin.com/pub/sriram-subramanian/3/52a/162" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="http://twitter.com/sriramsub1" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+### Mentors
+
+**Chris Douglas**<br/>
+Apache Member<br/>
+<a href="http://www.linkedin.com/pub/chris-douglas/1/33a/733" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="https://twitter.com/chris_douglas" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+**Jakob Homan**<br/>
+Apache Member, Committer, and PMC member<br/>
+<a href="http://www.linkedin.com/in/jghoman" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="http://twitter.com/blueboxtraveler" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+**Arun C Murthy**<br/>
+Apache Member<br/>
+<a href="http://www.linkedin.com/in/acmurthy" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="https://twitter.com/acmurthy" target="_blank"><i class="icon-twitter committer-icon"></i></a>
+
+**Roman Shaposhnik**<br/>
+Apache Incubator PMC Member<br/>
+<a href="http://www.linkedin.com/in/shaposhnik" target="_blank"><i class="icon-linkedin committer-icon"></i></a>
+<a href="https://twitter.com/rhatr" target="_blank"><i class="icon-twitter committer-icon"></i></a>
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/community/irc.md
----------------------------------------------------------------------
diff --git a/docs/community/irc.md b/docs/community/irc.md
new file mode 100644
index 0000000..ac191e5
--- /dev/null
+++ b/docs/community/irc.md
@@ -0,0 +1,12 @@
+---
+layout: page
+title: IRC
+---
+
+We have an IRC channel where there is often a few people hanging around if you want an interactive discussion. You can find us on chat.freenode.net in #samza room.
+
+### WebIRC
+
+To talk to us right now, just enter a username, and set the channel to #samza, below.
+
+<iframe src="http://webchat.freenode.net/?channels=channel_name" style="width: 100%; height: 500px; border: none;"></iframe>
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/community/mailing-lists.md
----------------------------------------------------------------------
diff --git a/docs/community/mailing-lists.md b/docs/community/mailing-lists.md
new file mode 100644
index 0000000..b44dadd
--- /dev/null
+++ b/docs/community/mailing-lists.md
@@ -0,0 +1,16 @@
+---
+layout: page
+title: Mailing Lists
+---
+
+<!-- TODO update with links to real mailing lists when apache gives them to us. -->
+
+<!-- TODO update searchable links when we have them (see kafka page). -->
+
+We have a few mailing lists hosted by Apache:
+
+* **dev@samza.incubator.apache.org** <small>([subscribe](mailto:dev-subscribe@samza.incubator.apache.org), [unsubscribe](mailto:dev-unsubscribe@samza.incubator.apache.org))</small><br/>
+ A list for discussion on Samza development. Email here for help.
+
+* **commits@samza.incubator.apache.org** <small>([subscribe](mailto:commits-subscribe@samza.incubator.apache.org), [unsubscribe](mailto:commits-unsubscribe@samza.incubator.apache.org))</small><br/>
+ A list to track Samza commits.
http://git-wip-us.apache.org/repos/asf/incubator-samza/blob/5ff71e51/docs/contribute/code.md
----------------------------------------------------------------------
diff --git a/docs/contribute/code.md b/docs/contribute/code.md
new file mode 100644
index 0000000..f580969
--- /dev/null
+++ b/docs/contribute/code.md
@@ -0,0 +1,16 @@
+---
+layout: page
+title: Code
+---
+
+Samza's code is in an Apache Git repository located [here](https://git-wip-us.apache.org/repos/asf?p=incubator-samza.git;a=tree).
+
+You can check out Samza's code by running:
+
+```
+git clone http://git-wip-us.apache.org/repos/asf/incubator-samza.git
+````
+
+If you are a committer you need to use https instead of http to check in.
+
+Please see the [Rules](rules.html) page for information on how to contribute.