private void checkQueueIteration(List<KeyValue> expected, String... entries) throws Exception { PartitionAttributesFactory paf = new PartitionAttributesFactory(); paf.setTotalNumBuckets(1); RegionFactory rf1 = this.c.createRegionFactory(RegionShortcut.PARTITION); Region r1 = rf1.setPartitionAttributes(paf.create()).create("r1"); // create the buckets r1.put("blah", "blah"); HDFSParallelGatewaySenderQueue hopqueue = getHDFSQueue(r1, this.c); HDFSBucketRegionQueue brq = (HDFSBucketRegionQueue) ((PartitionedRegion) hopqueue.getRegion()).getDataStore().getLocalBucketById(0); int seq = 0; for (String s : entries) { if (s.equals("roll")) { brq.rolloverSkipList(); } else { String[] kv = s.split("-"); hopqueue.put(getNewEvent(kv[0], kv[1], r1, 0, seq++)); getSortedEventQueue(brq).rollover(true); } } Iterator<HDFSGatewayEventImpl> iter = brq.iterator(r1); List<KeyValue> actual = new ArrayList<KeyValue>(); while (iter.hasNext()) { HDFSGatewayEventImpl evt = iter.next(); actual.add(new KeyValue((String) evt.getKey(), (String) evt.getDeserializedValue())); } assertEquals(expected, actual); }
private HDFSGatewayEventImpl getNewEvent( Object key, Object value, Region r1, int bid, int tailKey) throws Exception { EntryEventImpl ev1 = EntryEventImpl.create( (LocalRegion) r1, Operation.CREATE, key, value, null, false, (DistributedMember) c.getMyId()); ev1.setEventId(new EventID(this.c.getDistributedSystem())); HDFSGatewayEventImpl event = null; event = new HDFSGatewayEventImpl(EnumListenerEvent.AFTER_CREATE, ev1, null, true, bid); event.setShadowKey((long) tailKey); return event; }
private void checkQueueGet(String key, KeyValue expected, String... entries) throws Exception { PartitionAttributesFactory paf = new PartitionAttributesFactory(); paf.setTotalNumBuckets(1); RegionFactory rf1 = this.c.createRegionFactory(RegionShortcut.PARTITION); PartitionedRegion r1 = (PartitionedRegion) rf1.setPartitionAttributes(paf.create()).create("r1"); // create the buckets r1.put("blah", "blah"); // hack to get the queue. HDFSParallelGatewaySenderQueue hopqueue = getHDFSQueue(r1, this.c); HDFSBucketRegionQueue brq = (HDFSBucketRegionQueue) ((PartitionedRegion) hopqueue.getRegion()).getDataStore().getLocalBucketById(0); int seq = 0; for (String s : entries) { if (s.equals("roll")) { brq.rolloverSkipList(); } else { String[] kv = s.split("-"); hopqueue.put(getNewEvent(kv[0], kv[1], r1, 0, seq++)); } } byte[] bkey = EntryEventImpl.serialize(key); HDFSGatewayEventImpl evt = hopqueue.get(r1, bkey, 0); if (expected == null) { assertNull(evt); } else { assertEquals(expected.key, evt.getKey()); assertEquals(expected.value, evt.getDeserializedValue()); } }