You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by tu...@apache.org on 2015/11/03 12:25:51 UTC
[29/79] [partial] incubator-geode git commit: GEODE-12: Imported
pulse from geode-1.0.0-SNAPSHOT-2.src.tar
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/resources/testQueryResultWithStructSmall.txt
----------------------------------------------------------------------
diff --git a/pulse/src/main/resources/testQueryResultWithStructSmall.txt b/pulse/src/main/resources/testQueryResultWithStructSmall.txt
new file mode 100644
index 0000000..c3dc38e
--- /dev/null
+++ b/pulse/src/main/resources/testQueryResultWithStructSmall.txt
@@ -0,0 +1,15 @@
+{
+ "result":[
+ {
+ "member":[["java.lang.String","pc68(19971)<v1>:19276"]],
+ "result":[
+ ["com.gemstone.gemfire.cache.query.types.StructType",{"r1":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type0"],"ID":["int",24],"active":["boolean",true],"pk":["java.lang.String","24"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"ORCL":["com.gemstone.gemfire.cache.query.data.Position",{"id
":["int",85],"secId":["java.lang.String","ORCL"],"mktValue":["double",86],"sharesOutstanding":["double",85000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"SAP":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",86],"secId":["java.lang.String","SAP"],"mktValue":["double",87],"sharesOutstanding":["double",86000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",84],"secId":["java.lang.String","APPL"],"mktValue":["double",85],"sharesOutstanding":["double",84000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}],"r2":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type0"],"ID":["int",24],"active":["boolean",true],"pk":["java.lang.String","24"],"collectionHolderMap"
:["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"ORCL":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",85],"secId":["java.lang.String","ORCL"],"mktValue":["double",86],"sharesOutstanding":["double",85000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"SAP":["com.gemstone.gemfire.cache.query.data.Position",{"id":["
int",86],"secId":["java.lang.String","SAP"],"mktValue":["double",87],"sharesOutstanding":["double",86000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",84],"secId":["java.lang.String","APPL"],"mktValue":["double",85],"sharesOutstanding":["double",84000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}]}],
+ ["com.gemstone.gemfire.cache.query.types.StructType",{"r1":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type0"],"ID":["int",15],"active":["boolean",false],"pk":["java.lang.String","15"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"YHOO":["com.gemstone.gemfire.cache.query.data.Position",{"i
d":["int",54],"secId":["java.lang.String","YHOO"],"mktValue":["double",55],"sharesOutstanding":["double",54000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"GOOG":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",55],"secId":["java.lang.String","GOOG"],"mktValue":["double",56],"sharesOutstanding":["double",55000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",52],"secId":["java.lang.String","SUN"],"mktValue":["double",53],"sharesOutstanding":["double",52000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",53],"secId":["java.lang.String","IBM"],"mktValue":["double",54],"sharesOutstanding":["double",53000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinVal
ue":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}],"r2":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type0"],"ID":["int",15],"active":["boolean",false],"pk":["java.lang.String","15"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"YHOO":["com.gemstone.gemfire.cache.query.data.Position",{"id":[
"int",54],"secId":["java.lang.String","YHOO"],"mktValue":["double",55],"sharesOutstanding":["double",54000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"GOOG":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",55],"secId":["java.lang.String","GOOG"],"mktValue":["double",56],"sharesOutstanding":["double",55000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",52],"secId":["java.lang.String","SUN"],"mktValue":["double",53],"sharesOutstanding":["double",52000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",53],"secId":["java.lang.String","IBM"],"mktValue":["double",54],"sharesOutstanding":["double",53000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":
["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}]}],
+ ["com.gemstone.gemfire.cache.query.types.StructType",{"r1":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type1"],"ID":["int",7],"active":["boolean",false],"pk":["java.lang.String","7"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"IBM":["com.gemstone.gemfire.cache.query.data.Position",{"id":
["int",27],"secId":["java.lang.String","IBM"],"mktValue":["double",28],"sharesOutstanding":["double",27000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"SUN":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",26],"secId":["java.lang.String","SUN"],"mktValue":["double",27],"sharesOutstanding":["double",26000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",24],"secId":["java.lang.String","NOVL"],"mktValue":["double",25],"sharesOutstanding":["double",24000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",25],"secId":["java.lang.String","HP"],"mktValue":["double",26],"sharesOutstanding":["double",25000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["
float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}],"r2":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type1"],"ID":["int",7],"active":["boolean",false],"pk":["java.lang.String","7"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"IBM":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",27]
,"secId":["java.lang.String","IBM"],"mktValue":["double",28],"sharesOutstanding":["double",27000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"SUN":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",26],"secId":["java.lang.String","SUN"],"mktValue":["double",27],"sharesOutstanding":["double",26000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",24],"secId":["java.lang.String","NOVL"],"mktValue":["double",25],"sharesOutstanding":["double",24000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",25],"secId":["java.lang.String","HP"],"mktValue":["double",26],"sharesOutstanding":["double",25000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-9.
223372E18],"doubleMinValue":["double",4.9E-324]}]}],
+ ["com.gemstone.gemfire.cache.query.types.StructType",{"r1":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type2"],"ID":["int",14],"active":["boolean",true],"pk":["java.lang.String","14"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"NOVL":["com.gemstone.gemfire.cache.query.data.Position",{"id
":["int",50],"secId":["java.lang.String","NOVL"],"mktValue":["double",51],"sharesOutstanding":["double",50000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"HP":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",51],"secId":["java.lang.String","HP"],"mktValue":["double",52],"sharesOutstanding":["double",51000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",49],"secId":["java.lang.String","RHAT"],"mktValue":["double",50],"sharesOutstanding":["double",49000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}],"r2":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type2"],"ID":["int",14],"active":["boolean",true],"pk":["java.lang.String","14"],"collectionHolderMap":[
"java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"NOVL":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",50],"secId":["java.lang.String","NOVL"],"mktValue":["double",51],"sharesOutstanding":["double",50000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"HP":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int
",51],"secId":["java.lang.String","HP"],"mktValue":["double",52],"sharesOutstanding":["double",51000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",49],"secId":["java.lang.String","RHAT"],"mktValue":["double",50],"sharesOutstanding":["double",49000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}]}],
+ ["com.gemstone.gemfire.cache.query.types.StructType",{"r1":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type1"],"ID":["int",1],"active":["boolean",false],"pk":["java.lang.String","1"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"APPL":["com.gemstone.gemfire.cache.query.data.Position",{"id"
:["int",6],"secId":["java.lang.String","APPL"],"mktValue":["double",7],"sharesOutstanding":["double",6000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"AOL":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",5],"secId":["java.lang.String","AOL"],"mktValue":["double",6],"sharesOutstanding":["double",5000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",3],"secId":["java.lang.String","GOOG"],"mktValue":["double",4],"sharesOutstanding":["double",3000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",4],"secId":["java.lang.String","MSFT"],"mktValue":["double",5],"sharesOutstanding":["double",4000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-
9.223372E18],"doubleMinValue":["double",4.9E-324]}],"r2":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type1"],"ID":["int",1],"active":["boolean",false],"pk":["java.lang.String","1"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"APPL":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",6],"secId"
:["java.lang.String","APPL"],"mktValue":["double",7],"sharesOutstanding":["double",6000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"AOL":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",5],"secId":["java.lang.String","AOL"],"mktValue":["double",6],"sharesOutstanding":["double",5000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",3],"secId":["java.lang.String","GOOG"],"mktValue":["double",4],"sharesOutstanding":["double",3000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",4],"secId":["java.lang.String","MSFT"],"mktValue":["double",5],"sharesOutstanding":["double",4000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue":["float",-9.223372E18],"doub
leMinValue":["double",4.9E-324]}]}],
+ ["com.gemstone.gemfire.cache.query.types.StructType",{"r1":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type0"],"ID":["int",21],"active":["boolean",false],"pk":["java.lang.String","21"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"NOVL":["com.gemstone.gemfire.cache.query.data.Position",{"i
d":["int",76],"secId":["java.lang.String","NOVL"],"mktValue":["double",77],"sharesOutstanding":["double",76000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"RHAT":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",75],"secId":["java.lang.String","RHAT"],"mktValue":["double",76],"sharesOutstanding":["double",75000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",73],"secId":["java.lang.String","SAP"],"mktValue":["double",74],"sharesOutstanding":["double",73000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",74],"secId":["java.lang.String","DELL"],"mktValue":["double",75],"sharesOutstanding":["double",74000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinVa
lue":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}],"r2":["com.gemstone.gemfire.cache.query.data.Portfolio",{"type":["java.lang.String","type0"],"ID":["int",21],"active":["boolean",false],"pk":["java.lang.String","21"],"collectionHolderMap":["java.util.HashMap",{"3":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"2":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"1":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}],"0":["com.gemstone.gemfire.cache.query.data.CollectionHolder",{"arr":["java.lang.String[]",["0","1","2","3","4","SUN","IBM","YHOO","GOOG","MSFT"]]}]}],"createTime":["long",0],"positions":["java.util.HashMap",{"NOVL":["com.gemstone.gemfire.cache.query.data.Position",{"id":
["int",76],"secId":["java.lang.String","NOVL"],"mktValue":["double",77],"sharesOutstanding":["double",76000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"RHAT":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",75],"secId":["java.lang.String","RHAT"],"mktValue":["double",76],"sharesOutstanding":["double",75000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}]}],"p1":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",73],"secId":["java.lang.String","SAP"],"mktValue":["double",74],"sharesOutstanding":["double",73000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"p2":["com.gemstone.gemfire.cache.query.data.Position",{"id":["int",74],"secId":["java.lang.String","DELL"],"mktValue":["double",75],"sharesOutstanding":["double",74000],"col":["java.util.HashSet",[["java.lang.String","1"],["java.lang.String","0"]]]}],"floatMinValue":["float",1.4E-45],"longMinValue
":["float",-9.223372E18],"doubleMinValue":["double",4.9E-324]}]}]
+ ]
+ }
+ ]
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/resources/test_pp.txt
----------------------------------------------------------------------
diff --git a/pulse/src/main/resources/test_pp.txt b/pulse/src/main/resources/test_pp.txt
new file mode 100644
index 0000000..1325484
--- /dev/null
+++ b/pulse/src/main/resources/test_pp.txt
@@ -0,0 +1,7 @@
+{"result":[
+ ["boolean[]",[true,true,true]],
+ ["boolean[]",[false,false,false]],
+ ["boolean[]",[false,false,false]],
+ ["boolean[]",[true,true,true]],
+ ["boolean[]",[false,false,false]]
+]}
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/webapp/DataBrowser.html
----------------------------------------------------------------------
diff --git a/pulse/src/main/webapp/DataBrowser.html b/pulse/src/main/webapp/DataBrowser.html
new file mode 100644
index 0000000..6a68077
--- /dev/null
+++ b/pulse/src/main/webapp/DataBrowser.html
@@ -0,0 +1,350 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta http-equiv="CACHE-CONTROL" content="NO-CACHE,NO-STORE" />
+<meta http-equiv="PRAGMA" content="NO-CACHE" />
+<meta http-equiv="EXPIRES" content="-1">
+<title>Pulse</title>
+<link href="css/common.css" rel="stylesheet" type="text/css" />
+<link href="css/style.css" rel="stylesheet" type="text/css" />
+
+<!-- fix IE Ui issues-->
+<!--[if IE 7]>
+ <link href="css/ie/ie7.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 8]>
+ <link href="css/ie/ie8.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 9]>
+ <link href="css/ie/ie9.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!-- IE Fix for HTML5 Tags -->
+<!--[if lt IE 9]>
+ <script src='scripts/lib/html5.js'></script>
+ <script type="text/javascript" src="scripts/lib/excanvas.js"></script>
+ <script type="text/javascript"> if (!window.console) console = {log: function() {}}; </script>
+ <![endif]-->
+
+<script type="text/javascript" src='scripts/lib/jquery-1.7.2.js'></script>
+<script type="text/javascript" src='scripts/lib/common.js'></script>
+
+<!--Splitter-->
+<script src="scripts/lib/jquery.splitter-0.5.js"></script>
+<link href="css/jquery.splitter.css" rel="stylesheet" />
+
+<!--Custom Scroll Bar-->
+<!-- styles needed by jScrollPane - include in your own sites -->
+<link type="text/css" href="css/jquery.jscrollpane.css" rel="stylesheet"
+ media="all" />
+<!-- the mousewheel plugin -->
+<script type="text/javascript" src="scripts/lib/jquery.mousewheel.js"></script>
+<!-- the jScrollPane script -->
+<script type="text/javascript" src="scripts/lib/jquery.jscrollpane.js"></script>
+<!--Place Holder tag-->
+<script type="text/javascript" src="scripts/lib/jquery.placeholder.js"></script>
+
+<!-- Grid view CSS and js-->
+<link rel="stylesheet" type="text/css" media="screen" href="css/grid/ui.jqgrid.css" />
+<script src="scripts/lib/grid.locale-en.js" type="text/javascript"></script>
+<script src="scripts/lib/jquery.jqGrid.src.js" type="text/javascript"></script>
+<script src="scripts/lib/jquery.tablednd.js" type="text/javascript"></script>
+<!-- -->
+<!--Tree View-->
+<link type="text/css" href="css/treeView/Treemap.css" rel="stylesheet" />
+<script type="text/javascript" src="scripts/lib/jit.js"></script>
+
+<!-- popups-->
+<link href="css/popup.css" rel="stylesheet" type="text/css" />
+<!-- Customize checkbox & radiobutton -->
+<script type="text/javascript" src="scripts/lib/checkBox-RadioButton.js"></script>
+<!-- Treeview JSON -->
+<script type="text/javascript" src="scripts/lib/jquery.ztree.core-3.5.js"></script>
+<script type="text/javascript" src="scripts/lib/jquery.ztree.excheck-3.5.js"></script>
+<link rel="stylesheet" href="css/jquery.ztreestyle.css" type="text/css">
+
+<!-- jQuery plugin to support automatically updating fuzzy timestamps
+(e.g. "4 minutes ago" or "about 1 day ago") -->
+<script type="text/javascript" src="scripts/lib/jquery.timeago.js"></script>
+
+<!-- start:Data Browser widget based js files -->
+<script type="text/javascript" src="scripts/pulsescript/PulseCallbacks.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/PulseFunctions.js"></script>
+<script type="text/javascript" src='scripts/pulsescript/common.js'></script>
+<!-- end:Data Browser widget based js files -->
+
+<!-- end:Data Browser Page JS files -->
+
+<script type="text/javascript" src="scripts/pulsescript/pages/DataBrowser.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/pages/DataBrowserQuery.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/pages/DataBrowserQueryHistory.js"></script>
+
+<!-- Jquery based plugin for exporting data to a file -->
+<script type="text/javascript" src="scripts/lib/jquery.generateFile.js"></script>
+
+</head>
+
+<body>
+ <!-- Connection lost-->
+ <div class="connectionLostMasterBlock hide" id="connectionStatusDiv">
+ <div class="connectionLostInnerBlock">
+ <label class="left">Connecting ...</label>
+ <div class="clear"></div>
+ <div id="connectionErrorMsgDiv" class="right"></div>
+ </div>
+ </div>
+
+ <div id="canvasWidth">
+ <!--Top Links-->
+ <div class="headerTopLinksMaster">
+ <div class="right">
+ <div class="left position-relative"><a href="#." class="left headerTopLinks aboutClicked-Off">About</a>
+ <!-- About Dropdown-->
+ <div id="detailsAbout" class="aboutBlock display-none">
+ <div class="aboutDetailsBlock">
+ <div class="left widthfull-100per marginBottom30">
+ <div class="left"><img src="images/about.png">
+ <div>
+ <div class="aboutVersionBlock left" id="pulseVersion"></div>
+ <div class="left termsBlock"> <a id="pulseVersionDetailsLink" href="#dialog1" class="display-none" >Version Details</a></div>
+ </div>
+ </div>
+ <div class="right aboutText">The Pulse tool monitors Pivotal™ GemFire© system in real time. It provides health information, detailed operational and configuration data, system alerts, throughput performance and statistics for system members and connected clients.</div>
+ </div>
+ <div class="left widthfull-100per">
+ <div class="left copyright">
+ Copyright © 2012-2014 Pivotal Software, Inc. All Rights Reserved.
+ This product is protected by U.S. and international copyright
+ and intellectual property laws. Pivotal products are covered by
+ one or more patents listed at <a href="http://www.pivotal.io/patents"
+ target="_blank" class="termsBlockLink text-center">http://www.pivotal.io/patents</a>.
+ </div>
+
+ <div class="left copyright">Pivotal is a registered
+ trademark or trademark of Pivotal Software, Inc. in the United States and
+ other jurisdictions. All other marks and names mentioned herein
+ may be trademarks of their respective companies.</div>
+
+ <div class="left termsBlock">
+ <a href="oslicenses.txt" target="_blank">Open Source
+ Licenses</a>
+ </div>
+ <!-- <div class="right termsBlock">
+ Pulse <a href="#.">Terms of Service</a>
+ </div>-->
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left"><a target="_blank" href="http://gemfire.docs.pivotal.io/latest/userguide/index.html#tools_modules/pulse/chapter_overview.html" class="left headerTopLinks">Help</a></div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left headerTopLinks welcomeLabelPRZero">Welcome</div>
+ <div class="left headerTopLinks textbold font-size12" id="userName"></div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left"><a href="pulse/clusterLogout" class="left headerTopLinks">Sign Out</a></div>
+ </div>
+ </div>
+ <!-- Header block-->
+ <header>
+ <div class="left">
+ <a id="clusterNameLink" href="#." class="left textbold HeaderLink HeaderLinkActive" onclick="openClusterDetail();">Cluster View</a>
+ </div>
+ <div class="textbold right logoBlock">
+ <a href="#.">[LOGO]</a>
+ </div>
+ </header>
+ <div class="clear"></div>
+ <div class="subHeader">
+ <ul>
+ <li><a href="#." onclick="openClusterDetail();">Cluster View</a></li>
+ <li><a href="#." class="active" onclick="openDataBrowser();">Data Browser</a></li>
+ <!-- Hide Query Statistics tab for gemfire -->
+ <li id="subTabQueryStatistics"><a href="#." onclick="openQueryStatistics();">Query Statistics</a></li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ <!-- Middle block-->
+ <div class="left widthfull-100per">
+ <!--Top Right Block 1-->
+ <div class="right widthfull-100per marginTB10">
+
+ <!-- Tab-->
+ <div id="notificationsPanel" class="right marginL10 TabTopPanel position-relative"
+ data-role="widget" data-widgetid="CluserAlertNotification" data-active ="yes" data-timeline="5000">
+ </div>
+ <!-- <div class="right marginL10"><a href="dataView.html" class="left linkButton">Cluster View</a></div>-->
+ <div class="left position-relative breadCrumbs">
+ <label class="font-size20">Data Browser</label>
+ </div>
+ </div>
+ <!--Middle Block 1-->
+ <div class="left leftBlockCanvas">
+ <!-- Splitter Master-->
+ <div class="splitterMaster">
+ <div class="splitterInnerBlock">
+ <div id="widget">
+ <!-- Left splitter-->
+ <div id="leftBlock">
+ <div class="leftTopSplitterSpacing">
+ <div class="rightInnerBlocks">
+ <a class="active" href="#.">Data Regions</a>
+ </div>
+ <!-- Search Block 1-->
+ <div class="left widthfull-100per canvasBlockInnerBlock">
+ <!-- Search-->
+ <div class="regionNameSearch position-relative">
+ <div class="searchBlockRegion">
+ <input type="button" class="searchButtonRegion"> <input
+ type="text" id="filterTextRegion" placeholder="Type a Name"
+ class="searchBoxRegion" onKeyUp="applyFilterOnRegions();">
+ </div>
+ </div>
+ </div>
+ <!-- Block 2-->
+ <div class="pointGridHeading">
+ <a id="linkColocatedRegions" href="#."
+ class="colocatedRegionsLink disabledLink"
+ onclick="showColocatedRegions();">Colocated Regions</a>
+ <a id="linkAllRegions" href="#."
+ class="colocatedRegionsLink disabledLink"
+ onclick="showAllRegions();">All Regions</a>
+ <input type="hidden" id="selectedRegion" value=""/>
+ </div>
+ <!-- Block 3 with scroll-->
+ <div class="ScrollPaneBlock leftSliderScrollRegion">
+ <div class="splitterScrollRegionInnerBlock">
+ <!-- Tree View-->
+ <ul id="treeDemo" class="ztree">
+ </ul>
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ </div>
+ <!-- Members List Block-->
+ <div class="">
+ <div class="rightInnerBlocks btm_pnl">
+ <a href="#." class="active">Region Members</a>
+ </div>
+ <div class="ScrollPaneBlock leftSliderScrollMembers" style="background:#132634;">
+ <div class="splitterScrollMembersInnerBlock">
+ <ul id="membersList">
+ </ul>
+ </div>
+ <div style="clear:both"></div>
+ </div>
+ </div>
+ </div>
+ <!--Right splitter -->
+ <div id="rightBlock">
+ <!-- Tab links-->
+ <div class="rightInnerBlocks ">
+ <a href="#." class="active">Queries</a>
+ </div>
+ <!-- Query Block-->
+ <div class="queryMasterBlock">
+ <a href="#." class="historyClicked-Off" id="historyIcon">History</a>
+ <!-- Query Block-->
+ <div class="queryHistoryScroll-pane" id="detailsHistory">
+ <div id="detailsHistoryList"></div>
+ </div>
+ <div class="queryInnerBlock queriesblock marginTB15-10">
+ <div class="queryHistoryBlock">
+ <label class="queryBlocklabel">Query Editor</label>
+ </div>
+ <div class="quertTextaremargin textareadiv">
+ <!-- Textarea-->
+ <textarea class="queryTextarea" id="dataBrowserQueryText" onkeyup="onQueryTextChange();"
+ placeholder="Write query here"></textarea>
+ <!-- Buttons-->
+
+ </div>
+ <input type="reset" value="Clear" class="right buttonCss blue" onclick="clearDBQuery()">
+ <input type="button" id="btnExecuteQuery" disabled="disabled" value="Execute" class="right buttonCss grey" onclick="executeDBQuery()">
+ </div>
+ </div>
+ <div class="queryInnerBlock marginBottomResult">
+ <label class="queryBlocklabel marginResult left">Result</label>
+ <div id="loaderSymbolWrapper" class="loaderParent">
+ <div id="loadingSymbol" class="loader"></div>
+ </div>
+ </div>
+ <div class="ScrollPaneBlock" style="height: 460px;">
+ <div class="expCollMaster">
+ <!-- Accordion-->
+ <div class="accordion" id="memberAccordion">
+ </div>
+ <div style="clear: both"></div>
+ </div>
+ </div>
+ <div class="quertTextaremargin">
+ <!-- Buttons-->
+ <input type="button" value="Export Result"
+ class="right buttonCss blue" onclick="exportResult();">
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--Popups Block-->
+ <div id="boxes">
+ <!-- Version Details popup-->
+ <div id="dialog1" class="window width345">
+ <div class="popup_heading">
+ <span>Version Details</span><a href="#" class="closePopup"> </a>
+ </div>
+ <div class="popup_contentBlock">
+ <div class="popup-innerblock">
+ <ul class="widthfull-100per left">
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Pulse Version:</label> <label
+ class="width-58 display-inline-block" id="pulseVer"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Build Id:</label> <label
+ class="width-58 display-inline-block" id="buildId"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Build Date:</label> <label
+ class="width-58 display-inline-block" id="buildDate"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Source Date:</label> <label
+ class="width-58 display-inline-block" id="sourceDate"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Source Revision:</label> <label
+ class="width-58 display-inline-block" id="sourceRevision"></label>
+ </li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Source Repository:</label>
+ <label class="width-58 display-inline-block"
+ id="sourceRepository"></label></li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ <!-- Grid Details popup-->
+ <div id="gridPopup" class="window width700" >
+ <div class="popup_heading"><span>Object Explorer</span><a href="#" class="closePopup"> </a></div>
+ <div class="popup_contentBlock">
+ <div class="popup-innerblock">
+ <table id="treegrid"><tr><td/></tr></table>
+ </div>
+ <div class="popup-innerblock">
+ <table id="popUpExplorer"><tr><td/></tr></table>
+ </div>
+ </div>
+ </div>
+ <!-- Mask to cover the whole screen -->
+ <div id="mask"></div>
+ </div>
+ <div id="tooltip" class="tooltip"></div>
+ <!-- Placeholder-->
+ <script>
+$('input[placeholder], textarea[placeholder]').placeholder();
+</script>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/webapp/Login.html
----------------------------------------------------------------------
diff --git a/pulse/src/main/webapp/Login.html b/pulse/src/main/webapp/Login.html
new file mode 100644
index 0000000..da68a87
--- /dev/null
+++ b/pulse/src/main/webapp/Login.html
@@ -0,0 +1,125 @@
+<!doctype html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta http-equiv="CACHE-CONTROL" content="NO-CACHE,NO-STORE" />
+<meta http-equiv="PRAGMA" content="NO-CACHE" />
+<meta http-equiv="EXPIRES" content="-1">
+<title>Pulse</title>
+
+<!-- CSS Files -->
+<link href="css/common.css" rel="stylesheet" type="text/css" />
+<link href="css/style.css" rel="stylesheet" type="text/css" />
+<!-- fix IE Ui issues-->
+<!--[if IE]>
+ <link href="css/ie/ie.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 7]>
+ <link href="css/ie/ie7.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 8]>
+ <link href="css/ie/ie8.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 9]>
+ <link href="css/ie/ie9.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!-- END CSS FILES -->
+
+<!-- JS FILES -->
+<!-- IE Fix for HTML5 Tags -->
+<!--[if lt IE 9]>
+<script src='js/html5.js'></script>
+ <![endif]-->
+<script type="text/javascript" src="scripts/lib/jquery-1.7.2.js"></script>
+<script type="text/javascript" src="scripts/lib/jquery.i18n.properties.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/PulseCallbacks.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/PulseFunctions.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/common.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/pages/Login.js"></script>
+
+<!--Place Holder tag-->
+<script type="text/javascript" src="scripts/lib/jquery.placeholder.js"></script>
+<!-- END JS FILES -->
+
+<script type="text/javascript">
+$(function(){
+ $("#loginForm").submit(function(){
+ if(!validate())
+ return false;
+ });
+});
+</script>
+</head>
+
+<body onload="pageOnLoad();" class="bodyLoginBg">
+<div id="loginWidth">
+ <!-- Header block-->
+ <header>
+ <div class="textbold right logoBlock"><a href="#.">[LOGO]</a></div>
+ </header>
+ <div class="clear"></div>
+ <!-- Middle block-->
+ <div class="loginMasterBlock">
+ <div class="pulseBottomSpace"><img data-prod-custom="pulse-monitoring-custom" src="images/pulse-monitoring.png">
+ <div class="text-center" id="pulseVersion"></div>
+ </div>
+ <!-- error Block-->
+ <div id="errorMasterBlock" class="errorMasterBlock" style="display:none;">
+ <div id="errorText" class="errorInnerIcon"> </div>
+ </div>
+ <div class="loginInnerBlock">
+ <form method="POST" action="j_spring_security_check" name="loginForm" id="loginForm" autocomplete="off">
+ <input class="inputUserName" type="text" name="j_username" id="user_name" placeholder="Username" autofocus="autofocus" autocomplete="off">
+ <input style="display:none;" type="password" id="fool_password" autocomplete="off">
+ <input class="inputPassword" type="password" name="j_password" id="user_password" placeholder="Password" autocomplete="off">
+ <!-- Locator host and port are removed for a time -->
+ <!-- <input class="inputUserName" type="text" name="locator_host" id="locator_host" placeholder="Host">
+ <input class="inputUserName" type="text" name="locator_port" id="locator_port" placeholder="Port">-->
+ <input type="submit" value="Sign In" class="signInButton">
+ </form>
+ </div>
+ <br>
+ <div class="text-center copyright">Copyright © 2012-2014 Piovtal Software, Inc. All rights reserved.</div>
+ </div>
+</div>
+<!-- Placeholder-->
+<script>
+$('input[placeholder], textarea[placeholder]').placeholder();
+</script>
+
+ <!-- <div style="width:100%; padding-top: 20%; padding-bottom: 20%;">
+ <div style="margin-left: 30%;">
+ <div style="float:left; border-right: medium solid #CCCCCC;">
+ <form method="POST" action="ClusterLogin" name="loginForm" id="loginForm">
+ <div style="width: 300px; padding-top: 10px;">
+ <span style="width:50px;">User Name:</span>
+ <input type="text" name="user_name" id="user_name" style="float: right; margin-right: 10px;" />
+ </div>
+ <div style="width: 300px; padding-top: 10px;">
+ <span style="width:50px;">Password:</span>
+ <input type="password" name="user_password" id="user_password" style="float: right; margin-right: 10px;" />
+ </div>
+ <div id="locatorHostDiv" style="width: 300px; padding-top: 10px;">
+ <span style="width:50px;">Locator Host:</span>
+ <input type="text" name="locator_host" id="locator_host" style="float: right; margin-right: 10px;" />
+ </div>
+ <div id="locatorPortDiv" style="width: 300px; padding-top: 10px;">
+ <span style="width:50px;">Locator Port:</span>
+ <input type="text" name="locator_port" id="locator_port" style="float: right; margin-right: 10px;" />
+ </div>
+ <div style="width: 300px; padding-top: 10px;">
+ <input type="reset" value="Cancel" style="float: right; margin-right: 10px;" />
+ <input type="submit" value="Submit" style="float: right; margin-right: 10px;" />
+ </div>
+ </form>
+ <label id="errorText" style="color: #FF0000;"></label>
+ </div>
+ <div style="float:left; margin: 40px; ">
+ <div style="font-size: xx-large; text-align: center;"><label>Pulse</label></div>
+ <div><label>GemFire Monitoring</label></div>
+ </div>
+ </div>
+ </div> -->
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/webapp/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/pulse/src/main/webapp/META-INF/MANIFEST.MF b/pulse/src/main/webapp/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5e94951
--- /dev/null
+++ b/pulse/src/main/webapp/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/webapp/MemberDetails.html
----------------------------------------------------------------------
diff --git a/pulse/src/main/webapp/MemberDetails.html b/pulse/src/main/webapp/MemberDetails.html
new file mode 100644
index 0000000..e0d8cc0
--- /dev/null
+++ b/pulse/src/main/webapp/MemberDetails.html
@@ -0,0 +1,601 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta http-equiv="CACHE-CONTROL" content="NO-CACHE,NO-STORE" />
+<meta http-equiv="PRAGMA" content="NO-CACHE" />
+<meta http-equiv="EXPIRES" content="-1">
+<title>Pulse</title>
+<link href="css/common.css" rel="stylesheet" type="text/css" />
+<link href="css/style.css" rel="stylesheet" type="text/css" />
+
+<!-- fix IE Ui issues-->
+
+<!--[if IE 7]>
+ <link href="css/ie/ie7.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 8]>
+ <link href="css/ie/ie8.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 9]>
+ <link href="css/ie/ie9.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!-- IE Fix for HTML5 Tags -->
+<!--[if lt IE 9]>
+<script src='scripts/lib/html5.js'></script>
+ <script type="text/javascript" src="scripts/lib/excanvas.js"></script>
+ <script type="text/javascript"> if (!window.console) console = {log: function() {}}; </script>
+ <![endif]-->
+
+<!-- Rgraph and TreeMap-->
+<link type="text/css" href="css/base.css" rel="stylesheet" />
+<link type="text/css" href="css/Treemap.css" rel="stylesheet" />
+
+<!--Custom Scroll Bar-->
+<!-- styles needed by jScrollPane - include in your own sites -->
+<link type="text/css" href="css/jquery.jscrollpane.css" rel="stylesheet" media="all" />
+<!--Grid View-->
+<link rel="stylesheet" type="text/css" media="screen" href="css/grid/ui.jqgrid.css" />
+
+<!-- JavaScripts -->
+
+ <!-- Start: JQuery plugins JS -->
+ <script type="text/javascript" src='scripts/lib/jquery-1.7.2.js'></script>
+ <script type="text/javascript" src="scripts/lib/jit.js"></script>
+ <script type="text/javascript" src="scripts/lib/jquery.sparkline.js"></script>
+ <script type="text/javascript" src="scripts/lib/jquery.i18n.properties.js"></script>
+ <!-- End: JQuery plugins JS -->
+
+ <!-- Start: Common JS -->
+ <script type="text/javascript" src='scripts/lib/common.js'></script>
+ <!-- End: Common JS -->
+
+ <!-- the mousewheel plugin -->
+ <script type="text/javascript" src="scripts/lib/jquery.mousewheel.js"></script>
+ <!-- the jScrollPane script -->
+ <script type="text/javascript" src="scripts/lib/jquery.jscrollpane.js"></script>
+ <!--Place Holder tag-->
+ <script type="text/javascript" src="scripts/lib/jquery.placeholder.js"></script>
+ <!--Grid View-->
+ <script src="scripts/lib/grid.locale-en.js" type="text/javascript"></script>
+ <script src="scripts/lib/jquery.jqGrid.src.js" type="text/javascript"></script>
+ <script src="scripts/lib/jquery.tablednd.js" type="text/javascript"></script>
+
+ <!-- jQuery plugin to support automatically updating fuzzy timestamps
+ (e.g. "4 minutes ago" or "about 1 day ago") -->
+ <script type="text/javascript" src="scripts/lib/jquery.timeago.js"></script>
+
+ <!-- Start: Members Widgets JS -->
+ <script type="text/javascript" src="scripts/pulsescript/PulseCallbacks.js"></script>
+<script type="text/javascript" src="scripts/pulsescript/PulseFunctions.js"></script>
+<script type="text/javascript" src='scripts/pulsescript/common.js'></script>
+ <script type="text/javascript" src="scripts/pulsescript/MemberDetails.js"></script>
+</head>
+
+<body onload="return checkMedia();">
+<!-- Connection lost-->
+<div class="connectionLostMasterBlock hide" id="connectionStatusDiv" >
+<div class="connectionLostInnerBlock">
+ <label class="left">Connecting ...</label>
+ <div class="clear"></div>
+ <div id="connectionErrorMsgDiv"></div>
+</div>
+</div>
+ <div id="canvasWidth">
+ <!--Top Links-->
+ <div class="headerTopLinksMaster">
+ <div class="right">
+ <div class="left position-relative"><a href="#."class="left headerTopLinks aboutClicked-Off">About</a>
+ <!-- About Dropdown-->
+ <div id="detailsAbout" class="aboutBlock display-none">
+ <div class="aboutDetailsBlock">
+ <div class="left widthfull-100per marginBottom30">
+ <div class="left"><img data-prod-custom="pulse-aboutimg-custom" src="images/about.png">
+ <div>
+ <div class="aboutVersionBlock left" id="pulseVersion"></div>
+ <div class="left termsBlock"> <a id="pulseVersionDetailsLink" href="#dialog1" class="display-none" >Version Details</a></div>
+ </div>
+ </div>
+ <div data-prod-custom="pulse-about-custom" class="right aboutText">The Pulse tool monitors Pivotal™ GemFire© system in real time. It provides health information, detailed operational and configuration data, system alerts, throughput performance and statistics for system members and connected clients.</div>
+ </div>
+ <div class="left widthfull-100per">
+ <div class="left copyright">
+ Copyright © 2012-2014 Pivotal Software, Inc. All Rights Reserved.
+ This product is protected by U.S. and international copyright
+ and intellectual property laws. Pivotal products are covered by
+ one or more patents listed at <a href="http://www.pivotal.io/patents"
+ target="_blank" class="termsBlockLink text-center">http://www.pivotal.io/patents</a>.
+ </div>
+
+ <div class="left copyright">Pivotal is a registered
+ trademark or trademark of Pivotal Software, Inc. in the United States and
+ other jurisdictions. All other marks and names mentioned herein
+ may be trademarks of their respective companies.</div>
+
+ <div class="left termsBlock">
+ <a href="oslicenses.txt" target="_blank">Open Source
+ Licenses</a>
+ </div>
+ <!-- <div class="right termsBlock">
+ Pulse <a href="#.">Terms of Service</a>
+ </div>-->
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left"><a data-prod-custom="pulse-help-custom" target="_blank" href="http://gemfire.docs.pivotal.io/latest/userguide/index.html#tools_modules/pulse/chapter_overview.html" class="left headerTopLinks" class="left headerTopLinks">Help</a></div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left headerTopLinks welcomeLabelPRZero">Welcome</div>
+ <div class="left headerTopLinks textbold font-size12" id="userName"></div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left"><a href="pulse/clusterLogout" class="left headerTopLinks">Sign Out</a></div>
+ </div>
+ </div>
+ <!-- Header block-->
+ <header>
+ <div class="left">
+ <a id="clusterNameLink" href="#." class="left textbold HeaderLink HeaderLinkActive" onclick="openClusterDetail();"></a>
+ </div>
+ <div class="textbold right logoBlock">
+ <a href="#.">[LOGO]</a>
+ </div>
+ </header>
+ <div class="clear"></div>
+ <div class="subHeader">
+ <ul>
+ <li><a href="#." class="active" onclick="openClusterDetail();">Cluster View</a></li>
+ <!-- Hide Data Browser tab for gemfirexd (Pulse-Cheetah Release) -->
+ <li><a href="#." onclick="openDataBrowser();">Data Browser</a></li>
+ <!-- Hide Query Statistics tab for gemfire -->
+ <li id="subTabQueryStatistics"><a href="#." onclick="openQueryStatistics();">Query Statistics</a></li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ <!-- Middle block-->
+ <div class="left widthfull-100per">
+ <!--Top Right Block 1-->
+ <div class="right widthfull-100per marginTB10">
+ <!-- Tab-->
+ <div id="notificationsPanel" class="right marginL10 TabTopPanel position-relative"
+ data-role="widget" data-widgetid="CluserAlertNotification" data-active ="yes" data-timeline="5000">
+ </div>
+ <!-- <div class="right marginL10">
+ <a href="#." class="left linkButton" onclick="openDataView();">Data View</a>
+ </div> -->
+ <div class="left position-relative membersNameTopMargin" data-role="widget" data-widgetid="MembersList" data-active ="yes" data-timeline="5000">
+ <a href="#." class="memberClicked-Off" id="userLink">
+ <span id="memberName" class="member_txt">Member Name</span>
+ </a>
+ <!-- Setting Dropdown-->
+ <div id="setting" class="settingBlock" style="display: none">
+ <div class="memeberNameSearch position-relative">
+ <div class="searchBlockMaster">
+ <input type="button" class="searchButton">
+ <input type="text" class="searchBox" placeholder="Search"
+ id="filterMembersBox" >
+ </div>
+ </div>
+ <div id="clusterMembersList" class="jsonSuggestScrollFilter">
+ <div id="clusterMembersContainer"> </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--Middle Block 1-->
+ <div class="left leftBlockCanvas">
+ <!-- Status Block-->
+ <div class="statusmasterBlock left" data-role="widget" data-widgetid="MemberDetails" data-active ="yes" data-timeline="5000">
+ <!--Status Block Normal-->
+ <div class="statusFirstBlock left">
+ <div class="statusMasterBlock" id="memberStatusIcon">
+ <div id="memberStatus" class="textbold"> </div>
+ <div class="labeltext">Member Status</div>
+ </div>
+ </div>
+ <!-- Deails B1-->
+ <!-- <div class="borderRightDarkBlue detailsBlock">
+ <div id="memberDiskStorageUsed" class="color-d2d5d7 font-size23"> </div>
+ <span class="labeltext">Disk Storage Used</span>
+ </div> -->
+ <!-- Deails B2-->
+ <div class=" detailsBlock">
+ <div id="memberRegionsCount" class="color-d2d5d7 font-size23"> </div>
+ <span data-prod-custom="pulse-regionstableCaps-custom" class="labeltext">Regions</span>
+ </div>
+ <!-- Deails B3-->
+ <div class=" detailsBlock">
+ <div id="threads" class="color-d2d5d7 font-size23"></div>
+ <span class="labeltext">Threads</span>
+ </div>
+ <!-- Deails B4-->
+ <div class=" detailsBlock">
+ <div id="sockets" class="color-d2d5d7 font-size23"></div>
+ <span class="labeltext">Sockets</span>
+ </div>
+ <!-- Deails B5-->
+ <div class=" detailsBlock">
+ <div id="loadAverage" class="color-d2d5d7 font-size23"></div>
+ <span class="labeltext">Load Avg.</span>
+ </div>
+ <!-- Deails B6-->
+ <div class=" detailsBlock display-none">
+ <div id="offHeapFreeSize" class="color-d2d5d7 font-size23"></div>
+ <span class="labeltext">Off-Heap Free Size</span>
+ </div>
+ <!-- Deails B7-->
+ <div class=" detailsBlock display-none">
+ <div id="offHeapUsedSize" class="color-d2d5d7 font-size23"></div>
+ <span class="labeltext">Off-Heap Used Size</span>
+ </div>
+ <!-- Deails B8-->
+ <div class=" detailsBlock">
+ <div id="numClients" class="color-d2d5d7 font-size23"></div>
+ <span class="labeltext">Clients</span>
+ </div>
+ </div>
+ <div class="clear"></div>
+ <div>
+ <div class="middleTopologyBlock">
+ <!-- Large Block-->
+ <div class="canvasBlockLarge marginBR10-11 left">
+ <div class="left widthfull-100per canvasBlockInnerBlock">
+ <span data-prod-custom="pulse-memberRegionsTables-custom" class="left marginL10 canvasHeading">Member Regions</span>
+ <a id="btnLargeBlock_1" class="minusIcon borderLeftToggleBlock" onClick="toggleDiv('LargeBlock_1');"></a>
+ <a id="btngridIcon" class="gridIcon " onClick="tabGridNew('gview_memberRegionsList');"></a>
+ <a id="btnchartIcon" class="chartIconActive " onClick="tabChart();"></a>
+ </div>
+ <div class="left canvasInnerBlock" id="LargeBlock_1">
+ <div class="left widthfull-100per canvasBlockInnerBlock regionHeading">
+ <!-- Search-->
+ <div class="left marginBottom6 marginL10 marginTop6">
+ <div class="searchBlockMaster">
+ <input type="button" class="searchButton">
+ <input type="text" placeholder="Search"
+ onkeyup="applyFilterOnMemberRegions();" class="searchBox"
+ id="filterMemberRegionsBox">
+ </div>
+ </div>
+ </div>
+ <!--Grid Block-->
+ <div class="gridBlocksPanel left display-none canvasBlockLargeGridContent"
+ id="gridBlocks_Panel">
+ <div class="left widthfull-100per">
+ <table id="memberRegionsList">
+ </table>
+ </div>
+ </div>
+ <!--chart Block-->
+ <div class="chartBlocksPanel left canvasBlockLargeContent membersTreeViewHeight" id="chartBlocks_Panel">
+ <div class="left widthfull-100per" >
+ <div class="marginB11 left widthfull-100per" >
+ <!-- <div class="left marginL10">
+ <span class="left colorCodeBlock managerCode"></span><span
+ class="left marginL10">Managers</span>
+ </div>
+ <div class="left marginL10">
+ <span class="left colorCodeBlock colorCode-ffae00"></span><span
+ class="left marginL10">Locators</span>
+ </div> -->
+ <!-- <div class="searchBlockMaster">
+ <input type="button" class="searchButton"> <input
+ type="text" class="searchBox" id="searchRegionName"
+ placeholder="Search" onKeydown="Javascript: if (event.keyCode==13) searchName();">
+ </div>-->
+ </div>
+ <div class="treeViewGraph position-relative" data-role="widget" data-widgetid="MemberRegionSummary" data-active ="yes" data-timeline="5000">
+ <!-- tree view Control-->
+ <div id="center-containerTree">
+ <!-- <div id="TreeMap"></div> -->
+ <div id="memberRegionSummary" style="width:100%; height:410px; overflow:hidden;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- Member Clients -->
+ <div class="canvasBlockLarge marginBR10-11 left" id="memberClientsWidget" data-role="widget" data-widgetid="MemberClients" data-active ="yes" data-timeline="5000">
+ <div class="left widthfull-100per canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">Member Clients</span>
+ <a id="btnLargeBlock_2" class="minusIcon borderLeftToggleBlock" onClick="toggleDiv('LargeBlock_2');"></a>
+ </div>
+ <div
+ class="left canvasInnerBlock canvasBlockLargeGridContent"
+ id="LargeBlock_2" >
+ <!--Grid Block-->
+ <div class="gridBlocksPanel left"
+ id="gridBlocks_Panel" >
+ <div class="left widthfull-100per" >
+ <table id="memberClientsList">
+ </table>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- Block 4-->
+ <div class="canvasBlockKeyStats marginBR10-11 left" data-role="widget" data-widgetid="MemberKeyStatistics" data-active ="yes" data-timeline="5000">
+ <div class="left width495 canvasBlockInnerBlock" >
+ <span class="left marginL10 canvasHeading">Key Statistics</span><a
+ id="btnSmallBlock_4" class="minusIcon"
+ onClick="toggleDiv('SmallBlock_4');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlockKeyStats"
+ id="SmallBlock_4" >
+ <div class="graphBlocksContent left" >
+ <span class="marginB11 left widthfull-100per">Last 15
+ Minutes</span>
+ <!--Line 1-->
+ <div class="left widthfull-100per marginB10" >
+ <span id="memberCPUUsageSparkLine" class="left lineGraphKeyStats"> </span>
+ <span id="memberCPUUsageValue" class="color-d2d5d7 font-size23"> </span>
+ <span class="paddingL5">% CPU Usage</span>
+ </div>
+ <!--Line 2-->
+ <!-- <div class="left widthfull-100per ">
+ <span id="memberMemoryUsageSparkLine" class="left lineGraphKeyStats"> </span>
+ <span id="memberMemoryUsageValue" class="color-d2d5d7 font-size23"> </span>
+ <span class="paddingL5">MB</span>
+ </div> -->
+ <!--Line 3-->
+ <div class="left widthfull-100per marginB10" >
+ <span id="memberGetsPerSecSparkLine" class="left lineGraphKeyStats"> </span>
+ <span id="memberGetsPerSecValue" class="color-d2d5d7 font-size23">345.12</span>
+ <span data-prod-custom="pulse-readgetpersec-custom" class="paddingL5">Read/Sec</span>
+ </div>
+ <!--Line 4-->
+ <div class="left widthfull-100per marginB10" >
+ <span id="memberPutsPerSecSparkLineBar" class="left lineGraphKeyStats"> </span>
+ <span id="memberPutsPerSecValue" class="color-d2d5d7 font-size23">678.34</span>
+ <span data-prod-custom="pulse-writeputpersec-custom" class="paddingL5">Write/Sec</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- Block 5-->
+ <!-- <div class="canvasBlock marginBR10-11 left">
+ <div class="left width242 canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">Memory Usage</span><a
+ id="btnSmallBlock_5" class="minusIcon"
+ onClick="toggleDiv('SmallBlock_5');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlock"
+ id="SmallBlock_5">
+ <div class="graphBlocksContent">
+ <div id="memberHeapUsageAvg" class="color-d2d5d7 font-size40"> </div>
+ <span>Last 15 Minutes</span>
+ </div>
+ <div class="left graphChart">
+ <span class="left lineGraph" id="memberHeapUsage"></span>
+ </div>
+ </div>
+ </div>-->
+ <!-- Block 6-->
+ <div class="canvasBlock marginBR10-11 left" data-role="widget" data-widgetid="MemberGCPauses" data-active ="yes" data-timeline="5000">
+ <div class="left width242 canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">No. of JVM
+ pauses</span><a id="btnSmallBlock_6" class="minusIcon"
+ onClick="toggleDiv('SmallBlock_6');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlock"
+ id="SmallBlock_6">
+ <div class="graphBlocksContent">
+ <div id="memberGcPausesAvg" class="color-d2d5d7 font-size40"> </div>
+ <span>Last 15 Minutes</span>
+ </div>
+ <div class="left graphChart">
+ <span class="left lineGraph" id="memberGCPauses"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- Right Block-->
+ <div class="rightBlockCanvas">
+ <!-- Block 1-->
+ <div id="MemberGatewayHubWidget" class="canvasBlock marginB10 left "
+ data-role="widget" data-widgetid="MemberGatewayHub" data-active ="yes" data-timeline="5000">
+ <div class="left width242 canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">Gateway Receiver</span><a
+ id="btnSmallBlock_1" class="minusIcon"
+ onClick="toggleDiv('SmallBlock_1');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlock"
+ id="SmallBlock_1">
+ <div class="graphBlocksContent">
+ <div class="detailsBlock-member firstPaddingLeftZero">
+ <div id="receiverListeningPort" class="color-d2d5d7 font-size20"> </div>
+ <span class="labeltext">Listening Port</span>
+ </div>
+ <div class="detailsBlock-member">
+ <div id="receiverLinkThroughput" class="color-d2d5d7 font-size20"> </div>
+ <span class="labeltext">Link Throughput</span>
+ </div>
+ <div class="detailsBlock-member lastPaddingLeftZero">
+ <div id="receiverAvgBatchLatency" class="color-d2d5d7 font-size20"> </div>
+ <span class="labeltext">AVG Batch Latency</span>
+ </div>
+ </div>
+ <!-- End Point Master-->
+ <div class="left endPointMasterBlock">
+ <!--End point-->
+ <div class="pointHeading">
+ <label class="pointTextHeading">Gateway Senders</label>
+ </div>
+ <div class="pointGridHeading">
+ <span class="pointHeadingPadding pointC1">ID</span><span
+ class="pointHeadingPadding pointC2">Queue Size</span><span
+ class="pointHeadingPadding pointC3">Status</span>
+ </div>
+ <div class="pointGridData">
+ <div id="gatewaySendersList" > </div>
+ </div>
+ </div>
+ <div class="clearButton">
+ <a id="idGatewaySenderMoreDetailsLink" class="right linkButton" onclick="showGatewaySenderPopup(this)" href="#">More Details</a>
+ </div>
+ <!-- Regions Involved-->
+ <div class="left endPointMasterBlock">
+ <!--Regions Involved-->
+ <img src="images/spacer.png" height="1" border="0"
+ class="pointHeading">
+ <div class="pointGridHeading">
+ <span data-prod-custom="pulse-regionstableInvolved-custom" class="pointHeadingPadding textUpper">Regions
+ Involved</span>
+ </div>
+ <div class="pointGridData" >
+ <div id="regionInvolvedList"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ <!-- Block 2-->
+ <div id="MemberAsynchEventQueuesWidget" class="canvasBlock marginB10 left "
+ data-role="widget" data-widgetid="MemberAsynchEventQueues" data-active ="yes" data-timeline="5000">
+ <div class="left width242 canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">Asynch Event Queues</span>
+ <a id="btnSmallBlock_2" class="minusIcon" onClick="toggleDiv('SmallBlock_2');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlock" id="SmallBlock_2">
+ <div class="left endPointMasterBlock">
+ <!-- asynch event queue -->
+ <div class="pointGridHeading">
+ <span class="pointHeadingPadding pointC1">ID</span>
+ <span class="pointHeadingPadding pointC2">Queue Size</span>
+ <span class="pointHeadingPadding pointC3">Type</span>
+ </div>
+ <div class="pointGridData">
+ <div id="asynchList"> </div>
+ </div>
+ </div>
+ <div class="clearButton">
+ <a id="idAsynchMoreDetailsLink" class="right linkButton" onclick="showAsyncEventQueuePopup(this)" href="#">More Details</a>
+ </div>
+ </div>
+ </div>
+ <div class="clear"></div>
+ <!-- Block 5-->
+ <div class="canvasBlock marginBR10-11 left" data-role="widget" data-widgetid="MemberHeapUsage" data-active ="yes" data-timeline="5000">
+ <div class="left width242 canvasBlockInnerBlock" >
+ <span class="left marginL10 canvasHeading">Memory Usage</span><a
+ id="btnSmallBlock_5" class="minusIcon"
+ onClick="toggleDiv('SmallBlock_5');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlock"
+ id="SmallBlock_5" >
+ <div class="graphBlocksContent" >
+ <div id="memberHeapUsageAvg" class="color-d2d5d7 font-size40">
+ </div>
+ <span>Last 15 Minutes</span>
+ </div>
+ <div class="left graphChart" >
+ <span class="left lineGraph" id="memberHeapUsage"></span>
+ </div>
+ </div>
+ </div>
+ <!-- Block 3-->
+ <div class="canvasBlock marginB10 left" data-role="widget" data-widgetid="MemberDiskThroughput" data-active ="yes" data-timeline="5000">
+ <div class="left width242 canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">Disk Throughput</span>
+ <a id="btnSmallBlock_3" class="minusIcon"
+ onClick="toggleDiv('SmallBlock_3');"></a>
+ </div>
+ <div class="left canvasInnerBlock canvasContentBlock"
+ id="SmallBlock_3">
+ <div class="graphBlocksContent marginB11 left">
+ <div class="left">
+ <span class="left">Last 15 Minutes</span>
+ </div>
+ <div class="right marginL10">
+ <span data-prod-custom="pulse-reads-custom" class="left">Reads</span> <span
+ class="left marginL10 colorCodeBlock diskReadsCode"></span>
+ </div>
+ <div class="right marginL10">
+ <span data-prod-custom="pulse-writes-custom" class="left">Writes</span> <span
+ class="left marginL10 colorCodeBlock diskWritesCode"></span>
+ </div>
+ </div>
+ <div class="graphBlocksContent width91Per left">
+ <div class="color-d2d5d7 font-size20">
+ <span id="diskReadsThroughput"></span>
+ </div>
+ <div class="width100Per left">
+ <span class="left">Reads</span> <span class="right"
+ id="currentDiskReadsThroughput"></span>
+ </div>
+ </div>
+ <div class="left graphChart marginB11">
+ <span class="left lineGraph" id="diskReadsThroughputTrend"></span>
+ </div>
+ <div class="graphBlocksContent width91Per left">
+ <div class="color-d2d5d7 font-size20">
+ <span id="diskWritesThroughput"></span>
+ </div>
+ <div class="width100Per left">
+ <span class="left">Writes</span> <span class="right"
+ id="currentDiskWritesThroughput"></span>
+ </div>
+ </div>
+ <div class="left graphChart">
+ <span class="left lineGraph" id="diskWritesThroughputTrend"></span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- Placeholder-->
+ <script>
+ $('input[placeholder], textarea[placeholder]').placeholder();
+ </script>
+<!--Popups Block-->
+<div id="boxes">
+ <!-- Version Details popup-->
+ <div id="dialog1" class="window width345" data-role="widget" data-widgetid="PulseVersionDetails" data-active ="yes" data-timeline="5000">
+ <div class="popup_heading"><span>Version Details</span><a href="#" class="closePopup"> </a></div>
+ <div class="popup_contentBlock">
+ <div class="popup-innerblock">
+ <ul class="widthfull-100per left">
+ <li class="left widthfull-100per">
+ <label class="width-40 display-inline-block">Pulse Version:</label>
+ <label class="width-58 display-inline-block" id="pulseVer"></label>
+ </li>
+ <li class="left widthfull-100per">
+ <label class="width-40 display-inline-block">Build Id:</label>
+ <label class="width-58 display-inline-block" id="buildId"></label>
+ </li>
+ <li class="left widthfull-100per">
+ <label class="width-40 display-inline-block">Build Date:</label>
+ <label class="width-58 display-inline-block" id="buildDate"></label>
+ </li>
+ <li class="left widthfull-100per">
+ <label class="width-40 display-inline-block">Source Date:</label>
+ <label class="width-58 display-inline-block" id="sourceDate"></label>
+ </li>
+ <li class="left widthfull-100per">
+ <label class="width-40 display-inline-block">Source Revision:</label>
+ <label class="width-58 display-inline-block" id="sourceRevision"></label>
+ </li>
+ <li class="left widthfull-100per">
+ <label class="width-40 display-inline-block">Source Repository:</label>
+ <label class="width-58 display-inline-block" id="sourceRepository"></label>
+ </li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ <!-- Mask to cover the whole screen -->
+ <div id="mask"></div>
+</div>
+<div id="tooltip" class="tooltip"></div>
+<!-- Placeholder-->
+<script>
+$('input[placeholder], textarea[placeholder]').placeholder();
+</script>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/1922937f/pulse/src/main/webapp/QueryStatistics.html
----------------------------------------------------------------------
diff --git a/pulse/src/main/webapp/QueryStatistics.html b/pulse/src/main/webapp/QueryStatistics.html
new file mode 100644
index 0000000..8549577
--- /dev/null
+++ b/pulse/src/main/webapp/QueryStatistics.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta http-equiv="X-UA-Compatible" content="IE=edge" />
+<meta http-equiv="CACHE-CONTROL" content="NO-CACHE,NO-STORE" />
+<meta http-equiv="PRAGMA" content="NO-CACHE" />
+<meta http-equiv="EXPIRES" content="-1">
+<title>Pulse</title>
+<link href="css/common.css" rel="stylesheet" type="text/css" />
+<link href="css/style.css" rel="stylesheet" type="text/css" />
+
+<!-- fix IE Ui issues-->
+<!--[if IE 7]>
+ <link href="css/ie/ie7.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 8]>
+ <link href="css/ie/ie8.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!--[if IE 9]>
+ <link href="css/ie/ie9.css" type="text/css" rel="stylesheet"/>
+ <![endif]-->
+<!-- IE Fix for HTML5 Tags -->
+<!--[if lt IE 9]>
+ <script src='scripts/lib/html5.js'></script>
+ <script type="text/javascript" src="scripts/lib/excanvas.js"></script>
+ <script type="text/javascript"> if (!window.console) console = {log: function() {}}; </script>
+ <![endif]-->
+
+<script type="text/javascript" src='scripts/lib/jquery-1.7.2.js'></script>
+<script type="text/javascript" src='scripts/lib/common.js'></script>
+<script type="text/javascript"
+ src="scripts/lib/jquery.i18n.properties.js"></script>
+<!--Custom Scroll Bar-->
+<!-- styles needed by jScrollPane - include in your own sites -->
+<link type="text/css" href="css/jquery.jscrollpane.css" rel="stylesheet"
+ media="all" />
+<!-- the mousewheel plugin -->
+<script type="text/javascript" src="scripts/lib/jquery.mousewheel.js"></script>
+<!-- the jScrollPane script -->
+<script type="text/javascript" src="scripts/lib/jquery.jscrollpane.js"></script>
+<!--Place Holder tag-->
+ <script type="text/javascript" src="scripts/lib/jquery.placeholder.js"></script>
+<!-- Rgraph and TreeMap-->
+<link type="text/css" href="css/base.css" rel="stylesheet" />
+<link type="text/css" href="css/Treemap.css" rel="stylesheet" />
+<script type="text/javascript" src="scripts/lib/jit.js"></script>
+<script type="text/javascript" src="scripts/lib/jquery.sparkline.js"></script>
+
+<!-- Grid view CSS and js-->
+<link rel="stylesheet" type="text/css" media="screen"
+ href="css/grid/ui.jqgrid.css" />
+<script src="scripts/lib/grid.locale-en.js" type="text/javascript"></script>
+<script src="scripts/lib/jquery.jqGrid.src.js" type="text/javascript"></script>
+<script src="scripts/lib/jquery.tablednd.js" type="text/javascript"></script>
+<!-- -->
+<!-- jQuery plugin to support automatically updating fuzzy timestamps
+(e.g. "4 minutes ago" or "about 1 day ago") -->
+<script type="text/javascript" src="scripts/lib/jquery.timeago.js"></script>
+
+<!-- start:Cluster widget based js files -->
+<script type="text/javascript"
+ src="scripts/pulsescript/PulseCallbacks.js"></script>
+<script type="text/javascript"
+ src="scripts/pulsescript/PulseFunctions.js"></script>
+<script type="text/javascript" src='scripts/pulsescript/common.js'></script>
+<script type="text/javascript"
+ src='scripts/pulsescript/queryStatistics.js'></script>
+
+<!-- multiselect -->
+<link rel="stylesheet" type="text/css"
+ href="css/multiselect/jquery.multiselect.css" />
+<link rel="stylesheet" type="text/css" href="css/multiselect/style.css" />
+<link rel="stylesheet" type="text/css"
+ href="css/multiselect/prettify.css" />
+<script type="text/javascript"
+ src="scripts/multiselect/jquery-ui.js"></script>
+<script type="text/javascript"
+ src="scripts/multiselect/jquery.multiselect.js"></script>
+<script type="text/javascript" src="scripts/multiselect/prettify.js"></script>
+<script type="text/javascript" src="scripts/lib/checkBox-RadioButton.js"></script>
+<!-- multiselect -->
+</head>
+
+<body>
+ <!-- Connection lost-->
+ <div class="connectionLostMasterBlock hide" id="connectionStatusDiv">
+ <div class="connectionLostInnerBlock">
+ <label class="left">Connecting ...</label>
+ <div class="clear"></div>
+ <div id="connectionErrorMsgDiv" class="right"></div>
+ </div>
+ </div>
+
+ <div id="canvasWidth">
+ <!--Top Links-->
+ <div class="headerTopLinksMaster">
+ <div class="right">
+ <div class="left position-relative">
+ <a href="#." class="left headerTopLinks aboutClicked-Off">About</a>
+ <!-- About Dropdown-->
+ <div id="detailsAbout" class="aboutBlock display-none">
+ <div class="aboutDetailsBlock">
+ <div class="left widthfull-100per marginBottom30">
+ <div class="left">
+ <img data-prod-custom="pulse-aboutimg-custom"
+ src="images/about.png">
+ <div>
+ <div class="aboutVersionBlock left" id="pulseVersion"></div>
+ <div class="left termsBlock">
+ <a id="pulseVersionDetailsLink" href="#dialog1"
+ class="display-none">Version Details</a>
+ </div>
+ </div>
+ </div>
+ <div data-prod-custom="pulse-about-custom"
+ class="right aboutText">The Pulse tool monitors
+ Pivotal™ GemFire© system in real time. It provides
+ health information, detailed operational and configuration
+ data, system alerts, throughput performance and statistics for
+ system members and connected clients.</div>
+ </div>
+ <div class="left widthfull-100per">
+ <div class="left copyright">
+ Copyright © 2012-2014 Pivotal Software, Inc. All Rights Reserved.
+ This product is protected by U.S. and international copyright
+ and intellectual property laws. Pivotal products are covered by
+ one or more patents listed at <a href="http://www.pivotal.io/patents"
+ target="_blank" class="termsBlockLink text-center">http://www.pivotal.io/patents</a>.
+ </div>
+
+ <div class="left copyright">Pivotal is a registered
+ trademark or trademark of Pivotal Software, Inc. in the United States and
+ other jurisdictions. All other marks and names mentioned herein
+ may be trademarks of their respective companies.</div>
+
+ <div class="left termsBlock">
+ <a href="oslicenses.txt" target="_blank">Open Source
+ Licenses</a>
+ </div>
+ <!-- <div class="right termsBlock">
+ Pulse <a href="#.">Terms of Service</a>
+ </div>-->
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left">
+ <a data-prod-custom="pulse-help-custom" target="_blank"
+ href="http://gemfire.docs.pivotal.io/latest/userguide/index.html#tools_modules/pulse/chapter_overview.html"
+ class="left headerTopLinks">Help</a>
+ </div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left headerTopLinks welcomeLabelPRZero">Welcome</div>
+ <div class="left headerTopLinks textbold font-size12" id="userName"></div>
+ <div class="left headerTopSeperator"></div>
+ <div class="left">
+ <a href="pulse/clusterLogout" class="left headerTopLinks">Sign
+ Out</a>
+ </div>
+ </div>
+ </div>
+ <!-- Header block-->
+ <header>
+ <div class="left">
+ <a href="#." onclick="openClusterDetail();"
+ class="left textbold HeaderLink HeaderLinkActive" id="clusterName"></a>
+ </div>
+ <div class="textbold right logoBlock">
+ <a href="#.">[LOGO]</a>
+ </div>
+ </header>
+ <div class="clear"></div>
+ <div class="subHeader">
+ <ul>
+ <li><a href="#." onclick="openClusterDetail();">Cluster
+ View</a></li>
+ <!-- Hide Data Browser tab for gemfirexd (Pulse-Cheetah Release) -->
+ <!-- <li><a href="#." onclick="openDataBrowser();">Data Browser</a></li> -->
+ <li><a href="#." onclick="openQueryStatistics();" class="active">Query Statistics</a></li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ <!-- Middle block-->
+ <div class="left widthfull-100per">
+ <!--Top Right Block 1-->
+ <div class="right widthfull-100per marginTB10">
+
+ <!-- Tab-->
+ <div id="notificationsPanel" class="right marginL10 TabTopPanel position-relative"
+ data-role="widget" data-widgetid="CluserAlertNotification" data-active="yes" data-timeline="5000">
+ </div>
+ <div class="left leftBlockCanvas">
+ <!-- to be replaced with grid -->
+ <!-- canvasBlockLarge -->
+ <div class="statusmasterBlock">
+ <div
+ class="left widthfull-100per canvasBlockInnerBlock backgroundQueryStats">
+ <!-- Search-->
+ <div class="left widthfull-100per canvasBlockInnerBlock">
+ <span class="left marginL10 canvasHeading">Top 50 Queries</span>
+ </div>
+ <div class="clear"></div>
+ <div class="left width96Per marginBottom6 marginL10 marginTop6">
+ <div class="searchBlockMasterQS">
+ <input type="button" class="searchButtonQS"> <input
+ type="text" placeholder="Search Query Definition"
+ onkeyup="applyFilterOnQueryStatistics();"
+ class="searchBoxQueryStatistics" id="filterQueryStatisticsBox">
+ </div>
+ <div class="right">
+ <select id="columnsSelect" name="columnsSelect"
+ multiple="multiple" size="20"></select>
+ </div>
+ </div>
+ <div data-role="widget" data-widgetid="QueryStatistics"
+ data-active="yes" data-timeline="30000">
+ <div
+ class="left widthfull-100per canvasInnerBlock backgroundQueryStats">
+ <!--Grid Block-->
+ <div class="gridBlocksPanel left" id="gridBlocks_Panel">
+ <div class="left widthfull-100per">
+ <table id="queryStatisticsList"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!--Middle Block 1-->
+ </div>
+ </div>
+ <!--Popups Block-->
+ <div id="boxes">
+ <!-- Version Details popup-->
+ <!-- Version Details popup-->
+ <div id="dialog1" class="window width345" data-role="widget"
+ data-widgetid="PulseVersionDetails" data-active="yes"
+ data-timeline="5000">
+ <div class="popup_heading">
+ <span>Version Details</span><a href="#" class="closePopup"> </a>
+ </div>
+ <div class="popup_contentBlock">
+ <div class="popup-innerblock">
+ <ul class="widthfull-100per left">
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Pulse Version:</label> <label
+ class="width-58 display-inline-block" id="pulseVer"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Build Id:</label> <label
+ class="width-58 display-inline-block" id="buildId"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Build Date:</label> <label
+ class="width-58 display-inline-block" id="buildDate"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Source Date:</label> <label
+ class="width-58 display-inline-block" id="sourceDate"></label></li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Source Revision:</label>
+ <label class="width-58 display-inline-block" id="sourceRevision"></label>
+ </li>
+ <li class="left widthfull-100per"><label
+ class="width-40 display-inline-block">Source
+ Repository:</label> <label class="width-58 display-inline-block"
+ id="sourceRepository"></label></li>
+ </ul>
+ <div class="clear"></div>
+ </div>
+ </div>
+ </div>
+ <!-- Grid Details popup-->
+ <div id="gridPopup" class="window width700">
+ <div class="popup_heading">
+ <span>Object Explorer</span><a href="#" class="closePopup"> </a>
+ </div>
+ <div class="popup_contentBlock">
+ <div class="popup-innerblock">
+ <table id="treegrid">
+ <tr>
+ <td />
+ </tr>
+ </table>
+ </div>
+ <div class="popup-innerblock">
+ <table id="popUpExplorer">
+ <tr>
+ <td />
+ </tr>
+ </table>
+ </div>
+ </div>
+ </div>
+ <!-- Mask to cover the whole screen -->
+ <div id="mask"></div>
+ </div>
+ <div id="tooltip" class="tooltip"></div>
+ <!-- Placeholder-->
+ <script>
+ $('input[placeholder], textarea[placeholder]').placeholder();
+ </script>
+
+</body>
+</html>