[ https://issues.apache.org/jira/browse/AVRO-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16806215#comment-16806215 ]
Hudson commented on AVRO-2357: ------------------------------ FAILURE: Integrated in Jenkins build AvroJava #632 (See [https://builds.apache.org/job/AvroJava/632/]) AVRO-2357: Allow generic types in reflect protos (#490) (fokko: [https://github.com/apache/avro/commit/de48a0a8a0343b61fdb255011fde38c619761046]) * (edit) lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectionUtil.java * (edit) lang/java/avro/src/test/java/org/apache/avro/reflect/TestReflectData.java * (edit) lang/java/avro/src/main/java/org/apache/avro/reflect/ReflectData.java > (ReflectData) Support for generic types in protocol definitions > --------------------------------------------------------------- > > Key: AVRO-2357 > URL: https://issues.apache.org/jira/browse/AVRO-2357 > Project: Apache Avro > Issue Type: Improvement > Components: java > Reporter: Ivan Greene > Priority: Minor > Fix For: 1.9.0 > > > For a Java interface extending another interface with type parameters, we may > resolve actual type parameters and build the protocol definition based upon > those. > For example, let's say we have a generic protocol defined by a Java interface: > {code:java} > public interface CrudProto<T, I> { > void persist(T record); > T fetchById(I id); > }{code} > It would be natural to define a set of interfaces that extend this, such as: > {code:java} > public interface FooBarRecordProto extends CrudProto<FooBarRecord, String> {} > public interface OtherRecordProto extends CrudProto<OtherRecord, Long> {} > {code} > Calling ReflectData.get().getProtocol(FooBarRecordProto.class) should be able > to resolve that this protocol deals in FooBarRecords and Strings, and build a > protocol accordingly. > Currently, this call will produce an exception stating that a schema for 'T' > cannot be resolved. -- This message was sent by Atlassian JIRA (v7.6.3#76005)