Example usage for org.springframework.integration.store SimpleMessageGroup SimpleMessageGroup

List of usage examples for org.springframework.integration.store SimpleMessageGroup SimpleMessageGroup

Introduction

In this page you can find the example usage for org.springframework.integration.store SimpleMessageGroup SimpleMessageGroup.

Prototype

public SimpleMessageGroup(MessageGroup messageGroup) 

Source Link

Usage

From source file:org.springframework.integration.jdbc.JdbcMessageStore.java

@Override
public MessageGroup getMessageGroup(Object groupId) {
    String key = getKey(groupId);
    final AtomicReference<Date> createDate = new AtomicReference<Date>();
    final AtomicReference<Date> updateDate = new AtomicReference<Date>();
    final AtomicReference<Boolean> completeFlag = new AtomicReference<Boolean>();
    final AtomicReference<Integer> lastReleasedSequenceRef = new AtomicReference<Integer>();

    List<Message<?>> messages = jdbcTemplate.query(getQuery(Query.LIST_MESSAGES_BY_GROUP_KEY),
            new Object[] { key, region }, mapper);

    jdbcTemplate.query(getQuery(Query.GET_GROUP_INFO), new Object[] { key, region }, new RowCallbackHandler() {
        @Override//from w  ww .  j a va  2  s .c o m
        public void processRow(ResultSet rs) throws SQLException {
            updateDate.set(rs.getTimestamp("UPDATED_DATE"));

            createDate.set(rs.getTimestamp("CREATED_DATE"));

            completeFlag.set(rs.getInt("COMPLETE") > 0);

            lastReleasedSequenceRef.set(rs.getInt("LAST_RELEASED_SEQUENCE"));
        }
    });

    if (createDate.get() == null && updateDate.get() == null) {
        if (logger.isWarnEnabled()) {
            for (Message<?> message : messages) {
                logger.warn("Missing group row for message id: " + message.getHeaders().getId());
            }
        }
        return new SimpleMessageGroup(groupId);
    }

    long timestamp = createDate.get().getTime();
    boolean complete = completeFlag.get().booleanValue();

    SimpleMessageGroup messageGroup = new SimpleMessageGroup(messages, groupId, timestamp, complete);
    messageGroup.setLastModified(updateDate.get().getTime());

    int lastReleasedSequenceNumber = lastReleasedSequenceRef.get();
    messageGroup.setLastReleasedMessageSequenceNumber(lastReleasedSequenceNumber);

    return messageGroup;
}

From source file:org.springframework.integration.jdbc.store.JdbcChannelMessageStore.java

/**
 * Not fully used. Only wraps the provided group id.
 */
public MessageGroup getMessageGroup(Object groupId) {
    return new SimpleMessageGroup(groupId);
}

From source file:org.springframework.integration.jdbc.store.JdbcMessageStore.java

@Override
public MessageGroup getMessageGroup(Object groupId) {
    String key = getKey(groupId);
    final AtomicReference<Date> createDate = new AtomicReference<Date>();
    final AtomicReference<Date> updateDate = new AtomicReference<Date>();
    final AtomicReference<Boolean> completeFlag = new AtomicReference<Boolean>();
    final AtomicReference<Integer> lastReleasedSequenceRef = new AtomicReference<Integer>();

    this.jdbcTemplate.query(getQuery(Query.GET_GROUP_INFO), rs -> {
        updateDate.set(rs.getTimestamp("UPDATED_DATE"));

        createDate.set(rs.getTimestamp("CREATED_DATE"));

        completeFlag.set(rs.getInt("COMPLETE") > 0);

        lastReleasedSequenceRef.set(rs.getInt("LAST_RELEASED_SEQUENCE"));
    }, key, this.region);

    if (createDate.get() == null && updateDate.get() == null) {
        return new SimpleMessageGroup(groupId);
    }/* w  w  w  .j  a  v  a2s. c  o  m*/

    MessageGroup messageGroup = getMessageGroupFactory().create(this, groupId, createDate.get().getTime(),
            completeFlag.get());
    messageGroup.setLastModified(updateDate.get().getTime());
    messageGroup.setLastReleasedMessageSequenceNumber(lastReleasedSequenceRef.get());
    return messageGroup;
}