[ 
https://issues.apache.org/jira/browse/THRIFT-746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bryan Duxbury closed THRIFT-746.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 0.3
         Assignee: Mathias Herberts

I just committed your most recent patch with the minor addition of some javadoc 
on the interfaces. Thanks for the contribution!

> 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
>            Assignee: Mathias Herberts
>             Fix For: 0.3
>
>         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.

Reply via email to