Sounds good.

> weex_sdk will be compiled using the gradle-plugin mentioned above, while 
> weex_sdk_legacy will not.

Don't you mean the other one around? The legacy one should be built
using the plugin, leading to the class names being replaced with the
old ones.

-J

Am Di., 17. Sept. 2019 um 13:56 Uhr schrieb York Shen <shenyua...@gmail.com>:
>
> Hi, community
>
> Due to the restriction of Java language in method overriding [1], the 
> solution I proposed months ago will not provide backwards-compatibility as 
> expected but produce compiling error for users.
>
> Therefore, I’d like to proposal a new solution to fix the problem.
>
> Package name will be renamed from 'com.taobao.weex' to 'org.apache.weex' in 
> source code and Apache Source Release as the previous plan.
> Create a custom gradle-plugin which could rename package back to 
> ‘com.taobao.weex’ at compiling time.
> Publish two build variants (weex_sdk and weex_sdk_legacy) each time building 
> connivence library. weex_sdk will be compiled using the gradle-plugin 
> mentioned above, while weex_sdk_legacy will not.
> Therefore, classes in weex_sdk will be under ‘org.apache.weex' package, and 
> classes in weex_sdk_legacy will be under ‘com.taobao.weex’.
> New users of weex should choose weex_sdk and new API, while current users 
> could continue using weex_sdk_legacy which provide the same API behavior as 
> now.
> Finally, we would stop publishing weex_sdk_legacy sometime later.
>
> The community could benefit from the above solution in following aspects:
> For me, there is much less work to do in current plan than the old one. Less 
> bug to write, less time to use. One or two weeks will be enough.
> For users, There is a guarantee that the API behavior of weex_sdk_legacy is 
> the same as before because the source code after processing of gradle-plugin 
> is the same as before. The old plan won’t give this guarantee.
> We make our position very clear by naming the connivence binary to 
> weex_sdk_legacy .
>
> [1] "When overriding a method, the signatures (name and argument types) have 
> to be the same after type erasure." Ref 
> https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.2 
> <https://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.4.2> for 
> detail.
>
> Best Regards,
> York Shen
>
> 申远
>
> > 在 2019年7月1日,16:26,Jan Piotrowski <piotrow...@gmail.com> 写道:
> >
> > Sounds pretty neat and was pretty much what I was thinking of.
> >
> > Th
>

Reply via email to