[ https://issues.apache.org/jira/browse/THRIFT-746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12852475#action_12852475 ]
Mathias Herberts commented on THRIFT-746: ----------------------------------------- I do, but generated Client classes do not inherit from a common base class. > Generated services Iface/Client inner classes do not derive from base classes > ----------------------------------------------------------------------------- > > Key: THRIFT-746 > URL: https://issues.apache.org/jira/browse/THRIFT-746 > Project: Thrift > Issue Type: Improvement > Components: Compiler (Java) > Affects Versions: 0.2 > Environment: All > Reporter: Mathias Herberts > Attachments: TService.patch, TServiceClient.patch, > TServiceClient.patch-2 > > > When defining a service in Thrift, the generated code looks like > public class Service { > public interface Iface { > ... > } > public static class Client { > ... > } > } > This makes it quite hard to create generic classes which accept any kind of > Client or Iface as a parameter. One such use case is the pooling of Client > objects. > One way to circumvent this is to create a top level thrift service and have > all other services extend it, but then there will be no coherency across the > thrift community. > > What about introducing a TService class: > public class TService { > public interface Iface {} > public static class Client { > public Client(TProtocol prot) { this(prot,prot); } > public Client(TProtocol iprot, TProtocol oprot) {} > } > } > and have generated services inherit from it: > public class Service { > public interface Iface extends TService.Iface { > } > public static class Client extends TService.Client { > } > } > As a bonus I'll contribute the pooling mechanism I've created for Bibale > (based on GenericObjectPool). -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.