Re: About introduce Lombok to service comb

2018-08-27 Thread Willem Jiang
OK,  I think we already got enough feedback here.
We won't use the Lombok in ServiceComb-Java-Chassis and for the
ServiceComb-Saga we can revisit it later.


Willem Jiang

Twitter: willemjiang
Weibo: 姜宁willem


On Mon, Aug 27, 2018 at 2:51 PM yhs0092  wrote:

> Agree to Yang Bo, too.
> ServiceComb is not a common business project, it's a framework. So there
> are not so many Java bean classes defined in it, which means we will not
> take so much advantage of Lombok.
> While using Lombok requires plug-in installed in IDE, the threshold of
> developing and contributing to ServiceComb-Java-Chassis seems to be raised
> more or less.
>
>
> Yours sincerely
>
>
> YaoHaishi
> yhs0...@163.com
> On 8/27/2018 14:16,wjm wjm wrote:
> agree to Yang BO.
>
> 2018-08-27 11:14 GMT+08:00 Yang Bo :
>
> I don't think using lombok in Java-Chassis is a good idea.
> It provides little to no value but introduces a lot of headaches for all
> developers.
> It's much clearer for the code to be explicit other than embedded in
> annotations even if that means we need to write a bit more code. And it
> pretty easy to use IDE to generate those kind of code anyway.
>
>
> On Mon, Aug 27, 2018 at 8:31 AM Willem Jiang 
> wrote:
>
> Lombok generate the codes during the compile time, we don't need use it
> in
> the runtime.
> The only shortcoming of Lombok is we need to install the plugin in the
> IDE
> to make sure the get|set codes are generated rightly, otherwise he will
> get
> lot of compile complains. That is why I suggest we need to update the
> development environment document if we decide to use it.
>
> Willem Jiang
>
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
> On Sat, Aug 25, 2018 at 6:55 PM 赵俊  wrote:
>
> Hi,bismy
>
> in factor we can import Lombok and make the scope is provided.
> Then users dependency service Lombok will not see the Lombok jar.
> We(sharding-sphere) use Lombok like this.
>
> 
> org.projectlombok
> lombok
> 1.16.4
> provided
> 
>
>
>
> On 25 Aug 2018, at 9:27 AM, bismy  wrote:
>
> @赵俊
>
>
> Glad to hear that. I am not meaning all projects not using lombok.
> Just
> providing a framework, we have different concerns. In short:
>
>
> 1. Use as less 3rdparties dependencies as possible.
> 2. Make users use different 3rdparties easier.
>
>
> So you can see from java-chassis, we do not depend some very good
> frameworks like spring, spring boot components and use old fashioned
> SPI
> mechanism. But users can use these framework easily in their projects.
>
>
> Although java-chassis do not use lombok, if you find something we did
> make integrate lombok not possible, please feel free to point out.
>
>
> -- 原始邮件 --
> 发件人: "赵俊";
> 发送时间: 2018年8月23日(星期四) 上午10:39
> 收件人: "dev@servicecomb.apache.org";
>
> 主题: Re: About introduce Lombok to service comb
>
>
>
> Hi
>
> we often use following lombok annotations, it makes our code clean
> especially existing too many fields.
> Lombok seems to be very stable for us so far.
>
> 1.@Getter, @Setter
> 2. @RequiredAgsConstructor
> 3. @NoArgsConstructor(access = AccessLevel.PRIVATE)
> 4. @Slf4j
> 5. @EqualsAndHashCode
> 6. @ToString
>
>
> On 23 Aug 2018, at 10:03 AM, bismy  wrote:
>
> In my opinion, I'd prefer not include Lombok in our project. Here my
> reasons:
> 1. It's a convenient tool to write getters and setters, users can
> include it very easily to their projects.
> 2. For framework, I'd prefer our class do not use Lombok
> annotations.
> Because write getters/setters is very potable to very runtime,and quite
> easy with an IDE.  We can avoid many troubles related to 3rdparty
> dependencies, licenses and maybe conflicts.
> 3. Some of our customers using Lombok before, there are some know
> issues regarding to java bean specification or work together with Json
> libraries. (Sorry I do not have the details)
>
>
> -- 原始邮件 --
> 发件人: "willem.jiang";
> 发送时间: 2018年8月22日(星期三) 下午3:40
> 收件人: "dev";
>
> 主题: Re: About introduce Lombok to service comb
>
>
>
> We could specify it in the environment setup document.
> @Cherry Could you share the experience of Lombok usage in sharding
> sphere?
>
>
> Willem Jiang
>
> Twitter: willemjiang
> Weibo: 姜宁willem
>
> On Wed, Aug 22, 2018 at 2:13 PM, wjm wjm  wrote:
>
> everyone clone our code, if need to load by IDE, must install the
> IDE
> plugin, i don't think it's a good idear.
>
> 2018-08-22 12:33 GMT+08:00 Zheng Feng :
>
> It looks good to me and the lombok supports the JDK 9 ?
>
> 2018-08-22 12:21 GMT+08:00 赵俊 :
>
> Hi, Willem
>
> Lombok would not package into our service-comb jar, so there is
> no
> license
> issue.
> We can set the maven scope is “provide”, it just enhance the java
> code
> byte in compile step.
>
>
>
> On 21 Aug 2018, at 10:57 PM, wjm wjm  wrote:
>
> in fact, getter / setter and so on can be generated by
> IDE(IntelliJ
> /
> Eclipse) simply
>
> 2018-08-21 22:34 GMT+08:00 Willem Jiang  :
>
> Hi Cherry,
>
> Thanks for proposal, it can save us lot of time when we 

Re: About introduce Lombok to service comb

2018-08-27 Thread yhs0092
Agree to Yang Bo, too.
ServiceComb is not a common business project, it's a framework. So there are 
not so many Java bean classes defined in it, which means we will not take so 
much advantage of Lombok.
While using Lombok requires plug-in installed in IDE, the threshold of 
developing and contributing to ServiceComb-Java-Chassis seems to be raised more 
or less.


Yours sincerely


YaoHaishi
yhs0...@163.com
On 8/27/2018 14:16,wjm wjm wrote:
agree to Yang BO.

2018-08-27 11:14 GMT+08:00 Yang Bo :

I don't think using lombok in Java-Chassis is a good idea.
It provides little to no value but introduces a lot of headaches for all
developers.
It's much clearer for the code to be explicit other than embedded in
annotations even if that means we need to write a bit more code. And it
pretty easy to use IDE to generate those kind of code anyway.


On Mon, Aug 27, 2018 at 8:31 AM Willem Jiang 
wrote:

Lombok generate the codes during the compile time, we don't need use it
in
the runtime.
The only shortcoming of Lombok is we need to install the plugin in the
IDE
to make sure the get|set codes are generated rightly, otherwise he will
get
lot of compile complains. That is why I suggest we need to update the
development environment document if we decide to use it.

Willem Jiang

Twitter: willemjiang
Weibo: 姜宁willem


On Sat, Aug 25, 2018 at 6:55 PM 赵俊  wrote:

Hi,bismy

in factor we can import Lombok and make the scope is provided.
Then users dependency service Lombok will not see the Lombok jar.
We(sharding-sphere) use Lombok like this.


org.projectlombok
lombok
1.16.4
provided




On 25 Aug 2018, at 9:27 AM, bismy  wrote:

@赵俊


Glad to hear that. I am not meaning all projects not using lombok.
Just
providing a framework, we have different concerns. In short:


1. Use as less 3rdparties dependencies as possible.
2. Make users use different 3rdparties easier.


So you can see from java-chassis, we do not depend some very good
frameworks like spring, spring boot components and use old fashioned
SPI
mechanism. But users can use these framework easily in their projects.


Although java-chassis do not use lombok, if you find something we did
make integrate lombok not possible, please feel free to point out.


-- 原始邮件 --
发件人: "赵俊";
发送时间: 2018年8月23日(星期四) 上午10:39
收件人: "dev@servicecomb.apache.org";

主题: Re: About introduce Lombok to service comb



Hi

we often use following lombok annotations, it makes our code clean
especially existing too many fields.
Lombok seems to be very stable for us so far.

1.@Getter, @Setter
2. @RequiredAgsConstructor
3. @NoArgsConstructor(access = AccessLevel.PRIVATE)
4. @Slf4j
5. @EqualsAndHashCode
6. @ToString


On 23 Aug 2018, at 10:03 AM, bismy  wrote:

In my opinion, I'd prefer not include Lombok in our project. Here my
reasons:
1. It's a convenient tool to write getters and setters, users can
include it very easily to their projects.
2. For framework, I'd prefer our class do not use Lombok
annotations.
Because write getters/setters is very potable to very runtime,and quite
easy with an IDE.  We can avoid many troubles related to 3rdparty
dependencies, licenses and maybe conflicts.
3. Some of our customers using Lombok before, there are some know
issues regarding to java bean specification or work together with Json
libraries. (Sorry I do not have the details)


-- 原始邮件 --
发件人: "willem.jiang";
发送时间: 2018年8月22日(星期三) 下午3:40
收件人: "dev";

主题: Re: About introduce Lombok to service comb



We could specify it in the environment setup document.
@Cherry Could you share the experience of Lombok usage in sharding
sphere?


Willem Jiang

Twitter: willemjiang
Weibo: 姜宁willem

On Wed, Aug 22, 2018 at 2:13 PM, wjm wjm  wrote:

everyone clone our code, if need to load by IDE, must install the
IDE
plugin, i don't think it's a good idear.

2018-08-22 12:33 GMT+08:00 Zheng Feng :

It looks good to me and the lombok supports the JDK 9 ?

2018-08-22 12:21 GMT+08:00 赵俊 :

Hi, Willem

Lombok would not package into our service-comb jar, so there is
no
license
issue.
We can set the maven scope is “provide”, it just enhance the java
code
byte in compile step.



On 21 Aug 2018, at 10:57 PM, wjm wjm  wrote:

in fact, getter / setter and so on can be generated by
IDE(IntelliJ
/
Eclipse) simply

2018-08-21 22:34 GMT+08:00 Willem Jiang https://projectlombok.org <
https://projectlombok.org/


any thought?








--
Best Regards,
Yang.



Re: [DISCUSS]Add Vendor Sources Code In SC project

2018-08-27 Thread Yang Bo
Hi Willem,

OK I got your point. I just checked the Serive-Center's dependencies. It
seems that all the third-parties it depends on are on Category A list(the
go dependencies and JS dependencies).
So we can include the vendor in the source release archive. We will need to
update the LICENSE/NOTICE for source release.

If someday we added a Category B licensed dependency then we cannot include
it in the source release. Luckily those licenses(EPL,MPL,CC-A,CCDL) are
rare on the go ecosystem.

On Mon, Aug 27, 2018 at 11:48 AM Willem Jiang 
wrote:

> I'm not object to put the third party code into git repository.
> My point is if we want to help the user build the kit from source easily,
> we should not delete the vendor directory when doing the source release.
> For the k8s source release[1],  it still includes the vendor directory.
>
> [1]https://dl.k8s.io/v1.11.0/kubernetes-src.tar.gz
>
> Willem Jiang
>
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
> On Mon, Aug 27, 2018 at 11:27 AM Yang Bo  wrote:
>
> > It's pretty common for go projects to include the vendor directory in
> their
> > repository.
> > https://github.com/kubernetes/kubernetes/tree/master/vendor
> >
> > And it's common knowledge that the code under vendor directory is from
> > third-parties in the go ecosystem. So it seems natural that the
> repository
> > provide the vendor directory for convenience but the source release does
> > not. The user can still build from source following the instructions in
> the
> > README.
> >
> > On Mon, Aug 27, 2018 at 7:52 AM Willem Jiang 
> > wrote:
> >
> > > Apache provides the source release for the user who want to build the
> kit
> > > from scratch.
> > > If there are too much difference between the source release kit and
> that
> > he
> > > get from the git repo with the tag, we need to explain it.
> > > Normally community user only want to use the release version of the
> kit,
> > if
> > > we exclude the vendor source in the release kit, why do we need to put
> > them
> > > into the git repo?
> > >
> > > Willem Jiang
> > >
> > > Twitter: willemjiang
> > > Weibo: 姜宁willem
> > >
> > >
> > > On Sat, Aug 25, 2018 at 5:52 PM Yang Bo  wrote:
> > >
> > > > +1
> > > >
> > > > As for the Apache compliance, It's OK to include the vendor source
> code
> > > in
> > > > our repository. We can update the release script and exclude the
> vendor
> > > > directory when releasing.
> > > >
> > > > On Sat, Aug 25, 2018 at 4:20 PM Kirin Wang 
> > > > wrote:
> > > >
> > > > > +1
> > > > > But may be we need to confirm if there are Apache compliance  issue
> > > about
> > > > > it ?
> > > > >
> > > > > Xiaoliang Tian  于2018年8月25日周六 上午10:48写道:
> > > > >
> > > > > > +1  Agree
> > > > > > the truth is go project can easily go into a dep hell and there
> is
> > no
> > > > dep
> > > > > > tool can manage the complicated deps
> > > > > >
> > > > > > checkout how go project does
> > > > > > https://github.com/istio/istio/tree/master/vendor
> > > > > > https://github.com/coreos/etcd/tree/master/vendor
> > > > > >
> > > > > > dep management is torturing go developers now
> > > > > >
> > > > > > Sure  于2018年8月25日周六 上午10:39写道:
> > > > > >
> > > > > > > Developers from China complain it is hard to go get the 3rd
> > depends
> > > > > > source
> > > > > > > code of sc.
> > > > > > > I suggest add these source code in vendor directory in sc
> > project,
> > > > like
> > > > > > > Istio and etcd project do.
> > > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Best Regards,
> > > > Yang.
> > > >
> > >
> >
> >
> > --
> > Best Regards,
> > Yang.
> >
>


-- 
Best Regards,
Yang.


Re: About introduce Lombok to service comb

2018-08-27 Thread wjm wjm
agree to Yang BO.

2018-08-27 11:14 GMT+08:00 Yang Bo :

> I don't think using lombok in Java-Chassis is a good idea.
> It provides little to no value but introduces a lot of headaches for all
> developers.
> It's much clearer for the code to be explicit other than embedded in
> annotations even if that means we need to write a bit more code. And it
> pretty easy to use IDE to generate those kind of code anyway.
>
>
> On Mon, Aug 27, 2018 at 8:31 AM Willem Jiang 
> wrote:
>
> > Lombok generate the codes during the compile time, we don't need use it
> in
> > the runtime.
> > The only shortcoming of Lombok is we need to install the plugin in the
> IDE
> > to make sure the get|set codes are generated rightly, otherwise he will
> get
> > lot of compile complains. That is why I suggest we need to update the
> > development environment document if we decide to use it.
> >
> > Willem Jiang
> >
> > Twitter: willemjiang
> > Weibo: 姜宁willem
> >
> >
> > On Sat, Aug 25, 2018 at 6:55 PM 赵俊  wrote:
> >
> > > Hi,bismy
> > >
> > > in factor we can import Lombok and make the scope is provided.
> > > Then users dependency service Lombok will not see the Lombok jar.
> > > We(sharding-sphere) use Lombok like this.
> > >
> > > 
> > > org.projectlombok
> > > lombok
> > > 1.16.4
> > > provided
> > > 
> > >
> > >
> > >
> > > > On 25 Aug 2018, at 9:27 AM, bismy  wrote:
> > > >
> > > > @赵俊
> > > >
> > > >
> > > > Glad to hear that. I am not meaning all projects not using lombok.
> Just
> > > providing a framework, we have different concerns. In short:
> > > >
> > > >
> > > > 1. Use as less 3rdparties dependencies as possible.
> > > > 2. Make users use different 3rdparties easier.
> > > >
> > > >
> > > > So you can see from java-chassis, we do not depend some very good
> > > frameworks like spring, spring boot components and use old fashioned
> SPI
> > > mechanism. But users can use these framework easily in their projects.
> > > >
> > > >
> > > > Although java-chassis do not use lombok, if you find something we did
> > > make integrate lombok not possible, please feel free to point out.
> > > >
> > > >
> > > > -- 原始邮件 --
> > > > 发件人: "赵俊";
> > > > 发送时间: 2018年8月23日(星期四) 上午10:39
> > > > 收件人: "dev@servicecomb.apache.org";
> > > >
> > > > 主题: Re: About introduce Lombok to service comb
> > > >
> > > >
> > > >
> > > > Hi
> > > >
> > > > we often use following lombok annotations, it makes our code clean
> > > especially existing too many fields.
> > > > Lombok seems to be very stable for us so far.
> > > >
> > > > 1.@Getter, @Setter
> > > > 2. @RequiredAgsConstructor
> > > > 3. @NoArgsConstructor(access = AccessLevel.PRIVATE)
> > > > 4. @Slf4j
> > > > 5. @EqualsAndHashCode
> > > > 6. @ToString
> > > >
> > > >
> > > >> On 23 Aug 2018, at 10:03 AM, bismy  wrote:
> > > >>
> > > >> In my opinion, I'd prefer not include Lombok in our project. Here my
> > > reasons:
> > > >> 1. It's a convenient tool to write getters and setters, users can
> > > include it very easily to their projects.
> > > >> 2. For framework, I'd prefer our class do not use Lombok
> annotations.
> > > Because write getters/setters is very potable to very runtime,and quite
> > > easy with an IDE.  We can avoid many troubles related to 3rdparty
> > > dependencies, licenses and maybe conflicts.
> > > >> 3. Some of our customers using Lombok before, there are some know
> > > issues regarding to java bean specification or work together with Json
> > > libraries. (Sorry I do not have the details)
> > > >>
> > > >>
> > > >> -- 原始邮件 --
> > > >> 发件人: "willem.jiang";
> > > >> 发送时间: 2018年8月22日(星期三) 下午3:40
> > > >> 收件人: "dev";
> > > >>
> > > >> 主题: Re: About introduce Lombok to service comb
> > > >>
> > > >>
> > > >>
> > > >> We could specify it in the environment setup document.
> > > >> @Cherry Could you share the experience of Lombok usage in sharding
> > > sphere?
> > > >>
> > > >>
> > > >> Willem Jiang
> > > >>
> > > >> Twitter: willemjiang
> > > >> Weibo: 姜宁willem
> > > >>
> > > >> On Wed, Aug 22, 2018 at 2:13 PM, wjm wjm  wrote:
> > > >>
> > > >>> everyone clone our code, if need to load by IDE, must install the
> IDE
> > > >>> plugin, i don't think it's a good idear.
> > > >>>
> > > >>> 2018-08-22 12:33 GMT+08:00 Zheng Feng :
> > > >>>
> > >  It looks good to me and the lombok supports the JDK 9 ?
> > > 
> > >  2018-08-22 12:21 GMT+08:00 赵俊 :
> > > 
> > > > Hi, Willem
> > > >
> > > > Lombok would not package into our service-comb jar, so there is
> no
> > >  license
> > > > issue.
> > > > We can set the maven scope is “provide”, it just enhance the java
> > > code
> > > > byte in compile step.
> > > >
> > > >
> > > >
> > > >> On 21 Aug 2018, at 10:57 PM, wjm wjm  wrote:
> > > >>
> > > >> in fact, getter / setter and so on can be generated by
> > IDE(IntelliJ
> > > /
> > > >> Eclipse) simply
> > > >>
> > > >> 2018-08-21