You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Doroszlai, Attila" <ad...@apache.org> on 2018/03/02 16:57:47 UTC

[VOTE] add FreeBuilder to Ambari

Hi all,

I'd like to start a vote on adding the FreeBuilder library to Ambari.

FreeBuilder is an annotation processor that generates (at compile
time) immutable value objects and their builders from interfaces or
abstract classes annotated with @FreeBuilder.  If you are interested
in the details, please check the website at
https://github.com/inferred/FreeBuilder#freebuilder  Their concise
readme has examples and explanations.

The reason for the vote thread is that a quick, one-time setup is
needed for IDEs for those working on ambari-server.

 * IDEA: find the directory "ambari-server > target >
generated-sources > annotations" in the Project pane, right-click it,
and select Mark Directory as > Generated Sources Root.
 * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
 * NetBeans: non-FreeBuilder-specific tutorial:
https://netbeans.org/kb/docs/java/annotations.html

If the vote passes, I will add setup instructions to the Ambari wiki.


Please vote:

[ ] +1, add FreeBuilder to Ambari
[ ] -1, keep FreeBuilder out of Ambari


Thanks for your time.

-Attila

Re: [VOTE] add FreeBuilder to Ambari

Posted by Attila Magyar <am...@hortonworks.com>.
I lean towards -1 a bit. It looks to me that this tool solves a not too difficult problem but solves it in a not too ideal way. And it’s hard to predict what will be the implications of using this in the long run. 
Builders can be generated by IntelliJ or written by hand quite easily. Although this will add some extra code, but the complexity of that code is very low and hand written builders are easier to customize.
If there was built in language support for this then I would use it, but I wouldn’t add a 3rd party dependency with all of its potential liabilities for solving an otherwise easy problem.

On 3/6/18, 3:52 PM, "Jonathan Hurley" <jh...@hortonworks.com> wrote:

    0 - I am indifferent as well, but I remain cautious about integrating 3rd party build assistants into our ecosystem. Unlike using a library, this is something that is required for our IDEs to be compatible with. A change to an IDE or even JDK version could potentially cause the JAR to no longer work and for those IDEs to be non-functional until its fixed. At the end of the day, it's a helper that boilerplates some stuff for us, making our lives a little easier (which is good), but the tight coupling might not be.
    
    I'd be curious to see what others feel about this approach.
    
    > On Mar 6, 2018, at 9:27 AM, Nate Cole <nc...@hortonworks.com> wrote:
    > 
    > 0  - I’m indifferent to this, but would like to understand the need.  Is this to gain convenience for equals(), hashCode(), toString() and the like or does Ambari face a real problem that this is addressing?
    > 
    > On 3/3/18, 7:17 AM, "Balazs Bence Sari" <bs...@hortonworks.com> wrote:
    > 
    >    +1
    > 
    > 
    > 
    > 
    >    On 3/2/18, 17:57, "Doroszlai, Attila" <ad...@apache.org> wrote:
    > 
    >> Hi all,
    >> 
    >> I'd like to start a vote on adding the FreeBuilder library to Ambari.
    >> 
    >> FreeBuilder is an annotation processor that generates (at compile
    >> time) immutable value objects and their builders from interfaces or
    >> abstract classes annotated with @FreeBuilder.  If you are interested
    >> in the details, please check the website at
    >> https://github.com/inferred/FreeBuilder#freebuilder  Their concise
    >> readme has examples and explanations.
    >> 
    >> The reason for the vote thread is that a quick, one-time setup is
    >> needed for IDEs for those working on ambari-server.
    >> 
    >> * IDEA: find the directory "ambari-server > target >
    >> generated-sources > annotations" in the Project pane, right-click it,
    >> and select Mark Directory as > Generated Sources Root.
    >> * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
    >> * NetBeans: non-FreeBuilder-specific tutorial:
    >> https://netbeans.org/kb/docs/java/annotations.html
    >> 
    >> If the vote passes, I will add setup instructions to the Ambari wiki.
    >> 
    >> 
    >> Please vote:
    >> 
    >> [ ] +1, add FreeBuilder to Ambari
    >> [ ] -1, keep FreeBuilder out of Ambari
    >> 
    >> 
    >> Thanks for your time.
    >> 
    >> -Attila
    >> 
    > 
    > 
    
    


Re: [VOTE] add FreeBuilder to Ambari

Posted by Jonathan Hurley <jh...@hortonworks.com>.
0 - I am indifferent as well, but I remain cautious about integrating 3rd party build assistants into our ecosystem. Unlike using a library, this is something that is required for our IDEs to be compatible with. A change to an IDE or even JDK version could potentially cause the JAR to no longer work and for those IDEs to be non-functional until its fixed. At the end of the day, it's a helper that boilerplates some stuff for us, making our lives a little easier (which is good), but the tight coupling might not be.

I'd be curious to see what others feel about this approach.

> On Mar 6, 2018, at 9:27 AM, Nate Cole <nc...@hortonworks.com> wrote:
> 
> 0  - I’m indifferent to this, but would like to understand the need.  Is this to gain convenience for equals(), hashCode(), toString() and the like or does Ambari face a real problem that this is addressing?
> 
> On 3/3/18, 7:17 AM, "Balazs Bence Sari" <bs...@hortonworks.com> wrote:
> 
>    +1
> 
> 
> 
> 
>    On 3/2/18, 17:57, "Doroszlai, Attila" <ad...@apache.org> wrote:
> 
>> Hi all,
>> 
>> I'd like to start a vote on adding the FreeBuilder library to Ambari.
>> 
>> FreeBuilder is an annotation processor that generates (at compile
>> time) immutable value objects and their builders from interfaces or
>> abstract classes annotated with @FreeBuilder.  If you are interested
>> in the details, please check the website at
>> https://github.com/inferred/FreeBuilder#freebuilder  Their concise
>> readme has examples and explanations.
>> 
>> The reason for the vote thread is that a quick, one-time setup is
>> needed for IDEs for those working on ambari-server.
>> 
>> * IDEA: find the directory "ambari-server > target >
>> generated-sources > annotations" in the Project pane, right-click it,
>> and select Mark Directory as > Generated Sources Root.
>> * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
>> * NetBeans: non-FreeBuilder-specific tutorial:
>> https://netbeans.org/kb/docs/java/annotations.html
>> 
>> If the vote passes, I will add setup instructions to the Ambari wiki.
>> 
>> 
>> Please vote:
>> 
>> [ ] +1, add FreeBuilder to Ambari
>> [ ] -1, keep FreeBuilder out of Ambari
>> 
>> 
>> Thanks for your time.
>> 
>> -Attila
>> 
> 
> 


Re: [VOTE] add FreeBuilder to Ambari

Posted by Nate Cole <nc...@hortonworks.com>.
0  - I’m indifferent to this, but would like to understand the need.  Is this to gain convenience for equals(), hashCode(), toString() and the like or does Ambari face a real problem that this is addressing?

On 3/3/18, 7:17 AM, "Balazs Bence Sari" <bs...@hortonworks.com> wrote:

    +1
    
    
    
    
    On 3/2/18, 17:57, "Doroszlai, Attila" <ad...@apache.org> wrote:
    
    >Hi all,
    >
    >I'd like to start a vote on adding the FreeBuilder library to Ambari.
    >
    >FreeBuilder is an annotation processor that generates (at compile
    >time) immutable value objects and their builders from interfaces or
    >abstract classes annotated with @FreeBuilder.  If you are interested
    >in the details, please check the website at
    >https://github.com/inferred/FreeBuilder#freebuilder  Their concise
    >readme has examples and explanations.
    >
    >The reason for the vote thread is that a quick, one-time setup is
    >needed for IDEs for those working on ambari-server.
    >
    > * IDEA: find the directory "ambari-server > target >
    >generated-sources > annotations" in the Project pane, right-click it,
    >and select Mark Directory as > Generated Sources Root.
    > * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
    > * NetBeans: non-FreeBuilder-specific tutorial:
    >https://netbeans.org/kb/docs/java/annotations.html
    >
    >If the vote passes, I will add setup instructions to the Ambari wiki.
    >
    >
    >Please vote:
    >
    >[ ] +1, add FreeBuilder to Ambari
    >[ ] -1, keep FreeBuilder out of Ambari
    >
    >
    >Thanks for your time.
    >
    >-Attila
    >
    


Re: [VOTE] add FreeBuilder to Ambari

Posted by Balazs Bence Sari <bs...@hortonworks.com>.
+1




On 3/2/18, 17:57, "Doroszlai, Attila" <ad...@apache.org> wrote:

>Hi all,
>
>I'd like to start a vote on adding the FreeBuilder library to Ambari.
>
>FreeBuilder is an annotation processor that generates (at compile
>time) immutable value objects and their builders from interfaces or
>abstract classes annotated with @FreeBuilder.  If you are interested
>in the details, please check the website at
>https://github.com/inferred/FreeBuilder#freebuilder  Their concise
>readme has examples and explanations.
>
>The reason for the vote thread is that a quick, one-time setup is
>needed for IDEs for those working on ambari-server.
>
> * IDEA: find the directory "ambari-server > target >
>generated-sources > annotations" in the Project pane, right-click it,
>and select Mark Directory as > Generated Sources Root.
> * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
> * NetBeans: non-FreeBuilder-specific tutorial:
>https://netbeans.org/kb/docs/java/annotations.html
>
>If the vote passes, I will add setup instructions to the Ambari wiki.
>
>
>Please vote:
>
>[ ] +1, add FreeBuilder to Ambari
>[ ] -1, keep FreeBuilder out of Ambari
>
>
>Thanks for your time.
>
>-Attila
>

Re: [VOTE] add FreeBuilder to Ambari

Posted by Jonathan Hurley <jh...@hortonworks.com>.
I agree - you can move mine to a -1 ... I'm having plenty of problems with FreeBuilder in Eclipse.

> On Mar 20, 2018, at 8:20 PM, Doroszlai, Attila <ad...@apache.org> wrote:
> 
> Let's close this vote:
> 
> +1: Balazs Bence Sari, Attila Doroszlai
> 0: Nate Cole, Jonathan Hurley
> -1: Attila Magyar, Robert Levas
> 
> Since most developers didn't express any opinion, but would be
> affected by the change, I take your silence as a "no".  I'll go ahead
> and remove the library from the feature branch, and will not add it on
> trunk.
> 
> -Attila
> 
> On Tue, Mar 6, 2018 at 5:15 PM, Robert Levas <rl...@hortonworks.com> wrote:
>> -1.
>> 
>> I hate to squash other engineers ideas, but it seems that the advantages this package brings to the table does not outweigh the disadvantages.  I agree with others that posts to this thread about requiring an IDE to rely on a third-party tool to generate code.  If something breaks, we are dead in the water for a while - whether we are waiting for someone to fix the issue in the tool or whether we need to rewrite code to rip it out.
>> 
>> Also, what about debugging?  If there is a bug somewhere and it happens to be in or near the generated code (or the meta-code used to generate the actual code), how easy or hard would it be to access, read, or walk-through that code. Or what if the code generator had a bug generating code.  We will either need to wait for a fix in the generator or figure out a work-around.
>> 
>> It just seems to me that there is more work around using this tool then it is to just manually create the classes. On that note, how many classes are really that simple that we need such a tool?
>> 
>> Rob
>> 
>> 
>> 
>> On 3/2/18, 11:58 AM, "Doroszlai, Attila" <ad...@apache.org> wrote:
>> 
>>    Hi all,
>> 
>>    I'd like to start a vote on adding the FreeBuilder library to Ambari.
>> 
>>    FreeBuilder is an annotation processor that generates (at compile
>>    time) immutable value objects and their builders from interfaces or
>>    abstract classes annotated with @FreeBuilder.  If you are interested
>>    in the details, please check the website at
>>    https://github.com/inferred/FreeBuilder#freebuilder  Their concise
>>    readme has examples and explanations.
>> 
>>    The reason for the vote thread is that a quick, one-time setup is
>>    needed for IDEs for those working on ambari-server.
>> 
>>     * IDEA: find the directory "ambari-server > target >
>>    generated-sources > annotations" in the Project pane, right-click it,
>>    and select Mark Directory as > Generated Sources Root.
>>     * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
>>     * NetBeans: non-FreeBuilder-specific tutorial:
>>    https://netbeans.org/kb/docs/java/annotations.html
>> 
>>    If the vote passes, I will add setup instructions to the Ambari wiki.
>> 
>> 
>>    Please vote:
>> 
>>    [ ] +1, add FreeBuilder to Ambari
>>    [ ] -1, keep FreeBuilder out of Ambari
>> 
>> 
>>    Thanks for your time.
>> 
>>    -Attila
>> 
>> 
>> 
> 


Re: [VOTE] add FreeBuilder to Ambari

Posted by "Doroszlai, Attila" <ad...@apache.org>.
Let's close this vote:

+1: Balazs Bence Sari, Attila Doroszlai
0: Nate Cole, Jonathan Hurley
-1: Attila Magyar, Robert Levas

Since most developers didn't express any opinion, but would be
affected by the change, I take your silence as a "no".  I'll go ahead
and remove the library from the feature branch, and will not add it on
trunk.

-Attila

On Tue, Mar 6, 2018 at 5:15 PM, Robert Levas <rl...@hortonworks.com> wrote:
> -1.
>
> I hate to squash other engineers ideas, but it seems that the advantages this package brings to the table does not outweigh the disadvantages.  I agree with others that posts to this thread about requiring an IDE to rely on a third-party tool to generate code.  If something breaks, we are dead in the water for a while - whether we are waiting for someone to fix the issue in the tool or whether we need to rewrite code to rip it out.
>
> Also, what about debugging?  If there is a bug somewhere and it happens to be in or near the generated code (or the meta-code used to generate the actual code), how easy or hard would it be to access, read, or walk-through that code. Or what if the code generator had a bug generating code.  We will either need to wait for a fix in the generator or figure out a work-around.
>
> It just seems to me that there is more work around using this tool then it is to just manually create the classes. On that note, how many classes are really that simple that we need such a tool?
>
> Rob
>
>
>
> On 3/2/18, 11:58 AM, "Doroszlai, Attila" <ad...@apache.org> wrote:
>
>     Hi all,
>
>     I'd like to start a vote on adding the FreeBuilder library to Ambari.
>
>     FreeBuilder is an annotation processor that generates (at compile
>     time) immutable value objects and their builders from interfaces or
>     abstract classes annotated with @FreeBuilder.  If you are interested
>     in the details, please check the website at
>     https://github.com/inferred/FreeBuilder#freebuilder  Their concise
>     readme has examples and explanations.
>
>     The reason for the vote thread is that a quick, one-time setup is
>     needed for IDEs for those working on ambari-server.
>
>      * IDEA: find the directory "ambari-server > target >
>     generated-sources > annotations" in the Project pane, right-click it,
>     and select Mark Directory as > Generated Sources Root.
>      * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
>      * NetBeans: non-FreeBuilder-specific tutorial:
>     https://netbeans.org/kb/docs/java/annotations.html
>
>     If the vote passes, I will add setup instructions to the Ambari wiki.
>
>
>     Please vote:
>
>     [ ] +1, add FreeBuilder to Ambari
>     [ ] -1, keep FreeBuilder out of Ambari
>
>
>     Thanks for your time.
>
>     -Attila
>
>
>

Re: [VOTE] add FreeBuilder to Ambari

Posted by Robert Levas <rl...@hortonworks.com>.
-1.

I hate to squash other engineers ideas, but it seems that the advantages this package brings to the table does not outweigh the disadvantages.  I agree with others that posts to this thread about requiring an IDE to rely on a third-party tool to generate code.  If something breaks, we are dead in the water for a while - whether we are waiting for someone to fix the issue in the tool or whether we need to rewrite code to rip it out.  

Also, what about debugging?  If there is a bug somewhere and it happens to be in or near the generated code (or the meta-code used to generate the actual code), how easy or hard would it be to access, read, or walk-through that code. Or what if the code generator had a bug generating code.  We will either need to wait for a fix in the generator or figure out a work-around.  

It just seems to me that there is more work around using this tool then it is to just manually create the classes. On that note, how many classes are really that simple that we need such a tool? 

Rob



On 3/2/18, 11:58 AM, "Doroszlai, Attila" <ad...@apache.org> wrote:

    Hi all,
    
    I'd like to start a vote on adding the FreeBuilder library to Ambari.
    
    FreeBuilder is an annotation processor that generates (at compile
    time) immutable value objects and their builders from interfaces or
    abstract classes annotated with @FreeBuilder.  If you are interested
    in the details, please check the website at
    https://github.com/inferred/FreeBuilder#freebuilder  Their concise
    readme has examples and explanations.
    
    The reason for the vote thread is that a quick, one-time setup is
    needed for IDEs for those working on ambari-server.
    
     * IDEA: find the directory "ambari-server > target >
    generated-sources > annotations" in the Project pane, right-click it,
    and select Mark Directory as > Generated Sources Root.
     * Eclipse: instructions are at https://github.com/inferred/FreeBuilder#eclipse
     * NetBeans: non-FreeBuilder-specific tutorial:
    https://netbeans.org/kb/docs/java/annotations.html
    
    If the vote passes, I will add setup instructions to the Ambari wiki.
    
    
    Please vote:
    
    [ ] +1, add FreeBuilder to Ambari
    [ ] -1, keep FreeBuilder out of Ambari
    
    
    Thanks for your time.
    
    -Attila