Example usage for org.apache.zookeeper.server ByteBufferInputStream ByteBufferInputStream

List of usage examples for org.apache.zookeeper.server ByteBufferInputStream ByteBufferInputStream

Introduction

In this page you can find the example usage for org.apache.zookeeper.server ByteBufferInputStream ByteBufferInputStream.

Prototype

public ByteBufferInputStream(ByteBuffer bb) 

Source Link

Usage

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()));
    }
}