本文整理了Java中com.gemstone.gemfire.cache.query.internal.QueryObserverHolder
类的一些代码示例,展示了QueryObserverHolder
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryObserverHolder
类的具体详情如下:
包路径:com.gemstone.gemfire.cache.query.internal.QueryObserverHolder
类名称:QueryObserverHolder
[英]This class is intended to hold a single 'observer' which will receive callbacks from the query subsystem when various events take place. There can be only one such observer at a time. If no observer is needed, this member variable should point to an object with 'do-nothing' methods, such as QueryObserverAdapter. Code which wishes to observe events during a query should do so using the following technique: class MyQueryObserver extends QueryObserverAdapter { // ... override methods of interest ... } QueryObserver old = QueryObserverHolder.setInstance(new MyQueryObserver()); try { //... call query methods here ... } finally { // reset to the original QueryObserver. QueryObserverHolder.setInstance(old); } The query code will call methods on this static member using the following technique: QueryObserver observer = QueryObserverHolder.getInstance(); try { observer.startMethod(arguments); doSomething(); } finally { observer.stopMethod(arguments); }
[中]此类旨在容纳一个“观察者”,当各种事件发生时,该观察者将接收来自查询子系统的回调。一次只能有一个这样的观察者。如果不需要观察者,此成员变量应指向具有“不做任何事情”方法的对象,例如QueryObserverAdapter。希望在查询过程中观察事件的代码应该使用以下技术进行观察:MyQueryObserver类扩展QueryObserverAdapter{/..override methods of interest…}QueryObserver old=QueryObserverHolder。setInstance(新的MyQueryObserver());请尝试{/..call query methods here…}最后{//重置为原始QueryObserver.QueryObserverHolder.setInstance(旧);}查询代码将使用以下技术调用此静态成员上的方法:QueryObserver observer=QueryObserver holder。getInstance();试试{observer.startMethod(arguments);doSomething();}最后{observer.stopMethod(arguments);}
代码示例来源:origin: io.snappydata/gemfire-core
public QueryObserver startTrace() {
QueryObserver queryObserver = null;
if (this.traceOn && this.cache != null) {
QueryObserver qo = QueryObserverHolder.getInstance();
if (qo instanceof IndexTrackingQueryObserver) {
queryObserver = qo;
} else if (!QueryObserverHolder.hasObserver()) {
queryObserver = new IndexTrackingQueryObserver();
QueryObserverHolder.setInstance(queryObserver);
} else {
queryObserver = qo;
}
}
return queryObserver;
}
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public void run2() throws CacheException {
QueryObserverHolder.reset();
}
});
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public Object call() throws Exception {
QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
assertTrue(observer instanceof QueryResultTrackingObserver);
QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
assertTrue(resultObserver.isObjectSerialized());
return null;
}
});
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public void run2() throws CacheException
{
class MyQueryObserver extends IndexTrackingQueryObserver {
@Override
public void startQuery(Query query) {
throw new RuntimeException("For testing purpose only from remote node");
}
};
QueryObserverHolder.setInstance(new MyQueryObserver());
};
}
代码示例来源:origin: io.snappydata/gemfire-junit
public void testTraceOnLocalRegionWithTracePrefixNoComments() throws Exception{
String prefix = " <TRACE> ";
//Create Partition Region
AttributesFactory af = new AttributesFactory();
af.setScope(Scope.LOCAL);
region = CacheUtils.createRegion("portfolio", af.create(), false);
if (region.size() == 0) {
for (int i = 1; i <= 100; i++) {
region.put(Integer.toString(i), new Portfolio(i, i));
}
}
assertEquals(100, region.size());
qs = CacheUtils.getQueryService();
keyIndex1 = (IndexProtocol) qs.createIndex(INDEX_NAME,
IndexType.FUNCTIONAL, "ID", "/portfolio ");
assertTrue(keyIndex1 instanceof CompactRangeIndex);
Query query = qs.newQuery(prefix+queryStr);
assertTrue(((DefaultQuery)query).isTraced());
SelectResults results = (SelectResults)query.execute();
assertTrue(QueryObserverHolder.getInstance() instanceof IndexTrackingQueryObserver);
//The query should return all elements in region.
assertEquals(region.size(), results.size());
QueryObserverHolder.reset();
}
代码示例来源:origin: io.snappydata/gemfire-junit
QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
QueryObserverHolder.reset();
代码示例来源:origin: io.snappydata/gemfire-junit
public void hook(int spot) throws RuntimeException {
QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(observer instanceof IndexTrackingQueryObserver);
IndexTrackingQueryObserver gfObserver = (IndexTrackingQueryObserver)observer;
if (spot == 1) { //before index lookup
} else if (spot == 2) { //before key range index lookup
} else if (spot == 3) { //End of afterIndexLookup call
} else if (spot == 4) { //Before resetting indexInfoMap
Map map = gfObserver.getUsedIndexes();
assertEquals(1, map.size());
assertTrue(map.get(INDEX_NAME) instanceof IndexInfo);
rMap = (IndexInfo)map.get(INDEX_NAME);
if(this.regn instanceof PartitionedRegion){
assertEquals(1, rMap.getResults().size());
} else if (this.regn instanceof LocalRegion) {
assertEquals(1, rMap.getResults().size());
}
}
}
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public void run2() throws CacheException
{
class MyQueryObserver extends IndexTrackingQueryObserver {
@Override
public void startQuery(Query query) {
throw new RuntimeException("For testing purpose only from remote node");
}
};
QueryObserverHolder.setInstance(new MyQueryObserver());
};
}
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public Object call() throws Exception {
QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
assertTrue(observer instanceof QueryResultTrackingObserver);
QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
assertTrue(resultObserver.isObjectSerialized());
return null;
}
});
代码示例来源:origin: io.snappydata/gemfire-junit
public void testTraceOnLocalRegionWithSmallTracePrefixNoComments() throws Exception{
String prefix = "<trace> ";
//Create Partition Region
AttributesFactory af = new AttributesFactory();
af.setScope(Scope.LOCAL);
region = CacheUtils.createRegion("portfolio", af.create(), false);
if (region.size() == 0) {
for (int i = 1; i <= 100; i++) {
region.put(Integer.toString(i), new Portfolio(i, i));
}
}
assertEquals(100, region.size());
qs = CacheUtils.getQueryService();
keyIndex1 = (IndexProtocol) qs.createIndex(INDEX_NAME,
IndexType.FUNCTIONAL, "ID", "/portfolio ");
assertTrue(keyIndex1 instanceof CompactRangeIndex);
Query query = qs.newQuery(prefix+queryStr);
assertTrue(((DefaultQuery)query).isTraced());
SelectResults results = (SelectResults)query.execute();
assertTrue(QueryObserverHolder.getInstance() instanceof IndexTrackingQueryObserver);
//The query should return all elements in region.
assertEquals(region.size(), results.size());
QueryObserverHolder.reset();
}
代码示例来源:origin: io.snappydata/gemfire-junit
QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
QueryObserverHolder.reset();
代码示例来源:origin: io.snappydata/gemfire-core
NameResolutionException, QueryInvocationTargetException
QueryObserver observer = QueryObserverHolder.getInstance();
if (entriesMap == null || result == null || verifyLimit(result, limit, context))
return;
代码示例来源:origin: org.apache.geode/gemfire-core
public QueryObserver startTrace() {
QueryObserver queryObserver = null;
if (this.traceOn && this.cache != null) {
QueryObserver qo = QueryObserverHolder.getInstance();
if (qo instanceof IndexTrackingQueryObserver) {
queryObserver = qo;
} else if (!QueryObserverHolder.hasObserver()) {
queryObserver = new IndexTrackingQueryObserver();
QueryObserverHolder.setInstance(queryObserver);
} else {
queryObserver = qo;
}
}
return queryObserver;
}
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
/**
* Set queryobserver which will invoke bucket rebalance upon startQuery() callback
*/
public static void HydraTask_Set_BucketRegion_BucketRebalance_QueryObserver() {
class MyQueryObserver extends IndexTrackingQueryObserver {
@Override
public void startQuery(Query query) {
new Thread() {
public void run() {
ParRegUtil.doRebalance();
}
}.start();
}
}
;
QueryObserverHolder.setInstance(new MyQueryObserver());
}
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public Object call() throws Exception {
QueryObserver observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
assertTrue(observer instanceof QueryResultTrackingObserver);
QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
assertTrue(resultObserver.isObjectSerialized());
return null;
}
});
代码示例来源:origin: io.snappydata/gemfire-junit
assertTrue(QueryObserverHolder.getInstance() instanceof IndexTrackingQueryObserver);
QueryObserverHolder.reset();
代码示例来源:origin: io.snappydata/gemfire-core
return;
assert entriesMap instanceof SortedMap;
QueryObserver observer = QueryObserverHolder.getInstance();
if (((SortedMap)entriesMap).isEmpty()){ // bug#40514
return;
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public void run2() throws CacheException {
QueryObserverHolder.reset();
}
});
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public Object call() throws Exception {
QueryObserver observer = QueryObserverHolder
.setInstance(new QueryResultTrackingObserver());
QueryService qs = null;
try {
observer = QueryObserverHolder.getInstance();
assertTrue(QueryObserverHolder.hasObserver());
assertTrue(observer instanceof QueryResultTrackingObserver);
QueryResultTrackingObserver resultObserver = (QueryResultTrackingObserver) observer;
assertFalse(resultObserver.isObjectSerialized());
QueryObserverHolder.setInstance(oldObserver);
return null;
代码示例来源:origin: io.snappydata/gemfire-hydra-tests
@Override
public void run2() throws CacheException {
class MyQueryObserver extends IndexTrackingQueryObserver {
@Override
public void startQuery(Query query) {
Region pr = CacheFactory.getAnyInstance().getRegion(PartitionedRegionName1);
Region KeyRegion = null;
for (int i=0; i<7; i++) {
KeyRegion = ((PartitionedRegion)pr).getBucketRegion(i/*key*/);
if (KeyRegion != null)
KeyRegion.destroyRegion();
}
}
};
QueryObserverHolder.setInstance(new MyQueryObserver());
}
});
内容来源于网络,如有侵权,请联系作者删除!