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
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.