Example usage for org.apache.thrift TDeserializer TDeserializer

List of usage examples for org.apache.thrift TDeserializer TDeserializer

Introduction

In this page you can find the example usage for org.apache.thrift TDeserializer TDeserializer.

Prototype

public TDeserializer(TProtocolFactory protocolFactory) 

Source Link

Document

Create a new TDeserializer.

Usage

From source file:net.modelbased.proasense.storage.reader.StorageReaderScrapRateTestData.java

License:Apache License

public static void main(String[] args) {
    // Get client properties from properties file
    StorageReaderScrapRateTestData client = new StorageReaderScrapRateTestData();
    client.loadClientProperties();//  w w w  .  j a v a 2  s.c o m
    client.loadTestDataProperties();

    // Convert test data properties to Simple Events
    List<SimpleEvent> events = new ArrayList<SimpleEvent>();
    String[] S_TESTDATA_PROPERTIES = client.testDataProperties.getProperty("proasense.storage.scrap.testdata")
            .split(",");
    if ((S_TESTDATA_PROPERTIES.length % 7) == 0) {
        int i = 0;
        while (i < S_TESTDATA_PROPERTIES.length) {
            SimpleEvent event = new SimpleEvent();
            event.setTimestamp(new Long(S_TESTDATA_PROPERTIES[i]));

            event.setSensorId(S_TESTDATA_PROPERTIES[i + 1]);

            Map<String, ComplexValue> properties = new HashMap<String, ComplexValue>();

            ComplexValue complexValue = new ComplexValue();
            complexValue.setValue(S_TESTDATA_PROPERTIES[i + 2]);
            complexValue.setType(VariableType.STRING);
            properties.put("machineId", complexValue);

            complexValue = new ComplexValue();
            complexValue.setValue(S_TESTDATA_PROPERTIES[i + 3]);
            complexValue.setType(VariableType.LONG);
            properties.put("quantity", complexValue);

            complexValue = new ComplexValue();
            complexValue.setValue(S_TESTDATA_PROPERTIES[i + 4]);
            complexValue.setType(VariableType.STRING);
            properties.put("designation", complexValue);

            complexValue = new ComplexValue();
            complexValue.setValue(S_TESTDATA_PROPERTIES[i + 5]);
            complexValue.setType(VariableType.BOOLEAN);
            properties.put("goodPart", complexValue);

            complexValue = new ComplexValue();
            complexValue.setValue(S_TESTDATA_PROPERTIES[i + 6]);
            complexValue.setType(VariableType.STRING);
            properties.put("finalArticle", complexValue);

            event.setEventProperties(properties);

            events.add(event);

            i = i + 7;
        }
    }

    // Print list of test data 1
    for (int i = 0; i < events.size(); i++) {
        SimpleEvent event = events.get(i);
        System.out.println("SimpleEvent(" + i + ") message         : " + event.toString());

        // Serialize message as JSON
        //            byte[] bytes_serialized = null;
        String json_serialized = null;
        try {
            TSerializer serializer = new TSerializer(new TJSONProtocol.Factory());
            //                bytes_serialized = serializer.serialize(event);
            //                System.out.println("SimpleEvent(" + i + ") bytes_serialized: " + bytes_serialized);
            json_serialized = serializer.toString(event);
            System.out.println("SimpleEvent(" + i + ") json_serialized : " + json_serialized);
        } catch (TException e) {
            System.out.println(e.getClass().getName() + ": " + e.getMessage());
        }

        // Transfer byte as string
        String json_transfer = json_serialized;

        // Deserialize message
        try {
            System.out.println("SimpleEvent(" + i + ") json_transfer   : " + json_transfer);
            byte[] bytes2 = json_transfer.getBytes();
            //                System.out.println("bytes2 = " + bytes2);
            TDeserializer deserializer = new TDeserializer(new TJSONProtocol.Factory());
            SimpleEvent event2 = new SimpleEvent();
            deserializer.deserialize(event2, bytes2);
            System.out.println("SimpleEvent(" + i + ") deserialized    : " + event2.toString());
        } catch (TException e) {
            System.out.println(e.getClass().getName() + ": " + e.getMessage());
        }
    }

    // Print list of test data 2 (part 1)
    StringBuilder json_transfer_string = new StringBuilder("[");
    for (int i = 0; i < events.size(); i++) {
        SimpleEvent event = events.get(i);
        System.out.println("SimpleEvent2(" + i + ") message        : " + event.toString());

        // Serialize messages as JSON string
        String json_serialized = null;
        try {
            TSerializer serializer = new TSerializer(new TJSONProtocol.Factory());
            json_serialized = serializer.toString(event);
            System.out.println("SimpleEvent2(" + i + ") json_serialized: " + json_serialized);
        } catch (TException e) {
            System.out.println(e.getClass().getName() + ": " + e.getMessage());
        }

        // Transfer byte as string
        json_transfer_string.append(json_serialized);
        json_transfer_string.append(",");
    }

    // Convert to string and remove trailing ,
    int json_length = json_transfer_string.length();
    if (json_length > 1)
        json_transfer_string.deleteCharAt(json_length - 1);
    json_transfer_string.append("]");

    String result = json_transfer_string.toString();
    //        result = result.substring(0, result.length()-1);
    //       System.out.println("SimpleEvent2(*) json_transfer_string: " + result);

    // Deserialize messages (part 2)
    try {
        System.out.println("SimpleEvent2(*) result : " + result);

        ObjectMapper mapper = new ObjectMapper();
        JsonNode nodeArray = mapper.readTree(result);

        for (JsonNode node : nodeArray) {
            byte[] bytes = node.toString().getBytes();
            System.out.println("bytes = " + bytes);
            TDeserializer deserializer = new TDeserializer(new TJSONProtocol.Factory());
            SimpleEvent event = new SimpleEvent();
            deserializer.deserialize(event, bytes);
            System.out.println("deserizalised = " + event.toString());
        }
        /**
                    byte[] bytes2 = result.getBytes();
                    System.out.println("bytes2 = " + bytes2);
                    TDeserializer deserializer = new TDeserializer(new TJSONProtocol.Factory());
                    SimpleEvent event2 = new SimpleEvent();
                    deserializer.deserialize(event2, bytes2);
                    System.out.println("SimpleEvent2(*) deserialized: " + event2.toString());
                    byte[] bytes3 = result.getBytes();
                    System.out.println("bytes3 = " + bytes3);
                    SimpleEvent event3 = new SimpleEvent();
                    deserializer.deserialize(event3, bytes3);
                    System.out.println("SimpleEvent2(*) deserialized: " + event3.toString());
        **/
    } catch (IOException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    } catch (TException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    }
}

From source file:net.modelbased.proasense.storage.writer.EventListenerKafka.java

License:Apache License

public void run() {
    // Create Kafka consumer
    ConsumerConnector kafkaConsumer = createKafkaConsumer(this.zooKeeper, this.groupId);

    // Create message streams
    KafkaStream<byte[], byte[]> messageAndMetadatas;
    if (this.isTopicFilter) {
        // Create message streams by filter
        List<KafkaStream<byte[], byte[]>> streams = kafkaConsumer
                .createMessageStreamsByFilter(new Whitelist(this.topic));
        messageAndMetadatas = streams.get(0);
    } else {/*from   www  .j ava2 s  .c  om*/
        // Create message streams by topic map
        Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
        ;
        topicCountMap.put(this.topic, 1);
        Map<String, List<KafkaStream<byte[], byte[]>>> streams = kafkaConsumer
                .createMessageStreams(topicCountMap);
        messageAndMetadatas = streams.get(this.topic).get(0);
    }

    // Consume message
    ConsumerIterator<byte[], byte[]> it = messageAndMetadatas.iterator();

    int cnt = 0;
    try {
        while (it.hasNext()) {
            cnt++;
            byte[] bytes = it.next().message();

            // Convert message to Apache Thrift struct
            TDeserializer deserializer = new TDeserializer(new TBinaryProtocol.Factory());
            T event = eventType.newInstance();
            deserializer.deserialize((TBase) event, bytes);

            //                if (cnt % 1000 == 0)
            //                    System.out.println("SimpleEvent(" + cnt + "): " + event.toString());

            String eventTypeName = eventType.getName();

            // Convert event message to document
            if (eventTypeName.matches(EventProperties.SIMPLEEVENT_CLASS_NAME)) {
                EventDocumentConverter converter = new EventDocumentConverter((SimpleEvent) event);
                EventDocument eventDocument = new EventDocument(converter.getCollectionId(),
                        converter.getDocument());

                queue.put(eventDocument);
            }
            if (eventTypeName.matches(EventProperties.DERIVEDEVENT_CLASS_NAME)) {
                EventDocumentConverter converter = new EventDocumentConverter((DerivedEvent) event);
                EventDocument eventDocument = new EventDocument(converter.getCollectionId(),
                        converter.getDocument());

                queue.put(eventDocument);
            }
            if (eventTypeName.matches(EventProperties.PREDICTEDEVENT_CLASS_NAME)) {
                EventDocumentConverter converter = new EventDocumentConverter((PredictedEvent) event);
                EventDocument eventDocument = new EventDocument(converter.getCollectionId(),
                        converter.getDocument());

                queue.put(eventDocument);
            }
            if (eventTypeName.matches(EventProperties.ANOMALYEVENT_CLASS_NAME)) {
                EventDocumentConverter converter = new EventDocumentConverter((AnomalyEvent) event);
                EventDocument eventDocument = new EventDocument(converter.getCollectionId(),
                        converter.getDocument());

                queue.put(eventDocument);
            }
            if (eventTypeName.matches(EventProperties.RECOMMENDATIONEVENT_CLASS_NAME)) {
                EventDocumentConverter converter = new EventDocumentConverter((RecommendationEvent) event);
                EventDocument eventDocument = new EventDocument(converter.getCollectionId(),
                        converter.getDocument());

                queue.put(eventDocument);
            }
            if (eventTypeName.matches(EventProperties.FEEDBACKEVENT_CLASS_NAME)) {
                EventDocumentConverter converter = new EventDocumentConverter((FeedbackEvent) event);
                EventDocument eventDocument = new EventDocument(converter.getCollectionId(),
                        converter.getDocument());

                queue.put(eventDocument);
            }
        }
    } catch (IllegalAccessException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    } catch (InstantiationException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    } catch (ConsumerTimeoutException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    } catch (TException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    } catch (InterruptedException e) {
        System.out.println(e.getClass().getName() + ": " + e.getMessage());
    } finally {
        kafkaConsumer.commitOffsets();
        kafkaConsumer.shutdown();
    }
}

From source file:no.finntech.shootout.thrift.Thrift.java

License:Apache License

@Override
@Benchmark//  w ww.j a va 2  s .  c om
public ThriftView read() throws TException, InterruptedException {
    ThriftView base = new ThriftView();
    new TDeserializer(getProtocolFactory()).deserialize(base, getBytes());
    return base;
}

From source file:org.apache.accumulo.core.iterators.IteratorUtil.java

License:Apache License

public static List<IteratorSetting> decodeIteratorSettings(byte[] enc) {
    TDeserializer tdser = new TDeserializer(new TBinaryProtocol.Factory());
    IteratorConfig ic = new IteratorConfig();
    try {/* www.j  a va 2  s.  co  m*/
        tdser.deserialize(ic, enc);
    } catch (TException e) {
        throw new RuntimeException(e);
    }
    return toIteratorSettings(ic);
}

From source file:org.apache.aurora.codec.ThriftBinaryCodec.java

License:Apache License

/**
 * Decodes a binary-encoded byte array into a target type.
 *
 * @param clazz Class to instantiate and deserialize to.
 * @param buffer Buffer to decode.//  ww  w  .  j  a  v  a2  s.  co  m
 * @param <T> Target type.
 * @return A populated message.
 * @throws CodingException If the message could not be decoded.
 */
public static <T extends TBase<T, ?>> T decodeNonNull(Class<T> clazz, byte[] buffer) throws CodingException {

    requireNonNull(clazz);
    requireNonNull(buffer);

    try {
        T t = newInstance(clazz);
        new TDeserializer(PROTOCOL_FACTORY).deserialize(t, buffer);
        return t;
    } catch (TException e) {
        throw new CodingException("Failed to deserialize thrift object.", e);
    }
}

From source file:org.apache.aurora.scheduler.storage.durability.DataCompatibilityTest.java

License:Apache License

private static Op deserialize(String serializedOp) {
    try {/*from   w  w  w . j  ava  2s  .  c  o m*/
        Op op = new Op();

        String nonPrettyJson = new GsonBuilder().create().toJson(new JsonParser().parse(serializedOp));

        new TDeserializer(new TJSONProtocol.Factory()).deserialize(op, nonPrettyJson.getBytes(UTF_8));
        return op;
    } catch (TException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.apache.cassandra.db.RangeSliceCommand.java

License:Apache License

public RangeSliceCommand deserialize(DataInputStream dis, int version) throws IOException {
    String keyspace = dis.readUTF();
    String column_family = dis.readUTF();

    int scLength = dis.readInt();
    ByteBuffer super_column = null;
    if (scLength > 0)
        super_column = ByteBuffer.wrap(readBuf(scLength, dis));

    TDeserializer dser = new TDeserializer(new TBinaryProtocol.Factory());
    SlicePredicate pred = new SlicePredicate();
    FBUtilities.deserialize(dser, pred, dis);

    AbstractBounds range = AbstractBounds.serializer().deserialize(dis);
    int max_keys = dis.readInt();
    return new RangeSliceCommand(keyspace, column_family, super_column, pred, range, max_keys);
}

From source file:org.apache.cassandra.hadoop.ConfigHelper.java

License:Apache License

private static SlicePredicate predicateFromString(String st) {
    assert st != null;
    TDeserializer deserializer = new TDeserializer(new TBinaryProtocol.Factory());
    SlicePredicate predicate = new SlicePredicate();
    try {/*  w  w w . jav a  2 s.com*/
        deserializer.deserialize(predicate, FBUtilities.hexToBytes(st));
    } catch (TException e) {
        throw new RuntimeException(e);
    }
    return predicate;
}

From source file:org.apache.cassandra.hadoop.pig.CassandraStorage.java

License:Apache License

/** convert string to a list of index expression */
private static List<IndexExpression> indexExpressionsFromString(String ie) throws IOException {
    assert ie != null;
    TDeserializer deserializer = new TDeserializer(new TBinaryProtocol.Factory());
    IndexClause indexClause = new IndexClause();
    try {//w  w w .j a va  2 s.c  om
        deserializer.deserialize(indexClause, Hex.hexToBytes(ie));
    } catch (TException e) {
        throw new IOException(e);
    }
    return indexClause.getExpressions();
}

From source file:org.apache.cassandra.hadoop2.pig.AbstractCassandraStorage.java

License:Apache License

/** convert string back to CfDef */
protected static CfDef cfdefFromString(String st) {
    assert st != null;
    TDeserializer deserializer = new TDeserializer(new TBinaryProtocol.Factory());
    CfDef cfDef = new CfDef();
    try {/*  ww w.j av a 2 s  . c  o m*/
        deserializer.deserialize(cfDef, Hex.hexToBytes(st));
    } catch (TException e) {
        throw new RuntimeException(e);
    }
    return cfDef;
}