Skip to content

Serialization/Deserialization of generics broken with java 10 #140

@damnms

Description

@damnms

This code does not work. Can someone tell me why?
I use Java10 with modules



import com.owlike.genson.GenericType;
import com.owlike.genson.Genson;
import com.owlike.genson.GensonBuilder;
import org.junit.jupiter.api.Test;

public class GensonTest {

    @Test
    void canSerializeDeserialize() {
        Genson genson = new GensonBuilder()
                .useConstructorWithArguments(true)
                .useRuntimeType(true)
                .useClassMetadata(true)
                .create();

        String serialize = genson.serialize(new RegisterXMLRequest(new RegisterXML()));
//        RegisterXMLRequest registerXMLRequest = genson.deserialize(serialize, RegisterXMLRequest.class);
        Object request = genson.deserialize(serialize, new GenericType<Request>(){});
    }
}


interface Request<T> extends Message<T> {

}

interface Response<T> extends Message<T>{

}

interface Message<T> {
    T getPayload();
}

class RegisterXML  {
    private final String xmlData = "someXMLhere...";
}

class RegisterXMLRequest implements Request<RegisterXML> {
    private final RegisterXML registerXML;

    public RegisterXMLRequest(RegisterXML registerXML) {
        this.registerXML = registerXML;
    }

    @Override
    public RegisterXML getPayload() {
        return registerXML;
    }
}

I created a java 8 Test-Project with the source above and it worked as expected. In that case, genson does not work with java 10, very sad. For me a show stopper. So i need to find something like genson which works with java 10 modules.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions