From 2422bd8d4b5534a4b0b49af751fb2a22d91cb23a Mon Sep 17 00:00:00 2001 From: agapple Date: Tue, 23 Sep 2014 15:18:42 +0800 Subject: [PATCH] init --- .gitignore | 16 + HEADER.txt | 15 + LICENSE.txt | 202 + README.md | 72 + codeformat.xml | 291 + codetemplates.xml | 41 + lib/install.bat | 3 + lib/install.sh | 3 + lib/jmockit-0.999.10-sources.jar | Bin 0 -> 312979 bytes lib/jmockit-0.999.10.jar | Bin 0 -> 360492 bytes lib/jmockit-0.999.10.pom | 93 + lib/jtester-1.1.8-sources.jar | Bin 0 -> 774303 bytes lib/jtester-1.1.8.jar | Bin 0 -> 1040429 bytes lib/jtester-1.1.8.pom | 146 + lib/ojdbc14-10.2.0.3.0.jar | Bin 0 -> 1545954 bytes manager/biz/pom.xml | 135 + .../biz/autokeeper/AutoKeeperStatService.java | 71 + .../autokeeper/impl/AutoKeeperCollector.java | 348 + .../biz/autokeeper/impl/AutoKeeperData.java | 93 + .../autokeeper/impl/AutoKeeperPersist.java | 31 + .../impl/AutoKeeperStatServiceImpl.java | 80 + .../manager/biz/common/DataSourceCreator.java | 221 + .../common/alarm/AbstractAlarmService.java | 114 + .../biz/common/alarm/AlarmMessage.java | 45 + .../biz/common/alarm/AlarmService.java | 41 + .../biz/common/alarm/DefaultAlarmService.java | 95 + .../common/arbitrate/ArbitrateConfigImpl.java | 164 + .../common/arbitrate/DeadNodeListener.java | 237 + .../biz/common/basedao/GenericDAO.java | 47 + .../common/baseservice/GenericService.java | 44 + .../exceptions/InvalidConfigureException.java | 22 + .../common/exceptions/ManagerException.java | 40 + .../exceptions/RepeatConfigureException.java | 38 + .../biz/config/alarm/AlarmRuleService.java | 64 + .../biz/config/alarm/dal/AlarmRuleDAO.java | 51 + .../alarm/dal/dataobject/AlarmRuleDO.java | 123 + .../dal/dataobject/AlarmRuleParameter.java | 65 + .../ibatis/AlarmRuleParameterTypeHandler.java | 48 + .../alarm/dal/ibatis/IbatisAlarmRuleDAO.java | 95 + .../alarm/impl/AlarmRuleServiceImpl.java | 210 + .../autokeeper/AutoKeeperClusterService.java | 40 + .../autokeeper/dal/AutoKeeperClusterDAO.java | 37 + .../dal/dataobject/AutoKeeperClusterDO.java | 92 + .../ibatis/IbatisAutoKeeperClusterDAO.java | 71 + .../impl/AutoKeeperClusterServiceImpl.java | 105 + .../biz/config/canal/CanalService.java | 47 + .../biz/config/canal/dal/CanalDAO.java | 28 + .../config/canal/dal/dataobject/CanalDO.java | 98 + .../dal/ibatis/CanalParameterTypeHandler.java | 45 + .../canal/dal/ibatis/IbatisCanalDAO.java | 85 + .../config/canal/impl/CanalServiceImpl.java | 287 + .../biz/config/channel/ChannelService.java | 53 + .../biz/config/channel/dal/ChannelDAO.java | 30 + .../channel/dal/dataobject/ChannelDO.java | 95 + .../ibatis/ChannelParameterTypeHandler.java | 48 + .../channel/dal/ibatis/IbatisChannelDAO.java | 93 + .../channel/impl/ChannelServiceImpl.java | 712 ++ .../DataColumnPairGroupService.java | 37 + .../datacolumnpair/DataColumnPairService.java | 39 + .../datacolumnpair/dal/DataColumnPairDAO.java | 38 + .../dal/DataColumnPairGroupDAO.java | 36 + .../dal/dataobject/DataColumnPairDO.java | 85 + .../dal/dataobject/DataColumnPairGroupDO.java | 76 + .../dal/ibatis/IbatisDataColumnPairDAO.java | 135 + .../ibatis/IbatisDataColumnPairGroupDAO.java | 106 + .../impl/DataColumnPairGroupServiceImpl.java | 219 + .../impl/DataColumnPairServiceImpl.java | 249 + .../config/datamatrix/DataMatrixService.java | 44 + .../config/datamatrix/dal/DataMatrixDAO.java | 25 + .../dal/dataobject/DataMatrixDO.java | 89 + .../dal/ibatis/IbatisDataMatrixDAO.java | 82 + .../impl/DataMatrixServiceImpl.java | 254 + .../config/datamedia/DataMediaService.java | 39 + .../config/datamedia/dal/DataMediaDAO.java | 32 + .../datamedia/dal/dataobject/DataMediaDO.java | 93 + .../dal/ibatis/IbatisDataMediaDAO.java | 96 + .../datamedia/impl/DataMediaServiceImpl.java | 356 + .../datamediapair/DataMediaPairService.java | 38 + .../datamediapair/dal/DataMediaPairDAO.java | 33 + .../dal/dataobject/DataMediaPairDO.java | 130 + .../dal/ibatis/IbatisDataMediaPairDAO.java | 105 + .../impl/DataMediaPairServiceImpl.java | 408 + .../DataMediaSourceService.java | 28 + .../dal/DataMediaSourceDAO.java | 27 + .../dal/dataobject/DataMediaSourceDO.java | 85 + .../dal/ibatis/IbatisDataMediaSourceDAO.java | 89 + .../impl/DataMediaSourceServiceImpl.java | 251 + .../manager/biz/config/node/NodeService.java | 27 + .../manager/biz/config/node/dal/NodeDAO.java | 27 + .../config/node/dal/dataobject/NodeDO.java | 113 + .../config/node/dal/ibatis/IbatisNodeDAO.java | 85 + .../dal/ibatis/NodeParameterTypeHandler.java | 48 + .../biz/config/node/impl/NodeServiceImpl.java | 306 + .../parameter/SystemParameterService.java | 29 + .../parameter/dal/SystemParameterDAO.java | 27 + .../dal/dataobject/SystemParameterDO.java | 67 + .../dal/ibatis/IbatisSystemParameterDAO.java | 77 + .../ibatis/SystemParameterTypeHandler.java | 48 + .../impl/SystemParameterServiceImpl.java | 93 + .../biz/config/pipeline/PipelineService.java | 40 + .../biz/config/pipeline/dal/PipelineDAO.java | 32 + .../pipeline/dal/PipelineNodeRelationDAO.java | 42 + .../pipeline/dal/dataobject/PipelineDO.java | 94 + .../dataobject/PipelineNodeRelationDO.java | 96 + .../dal/ibatis/IbatisPipelineDAO.java | 99 + .../ibatis/IbatisPipelineNodeRelationDAO.java | 129 + .../ibatis/PipelineParameterTypeHandler.java | 48 + .../pipeline/impl/PipelineServiceImpl.java | 619 ++ .../biz/config/record/LogRecordService.java | 36 + .../biz/config/record/dal/LogRecordDAO.java | 34 + .../record/dal/dataobject/LogRecordDO.java | 101 + .../record/dal/ibatis/IbatisLogRecordDAO.java | 103 + .../record/impl/LogRecordServiceImpl.java | 256 + .../biz/config/utils/ListTypeHandler.java | 50 + .../biz/config/utils/MapTypeHandler.java | 48 + .../manager/biz/monitor/AlarmController.java | 30 + .../manager/biz/monitor/AlarmRecovery.java | 43 + .../otter/manager/biz/monitor/Monitor.java | 36 + .../monitor/MonitorRuleExplorerRegisty.java | 103 + .../manager/biz/monitor/MonitorTimer.java | 32 + .../manager/biz/monitor/PassiveMonitor.java | 34 + .../biz/monitor/impl/AbstractRuleMonitor.java | 205 + .../monitor/impl/AlarmRecoveryDelayed.java | 112 + .../monitor/impl/DefaultAlarmController.java | 173 + .../monitor/impl/DelayStatRuleMonitor.java | 102 + .../monitor/impl/ExceptionRuleMonitor.java | 108 + .../biz/monitor/impl/GlobalMonitor.java | 257 + .../biz/monitor/impl/PipelineMonitor.java | 138 + .../impl/PipelineTimeoutRuleMonitor.java | 95 + .../impl/PositionTimeoutRuleMonitor.java | 104 + .../impl/ProcessTimeoutRuleMonitor.java | 117 + .../monitor/impl/RestartAlarmRecovery.java | 170 + .../manager/biz/monitor/impl/SelfMonitor.java | 111 + .../biz/remote/ArbitrateRemoteService.java | 39 + .../biz/remote/CanalRemoteService.java | 40 + .../biz/remote/ConfigRemoteService.java | 59 + .../manager/biz/remote/NodeRemoteService.java | 132 + .../biz/remote/StatsRemoteService.java | 45 + .../impl/ArbitrateRemoteServiceImpl.java | 94 + .../remote/impl/CanalRemoteServiceImpl.java | 56 + .../remote/impl/ConfigRemoteServiceImpl.java | 192 + .../biz/remote/impl/NodeMBeanServiceImpl.java | 226 + .../remote/impl/StatsRemoteServiceImpl.java | 234 + .../RemoteExceptionLoggerInterceptor.java | 71 + .../biz/statistics/delay/DelayCounter.java | 30 + .../statistics/delay/DelayStatService.java | 40 + .../statistics/delay/dal/DelayStatDAO.java | 45 + .../delay/dal/dataobject/DelayStatDO.java | 92 + .../delay/dal/ibatis/IbatisDelayStatDAO.java | 90 + .../delay/impl/DelayStatServiceImpl.java | 141 + .../delay/param/DelayCountParam.java | 43 + .../statistics/delay/param/DelayStatInfo.java | 69 + .../delay/param/TimelineDelayCondition.java | 53 + .../statistics/delay/param/TopDelayStat.java | 143 + .../statistics/stage/ProcessStatService.java | 36 + .../biz/statistics/stage/dal/ProcessDAO.java | 42 + .../stage/dal/dataobject/ProcessStatDO.java | 68 + .../stage/dal/ibatis/IbatisProcessDAO.java | 67 + .../stage/impl/ProcessStatServiceImpl.java | 67 + .../statistics/table/TableStatService.java | 50 + .../table/dal/TableHistoryStatDAO.java | 35 + .../statistics/table/dal/TableStatDAO.java | 42 + .../dal/dataobject/TableHistoryStatDO.java | 146 + .../table/dal/dataobject/TableStatDO.java | 128 + .../dal/ibatis/IbatisTableHistoryStatDAO.java | 42 + .../table/dal/ibatis/IbatisTableStatDAO.java | 80 + .../table/impl/TableStatServiceImpl.java | 272 + .../table/param/BehaviorHistoryCondition.java | 52 + .../table/param/BehaviorHistoryInfo.java | 206 + .../TimelineBehaviorHistoryCondition.java | 45 + .../throughput/ThroughputStatService.java | 43 + .../throughput/dal/ThroughputDAO.java | 48 + .../dal/dataobject/ThroughputStatDO.java | 120 + .../dal/ibatis/IbatisThroughputDAO.java | 90 + .../impl/ThroughputStatServiceImpl.java | 189 + .../throughput/param/AnalysisType.java | 34 + .../param/RealtimeThroughputCondition.java | 62 + .../throughput/param/ThroughputCondition.java | 62 + .../throughput/param/ThroughputInfo.java | 116 + .../param/TimelineThroughputCondition.java | 45 + .../otter/manager/biz/user/UserService.java | 46 + .../otter/manager/biz/user/dal/UserDAO.java | 50 + .../biz/user/dal/dataobject/UserDO.java | 100 + .../biz/user/dal/ibatis/IbatisUserDAO.java | 89 + .../biz/user/impl/UserServiceImpl.java | 162 + .../manager/biz/utils/DataSourceChecker.java | 323 + .../otter/manager/biz/utils/RegexUtils.java | 66 + .../resources/spring/otter-manager-alarm.xml | 34 + .../spring/otter-manager-arbitrate.xml | 17 + .../spring/otter-manager-autokeeper.xml | 18 + .../resources/spring/otter-manager-dal.xml | 65 + .../spring/otter-manager-datasource.xml | 45 + .../spring/otter-manager-monitor.xml | 33 + .../resources/spring/otter-manager-remote.xml | 95 + .../spring/otter-manager-service.xml | 196 + .../sqlmap/sqlmap-mapping-alarmRule.xml | 96 + .../sqlmap/sqlmap-mapping-autokeeper.xml | 75 + .../resources/sqlmap/sqlmap-mapping-canal.xml | 110 + .../sqlmap/sqlmap-mapping-channel.xml | 133 + .../sqlmap/sqlmap-mapping-datacolumnpair.xml | 77 + .../sqlmap-mapping-datacolumnpairgroup.xml | 72 + .../sqlmap/sqlmap-mapping-datamatrix.xml | 110 + .../sqlmap/sqlmap-mapping-datamedia.xml | 132 + .../sqlmap/sqlmap-mapping-datamediapair.xml | 142 + .../sqlmap/sqlmap-mapping-datamediasource.xml | 108 + .../sqlmap/sqlmap-mapping-delayStat.xml | 121 + .../sqlmap/sqlmap-mapping-logrecord.xml | 153 + .../resources/sqlmap/sqlmap-mapping-node.xml | 118 + .../sqlmap/sqlmap-mapping-pipeline.xml | 137 + .../sqlmap-mapping-pipelinenoderelation.xml | 83 + .../sqlmap/sqlmap-mapping-systemParameter.xml | 30 + .../sqlmap-mapping-tableHistoryStat.xml | 50 + .../sqlmap/sqlmap-mapping-tableStat.xml | 92 + .../sqlmap/sqlmap-mapping-throughputStat.xml | 126 + .../resources/sqlmap/sqlmap-mapping-user.xml | 127 + .../biz/src/main/resources/sqlmap/sqlmap.xml | 37 + .../otter/manager/biz/BaseOtterTest.java | 57 + .../impl/AutoKeeperCollectorTest.java | 59 + .../AbstractRuleMonitorInPeriodTest.java | 89 + .../manager/biz/monitor/AlarmServiceTest.java | 27 + .../biz/monitor/ExceptionRuleMonitorTest.java | 78 + .../biz/monitor/GlobalMonitorTest.java | 144 + .../manager/biz/service/NodeSerivceTest.java | 79 + .../biz/service/PipelineSerivceTest.java | 23 + .../src/test/resources/applicationContext.xml | 23 + manager/deployer/pom.xml | 163 + .../deployer/src/main/assembly/component.xml | 42 + manager/deployer/src/main/assembly/dev.xml | 13 + manager/deployer/src/main/assembly/mvn.xml | 39 + .../deployer/src/main/assembly/release.xml | 13 + manager/deployer/src/main/bin/startup.bat | 25 + manager/deployer/src/main/bin/startup.sh | 107 + manager/deployer/src/main/bin/stop.sh | 53 + .../manager/deployer/JettyEmbedServer.java | 87 + .../deployer/OtterManagerLauncher.java | 78 + manager/deployer/src/main/resources/jetty.xml | 89 + .../deployer/src/main/resources/logback.xml | 146 + .../src/main/resources/otter.properties | 41 + .../resources/sql/otter-manager-schema.sql | 259 + .../resources/webapp/META-INF/MANIFEST.MF | 2 + .../webapp/WEB-INF/applicationContext.xml | 26 + .../WEB-INF/common/pipeline-exception.xml | 35 + .../webapp/WEB-INF/common/pipeline.xml | 65 + .../webapp/WEB-INF/common/resources.xml | 40 + .../resources/webapp/WEB-INF/common/uris.xml | 140 + .../common/webx-component-and-root.xml | 113 + .../webapp/WEB-INF/common/webx-component.xml | 29 + .../resources/webapp/WEB-INF/home/form.xml | 935 ++ .../src/main/resources/webapp/WEB-INF/web.xml | 90 + .../resources/webapp/WEB-INF/webx-home.xml | 35 + .../main/resources/webapp/WEB-INF/webx.xml | 220 + .../resources/webapp/css/JSONFormatter.css | 16 + .../src/main/resources/webapp/css/commons.css | 661 ++ .../src/main/resources/webapp/css/otter.css | 85 + .../src/main/resources/webapp/css/skin.css | 283 + .../main/resources/webapp/images/Thumbs.db | Bin 0 -> 162304 bytes .../main/resources/webapp/images/alarm.png | Bin 0 -> 1150 bytes .../main/resources/webapp/images/alarm_on.png | Bin 0 -> 3861 bytes .../resources/webapp/images/button_hover.png | Bin 0 -> 3084 bytes .../resources/webapp/images/button_normal.png | Bin 0 -> 3551 bytes .../main/resources/webapp/images/down1.png | Bin 0 -> 353 bytes .../main/resources/webapp/images/down2.png | Bin 0 -> 414 bytes .../src/main/resources/webapp/images/etl2.png | Bin 0 -> 15154 bytes .../src/main/resources/webapp/images/etl3.png | Bin 0 -> 283723 bytes .../main/resources/webapp/images/etl_1.png | Bin 0 -> 67528 bytes .../src/main/resources/webapp/images/exit.png | Bin 0 -> 3888 bytes .../resources/webapp/images/forbidden.png | Bin 0 -> 53172 bytes .../main/resources/webapp/images/head_bg.png | Bin 0 -> 2836 bytes .../main/resources/webapp/images/ico_add.png | Bin 0 -> 303 bytes .../main/resources/webapp/images/ico_del.png | Bin 0 -> 350 bytes .../main/resources/webapp/images/ico_edit.png | Bin 0 -> 628 bytes .../webapp/images/link_attachment_7.gif | Bin 0 -> 163 bytes .../main/resources/webapp/images/login_bg.png | Bin 0 -> 145515 bytes .../resources/webapp/images/login_box.png | Bin 0 -> 13308 bytes .../webapp/images/login_btn_hover.png | Bin 0 -> 2983 bytes .../webapp/images/login_btn_normal.png | Bin 0 -> 296 bytes .../resources/webapp/images/login_logo.png | Bin 0 -> 8670 bytes .../resources/webapp/images/login_shadow.png | Bin 0 -> 3585 bytes .../src/main/resources/webapp/images/logo.png | Bin 0 -> 46915 bytes .../main/resources/webapp/images/main_bg.png | Bin 0 -> 2864 bytes .../main/resources/webapp/images/nav_bg.png | Bin 0 -> 2857 bytes .../resources/webapp/images/nav_btn_bg22.png | Bin 0 -> 3211 bytes .../resources/webapp/images/nav_btn_bg3.png | Bin 0 -> 1996 bytes .../resources/webapp/images/nav_btn_bg33.png | Bin 0 -> 4856 bytes .../resources/webapp/images/nav_btn_bg44.png | Bin 0 -> 4594 bytes .../main/resources/webapp/images/nav_pass.png | Bin 0 -> 3662 bytes .../resources/webapp/images/nav_selected.png | Bin 0 -> 3652 bytes .../resources/webapp/images/pop_close.png | Bin 0 -> 3950 bytes .../main/resources/webapp/images/pop_left.png | Bin 0 -> 3546 bytes .../webapp/images/pop_leftbottom.png | Bin 0 -> 3693 bytes .../webapp/images/pop_lefttop_small.png | Bin 0 -> 6954 bytes .../resources/webapp/images/pop_midbottom.png | Bin 0 -> 3549 bytes .../webapp/images/pop_midtop_small.png | Bin 0 -> 3549 bytes .../resources/webapp/images/pop_right.png | Bin 0 -> 3547 bytes .../webapp/images/pop_rightbottom.png | Bin 0 -> 2973 bytes .../webapp/images/pop_righttop_small.png | Bin 0 -> 5186 bytes .../webapp/images/pop_tips_bottom.png | Bin 0 -> 2863 bytes .../resources/webapp/images/pop_tips_mid.png | Bin 0 -> 2812 bytes .../resources/webapp/images/pop_tips_top.png | Bin 0 -> 2929 bytes .../resources/webapp/images/search_btn.png | Bin 0 -> 654 bytes .../webapp/images/search_global_l.png | Bin 0 -> 3742 bytes .../webapp/images/search_global_m.png | Bin 0 -> 2822 bytes .../webapp/images/search_global_r.png | Bin 0 -> 2838 bytes .../webapp/images/search_global_r2.png | Bin 0 -> 2831 bytes .../webapp/images/search_global_r3.png | Bin 0 -> 2842 bytes .../resources/webapp/images/search_go.png | Bin 0 -> 3733 bytes .../resources/webapp/images/search_input.png | Bin 0 -> 4228 bytes .../resources/webapp/images/seeDetail.png | Bin 0 -> 615 bytes .../resources/webapp/images/tab_active.png | Bin 0 -> 3541 bytes .../main/resources/webapp/images/tab_bg2.png | Bin 0 -> 2848 bytes .../webapp/images/table_title_bg.png | Bin 0 -> 3595 bytes .../main/resources/webapp/images/tip_del.png | Bin 0 -> 19215 bytes .../resources/webapp/images/tip_warning.png | Bin 0 -> 19867 bytes .../src/main/resources/webapp/images/up1.png | Bin 0 -> 338 bytes .../src/main/resources/webapp/images/up2.png | Bin 0 -> 386 bytes .../main/resources/webapp/js/JSONFormatter.js | 164 + .../js/My97DatePicker/My97DatePicker.html | 49 + .../webapp/js/My97DatePicker/WdatePicker.js | 39 + .../webapp/js/My97DatePicker/calendar.js | 5 + .../webapp/js/My97DatePicker/config.js | 12 + .../webapp/js/My97DatePicker/lang/en.js | 14 + .../webapp/js/My97DatePicker/lang/zh-cn.js | 14 + .../webapp/js/My97DatePicker/lang/zh-tw.js | 14 + .../js/My97DatePicker/skin/WdatePicker.css | 10 + .../js/My97DatePicker/skin/datePicker.gif | Bin 0 -> 1043 bytes .../skin/default/datepicker.css | 246 + .../js/My97DatePicker/skin/default/img.gif | Bin 0 -> 1578 bytes .../js/My97DatePicker/skin/whyGreen/bg.jpg | Bin 0 -> 307 bytes .../skin/whyGreen/datepicker.css | 256 + .../js/My97DatePicker/skin/whyGreen/img.gif | Bin 0 -> 1679 bytes .../resources/webapp/js/analysisStatus.js | 355 + .../src/main/resources/webapp/js/dbCheck.js | 37 + .../main/resources/webapp/js/flot/excanvas.js | 1427 +++ .../resources/webapp/js/flot/excanvas.min.js | 1 + .../webapp/js/flot/jquery.colorhelpers.js | 179 + .../webapp/js/flot/jquery.colorhelpers.min.js | 1 + .../webapp/js/flot/jquery.flot.crosshair.js | 167 + .../js/flot/jquery.flot.crosshair.min.js | 1 + .../webapp/js/flot/jquery.flot.fillbetween.js | 183 + .../js/flot/jquery.flot.fillbetween.min.js | 1 + .../webapp/js/flot/jquery.flot.image.js | 238 + .../webapp/js/flot/jquery.flot.image.min.js | 1 + .../resources/webapp/js/flot/jquery.flot.js | 2599 ++++++ .../webapp/js/flot/jquery.flot.min.js | 6 + .../webapp/js/flot/jquery.flot.navigate.js | 336 + .../js/flot/jquery.flot.navigate.min.js | 1 + .../webapp/js/flot/jquery.flot.pie.js | 750 ++ .../webapp/js/flot/jquery.flot.pie.min.js | 1 + .../webapp/js/flot/jquery.flot.resize.js | 60 + .../webapp/js/flot/jquery.flot.resize.min.js | 1 + .../webapp/js/flot/jquery.flot.selection.js | 344 + .../js/flot/jquery.flot.selection.min.js | 1 + .../webapp/js/flot/jquery.flot.stack.js | 184 + .../webapp/js/flot/jquery.flot.stack.min.js | 1 + .../webapp/js/flot/jquery.flot.symbol.js | 70 + .../webapp/js/flot/jquery.flot.symbol.min.js | 1 + .../webapp/js/flot/jquery.flot.threshold.js | 103 + .../js/flot/jquery.flot.threshold.min.js | 1 + .../main/resources/webapp/js/flot/jquery.js | 8316 +++++++++++++++++ .../resources/webapp/js/flot/jquery.min.js | 23 + .../src/main/resources/webapp/js/gchartapi.js | 39 + .../resources/webapp/js/jquery-1.4.2.min.js | 154 + .../webapp/js/jquery.simplemodal-1.4.js | 696 ++ .../src/main/resources/webapp/js/nodeCheck.js | 39 + .../src/main/resources/webapp/js/pop.js | 63 + .../src/main/resources/webapp/js/trcolor.js | 21 + .../templates/home/control/navigation.vm | 97 + .../webapp/templates/home/layout/default.vm | 22 + .../templates/home/screen/addAlarmRule.vm | 94 + .../home/screen/addBatchDataMediaPair.vm | 59 + .../webapp/templates/home/screen/addCanal.vm | 460 + .../templates/home/screen/addChannel.vm | 94 + .../templates/home/screen/addColumnPair.vm | 127 + .../home/screen/addColumnPairGroup.vm | 89 + .../templates/home/screen/addDataMatrix.vm | 73 + .../templates/home/screen/addDataMedia.vm | 90 + .../templates/home/screen/addDataMediaPair.vm | 110 + .../templates/home/screen/addDataSource.vm | 111 + .../webapp/templates/home/screen/addNode.vm | 123 + .../templates/home/screen/addPipeline.vm | 361 + .../webapp/templates/home/screen/addUser.vm | 74 + .../templates/home/screen/addZookeeper.vm | 61 + .../templates/home/screen/alarmRuleList.vm | 177 + .../templates/home/screen/alarmSystemList.vm | 190 + .../home/screen/analysisDelayStat.vm | 143 + .../home/screen/analysisStageStat.vm | 288 + .../home/screen/analysisThroughputHistory.vm | 213 + .../home/screen/analysisThroughputStat.vm | 81 + .../templates/home/screen/analysisTopStat.vm | 101 + .../home/screen/autoKeeperClientPath.vm | 155 + .../home/screen/autoKeeperClustersDetail.vm | 112 + .../home/screen/autoKeeperClustersList.vm | 112 + .../home/screen/behaviorHistoryCurve.vm | 219 + .../webapp/templates/home/screen/canalInfo.vm | 179 + .../webapp/templates/home/screen/canalList.vm | 118 + .../templates/home/screen/channelInfo.vm | 45 + .../templates/home/screen/channelList.vm | 318 + .../templates/home/screen/checkDelayStat.vm | 3 + .../templates/home/screen/dataMatrixInfo.vm | 55 + .../templates/home/screen/dataMatrixList.vm | 121 + .../templates/home/screen/dataMediaInfo.vm | 65 + .../templates/home/screen/dataMediaList.vm | 120 + .../home/screen/dataMediaPairInfo.vm | 97 + .../home/screen/dataMediaPairList.vm | 111 + .../templates/home/screen/dataSourceInfo.vm | 51 + .../templates/home/screen/dataSourceList.vm | 121 + .../templates/home/screen/editAlarmRule.vm | 96 + .../templates/home/screen/editAutoKeeper.vm | 59 + .../webapp/templates/home/screen/editCanal.vm | 509 + .../templates/home/screen/editChannel.vm | 102 + .../templates/home/screen/editDataMatrix.vm | 79 + .../templates/home/screen/editDataMedia.vm | 92 + .../home/screen/editDataMediaPair.vm | 110 + .../templates/home/screen/editDataSource.vm | 114 + .../webapp/templates/home/screen/editNode.vm | 127 + .../templates/home/screen/editParameter.vm | 39 + .../templates/home/screen/editPipeline.vm | 378 + .../webapp/templates/home/screen/editUser.vm | 77 + .../webapp/templates/home/screen/error.vm | 7 + .../webapp/templates/home/screen/forbidden.vm | 5 + .../webapp/templates/home/screen/index.vm | 15 + .../webapp/templates/home/screen/initSql.vm | 70 + .../templates/home/screen/logRecordList.vm | 186 + .../templates/home/screen/logRecordTab.vm | 222 + .../webapp/templates/home/screen/login.vm | 45 + .../templates/home/screen/monitor/getNodes.vm | 1 + .../home/screen/monitor/monitorTrigger.vm | 2 + .../templates/home/screen/monitor/ok.vm | 11 + .../webapp/templates/home/screen/nodeInfo.vm | 221 + .../webapp/templates/home/screen/nodeList.vm | 134 + .../templates/home/screen/pipelineInfo.vm | 150 + .../templates/home/screen/pipelineList.vm | 159 + .../templates/home/screen/selectCanal.vm | 110 + .../templates/home/screen/selectDataMedia.vm | 115 + .../templates/home/screen/selectDataSource.vm | 178 + .../templates/home/screen/systemParameter.vm | 103 + .../templates/home/screen/systemReduction.vm | 29 + .../templates/home/screen/userManager.vm | 99 + .../webapp/templates/home/screen/wikiGuide.vm | 39 + .../webapp/templates/home/screen/zkError.vm | 1 + manager/pom.xml | 94 + manager/web/pom.xml | 35 + .../manager/web/common/NumberFormatUtil.java | 230 + .../otter/manager/web/common/WebConstant.java | 79 + .../web/common/api/ApiAuthService.java | 29 + .../web/common/api/DefaultApiAuthService.java | 31 + .../manager/web/common/api/JsonResult.java | 64 + .../manager/web/common/model/SeniorCanal.java | 76 + .../web/common/model/SeniorChannel.java | 36 + .../web/common/model/SeniorDataMatrix.java | 34 + .../web/common/model/SeniorDataMedia.java | 52 + .../web/common/model/SeniorDataMediaPair.java | 47 + .../common/model/SeniorDataMediaSource.java | 58 + .../manager/web/common/model/SeniorNode.java | 37 + .../home/module/action/AbstractAction.java | 38 + .../home/module/action/AlarmRuleAction.java | 218 + .../action/AutoKeeperClusterAction.java | 97 + .../web/home/module/action/CanalAction.java | 206 + .../web/home/module/action/ChannelAction.java | 177 + .../home/module/action/ColumnPairAction.java | 144 + .../module/action/ColumnPairGroupAction.java | 72 + .../home/module/action/DataMatrixAction.java | 89 + .../home/module/action/DataMediaAction.java | 125 + .../module/action/DataMediaPairAction.java | 279 + .../module/action/DataMediaSourceAction.java | 122 + .../web/home/module/action/NodeAction.java | 135 + .../home/module/action/PipelineAction.java | 198 + .../home/module/action/PositionAction.java | 50 + .../module/action/SwitchWarmupAction.java | 49 + .../module/action/SystemParameterAction.java | 80 + .../web/home/module/action/UserAction.java | 119 + .../web/home/module/screen/AddAlarmRule.java | 37 + .../module/screen/AddBatchDataMediaPair.java | 44 + .../web/home/module/screen/AddCanal.java | 44 + .../web/home/module/screen/AddColumnPair.java | 79 + .../module/screen/AddColumnPairGroup.java | 112 + .../home/module/screen/AddDataMediaPair.java | 44 + .../web/home/module/screen/AddNode.java | 45 + .../web/home/module/screen/AddPipeline.java | 48 + .../web/home/module/screen/AddZookeeper.java | 34 + .../web/home/module/screen/AlarmRuleList.java | 46 + .../home/module/screen/AlarmSystemList.java | 57 + .../home/module/screen/AnalysisDelayStat.java | 82 + .../home/module/screen/AnalysisStageStat.java | 150 + .../screen/AnalysisThroughputHistory.java | 105 + .../module/screen/AnalysisThroughputStat.java | 80 + .../home/module/screen/AnalysisTopStat.java | 109 + .../module/screen/AutoKeeperClientPath.java | 58 + .../screen/AutoKeeperClustersDetail.java | 50 + .../module/screen/AutoKeeperClustersList.java | 58 + .../module/screen/BehaviorHistoryCurve.java | 105 + .../web/home/module/screen/CanalInfo.java | 73 + .../web/home/module/screen/CanalList.java | 86 + .../web/home/module/screen/ChannelInfo.java | 36 + .../web/home/module/screen/ChannelList.java | 116 + .../home/module/screen/CheckDelayStat.java | 167 + .../home/module/screen/DataMatrixInfo.java | 50 + .../home/module/screen/DataMatrixList.java | 104 + .../web/home/module/screen/DataMediaInfo.java | 60 + .../web/home/module/screen/DataMediaList.java | 85 + .../home/module/screen/DataMediaPairInfo.java | 59 + .../home/module/screen/DataMediaPairList.java | 81 + .../home/module/screen/DataSourceInfo.java | 46 + .../home/module/screen/DataSourceList.java | 96 + .../web/home/module/screen/EditAlarmRule.java | 43 + .../home/module/screen/EditAutoKeeper.java | 46 + .../web/home/module/screen/EditCanal.java | 49 + .../web/home/module/screen/EditChannel.java | 53 + .../home/module/screen/EditDataMatrix.java | 40 + .../web/home/module/screen/EditDataMedia.java | 44 + .../home/module/screen/EditDataMediaPair.java | 50 + .../home/module/screen/EditDataSource.java | 44 + .../web/home/module/screen/EditNode.java | 63 + .../web/home/module/screen/EditPipeline.java | 59 + .../web/home/module/screen/EditUser.java | 49 + .../web/home/module/screen/LogRecordList.java | 70 + .../web/home/module/screen/LogRecordTab.java | 76 + .../web/home/module/screen/NodeInfo.java | 63 + .../web/home/module/screen/NodeList.java | 86 + .../manager/web/home/module/screen/Ok.java | 30 + .../web/home/module/screen/PipelineInfo.java | 41 + .../web/home/module/screen/PipelineList.java | 111 + .../web/home/module/screen/SelectCanal.java | 82 + .../home/module/screen/SelectDataMedia.java | 59 + .../home/module/screen/SelectDataSource.java | 58 + .../home/module/screen/SystemParameter.java | 35 + .../home/module/screen/SystemReduction.java | 86 + .../web/home/module/screen/UserManager.java | 63 + .../module/screen/api/AbstractJsonScreen.java | 74 + .../home/module/screen/api/ChannelCheck.java | 47 + .../web/home/module/screen/api/ChannelOp.java | 55 + .../web/home/module/screen/api/NodeOp.java | 79 + .../web/home/module/screen/api/TopDelay.java | 81 + .../module/screen/monitor/MonitorTrigger.java | 62 + .../web/webx/valve/AuthContextValve.java | 229 + .../web/webx/valve/PrepareExceptionValve.java | 65 + .../webx/valve/auth/AuthorizeProtected.java | 49 + .../web/webx/valve/auth/RegExpURLAnalyze.java | 83 + .../auth/action/ActionPatternHolder.java | 60 + .../valve/auth/action/ActionProtected.java | 28 + .../auth/action/ActionProtectedEditor.java | 107 + .../auth/action/ActionProtectedImpl.java | 81 + .../webx/valve/auth/url/URLPatternHolder.java | 48 + .../web/webx/valve/auth/url/URLProtected.java | 28 + .../valve/auth/url/URLProtectedEditor.java | 99 + .../webx/valve/auth/url/URLProtectedImpl.java | 86 + node/canal/pom.xml | 65 + .../CanalCommmunicationClient.java | 100 + .../communication/CanalConfigClient.java | 76 + .../extend/ha/AuthenticationInfoUtils.java | 44 + .../canal/extend/ha/MediaHAController.java | 171 + .../spring/otter-canal-communication.xml | 37 + node/common/pom.xml | 128 + .../NodeCommmunicationClient.java | 138 + .../NodeCommunicationEndpoint.java | 68 + .../common/config/ConfigClientService.java | 73 + .../node/common/config/NodeTaskListener.java | 32 + .../node/common/config/NodeTaskService.java | 45 + .../config/impl/ConfigClientServiceImpl.java | 212 + .../impl/InternalConfigClientService.java | 33 + .../config/impl/NodeTaskServiceImpl.java | 471 + .../node/common/config/model/NodeTask.java | 95 + .../statistics/StatisticsClientService.java | 57 + .../impl/StatisticsClientServiceImpl.java | 154 + .../spring/otter-node-communication.xml | 46 + .../resources/spring/otter-node-config.xml | 18 + .../spring/otter-node-statistics.xml | 14 + .../ArbitrateRemoteServiceIntegration.java | 57 + .../otter/node/common/BaseOtterTest.java | 28 + .../ConfigClientServiceIntegration.java | 59 + .../config/ConfigClientServiceTest.java | 110 + .../config/NodeTaskServiceIntegration.java | 43 + .../common/config/NodeTaskServiceTest.java | 217 + .../StatisticsClientServiceIntegration.java | 102 + .../src/test/resources/applicationContext.xml | 24 + node/deployer/pom.xml | 156 + node/deployer/src/main/assembly/component.xml | 58 + node/deployer/src/main/assembly/dev.xml | 11 + node/deployer/src/main/assembly/mvn.xml | 11 + node/deployer/src/main/assembly/release.xml | 11 + node/deployer/src/main/bin/startup.bat | 27 + node/deployer/src/main/bin/startup.sh | 127 + node/deployer/src/main/bin/stop.sh | 53 + .../otter/node/deployer/OtterLauncher.java | 69 + .../src/main/resources/applicationContext.xml | 28 + node/deployer/src/main/resources/logback.xml | 213 + .../src/main/resources/otter.properties | 16 + .../resources/sql/otter-system-ddl-mysql.sql | 48 + .../resources/sql/otter-system-ddl-oracle.sql | 44 + .../deployer/OtterLauncherIntegration.java | 60 + node/etl/pom.xml | 92 + node/etl/src/main/java/Batch.proto | 101 + .../otter/node/etl/OtterConstants.java | 43 + .../otter/node/etl/OtterContextLocator.java | 82 + .../otter/node/etl/OtterController.java | 416 + .../otter/node/etl/OtterControllerMBean.java | 129 + .../common/datasource/DataSourceService.java | 44 + .../datasource/impl/DBDataSourceService.java | 290 + .../common/db/dialect/AbstractDbDialect.java | 212 + .../db/dialect/AbstractSqlTemplate.java | 105 + .../node/etl/common/db/dialect/DbDialect.java | 67 + .../common/db/dialect/DbDialectFactory.java | 142 + .../common/db/dialect/DbDialectGenerator.java | 74 + .../etl/common/db/dialect/SqlTemplate.java | 40 + .../common/db/dialect/mysql/MysqlDialect.java | 67 + .../db/dialect/mysql/MysqlSqlTemplate.java | 78 + .../db/dialect/oracle/OracleDialect.java | 72 + .../db/dialect/oracle/OracleSqlTemplate.java | 90 + .../common/db/lob/AutomaticJdbcExtractor.java | 119 + .../db/lob/LazyNativeJdbcExtractor.java | 104 + .../common/db/utils/ByteArrayConverter.java | 72 + .../db/utils/SqlTimestampConverter.java | 154 + .../node/etl/common/db/utils/SqlUtils.java | 336 + .../node/etl/common/io/EncryptUtils.java | 63 + .../node/etl/common/io/EncryptedData.java | 56 + .../etl/common/io/compress/Compressor.java | 127 + .../compress/exception/CompressException.java | 64 + .../io/compress/impl/AbstractCompressor.java | 169 + .../io/compress/impl/PackableObject.java | 146 + .../compress/impl/bzip2/BZip2Compressor.java | 83 + .../io/compress/impl/gzip/GzipCompressor.java | 98 + .../etl/common/io/crypto/AESException.java | 64 + .../node/etl/common/io/crypto/AESUtils.java | 137 + .../io/signature/ChecksumException.java | 65 + .../common/io/signature/ChecksumUtils.java | 37 + .../node/etl/common/io/signature/Crc32C.java | 368 + .../etl/common/jetty/JettyEmbedServer.java | 96 + .../jmx/JmxConnectorServerFactoryBean.java | 96 + .../node/etl/common/jmx/StageAggregation.java | 196 + .../common/jmx/StageAggregationCollector.java | 72 + .../otter/node/etl/common/pipe/Pipe.java | 43 + .../node/etl/common/pipe/PipeDataType.java | 50 + .../otter/node/etl/common/pipe/PipeKey.java | 49 + .../common/pipe/exception/PipeException.java | 65 + .../common/pipe/impl/RowDataPipeDelegate.java | 218 + .../pipe/impl/http/AbstractHttpPipe.java | 218 + .../pipe/impl/http/AttachmentHttpPipe.java | 187 + .../common/pipe/impl/http/HttpPipeKey.java | 68 + .../pipe/impl/http/LimitedInputStream.java | 60 + .../pipe/impl/http/RemoteUrlBuilder.java | 80 + .../pipe/impl/http/RowDataHttpPipe.java | 357 + .../pipe/impl/http/archive/ArchiveBean.java | 386 + .../impl/http/archive/ArchiveException.java | 64 + .../http/archive/ArchiveRetriverCallback.java | 34 + .../http/archive/LazyFileInputStream.java | 54 + .../pipe/impl/memory/AbstractMemoryPipe.java | 51 + .../pipe/impl/memory/MemoryPipeKey.java | 93 + .../pipe/impl/memory/RowDataMemoryPipe.java | 160 + .../common/pipe/impl/rpc/AbstractRpcPipe.java | 77 + .../common/pipe/impl/rpc/RowDataRpcPipe.java | 83 + .../etl/common/pipe/impl/rpc/RpcPipeKey.java | 98 + .../node/etl/common/task/GlobalTask.java | 173 + .../FileBatchConflictDetectService.java | 38 + .../conflict/exception/ConflictException.java | 65 + .../FileBatchConflictDetectServiceImpl.java | 207 + .../etl/conflict/model/ConflictEventType.java | 30 + .../model/FileConflictDetectEvent.java | 45 + .../otter/node/etl/extract/ExtractTask.java | 141 + .../otter/node/etl/extract/SetlFuture.java | 51 + .../extract/exceptions/ExtractException.java | 64 + .../extract/extractor/AbstractExtractor.java | 57 + .../extract/extractor/DatabaseExtractor.java | 697 ++ .../etl/extract/extractor/FileExtractor.java | 253 + .../extract/extractor/FreedomExtractor.java | 233 + .../etl/extract/extractor/GroupExtractor.java | 166 + .../etl/extract/extractor/OtterExtractor.java | 30 + .../extractor/OtterExtractorFactory.java | 63 + .../extract/extractor/ProcessorExtractor.java | 142 + .../etl/extract/extractor/ViewExtractor.java | 134 + .../alibaba/otter/node/etl/load/LoadTask.java | 166 + .../etl/load/exception/LoadException.java | 65 + .../etl/load/loader/AbstractLoadContext.java | 105 + .../node/etl/load/loader/LoadContext.java | 25 + .../etl/load/loader/LoadStatsTracker.java | 194 + .../node/etl/load/loader/OtterLoader.java | 28 + .../etl/load/loader/OtterLoaderFactory.java | 161 + .../etl/load/loader/db/DataBatchLoader.java | 247 + .../node/etl/load/loader/db/DbLoadAction.java | 893 ++ .../node/etl/load/loader/db/DbLoadData.java | 126 + .../node/etl/load/loader/db/DbLoadDumper.java | 115 + .../node/etl/load/loader/db/DbLoadMerger.java | 345 + .../etl/load/loader/db/FileLoadAction.java | 410 + .../etl/load/loader/db/FileloadDumper.java | 109 + .../load/loader/db/context/DbLoadContext.java | 62 + .../loader/db/context/FileLoadContext.java | 30 + .../interceptor/log/LogLoadInterceptor.java | 139 + .../AbstractOperationInterceptor.java | 203 + .../operation/CanalMysqlInterceptor.java | 35 + .../operation/CanalOracleInterceptor.java | 39 + .../OperationInterceptorFactory.java | 91 + .../sql/SqlBuilderLoadInterceptor.java | 149 + .../interceptor/AbstractLoadInterceptor.java | 54 + .../interceptor/ChainLoadInterceptor.java | 109 + .../loader/interceptor/LoadInterceptor.java | 41 + .../etl/load/loader/weight/WeightBarrier.java | 123 + .../etl/load/loader/weight/WeightBuckets.java | 158 + .../load/loader/weight/WeightController.java | 94 + .../node/etl/model/protobuf/BatchProto.java | 5729 ++++++++++++ .../otter/node/etl/select/SelectTask.java | 614 ++ .../select/exceptions/SelectException.java | 43 + .../node/etl/select/selector/Message.java | 52 + .../etl/select/selector/MessageDumper.java | 108 + .../etl/select/selector/MessageParser.java | 735 ++ .../etl/select/selector/OtterSelector.java | 72 + .../select/selector/OtterSelectorFactory.java | 36 + .../selector/canal/CanalEmbedSelector.java | 449 + .../selector/canal/OtterAlarmHandler.java | 53 + .../canal/OtterDownStreamHandler.java | 203 + .../node/etl/transform/TransformTask.java | 145 + .../exception/TransformException.java | 65 + .../transformer/AbstractOtterTransformer.java | 27 + .../transformer/FileDataTransformer.java | 40 + .../transformer/OtterTransformer.java | 28 + .../transformer/OtterTransformerContext.java | 65 + .../transformer/OtterTransformerFactory.java | 195 + .../transformer/RowDataTransformer.java | 413 + node/etl/src/main/java/protoc.exe | Bin 0 -> 1766414 bytes node/etl/src/main/java/protocol.txt | 1 + node/etl/src/main/resources/jetty/jetty.xml | 101 + .../resources/spring/otter-node-common.xml | 38 + .../resources/spring/otter-node-conflict.xml | 13 + .../resources/spring/otter-node-database.xml | 49 + .../resources/spring/otter-node-extension.xml | 20 + .../resources/spring/otter-node-extract.xml | 53 + .../main/resources/spring/otter-node-jmx.xml | 36 + .../main/resources/spring/otter-node-load.xml | 90 + .../main/resources/spring/otter-node-pipe.xml | 67 + .../resources/spring/otter-node-select.xml | 12 + .../resources/spring/otter-node-transform.xml | 16 + .../ArbitrateRemoteServiceIntegration.java | 57 + .../alibaba/otter/node/etl/BaseDbTest.java | 61 + .../alibaba/otter/node/etl/BaseOtterTest.java | 28 + .../alibaba/otter/node/etl/SqlUtilsTest.java | 50 + .../com/alibaba/otter/node/etl/TestUtils.java | 113 + .../datasource/AbstractDbDialectTest.java | 84 + .../datasource/TestMysqlUnsignedInt.java | 84 + .../datasource/TestMysqlUnsignedNumber.java | 82 + .../etl/common/db/BitTableIntegration.java | 170 + .../etl/common/db/DbDialectIntegration.java | 160 + .../etl/common/db/DbDialectTableTest.java | 70 + .../node/etl/common/db/DbDialectTest.java | 282 + .../etl/common/db/DbPerfIntergration.java | 164 + .../node/etl/common/db/SqlTemplateTest.java | 78 + .../etl/common/db/TimeTableIntegration.java | 171 + .../node/etl/common/io/AESUtilsTest.java | 58 + .../etl/common/io/ArchiveBeanIntegration.java | 103 + .../node/etl/common/io/ArchiveBeanTest.java | 108 + .../common/io/Aria2cDownLoadIntegration.java | 59 + .../node/etl/common/io/ChecksumUtilsTest.java | 44 + .../node/etl/common/io/CompressorTest.java | 128 + .../common/jetty/JettyEmbedIntegration.java | 47 + .../etl/common/jmx/JmxLoaderIntegration.java | 81 + .../etl/common/jmx/StageAggregationTest.java | 57 + .../etl/common/pipe/HttpPipeIntegration.java | 219 + .../node/etl/common/pipe/MemoryPipeTest.java | 85 + .../node/etl/common/pipe/RpcPipeTest.java | 135 + ...BatchConflictDetectServiceIntegration.java | 125 + .../etl/extract/DatabaseExtractorTest.java | 227 + .../EventProcessorFactoryIntegration.java | 45 + .../etl/extract/FreedomExtractorTest.java | 210 + .../launcher/ArbitrateInitIntegration.java | 83 + .../OtterLoaderFactoryIntegration.java | 77 + .../otter/node/etl/load/DbLoadActionTest.java | 329 + .../otter/node/etl/load/DbLoadMergerTest.java | 358 + .../node/etl/load/FileLoadActionTest.java | 197 + .../etl/load/LocalFileLoaderActionTest.java | 140 + .../node/etl/load/WeightBarrierTest.java | 91 + .../otter/node/etl/load/WeightBucketTest.java | 89 + .../node/etl/load/WeightControllerTest.java | 101 + .../etl/select/CanalClientIntegration.java | 42 + .../OtterDownStreamHandlerIntergration.java | 120 + .../etl/transform/OtterTransformerTest.java | 243 + .../src/test/resources/applicationContext.xml | 28 + .../src/test/resources/compress/geo.protodata | Bin 0 -> 118588 bytes .../etl/src/test/resources/sql/mysql_init.sql | 150 + .../src/test/resources/sql/oracle_init.sql | 142 + node/extend/pom.xml | 27 + .../fileresolver/AbstractFileResolver.java | 34 + .../extend/fileresolver/TestFileResolver.java | 42 + .../processor/AbstractEventProcessor.java | 53 + .../extend/processor/HintEventProcessor.java | 17 + .../extend/processor/TestEventProcessor.java | 122 + node/pom.xml | 58 + pom.xml | 414 + shared/arbitrate/pom.xml | 52 + .../arbitrate/ArbitrateEventService.java | 47 + .../arbitrate/ArbitrateManageService.java | 39 + .../arbitrate/ArbitrateViewService.java | 67 + .../exception/ArbitrateException.java | 53 + .../arbitrate/impl/ArbitrateConstants.java | 120 + .../shared/arbitrate/impl/ArbitrateEvent.java | 26 + .../impl/ArbitrateEventServiceImpl.java | 102 + .../impl/ArbitrateManageServiceImpl.java | 72 + .../impl/ArbitrateViewServiceImpl.java | 261 + .../impl/alarm/AlarmClientService.java | 62 + .../ArbitrateCommmunicationClient.java | 129 + .../impl/config/ArbitrateConfig.java | 69 + .../impl/config/ArbitrateConfigRegistry.java | 40 + .../impl/config/ArbitrateConfigUtils.java | 105 + .../impl/interceptor/LogInterceptor.java | 202 + .../impl/manage/ChannelArbitrateEvent.java | 394 + .../impl/manage/NodeArbitrateEvent.java | 97 + .../impl/manage/NodeSessionExpired.java | 48 + .../impl/manage/PipelineArbitrateEvent.java | 90 + .../impl/manage/SystemArbitrateEvent.java | 110 + .../impl/manage/helper/ManagePathUtils.java | 178 + .../arbitrate/impl/setl/ArbitrateFactory.java | 164 + .../impl/setl/ArbitrateLifeCycle.java | 47 + .../impl/setl/ExtractArbitrateEvent.java | 33 + .../impl/setl/LoadArbitrateEvent.java | 35 + .../impl/setl/MainStemArbitrateEvent.java | 104 + .../impl/setl/SelectArbitrateEvent.java | 33 + .../impl/setl/TerminArbitrateEvent.java | 33 + .../impl/setl/ToolArbitrateEvent.java | 160 + .../impl/setl/TransformArbitrateEvent.java | 33 + .../AbstractDelegateArbitrateEvent.java | 72 + .../ExtractDelegateArbitrateEvent.java | 47 + .../delegate/LoadDelegateArbitrateEvent.java | 47 + .../SelectDelegateArbitrateEvent.java | 47 + .../TerminDelegateArbitrateEvent.java | 59 + .../TransformDelegateArbitrateEvent.java | 47 + .../setl/fastrpc/FastRpcStageController.java | 58 + .../fastrpc/FastRpcStageEventDispatcher.java | 82 + .../setl/helper/RemedyIndexComparator.java | 34 + .../impl/setl/helper/ReplyProcessQueue.java | 148 + .../impl/setl/helper/StageComparator.java | 55 + .../impl/setl/helper/StagePathUtils.java | 192 + .../impl/setl/helper/StageProgress.java | 63 + .../impl/setl/helper/TerminProcessQueue.java | 118 + .../impl/setl/lb/AbstractLoadBalance.java | 82 + .../setl/lb/ExtractRandomLoadBanlance.java | 40 + .../setl/lb/ExtractRoundRobinLoadBalance.java | 40 + .../impl/setl/lb/ExtractStickLoadBalance.java | 34 + .../arbitrate/impl/setl/lb/LoadBalance.java | 29 + .../impl/setl/lb/LoadBalanceFactory.java | 63 + .../impl/setl/lb/RandomLoadBalance.java | 69 + .../impl/setl/lb/RoundRobinLoadBalance.java | 73 + .../impl/setl/lb/StickLoadBalance.java | 91 + .../setl/lb/TransformRandomLoadBanlance.java | 40 + .../lb/TransformRoundRobinLoadBalance.java | 40 + .../setl/lb/TransformStickLoadBalance.java | 32 + .../memory/ExtractMemoryArbitrateEvent.java | 66 + .../setl/memory/LoadMemoryArbitrateEvent.java | 95 + .../setl/memory/MemoryStageController.java | 229 + .../memory/SelectMemoryArbitrateEvent.java | 77 + .../memory/TerminMemoryArbitrateEvent.java | 138 + .../memory/TransformMemoryArbitrateEvent.java | 66 + .../impl/setl/monitor/MainstemMonitor.java | 307 + .../arbitrate/impl/setl/monitor/Monitor.java | 30 + .../impl/setl/monitor/MonitorScheduler.java | 92 + .../impl/setl/monitor/NodeMonitor.java | 196 + .../impl/setl/monitor/PermitMonitor.java | 520 ++ .../impl/setl/monitor/TerminMonitor.java | 176 + .../monitor/listener/MainstemListener.java | 37 + .../setl/monitor/listener/NodeListener.java | 34 + .../setl/monitor/listener/PermitListener.java | 31 + .../setl/rpc/ExtractRpcArbitrateEvent.java | 86 + .../impl/setl/rpc/LoadRpcArbitrateEvent.java | 122 + .../impl/setl/rpc/RpcStageController.java | 237 + .../setl/rpc/RpcStageEventDispatcher.java | 81 + .../setl/rpc/SelectRpcArbitrateEvent.java | 134 + .../impl/setl/rpc/TerminExecutor.java | 54 + .../setl/rpc/TerminRpcArbitrateEvent.java | 30 + .../setl/rpc/TransformRpcArbitrateEvent.java | 72 + .../rpc/monitor/AbstractProcessListener.java | 118 + .../setl/rpc/monitor/ProcessListener.java | 37 + .../impl/setl/rpc/monitor/ProcessMonitor.java | 188 + .../rpc/monitor/SelectProcessListener.java | 167 + .../ExtractZooKeeperArbitrateEvent.java | 145 + .../LoadZooKeeperArbitrateEvent.java | 219 + .../SelectZooKeeperArbitrateEvent.java | 168 + .../TerminZooKeeperArbitrateEvent.java | 201 + .../TransformZooKeeperArbitrateEvent.java | 123 + .../monitor/AbstractStageListener.java | 126 + .../monitor/ExtractStageListener.java | 89 + .../zookeeper/monitor/LoadStageListener.java | 93 + .../monitor/SelectStageListener.java | 171 + .../setl/zookeeper/monitor/StageListener.java | 48 + .../setl/zookeeper/monitor/StageMonitor.java | 461 + .../monitor/TransformStageListener.java | 88 + .../zookeeper/termin/ErrorTerminProcess.java | 115 + .../zookeeper/termin/NormalTerminProcess.java | 225 + .../setl/zookeeper/termin/TerminProcess.java | 30 + .../termin/WarningTerminProcess.java | 51 + .../impl/zookeeper/AsyncWatcher.java | 69 + .../zookeeper/SessionExpiredNotification.java | 28 + .../impl/zookeeper/ZooKeeperClient.java | 108 + .../zookeeper/ZooKeeperHeartBeatWorker.java | 83 + .../impl/zookeeper/ZooKeeperOperation.java | 27 + .../arbitrate/impl/zookeeper/ZooKeeperx.java | 338 + .../impl/zookeeper/lock/DistributedLock.java | 339 + .../lock/DistributedReentrantLock.java | 64 + .../impl/zookeeper/lock/LockNode.java | 112 + .../shared/arbitrate/model/EtlEventData.java | 55 + .../shared/arbitrate/model/EventData.java | 38 + .../arbitrate/model/MainStemEventData.java | 71 + .../arbitrate/model/PipelineEventData.java | 37 + .../arbitrate/model/PositionEventData.java | 58 + .../arbitrate/model/ProcessEventData.java | 103 + .../arbitrate/model/ProcessNodeEventData.java | 74 + .../arbitrate/model/RemedyIndexEventData.java | 145 + .../arbitrate/model/SyncStatusEventData.java | 129 + .../arbitrate/model/TerminEventData.java | 99 + .../spring/otter-arbitrate-alarm.xml | 13 + .../spring/otter-arbitrate-common.xml | 29 + .../spring/otter-arbitrate-communication.xml | 24 + .../spring/otter-arbitrate-event.xml | 96 + .../resources/spring/otter-arbitrate-log.xml | 39 + .../spring/otter-arbitrate-manage.xml | 23 + .../otter/shared/arbitrate/BaseEventTest.java | 88 + .../otter/shared/arbitrate/BaseOtterTest.java | 57 + .../arbitrate/demo/ArbitrateAllTest.java | 273 + .../multi/ArbitrateForwardIntegration.java | 259 + .../multi/ArbitrateOppositeIntegration.java | 259 + .../ChannelArbitrateEventIntegration.java | 145 + .../demo/servcie/ExtractServiceDemo.java | 123 + .../demo/servcie/LoadServiceDemo.java | 123 + .../demo/servcie/MainStemServiceDemo.java | 91 + .../demo/servcie/PipelineLifeCycle.java | 24 + .../demo/servcie/ProcessViewDemo.java | 129 + .../demo/servcie/SelectServiceDemo.java | 125 + .../demo/servcie/TerminProcessDemo.java | 123 + .../demo/servcie/TransformServiceDemo.java | 123 + .../manage/ArbitrateViewServiceTest.java | 91 + .../manage/ChannelArbitrateEventTest.java | 104 + .../manage/NodeArbitrateEventTest.java | 122 + .../manage/PipelineArbitrateEventTest.java | 98 + .../shared/arbitrate/setl/BaseStageTest.java | 258 + .../setl/event/BaseArbitrateEventTest.java | 45 + .../event/MainStemArbitrateEventTest.java | 141 + .../setl/event/ToolArbitrateEventTest.java | 73 + .../memory/MemoryArbitrateEventTest.java | 124 + .../TerminMemoryArbitrateEventTest.java | 194 + .../setl/event/rpc/RpcArbitrateEventTest.java | 134 + .../zookeeper/ExtractArbitrateEventTest.java | 87 + .../zookeeper/LoadArbitrateEventTest.java | 126 + .../zookeeper/SelectArbitrateEventTest.java | 78 + .../zookeeper/TerminArbitrateEventTest.java | 193 + .../TransformArbitrateEventTest.java | 99 + .../setl/lb/BaseLoadBalanceTest.java | 100 + .../setl/lb/RandomLoadBalanceTest.java | 110 + .../setl/lb/RoundRobinBalanceTest.java | 107 + .../setl/monitor/MainStemMonitorTest.java | 204 + .../setl/monitor/PermitMonitorTest.java | 231 + .../setl/monitor/ProcessMonitorTest.java | 102 + .../setl/monitor/TerminMonitorTest.java | 166 + .../setl/monitor/node/NodeMonitorTest.java | 143 + .../stage/ExtractStageListenerTest.java | 210 + .../monitor/stage/LoadStageListenerTest.java | 209 + .../stage/SelectStageListenerTest.java | 115 + .../setl/monitor/stage/StageMonitorTest.java | 218 + .../stage/TransformStageListenerTest.java | 199 + .../zookeeper/DistributedLockTest.java | 130 + .../DistributedReentrantLockTest.java | 129 + .../ZooKeeperCleanerIntegration.java | 63 + .../zookeeper/ZooKeeperClientTest.java | 167 + .../src/test/resources/applicationContext.xml | 24 + shared/common/pom.xml | 192 + .../model/autokeeper/AutoKeeperCluster.java | 95 + .../autokeeper/AutoKeeperConnectionStat.java | 128 + .../autokeeper/AutoKeeperEphemeralStat.java | 85 + .../autokeeper/AutoKeeperQuorumType.java | 44 + .../autokeeper/AutoKeeperServerStat.java | 121 + .../model/autokeeper/AutoKeeperStat.java | 46 + .../model/autokeeper/AutoKeeperStateStat.java | 83 + .../model/autokeeper/AutoKeeperWatchStat.java | 95 + .../common/model/config/ConfigException.java | 65 + .../common/model/config/ConfigHelper.java | 289 + .../common/model/config/ModeValueFilter.java | 25 + .../shared/common/model/config/Transient.java | 29 + .../common/model/config/alarm/AlarmRule.java | 160 + .../model/config/alarm/AlarmRuleStatus.java | 38 + .../model/config/alarm/MonitorName.java | 59 + .../common/model/config/channel/Channel.java | 114 + .../config/channel/ChannelParameter.java | 198 + .../model/config/channel/ChannelStatus.java | 43 + .../common/model/config/data/Column.java | 76 + .../common/model/config/data/ColumnGroup.java | 86 + .../common/model/config/data/ColumnPair.java | 136 + .../model/config/data/ColumnPairMode.java | 33 + .../common/model/config/data/DataMatrix.java | 102 + .../common/model/config/data/DataMedia.java | 205 + .../model/config/data/DataMediaPair.java | 166 + .../config/data/DataMediaPairComparable.java | 45 + .../model/config/data/DataMediaSource.java | 124 + .../model/config/data/DataMediaType.java | 71 + .../model/config/data/ExtensionData.java | 116 + .../model/config/data/ExtensionDataType.java | 35 + .../model/config/data/db/DbDataMedia.java | 32 + .../model/config/data/db/DbMediaSource.java | 88 + .../model/config/data/mq/MqDataMedia.java | 31 + .../model/config/data/mq/MqMediaSource.java | 49 + .../common/model/config/enums/AreaType.java | 36 + .../common/model/config/enums/StageType.java | 49 + .../shared/common/model/config/node/Node.java | 151 + .../model/config/node/NodeParameter.java | 86 + .../common/model/config/node/NodeStatus.java | 38 + .../model/config/parameter/Parameter.java | 83 + .../config/parameter/SystemParameter.java | 230 + .../model/config/pipeline/Pipeline.java | 141 + .../config/pipeline/PipelineParameter.java | 635 ++ .../common/model/config/record/LogRecord.java | 112 + .../model/statistics/delay/DelayCount.java | 95 + .../model/statistics/delay/DelayStat.java | 94 + .../model/statistics/stage/ProcessStat.java | 64 + .../model/statistics/stage/StageStat.java | 110 + .../model/statistics/table/TableStat.java | 147 + .../statistics/throughput/ThroughputStat.java | 121 + .../statistics/throughput/ThroughputType.java | 31 + .../common/model/user/AuthorizeType.java | 44 + .../otter/shared/common/model/user/User.java | 98 + .../shared/common/utils/AddressUtils.java | 165 + .../otter/shared/common/utils/Assert.java | 115 + .../otter/shared/common/utils/ByteUtils.java | 130 + .../otter/shared/common/utils/JsonUtils.java | 111 + .../otter/shared/common/utils/NioUtils.java | 525 ++ .../common/utils/OtterToStringStyle.java | 96 + .../otter/shared/common/utils/RegexUtils.java | 65 + .../shared/common/utils/SecurityUtils.java | 75 + .../otter/shared/common/utils/TestUtils.java | 113 + .../utils/cache/ExtensionMemoryMirror.java | 111 + .../utils/cache/RefreshMemoryMirror.java | 171 + .../otter/shared/common/utils/cmd/Exec.java | 200 + .../common/utils/cmd/StreamAppender.java | 87 + .../common/utils/cmd/StreamCollector.java | 35 + .../shared/common/utils/cmd/StreamCopier.java | 80 + .../otter/shared/common/utils/code/Code.java | 29 + .../common/utils/code/ResourceBundleUtil.java | 90 + .../utils/compile/JavaSourceCompiler.java | 27 + .../exception/CompileExprException.java | 36 + .../exception/JdkCompileException.java | 94 + .../utils/compile/impl/JdkCompileTask.java | 173 + .../utils/compile/impl/JdkCompiler.java | 69 + .../compile/model/JavaFileManagerImpl.java | 130 + .../compile/model/JavaFileObjectImpl.java | 74 + .../utils/compile/model/JavaSource.java | 78 + .../compile/model/JdkCompilerClassLoader.java | 104 + .../extension/DefaultExtensionFactory.java | 105 + .../utils/extension/ExtensionFactory.java | 38 + .../extension/classpath/ClassFilter.java | 22 + .../extension/classpath/ClassNameUtils.java | 95 + .../extension/classpath/ClassScanner.java | 28 + .../classpath/ClasspathClassScanner.java | 41 + .../classpath/FileSystemClassLoader.java | 87 + .../classpath/FileSystemClassScanner.java | 154 + .../exceptions/ExtensionLoadException.java | 40 + .../common/utils/lock/BooleanMutex.java | 172 + .../common/utils/meta/DdlSchemaFilter.java | 25 + .../common/utils/meta/DdlTableNameFilter.java | 25 + .../shared/common/utils/meta/DdlUtils.java | 514 + .../common/utils/meta/DdlUtilsFilter.java | 51 + .../shared/common/utils/meta/TableType.java | 109 + .../common/utils/sizeof/NaiveSizeOf.java | 137 + .../common/utils/sizeof/ObjectProfiler.java | 540 ++ .../spring/PropertyPlaceholderConfigurer.java | 183 + ...TesterxClassPathXmlApplicationContext.java | 106 + .../thread/ExecutorServiceFactoryBean.java | 82 + .../common/utils/thread/ExecutorTemplate.java | 157 + .../utils/thread/ExecutorTemplateGetter.java | 55 + .../utils/thread/NamedThreadFactory.java | 74 + .../utils/version/OtterVersionAnnotation.java | 75 + .../common/utils/version/VersionInfo.java | 124 + .../utils/zookeeper/ByteSerializer.java | 48 + .../utils/zookeeper/StringSerializer.java | 48 + .../common/utils/zookeeper/ZkClientx.java | 1062 +++ .../common/utils/zookeeper/ZkEventThread.java | 114 + .../common/utils/zookeeper/ZooKeeperx.java | 197 + .../src/main/resources/jtester.properties | 1 + shared/common/src/saveVersion.sh | 57 + .../otter/shared/common/AddressUtilsTest.java | 38 + .../shared/common/BaseOtterPerformance.java | 336 + .../otter/shared/common/BaseOtterTest.java | 27 + .../otter/shared/common/JsonUtilsTest.java | 227 + .../common/config/ConfigHelperTest.java | 78 + .../common/sample/JtesterxSampleTest.java | 115 + .../common/sample/TestMockService1.java | 47 + .../common/sample/TestMockService2.java | 36 + .../common/sample/TestMockService3.java | 36 + .../shared/common/sample/TestService.java | 43 + .../shared/common/utils/BooleanMutexTest.java | 121 + .../shared/common/utils/ExecIntegration.java | 93 + .../common/utils/ExecutorTemplateTest.java | 95 + .../common/utils/JavaSourceCompilerTest.java | 47 + .../common/utils/NioUtilsPerformance.java | 198 + .../shared/common/utils/NioUtilsTest.java | 151 + .../common/utils/ResourceBundleUtilTest.java | 57 + .../src/test/resources/applicationContext.xml | 10 + .../code/ResourceBundleUtil.properties | 4 + shared/common/src/test/resources/compiler.txt | 23 + .../src/test/resources/otter.properties | 18 + .../resources/spring/otter-test-sample.xml | 8 + shared/communication/pom.xml | 43 + .../core/CommunicationClient.java | 79 + .../core/CommunicationEndpoint.java | 45 + .../core/CommunicationRegistry.java | 120 + .../exception/CommunicationException.java | 64 + .../impl/AbstractCommunicationEndpoint.java | 93 + .../impl/DefaultCommunicationClientImpl.java | 270 + .../connection/CommunicationConnection.java | 35 + .../CommunicationConnectionFactory.java | 31 + .../CommunicationConnectionPoolFactory.java | 99 + .../CommunicationConnectionPoolable.java | 57 + ...ommunicationConnectionPoolableFactory.java | 74 + .../dubbo/DubboCommunicationConnection.java | 53 + .../DubboCommunicationConnectionFactory.java | 73 + .../dubbo/DubboCommunicationEndpoint.java | 67 + .../impl/rmi/RmiCommunicationClientImpl.java | 51 + .../impl/rmi/RmiCommunicationConnection.java | 53 + .../RmiCommunicationConnectionFactory.java | 63 + .../impl/rmi/RmiCommunicationEndpoint.java | 85 + .../communication/core/model/Callback.java | 27 + .../core/model/CommunicationParam.java | 109 + .../communication/core/model/Event.java | 51 + .../communication/core/model/EventType.java | 27 + .../core/model/heart/HeartEvent.java | 49 + .../model/OtterRemoteException.java | 67 + .../model/arbitrate/ArbitrateEventType.java | 33 + .../model/arbitrate/NodeAlarmEvent.java | 66 + .../model/arbitrate/StageSingleEvent.java | 66 + .../model/arbitrate/StopChannelEvent.java | 39 + .../model/arbitrate/StopNodeEvent.java | 45 + .../model/canal/CanalEventType.java | 32 + .../model/canal/FindCanalEvent.java | 44 + .../model/canal/FindFilterEvent.java | 44 + .../model/config/ConfigEventType.java | 41 + .../model/config/FindChannelEvent.java | 53 + .../model/config/FindMediaEvent.java | 39 + .../model/config/FindNodeEvent.java | 39 + .../model/config/FindTaskEvent.java | 44 + .../model/config/NotifyChannelEvent.java | 45 + .../model/config/NotifyMediaEvent.java | 39 + .../model/statistics/DelayCountEvent.java | 71 + .../model/statistics/StatisticsEventType.java | 33 + .../model/statistics/TableStatEvent.java | 48 + .../model/statistics/ThroughputStatEvent.java | 47 + .../shared/communication/BaseOtterTest.java | 27 + .../CommunicationSpringIntegrateTest.java | 57 + .../app/CommunicationAppService.java | 36 + .../app/CommunicationAppServiceImpl.java | 53 + .../app/event/AppCreateEvent.java | 186 + .../app/event/AppDeleteEvent.java | 42 + .../communication/app/event/AppEventType.java | 26 + .../communication/app/event/AppFindEvent.java | 42 + .../app/event/AppUpdateEvent.java | 106 + .../dubbo/DubboCommunicationTest.java | 136 + .../dubbo/DubboConnectionTest.java | 49 + .../rmi/RmiCommunicationTest.java | 140 + .../communication/rmi/RmiConnectionTest.java | 166 + .../src/test/resources/applicationContext.xml | 10 + .../spring/otter-test-communication.xml | 43 + shared/etl/pom.xml | 33 + .../etl/extend/fileresolver/FileInfo.java | 65 + .../etl/extend/fileresolver/FileResolver.java | 45 + .../fileresolver/support/RemoteDirectory.java | 51 + .../support/RemoteDirectoryFetcher.java | 33 + .../support/RemoteDirectoryFetcherAware.java | 26 + .../etl/extend/processor/EventProcessor.java | 52 + .../processor/support/DataSourceFetcher.java | 34 + .../support/DataSourceFetcherAware.java | 26 + .../otter/shared/etl/model/BatchObject.java | 68 + .../otter/shared/etl/model/DbBatch.java | 84 + .../otter/shared/etl/model/EventColumn.java | 172 + .../etl/model/EventColumnIndexComparable.java | 38 + .../otter/shared/etl/model/EventData.java | 354 + .../otter/shared/etl/model/EventType.java | 157 + .../otter/shared/etl/model/FileBatch.java | 45 + .../otter/shared/etl/model/FileData.java | 146 + .../otter/shared/etl/model/Identity.java | 111 + .../otter/shared/etl/model/ObjectData.java | 25 + .../otter/shared/etl/model/RowBatch.java | 46 + shared/pom.xml | 85 + shared/push/pom.xml | 38 + .../common/push/AbstractSubscribeManager.java | 157 + .../otter/common/push/PushException.java | 45 + .../otter/common/push/SubscribeCallback.java | 26 + .../otter/common/push/SubscribeManager.java | 103 + .../common/push/SubscribeManagerFactory.java | 96 + .../otter/common/push/SubscribeType.java | 25 + .../push/datasource/DataSourceHanlder.java | 63 + .../common/push/datasource/DataSourceKey.java | 111 + .../datasource/media/MediaPushDataSource.java | 380 + .../media/MediaPushDataSourceHandler.java | 186 + .../push/media/MediaSubscribeManager.java | 192 + .../supplier/AbstractDatasourceSupplier.java | 58 + .../supplier/DatasourceChangeCallback.java | 29 + .../common/push/supplier/DatasourceInfo.java | 86 + .../push/supplier/DatasourceSupplier.java | 45 + .../push/supplier/HaDatasourceInfo.java | 51 + .../media/MediaDatasourceSupplier.java | 161 + .../resources/spring/otter-push-common.xml | 14 + 1190 files changed, 135393 insertions(+) create mode 100644 .gitignore create mode 100644 HEADER.txt create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 codeformat.xml create mode 100644 codetemplates.xml create mode 100644 lib/install.bat create mode 100644 lib/install.sh create mode 100644 lib/jmockit-0.999.10-sources.jar create mode 100644 lib/jmockit-0.999.10.jar create mode 100644 lib/jmockit-0.999.10.pom create mode 100644 lib/jtester-1.1.8-sources.jar create mode 100644 lib/jtester-1.1.8.jar create mode 100644 lib/jtester-1.1.8.pom create mode 100644 lib/ojdbc14-10.2.0.3.0.jar create mode 100644 manager/biz/pom.xml create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/autokeeper/AutoKeeperStatService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/autokeeper/impl/AutoKeeperCollector.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/autokeeper/impl/AutoKeeperData.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/autokeeper/impl/AutoKeeperPersist.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/autokeeper/impl/AutoKeeperStatServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/DataSourceCreator.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/alarm/AbstractAlarmService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/alarm/AlarmMessage.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/alarm/AlarmService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/alarm/DefaultAlarmService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/arbitrate/ArbitrateConfigImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/arbitrate/DeadNodeListener.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/basedao/GenericDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/baseservice/GenericService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/exceptions/InvalidConfigureException.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/exceptions/ManagerException.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/common/exceptions/RepeatConfigureException.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/AlarmRuleService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/dal/AlarmRuleDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/dal/dataobject/AlarmRuleDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/dal/dataobject/AlarmRuleParameter.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/dal/ibatis/AlarmRuleParameterTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/dal/ibatis/IbatisAlarmRuleDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/alarm/impl/AlarmRuleServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/autokeeper/AutoKeeperClusterService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/autokeeper/dal/AutoKeeperClusterDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/autokeeper/dal/dataobject/AutoKeeperClusterDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/autokeeper/dal/ibatis/IbatisAutoKeeperClusterDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/autokeeper/impl/AutoKeeperClusterServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/canal/CanalService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/canal/dal/CanalDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/canal/dal/dataobject/CanalDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/canal/dal/ibatis/CanalParameterTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/canal/dal/ibatis/IbatisCanalDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/canal/impl/CanalServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/channel/ChannelService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/channel/dal/ChannelDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/channel/dal/dataobject/ChannelDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/channel/dal/ibatis/ChannelParameterTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/channel/dal/ibatis/IbatisChannelDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/channel/impl/ChannelServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/DataColumnPairGroupService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/DataColumnPairService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/dal/DataColumnPairDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/dal/DataColumnPairGroupDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/dal/dataobject/DataColumnPairDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/dal/dataobject/DataColumnPairGroupDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/dal/ibatis/IbatisDataColumnPairDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/dal/ibatis/IbatisDataColumnPairGroupDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/impl/DataColumnPairGroupServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datacolumnpair/impl/DataColumnPairServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamatrix/DataMatrixService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamatrix/dal/DataMatrixDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamatrix/dal/dataobject/DataMatrixDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamatrix/dal/ibatis/IbatisDataMatrixDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamatrix/impl/DataMatrixServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamedia/DataMediaService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamedia/dal/DataMediaDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamedia/dal/dataobject/DataMediaDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamedia/dal/ibatis/IbatisDataMediaDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamedia/impl/DataMediaServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediapair/DataMediaPairService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediapair/dal/DataMediaPairDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediapair/dal/dataobject/DataMediaPairDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediapair/dal/ibatis/IbatisDataMediaPairDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediapair/impl/DataMediaPairServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediasource/DataMediaSourceService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediasource/dal/DataMediaSourceDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediasource/dal/dataobject/DataMediaSourceDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediasource/dal/ibatis/IbatisDataMediaSourceDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/datamediasource/impl/DataMediaSourceServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/node/NodeService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/node/dal/NodeDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/node/dal/dataobject/NodeDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/node/dal/ibatis/IbatisNodeDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/node/dal/ibatis/NodeParameterTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/node/impl/NodeServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/parameter/SystemParameterService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/parameter/dal/SystemParameterDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/parameter/dal/dataobject/SystemParameterDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/parameter/dal/ibatis/IbatisSystemParameterDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/parameter/dal/ibatis/SystemParameterTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/parameter/impl/SystemParameterServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/PipelineService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/PipelineDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/PipelineNodeRelationDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/dataobject/PipelineDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/dataobject/PipelineNodeRelationDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/ibatis/IbatisPipelineDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/ibatis/IbatisPipelineNodeRelationDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/dal/ibatis/PipelineParameterTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/pipeline/impl/PipelineServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/record/LogRecordService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/record/dal/LogRecordDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/record/dal/dataobject/LogRecordDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/record/dal/ibatis/IbatisLogRecordDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/record/impl/LogRecordServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/utils/ListTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/config/utils/MapTypeHandler.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/AlarmController.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/AlarmRecovery.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/Monitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/MonitorRuleExplorerRegisty.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/MonitorTimer.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/PassiveMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/AbstractRuleMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/AlarmRecoveryDelayed.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/DefaultAlarmController.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/DelayStatRuleMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/ExceptionRuleMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/GlobalMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/PipelineMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/PipelineTimeoutRuleMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/PositionTimeoutRuleMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/ProcessTimeoutRuleMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/RestartAlarmRecovery.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/monitor/impl/SelfMonitor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/ArbitrateRemoteService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/CanalRemoteService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/ConfigRemoteService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/NodeRemoteService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/StatsRemoteService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/impl/ArbitrateRemoteServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/impl/CanalRemoteServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/impl/ConfigRemoteServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/impl/NodeMBeanServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/impl/StatsRemoteServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/remote/interceptor/RemoteExceptionLoggerInterceptor.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/DelayCounter.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/DelayStatService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/dal/DelayStatDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/dal/dataobject/DelayStatDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/dal/ibatis/IbatisDelayStatDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/impl/DelayStatServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/param/DelayCountParam.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/param/DelayStatInfo.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/param/TimelineDelayCondition.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/delay/param/TopDelayStat.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/stage/ProcessStatService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/stage/dal/ProcessDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/stage/dal/dataobject/ProcessStatDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/stage/dal/ibatis/IbatisProcessDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/stage/impl/ProcessStatServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/TableStatService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/dal/TableHistoryStatDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/dal/TableStatDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/dal/dataobject/TableHistoryStatDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/dal/dataobject/TableStatDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/dal/ibatis/IbatisTableHistoryStatDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/dal/ibatis/IbatisTableStatDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/impl/TableStatServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/param/BehaviorHistoryCondition.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/param/BehaviorHistoryInfo.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/table/param/TimelineBehaviorHistoryCondition.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/ThroughputStatService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/dal/ThroughputDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/dal/dataobject/ThroughputStatDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/dal/ibatis/IbatisThroughputDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/impl/ThroughputStatServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/param/AnalysisType.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/param/RealtimeThroughputCondition.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/param/ThroughputCondition.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/param/ThroughputInfo.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/statistics/throughput/param/TimelineThroughputCondition.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/user/UserService.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/user/dal/UserDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/user/dal/dataobject/UserDO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/user/dal/ibatis/IbatisUserDAO.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/user/impl/UserServiceImpl.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/utils/DataSourceChecker.java create mode 100644 manager/biz/src/main/java/com/alibaba/otter/manager/biz/utils/RegexUtils.java create mode 100644 manager/biz/src/main/resources/spring/otter-manager-alarm.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-arbitrate.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-autokeeper.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-dal.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-datasource.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-monitor.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-remote.xml create mode 100644 manager/biz/src/main/resources/spring/otter-manager-service.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-alarmRule.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-autokeeper.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-canal.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-channel.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-datacolumnpair.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-datacolumnpairgroup.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-datamatrix.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-datamedia.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-datamediapair.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-datamediasource.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-delayStat.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-logrecord.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-node.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-pipeline.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-pipelinenoderelation.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-systemParameter.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-tableHistoryStat.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-tableStat.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-throughputStat.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap-mapping-user.xml create mode 100644 manager/biz/src/main/resources/sqlmap/sqlmap.xml create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/BaseOtterTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/autokeeper/impl/AutoKeeperCollectorTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/monitor/AbstractRuleMonitorInPeriodTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/monitor/AlarmServiceTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/monitor/ExceptionRuleMonitorTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/monitor/GlobalMonitorTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/service/NodeSerivceTest.java create mode 100644 manager/biz/src/test/java/com/alibaba/otter/manager/biz/service/PipelineSerivceTest.java create mode 100644 manager/biz/src/test/resources/applicationContext.xml create mode 100644 manager/deployer/pom.xml create mode 100644 manager/deployer/src/main/assembly/component.xml create mode 100644 manager/deployer/src/main/assembly/dev.xml create mode 100644 manager/deployer/src/main/assembly/mvn.xml create mode 100644 manager/deployer/src/main/assembly/release.xml create mode 100644 manager/deployer/src/main/bin/startup.bat create mode 100644 manager/deployer/src/main/bin/startup.sh create mode 100644 manager/deployer/src/main/bin/stop.sh create mode 100644 manager/deployer/src/main/java/com/alibaba/otter/manager/deployer/JettyEmbedServer.java create mode 100644 manager/deployer/src/main/java/com/alibaba/otter/manager/deployer/OtterManagerLauncher.java create mode 100644 manager/deployer/src/main/resources/jetty.xml create mode 100644 manager/deployer/src/main/resources/logback.xml create mode 100644 manager/deployer/src/main/resources/otter.properties create mode 100644 manager/deployer/src/main/resources/sql/otter-manager-schema.sql create mode 100644 manager/deployer/src/main/resources/webapp/META-INF/MANIFEST.MF create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/applicationContext.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/common/pipeline-exception.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/common/pipeline.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/common/resources.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/common/uris.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/common/webx-component-and-root.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/common/webx-component.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/home/form.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/web.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/webx-home.xml create mode 100644 manager/deployer/src/main/resources/webapp/WEB-INF/webx.xml create mode 100644 manager/deployer/src/main/resources/webapp/css/JSONFormatter.css create mode 100644 manager/deployer/src/main/resources/webapp/css/commons.css create mode 100644 manager/deployer/src/main/resources/webapp/css/otter.css create mode 100644 manager/deployer/src/main/resources/webapp/css/skin.css create mode 100644 manager/deployer/src/main/resources/webapp/images/Thumbs.db create mode 100644 manager/deployer/src/main/resources/webapp/images/alarm.png create mode 100644 manager/deployer/src/main/resources/webapp/images/alarm_on.png create mode 100644 manager/deployer/src/main/resources/webapp/images/button_hover.png create mode 100644 manager/deployer/src/main/resources/webapp/images/button_normal.png create mode 100644 manager/deployer/src/main/resources/webapp/images/down1.png create mode 100644 manager/deployer/src/main/resources/webapp/images/down2.png create mode 100644 manager/deployer/src/main/resources/webapp/images/etl2.png create mode 100644 manager/deployer/src/main/resources/webapp/images/etl3.png create mode 100644 manager/deployer/src/main/resources/webapp/images/etl_1.png create mode 100644 manager/deployer/src/main/resources/webapp/images/exit.png create mode 100644 manager/deployer/src/main/resources/webapp/images/forbidden.png create mode 100644 manager/deployer/src/main/resources/webapp/images/head_bg.png create mode 100644 manager/deployer/src/main/resources/webapp/images/ico_add.png create mode 100644 manager/deployer/src/main/resources/webapp/images/ico_del.png create mode 100644 manager/deployer/src/main/resources/webapp/images/ico_edit.png create mode 100644 manager/deployer/src/main/resources/webapp/images/link_attachment_7.gif create mode 100644 manager/deployer/src/main/resources/webapp/images/login_bg.png create mode 100644 manager/deployer/src/main/resources/webapp/images/login_box.png create mode 100644 manager/deployer/src/main/resources/webapp/images/login_btn_hover.png create mode 100644 manager/deployer/src/main/resources/webapp/images/login_btn_normal.png create mode 100644 manager/deployer/src/main/resources/webapp/images/login_logo.png create mode 100644 manager/deployer/src/main/resources/webapp/images/login_shadow.png create mode 100644 manager/deployer/src/main/resources/webapp/images/logo.png create mode 100644 manager/deployer/src/main/resources/webapp/images/main_bg.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_bg.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_btn_bg22.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_btn_bg3.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_btn_bg33.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_btn_bg44.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_pass.png create mode 100644 manager/deployer/src/main/resources/webapp/images/nav_selected.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_close.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_left.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_leftbottom.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_lefttop_small.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_midbottom.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_midtop_small.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_right.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_rightbottom.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_righttop_small.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_tips_bottom.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_tips_mid.png create mode 100644 manager/deployer/src/main/resources/webapp/images/pop_tips_top.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_btn.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_global_l.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_global_m.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_global_r.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_global_r2.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_global_r3.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_go.png create mode 100644 manager/deployer/src/main/resources/webapp/images/search_input.png create mode 100644 manager/deployer/src/main/resources/webapp/images/seeDetail.png create mode 100644 manager/deployer/src/main/resources/webapp/images/tab_active.png create mode 100644 manager/deployer/src/main/resources/webapp/images/tab_bg2.png create mode 100644 manager/deployer/src/main/resources/webapp/images/table_title_bg.png create mode 100644 manager/deployer/src/main/resources/webapp/images/tip_del.png create mode 100644 manager/deployer/src/main/resources/webapp/images/tip_warning.png create mode 100644 manager/deployer/src/main/resources/webapp/images/up1.png create mode 100644 manager/deployer/src/main/resources/webapp/images/up2.png create mode 100644 manager/deployer/src/main/resources/webapp/js/JSONFormatter.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/My97DatePicker.html create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/WdatePicker.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/calendar.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/config.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/lang/en.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/lang/zh-cn.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/lang/zh-tw.js create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/WdatePicker.css create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/datePicker.gif create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/default/datepicker.css create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/default/img.gif create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/whyGreen/bg.jpg create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/whyGreen/datepicker.css create mode 100644 manager/deployer/src/main/resources/webapp/js/My97DatePicker/skin/whyGreen/img.gif create mode 100644 manager/deployer/src/main/resources/webapp/js/analysisStatus.js create mode 100644 manager/deployer/src/main/resources/webapp/js/dbCheck.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/excanvas.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/excanvas.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.colorhelpers.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.colorhelpers.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.crosshair.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.crosshair.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.fillbetween.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.fillbetween.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.image.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.image.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.navigate.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.navigate.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.pie.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.pie.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.resize.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.resize.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.selection.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.selection.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.stack.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.stack.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.symbol.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.symbol.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.threshold.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.flot.threshold.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.js create mode 100644 manager/deployer/src/main/resources/webapp/js/flot/jquery.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/gchartapi.js create mode 100644 manager/deployer/src/main/resources/webapp/js/jquery-1.4.2.min.js create mode 100644 manager/deployer/src/main/resources/webapp/js/jquery.simplemodal-1.4.js create mode 100644 manager/deployer/src/main/resources/webapp/js/nodeCheck.js create mode 100644 manager/deployer/src/main/resources/webapp/js/pop.js create mode 100644 manager/deployer/src/main/resources/webapp/js/trcolor.js create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/control/navigation.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/layout/default.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addAlarmRule.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addBatchDataMediaPair.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addCanal.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addChannel.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addColumnPair.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addColumnPairGroup.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addDataMatrix.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addDataMedia.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addDataMediaPair.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addDataSource.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addNode.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addPipeline.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addUser.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/addZookeeper.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/alarmRuleList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/alarmSystemList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/analysisDelayStat.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/analysisStageStat.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/analysisThroughputHistory.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/analysisThroughputStat.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/analysisTopStat.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/autoKeeperClientPath.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/autoKeeperClustersDetail.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/autoKeeperClustersList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/behaviorHistoryCurve.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/canalInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/canalList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/channelInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/channelList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/checkDelayStat.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataMatrixInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataMatrixList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataMediaInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataMediaList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataMediaPairInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataMediaPairList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataSourceInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/dataSourceList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editAlarmRule.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editAutoKeeper.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editCanal.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editChannel.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editDataMatrix.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editDataMedia.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editDataMediaPair.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editDataSource.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editNode.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editParameter.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editPipeline.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/editUser.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/error.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/forbidden.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/index.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/initSql.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/logRecordList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/logRecordTab.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/login.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/monitor/getNodes.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/monitor/monitorTrigger.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/monitor/ok.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/nodeInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/nodeList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/pipelineInfo.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/pipelineList.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/selectCanal.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/selectDataMedia.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/selectDataSource.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/systemParameter.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/systemReduction.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/userManager.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/wikiGuide.vm create mode 100644 manager/deployer/src/main/resources/webapp/templates/home/screen/zkError.vm create mode 100644 manager/pom.xml create mode 100644 manager/web/pom.xml create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/NumberFormatUtil.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/WebConstant.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/api/ApiAuthService.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/api/DefaultApiAuthService.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/api/JsonResult.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorCanal.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorChannel.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorDataMatrix.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorDataMedia.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorDataMediaPair.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorDataMediaSource.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/common/model/SeniorNode.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/AbstractAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/AlarmRuleAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/AutoKeeperClusterAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/CanalAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/ChannelAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/ColumnPairAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/ColumnPairGroupAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/DataMatrixAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/DataMediaAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/DataMediaPairAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/DataMediaSourceAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/NodeAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/PipelineAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/PositionAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/SwitchWarmupAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/SystemParameterAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/action/UserAction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddAlarmRule.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddBatchDataMediaPair.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddCanal.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddColumnPair.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddColumnPairGroup.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddDataMediaPair.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddNode.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddPipeline.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AddZookeeper.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AlarmRuleList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AlarmSystemList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AnalysisDelayStat.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AnalysisStageStat.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AnalysisThroughputHistory.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AnalysisThroughputStat.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AnalysisTopStat.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AutoKeeperClientPath.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AutoKeeperClustersDetail.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/AutoKeeperClustersList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/BehaviorHistoryCurve.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/CanalInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/CanalList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/ChannelInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/ChannelList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/CheckDelayStat.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataMatrixInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataMatrixList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataMediaInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataMediaList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataMediaPairInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataMediaPairList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataSourceInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/DataSourceList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditAlarmRule.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditAutoKeeper.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditCanal.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditChannel.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditDataMatrix.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditDataMedia.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditDataMediaPair.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditDataSource.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditNode.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditPipeline.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/EditUser.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/LogRecordList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/LogRecordTab.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/NodeInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/NodeList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/Ok.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/PipelineInfo.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/PipelineList.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/SelectCanal.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/SelectDataMedia.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/SelectDataSource.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/SystemParameter.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/SystemReduction.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/UserManager.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/api/AbstractJsonScreen.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/api/ChannelCheck.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/api/ChannelOp.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/api/NodeOp.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/api/TopDelay.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/home/module/screen/monitor/MonitorTrigger.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/AuthContextValve.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/PrepareExceptionValve.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/AuthorizeProtected.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/RegExpURLAnalyze.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/action/ActionPatternHolder.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/action/ActionProtected.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/action/ActionProtectedEditor.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/action/ActionProtectedImpl.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/url/URLPatternHolder.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/url/URLProtected.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/url/URLProtectedEditor.java create mode 100644 manager/web/src/main/java/com/alibaba/otter/manager/web/webx/valve/auth/url/URLProtectedImpl.java create mode 100644 node/canal/pom.xml create mode 100644 node/canal/src/main/java/com/alibaba/otter/canal/extend/communication/CanalCommmunicationClient.java create mode 100644 node/canal/src/main/java/com/alibaba/otter/canal/extend/communication/CanalConfigClient.java create mode 100644 node/canal/src/main/java/com/alibaba/otter/canal/extend/ha/AuthenticationInfoUtils.java create mode 100644 node/canal/src/main/java/com/alibaba/otter/canal/extend/ha/MediaHAController.java create mode 100644 node/canal/src/main/resources/spring/otter-canal-communication.xml create mode 100644 node/common/pom.xml create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/communication/NodeCommmunicationClient.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/communication/NodeCommunicationEndpoint.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/ConfigClientService.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/NodeTaskListener.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/NodeTaskService.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/impl/ConfigClientServiceImpl.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/impl/InternalConfigClientService.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/impl/NodeTaskServiceImpl.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/config/model/NodeTask.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/statistics/StatisticsClientService.java create mode 100644 node/common/src/main/java/com/alibaba/otter/node/common/statistics/impl/StatisticsClientServiceImpl.java create mode 100644 node/common/src/main/resources/spring/otter-node-communication.xml create mode 100644 node/common/src/main/resources/spring/otter-node-config.xml create mode 100644 node/common/src/main/resources/spring/otter-node-statistics.xml create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/ArbitrateRemoteServiceIntegration.java create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/BaseOtterTest.java create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/config/ConfigClientServiceIntegration.java create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/config/ConfigClientServiceTest.java create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/config/NodeTaskServiceIntegration.java create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/config/NodeTaskServiceTest.java create mode 100644 node/common/src/test/java/com/alibaba/otter/node/common/statistics/StatisticsClientServiceIntegration.java create mode 100644 node/common/src/test/resources/applicationContext.xml create mode 100644 node/deployer/pom.xml create mode 100644 node/deployer/src/main/assembly/component.xml create mode 100644 node/deployer/src/main/assembly/dev.xml create mode 100644 node/deployer/src/main/assembly/mvn.xml create mode 100644 node/deployer/src/main/assembly/release.xml create mode 100644 node/deployer/src/main/bin/startup.bat create mode 100644 node/deployer/src/main/bin/startup.sh create mode 100644 node/deployer/src/main/bin/stop.sh create mode 100644 node/deployer/src/main/java/com/alibaba/otter/node/deployer/OtterLauncher.java create mode 100644 node/deployer/src/main/resources/applicationContext.xml create mode 100644 node/deployer/src/main/resources/logback.xml create mode 100644 node/deployer/src/main/resources/otter.properties create mode 100644 node/deployer/src/main/resources/sql/otter-system-ddl-mysql.sql create mode 100644 node/deployer/src/main/resources/sql/otter-system-ddl-oracle.sql create mode 100644 node/deployer/src/test/java/com/alibaba/otter/node/deployer/OtterLauncherIntegration.java create mode 100644 node/etl/pom.xml create mode 100644 node/etl/src/main/java/Batch.proto create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/OtterConstants.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/OtterContextLocator.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/OtterController.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/OtterControllerMBean.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/datasource/DataSourceService.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/datasource/impl/DBDataSourceService.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/AbstractDbDialect.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/AbstractSqlTemplate.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/DbDialect.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/DbDialectFactory.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/DbDialectGenerator.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/SqlTemplate.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/mysql/MysqlDialect.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/mysql/MysqlSqlTemplate.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/oracle/OracleDialect.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/dialect/oracle/OracleSqlTemplate.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/lob/AutomaticJdbcExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/lob/LazyNativeJdbcExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/utils/ByteArrayConverter.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/utils/SqlTimestampConverter.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/utils/SqlUtils.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/EncryptUtils.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/EncryptedData.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/compress/Compressor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/compress/exception/CompressException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/compress/impl/AbstractCompressor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/compress/impl/PackableObject.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/compress/impl/bzip2/BZip2Compressor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/compress/impl/gzip/GzipCompressor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/crypto/AESException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/crypto/AESUtils.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/signature/ChecksumException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/signature/ChecksumUtils.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/io/signature/Crc32C.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/jetty/JettyEmbedServer.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/jmx/JmxConnectorServerFactoryBean.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/jmx/StageAggregation.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/jmx/StageAggregationCollector.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/Pipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/PipeDataType.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/PipeKey.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/exception/PipeException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/RowDataPipeDelegate.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/AbstractHttpPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/AttachmentHttpPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/HttpPipeKey.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/LimitedInputStream.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/RemoteUrlBuilder.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/RowDataHttpPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/archive/ArchiveBean.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/archive/ArchiveException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/archive/ArchiveRetriverCallback.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/http/archive/LazyFileInputStream.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/memory/AbstractMemoryPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/memory/MemoryPipeKey.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/memory/RowDataMemoryPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/rpc/AbstractRpcPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/rpc/RowDataRpcPipe.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/pipe/impl/rpc/RpcPipeKey.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/common/task/GlobalTask.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/conflict/FileBatchConflictDetectService.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/conflict/exception/ConflictException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/conflict/impl/FileBatchConflictDetectServiceImpl.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/conflict/model/ConflictEventType.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/conflict/model/FileConflictDetectEvent.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/ExtractTask.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/SetlFuture.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/exceptions/ExtractException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/AbstractExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/DatabaseExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/FileExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/FreedomExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/GroupExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/OtterExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/OtterExtractorFactory.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/ProcessorExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/extract/extractor/ViewExtractor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/LoadTask.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/exception/LoadException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/AbstractLoadContext.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/LoadContext.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/LoadStatsTracker.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/OtterLoader.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/OtterLoaderFactory.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/DataBatchLoader.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/DbLoadAction.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/DbLoadData.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/DbLoadDumper.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/DbLoadMerger.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/FileLoadAction.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/FileloadDumper.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/context/DbLoadContext.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/context/FileLoadContext.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/interceptor/log/LogLoadInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/interceptor/operation/AbstractOperationInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/interceptor/operation/CanalMysqlInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/interceptor/operation/CanalOracleInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/interceptor/operation/OperationInterceptorFactory.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/db/interceptor/sql/SqlBuilderLoadInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/interceptor/AbstractLoadInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/interceptor/ChainLoadInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/interceptor/LoadInterceptor.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/weight/WeightBarrier.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/weight/WeightBuckets.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/load/loader/weight/WeightController.java create mode 100755 node/etl/src/main/java/com/alibaba/otter/node/etl/model/protobuf/BatchProto.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/SelectTask.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/exceptions/SelectException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/Message.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/MessageDumper.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/MessageParser.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/OtterSelector.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/OtterSelectorFactory.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/canal/CanalEmbedSelector.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/canal/OtterAlarmHandler.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/select/selector/canal/OtterDownStreamHandler.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/TransformTask.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/exception/TransformException.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/transformer/AbstractOtterTransformer.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/transformer/FileDataTransformer.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/transformer/OtterTransformer.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/transformer/OtterTransformerContext.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/transformer/OtterTransformerFactory.java create mode 100644 node/etl/src/main/java/com/alibaba/otter/node/etl/transform/transformer/RowDataTransformer.java create mode 100644 node/etl/src/main/java/protoc.exe create mode 100644 node/etl/src/main/java/protocol.txt create mode 100644 node/etl/src/main/resources/jetty/jetty.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-common.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-conflict.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-database.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-extension.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-extract.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-jmx.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-load.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-pipe.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-select.xml create mode 100644 node/etl/src/main/resources/spring/otter-node-transform.xml create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/ArbitrateRemoteServiceIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/BaseDbTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/BaseOtterTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/SqlUtilsTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/TestUtils.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/datasource/AbstractDbDialectTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/datasource/TestMysqlUnsignedInt.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/datasource/TestMysqlUnsignedNumber.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/BitTableIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/DbDialectIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/DbDialectTableTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/DbDialectTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/DbPerfIntergration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/SqlTemplateTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/db/TimeTableIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/io/AESUtilsTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/io/ArchiveBeanIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/io/ArchiveBeanTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/io/Aria2cDownLoadIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/io/ChecksumUtilsTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/io/CompressorTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/jetty/JettyEmbedIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/jmx/JmxLoaderIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/jmx/StageAggregationTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/pipe/HttpPipeIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/pipe/MemoryPipeTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/common/pipe/RpcPipeTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/conflict/FileBatchConflictDetectServiceIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/extract/DatabaseExtractorTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/extract/EventProcessorFactoryIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/extract/FreedomExtractorTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/launcher/ArbitrateInitIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/launcher/OtterLoaderFactoryIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/DbLoadActionTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/DbLoadMergerTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/FileLoadActionTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/LocalFileLoaderActionTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/WeightBarrierTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/WeightBucketTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/load/WeightControllerTest.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/select/CanalClientIntegration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/select/OtterDownStreamHandlerIntergration.java create mode 100644 node/etl/src/test/java/com/alibaba/otter/node/etl/transform/OtterTransformerTest.java create mode 100644 node/etl/src/test/resources/applicationContext.xml create mode 100644 node/etl/src/test/resources/compress/geo.protodata create mode 100644 node/etl/src/test/resources/sql/mysql_init.sql create mode 100644 node/etl/src/test/resources/sql/oracle_init.sql create mode 100644 node/extend/pom.xml create mode 100644 node/extend/src/main/java/com/alibaba/otter/node/extend/fileresolver/AbstractFileResolver.java create mode 100644 node/extend/src/main/java/com/alibaba/otter/node/extend/fileresolver/TestFileResolver.java create mode 100644 node/extend/src/main/java/com/alibaba/otter/node/extend/processor/AbstractEventProcessor.java create mode 100644 node/extend/src/main/java/com/alibaba/otter/node/extend/processor/HintEventProcessor.java create mode 100644 node/extend/src/main/java/com/alibaba/otter/node/extend/processor/TestEventProcessor.java create mode 100644 node/pom.xml create mode 100644 pom.xml create mode 100644 shared/arbitrate/pom.xml create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/ArbitrateEventService.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/ArbitrateManageService.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/ArbitrateViewService.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/exception/ArbitrateException.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/ArbitrateConstants.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/ArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/ArbitrateEventServiceImpl.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/ArbitrateManageServiceImpl.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/ArbitrateViewServiceImpl.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/alarm/AlarmClientService.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/communication/ArbitrateCommmunicationClient.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/config/ArbitrateConfig.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/config/ArbitrateConfigRegistry.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/config/ArbitrateConfigUtils.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/interceptor/LogInterceptor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/manage/ChannelArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/manage/NodeArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/manage/NodeSessionExpired.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/manage/PipelineArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/manage/SystemArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/manage/helper/ManagePathUtils.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/ArbitrateFactory.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/ArbitrateLifeCycle.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/ExtractArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/LoadArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/MainStemArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/SelectArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/TerminArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/ToolArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/TransformArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/delegate/AbstractDelegateArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/delegate/ExtractDelegateArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/delegate/LoadDelegateArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/delegate/SelectDelegateArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/delegate/TerminDelegateArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/delegate/TransformDelegateArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/fastrpc/FastRpcStageController.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/fastrpc/FastRpcStageEventDispatcher.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/helper/RemedyIndexComparator.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/helper/ReplyProcessQueue.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/helper/StageComparator.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/helper/StagePathUtils.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/helper/StageProgress.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/helper/TerminProcessQueue.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/AbstractLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/ExtractRandomLoadBanlance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/ExtractRoundRobinLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/ExtractStickLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/LoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/LoadBalanceFactory.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/RandomLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/RoundRobinLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/StickLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/TransformRandomLoadBanlance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/TransformRoundRobinLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/lb/TransformStickLoadBalance.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/memory/ExtractMemoryArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/memory/LoadMemoryArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/memory/MemoryStageController.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/memory/SelectMemoryArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/memory/TerminMemoryArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/memory/TransformMemoryArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/MainstemMonitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/Monitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/MonitorScheduler.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/NodeMonitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/PermitMonitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/TerminMonitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/listener/MainstemListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/listener/NodeListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/monitor/listener/PermitListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/ExtractRpcArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/LoadRpcArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/RpcStageController.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/RpcStageEventDispatcher.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/SelectRpcArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/TerminExecutor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/TerminRpcArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/TransformRpcArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/monitor/AbstractProcessListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/monitor/ProcessListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/monitor/ProcessMonitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/rpc/monitor/SelectProcessListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/ExtractZooKeeperArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/LoadZooKeeperArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/SelectZooKeeperArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/TerminZooKeeperArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/TransformZooKeeperArbitrateEvent.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/AbstractStageListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/ExtractStageListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/LoadStageListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/SelectStageListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/StageListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/StageMonitor.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/monitor/TransformStageListener.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/termin/ErrorTerminProcess.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/termin/NormalTerminProcess.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/termin/TerminProcess.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/setl/zookeeper/termin/WarningTerminProcess.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/AsyncWatcher.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/SessionExpiredNotification.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/ZooKeeperClient.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/ZooKeeperHeartBeatWorker.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/ZooKeeperOperation.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/ZooKeeperx.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/lock/DistributedLock.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/lock/DistributedReentrantLock.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/impl/zookeeper/lock/LockNode.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/EtlEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/EventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/MainStemEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/PipelineEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/PositionEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/ProcessEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/ProcessNodeEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/RemedyIndexEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/SyncStatusEventData.java create mode 100644 shared/arbitrate/src/main/java/com/alibaba/otter/shared/arbitrate/model/TerminEventData.java create mode 100644 shared/arbitrate/src/main/resources/spring/otter-arbitrate-alarm.xml create mode 100644 shared/arbitrate/src/main/resources/spring/otter-arbitrate-common.xml create mode 100644 shared/arbitrate/src/main/resources/spring/otter-arbitrate-communication.xml create mode 100644 shared/arbitrate/src/main/resources/spring/otter-arbitrate-event.xml create mode 100644 shared/arbitrate/src/main/resources/spring/otter-arbitrate-log.xml create mode 100644 shared/arbitrate/src/main/resources/spring/otter-arbitrate-manage.xml create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/BaseEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/BaseOtterTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/ArbitrateAllTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/multi/ArbitrateForwardIntegration.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/multi/ArbitrateOppositeIntegration.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/multi/ChannelArbitrateEventIntegration.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/ExtractServiceDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/LoadServiceDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/MainStemServiceDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/PipelineLifeCycle.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/ProcessViewDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/SelectServiceDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/TerminProcessDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/demo/servcie/TransformServiceDemo.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/manage/ArbitrateViewServiceTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/manage/ChannelArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/manage/NodeArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/manage/PipelineArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/BaseStageTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/BaseArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/MainStemArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/ToolArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/memory/MemoryArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/memory/TerminMemoryArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/rpc/RpcArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/zookeeper/ExtractArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/zookeeper/LoadArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/zookeeper/SelectArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/zookeeper/TerminArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/event/zookeeper/TransformArbitrateEventTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/lb/BaseLoadBalanceTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/lb/RandomLoadBalanceTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/lb/RoundRobinBalanceTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/MainStemMonitorTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/PermitMonitorTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/ProcessMonitorTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/TerminMonitorTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/node/NodeMonitorTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/stage/ExtractStageListenerTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/stage/LoadStageListenerTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/stage/SelectStageListenerTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/stage/StageMonitorTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/setl/monitor/stage/TransformStageListenerTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/zookeeper/DistributedLockTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/zookeeper/DistributedReentrantLockTest.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/zookeeper/ZooKeeperCleanerIntegration.java create mode 100644 shared/arbitrate/src/test/java/com/alibaba/otter/shared/arbitrate/zookeeper/ZooKeeperClientTest.java create mode 100644 shared/arbitrate/src/test/resources/applicationContext.xml create mode 100644 shared/common/pom.xml create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperCluster.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperConnectionStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperEphemeralStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperQuorumType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperServerStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperStateStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/autokeeper/AutoKeeperWatchStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/ConfigException.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/ConfigHelper.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/ModeValueFilter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/Transient.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/alarm/AlarmRule.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/alarm/AlarmRuleStatus.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/alarm/MonitorName.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/channel/Channel.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/channel/ChannelParameter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/channel/ChannelStatus.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/Column.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/ColumnGroup.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/ColumnPair.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/ColumnPairMode.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/DataMatrix.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/DataMedia.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/DataMediaPair.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/DataMediaPairComparable.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/DataMediaSource.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/DataMediaType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/ExtensionData.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/ExtensionDataType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/db/DbDataMedia.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/db/DbMediaSource.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/mq/MqDataMedia.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/data/mq/MqMediaSource.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/enums/AreaType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/enums/StageType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/node/Node.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/node/NodeParameter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/node/NodeStatus.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/parameter/Parameter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/parameter/SystemParameter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/pipeline/Pipeline.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/pipeline/PipelineParameter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/config/record/LogRecord.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/delay/DelayCount.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/delay/DelayStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/stage/ProcessStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/stage/StageStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/table/TableStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/throughput/ThroughputStat.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/statistics/throughput/ThroughputType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/user/AuthorizeType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/model/user/User.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/AddressUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/Assert.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/ByteUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/JsonUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/NioUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/OtterToStringStyle.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/RegexUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/SecurityUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/TestUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/cache/ExtensionMemoryMirror.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/cache/RefreshMemoryMirror.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/cmd/Exec.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/cmd/StreamAppender.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/cmd/StreamCollector.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/cmd/StreamCopier.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/code/Code.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/code/ResourceBundleUtil.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/JavaSourceCompiler.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/exception/CompileExprException.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/exception/JdkCompileException.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/impl/JdkCompileTask.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/impl/JdkCompiler.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/model/JavaFileManagerImpl.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/model/JavaFileObjectImpl.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/model/JavaSource.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/compile/model/JdkCompilerClassLoader.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/DefaultExtensionFactory.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/ExtensionFactory.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/classpath/ClassFilter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/classpath/ClassNameUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/classpath/ClassScanner.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/classpath/ClasspathClassScanner.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/classpath/FileSystemClassLoader.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/classpath/FileSystemClassScanner.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/extension/exceptions/ExtensionLoadException.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/lock/BooleanMutex.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/meta/DdlSchemaFilter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/meta/DdlTableNameFilter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/meta/DdlUtils.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/meta/DdlUtilsFilter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/meta/TableType.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/sizeof/NaiveSizeOf.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/sizeof/ObjectProfiler.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/spring/PropertyPlaceholderConfigurer.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/test/JTesterxClassPathXmlApplicationContext.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/thread/ExecutorServiceFactoryBean.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/thread/ExecutorTemplate.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/thread/ExecutorTemplateGetter.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/thread/NamedThreadFactory.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/version/OtterVersionAnnotation.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/version/VersionInfo.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/zookeeper/ByteSerializer.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/zookeeper/StringSerializer.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/zookeeper/ZkClientx.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/zookeeper/ZkEventThread.java create mode 100644 shared/common/src/main/java/com/alibaba/otter/shared/common/utils/zookeeper/ZooKeeperx.java create mode 100644 shared/common/src/main/resources/jtester.properties create mode 100755 shared/common/src/saveVersion.sh create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/AddressUtilsTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/BaseOtterPerformance.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/BaseOtterTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/JsonUtilsTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/config/ConfigHelperTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/sample/JtesterxSampleTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/sample/TestMockService1.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/sample/TestMockService2.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/sample/TestMockService3.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/sample/TestService.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/BooleanMutexTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/ExecIntegration.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/ExecutorTemplateTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/JavaSourceCompilerTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/NioUtilsPerformance.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/NioUtilsTest.java create mode 100644 shared/common/src/test/java/com/alibaba/otter/shared/common/utils/ResourceBundleUtilTest.java create mode 100644 shared/common/src/test/resources/applicationContext.xml create mode 100644 shared/common/src/test/resources/code/ResourceBundleUtil.properties create mode 100644 shared/common/src/test/resources/compiler.txt create mode 100644 shared/common/src/test/resources/otter.properties create mode 100644 shared/common/src/test/resources/spring/otter-test-sample.xml create mode 100644 shared/communication/pom.xml create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/CommunicationClient.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/CommunicationEndpoint.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/CommunicationRegistry.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/exception/CommunicationException.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/AbstractCommunicationEndpoint.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/DefaultCommunicationClientImpl.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/connection/CommunicationConnection.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/connection/CommunicationConnectionFactory.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/connection/CommunicationConnectionPoolFactory.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/connection/CommunicationConnectionPoolable.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/connection/CommunicationConnectionPoolableFactory.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/dubbo/DubboCommunicationConnection.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/dubbo/DubboCommunicationConnectionFactory.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/dubbo/DubboCommunicationEndpoint.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/rmi/RmiCommunicationClientImpl.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/rmi/RmiCommunicationConnection.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/rmi/RmiCommunicationConnectionFactory.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/impl/rmi/RmiCommunicationEndpoint.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/model/Callback.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/model/CommunicationParam.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/model/Event.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/model/EventType.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/core/model/heart/HeartEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/OtterRemoteException.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/arbitrate/ArbitrateEventType.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/arbitrate/NodeAlarmEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/arbitrate/StageSingleEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/arbitrate/StopChannelEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/arbitrate/StopNodeEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/canal/CanalEventType.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/canal/FindCanalEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/canal/FindFilterEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/ConfigEventType.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/FindChannelEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/FindMediaEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/FindNodeEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/FindTaskEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/NotifyChannelEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/config/NotifyMediaEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/statistics/DelayCountEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/statistics/StatisticsEventType.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/statistics/TableStatEvent.java create mode 100644 shared/communication/src/main/java/com/alibaba/otter/shared/communication/model/statistics/ThroughputStatEvent.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/BaseOtterTest.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/CommunicationSpringIntegrateTest.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/CommunicationAppService.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/CommunicationAppServiceImpl.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/event/AppCreateEvent.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/event/AppDeleteEvent.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/event/AppEventType.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/event/AppFindEvent.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/app/event/AppUpdateEvent.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/dubbo/DubboCommunicationTest.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/dubbo/DubboConnectionTest.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/rmi/RmiCommunicationTest.java create mode 100644 shared/communication/src/test/java/com/alibaba/otter/shared/communication/rmi/RmiConnectionTest.java create mode 100644 shared/communication/src/test/resources/applicationContext.xml create mode 100644 shared/communication/src/test/resources/spring/otter-test-communication.xml create mode 100644 shared/etl/pom.xml create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/fileresolver/FileInfo.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/fileresolver/FileResolver.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/fileresolver/support/RemoteDirectory.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/fileresolver/support/RemoteDirectoryFetcher.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/fileresolver/support/RemoteDirectoryFetcherAware.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/processor/EventProcessor.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/processor/support/DataSourceFetcher.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/extend/processor/support/DataSourceFetcherAware.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/BatchObject.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/DbBatch.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/EventColumn.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/EventColumnIndexComparable.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/EventData.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/EventType.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/FileBatch.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/FileData.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/Identity.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/ObjectData.java create mode 100644 shared/etl/src/main/java/com/alibaba/otter/shared/etl/model/RowBatch.java create mode 100644 shared/pom.xml create mode 100644 shared/push/pom.xml create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/AbstractSubscribeManager.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/PushException.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/SubscribeCallback.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/SubscribeManager.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/SubscribeManagerFactory.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/SubscribeType.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/datasource/DataSourceHanlder.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/datasource/DataSourceKey.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/datasource/media/MediaPushDataSource.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/datasource/media/MediaPushDataSourceHandler.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/media/MediaSubscribeManager.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/supplier/AbstractDatasourceSupplier.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/supplier/DatasourceChangeCallback.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/supplier/DatasourceInfo.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/supplier/DatasourceSupplier.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/supplier/HaDatasourceInfo.java create mode 100644 shared/push/src/main/java/com/alibaba/otter/common/push/supplier/media/MediaDatasourceSupplier.java create mode 100644 shared/push/src/main/resources/spring/otter-push-common.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..04a5ecc2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +.svn/ +target/ +test-output/ +*.class +.classpath +.project +.settings/ +tmp +temp +*.log +antx.properties +.idea/ +*.iml +htdocs +download +package-info.java diff --git a/HEADER.txt b/HEADER.txt new file mode 100644 index 00000000..9adc0d59 --- /dev/null +++ b/HEADER.txt @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2010-2101 Alibaba Group Holding Limited. + * + * 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. + */ diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..75b52484 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + 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. diff --git a/README.md b/README.md new file mode 100644 index 00000000..d37d90c2 --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +

+项目背景

+

+    阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。

+

+    otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4。 +

+目前同步规模: +
    +
  1. 同步数据量6亿
  2. +
  3. 文件同步1.5TB(2000w张图片)
  4. +
  5. 涉及200+个数据库实例之间的同步
  6. +
  7. 80+台机器的集群规模
  8. +
+

+项目介绍

+

名称:otter ['ɒtə(r)]

+

译意: 水獭,数据搬运工

+

语言: 纯java开发

+

定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统

+

+

+工作原理

+

+

原理描述:

+

1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击

+

2. 典型管理系统架构,manager(web管理)+node(工作节点)

+

    a. manager运行时推送同步配置到node节点

+

    b. node节点将同步状态反馈到manager上

+

3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

+

+什么是canal?

+otter之前开源的一个子项目,开源链接地址:http://github.com/alibaba/canal +

+

+Introduction

+

See the page for quick start: Introduction.

+

+QuickStart

+

See the page for quick start: QuickStart.

+

+

+AdminGuide

+

See the page for admin deploy guide : AdminGuide

+

+

+相关文档

+

See the page for 文档: 相关PPT&PDF

+

+

+常见问题

+

See the page for FAQ: FAQ

+

+ +

+版本相关:

+

1. 建议版本:4.2.10 (otter开源版本从内部演变而来,所以初始版本直接从4.x开始)

+

2. 下载发布包:download

+

3. maven依赖 : 暂无

+ + +

+

+问题反馈

+

+注意:canal&otter QQ讨论群已经建立,群号:161559791 ,欢迎加入进行技术讨论。

+ +

1. qq交流群: 161559791

+

2. 邮件交流: jianghang115@gmail.com

+

3. 新浪微博: agapple0002

+

4. 报告issue:issues

+

diff --git a/codeformat.xml b/codeformat.xml new file mode 100644 index 00000000..769a6866 --- /dev/null +++ b/codeformat.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/codetemplates.xml b/codetemplates.xml new file mode 100644 index 00000000..1a91c371 --- /dev/null +++ b/codetemplates.xml @@ -0,0 +1,41 @@ +