Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

FLUME-296: Mavenize Flume

  • Loading branch information...
commit 996f7ae43d34f1e63a2bc896a2c3eb0be20204ad 1 parent eed510a
@esammer esammer authored
Showing with 538 additions and 1,289 deletions.
  1. +1 −0  .gitignore
  2. +5 −2 README
  3. +0 −1,233 build.xml
  4. +15 −0 conf/flume-conf.xml
  5. +4 −0 flume-config-web/.gitignore
  6. +96 −0 flume-config-web/pom.xml
  7. +11 −6 {src → flume-config-web/src/main}/java/com/cloudera/flume/master/CommandManagerResource.java
  8. +4 −1 {src → flume-config-web/src/main}/java/com/cloudera/flume/master/ConfigManagerResource.java
  9. +3 −1 {src → flume-config-web/src/main}/java/com/cloudera/flume/master/FlumeMasterResource.java
  10. +5 −1 {src → flume-config-web/src/main}/java/com/cloudera/flume/master/MasterAckManagerResource.java
  11. +4 −1 {src → flume-config-web/src/main}/java/com/cloudera/flume/master/StatusManagerResource.java
  12. +7 −0 flume-config-web/src/main/webapp/WEB-INF/jetty-web.xml
  13. +21 −0 flume-config-web/src/main/webapp/WEB-INF/web.xml
  14. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/allcommands.jsp
  15. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/command.jsp
  16. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/flume.css
  17. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/flumeconfig.jsp
  18. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/flumemaster.jsp
  19. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/fullspec.jsp
  20. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/index.html
  21. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/mastercommand.jsp
  22. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/masterenv.jsp
  23. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/masterext.jsp
  24. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/masterstaticconfig.jsp
  25. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/mastersubmit.jsp
  26. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/menu.jsp
  27. 0  {src/webapps/flumeconfig → flume-config-web/src/main/webapp}/version.jsp
  28. +4 −0 flume-core/.gitignore
  29. +310 −0 flume-core/pom.xml
  30. 0  {src/antlr → flume-core/src/main/antlr3}/com/cloudera/flume/conf/FlumeDeploy.g
  31. 0  {src → flume-core/src/main/antlr3/com/cloudera/flume/shell}/antlr/FlumeShell.g
  32. 0  {src → flume-core/src/main}/avro/avroflumereport.avsc
  33. 0  {src → flume-core/src/main}/avro/flume.avdl
  34. 0  {src → flume-core/src/main}/avro/flumeconfig.avdl
  35. 0  {src → flume-core/src/main}/avro/flumereportserver.avdl
  36. 0  {src → flume-core/src/main}/avro/mastercontrol.avdl
  37. 0  src/javatest/empty-file → flume-core/src/main/java/.gitignore
  38. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/GossipMulticast.java
  39. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/Group.java
  40. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/Message.java
  41. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/MessageReceiver.java
  42. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/Multicast.java
  43. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/NodeId.java
  44. 0  {src → flume-core/src/main}/java/com/cloudera/distributed/TCPNodeId.java
  45. 0  {src → flume-core/src/main}/java/com/cloudera/flume/FlumeVersionAnnotation.java
  46. 0  {src → flume-core/src/main}/java/com/cloudera/flume/VersionInfo.java
  47. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/AgentFailChainSink.java
  48. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/AgentSink.java
  49. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/AvroMasterRPC.java
  50. +16 −30 {src → flume-core/src/main}/java/com/cloudera/flume/agent/FlumeNode.java
  51. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/FlumeNodeDaemon.java
  52. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/FlumeNodeWALNotifier.java
  53. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/LivenessManager.java
  54. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/LogicalNode.java
  55. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/LogicalNodeManager.java
  56. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/MasterRPC.java
  57. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/MemoryMonitor.java
  58. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/MultiMasterRPC.java
  59. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/ThriftMasterRPC.java
  60. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/WALAckManager.java
  61. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/diskfailover/DiskFailoverDeco.java
  62. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/diskfailover/DiskFailoverManager.java
  63. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/diskfailover/DiskFailoverSource.java
  64. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/diskfailover/NaiveFileFailoverManager.java
  65. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/durability/NaiveFileWALDeco.java
  66. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/durability/NaiveFileWALManager.java
  67. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/durability/WALCompletionNotifier.java
  68. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/durability/WALManager.java
  69. 0  {src → flume-core/src/main}/java/com/cloudera/flume/agent/durability/WALSource.java
  70. 0  {src → flume-core/src/main}/java/com/cloudera/flume/collector/CollectorSink.java
  71. 0  {src → flume-core/src/main}/java/com/cloudera/flume/collector/CollectorSource.java
  72. 0  {src → flume-core/src/main}/java/com/cloudera/flume/collector/CopyToHdfs.java
  73. 0  {src → flume-core/src/main}/java/com/cloudera/flume/collector/SequenceFileMerger.java
  74. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/Context.java
  75. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeArgException.java
  76. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeBuilder.java
  77. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeConfigData.java
  78. +18 −0 {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeConfiguration.java
  79. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeIdException.java
  80. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumePatterns.java
  81. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeSpecException.java
  82. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/FlumeSpecGen.java
  83. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/LinkedSinkFactory.java
  84. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/LogicalNodeContext.java
  85. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/PatternMatch.java
  86. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/ReportTestingContext.java
  87. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/RuntimeRecognitionException.java
  88. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/SinkFactory.java
  89. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/SinkFactoryImpl.java
  90. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/SourceFactory.java
  91. 0  {src → flume-core/src/main}/java/com/cloudera/flume/conf/SourceFactoryImpl.java
  92. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/Attributes.java
  93. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/BackOffFailOverSink.java
  94. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/CompositeSink.java
  95. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/DemuxSink.java
  96. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/DigestDecorator.java
  97. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/Driver.java
  98. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/DriverListener.java
  99. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/Event.java
  100. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventBaseImpl.java
  101. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventException.java
  102. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventImpl.java
  103. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventSink.java
  104. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventSinkDecorator.java
  105. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventSource.java
  106. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/EventUtil.java
  107. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/FailOverSink.java
  108. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/FanOutSink.java
  109. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/FormatterDecorator.java
  110. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/MaskDecorator.java
  111. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/PollingSource.java
  112. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/SelectDecorator.java
  113. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/connector/DirectDriver.java
  114. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/extractors/DateExtractor.java
  115. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/extractors/RegexAllExtractor.java
  116. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/extractors/RegexExtractor.java
  117. 0  {src → flume-core/src/main}/java/com/cloudera/flume/core/extractors/SplitExtractor.java
  118. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/AvroDataFileOutputFormat.java
  119. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/AvroEventAdaptor.java
  120. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/AvroEventSink.java
  121. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/AvroEventSource.java
  122. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/AvroJsonOutputFormat.java
  123. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/AvroNativeFileOutputFormat.java
  124. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/avro/FlumeEventAvroServerImpl.java
  125. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/batch/BatchingDecorator.java
  126. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/batch/GunzipDecorator.java
  127. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/batch/GzipDecorator.java
  128. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/batch/UnbatchingDecorator.java
  129. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/console/JLineStdinSource.java
  130. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/AttrSynthSource.java
  131. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/BenchmarkInjectDecorator.java
  132. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/BenchmarkReportDecorator.java
  133. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/BloomCheckDecorator.java
  134. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/BloomGeneratorDeco.java
  135. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/ChokeDecorator.java
  136. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/ChokeInfoData.java
  137. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/ChokeManager.java
  138. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/ConsoleEventSink.java
  139. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/DelayDecorator.java
  140. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/FlakeyEventSink.java
  141. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/InMemoryDecorator.java
  142. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/InsistentAppendDecorator.java
  143. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/InsistentOpenDecorator.java
  144. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/IntervalDroppyEventSink.java
  145. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/IntervalFlakeyEventSink.java
  146. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/LatchedDecorator.java
  147. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/LazyOpenDecorator.java
  148. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/LazyOpenSource.java
  149. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/Log4jTextFileSource.java
  150. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/MemorySinkSource.java
  151. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/MultiplierDecorator.java
  152. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/NoNlASCIISynthSource.java
  153. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/NoNlSynthSource.java
  154. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/NullSink.java
  155. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/NullSource.java
  156. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/StdinSource.java
  157. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/StubbornAppendSink.java
  158. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/SynthSource.java
  159. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/SynthSourceRndSize.java
  160. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/TextFileSink.java
  161. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/TextFileSource.java
  162. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/debug/TextReaderSource.java
  163. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/endtoend/AckChecksumChecker.java
  164. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/endtoend/AckChecksumInjector.java
  165. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/endtoend/AckListener.java
  166. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/endtoend/CollectorAckListener.java
  167. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/endtoend/ReorderDecorator.java
  168. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/endtoend/ValueDecorator.java
  169. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/exec/ExecNioSource.java
  170. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/CustomDfsSink.java
  171. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/DFSEventSink.java
  172. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/EscapedCustomDfsSink.java
  173. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/SeqfileEventSink.java
  174. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/SeqfileEventSource.java
  175. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/WriteableEvent.java
  176. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hdfs/WriteableEventKey.java
  177. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hive/HiveDirCreatedHandler.java
  178. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hive/HiveDirCreatedNotification.java
  179. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hive/HiveNotifyingDfsSink.java
  180. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/hive/SinkCloseNotifier.java
  181. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/irc/IrcSink.java
  182. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/irc/IrcSource.java
  183. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/log4j/FlumeSeqfileAppender.java
  184. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/log4j/Log4JAppenderEventSink.java
  185. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/log4j/Log4JEventAdaptor.java
  186. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/log4j/Log4JInjector.java
  187. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/log4j/SeqfileAppender.java
  188. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rolling/ProcessTagger.java
  189. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rolling/RollSink.java
  190. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rolling/RollTrigger.java
  191. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rolling/SizeTrigger.java
  192. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rolling/Tagger.java
  193. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rolling/TimeTrigger.java
  194. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rpc/RpcSink.java
  195. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/rpc/RpcSource.java
  196. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/scribe/ScribeEventSource.java
  197. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/syslog/SyslogConsts.java
  198. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/syslog/SyslogTcpSink.java
  199. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/syslog/SyslogTcpSource.java
  200. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/syslog/SyslogTcpSourceThreads.java
  201. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/syslog/SyslogUdpSource.java
  202. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/syslog/SyslogWireExtractor.java
  203. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/ApacheAccessLogFormat.java
  204. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/Cursor.java
  205. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/CustomDelimCursor.java
  206. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/EventExtractException.java
  207. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/Extractor.java
  208. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/FormatFactory.java
  209. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/InputFormat.java
  210. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/SyslogEntryFormat.java
  211. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/TailDirSource.java
  212. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/TailSource.java
  213. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/output/AbstractOutputFormat.java
  214. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/output/DebugOutputFormat.java
  215. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/output/JsonOutputFormat.java
  216. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/output/Log4jOutputFormat.java
  217. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/output/OutputFormat.java
  218. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/text/output/RawOutputFormat.java
  219. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/thrift/PrioritizedThriftEventSource.java
  220. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/thrift/TStatsTransport.java
  221. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/thrift/ThriftEventAdaptor.java
  222. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/thrift/ThriftEventSink.java
  223. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/thrift/ThriftEventSource.java
  224. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/thrift/ThriftFlumeEventServerImpl.java
  225. 0  {src → flume-core/src/main}/java/com/cloudera/flume/handlers/twitter/TwitterStreamSource.java
  226. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/Command.java
  227. +4 −0 {src → flume-core/src/main}/java/com/cloudera/flume/master/CommandManager.java
  228. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/CommandStatus.java
  229. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ConfigCommand.java
  230. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ConfigManager.java
  231. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ConfigStore.java
  232. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ConfigurationManager.java
  233. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/Execable.java
  234. +10 −14 {src → flume-core/src/main}/java/com/cloudera/flume/master/FlumeMaster.java
  235. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/FlumeNodeSpec.java
  236. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/GossipedMasterAckManager.java
  237. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/LoadConfigCommand.java
  238. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterAckManager.java
  239. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterAdminServer.java
  240. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterAdminServerAvro.java
  241. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterAdminServerThrift.java
  242. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterClientRPC.java
  243. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterClientServer.java
  244. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterClientServerAvro.java
  245. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterClientServerThrift.java
  246. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MasterExecException.java
  247. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MemoryBackedConfigStore.java
  248. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/MultiConfigCommand.java
  249. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/RPCServer.java
  250. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/SaveConfigCommand.java
  251. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/StatusManager.java
  252. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/TranslatingConfigurationManager.java
  253. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/Translator.java
  254. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ZKClient.java
  255. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ZKInProcessServer.java
  256. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ZooKeeperConfigStore.java
  257. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ZooKeeperCounter.java
  258. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/ZooKeeperService.java
  259. 0  ...r; flume-core/src/main}/java/com/cloudera/flume/master/availability/ConsistentHashFailoverChainManager.java
  260. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/availability/FailoverChainManager.java
  261. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/availability/FailoverChainSink.java
  262. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/availability/RandomFailoverChainManager.java
  263. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/CreateLogicalNodeForm.java
  264. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/DecommissionLogicalNodeForm.java
  265. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/GenericCommand.java
  266. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/PurgeAllCommand.java
  267. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/PurgeCommand.java
  268. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/RefreshAllCommand.java
  269. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/RefreshCommand.java
  270. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/SetChokeLimitForm.java
  271. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/UnconfigCommand.java
  272. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/UnmapLogicalNodeForm.java
  273. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/commands/UpdateAllCommand.java
  274. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/failover/FailoverConfigurationManager.java
  275. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/flows/FlowConfigManager.java
  276. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/logical/LogicalConfigurationManager.java
  277. 0  {src → flume-core/src/main}/java/com/cloudera/flume/master/logical/LogicalNameManager.java
  278. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/MasterReportPusher.java
  279. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/MultiReporter.java
  280. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/ReportEvent.java
  281. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/ReportManager.java
  282. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/ReportUtil.java
  283. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/Reportable.java
  284. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/aggregator/AccumulatorSink.java
  285. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/aggregator/CounterSink.java
  286. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/builder/MultiGrepReporterBuilder.java
  287. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/builder/ReporterBuilder.java
  288. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/builder/SimpleRegexReporterBuilder.java
  289. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/charts/ChartPackage.java
  290. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/charts/google/GoogleChartPackage.java
  291. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/charts/google/GoogleHistogramChartGen.java
  292. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/charts/google/GoogleTimelineChartGen.java
  293. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/ganglia/GangliaSink.java
  294. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/histogram/HistogramChartGen.java
  295. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/histogram/HistogramSink.java
  296. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/histogram/MultiGrepReporterSink.java
  297. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/histogram/RegexGroupHistogramSink.java
  298. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/history/CountHistoryReporter.java
  299. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/history/DumbTagger.java
  300. 0  {src → flume-core/src/main}/java/com/cloudera/flume/reporter/history/HistoryReporter.java
Sorry, we could not display the entire diff because too many files (895) changed.
View
1  .gitignore
@@ -19,3 +19,4 @@ src/avro/*.avpr
/docs/
.eclipse
pmd_report.html
+target
View
7 README
@@ -39,6 +39,9 @@ h2. Compiling Flume
Compiling Flume requires the following tools:
* Java JDK 1.6
-* Apache ant (1.7.1)
+* Apache Maven
-To compile Flume, run `ant`.
+To compile Flume, run `mvn compile`.
+To build a distribution, run `mvn package`.
+
+The final Flume distribution artifact will be in $project/flume-distribution/target/.
View
1,233 build.xml
@@ -1,1233 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
- 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.
--->
-
-<!--
-Before you can run these subtargets directly, you need
-to call at top-level: ant deploy-contrib compile-core-test
--->
-<project name="flume" default="jar-test" xmlns:ivy="antlib:org.apache.ivy.ant">
- <taskdef resource="net/sf/antcontrib/antcontrib.properties">
- <classpath>
- <pathelement location="${basedir}/libbuild/ant-contrib-1.0b3.jar"/>
- </classpath>
- </taskdef>
- <property name="name" value="flume"/>
- <property name="version.major" value="0"/>
- <property name="version.minor" value="9"/>
- <property name="version.rev" value="3"/>
- <property name="version.numbers" value="${version.major}.${version.minor}.${version.rev}"/>
- <property name="version" value="${version.numbers}"/>
- <property name="final.name" value="${name}-${version}"/>
- <property name="year" value="2009-2011"/>
-
- <property name="build.dir" value="${basedir}/build"/>
- <property name="build.src" value="${build.dir}/src"/>
- <property name="build.classes" value="${build.dir}/classes"/>
- <property name="build.encoding" value="ISO-8859-1"/>
- <property name="build.test" value="${build.dir}/test"/>
- <property name="build.docs" value="${basedir}/docs" />
- <property name="build.javadoc" value="${build.docs}/api" />
-
- <property name="build.perf" value="${build.dir}/perf"/>
- <property name="perf.src.dir" value="${basedir}/src/javaperf"/>
- <property name="perf.build.dir" value="${build.dir}/perf"/>
- <property name="perf.output" value="yes"/>
-
- <property environment="env"/>
- <property name="src.dir" value="${basedir}/src/"/>
- <property name="core.src.dir" value="${src.dir}/java"/>
- <property name="antlr.src.dir" value="${src.dir}/antlr"/>
- <property name="test.src.dir" value="${src.dir}/javatest"/>
- <property name="perf.src.dir" value="${src.dir}/javaperf"/>
- <property name="docs.dir" value="${basedir}/docs/"/>
- <property name="docs.src.dir" value="${src.dir}/docs"/>
- <property name="conf.dir" value="${basedir}/conf"/>
- <property name="data.dir" value="${src.dir}/data"/>
- <property name="perf.data.dir" value="${src.dir}/javaperf/data"/>
-
- <property name="build.webapps" value="${build.dir}/webapps"/>
- <property name="src.webapps" value="${basedir}/src/webapps"/>
-
- <property name="avro.src.dir" value="${src.dir}/avro"/>
- <property name="avro.gen.dir" value="${basedir}/src/avro-gen-java" />
-
- <property name="thrift.src.dir" value="${src.dir}/thrift"/>
- <property name="thrift.gen.dir" value="${basedir}/src/gen-java"/>
- <property name="thrift.event.package" value="com/cloudera/flume/handlers/thrift"/>
- <property name="thrift.config.package" value="com/cloudera/flume/conf/thrift"/>
- <property name="thrift.admin.package" value="com/cloudera/flume/conf/thrift"/>
- <property name="thrift.scribe.package" value="com/cloudera/flume/handlers/scribe"/>
- <property name="test.src.dir" value="${basedir}/src/javatest"/>
- <property name="test.build.dir" value="${build.dir}/test"/>
- <property name="test.generated.dir" value="${test.build.dir}/src"/>
- <property name="test.build.data" value="${test.build.dir}/data"/>
- <property name="test.log.dir" value="${test.build.dir}/logs"/>
- <property name="test.build.classes" value="${test.build.dir}/classes"/>
- <property name="test.include" value="Test*"/>
- <property name="test.exclude.file" value="${test.src.dir}/empty-file"/>
- <property name="test.include.file" value="${test.src.dir}/all-tests-file"/>
- <property name="test.classpath.id" value="test.classpath"/>
- <property name="test.output" value="no"/>
- <property name="test.timeout" value="900000"/>
- <property name="test.junit.output.format" value="plain"/>
-
- <property name="lib.dir" value="${basedir}/lib"/>
- <property name="test.lib.dir" value="${basedir}/libtest"/>
- <property name="build.lib.dir" value="${basedir}/libbuild"/>
-
-
- <property name="javac.debug" value="on"/>
- <property name="javac.optimize" value="on"/>
- <property name="javac.deprecation" value="off"/>
- <property name="javac.version" value="1.5"/>
- <property name="javac.args" value=""/>
- <property name="javac.args.warnings" value="-Xlint:unchecked"/>
-
- <property name="ivy.version" value="2.1.0"/>
- <property name="ivy.url"
- value="http://repo2.maven.org/maven2/org/apache/ivy/ivy" />
- <property name="ivy.home" value="${user.home}/.ant" />
- <!-- for now ivy.lib and ivy.test.lib stay at legacy location -->
- <property name="ivy.lib" value="${lib.dir}"/>
- <property name="ivy.test.lib" value="${test.lib.dir}"/>
- <property name="ivy.tools.lib" value="${build.dir}/libtools"/>
-
- <!-- eclipse property set -->
- <property name="build.dir.eclipse" value=".eclipse"/>
- <property name="build.dir.eclipse-main-classes" value="${build.dir.eclipse}/classes-main"/>
- <property name="build.dir.eclipse-test-classes" value="${build.dir.eclipse}/classes-test"/>
-
- <!-- javadoc properties -->
- <property name="javadoc.link.java" value="http://java.sun.com/j2se/1.6.0/docs/api/" />
-
- <!-- version info filters set -->
- <tstamp>
- <format property="year" pattern="yyyy" locale="en"/>
- </tstamp>
-
-
- <filterset id="version.filters">
- <filter token="YEAR" value="${year}" />
- <filter token="VERSION" value="${version}"/>
- <filter token="VERSION_NUMBER" value="${version.numbers}.0"/>
- <filter token="VERSION_MAJOR_MINOR" value="${version.numbers}"/>
- <filter token="VERSION_MAJOR" value="${version.major}.${version.minor}"/>
- </filterset>
-
- <path id="libs.classpath">
- <pathelement location="${conf.dir}"/>
- <fileset dir="${lib.dir}">
- <include name="**/*.jar" />
- <exclude name="**/excluded/" />
- </fileset>
- <fileset dir="${build.lib.dir}">
- <include name="**/*.jar" />
- <exclude name="**/excluded/" />
- <exclude name="**/avro-tools*.jar" />
- </fileset>
- </path>
-
- <!-- the normal classpath -->
- <path id="classpath">
- <pathelement location="${build.classes}"/>
- <path refid="libs.classpath"/>
- </path>
-
- <!-- the unit test classpath: uses test.src.dir for configuration -->
- <path id="test.classpath">
- <pathelement location="${test.build.classes}" />
- <pathelement location="${test.src.dir}"/>
- <pathelement location="${build.dir}"/>
- <fileset dir="${test.lib.dir}">
- <include name="**/*.jar" />
- <exclude name="**/excluded/" />
- </fileset>
- <path refid="classpath"/>
- </path>
-
- <!-- the tools classpath -->
- <path id="tools.classpath">
- <fileset dir="${ivy.tools.lib}">
- <include name="**/*.jar" />
- </fileset>
- </path>
-
-
- <target name="init">
- <mkdir dir="${build.dir}"/>
- <mkdir dir="${build.dir}/flume"/>
- <mkdir dir="${build.classes}"/>
- <mkdir dir="${test.build.dir}"/>
- <mkdir dir="${test.build.classes}"/>
- <mkdir dir="${thrift.gen.dir}"/>
- <mkdir dir="${avro.gen.dir}" />
- <mkdir dir="${basedir}/libtest"/>
- <mkdir dir="${build.docs}"/>
- <mkdir dir="${build.docs}/DeveloperGuide"/>
- <mkdir dir="${build.docs}/UserGuide"/>
- <mkdir dir="${build.docs}/Cookbook"/>
- <mkdir dir="${build.docs}/Windows"/>
- <mkdir dir="${ivy.tools.lib}"/>
-
- <condition property="ivy.jar.exists">
- <available file="${lib.dir}/ivy-${ivy.version}.jar"/>
- </condition>
-
- <mkdir dir="${perf.build.dir}"/>
-
- <mkdir dir="${build.webapps}/flumeconfig/WEB-INF"/>
- <mkdir dir="${build.webapps}/flumeagent/WEB-INF"/>
-
- <mkdir dir="${build.dir}/test/src/data"/>
- <copy todir="${build.dir}/test/src/data">
- <fileset dir="${data.dir}" includes="**/*"/>
- </copy>
-
- <!-- copy all of the jsp and static files -->
- <copy todir="${build.webapps}">
- <fileset dir="${src.webapps}">
- <exclude name="**/*.jsp" />
- </fileset>
- </copy>
-
- </target>
-
- <target name="ivy-download" unless="ivy.jar.exists" depends="init">
- <delete dir="${lib.dir}"
- includes="ivy-*.jar" excludes="ivy-${ivy.version}.jar"/>
- <get src="${ivy.url}/${ivy.version}/ivy-${ivy.version}.jar"
- dest="${lib.dir}/ivy-${ivy.version}.jar" usetimestamp="true"/>
- </target>
-
- <target name="ivy-taskdef" unless="ivy.initialized">
- <taskdef resource="org/apache/ivy/ant/antlib.xml"
- uri="antlib:org.apache.ivy.ant" classpathref="classpath"/>
- <!-- ensure that ivy taskdef is only run once, otw ant will error -->
- <property name="ivy.initialized" value="true"/>
- </target>
-
- <target name="ivy-init" depends="ivy-download,ivy-taskdef"/>
-
- <target name="ivy-retrieve" depends="init,ivy-init">
- <ivy:retrieve type="jar" conf="default"
- pattern="${ivy.lib}/[artifact]-[revision].[ext]"/>
- </target>
-
- <target name="ivy-retrieve-test" depends="init,ivy-init">
- <ivy:retrieve type="jar" conf="test"
- pattern="${ivy.test.lib}/[artifact]-[revision].[ext]"/>
- </target>
-
- <target name="ivy-retrieve-findbugs" depends="init,ivy-init">
- <ivy:retrieve type="jar" conf="findbugs"
- pattern="${ivy.tools.lib}/[artifact]-[revision].[ext]"/>
- </target>
-
- <target name="ivy-retrieve-pmd" depends="init,ivy-init">
- <ivy:retrieve type="jar" conf="pmd"
- pattern="${ivy.tools.lib}/[artifact]-[revision].[ext]"/>
- </target>
-
- <target name="ivy-retrieve-coverage" depends="init,ivy-init">
- <ivy:retrieve type="jar" conf="coverage"
- pattern="${ivy.tools.lib}/[artifact]-[revision].[ext]"/>
- </target>
-
- <target name="ivy-retrieve-releaseaudit" depends="init,ivy-init">
- <ivy:retrieve type="jar" conf="releaseaudit"
- pattern="${ivy.tools.lib}/[artifact]-[revision].[ext]"/>
- <ivy:cachepath pathid="releaseaudit-classpath" conf="releaseaudit"/>
- </target>
-
- <target name="ivy-retrieve-all"
- depends="ivy-retrieve,ivy-retrieve-test,ivy-retrieve-findbugs,ivy-retrieve-pmd,ivy-retrieve-coverage,ivy-retrieve-releaseaudit" />
-
-
-
- <!-- ================================================================== -->
- <!-- Build antlr stuff for specs -->
- <!-- ================================================================== -->
- <fileset id="antlr.files" dir="${src.dir}/antlr">
- <include name="**/FlumeDeploy.g"/>
- </fileset>
-
- <!-- Determine if antlr generated java is up to date -->
- <target name="antlr-init">
- <dependset>
- <srcfileset refid="antlr.files"/>
- <targetfileset dir = "${antlr.src.dir}/com/cloudera/flume/conf/">
- <include name="**/flume/conf/*.java"/>
- <include name="src/java/com/cloudera/flume/conf/RuntimeRecognitionException.java"/>
- </targetfileset>
- </dependset>
- <uptodate property="antlr.uptodate"
- srcfile="${antlr.src.dir}/com/cloudera/flume/conf/FlumeDeploy.g"
- targetfile="${basedir}/src/gen-java/com/cloudera/flume/conf/FlumeDeployLexer.java"
- />
- </target>
-
- <!-- Generate antlr java -->
- <target name="antlr-gen" depends="antlr-init" unless="antlr.uptodate">
- <pathconvert property="antlr.file.list" refid="antlr.files"
- pathsep=" " dirsep="/">
- </pathconvert>
- <echo message="Running antlr parser generator on ${antlr.files}"/>
-
- <!-- TODO(jon) consider replacing this with a java-specific task
- or antlr-specific task -->
- <exec executable="java" dir="${basedir}" failonerror="true">
- <arg line="-cp lib/antlr-3.1.3.jar org.antlr.Tool ${antlr.file.list} -o ${basedir}/src/gen-java/com/cloudera/flume/conf"/>
- </exec>
- </target>
-
- <!-- ================================================================== -->
- <!-- Build antlr stuff for shell -->
- <!-- ================================================================== -->
-
- <fileset id="antlr.shell.files" dir="${src.dir}/antlr">
- <include name="**/FlumeShell.g"/>
- </fileset>
- <!-- Determine if antlr generated java is up to date -->
- <target name="antlr-shell-init">
- <dependset>
- <srcfileset refid="antlr.shell.files"/>
- <targetfileset dir = "${antlr.src.dir}/com/cloudera/flume/shell/antlr/">
- <include name="**/shell/antlr/*.java"/>
- </targetfileset>
- </dependset>
- <uptodate property="antlr.shell.uptodate"
- srcfile="${antlr.src.dir}/FlumeShell.g"
- targetfile="${basedir}/src/gen-java/com/cloudera/flume/shell/antlr/FlumeShellParser.java"
- />
- </target>
-
- <!-- Generate antlr java -->
- <target name="antlr-shell-gen" depends="antlr-shell-init" unless="antlr.shell.uptodate">
- <pathconvert property="antlr.shell.file.list" refid="antlr.shell.files"
- pathsep=" " dirsep="/">
- </pathconvert>
- <echo message="Running antlr parser generator on ${antlr.shell.file.list}"/>
-
- <!-- TODO(jon) consider replacing this with a java-specific task
- or antlr-specific task -->
- <exec executable="java" dir="${basedir}" failonerror="true">
-<arg line="-cp lib/antlr-3.1.3.jar org.antlr.Tool ${antlr.shell.file.list} -o ${basedir}/src/gen-java/com/cloudera/flume/shell/antlr"/>
- </exec>
- </target>
-
- <!-- ========================== -->
- <!-- avro -->
- <!-- ========================== -->
- <target name="avro-call">
- <echo message="Converting avro-dl file: ${avrofile}"/>
- <path id="avro.classpath">
- <fileset dir="${lib.dir}">
- <include name="**/*.jar"/>
- <exclude name="**/slf4j*.jar"/>
- </fileset>
- <fileset dir="${build.lib.dir}">
- <include name="**/*.jar"/>
- </fileset>
- </path>
- <echo message="Compiling avro file: ${avrofile}.avpr"/>
- <java classname="org.apache.avro.tool.Main">
- <classpath refid="avro.classpath" />
- <arg value="idl" />
- <arg value="${avrofile}" />
- <arg value="${avrofile}.avpr" />
- </java>
- <java classname="org.apache.avro.compiler.specific.SpecificCompiler">
- <classpath refid="avro.classpath" />
- <arg value="${avrofile}.avpr" />
- <arg value="${avro.gen.dir}" />
- </java>
-
-
- </target>
-
- <target name="avro-gen">
- <foreach target="avro-call" param="avrofile">
- <fileset dir="${avro.src.dir}">
- <include name="**/*.avdl"/>
- </fileset>
- </foreach>
- </target>
- <!-- ========================== -->
- <!-- thrift -->
- <!-- ========================== -->
- <target name="call-thrift">
- <echo message="Running thrift on ${thriftfile}"/>
- <exec executable="thrift" dir="${basedir}" failonerror="true">
- <arg line="--strict --gen java -o src ${thriftfile}"/>
- </exec>
- </target>
-
- <fileset id="thrift.files" dir="${thrift.src.dir}">
- <include name="**/*.thrift"/>
- </fileset>
-
- <!-- Determine if thrift generated java is up to date -->
- <target name="thrift-init">
- <dependset>
- <srcfileset refid="thrift.files"/>
- <targetfileset dir = "${thrift.gen.dir}/${thrift.scribe.package}">
- <include name="**/*.java"/>
- </targetfileset>
- </dependset>
- <available file="${thrift.gen.dir}/${thrift.scribe.package}/scribe.java"
- property="thrift.uptodate"/>
- </target>
-
- <!-- Generate thrift java -->
- <target name="thrift-gen" depends="thrift-init" unless="thrift.uptodate">
- <pathconvert property="thrift.file.list" refid="thrift.files"
- pathsep=" " dirsep="/">
- </pathconvert>
- <echo message="Running thrift generator on ${thrift.file.list}"/>
- <foreach target="call-thrift" param="thriftfile">
- <fileset refid="thrift.files"/>
- </foreach>
- </target>
-
- <target name="generate-all" depends="init, thrift-gen, antlr-gen, antlr-shell-gen, avro-gen" />
-
- <target name="compile-gen" depends="generate-all">
- <!-- dependendecy for antlr parsers -->
- <copy file="${basedir}/src/java/com/cloudera/flume/conf/RuntimeRecognitionException.java" tofile="${basedir}/src/gen-java/com/cloudera/flume/conf/RuntimeRecognitionException.java" />
- <javac
- encoding="${build.encoding}"
- srcdir="${thrift.gen.dir}"
- includes="com/**/*.java"
- destdir="${build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args} ${javac.args.warnings}" />
- <classpath refid="classpath"/>
- </javac>
- </target>
-
-
- <!-- ================================================================== -->
- <!-- Build core -->
- <!-- ================================================================== -->
-
- <target name="version">
- <!-- generate package-info annotation file. This has to be done here
- so that the timestamp of package-info.java is newer than the timestamp
- of the output directory -->
- <exec executable="sh">
- <arg line="src/saveVersion.sh ${version}"/>
- <!-- <env key="HADOOP_REVISION" value="${cloudera.hash}" /> -->
- </exec>
- <javac
- encoding="${build.encoding}"
- srcdir="${core.src.dir};${thrift.gen.dir};${avro.gen.dir}"
- includes="com/cloudera/flume/package-info.java"
- destdir="${build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args} ${javac.args.warnings}" />
- <classpath refid="classpath"/>
- </javac>
-
- </target>
-
- <target name="compile-core" depends="init,version,ivy-retrieve,compile-gen">
-
- <!-- Compile Java files (excluding JSPs) checking warnings -->
- <javac
- encoding="${build.encoding}"
- srcdir="${core.src.dir};${thrift.gen.dir};${avro.gen.dir}"
- includes="com/cloudera/**/*.java"
- destdir="${build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args} ${javac.args.warnings}" />
- <classpath refid="classpath"/>
- </javac>
- <javac
- encoding="${build.encoding}"
- srcdir="${core.src.dir};${thrift.gen.dir};${avro.gen.dir}"
- includes="org/apache/**/*.java"
- destdir="${build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args} ${javac.args.warnings}" />
- <classpath refid="classpath"/>
- </javac>
-
- <copy todir="${build.classes}">
- <fileset dir="${core.src.dir}" includes="**/*.properties"/>
- </copy>
- </target>
-
-
- <target name="findbugs" depends="ivy-retrieve-findbugs, jar">
- <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
- classpath="${ivy.tools.lib}/findbugs-ant-1.3.9.jar" />
-
- <property name="findbugs.exclude.file" value="findbugsExclude.xml" />
- <findbugs output="xml"
- outputFile="flume-findbugs.xml"
- jvmargs="-Xmx1024m"
- excludeFilter="${findbugs.exclude.file}">
- <classpath refid="tools.classpath"/>
- <pluginList/>
- <auxClasspath refid="classpath"/>
- <sourcePath path="${basedir}/src/java" />
- <class location="${build.dir}/${final.name}-core.jar"/>
- </findbugs>
- </target>
-
- <target name="pmd" depends="ivy-retrieve-pmd, jar, jar-test">
- <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="tools.classpath"/>
- <pmd shortFilenames="true">
- <ruleset>pmd.xml</ruleset>
- <formatter type="html" toFile="pmd_report.html"/>
- <fileset dir="${basedir}/src/java">
- <include name="**/*.java"/>
- </fileset>
- <fileset dir="${basedir}/src/javatest">
- <include name="**/*.java"/>
- </fileset>
- </pmd>
- </target>
-
- <target name="instrument" depends="compile-core, compile-core-test,ivy-retrieve-coverage">
- <taskdef classpath="${ivy.tools.lib}/cobertura-1.9.4.1.jar" resource="tasks.properties">
- <classpath>
- <fileset dir="${ivy.tools.lib}/">
- <include name="**/*.jar"/>
- </fileset>
- <fileset dir="libtest/">
- <include name="**/*.jar"/>
- </fileset>
- <fileset dir="lib/">
- <include name="**/*.jar"/>
- </fileset>
- </classpath>
- </taskdef>
-
- <cobertura-instrument todir="build/instrumented-classes">
- <fileset dir="build/">
- <include name="**/*.class"/>
- <exclude name="**/Test*.class"/>
- <exclude name="**/com/cloudera/flume/conf/thrift/*.class"/>
- <exclude name="**/com/cloudera/flume/conf/FlumeDeploy*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/thrift/ThriftFlumeEvent*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/thrift/RawEvent*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/thrift/Priority*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/thrift/EventStatus*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/scribe/FacebookService*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/scribe/fb_status*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/scribe/LogEntry*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/scribe/ResultCode*.class"/>
- <exclude name="**/com/cloudera/flume/handlers/scribe/scribe*.class"/>
- <exclude name="**/org/apache/jsp/*.class"/>
- </fileset>
- </cobertura-instrument>
- </target>
- <target name="cover-test" depends="instrument">
- <junit
- printsummary="yes" showoutput="${test.output}"
- haltonfailure="no" fork="yes" maxmemory="512m"
- errorProperty="tests.failed" failureProperty="tests.failed"
- timeout="${test.timeout}"
- dir="${test.build.dir}">
- <classpath location="${ivy.tools.lib}/cobertura.jar"/>
- <classpath location="build/instrumented-classes"/>
-
- <!-- uncomment this if you want to attach a debugger -->
- <!--
- <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2601" />
- -->
- <sysproperty key="java.library.path" value="${lib.dir}" />
- <sysproperty key="test.build.data" value="${build.test}/data"/>
- <sysproperty key="build.test" value="${build.test}"/>
- <sysproperty key="contrib.name" value="${name}"/>
- <sysproperty key="net.sourceforge.cobertura.datafile"
- file="cobertura.ser" />
-
- <!-- we want more log4j output when running unit tests -->
- <sysproperty key="hadoop.root.logger"
- value="INFO,console" />
- <!-- TODO (jon) Why does o.a.h.conf.Configuration throw exception
- when in DEBUG mode? -->
-
- <!-- requires fork=yes for:
- relative File paths to use the specified user.dir
- classpath to use build/contrib/*.jar
- -->
- <sysproperty key="user.dir" value="${build.test}/data"/>
-
- <!-- Setting the user.dir property is actually meaningless as it
- is read-only in the Linux Sun JDK. Provide an alternate sysprop
- to specify where generated code should go.
- -->
- <sysproperty key="flume.src.dir" value="${build.test}/data"/>
-
- <sysproperty key="fs.default.name" value="${fs.default.name}"/>
- <sysproperty key="hadoop.test.localoutputfile" value="${hadoop.test.localoutputfile}"/>
- <sysproperty key="hadoop.log.dir" value="${hadoop.log.dir}"/>
-
- <!-- tools.jar from Sun JDK also required to invoke javac. -->
- <classpath>
- <path refid="test.classpath"/>
- <pathelement path="${env.JAVA_HOME}/lib/tools.jar" />
- </classpath>
- <batchtest todir="${build.test}" unless="testcase">
- <fileset dir="${test.src.dir}"
- excludes="**/${test.exclude}.java"
- excludesfile="${test.exclude.file}"
- includesfile="${test.include.file}"/>
- </batchtest>
- <batchtest todir="${build.test}" if="testcase">
- <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
- </batchtest>
- </junit>
- </target>
-
- <target name="coverage-report" depends="cover-test">
- <!-- Remove format="xml" for the html browsable report -->
- <cobertura-report format="xml" srcdir="src/java/" destdir="build/cobertura"/>
- </target>
-
- <!-- ================================================================== -->
- <!-- Perform audit activities on the release -->
- <!-- ================================================================== -->
- <target name="releaseaudit" depends="tar,rats-taskdef" description="Release Audit activities">
- <untar compression="gzip"
- src="${build.dir}/flume-${version}.tar.gz" dest="${build.dir}"/>
-
- <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
- <fileset dir="${build.dir}/flume-${version}">
- <exclude name="**/.gitignore"/>
- <exclude name="src/gen-java/"/>
- <exclude name="src/data/"/>
- <exclude name="eclipse/"/>
- </fileset>
- </rat:report>
- </target>
-
- <target name="rats-taskdef" depends="ivy-retrieve-releaseaudit">
- <typedef format="xml" resource="org/apache/rat/anttasks/antlib.xml" uri="antlib:org.apache.rat.anttasks"
- classpathref="releaseaudit-classpath"/>
- </target>
-
- <!-- ================================================================== -->
- <!-- Build jsps (precompile them) -->
- <!-- ================================================================== -->
- <target name="compile-jsps" depends="compile-core">
- <taskdef classname="org.apache.jasper.JspC" name="jsp-compile" >
- <classpath refid="test.classpath"/>
- </taskdef>
-
- <jsp-compile
- uriroot="${src.webapps}/flumeconfig"
- outputdir="${build.src}"
- package="org.apache.jsp"
- webxml="${build.webapps}/flumeconfig/WEB-INF/web.xml">
- </jsp-compile>
-
- <jsp-compile
- uriroot="${src.webapps}/flumeagent"
- outputdir="${build.src}"
- package="org.apache.jsp"
- webxml="${build.webapps}/flumeagent/WEB-INF/web.xml">
- </jsp-compile>
-
- <javac
- encoding="${build.encoding}"
- srcdir="${build.src}"
- includes="org/**/*.java"
- destdir="${build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args} ${javac.args.warnings}" />
- <classpath refid="classpath"/>
- </javac>
-
-
- <!-- Compile Java files (excluding JSPs) checking warnings -->
- <!--
- <javac
- encoding="${build.encoding}"
- srcdir="${mapred.src.dir};${build.src}"
- includes="org/apache/hadoop/**/*.java"
- destdir="${build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args} ${javac.args.warnings}" />
- <classpath refid="classpath"/>
- </javac>
-
- <copy todir="${build.classes}">
- <fileset dir="${mapred.src.dir}" includes="**/*.properties"/>
- <fileset dir="${mapred.src.dir}" includes="mapred-default.xml"/>
- </copy>
--->
-
- </target>
-
- <!-- ================================================================== -->
- <!-- Make flume.jar -->
- <!-- ================================================================== -->
- <target name="jar" depends="compile-core,compile-jsps" description="Make flume.jar">
- <jar jarfile="${build.dir}/${final.name}-core.jar"
- basedir="${build.classes}">
- <manifest>
- <section name="com/cloudera/">
- <attribute name="Implementation-Title" value="Flume"/>
- <attribute name="Implementation-Version" value="${version}"/>
- <attribute name="Implementation-Vendor" value="Cloudera Inc."/>
- </section>
- </manifest>
- <fileset file="${conf.dir}/flume-default.xml"/>
-<!-- TODO <zipfileset dir="${build.webapps}" prefix="webapps"/> -->
- </jar>
- </target>
-
- <!-- ================================================================== -->
- <!-- Make flume-test.jar -->
- <!-- ================================================================== -->
- <target name="jar-test" depends="jar,compile-core-perf,compile-core-test" description="Make flume-test.jar">
- <jar jarfile="${build.dir}/${final.name}-test.jar"
- basedir="${test.build.classes}">
- <manifest>
- <section name="com/cloudera/">
- <attribute name="Implementation-Title" value="Flume"/>
- <attribute name="Implementation-Version" value="${version}"/>
- <attribute name="Implementation-Vendor" value="Cloudera Inc."/>
- </section>
- </manifest>
- </jar>
- </target>
-
- <!-- ================================================================== -->
- <!-- Make Docs (UserGuide, Cookbook, DeveloperGuide) -->
- <!-- converts to docbook and then to html to avoid GPL code insertion -->
- <!-- in ubuntu requires pkgs: asciidoc,source-highlight,graphviz -->
- <!-- ================================================================== -->
- <target name="docs" depends="userguide,cookbook,developerguide,windowsguide,docindex" description="Build documentation"/>
-
- <uptodate property="userguide.uptodate"
- targetfile="${build.docs}/UserGuide/index.html">
- <srcfiles dir="${docs.src.dir}/UserGuide" includes="*"/>
- <srcfiles dir="${docs.src.dir}/web" includes="*"/>
- </uptodate>
- <uptodate property="cookbook.uptodate"
- targetfile="${build.docs}/Cookbook/index.html" >
- <srcfiles dir="${docs.src.dir}/cookbook" includes="*"/>
- <srcfiles dir="${docs.src.dir}/web" includes="*"/>
- </uptodate>
- <uptodate property="developerguide.uptodate"
- targetfile="${build.docs}/DeveloperGuide/index.html" >
- <srcfiles dir="${docs.src.dir}/DeveloperGuide" includes="*"/>
- <srcfiles dir="${docs.src.dir}/web" includes="*"/>
- </uptodate>
- <uptodate property="windowsguide.uptodate"
- targetfile="${build.docs}/Windows/index.html" >
- <srcfiles dir="${docs.src.dir}/Windows" includes="*"/>
- <srcfiles dir="${docs.src.dir}/web" includes="*"/>
- </uptodate>
- <uptodate property="docindex.uptodate"
- targetfile="${build.docs}/index.html" >
- <srcfiles dir="${docs.src.dir}/web" includes="*"/>
- </uptodate>
-
-
- <target name="userguide" depends="init" description="Build UserGuide" unless="userguide.uptodate" >
- <exec executable="asciidoc" dir="${basedir}" failonerror="true">
- <arg line="-a revnumber=${version} -a revdate='${TODAY}' -b docbook -o ${build.docs}/UserGuide/index.xml ${docs.src.dir}/UserGuide/FullGuide"/>
- </exec>
-
- <exec executable="xmlto" dir="${basedir}" failonerror="true">
- <arg line="--skip-validation -o ${build.docs}/UserGuide -m src/docs/web/html.xsl html-nochunks ${build.docs}/UserGuide/index.xml "/>
- </exec>
-
- <delete file="${build.docs}/UserGuide/index.xml" />
-
- <copy todir="${docs.dir}/UserGuide">
- <fileset dir="${docs.src.dir}/web" includes="**"/>
- </copy>
-
- <copy todir="${docs.dir}/UserGuide">
- <fileset dir="${docs.src.dir}/UserGuide" includes="**/*.png"/>
- </copy>
- </target>
-
- <target name="cookbook" depends="init" description="Build documentation" unless="cookbook.uptodate">
- <exec executable="asciidoc" dir="${basedir}" failonerror="true">
- <arg line="-a revnumber=${version} -a revdate='${TODAY}' -b docbook -o ${build.docs}/Cookbook/index.xml ${docs.src.dir}/cookbook/Cookbook"/>
- </exec>
-
- <exec executable="xmlto" dir="${basedir}" failonerror="true">
- <arg line="--skip-validation -o ${build.docs}/Cookbook -m src/docs/web/html.xsl html-nochunks ${build.docs}/Cookbook/index.xml "/>
- </exec>
-
- <delete file="${build.docs}/cookbook/index.xml" />
-
- <copy todir="${docs.dir}/Cookbook">
- <fileset dir="${docs.src.dir}/web" includes="**"/>
- </copy>
-
- <copy todir="${docs.dir}/Cookbook">
- <fileset dir="${docs.src.dir}/cookbook" includes="**/*.png"/>
- </copy>
- </target>
-
- <target name="developerguide" depends="init" description="Build DeveloperGuide" unless="developerguide.uptodate">
- <exec executable="asciidoc" dir="${basedir}" failonerror="true">
- <arg line="-a revnumber=${version} -a revdate='${TODAY}' -b docbook -o ${build.docs}/DeveloperGuide/index.xml ${docs.src.dir}/DeveloperGuide/FullGuide"/>
- </exec>
-
- <exec executable="xmlto" dir="${basedir}" failonerror="true">
- <arg line="--skip-validation -o ${build.docs}/DeveloperGuide -m src/docs/web/html.xsl html-nochunks ${build.docs}/DeveloperGuide/index.xml "/>
- </exec>
-
- <delete file="${build.docs}/DeveloperGuide/index.xml" />
-
- <copy todir="${docs.dir}/DeveloperGuide">
- <fileset dir="${docs.src.dir}/web" includes="**"/>
- </copy>
-
- <copy todir="${docs.dir}/DeveloperGuide">
- <fileset dir="${docs.src.dir}/DeveloperGuide" includes="**/*.png"/>
- </copy>
- </target>
-
-
- <target name="windowsguide" depends="init" description="Build Windows Guide" unless="windowsguide.uptodate">
- <exec executable="asciidoc" dir="${basedir}" failonerror="true">
- <arg line="-a revnumber=${version} -a revdate='${TODAY}' -b docbook -o ${build.docs}/Windows/index.xml ${docs.src.dir}/Windows/Windows"/>
- </exec>
-
- <exec executable="xmlto" dir="${basedir}" failonerror="true">
- <arg line="--skip-validation -o ${build.docs}/Windows -m src/docs/web/html.xsl html-nochunks ${build.docs}/Windows/index.xml "/>
- </exec>
-
- <delete file="${build.docs}/Windows/index.xml" />
-
- <copy todir="${docs.dir}/Windows">
- <fileset dir="${docs.src.dir}/web" includes="**"/>
- </copy>
-
- <copy todir="${docs.dir}/Windows">
- <fileset dir="${docs.src.dir}/Windows" includes="**/*.png"/>
- </copy>
- </target>
-
-
- <target name="docindex" depends="init" description="Build Index Page for docs" unless="docindex.uptodate">
- <exec executable="asciidoc" dir="${basedir}" failonerror="true">
- <arg line="-a revnumber=${version} -a revdate='${TODAY}' -b docbook -o ${build.docs}/index.xml ${docs.src.dir}/web/index.txt"/>
- </exec>
-
- <exec executable="xmlto" dir="${basedir}" failonerror="true">
- <arg line="--skip-validation -o ${build.docs} -m src/docs/web/html.xsl html-nochunks ${build.docs}/index.xml "/>
- </exec>
-
- <delete file="${build.docs}/index.xml" />
-
- <!-- there are 4 copies of this. super inefficient -->
- <copy todir="${docs.dir}">
- <fileset dir="${docs.src.dir}/web" includes="**"/>
- </copy>
-
- </target>
-
-
-
- <!-- ================================================================== -->
- <!-- Make flume.tgz -->
- <!-- ================================================================== -->
- <target name="tar" depends="jar,jar-test,docs" description="Make flume.tar">
- <tar compression="gzip" destfile="${build.dir}/flume-${version}.tar.gz">
- <tarfileset dir="build" mode="644" prefix="flume-${version}">
- <include name="*.jar" />
- <include name="webapps/**" />
- </tarfileset>
-
-
- <tarfileset dir="." mode="644" prefix="flume-${version}">
- <include name="build.xml" />
- <include name="cloudera/**" />
- <include name="conf/**" />
- <include name="CHANGELOG.html" />
- <include name="DEVNOTES" />
- <include name="RELEASENOTES" />
- <include name="LICENSE" />
- <include name="README" />
- <include name="NOTICE" />
- <include name="eclipse/**" />
- <include name="ivy.xml" />
- <include name="lib/**" />
- <include name="libbuild/**" />
- <include name="src/**" />
- <include name="Makefile" />
- <include name="properties/**" />
- <include name="docs/**" />
- <exclude name="findbugsExclude.xml" />
- <exclude name="libtest/findbugs-ant.jar" />
- <exclude name="libtest/findbugs.jar" />
- </tarfileset>
-
- <tarfileset dir="." mode="755" prefix="flume-${version}">
- <exclude name="bin/flume-env.sh" />
- <include name="bin/**"/>
- </tarfileset>
-
- </tar>
- </target>
-
- <target name="bin-tar" depends="jar" description="Make flume.tar">
- <tar compression="gzip" destfile="${build.dir}/flume-${version}-bin.tar.gz">
- <tarfileset dir="build" mode="644" prefix="flume-${version}">
- <include name="*.jar" />
- <include name="webapps/**" />
- </tarfileset>
-
- <tarfileset dir="." mode="644" prefix="flume-${version}">
- <include name="conf/**" />
- <include name="CHANGELOG.html" />
- <include name="RELEASENOTES" />
- <include name="LICENSE" />
- <include name="README" />
- <include name="NOTICE" />
- <include name="lib/**" />
- <include name="properties/**" />
- </tarfileset>
-
- <tarfileset dir="." mode="755" prefix="flume-${version}">
- <exclude name="bin/flume-env.sh" />
- <include name="bin/**"/>
- </tarfileset>
-
- </tar>
- </target>
- <!-- ================================================================== -->
- <!-- Compile test code -->
- <!-- ================================================================== -->
- <target name="compile-core-test" depends="init,compile-core,ivy-retrieve-test">
- <javac
- encoding="${build.encoding}"
- srcdir="${test.src.dir}"
- includes="**/*.java"
- destdir="${test.build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args}" />
- <classpath refid="test.classpath"/>
- </javac>
- </target>
-
- <!-- ================================================================== -->
- <!-- Compile perf benchmark code -->
- <!-- ================================================================== -->
- <target name="compile-core-perf" depends="init,compile-core,compile-core-test">
- <javac
- encoding="${build.encoding}"
- srcdir="${perf.src.dir}"
- includes="com/cloudera/**/*.java"
- destdir="${test.build.classes}"
- debug="${javac.debug}"
- optimize="${javac.optimize}"
- target="${javac.version}"
- source="${javac.version}"
- deprecation="${javac.deprecation}">
- <compilerarg line="${javac.args}" />
- <classpath refid="test.classpath"/>
- </javac>
- </target>
-
- <!-- ================================================================== -->
- <!-- Run unit tests -->
- <!-- ================================================================== -->
- <target name="test" depends="compile-core,compile-core-test" >
- <echo message="testing: ${name}"/>
- <junit
- printsummary="yes" showoutput="${test.output}"
- haltonfailure="no" fork="yes" maxmemory="1024m"
- errorProperty="tests.failed" failureProperty="tests.failed"
- timeout="${test.timeout}"
- dir="${test.build.dir}">
-
- <!-- uncomment this if you want to attach a debugger -->
- <!--
- <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2601" />
- -->
- <env key="FLUME_HOME" value="${basedir}" />
- <sysproperty key="javax.xml.parsers.DocumentBuilderFactory" value="com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl" />
- <sysproperty key="java.library.path" value="${lib.dir}" />
- <sysproperty key="test.build.data" value="${build.test}/data"/>
- <sysproperty key="build.test" value="${build.test}"/>
- <sysproperty key="contrib.name" value="${name}"/>
-
- <!-- we want more log4j output when running unit tests -->
- <sysproperty key="hadoop.root.logger"
- value="INFO,console" />
- <!-- TODO (jon) Why does o.a.h.conf.Configuration throw exception
- when in DEBUG mode? -->
-
- <!-- requires fork=yes for:
- relative File paths to use the specified user.dir
- classpath to use build/contrib/*.jar
- -->
- <sysproperty key="user.dir" value="${build.test}/data"/>
-
- <!-- Setting the user.dir property is actually meaningless as it
- is read-only in the Linux Sun JDK. Provide an alternate sysprop
- to specify where generated code should go.
- -->
- <sysproperty key="flume.src.dir" value="${build.test}/data"/>
-
- <sysproperty key="fs.default.name" value="${fs.default.name}"/>
- <sysproperty key="hadoop.test.localoutputfile" value="${hadoop.test.localoutputfile}"/>
- <sysproperty key="hadoop.log.dir" value="${hadoop.log.dir}"/>
-
- <!-- tools.jar from Sun JDK also required to invoke javac. -->
- <classpath>
- <path refid="test.classpath"/>
- <pathelement path="${env.JAVA_HOME}/lib/tools.jar" />
- </classpath>
- <formatter type="${test.junit.output.format}" />
- <batchtest todir="${build.test}" unless="testcase">
- <fileset dir="${test.src.dir}"
- excludes="**/${test.exclude}.java"
- excludesfile="${test.exclude.file}"
- includesfile="${test.include.file}"/>
- </batchtest>
- <batchtest todir="${build.test}" if="testcase">
- <fileset dir="${test.src.dir}" includes="**/${testcase}.java"/>
- </batchtest>
- </junit>
- <fail if="tests.failed">Tests failed!</fail>
- </target>
-
-
- <!-- ================================================================== -->
- <!-- Run performance microbenchmarks -->
- <!-- These have similar settings to unit tests but use > -Xmx500m -->
- <!-- ================================================================== -->
- <target name="perf" depends="compile-core,compile-core-test,compile-core-perf" >
- <echo message="performance testing: ${name}"/>
- <junit
- printsummary="yes" showoutput="${perf.output}"
- haltonfailure="no" fork="yes" maxmemory="2048m"
- errorProperty="test.failed" failureProperty="test.failed"
- timeout="${test.timeout}"
- dir="${perf.build.dir}">
-
- <!-- uncomment this if you want to attach a debugger -->
- <!--
- <jvmarg line="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2601" />
- -->
-
- <sysproperty key="test.build.data" value="${build.test}/data"/>
- <sysproperty key="build.perf" value="${build.perf}"/>
- <sysproperty key="contrib.name" value="${name}"/>
-
- <!--
- Added property needed to use the .class files for compilation
- instead of depending on hadoop-*-core.jar
- -->
- <sysproperty key="hadoop.alt.classpath"
- value="${hadoop.root}/build/classes" />
-
- <!-- we want more log4j output when running unit tests -->
- <sysproperty key="hadoop.root.logger"
- value="DEBUG,console" />
-
- <!-- requires fork=yes for:
- relative File paths to use the specified user.dir
- classpath to use build/contrib/*.jar
- -->
- <sysproperty key="user.dir" value="${build.test}/data"/>
-
- <!-- Setting the user.dir property is actually meaningless as it
- is read-only in the Linux Sun JDK. Provide an alternate sysprop
- to specify where generated code should go.
- -->
- <sysproperty key="flume.src.dir" value="${build.test}/data"/>
-
- <sysproperty key="fs.default.name" value="${fs.default.name}"/>
- <sysproperty key="hadoop.test.localoutputfile" value="${hadoop.test.localoutputfile}"/>
- <sysproperty key="hadoop.log.dir" value="${hadoop.log.dir}"/>
-
- <!-- ================================================================== -->
- <!-- tools.jar from Sun JDK also required to invoke javac. -->
- <classpath>
- <path refid="test.classpath"/>
- <pathelement path="${env.JAVA_HOME}/lib/tools.jar" />
- </classpath>
- <formatter type="${test.junit.output.format}" />
- <batchtest todir="${build.perf}" unless="testcase">
- <fileset dir="${perf.src.dir}"
- includes="**/Perf*.java" excludes="**/${test.exclude}.java" />
- </batchtest>
- <batchtest todir="${build.perf}" if="testcase">
- <fileset dir="${perf.src.dir}" includes="**/${testcase}.java"/>
- </batchtest>
- </junit>
- <fail if="tests.failed">Perf Tests failed!</fail>
- </target>
-
- <!-- ================================================================== -->
- <!-- eclipse setup -->
- <!-- ================================================================== -->
- <condition property="ant-eclipse.jar.exists">
- <available file="${build.lib.dir}/ant-eclipse-1.0-jvm1.2.jar"/>
- </condition>
-
- <target name="ant-eclipse-download" unless="ant-eclipse.jar.exists">
- <mkdir dir="${build.dir}/eclipse-unpack" />
-
- <get src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2"
- dest="${build.dir}/eclipse-unpack/ant-eclipse-1.0.bin.tar.bz2" usetimestamp="false" />
-
- <bunzip2 src="${build.dir}/eclipse-unpack/ant-eclipse-1.0.bin.tar.bz2"/>
-
- <untar src="${build.dir}/eclipse-unpack/ant-eclipse-1.0.bin.tar"
- dest="${build.dir}/eclipse-unpack">
- <patternset>
- <include name="lib/ant-eclipse-1.0-jvm1.2.jar"/>
- </patternset>
- </untar>
-
- <move file="${build.dir}/eclipse-unpack/lib/ant-eclipse-1.0-jvm1.2.jar" todir="${build.lib.dir}" />
-
- <delete dir="${build.dir}/eclipse-unpack" />
-
- <delete file="${build.dir}/ant-eclipse-1.0.bin.tar" />
- <delete file="${build.dir}/ant-eclipse-1.0.bin.tar.bz2" />
- </target>
-
- <target name="eclipse"
- depends="ant-eclipse-download,init,ivy-retrieve-all,generate-all"
- description="Create eclipse project files">
- <ivy:cachepath pathid="default.path.id" conf="default" />
- <ivy:cachepath pathid="junit.path.id" conf="test" transitive="false"/>
- <taskdef name="eclipse"
- classname="prantl.ant.eclipse.EclipseTask"
- classpathref="classpath" />
- <eclipse updatealways="true">
- <settings>
- <resources encoding="UTF-8" />
- </settings>
- <project name="${ant.project.name}" />
- <classpath>
- <source path="${core.src.dir}"
- output="${build.dir.eclipse-main-classes}" />
- <source path="${avro.gen.dir}"
- output="${build.dir.eclipse-main-classes}" />
- <source path="${thrift.gen.dir}"
- output="${build.dir.eclipse-main-classes}"
- excluding="com/cloudera/flume/conf/RuntimeRecognitionException.java" />
- <source path="${perf.src.dir}"
- output="${build.dir.eclipse-main-classes}" />
- <source path="${test.src.dir}"
- output="${build.dir.eclipse-test-classes}" />
-
- <output path="${build.dir.eclipse-main-classes}" />
- <library pathref="libs.classpath" />
- <library pathref="default.path.id" exported="true" />
- <library pathref="junit.path.id" exported="false" />
- </classpath>
- </eclipse>
- </target>
-
- <target name="clean-eclipse" description="Clean eclipse files">
- <delete file=".classpath" />
- <delete file=".eclipse" />
- <delete file=".project" />
- <delete dir=".settings" />
- <delete dir="${build.dir.eclipse}" />
- </target>
-
- <!-- ================================================================== -->
- <!-- clean -->
- <!-- ================================================================== -->
- <target name="clean">
- <echo message="Cleaning generated files and stuff"/>
- <delete dir="${build.dir}" />
- </target>
-
-
- <target name="reallyclean">
- <echo message="Cleaning generated files and stuff"/>
- <delete dir="${build.dir}" />
- <delete dir="${thrift.gen.dir}" />
- <delete dir="${avro.gen.dir}" />
- </target>
-
- <!-- ================================================================== -->
- <!-- Documentation -->
- <!-- ================================================================== -->
- <target name="javadoc" depends="jar, jar-test" description="Create documentation">
- <mkdir dir="${build.javadoc}" />
- <javadoc packagenames="com.cloudera.*" destdir="${build.javadoc}" author="true"
- version="true" use="true" windowtitle="${name} ${version} API"
- doctitle="${final.name} API" bottom="Copyright &amp;copy; ${year} Cloudera, Inc.">
- <packageset dir="${core.src.dir}" />
- <packageset dir="${test.src.dir}" />
- <packageset dir="${perf.src.dir}" />
- <link href="${javadoc.link.java}" />
- <classpath>
- <path refid="test.classpath" />
- <pathelement path="${output.jarfile}" />
- </classpath>
- <group title="flume" packages="com.cloudera.flume*" />
- </javadoc>
- </target>
-
- <target name="winstall-filter" depends="tar" description="update windows installer script version">
- <copy file="${src.dir}/nsis/flume.nsi.template" tofile="flume.nsi">
- <filterset refid="version.filters"/>
- </copy>
- </target>
-
- <!-- assumes makensis is in path -->
- <target name="winstall" depends="winstall-filter" description="build NSIS windows installer">
- <exec executable="makensis" dir="${basedir}" failonerror="true">
- <arg line="flume.nsi"/>
- </exec>
- </target>
-
-</project>
View
15 conf/flume-conf.xml
@@ -75,6 +75,14 @@ configuration values placed in flume-site.xml. -->
</description>
</property>
+ <property>
+ <name>flume.node.webapp.root</name>
+ <value>webapps/flumeagent.war</value>
+ <description>The webapp root for the node web application. This can
+ be either a war file or a directory of war files / exploded wars.
+ </description>
+ </property>
+
<!-- ================================================== -->
<!-- Agent ============================================ -->
<!-- ================================================== -->
@@ -262,6 +270,13 @@ configuration values placed in flume-site.xml. -->
</description>
</property>
+ <property>
+ <name>flume.master.webapp.root</name>
+ <value>webapps/flumemaster.war</value>
+ <description>The webapp root for the master web application. This can
+ be either a war file or a directory of war files / exploded wars.
+ </description>
+ </property>
<property>
<name>flume.event.rpc</name>
View
4 flume-config-web/.gitignore
@@ -0,0 +1,4 @@
+target
+.project
+.classpath
+.settings
View
96 flume-config-web/pom.xml
@@ -0,0 +1,96 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>flume</artifactId>
+ <groupId>com.cloudera</groupId>
+ <version>0.9.4-SNAPSHOT</version>
+ </parent>
+
+ <groupId>com.cloudera</groupId>
+ <artifactId>flume-config-web</artifactId>
+ <version>0.9.4-SNAPSHOT</version>
+ <name>Flume Master Config Web Application</name>
+ <packaging>war</packaging>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jspc-maven-plugin</artifactId>
+ <version>1.4.6</version>
+ <executions>
+ <execution>
+ <id>jspc</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <configuration>
+ <packageName>com.cloudera.flume.master.jsp</packageName>
+ <outputWebXml>${pom.basedir}/target/web.xml</outputWebXml>
+ <source>1.5</source>
+ <target>1.5</target>
+ <showSuccess>true</showSuccess>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1.1</version>
+ <configuration>
+ <webXml>${pom.basedir}/target/web.xml</webXml>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.cloudera</groupId>
+ <artifactId>flume-core</artifactId>
+ <version>0.9.4-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-json</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.jettison</groupId>
+ <artifactId>jettison</artifactId>
+ <version>1.2</version>
+ </dependency>
+
+ </dependencies>
+
+</project>
View
17 .../flume/master/CommandManagerResource.java → .../flume/master/CommandManagerResource.java
@@ -1,3 +1,4 @@
+package com.cloudera.flume.master;
/**
* Licensed to Cloudera, Inc. under one
* or more contributor license agreements. See the NOTICE file
@@ -15,7 +16,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.cloudera.flume.master;
+
import java.util.Map.Entry;
@@ -29,6 +30,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.cloudera.flume.master.CommandManager;
+import com.cloudera.flume.master.CommandStatus;
+import com.cloudera.flume.master.FlumeMaster;
+
@Path("/commands")
public class CommandManagerResource {
final public static Logger LOG = LoggerFactory
@@ -48,10 +53,10 @@ public CommandManagerResource() {
JSONObject toJSONObject(CommandStatus c) throws JSONException {
JSONObject o = new JSONObject();
- o.put("cmd", c.cmd);
- o.put("cmdId", c.cmdId);
- o.put("curState", c.curState);
- o.put("message", c.message);
+ o.put("cmd", c.getCommand());
+ o.put("cmdId", c.getCmdID());
+ o.put("curState", c.getState());
+ o.put("message", c.getMessage());
return o;
}
@@ -60,7 +65,7 @@ JSONObject toJSONObject(CommandStatus c) throws JSONException {
public JSONObject getLogs() {
JSONObject o = new JSONObject();
try {
- for (Entry<Long, CommandStatus> e : commands.statuses.entrySet()) {
+ for (Entry<Long, CommandStatus> e : commands.getStatuses().entrySet()) {
o.put(e.getKey().toString(), toJSONObject(e.getValue()));
}
} catch (JSONException e) {
View
5 ...a/flume/master/ConfigManagerResource.java → ...a/flume/master/ConfigManagerResource.java
@@ -1,3 +1,4 @@
+package com.cloudera.flume.master;
/**
* Licensed to Cloudera, Inc. under one
* or more contributor license agreements. See the NOTICE file
@@ -15,7 +16,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.cloudera.flume.master;
+
import java.util.Map;
import java.util.Map.Entry;
@@ -31,6 +32,8 @@
import org.slf4j.LoggerFactory;
import com.cloudera.flume.conf.FlumeConfigData;
+import com.cloudera.flume.master.ConfigurationManager;
+import com.cloudera.flume.master.FlumeMaster;
@Path("/configs")
public class ConfigManagerResource {
View
4 ...era/flume/master/FlumeMasterResource.java → ...era/flume/master/FlumeMasterResource.java
@@ -1,3 +1,4 @@
+package com.cloudera.flume.master;
/**
* Licensed to Cloudera, Inc. under one
* or more contributor license agreements. See the NOTICE file
@@ -15,7 +16,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.cloudera.flume.master;
+
import java.util.HashSet;
import java.util.Set;
@@ -30,6 +31,7 @@
import org.codehaus.jettison.json.JSONObject;
import org.mortbay.log.Log;
+import com.cloudera.flume.master.FlumeMaster;
import com.cloudera.flume.reporter.ReportUtil;
@Path("/master")
View
6 ...lume/master/MasterAckManagerResource.java → ...lume/master/MasterAckManagerResource.java
@@ -1,3 +1,4 @@
+package com.cloudera.flume.master;
/**
* Licensed to Cloudera, Inc. under one
* or more contributor license agreements. See the NOTICE file
@@ -15,7 +16,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.cloudera.flume.master;
+
import java.util.Set;
@@ -24,6 +25,9 @@
import javax.ws.rs.Produces;
import javax.xml.bind.annotation.XmlRootElement;
+import com.cloudera.flume.master.FlumeMaster;
+import com.cloudera.flume.master.MasterAckManager;
+
@Path("/acks")
public class MasterAckManagerResource {
private final MasterAckManager ackman;
View
5 ...a/flume/master/StatusManagerResource.java → ...a/flume/master/StatusManagerResource.java
@@ -1,3 +1,4 @@
+package com.cloudera.flume.master;
/**
* Licensed to Cloudera, Inc. under one
* or more contributor license agreements. See the NOTICE file
@@ -15,7 +16,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package com.cloudera.flume.master;
+
import java.util.Map.Entry;
@@ -29,6 +30,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.cloudera.flume.master.FlumeMaster;
+import com.cloudera.flume.master.StatusManager;
import com.cloudera.flume.master.StatusManager.NodeStatus;
@Path("/status")
View
7 flume-config-web/src/main/webapp/WEB-INF/jetty-web.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<WebAppContext class="org.mortbay.jetty.webapp.WebAppContext">
+
+ <Set name="contextPath">/</Set>
+
+</WebAppContext>
View
21 flume-config-web/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+ <servlet>
+ <servlet-name>jersey</servlet-name>
+ <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
+ <init-param>
+ <param-name>com.sun.jersey.config.property.packages</param-name>
+ <param-value>com.cloudera.flume.master</param-value>
+ </init-param>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>jersey</servlet-name>
+ <url-pattern>/master/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
View
0  src/webapps/flumeconfig/allcommands.jsp → ...onfig-web/src/main/webapp/allcommands.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/command.jsp → flume-config-web/src/main/webapp/command.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/flume.css → flume-config-web/src/main/webapp/flume.css
File renamed without changes
View
0  src/webapps/flumeconfig/flumeconfig.jsp → ...onfig-web/src/main/webapp/flumeconfig.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/flumemaster.jsp → ...onfig-web/src/main/webapp/flumemaster.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/fullspec.jsp → ...e-config-web/src/main/webapp/fullspec.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/index.html → flume-config-web/src/main/webapp/index.html
File renamed without changes
View
0  src/webapps/flumeconfig/mastercommand.jsp → ...fig-web/src/main/webapp/mastercommand.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/masterenv.jsp → ...-config-web/src/main/webapp/masterenv.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/masterext.jsp → ...-config-web/src/main/webapp/masterext.jsp
File renamed without changes
View
0  ...ebapps/flumeconfig/masterstaticconfig.jsp → ...eb/src/main/webapp/masterstaticconfig.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/mastersubmit.jsp → ...nfig-web/src/main/webapp/mastersubmit.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/menu.jsp → flume-config-web/src/main/webapp/menu.jsp
File renamed without changes
View
0  src/webapps/flumeconfig/version.jsp → flume-config-web/src/main/webapp/version.jsp
File renamed without changes
View
4 flume-core/.gitignore
@@ -0,0 +1,4 @@
+target
+.project
+.classpath
+.settings
View
310 flume-core/pom.xml
@@ -0,0 +1,310 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>flume</artifactId>
+ <groupId>com.cloudera</groupId>
+ <version>0.9.4-SNAPSHOT</version>
+ </parent>
+
+ <name>Flume Core</name>
+ <groupId>com.cloudera</groupId>