WHAT'S NEW

 

Changes in XSD files that are part of the FIFA Data Standard caused the breaking changes in the SDK. The breaking changes are described in the detailed changelog section below.


The following changes have been made in the latest release:

  • Breaking changes
    1. DomesticTransferDeclaration class changes
    2. ProofOfPayment class changes
    3. ConditionalTransferFeeType, ReleaseBuyoutFeeType and FixedTransferFeeType class changes
  • Other changes and improvements
    1. Updated fifaconnect reference
    2. XML validation enhancements



REASON OF CHANGES

 

To fix several issues that we are observing on cross-platform requests related to serialization and deserialization of messages, and to model the data in a way it will be easier to change or extend the messages without breaking the SDK contract.



WHO IS AFFECTED

 

Every Member Association that exchanges messages with the Clearing House through the TMS system. In other words, every MA that uses TMSFacade. In particular: declareDomesticTransfer and provePayment.



DETAILED CHANGELOG: 

 

  1. DomesticTransferDeclaration class changes (breaking change)


DomesticTransferDeclaration no longer contains collections of ReleaseBuyoutFees of type FeeType and FixedTransferFees of type FeeType. Instead ReleaseBuyoutFees is of type ReleaseBuyoutFeeType and FixedTransferFee is of type FixedTransferFeeType.


Before the change

After the change

public class DomesticTransferDeclaration

{

    ...

    public List<FeeType> getFixedTransferFees() {

...

    }



    public List<ConditionalTransferFeeType> getConditionalTransferFees() {

...

    }



    public List<FeeType> getReleaseBuyoutFees() {

...

    }

    ...

}

public class DomesticTransferDeclaration

{

    ...

    public List<FixedTransferFeeType> getFixedTransferFees() {

...

    }



    public List<ConditionalTransferFeeType> getConditionalTransferFees() {

...

    }



    public List<ReleaseBuyoutFeeType> getReleaseBuyoutFees() {

...

    }

    ...

}



  1. ProofOfPayment class changes (breaking change)


ProofOfPayment no longer contains TransferFee. Instead it contains: PaymentDetails (of type PaymentDetailsType) and RecipientClub (of type ClubType).


Before the change

After the change

public class ProofOfPayment

{

    public FeeType getFee() {

        return fee;

    }



    public void setFee(FeeType value) {

        this.fee = value;

    }



    public long getTmsTransferId() {

        return tmsTransferId;

    }



    public void setTmsTransferId(long value) {

        this.tmsTransferId = value;

    }



    public PaymentType getPaymentType() {

        return paymentType;

    }



    public void setPaymentType(PaymentType value) {

        this.paymentType = value;

    }

}

public class ProofOfPayment

{

    public PaymentDetailsType getPaymentDetails() {

        return paymentDetails;

    }



    public void setPaymentDetails(PaymentDetailsType value)      {

        this.paymentDetails = value;

    }



    public ClubType getRecipientClub() {

        return recipientClub;

    }



    public void setRecipientClub(ClubType value) {

        this.recipientClub = value;

    }



    public long getTmsTransferId() {

        return tmsTransferId;

    }



    public void setTmsTransferId(long value) {

        this.tmsTransferId = value;

    }



    public PaymentType getPaymentType() {

        return paymentType;

    }



    public void setPaymentType(PaymentType value) {

        this.paymentType = value;

    }

}



  1. ConditionalTransferFeeType, ReleaseBuyoutFeeType and FixedTransferFeeType class changes (breaking change)

 

ConditionalTransferFeeType has been unified with ReleaseBuyoutFeeType and FixedTransferFeeType and it doesn't inherit from FeeType anymore. FeeType has been deleted. You should use one of the types ConditionalTransferFeeType, ReleaseBuyoutFeeType, or FixedTransferFeeType instead of it. The details of the transfer are now encapsulated in new type FeeDetailsType.

 

Before the change

After the change

    public class ConditionalTransferFeeType

extends FeeType

    {

    public String getCondition() {

        return condition;

    }



    public void setCondition(String value) {

        this.condition = value;

    }

    }

public class ConditionalTransferFeeType  

    {

    public String getCondition() {

        return condition;

    }



    public void setCondition(String value) {

        this.condition = value;

    }



    public FeeDetailsType getFeeDetails() {

        return feeDetails;

    }



    public void setFeeDetails(FeeDetailsType value) {

        this.feeDetails = value;

    }

...

    

    }



public class FixedTransferFeeType

    {

    public FeeDetailsType getFeeDetails() {

        return feeDetails;

    }



    public void setFeeDetails(FeeDetailsType value) {

        this.feeDetails = value;

    }

...

    

    }

public class ReleaseBuyoutFeeType  

    {

    public FeeDetailsType getFeeDetails() {

        return feeDetails;

    }



    public void setFeeDetails(FeeDetailsType value) {

        this.feeDetails = value;

    }

...

    

    }



  1. Updated fifaconnect reference (non-breaking change)

 

Updated fifaconnect reference from fifaconnect-data-3.3.5.4-RELEASE.jar to fifaconnect-data-3.3.5.7-RELEASE.jar 



  1. XML validation enhancements (non-breaking change)  

 

XML validation of methods that are exposed through TMSFacade is performed not only on the serialization but also on deserialization of the message. It will provide more insightful logs when receiving an invalid message via Service Bus.

 

XMLSerializer<Item> throws additional exceptions IOException and SAXException.

 

XmlDeserializationException in thrown in case of a deserialization error.


 

DOWNLOAD


To get the newest version go to: https://support.id.ma.services/support/solutions/articles/7000053736-java-sdk-6-x-x.