Search in sources :

Example 6 with RegisterRMRequest

use of io.seata.core.protocol.RegisterRMRequest in project seata by seata.

the class RegisterRMRequestConvertorTest method convert2Proto.

@Test
public void convert2Proto() {
    RegisterRMRequest registerRMRequest = new RegisterRMRequest();
    registerRMRequest.setResourceIds("res1");
    registerRMRequest.setVersion("123");
    registerRMRequest.setTransactionServiceGroup("group");
    registerRMRequest.setExtraData("extraData");
    registerRMRequest.setApplicationId("appId");
    RegisterRMRequestConvertor convertor = new RegisterRMRequestConvertor();
    RegisterRMRequestProto proto = convertor.convert2Proto(registerRMRequest);
    RegisterRMRequest real = convertor.convert2Model(proto);
    assertThat((real.getTypeCode())).isEqualTo(registerRMRequest.getTypeCode());
    assertThat((real.getResourceIds())).isEqualTo(registerRMRequest.getResourceIds());
    assertThat((real.getVersion())).isEqualTo(registerRMRequest.getVersion());
    assertThat((real.getTransactionServiceGroup())).isEqualTo(registerRMRequest.getTransactionServiceGroup());
    assertThat((real.getExtraData())).isEqualTo(registerRMRequest.getExtraData());
    assertThat((real.getApplicationId())).isEqualTo(registerRMRequest.getApplicationId());
}
Also used : RegisterRMRequest(io.seata.core.protocol.RegisterRMRequest) RegisterRMRequestProto(io.seata.serializer.protobuf.generated.RegisterRMRequestProto) Test(org.junit.jupiter.api.Test)

Example 7 with RegisterRMRequest

use of io.seata.core.protocol.RegisterRMRequest in project seata by seata.

the class RegisterRMRequestCodec method doEncode.

@Override
protected <T> void doEncode(T t, ByteBuf out) {
    super.doEncode(t, out);
    RegisterRMRequest registerRMRequest = (RegisterRMRequest) t;
    String resourceIds = registerRMRequest.getResourceIds();
    if (resourceIds != null) {
        byte[] bs = resourceIds.getBytes(UTF8);
        out.writeInt(bs.length);
        if (bs.length > 0) {
            out.writeBytes(bs);
        }
    } else {
        out.writeInt(0);
    }
}
Also used : RegisterRMRequest(io.seata.core.protocol.RegisterRMRequest)

Example 8 with RegisterRMRequest

use of io.seata.core.protocol.RegisterRMRequest in project seata by seata.

the class RegisterRMRequestSerializerTest method test_codec.

/**
 * Test codec.
 */
@Test
public void test_codec() {
    RegisterRMRequest registerRMRequest = new RegisterRMRequest();
    registerRMRequest.setResourceIds("a1,a2");
    registerRMRequest.setApplicationId("abc");
    registerRMRequest.setExtraData("abc124");
    registerRMRequest.setTransactionServiceGroup("def");
    registerRMRequest.setVersion("1");
    byte[] body = seataSerializer.serialize(registerRMRequest);
    RegisterRMRequest registerRMRequest2 = seataSerializer.deserialize(body);
    assertThat(registerRMRequest2.getResourceIds()).isEqualTo(registerRMRequest.getResourceIds());
    assertThat(registerRMRequest2.getExtraData()).isEqualTo(registerRMRequest.getExtraData());
    assertThat(registerRMRequest2.getApplicationId()).isEqualTo(registerRMRequest.getApplicationId());
    assertThat(registerRMRequest2.getVersion()).isEqualTo(registerRMRequest.getVersion());
    assertThat(registerRMRequest2.getTransactionServiceGroup()).isEqualTo(registerRMRequest.getTransactionServiceGroup());
}
Also used : RegisterRMRequest(io.seata.core.protocol.RegisterRMRequest) Test(org.junit.jupiter.api.Test)

Example 9 with RegisterRMRequest

use of io.seata.core.protocol.RegisterRMRequest in project seata by seata.

the class RegisterRMRequestCodec method decode.

@Override
public <T> void decode(T t, ByteBuffer in) {
    RegisterRMRequest registerRMRequest = (RegisterRMRequest) t;
    if (in.remaining() < 2) {
        return;
    }
    short len = in.getShort();
    if (len > 0) {
        if (in.remaining() < len) {
            return;
        }
        byte[] bs = new byte[len];
        in.get(bs);
        registerRMRequest.setVersion(new String(bs, UTF8));
    } else {
        return;
    }
    if (in.remaining() < 2) {
        return;
    }
    len = in.getShort();
    if (len > 0) {
        if (in.remaining() < len) {
            return;
        }
        byte[] bs = new byte[len];
        in.get(bs);
        registerRMRequest.setApplicationId(new String(bs, UTF8));
    }
    if (in.remaining() < 2) {
        return;
    }
    len = in.getShort();
    if (in.remaining() < len) {
        return;
    }
    byte[] bs = new byte[len];
    in.get(bs);
    registerRMRequest.setTransactionServiceGroup(new String(bs, UTF8));
    if (in.remaining() < 2) {
        return;
    }
    len = in.getShort();
    if (len > 0) {
        if (in.remaining() < len) {
            return;
        }
        bs = new byte[len];
        in.get(bs);
        registerRMRequest.setExtraData(new String(bs, UTF8));
    }
    int iLen;
    if (in.remaining() < 4) {
        return;
    }
    iLen = in.getInt();
    if (iLen > 0) {
        if (in.remaining() < iLen) {
            return;
        }
        bs = new byte[iLen];
        in.get(bs);
        registerRMRequest.setResourceIds(new String(bs, UTF8));
    }
}
Also used : RegisterRMRequest(io.seata.core.protocol.RegisterRMRequest)

Example 10 with RegisterRMRequest

use of io.seata.core.protocol.RegisterRMRequest in project seata by seata.

the class RegisterRMRequestConvertor method convert2Model.

@Override
public RegisterRMRequest convert2Model(RegisterRMRequestProto registerRMRequestProto) {
    RegisterRMRequest registerRMRequest = new RegisterRMRequest();
    AbstractIdentifyRequestProto abstractIdentifyRequest = registerRMRequestProto.getAbstractIdentifyRequest();
    registerRMRequest.setResourceIds(registerRMRequestProto.getResourceIds());
    registerRMRequest.setApplicationId(abstractIdentifyRequest.getApplicationId());
    registerRMRequest.setExtraData(abstractIdentifyRequest.getExtraData());
    registerRMRequest.setTransactionServiceGroup(abstractIdentifyRequest.getTransactionServiceGroup());
    registerRMRequest.setVersion(abstractIdentifyRequest.getVersion());
    return registerRMRequest;
}
Also used : RegisterRMRequest(io.seata.core.protocol.RegisterRMRequest) AbstractIdentifyRequestProto(io.seata.serializer.protobuf.generated.AbstractIdentifyRequestProto)

Aggregations

RegisterRMRequest (io.seata.core.protocol.RegisterRMRequest)12 FrameworkException (io.seata.common.exception.FrameworkException)4 RegisterRMResponse (io.seata.core.protocol.RegisterRMResponse)4 Channel (io.netty.channel.Channel)2 Test (org.junit.jupiter.api.Test)2 Constants (io.seata.common.Constants)1 CollectionUtils (io.seata.common.util.CollectionUtils)1 StringUtils (io.seata.common.util.StringUtils)1 IncompatibleVersionException (io.seata.core.protocol.IncompatibleVersionException)1 RegisterTMRequest (io.seata.core.protocol.RegisterTMRequest)1 Version (io.seata.core.protocol.Version)1 RpcContext (io.seata.core.rpc.RpcContext)1 AbstractIdentifyRequestProto (io.seata.serializer.protobuf.generated.AbstractIdentifyRequestProto)1 RegisterRMRequestProto (io.seata.serializer.protobuf.generated.RegisterRMRequestProto)1 Arrays (java.util.Arrays)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Set (java.util.Set)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1