Hi Xiangdong,

glad you like it, however I would suggest to caution.

While it is possible to do it as we did, it does come with a downside (As 
probably all multi-language projects know).
It increases complexity of the build and it increases the complexity of setting 
up the development environment and it increases the build time.

We set up quite a bit of tooling to keep the users from stumbling into unwanted 
pits, but still the plc4x community is considering the current build to be too 
complex.

So I am happy to help you with this, but I would like you to think about the 
implications and discuss them in the community first.


Chris


Am 16.10.19, 11:16 schrieb "Xiangdong Huang" <[email protected]>:

    Hi,
    
    I read how plc4x organizes the modules and pom files. It is awesome that
    using maven to build a so complex project (with many subprojects...).
    
    I'd like to organize IoTDB thrift codes like:
    
    ```
    service-rpc/
    ├── pom.xml
    ├── rpc4cpp
    │   └── pom.xml
    ├── rpc4java
    │   └── pom.xml
    ├── src
    │   └── main
    │       └── thrift
    │           └── rpc.thrift
    └── target
    ```
    
    The organize is quite like plc-tools module. The difference is that, I want
    to put the generated codes (defined by
    service-rpc/src/main/thrift/rpc.thrift and automatically generated by
    plugin in the service-rpc/pom.xml) into rpc4cpp/target, rpc4java/target.
    
    Then, when compiling rpc4cpp module according to rpc4cpp/pom.xml,  maven
    download cmake and some other binaries to compile the codes under the
    rpc4cpp/target.
    
    I think maybe I can follow how plc4x using Maven to compile CPP codes
    automatically, and will try it these days.
    
    Best,
    -----------------------------------
    Xiangdong Huang
    School of Software, Tsinghua University
    
     黄向东
    清华大学 软件学院
    
    
    Xiangdong Huang <[email protected]> 于2019年10月13日周日 上午8:07写道:
    
    > Hi Chris,
    >
    > Of course I want to compile the generated codes... Please give us help. :D
    >
    > Best,
    > -----------------------------------
    > Xiangdong Huang
    > School of Software, Tsinghua University
    >
    >  黄向东
    > 清华大学 软件学院
    >
    >
    > Christofer Dutz <[email protected]> 于2019年10月12日周六 下午5:06写道:
    >
    >> Well it generates the api, but doesn't build it as a module, correct?
    >>
    >> Was not referring to if you wanted to also compile the generated stuff.
    >>
    >> Chris
    >>
    >> Holen Sie sich Outlook für Android<https://aka.ms/ghei36>
    >>
    >> ________________________________
    >> From: Xiangdong Huang <[email protected]>
    >> Sent: Saturday, October 12, 2019 9:07:47 AM
    >> To: [email protected] <[email protected]>
    >> Subject: Re: More programming language APIs generated by Thrift
    >>
    >> Hi Chris,
    >>
    >> I have used maven plugin to generate these language apis in [1]. Are 
there
    >> some other suggestions?
    >>
    >> [1] https://github.com/apache/incubator-iotdb/pull/445
    >>
    >> Best,
    >> -----------------------------------
    >> Xiangdong Huang
    >> School of Software, Tsinghua University
    >>
    >>  黄向东
    >> 清华大学 软件学院
    >>
    >>
    >> Christofer Dutz <[email protected]> 于2019年10月11日周五 下午3:59写道:
    >>
    >> > Hi all,
    >> >
    >> > having done all the Thrift compilation stuff for PLC4X I guess I might
    >> be
    >> > able to help here.
    >> >
    >> > Chris
    >> >
    >> > Am 11.10.19, 09:17 schrieb "Xiangdong Huang" <[email protected]>:
    >> >
    >> >     Hi,
    >> >
    >> >     I notice there are some PRs [2][3] for generating CPP, python apis
    >> by
    >> > using
    >> >     thrift.
    >> >
    >> >     Actually it can be compiled automatically by Maven.
    >> >
    >> >     Chris introduced a maven-thrift-plugin several months ago. And, 
just
    >> >     modifying the configuration can archive that..
    >> >
    >> >     Using PR [1], we can generate cpp, python, and go apis under
    >> >     server-rpc/target/generated-sources-{language}.
    >> >
    >> >     For other PRs, maybe you just need to write examples about how to
    >> use
    >> > these
    >> >     api...  (and some docs?)
    >> >
    >> >
    >> >     [1] https://github.com/apache/incubator-iotdb/pull/445
    >> >     [2] https://github.com/apache/incubator-iotdb/pull/444
    >> >     [3] https://github.com/apache/incubator-iotdb/pull/415
    >> >
    >> >     Best,
    >> >     -----------------------------------
    >> >     Xiangdong Huang
    >> >     School of Software, Tsinghua University
    >> >
    >> >      黄向东
    >> >     清华大学 软件学院
    >> >
    >> >
    >> >
    >>
    >
    

Reply via email to