Move partition ID up from ResourceModifiedMessage to BaseResourceModifiedMessage (#4313)
* Move partition ID up from ResourceModifiedMessage to BaseResourceModifiedMessage. * Add a changelog. Add a new constructor that contains partition ID to ResourceOperationMessage. Add partition ID to the toString() for BaseResourceModifiedMessage. Tweak constructors of all classes to make sure ResourceModifiedMessage always sets default partition IDs, but BaseResourceModifiedMessage and ResourceOperationMessage do not. * Reverse an accidental whitespace change. * Small code review fixes including removing comments and updating changelog description. * Restore whitespace to what it was on master. * Fix YAML error.
This commit is contained in:
parent
08ca687c72
commit
869d9996b1
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
type: fix
|
||||||
|
issue: 4315
|
||||||
|
title: "Made the partitionId field of ResourceModifiedMessage also available to ResourceOperationMessage. This can be used to manually select a partition for messages of this type"
|
|
@ -22,6 +22,7 @@ package ca.uhn.fhir.rest.server.messaging;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
|
import ca.uhn.fhir.interceptor.model.RequestPartitionId;
|
||||||
import ca.uhn.fhir.model.api.IModelJson;
|
import ca.uhn.fhir.model.api.IModelJson;
|
||||||
import ca.uhn.fhir.parser.IParser;
|
import ca.uhn.fhir.parser.IParser;
|
||||||
import ca.uhn.fhir.rest.api.EncodingEnum;
|
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||||
|
@ -45,6 +46,8 @@ public abstract class BaseResourceModifiedMessage extends BaseResourceMessage im
|
||||||
protected String myPayload;
|
protected String myPayload;
|
||||||
@JsonProperty("payloadId")
|
@JsonProperty("payloadId")
|
||||||
protected String myPayloadId;
|
protected String myPayloadId;
|
||||||
|
@JsonProperty(value = "partitionId")
|
||||||
|
protected RequestPartitionId myPartitionId;
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
protected transient IBaseResource myPayloadDecoded;
|
protected transient IBaseResource myPayloadDecoded;
|
||||||
|
|
||||||
|
@ -67,6 +70,13 @@ public abstract class BaseResourceModifiedMessage extends BaseResourceMessage im
|
||||||
setTransactionId(theRequest.getTransactionGuid());
|
setTransactionId(theRequest.getTransactionGuid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public BaseResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theNewResource, OperationTypeEnum theOperationType, RequestDetails theRequest, RequestPartitionId theRequestPartitionId) {
|
||||||
|
this(theFhirContext, theNewResource, theOperationType);
|
||||||
|
if (theRequest != null) {
|
||||||
|
setTransactionId(theRequest.getTransactionGuid());
|
||||||
|
}
|
||||||
|
myPartitionId = theRequestPartitionId;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getPayloadId() {
|
public String getPayloadId() {
|
||||||
|
@ -173,10 +183,19 @@ public abstract class BaseResourceModifiedMessage extends BaseResourceMessage im
|
||||||
setPayloadId(payloadIdType);
|
setPayloadId(payloadIdType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public RequestPartitionId getPartitionId() {
|
||||||
|
return myPartitionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPartitionId(RequestPartitionId thePartitionId) {
|
||||||
|
myPartitionId = thePartitionId;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this)
|
return new ToStringBuilder(this)
|
||||||
.append("operationType", myOperationType)
|
.append("operationType", myOperationType)
|
||||||
|
.append("partitionId", myPartitionId)
|
||||||
.append("payloadId", myPayloadId)
|
.append("payloadId", myPayloadId)
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,9 @@ package ca.uhn.fhir.rest.server.messaging;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.interceptor.model.RequestPartitionId;
|
||||||
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
||||||
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
|
|
||||||
public class ResourceOperationMessage extends BaseResourceModifiedMessage {
|
public class ResourceOperationMessage extends BaseResourceModifiedMessage {
|
||||||
|
@ -37,6 +39,10 @@ public class ResourceOperationMessage extends BaseResourceModifiedMessage {
|
||||||
super(theFhirContext, theNewResource, theOperationType, theRequest);
|
super(theFhirContext, theNewResource, theOperationType, theRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResourceOperationMessage(FhirContext theFhirContext, IBaseResource theNewResource, OperationTypeEnum theOperationType, RequestDetails theRequest, RequestPartitionId theRequestPartitionId) {
|
||||||
|
super(theFhirContext, theNewResource, theOperationType, theRequest, theRequestPartitionId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If you are using a non-fhir-resource payload, you may set the payload directly here instead of using the constructor.
|
* If you are using a non-fhir-resource payload, you may set the payload directly here instead of using the constructor.
|
||||||
* @param thePayload the payload of the message.
|
* @param thePayload the payload of the message.
|
||||||
|
@ -44,4 +50,13 @@ public class ResourceOperationMessage extends BaseResourceModifiedMessage {
|
||||||
public void setPayload(String thePayload) {
|
public void setPayload(String thePayload) {
|
||||||
this.myPayload = thePayload;
|
this.myPayload = thePayload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return new ToStringBuilder(this)
|
||||||
|
.append("operationType", myOperationType)
|
||||||
|
.append("payloadId", myPayloadId)
|
||||||
|
.append("partitionId", myPartitionId)
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,12 +38,9 @@ public class ResourceModifiedMessage extends BaseResourceModifiedMessage {
|
||||||
* This will only be set if the resource is being triggered for a specific
|
* This will only be set if the resource is being triggered for a specific
|
||||||
* subscription
|
* subscription
|
||||||
*/
|
*/
|
||||||
@JsonProperty(value = "subscriptionId", required = false)
|
@JsonProperty(value = "subscriptionId")
|
||||||
private String mySubscriptionId;
|
private String mySubscriptionId;
|
||||||
|
|
||||||
@JsonProperty(value = "partitionId", required = false)
|
|
||||||
private RequestPartitionId myPartitionId;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
@ -54,17 +51,16 @@ public class ResourceModifiedMessage extends BaseResourceModifiedMessage {
|
||||||
|
|
||||||
public ResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theResource, OperationTypeEnum theOperationType) {
|
public ResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theResource, OperationTypeEnum theOperationType) {
|
||||||
super(theFhirContext, theResource, theOperationType);
|
super(theFhirContext, theResource, theOperationType);
|
||||||
myPartitionId = RequestPartitionId.defaultPartition();
|
setPartitionId(RequestPartitionId.defaultPartition());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theNewResource, OperationTypeEnum theOperationType, RequestDetails theRequest) {
|
public ResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theNewResource, OperationTypeEnum theOperationType, RequestDetails theRequest) {
|
||||||
super(theFhirContext, theNewResource, theOperationType, theRequest);
|
super(theFhirContext, theNewResource, theOperationType, theRequest);
|
||||||
myPartitionId = RequestPartitionId.defaultPartition();
|
setPartitionId(RequestPartitionId.defaultPartition());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theNewResource, OperationTypeEnum theOperationType, RequestDetails theRequest, RequestPartitionId theRequestPartitionId) {
|
public ResourceModifiedMessage(FhirContext theFhirContext, IBaseResource theNewResource, OperationTypeEnum theOperationType, RequestDetails theRequest, RequestPartitionId theRequestPartitionId) {
|
||||||
super(theFhirContext, theNewResource, theOperationType, theRequest);
|
super(theFhirContext, theNewResource, theOperationType, theRequest, theRequestPartitionId);
|
||||||
myPartitionId = theRequestPartitionId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,14 +72,6 @@ public class ResourceModifiedMessage extends BaseResourceModifiedMessage {
|
||||||
mySubscriptionId = theSubscriptionId;
|
mySubscriptionId = theSubscriptionId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestPartitionId getPartitionId() {
|
|
||||||
return myPartitionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPartitionId(RequestPartitionId thePartitionId) {
|
|
||||||
myPartitionId = thePartitionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|
Loading…
Reference in New Issue