You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cmda.apache.org by xi...@apache.org on 2015/09/09 00:49:51 UTC

[42/51] [partial] incubator-cmda git commit: Add frontend and backend

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/climate/twoDVariableZonelMean.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/climate/twoDVariableZonelMean.scala.html b/.target/views/climate/twoDVariableZonelMean.scala.html
new file mode 100644
index 0000000..9c346d6
--- /dev/null
+++ b/.target/views/climate/twoDVariableZonelMean.scala.html
@@ -0,0 +1,1038 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more		   *
+ * contributor license agreements.  See the NOTICE file distributed with	   *
+ * this work for additional information regarding copyright ownership.         *
+ * The ASF licenses this file to You under the Apache License, Version 2.0     *
+ * (the "License"); you may not use this file except in compliance with        *
+ * the License.  You may obtain a copy of the License at                       *
+ *                                                                             *
+ *    http://www.apache.org/licenses/LICENSE-2.0                               *
+ *																			   *
+ * Unless required by applicable law or agreed to in writing, software         *
+ * distributed under the License is distributed on an "AS IS" BASIS,           *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    *
+ * See the License for the specific language governing permissions and         *
+ * limitations under the License.											   *
+ *******************************************************************************@ 
+
+@(parameters: metadata.TwoDVarZonalMean) @import helper._
+<link rel="stylesheet"
+	href='@routes.Assets.at("stylesheets/livefitler.css")'>
+@scripts = {
+<script src='@routes.Assets.at("javascripts/edit_button.js")'></script>
+<script src='@routes.Assets.at("javascripts/livefilter.js")'></script>
+<script type="text/javascript"
+	src='@routes.Assets.at("javascripts/jquery-1.9.0.min.js")'></script>
+<script type="text/javascript"
+	src="https://cdnjs.cloudflare.com/ajax/libs/flot/0.8.3/jquery.flot.min.js"></script>
+<script type="
+	text/javascript"
+	src='@routes.Assets.at("javascripts/json2.js")'></script>
+<script
+	type='text/javascript" src="@routes.Assets.at("javascripts/xmisc.js")'></script>
+<script type="text/javascript">
+    var Response = null;
+    var variable = "";
+    window.onload = function() {
+      changeDataSource(); 
+      select_data();
+      changeVariableName();
+      select_var();
+      var z=document.getElementById("download_data");
+      z.disabled=false;
+      $('#t0').val($('#startYearMonth').text());
+      $('#t1').val($('#endYearMonth').text());
+      var selectMonths = $('#selectMonths').text();
+      $('#months option:contains('+selectMonths+')').prop({selected: true});
+      select_months();
+      select_monthsByPara();
+      $('#lat0').val($('#startLat').text());
+      $('#lat1').val($('#endLat').text());
+      var variableScale = $('#variableScale').text();
+      if(variableScale == "0") {
+        $('#radioLin').prop( "checked", true );
+        $('#radioLog').prop( "checked", false );
+      }
+      else {
+        $('#radioLin').prop( "checked", false );
+        $('#radioLog').prop( "checked", true );
+      }
+      $('#purpose').html($('#executionPurpose').text());
+      var imageUrl = $('#image').text();
+      $('#Image').html('<img src="'+imageUrl+'" width=680 />');
+      $('#data_url').html($('#dataURL').text());
+      $('#Response').html($('serviceResponseText').text());
+    }
+    function changeDataSource(){
+    	var dataSource = $('#dataSource').text();
+     	var x = document.getElementById("data");
+     	if(dataSource == "NASA_MODIS" ){
+     		x.options[0].selected=true;
+     	}
+     	else if(dataSource == "NASA_AMSRE" ){
+     		x.options[1].selected=true;
+     	}
+     	else if(dataSource == "NASA_TRMM" ){
+     		x.options[2].selected=true;
+     	}
+     	else if(dataSource == "NASA_GPCP" ){
+     		x.options[3].selected=true;
+     	}
+     	else if(dataSource == "NASA_QuikSCAT" ){
+     		x.options[4].selected=true;
+     	}
+     	else if(dataSource == "NASA_AVISO" ){
+     		x.options[5].selected=true;
+     	}
+     	else if(dataSource == "NASA_GRACE" ){
+     		x.options[6].selected=true;
+     	}
+     	else if(dataSource == "NOAA_NODC" ){
+     		x.options[7].selected=true;
+     	}
+     	else if(dataSource == "NASA_CERES" ){
+     		x.options[8].selected=true;
+     	}
+     	else if(dataSource == "CCCMA_CANESM2" ){
+     		x.options[9].selected=true;
+     	}
+     	else if(dataSource == "GFDL_ESM2G" ){
+     		x.options[10].selected=true;
+     	}
+     	else if(dataSource == "GISS_E2-H" ){
+     		x.options[11].selected=true;
+     	}
+     	else if(dataSource == "GISS_E2-R" ){
+     		x.options[12].selected=true;
+     	}
+     	else if(dataSource == "NCAR_CAM5" ){
+     		x.options[13].selected=true;
+     	}
+     	else if(dataSource == "NCC_NORESM" ){
+     		x.options[14].selected=true;
+     	}
+     	else if(dataSource == "UKMO_HadGEM2-ES" ){
+     		x.options[15].selected=true;
+     	}
+     	else if(dataSource == "CCCMA_CANAM4" ){
+     		x.options[16].selected=true;
+     	}
+     	else if(dataSource == "CSIRO_MK3.6" ){
+     		x.options[17].selected=true;
+     	}
+     	else if(dataSource == "GFDL_CM3" ){
+     		x.options[18].selected=true;
+     	}
+     	else if(dataSource == "IPSL_CM5A-LR" ){
+     		x.options[19].selected=true;
+     	}
+     	else if(dataSource == "MIROC_MIROC5" ){
+     		x.options[20].selected=true;
+     	}
+     	else if(dataSource == "UKMO_HADGEM2-A" ){
+     		x.options[21].selected=true;
+     	}
+     	else if(dataSource == "ECMWF_interim" ){
+     		x.options[22].selected=true;
+     	}
+    }
+    function changeVariableName(){
+    	var var_string = $('#variableName').text();
+     	var x=document.getElementById("var");
+     	if (var_string == "clt")
+     		x.options[1].selected=true;
+        else if (var_string == "ts")
+        	x.options[2].selected=true;
+        else if (var_string == "tos")
+        	x.options[3].selected=true;
+        else if (var_string == "pr")
+        	x.options[0].selected=true;
+        else if (var_string == "uas")
+        	x.options[4].selected=true;
+        else if (var_string == "vas")
+        	x.options[5].selected=true;
+        else if (var_string == "sfcWind")
+        	x.options[6].selected=true;
+        else if (var_string == "zos")
+        	x.options[7].selected=true;
+        else if (var_string == "lai")
+        	x.options[8].selected=true;
+        else if (var_string == "zl")
+        	x.options[9].selected=true;
+        else if (var_string == "zo")
+        	x.options[10].selected=true;
+        else if (var_string == "ohc700")
+        	x.options[11].selected=true;
+        else if (var_string == "ohc2000")
+        	x.options[12].selected=true;
+        else if (var_string == "rlds")
+        	x.options[13].selected=true;
+        else if (var_string == "rsds")
+        	x.options[14].selected=true;
+        else if (var_string == "rlus")
+        	x.options[15].selected=true;
+        else if (var_string == "rsus")
+        	x.options[16].selected=true;
+        else if (var_string == "rldscs")
+        	x.options[17].selected=true;
+        else if (var_string == "rsdscs")
+        	x.options[18].selected=true;
+        else if (var_string == "rsuscs")
+        	x.options[19].selected=true;
+        else if (var_string == "rsdt")
+        	x.options[20].selected=true;
+        else if (var_string == "rlutcs")
+        	x.options[21].selected=true;
+        else if (var_string == "rlut")
+        	x.options[22].selected=true;
+        else if (var_string == "rsutcs")
+        	x.options[23].selected=true;
+        else if (var_string == "rsut")
+        	x.options[24].selected=true;
+    }
+    function select_monthsByPara(){
+    	var monthsByPara = $('#monthsPara').text();
+    	if(monthsByPara.search("jan")>-1){
+    		document.getElementById('Jan').checked = true;
+    	}
+    	if(monthsByPara.search("feb")>-1){
+    		document.getElementById('Feb').checked = true;
+    	}
+    	if(monthsByPara.search("mar")>-1){
+    		document.getElementById('Mar').checked = true;
+    	}
+    	if(monthsByPara.search("apr")>-1){
+    		document.getElementById('Apr').checked = true;
+    	}
+    	if(monthsByPara.search("may")>-1){
+    		document.getElementById('May').checked = true;
+    	}
+    	if(monthsByPara.search("jun")>-1){
+    		document.getElementById('Jun').checked = true;
+    	}
+    	if(monthsByPara.search("jul")>-1){
+    		document.getElementById('Jul').checked = true;
+    	}
+    	if(monthsByPara.search("aug")>-1){
+    		document.getElementById('Aug').checked = true;
+    	}
+    	if(monthsByPara.search("sep")>-1){
+    		document.getElementById('Sep').checked = true;
+    	}
+    	if(monthsByPara.search("oct")>-1){
+    		document.getElementById('Oct').checked = true;
+    	}
+    	if(monthsByPara.search("nov")>-1){
+    		document.getElementById('Nov').checked = true;
+    	}
+    	if(monthsByPara.search("dec")>-1){
+    		document.getElementById('Dec').checked = true;
+    	}
+    }
+    function disable_download_button()
+    {
+    }
+    function enable_download_button()
+    {
+      var x=document.getElementById("download_data");
+      x.disabled=false;
+    }
+    function select_all_months()
+    {
+        document.getElementById('Jan').checked = true;
+        document.getElementById('Feb').checked = true;
+        document.getElementById('Mar').checked = true;
+        document.getElementById('Apr').checked = true;
+        document.getElementById('May').checked = true;
+        document.getElementById('Jun').checked = true;
+        document.getElementById('Jul').checked = true;
+        document.getElementById('Aug').checked = true;
+        document.getElementById('Sep').checked = true;
+        document.getElementById('Oct').checked = true;
+        document.getElementById('Nov').checked = true;
+        document.getElementById('Dec').checked = true;
+    }
+    function no_month_check()
+    {
+        if (document.getElementById('Jan').checked == false &&
+           document.getElementById('Feb').checked == false &&
+           document.getElementById('Mar').checked == false &&
+           document.getElementById('Apr').checked == false &&
+           document.getElementById('May').checked == false &&
+           document.getElementById('Jun').checked == false &&
+           document.getElementById('Jul').checked == false &&
+           document.getElementById('Aug').checked == false &&
+           document.getElementById('Sep').checked == false &&
+           document.getElementById('Oct').checked == false &&
+           document.getElementById('Nov').checked == false &&
+           document.getElementById('Dec').checked == false) {
+           return true;
+          }
+        else
+           return false;
+    }
+    function reset_months()
+    {
+        document.getElementById('Jan').checked = false;
+        document.getElementById('Feb').checked = false;
+        document.getElementById('Mar').checked = false;
+        document.getElementById('Apr').checked = false;
+        document.getElementById('May').checked = false;
+        document.getElementById('Jun').checked = false;
+        document.getElementById('Jul').checked = false;
+        document.getElementById('Aug').checked = false;
+        document.getElementById('Sep').checked = false;
+        document.getElementById('Oct').checked = false;
+        document.getElementById('Nov').checked = false;
+        document.getElementById('Dec').checked = false;
+    }
+    function reset_vars()
+    {
+      var x=document.getElementById("var");
+      x.options[0].disabled=false;
+      x.options[1].disabled=false;
+      x.options[2].disabled=false;
+      x.options[3].disabled=false;
+      x.options[4].disabled=false;
+      x.options[5].disabled=false;
+      x.options[6].disabled=false;
+      x.options[7].disabled=false;
+      x.options[8].disabled=false;
+      x.options[9].disabled=false;
+      x.options[10].disabled=false;
+      x.options[11].disabled=false;
+      x.options[12].disabled=false;
+      x.options[13].disabled=false;
+      x.options[14].disabled=false;
+      x.options[15].disabled=false;
+      x.options[16].disabled=false;
+      x.options[17].disabled=false;
+      x.options[18].disabled=false;
+      x.options[19].disabled=false;
+      x.options[20].disabled=false;
+      x.options[21].disabled=false;
+      x.options[22].disabled=false;
+      x.options[23].disabled=false;
+      x.options[24].disabled=false;
+    }
+    function select_var()
+    {
+      var var_string = $("#var").val();
+      if (var_string == "Total Cloud Fraction")
+        variable = "clt";
+      else if (var_string == "Surface Temperature")
+        variable = "ts";
+      else if (var_string == "Sea Surface Temperature")
+        variable = "tos";
+      else if (var_string == "Precipitation Flux")
+        variable = "pr";
+      else if (var_string == "Eastward Near-Surface Wind")
+        variable = "uas";
+      else if (var_string == "Northward Near-Surface Wind")
+        variable = "vas";
+      else if (var_string == "Near-Surface Wind Speed")
+        variable = "sfcWind";
+      else if (var_string == "Sea Surface Height")
+        variable = "zos";
+      else if (var_string == "Leaf Area Index")
+        variable = "lai";
+      else if (var_string == "Equivalent Water Height Over Land")
+        variable = "zl";
+      else if (var_string == "Equivalent Water Height Over Ocean")
+        variable = "zo";
+      else if (var_string == "Ocean Heat Content Anomaly within 700 m Depth")
+        variable = "ohc700";
+      else if (var_string == "Ocean Heat Content Anomaly within 2000 m Depth")
+        variable = "ohc2000";
+      else if (var_string == "Surface Downwelling Longwave Radiation")
+        variable = "rlds";
+      else if (var_string == "Surface Downwelling Shortwave Radiation")
+        variable = "rsds";
+      else if (var_string == "Surface Upwelling Longwave Radiation")
+        variable = "rlus";
+      else if (var_string == "Surface Upwelling Shortwave Radiation")
+        variable = "rsus";
+      else if (var_string == "Surface Downwelling Clear-Sky Longwave Radiation")
+        variable = "rldscs";
+      else if (var_string == "Surface Downwelling Clear-Sky Shortwave Radiation")
+        variable = "rsdscs";
+      else if (var_string == "Surface Upwelling Clear-Sky Shortwave Radiation")
+        variable = "rsuscs";
+      else if (var_string == "TOA Incident Shortwave Radiation")
+        variable = "rsdt";
+      else if (var_string == "TOA Outgoing Clear-Sky Longwave Radiation")
+        variable = "rlutcs";
+      else if (var_string == "TOA Outgoing Longwave Radiation")
+        variable = "rlut";
+      else if (var_string == "TOA Outgoing Clear-Sky Shortwave Radiation")
+        variable = "rsutcs";
+      else if (var_string == "TOA Outgoing Shortwave Radiation")
+        variable = "rsut";
+    }
+    function select_data()
+    {
+      var data_string = $("#data").val();
+      var x=document.getElementById("var");
+      reset_vars();
+      if (data_string == "NASA/AMSRE") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[3].selected=true;
+      }
+      else if (data_string == "NASA/MODIS") {
+        x.options[0].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[1].selected=true;
+      }
+      else if (data_string == "NASA/TRMM") {
+        x.options[0].selected=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+      }
+      else if (data_string == "NASA/GPCP") {
+        x.options[0].selected=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+      }
+      else if (data_string == "NASA/QuikSCAT") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[4].selected=true;
+      }
+      else if (data_string == "NASA/AVISO") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[7].selected=true;
+      }
+      else if (data_string == "NASA/GRACE") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[9].selected=true;
+      }
+      else if (data_string == "NOAA/NODC") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[11].selected=true;
+      }
+      else if (data_string == "NASA/CERES") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[3].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].selected=true;
+      }
+      else if (data_string == "ECMWF/interim") {
+        x.options[0].disabled=true;
+        x.options[1].disabled=true;
+        x.options[2].disabled=true;
+        x.options[4].disabled=true;
+        x.options[5].disabled=true;
+        x.options[6].disabled=true;
+        x.options[7].disabled=true;
+        x.options[8].disabled=true;
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[13].disabled=true;
+        x.options[14].disabled=true;
+        x.options[15].disabled=true;
+        x.options[16].disabled=true;
+        x.options[17].disabled=true;
+        x.options[18].disabled=true;
+        x.options[19].disabled=true;
+        x.options[20].disabled=true;
+        x.options[21].disabled=true;
+        x.options[22].disabled=true;
+        x.options[23].disabled=true;
+        x.options[24].disabled=true;
+        x.options[3].selected=true;
+      }
+      else {
+        x.options[9].disabled=true;
+        x.options[10].disabled=true;
+        x.options[11].disabled=true;
+        x.options[12].disabled=true;
+        x.options[0].selected=true;
+      }
+    select_var();
+    }
+    function select_months()
+    {
+      var s1=document.getElementById("months");
+      if (s1.selectedIndex == 1) {
+        reset_months();
+      }
+      if (s1.selectedIndex == 0) {
+        select_all_months();
+      }
+      if (s1.selectedIndex == 2) {
+        reset_months();
+        document.getElementById('Jun').checked = true;
+        document.getElementById('Jul').checked = true;
+        document.getElementById('Aug').checked = true;
+      }
+      if (s1.selectedIndex == 3) {
+        reset_months();
+        document.getElementById('Sep').checked = true;
+        document.getElementById('Oct').checked = true;
+        document.getElementById('Nov').checked = true;
+      }
+      if (s1.selectedIndex == 4) {
+        reset_months();
+        document.getElementById('Dec').checked = true;
+        document.getElementById('Jan').checked = true;
+        document.getElementById('Feb').checked = true;
+      }
+      if (s1.selectedIndex == 5) {
+        reset_months();
+        document.getElementById('Mar').checked = true;
+        document.getElementById('Apr').checked = true;
+        document.getElementById('May').checked = true;
+      }
+    }
+    $(document).ready(function(){
+      $("#download_data").click(function(event) {
+        var durl = $("#data_url").val();
+        window.location.assign(durl);
+      });
+      $("#twodvarzonalmean").click(function(event) {
+		Response = null;
+      	if (no_month_check()) {
+           $("#Response").html("Error: please check at least one month.");
+           $("#Image").html("");
+           return;
+        } 
+        $("#Response").html("Calculating ...");
+        $("#data_url").html("Calculating ...");
+        $("#Image").html("");
+        var url = "http://" + window.location.hostname + ":9002/svc/twoDimZonalMean?";
+        var d1 = $("#data").val();
+        var model1 = d1.replace("/", "_");
+        var arglist = "";
+        arglist = arglist.concat("model=");
+        arglist = arglist.concat(model1);
+        var v1 = $("#var").val();
+        arglist = arglist.concat("&var=");
+        arglist = arglist.concat(variable);
+        var t0 = $("#t0").val();
+        var t1 = $("#t1").val();
+        t0 = t0.replace("-", "");
+        t1 = t1.replace("-", "");
+        arglist = arglist.concat("&start_time=");
+        arglist = arglist.concat(t0);
+        arglist = arglist.concat("&end_time=");
+        arglist = arglist.concat(t1);
+        var lat0 = $("#lat0").val();
+        var lat1 = $("#lat1").val();
+        arglist = arglist.concat("&lat1=");
+        arglist = arglist.concat(lat0);
+        arglist = arglist.concat("&lat2=");
+        arglist = arglist.concat(lat1);
+        var s1 = document.getElementById('months');
+        var month_str = "";
+        var mm = document.getElementById('Jan');
+        if (mm.checked == true)
+          month_str = month_str.concat(",1");
+        var mm = document.getElementById('Feb');
+        if (mm.checked == true)
+          month_str = month_str.concat(",2");
+        var mm = document.getElementById('Mar');
+        if (mm.checked == true)
+          month_str = month_str.concat(",3");
+        var mm = document.getElementById('Apr');
+        if (mm.checked == true)
+          month_str = month_str.concat(",4");
+        var mm = document.getElementById('May');
+        if (mm.checked == true)
+          month_str = month_str.concat(",5");
+        var mm = document.getElementById('Jun');
+        if (mm.checked == true)
+          month_str = month_str.concat(",6");
+        var mm = document.getElementById('Jul');
+        if (mm.checked == true)
+          month_str = month_str.concat(",7");
+        var mm = document.getElementById('Aug');
+        if (mm.checked == true)
+          month_str = month_str.concat(",8");
+        var mm = document.getElementById('Sep');
+        if (mm.checked == true)
+          month_str = month_str.concat(",9");
+        var mm = document.getElementById('Oct');
+        if (mm.checked == true)
+          month_str = month_str.concat(",10");
+        var mm = document.getElementById('Nov');
+        if (mm.checked == true)
+          month_str = month_str.concat(",11");
+        var mm = document.getElementById('Dec');
+        if (mm.checked == true)
+          month_str = month_str.concat(",12");
+        month_str = month_str.substr(1);
+        arglist = arglist.concat("&months=");
+        arglist = arglist.concat(month_str);
+        arglist = arglist.concat("&scale=");
+        var y = document.getElementById("radioLin").checked;
+        if (y == true)
+          arglist = arglist.concat('0');
+        else
+          arglist = arglist.concat('2');
+        var purpose = $("#purpose").val();
+        arglist = arglist.concat("&purpose=");
+        arglist = arglist.concat(purpose);
+        url = url + encodeURI(arglist);
+        var urlTimeBounds = "http://" + window.location.hostname + ":9002/svc/time_bounds?";
+        var arglistTB = "";
+        arglistTB = arglistTB.concat("serviceType=");
+        arglistTB = arglistTB.concat("1");
+        arglistTB = arglistTB.concat("&source=");
+        arglistTB = arglistTB.concat(d1);
+        arglistTB = arglistTB.concat("&var=");
+        arglistTB = arglistTB.concat(variable);
+        urlTimeBounds = urlTimeBounds + encodeURI(arglistTB);
+        $.ajax({
+            type: "GET",
+            url: urlTimeBounds,
+            dataType: "json",
+            data: null,
+            success: function(data, textStatus, xhr) {
+                Response = data;
+                if (data.success == false) {
+                    Response = null;
+                    var text = JSON.stringify(data, null, 4);
+                    text = "Error in backend: <br>" + text; 
+                    $("#Response").html(text);
+                    $("#data_url").html(text);
+                    return;
+                }
+                var text = JSON.stringify(data, null, 4);
+                var tb = data.time_bounds;
+                var bds = String(tb).split(",");
+                var lowerT = parseInt(bds[0]);
+                var upperT = parseInt(bds[1]);
+                var t0I = parseInt(t0);
+                var t1I = parseInt(t1);
+                if ( lowerT == 0 && upperT ==0 ) {
+                  alert("We do not have data for this source and variable configuration.");
+                  return;
+                }
+                if (t0I < lowerT && t1I < lowerT ||
+                    t0I > upperT && t1I > upperT) {
+                  alert("We do not have data that span your time range. Try the range inside ["+lowerT+", "+upperT+"].");
+                  return;
+                }
+                if (t0I < lowerT && t1I <= upperT) {
+                  alert("Your start year-month is out of bound. It has to be in or later than " + lowerT +
+                        ". We will use the range ["+lowerT+", "+t1I+"] for you.");
+                }
+                if (t1I > upperT && t0I >= lowerT) {
+                  alert("Your end year-month is out of bound. It has to be in or earlier than " + upperT +
+                        ". We will use the range ["+t0I+", "+upperT+"] for you.");
+                }
+                if (t0I < lowerT && t1I > upperT ) {
+                  alert("Both of your start and end year-months are out of bounds. They have to be in or earlier than " + upperT +
+                        ", and in or later than " + lowerT + ". We will use the range ["+lowerT+", "+upperT+"] for you.");
+                }
+            },
+            error: function(xhr, textStatus, errorThrown) {
+				$("#Response").html("error!");
+				$("#data_url").html("error!");
+            },
+            complete: function(xhr, textStatus) {
+            }
+        });
+        $.ajax({
+            type: "GET",
+            url: url,
+            dataType: "json",
+            data: null,
+            success: function(data, textStatus, xhr) {
+                Response = data;
+                if (data.success == false) {
+                    Response = null;
+                    var text = JSON.stringify(data, null, 4);
+                    text = "Error in backend: <br>" + text; 
+                    $("#Response").html(text);
+                    $("#data_url").html(text);
+                    return;
+                }
+                var text = JSON.stringify(data, null, 4);
+                $("#Response").html(text);
+                var html1 = "<img src='"+data.url+"' width='680' style=‘display: block; margin: 0 auto;’/>";
+                $("#Image").html(html1);
+                $("#data_url").html(data.dataUrl);
+                enable_download_button();
+            },
+            error: function(xhr, textStatus, errorThrown) {
+		$("#Response").html("error!");
+                $("#data_url").html("error!");
+            },
+            complete: function(xhr, textStatus) {
+            }
+        });
+      });
+    });
+  </script>
+}
+
+@main("Parameters of ConfId", scripts){ @flash_message()   
+	 
+<p>
+<div id="dataSource" style="display: none;">@parameters.getDataSource()</div>
+<div id="variableName" style="display: none;">@parameters.getVariableName()</div>
+<div id="startYearMonth" style="display: none;">@parameters.getStartYearMonth()</div>
+<div id="endYearMonth" style="display: none;">@parameters.getEndYearMonth()</div>
+<div id="selectMonths" style="display: none;">@parameters.getSelectMonths()</div>
+<div id="monthsPara" style="display: none;">@parameters.getMonth()</div>
+<div id="startLat" style="display: none;">@parameters.getStartLat()</div>
+<div id="endLat" style="display: none;">@parameters.getEndLat()</div>
+<div id="variableScale" style="display: none;">@parameters.getVariableScale()</div>
+<div id="executionPurpose" style="display: none;">@parameters.getExecutionPurpose()</div>
+<div id="image" style="display: none;">@parameters.getImage()</div>
+<div id="dataURL" style="display: none;">@parameters.getDataURL()</div>
+<div id="serviceResponseText" style="display: none;">@parameters.getServiceResponseText()</div>
+<table border="1" align="center">
+
+<tr>
+<td colspan="4">
+<center>
+<b>Service: 2-D Variable Zonal Mean</b> <br><br>
+This service generates a graph of a 2-dimensional variable's zonal mean with time averaing. <br>
+Select a data source (model or observation), a variable name, and a time range below.<br><br>
+</center>
+</td>
+</tr>
+
+<tr>
+<td>data source:</td><td><select name="data", id="data" onchange="select_data()">
+<!-- <option>NASA/obs4MIPs</option>  -->
+<optgroup label="Observation">
+	<option>NASA/MODIS</option>
+	<option>NASA/AMSRE</option>
+	<option>NASA/TRMM</option>
+	<option>NASA/GPCP</option>
+	<option>NASA/QuikSCAT</option>
+	<option>NASA/AVISO</option>
+	<option>NASA/GRACE</option>
+	<option>NOAA/NODC</option>
+	<option>NASA/CERES</option>
+</optgroup>
+<optgroup label="Model: Historical">
+	<option>CCCMA/CANESM2</option>
+	<option>GFDL/ESM2G</option>
+	<option>GISS/E2-H</option>
+	<option>GISS/E2-R</option>
+	<option>NCAR/CAM5</option>
+	<option>NCC/NORESM</option>
+	<option>UKMO/HadGEM2-ES</option>
+</optgroup>
+<optgroup label="Model: AMIP">
+	<option>CCCMA/CANAM4</option>
+	<option>CSIRO/MK3.6</option>
+	<option>GFDL/CM3</option>
+	<option>IPSL/CM5A-LR</option>
+	<option>MIROC/MIROC5</option>
+	<option>UKMO/HadGEM2-A</option>
+</optgroup>
+<optgroup label="Reanalysis">
+	<option>ECMWF/interim</option>
+</optgroup>
+</select>
+</td>
+<td>variable name:</td>
+<td><select name="var" , id="var" onchange="select_var()">
+		<option>Precipitation Flux</option>
+		<option>Total Cloud Fraction</option>
+		<option>Surface Temperature</option>
+		<option>Sea Surface Temperature</option>
+		<option>Eastward Near-Surface Wind</option>
+		<option>Northward Near-Surface Wind</option>
+		<option>Near-Surface Wind Speed</option>
+		<option>Sea Surface Height</option>
+		<option>Leaf Area Index</option>
+		<option>Equivalent Water Height Over Land</option>
+		<option>Equivalent Water Height Over Ocean</option>
+		<option>Ocean Heat Content Anomaly within 700 m Depth</option>
+		<option>Ocean Heat Content Anomaly within 2000 m Depth</option>
+		<option>Surface Downwelling Longwave Radiation</option>
+		<option>Surface Downwelling Shortwave Radiation</option>
+		<option>Surface Upwelling Longwave Radiation</option>
+		<option>Surface Upwelling Shortwave Radiation</option>
+		<option>Surface Downwelling Clear-Sky Longwave Radiation</option>
+		<option>Surface Downwelling Clear-Sky Shortwave Radiation</option>
+		<option>Surface Upwelling Clear-Sky Shortwave Radiation</option>
+		<option>TOA Incident Shortwave Radiation</option>
+		<option>TOA Outgoing Longwave Radiation</option>
+		<option>TOA Outgoing Shortwave Radiation</option>
+		<option>TOA Outgoing Clear-Sky Longwave Radiation</option>
+		<option>TOA Outgoing Clear-Sky Shortwave Radiation</option>
+</select></td>
+</tr>
+<tr>
+	<td>start year-month:</td>
+	<td><input id="t0" value="2004-01" alt="start" /></td>
+	<td>end year-month:</td>
+	<td><input id="t1" value="2004-12" alt="end" /></td>
+</tr>
+<tr>
+	<td>select months:</td>
+	<td><select name="months" id="months" onchange="select_months()">
+			<option id="all">select all</option>
+			<option id="none">select none</option>
+			<option id="summer">Summer:Jun-Jul-Aug</option>
+			<option id="autum">Autumn:Sep-Oct-Nov</option>
+			<option id="winter">Winter:Dec-Jan-Feb</option>
+			<option id="spring">Spring:Mar-Apr-May</option>
+	</select></td>
+	<td></td>
+	<td>
+</tr>
+<tr>
+	<td><label><input type="checkbox" name="option1" id="Jan"
+			value="Jan" /> Jan<br></label> <label><input type="checkbox"
+			name="option1" id="Feb" value="Feb" /> Feb<br></label> <label><input
+			type="checkbox" name="option1" id="Mar" value="Mar" /> Mar<br></label>
+	</td>
+	<td><label><input type="checkbox" name="option1" id="Apr"
+			value="Apr" /> Apr<br></label> <label><input type="checkbox"
+			name="option1" id="May" value="May" /> May<br></label> <label><input
+			type="checkbox" name="option1" id="Jun" value="Jun" /> Jun<br></label>
+	</td>
+	<td><label><input type="checkbox" name="option1" id="Jul"
+			value="Jul" /> Jul<br></label> <label><input type="checkbox"
+			name="option1" id="Aug" value="Aug" /> Aug<br></label> <label><input
+			type="checkbox" name="option1" id="Sep" value="Sep" /> Sep<br></label>
+	</td>
+	<td><label><input type="checkbox" name="option1" id="Oct"
+			value="Oct" /> Oct<br></label> <label><input type="checkbox"
+			name="option1" id="Nov" value="Nov" /> Nov<br></label> <label><input
+			type="checkbox" name="option1" id="Dec" value="Dec" /> Dec<br></label>
+	</td>
+</tr>
+<tr>
+	<td>start lat (deg):</td>
+	<td><input id="lat0" value="-90" /></td>
+	<td>end lat (deg):</td>
+	<td><input id="lat1" value="90" /></td>
+</tr>
+<tr>
+	<td colspan="1">variable scale:</td>
+	<td colspan="3">
+		<form>
+			<input type="radio" name="scale1" value="linear" id="radioLin"
+				checked>linear <input type="radio" name="scale1"
+				value="logarithmic" id="radioLog">logarithmic
+		</form>
+	</td>
+</tr>
+<tr>
+	<td colspan="1">Execution purpose</td>
+	<td colspan="3">
+		<form>
+			<textarea name="purpose" id="purpose" rows="4" cols="50"> </textarea>
+		</form>
+	</td>
+</tr>
+<tr>
+	<td colspan="2" align="center"><input id="twodvarzonalmean"
+		type="submit" value="            Run  Again            "
+		style="height: 28px" /></td>
+	<form>
+		<td colspan="2" align="center"><input id="download_data"
+			type="button" value="Download Data" style="height: 28px" /></td>
+	</form>
+</tr>
+<td colspan="4">
+	<div id="Image">Image Here</div>
+</td>
+</tr>
+<tr>
+	<td colspan="4" align="center"><textarea readonly id="data_url"
+			cols="89" rows="2">Data URL Here</textarea></td>
+</tr>
+<tr>
+	<td colspan="4" align="center"><textarea readonly id="Response"
+			cols="89" rows="6">Service Response Text Here</textarea></td>
+</tr>
+</p>
+</table>
+}

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/flash_message.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/flash_message.scala.html b/.target/views/flash_message.scala.html
new file mode 100644
index 0000000..aa45530
--- /dev/null
+++ b/.target/views/flash_message.scala.html
@@ -0,0 +1,36 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more		   *
+ * contributor license agreements.  See the NOTICE file distributed with	   *
+ * this work for additional information regarding copyright ownership.         *
+ * The ASF licenses this file to You under the Apache License, Version 2.0     *
+ * (the "License"); you may not use this file except in compliance with        *
+ * the License.  You may obtain a copy of the License at                       *
+ *                                                                             *
+ *    http://www.apache.org/licenses/LICENSE-2.0                               *
+ *																			   *
+ * Unless required by applicable law or agreed to in writing, software         *
+ * distributed under the License is distributed on an "AS IS" BASIS,           *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    *
+ * See the License for the specific language governing permissions and         *
+ * limitations under the License.											   *
+ *******************************************************************************@ 
+
+@import helper._
+
+@if(flash.containsKey("error")) {
+        
+        <div class="alert alert-danger">
+                <strong>Oops!</strong> @flash.get("error")
+                <a class="close" data-dismiss="alert">x</a>
+        </div>
+        
+}
+
+@if(flash.containsKey("success")) {
+        
+        <div class="alert alert-success">
+                @flash.get("success")
+                <a class="close" data-dismiss="alert">x</a>
+        </div>
+        
+}

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/index.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/index.scala.html b/.target/views/index.scala.html
new file mode 100644
index 0000000..d26d92f
--- /dev/null
+++ b/.target/views/index.scala.html
@@ -0,0 +1,24 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more		   *
+ * contributor license agreements.  See the NOTICE file distributed with	   *
+ * this work for additional information regarding copyright ownership.         *
+ * The ASF licenses this file to You under the Apache License, Version 2.0     *
+ * (the "License"); you may not use this file except in compliance with        *
+ * the License.  You may obtain a copy of the License at                       *
+ *                                                                             *
+ *    http://www.apache.org/licenses/LICENSE-2.0                               *
+ *																			   *
+ * Unless required by applicable law or agreed to in writing, software         *
+ * distributed under the License is distributed on an "AS IS" BASIS,           *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    *
+ * See the License for the specific language governing permissions and         *
+ * limitations under the License.											   *
+ *******************************************************************************@ 
+
+@(message: String)
+
+@main("Welcome to Play") {
+
+    @play20.welcome(message, style = "Java")
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/.target/views/main.scala.html
----------------------------------------------------------------------
diff --git a/.target/views/main.scala.html b/.target/views/main.scala.html
new file mode 100644
index 0000000..7bda335
--- /dev/null
+++ b/.target/views/main.scala.html
@@ -0,0 +1,32 @@
+@*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one or more		   *
+ * contributor license agreements.  See the NOTICE file distributed with	   *
+ * this work for additional information regarding copyright ownership.         *
+ * The ASF licenses this file to You under the Apache License, Version 2.0     *
+ * (the "License"); you may not use this file except in compliance with        *
+ * the License.  You may obtain a copy of the License at                       *
+ *                                                                             *
+ *    http://www.apache.org/licenses/LICENSE-2.0                               *
+ *																			   *
+ * Unless required by applicable law or agreed to in writing, software         *
+ * distributed under the License is distributed on an "AS IS" BASIS,           *
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    *
+ * See the License for the specific language governing permissions and         *
+ * limitations under the License.											   *
+ *******************************************************************************@ 
+
+@(title: String)(content: Html)
+
+<!DOCTYPE html>
+
+<html>
+    <head>
+        <title>@title</title>
+        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
+        <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
+        <script src="@routes.Assets.at("javascripts/hello.js")" type="text/javascript"></script>
+    </head>
+    <body>
+        @content
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/ApacheCMDA-Backend/.DS_Store
----------------------------------------------------------------------
diff --git a/ApacheCMDA-Backend/.DS_Store b/ApacheCMDA-Backend/.DS_Store
new file mode 100644
index 0000000..cba92e8
Binary files /dev/null and b/ApacheCMDA-Backend/.DS_Store differ

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/ApacheCMDA-Backend/.classpath
----------------------------------------------------------------------
diff --git a/ApacheCMDA-Backend/.classpath b/ApacheCMDA-Backend/.classpath
new file mode 100644
index 0000000..eee8040
--- /dev/null
+++ b/ApacheCMDA-Backend/.classpath
@@ -0,0 +1,142 @@
+<classpath>
+  <classpathentry kind="src" path="app" output="target/scala-2.11/classes"/>
+  <classpathentry kind="src" path="test" output="target/scala-2.11/test-classes"/>
+  <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/twirl-api_2.11/jars/twirl-api_2.11-1.0.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.apache.commons/commons-lang3/jars/commons-lang3-3.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scala-lang.modules/scala-xml_2.11/bundles/scala-xml_2.11-1.0.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play_2.11/jars/play_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/build-link/jars/build-link-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-exceptions/jars/play-exceptions-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.javassist/javassist/bundles/javassist-3.18.2-GA.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-iteratees_2.11/jars/play-iteratees_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scala-stm/scala-stm_2.11/jars/scala-stm_2.11-0.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe/config/bundles/config-1.2.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-json_2.11/jars/play-json_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-functional_2.11/jars/play-functional_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-datacommons_2.11/jars/play-datacommons_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.6.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.fasterxml.jackson.core/jackson-annotations/bundles/jackson-annotations-2.3.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/bundles/jackson-core-2.3.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.fasterxml.jackson.core/jackson-databind/bundles/jackson-databind-2.3.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scala-lang.modules/scala-parser-combinators_2.11/bundles/scala-parser-combinators_2.11-1.0.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/io.netty/netty/bundles/netty-3.9.3.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.netty/netty-http-pipelining/jars/netty-http-pipelining-1.1.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.slf4j/jul-to-slf4j/jars/jul-to-slf4j-1.7.6.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/ch.qos.logback/logback-core/jars/logback-core-1.1.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.1.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.akka/akka-actor_2.11/jars/akka-actor_2.11-2.3.4.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.akka/akka-slf4j_2.11/jars/akka-slf4j_2.11-2.3.4.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.9.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/xerces/xercesImpl/jars/xercesImpl-2.11.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/xml-apis/xml-apis/jars/xml-apis-1.4.01.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/javax.transaction/jta/jars/jta-1.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-java_2.11/jars/play-java_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.yaml/snakeyaml/bundles/snakeyaml-1.13.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hibernate/hibernate-validator/jars/hibernate-validator-5.0.3.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/javax.validation/validation-api/jars/validation-api-1.1.0.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.fasterxml/classmate/bundles/classmate-1.0.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.jboss.logging/jboss-logging/jars/jboss-logging-3.2.0.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-context/jars/spring-context-4.1.4.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-aop/jars/spring-aop-4.1.4.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/aopalliance/aopalliance/jars/aopalliance-1.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-beans/jars/spring-beans-4.1.4.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-core/jars/spring-core-4.1.4.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-expression/jars/spring-expression-4.1.4.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.reflections/reflections/jars/reflections-0.9.8.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.google.guava/guava/bundles/guava-16.0.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/dom4j/dom4j/jars/dom4j-1.6.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.google.code.findbugs/jsr305/jars/jsr305-2.0.3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.apache.tomcat/tomcat-servlet-api/jars/tomcat-servlet-api-8.0.5.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-cache_2.11/jars/play-cache_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.sf.ehcache/ehcache-core/jars/ehcache-core-2.6.8.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-java-ws_2.11/jars/play-java-ws_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-ws_2.11/jars/play-ws_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.ning/async-http-client/jars/async-http-client-1.8.14.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/oauth.signpost/signpost-core/jars/signpost-core-1.2.1.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/oauth.signpost/signpost-commonshttp4/jars/signpost-commonshttp4-1.2.1.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/javax.inject/javax.inject/jars/javax.inject-1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework.data/spring-data-jpa/jars/spring-data-jpa-1.7.1.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework.data/spring-data-commons/jars/spring-data-commons-1.9.1.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.7.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-orm/jars/spring-orm-4.0.7.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-jdbc/jars/spring-jdbc-4.0.7.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.springframework/spring-tx/jars/spring-tx-4.0.7.RELEASE.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.aspectj/aspectjrt/jars/aspectjrt-1.8.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.slf4j/jcl-over-slf4j/jars/jcl-over-slf4j-1.7.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hibernate/hibernate-entitymanager/jars/hibernate-entitymanager-4.3.7.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.jboss.logging/jboss-logging-annotations/jars/jboss-logging-annotations-1.2.0.Beta1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hibernate/hibernate-core/jars/hibernate-core-4.3.7.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.jboss.spec.javax.transaction/jboss-transaction-api_1.2_spec/jars/jboss-transaction-api_1.2_spec-1.0.0.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hibernate.common/hibernate-commons-annotations/jars/hibernate-commons-annotations-4.0.5.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hibernate.javax.persistence/hibernate-jpa-2.1-api/jars/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/antlr/antlr/jars/antlr-2.7.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.jboss/jandex/jars/jandex-1.1.0.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/mysql/mysql-connector-java/jars/mysql-connector-java-5.1.34.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.google.code.gson/gson/jars/gson-2.3.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hibernate/hibernate-c3p0/jars/hibernate-c3p0-4.3.7.Final.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.mchange/c3p0/jars/c3p0-0.9.2.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.mchange/mchange-commons-java/jars/mchange-commons-java-0.2.3.4.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.typesafe.play/play-test_2.11/jars/play-test_2.11-2.3.7.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/junit/junit/jars/junit-4.11.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.hamcrest/hamcrest-core/jars/hamcrest-core-1.3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-core_2.11/jars/specs2-core_2.11-2.3.12.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-matcher_2.11/jars/specs2-matcher_2.11-2.3.12.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-common_2.11/jars/specs2-common_2.11-2.3.12.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scalaz/scalaz-core_2.11/bundles/scalaz-core_2.11-7.0.6.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scalaz/scalaz-concurrent_2.11/bundles/scalaz-concurrent_2.11-7.0.6.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scalaz/scalaz-effect_2.11/bundles/scalaz-effect_2.11-7.0.6.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-junit_2.11/jars/specs2-junit_2.11-2.3.12.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-mock_2.11/jars/specs2-mock_2.11-2.3.12.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.mockito/mockito-core/jars/mockito-core-1.10.19.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-matcher-extra_2.11/jars/specs2-matcher-extra_2.11-2.3.12.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/specs2-analysis_2.11/jars/specs2-analysis_2.11-2.3.12.jar"/>
+  <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_COMPILER_CONTAINER"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.specs2/classycle/jars/classycle-1.4.3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/com.novocode/junit-interface/jars/junit-interface-0.11-RC1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.scala-sbt/test-interface/jars/test-interface-1.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.fluentlenium/fluentlenium-festassert/jars/fluentlenium-festassert-0.9.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.fluentlenium/fluentlenium-core/jars/fluentlenium-core-0.9.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-java/jars/selenium-java-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-android-driver/jars/selenium-android-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-remote-driver/jars/selenium-remote-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/cglib/cglib-nodep/jars/cglib-nodep-2.1_3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.json/json/jars/json-20080701.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-api/jars/selenium-api-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.3.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.apache.commons/commons-exec/jars/commons-exec-1.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.java.dev.jna/jna/jars/jna-3.4.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.java.dev.jna/platform/jars/platform-3.4.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-chrome-driver/jars/selenium-chrome-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-htmlunit-driver/jars/selenium-htmlunit-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.sourceforge.htmlunit/htmlunit/jars/htmlunit-2.13.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/xalan/xalan/jars/xalan-2.7.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/xalan/serializer/jars/serializer-2.7.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/commons-collections/commons-collections/jars/commons-collections-3.2.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.apache.httpcomponents/httpmime/jars/httpmime-4.3.1.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.sourceforge.htmlunit/htmlunit-core-js/jars/htmlunit-core-js-2.13.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.sourceforge.nekohtml/nekohtml/jars/nekohtml-1.9.19.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/net.sourceforge.cssparser/cssparser/jars/cssparser-0.9.11.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.w3c.css/sac/jars/sac-1.3.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.2.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.eclipse.jetty/jetty-websocket/jars/jetty-websocket-8.1.12.v20130726.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.eclipse.jetty/jetty-util/jars/jetty-util-8.1.12.v20130726.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.eclipse.jetty/jetty-io/jars/jetty-io-8.1.12.v20130726.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.eclipse.jetty/jetty-http/jars/jetty-http-8.1.12.v20130726.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-firefox-driver/jars/selenium-firefox-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-ie-driver/jars/selenium-ie-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-iphone-driver/jars/selenium-iphone-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-safari-driver/jars/selenium-safari-driver-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.webbitserver/webbit/jars/webbit-0.4.14.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.seleniumhq.selenium/selenium-support/jars/selenium-support-2.39.0.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.easytesting/fest-assert/jars/fest-assert-1.4.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.easytesting/fest-util/jars/fest-util-1.1.6.jar"/>
+  <classpathentry kind="lib" path="/Users/mingqi/.ivy2/cache/org.objenesis/objenesis/jars/objenesis-2.1.jar"/>
+  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+  <classpathentry kind="output" path="bin"/>
+  <classpathentry path="/Users/mingqi/git/ApacheCMDA-Backend/target/scala-2.11/classes_managed" kind="lib"></classpathentry>
+  <classpathentry path="/Users/mingqi/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.4.jar" kind="lib"></classpathentry>
+</classpath>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/ApacheCMDA-Backend/.project
----------------------------------------------------------------------
diff --git a/ApacheCMDA-Backend/.project b/ApacheCMDA-Backend/.project
new file mode 100644
index 0000000..3ca8eac
--- /dev/null
+++ b/ApacheCMDA-Backend/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ApacheCMDA_Backend</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/ApacheCMDA-Backend/.settings/org.eclipse.core.resources.prefs
----------------------------------------------------------------------
diff --git a/ApacheCMDA-Backend/.settings/org.eclipse.core.resources.prefs b/ApacheCMDA-Backend/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..896a9a5
--- /dev/null
+++ b/ApacheCMDA-Backend/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cmda/blob/37774c92/ApacheCMDA-Backend/.settings/org.scala-ide.sdt.core.prefs
----------------------------------------------------------------------
diff --git a/ApacheCMDA-Backend/.settings/org.scala-ide.sdt.core.prefs b/ApacheCMDA-Backend/.settings/org.scala-ide.sdt.core.prefs
new file mode 100644
index 0000000..593a19e
--- /dev/null
+++ b/ApacheCMDA-Backend/.settings/org.scala-ide.sdt.core.prefs
@@ -0,0 +1,6 @@
+#Generated by sbteclipse
+#Wed Sep 02 14:54:53 PDT 2015
+scala.compiler.additionalParams=-encoding utf8
+deprecation=true
+unchecked=true
+scala.compiler.useProjectSettings=true