pl.allegro.tech.hermes.api.PublishedMessageTrace Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hermes-api Show documentation
Show all versions of hermes-api Show documentation
Fast and reliable message broker built on top of Kafka.
package pl.allegro.tech.hermes.api;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Objects;
@JsonIgnoreProperties(ignoreUnknown = true)
public class PublishedMessageTrace implements MessageTrace {
private final String messageId;
private final long timestamp;
private final PublishedMessageTraceStatus status;
private final TopicName topicName;
private final String reason;
private final String message;
private final String cluster;
private final String extraRequestHeaders;
private final String storageDatacenter;
@JsonCreator
public PublishedMessageTrace(@JsonProperty("messageId") String messageId,
@JsonProperty("timestamp") Long timestamp,
@JsonProperty("topicName") String topicName,
@JsonProperty("status") PublishedMessageTraceStatus status,
@JsonProperty("reason") String reason,
@JsonProperty("message") String message,
@JsonProperty("cluster") String cluster,
@JsonProperty("extraRequestHeaders") String extraRequestHeaders,
@JsonProperty("storageDc") String storageDatacenter) {
this.messageId = messageId;
this.timestamp = timestamp;
this.status = status;
this.topicName = TopicName.fromQualifiedName(topicName);
this.reason = reason;
this.message = message;
this.cluster = cluster;
this.extraRequestHeaders = extraRequestHeaders;
this.storageDatacenter = storageDatacenter;
}
public String getMessageId() {
return messageId;
}
public Long getTimestamp() {
return timestamp;
}
public String getReason() {
return reason;
}
@JsonProperty("topicName")
public String getQualifiedTopicName() {
return TopicName.toQualifiedName(topicName);
}
@JsonIgnore
public TopicName getTopicName() {
return topicName;
}
public String getMessage() {
return message;
}
public PublishedMessageTraceStatus getStatus() {
return status;
}
public String getCluster() {
return cluster;
}
public String getExtraRequestHeaders() {
return extraRequestHeaders;
}
@JsonProperty("storageDc")
public String getStorageDatacenter() {
return storageDatacenter;
}
@Override
public int hashCode() {
return Objects.hash(messageId);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
final PublishedMessageTrace other = (PublishedMessageTrace) obj;
return Objects.equals(this.messageId, other.messageId);
}
}