[
https://issues.apache.org/jira/browse/THRIFT-746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mathias Herberts updated THRIFT-746:
------------------------------------
Attachment: TServiceClient-r930531.patch
Patch which introduces two interfaces, TServiceClient and
TServiceClientFactory, and modifies the java generator so it makes Client
implement TServiceClient and generates a Factory inner class (which implements
TServiceClientFactory<Client>) for each Client 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-r930531.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.