List of usage examples for org.apache.zookeeper.server ByteBufferInputStream ByteBufferInputStream
public ByteBufferInputStream(ByteBuffer bb)
From source file:c5db.util.EncodeTest.java
License:Apache License
@Test public void testVarInt() throws Exception { //byte[] thingy = new byte[50]; long[] lengths = { 1, 20, 200, 1024, 2048, 4000, 10000, 50000, 100000, 1024 * 1024, ((long) Integer.MAX_VALUE) * 100, -1, -200, -5000 }; for (long value : lengths) { // do the test: ByteBufferOutputStream bbos = new ByteBufferOutputStream(12); CodedOutputStream cos = CodedOutputStream.newInstance(bbos); long newvalue = (value << 4) | 8; //cos.writeRawVarint64(newvalue); cos.writeSInt64NoTag(newvalue);/*from w ww.j a v a2s. co m*/ cos.flush(); ByteBuffer bb = bbos.getByteBuffer(); System.out.println("value: " + value + ", length: " + bb.remaining()); ByteBufferInputStream bbis = new ByteBufferInputStream(bb); CodedInputStream cis = CodedInputStream.newInstance(bbis); long outval = cis.readSInt64(); long actual = outval >> 4; long tag = outval & 0x0F; System.out.println(" transformed we are: " + outval + " actual: " + actual + " tag: " + tag); } }
From source file:com.linkedin.databus2.relay.TestDatabusRelayEvents.java
License:Open Source License
/** * Stuffs an event buffer with both a v1 and a v2 event, then reads the buffer two ways: * first accepting only v1 events (verifying conversion of the v2 event to v1); then accepting * both v1 and v2 events./*w ww .j av a2 s . c om*/ * * Note that the version of the _EOP_ events must match the version of the event factory, * regardless of the versions of any preceding "real" events. (This matches DbusEventBuffer * behavior; see the serializeLongKeyEndOfPeriodMarker() call in endEvents() for details.) */ @Test public void testV2Events() throws KeyTypeNotImplementedException, InvalidEventException, IOException, DatabusException { final Logger log = Logger.getLogger("TestDatabusRelayEvents.testV2Events"); log.setLevel(Level.DEBUG); String[] srcs = { "com.linkedin.events.example.fake.FakeSchema" }; String pSourceName = DatabusRelayTestUtil.getPhysicalSrcName(srcs[0]); short srcId = 2; short pId = 1; int relayPort = Utils.getAvailablePort(11993); // create relay final DatabusRelayMain relay1 = createRelay(relayPort, pId, srcs); DatabusRelayTestUtil.RelayRunner r1 = null; ClientRunner cr = null; try { //EventProducer[] producers = relay1.getProducers(); r1 = new DatabusRelayTestUtil.RelayRunner(relay1); log.info("Relay created"); DbusEventBufferMult bufMult = relay1.getEventBuffer(); PhysicalPartition pPartition = new PhysicalPartition((int) pId, pSourceName); DbusEventBuffer buf = (DbusEventBuffer) bufMult.getDbusEventBufferAppendable(pPartition); log.info("create some events"); long windowScn = 100L; ByteBuffer serializationBuffer = addEvent( windowScn, srcId, relay1.getSchemaRegistryService() .fetchSchemaIdForSourceNameAndVersion(srcs[0], 2).getByteArray(), pId, DbusEventFactory.DBUS_EVENT_V2); ReadableByteChannel channel = Channels.newChannel(new ByteBufferInputStream(serializationBuffer)); int readEvents = buf.readEvents(channel); log.info("successfully read in " + readEvents + " events "); channel.close(); windowScn = 101L; serializationBuffer = addEvent( windowScn, srcId, relay1.getSchemaRegistryService() .fetchSchemaIdForSourceNameAndVersion(srcs[0], 2).getByteArray(), pId, DbusEventFactory.DBUS_EVENT_V1); channel = Channels.newChannel(new ByteBufferInputStream(serializationBuffer)); readEvents = buf.readEvents(channel); log.info("successfully read in " + readEvents + " events "); channel.close(); log.info("starting relay on port " + relayPort); r1.start(); //TestUtil.sleep(10*1000); // wait until relay comes up TestUtil.assertWithBackoff(new ConditionCheck() { @Override public boolean check() { return relay1.isRunningStatus(); } }, "Relay hasn't come up completely ", 30000, LOG); log.info("now create client"); String srcSubscriptionString = TestUtil.join(srcs, ","); String serverName = "localhost:" + relayPort; final EventsCountingConsumer countingConsumer = new EventsCountingConsumer(); int id = (RngUtils.randomPositiveInt() % 10000) + 1; DatabusSourcesConnection clientConn = RelayEventProducer.createDatabusSourcesConnection("testProducer", id, serverName, srcSubscriptionString, countingConsumer, 1 * 1024 * 1024, 50000, 30 * 1000, 100, 15 * 1000, 1, true, DatabusClientNettyThreadPools.createNettyThreadPools(id), 0, DbusEventFactory.DBUS_EVENT_V1, 0); cr = new ClientRunner(clientConn); log.info("starting client"); cr.start(); // wait till client gets the event TestUtil.assertWithBackoff(new ConditionCheck() { @Override public boolean check() { int events = countingConsumer.getNumDataEvents(); LOG.info("client got " + events + " events"); return events == 2; } }, "Consumer didn't get 2 events ", 64 * 1024, LOG); // asserts Assert.assertEquals(countingConsumer.getNumDataEvents(), 2); Assert.assertEquals(countingConsumer.getNumWindows(), 2); Assert.assertEquals(countingConsumer.getNumDataEvents(DbusEventFactory.DBUS_EVENT_V1), 2); log.info("shutdown first client"); clientConn.stop(); cr.shutdown(); TestUtil.sleep(1000); cr = null; log.info("start another client who understands V2"); final EventsCountingConsumer countingConsumer1 = new EventsCountingConsumer(); clientConn = RelayEventProducer.createDatabusSourcesConnection("testProducer", id, serverName, srcSubscriptionString, countingConsumer1, 1 * 1024 * 1024, 50000, 30 * 1000, 100, 15 * 1000, 1, true, DatabusClientNettyThreadPools.createNettyThreadPools(id), 0, DbusEventFactory.DBUS_EVENT_V2, 0); cr = new ClientRunner(clientConn); cr.start(); log.info("wait till client gets the event"); TestUtil.assertWithBackoff(new ConditionCheck() { @Override public boolean check() { int events = countingConsumer1.getNumDataEvents(); LOG.debug("client got " + events + " events"); return events == 2; } }, "Consumer didn't get 2 events ", 64 * 1024, LOG); // asserts Assert.assertEquals(countingConsumer1.getNumDataEvents(), 2); Assert.assertEquals(countingConsumer1.getNumWindows(), 2); Assert.assertEquals(countingConsumer1.getNumDataEvents(DbusEventFactory.DBUS_EVENT_V1), 1); Assert.assertEquals(countingConsumer1.getNumDataEvents(DbusEventFactory.DBUS_EVENT_V2), 1); } finally { cleanup(new DatabusRelayTestUtil.RelayRunner[] { r1 }, cr); } }
From source file:org.apache.solr.common.util.Utils.java
License:Apache License
public static InputStream toJavabin(Object o) throws IOException { try (final JavaBinCodec jbc = new JavaBinCodec()) { BinaryRequestWriter.BAOS baos = new BinaryRequestWriter.BAOS(); jbc.marshal(o, baos);//from ww w . j av a 2 s . c o m return new ByteBufferInputStream(ByteBuffer.wrap(baos.getbuf(), 0, baos.size())); } }