Hi Fredrik,

Thank you for your response. Please don't think that I was complaining. It was more the case that I had been building up this impression that features were drifting and this particular JIRA incident prompted me to ask whether that was really the case.

I don't know what policy I would set if I was in charge. Do you make all implementations adhere to the lowest common denominator that all languages support, or do you let languages that can do more do it? The latter seems more productive by far.

I guess that I would say (looking ahead to Eric Anderson's reply to your reply) that if you submit a patch that implements something like cpp_verbatim in the idl, it should also implement java_verbatim, python_verbatim, etc. because that comes essentially for free and you don't need to know anything about the different languages. But if you submit a patch that lets you do something cool in Erlang I wouldn't hold it hostage to the c++ version.

But I haven't contributed any code, so I can't expect to get a vote. :-)

- Rush

On Dec 3, 2008, at 5:41 AM, Fredrik Hedberg wrote:

Hi,

Well, although I don't really think this is a major problem (especially in this case, as this addresses a feature that is already provided by C#'s native support for partial classes), I see your point.

However, I'm not sure what the best solution is - some developers are only fluent in a few languages, and others don't really have the time, nor the incentive (guilty as charged), to implement a feature across all the supported languages - the addition of a new meta- component in JIRA where new features are discussed in a language agnostic way perhaps?

As a side note; the patch in question is probably easily adaptable for any other language generator in a matter of minutes, if it makes sense for your language of choice.

- Fredrik

On Dec 3, 2008, at 1:52 AM, Rush Manbert wrote:

Just a small question.

This change is one of a number of changes that seem to be aimed at only one language version of the Thrift-generated classes.

Have I gotten the wrong impression, or is the feature set starting to diverge on a per-implementation-language basis? For instance, someone wanted to derive Thrift classes from base classes in either Java or C#, someone else says that deep copies are needed, but they only seem to be concerned with Java. Now this change wants to be able to extend Thrift classes in Java, maybe because that capability has already been added for C#.

Am I wrong about this?

- Rush

On Dec 2, 2008, at 2:52 PM, Fredrik Hedberg (JIRA) wrote:


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

Fredrik Hedberg updated THRIFT-219:
-----------------------------------

 Description:
Since Java lack the equivalent of C#'s fancy 'partial' class modifier, extending the logic of a Thrift-generated class means you have to do it quite literally. This patch allows the developer to write code templates that are injected into the generated classes by the compiler, allowing him to extend the generated classes in any way he wants.

The code templates are presumed to be found in something like / tmpl-java/com/example/Document.tmpl, and are injected into structs and services (.Iface and .Client).

was:
Since Java lack the equivalent of C#'s fancy 'partial' class modifier, extending the logic of a Thrift-generated class means you have to do it quite literally. This patch allows the developer to write code templates that are injected into the generated classes by the compiler, allowing him to extend the generated classes in any way he wants.

The code templates are presumed to be found in /tmpl-java/ $packagename/$typename.tmpl, and are injected into structs and services (.Iface and .Client).


Inject user-created templates into generated code
-------------------------------------------------

             Key: THRIFT-219
             URL: https://issues.apache.org/jira/browse/THRIFT-219
         Project: Thrift
      Issue Type: New Feature
      Components: Compiler (Java)
        Reporter: Fredrik Hedberg
        Priority: Minor
     Attachments: thrift-templates-1.diff

<snip>

Reply via email to