Search in sources :

Example 1 with ChangeFeedProcessorBuilder

use of com.azure.cosmos.ChangeFeedProcessorBuilder in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SalesOrder method MigrateJavaSDKv4CFAsync.

/**
 * https://docs.microsoft.com/en-us/azure/cosmos-db/migrate-java-v4-sdk
 * Change Feed
 */
/**
 * Change Feed
 */
public static void MigrateJavaSDKv4CFAsync() {
    String hostName = "hostname";
    String partition_key = "/pk";
    CosmosAsyncContainer feedContainer = null;
    CosmosAsyncContainer leaseContainer = null;
    // <MigrateCFAsync>
    ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder().hostName(hostName).feedContainer(feedContainer).leaseContainer(leaseContainer).handleChanges((List<JsonNode> docs) -> {
        logger.info("--->setHandleChanges() START");
        for (JsonNode document : docs) {
            try {
                // Change Feed hands the document to you in the form of a JsonNode
                // As a developer you have two options for handling the JsonNode document provided to you by Change Feed
                // One option is to operate on the document in the form of a JsonNode, as shown below. This is great
                // especially if you do not have a single uniform data model for all documents.
                logger.info("---->DOCUMENT RECEIVED: " + OBJECT_MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(document));
                // You can also transform the JsonNode to a POJO having the same structure as the JsonNode,
                // as shown below. Then you can operate on the POJO.
                CustomPOJO pojo_doc = OBJECT_MAPPER.treeToValue(document, CustomPOJO.class);
                logger.info("----=>id: " + pojo_doc.getId());
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }
        logger.info("--->handleChanges() END");
    }).buildChangeFeedProcessor();
    // ...
    changeFeedProcessorInstance.start().subscribeOn(Schedulers.elastic()).subscribe();
// </MigrateCFAsync>
}
Also used : ChangeFeedProcessor(com.azure.cosmos.ChangeFeedProcessor) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) ChangeFeedProcessorBuilder(com.azure.cosmos.ChangeFeedProcessorBuilder) JsonNode(com.fasterxml.jackson.databind.JsonNode) CustomPOJO(com.azure.cosmos.examples.common.CustomPOJO) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Aggregations

ChangeFeedProcessor (com.azure.cosmos.ChangeFeedProcessor)1 ChangeFeedProcessorBuilder (com.azure.cosmos.ChangeFeedProcessorBuilder)1 CosmosAsyncContainer (com.azure.cosmos.CosmosAsyncContainer)1 CustomPOJO (com.azure.cosmos.examples.common.CustomPOJO)1 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 JsonNode (com.fasterxml.jackson.databind.JsonNode)1