eclipse-archived / ceylon-sdk

Standard platform modules belonging to the Ceylon SDK
http://www.ceylon-lang.org
Apache License 2.0
72 stars 60 forks source link

Java class implementing java.io.Serializable is beign recognized as non serializable #689

Open ghost opened 7 years ago

ghost commented 7 years ago

Java serializable classes should be marked by ceylon backend as serializable. I have tested it with com.github.tombentley.alabama "1.0.4" but the exception arrises in SerializationContext which is ceylon.json class.

Java model class:

import java.io.Serializable;
public class SerializableModel implements Serializable {
    private String abc;
    public SerializableModel() {}
    public SerializableModel(String abc) {
        this.abc=abc;
    }
    public String getAbc() {
        return abc;
    }
    public void setAbc(String abc) {
        this.abc = abc;
    }
}

Ceylon test:

import ceylon.test {
    test
}
import com.github.tombentley.alabama {
    serialize
}
test
shared void testSerialization(){
SerializableModel model=SerializableModel("sadas");
value string = serialize(model);
assert(!string.empty);
}

Stacktrace:

ceylon.language.serialization.SerializationException "instance of non-serializable class: com.test.potiopa.beercraft.config.server::SerializableModel"
    at ceylon.language.serialization.SerializationContextImpl.references(SerializationContext.ceylon:35)
    at com.github.tombentley.alabama.Serializer.obj$priv$(Serializer.ceylon:323)
    at com.github.tombentley.alabama.Serializer.val$priv$(Serializer.ceylon:378)
    at com.github.tombentley.alabama.Serializer.serialize(Serializer.ceylon:397)
    at com.github.tombentley.alabama.serialize_.serialize(Serializer.ceylon:49)
    at com.github.tombentley.alabama.serialize_.serialize(Serializer.ceylon:42)
    at ...