Tong-Sai@Naka Island, Thailand

intellij

Photon Controller のコードを Intellij IDEA で開く

昨日 Photon Controller が公開されましたが、Java、Python、Ruby など様々な言語を使っている上にモジュールも多数あるため、ソースコードを閲覧するにも統合開発環境の方が閲覧が楽になります。開発チームも Intellij IDEA を使っているので、読む側も、是非 Intellij IDEA で見ましょう。

なお、Java は Root Scheduler、API FrontEnd、HouseKeeper、CloudStore、Chairman、Deployer といった Photon OS 上のコンテナの中で動作するモジュールで利用され、Intermidiate Scheduler、Leaf Scheduler、Agent といった ESXi で動作するモジュールは Python で記述されています。これらのモジュール間の RPC は Apache Thrift で定義され、さらにモジュール間の協調動作は Apache Zookeeper が使われています。

Ruby は CLI 向けに使われていますが、Getting Started では Go で実装された CLI が提供されていたり…。Go にしようだぜ、Go に。

Intellij IDEA

JetBrains s.r.o. というチェコにある会社が開発している統合開発環境。Java の開発環境としては Eclipse、NetBeans、Intellij IDEA が現在のメジャーどころらしい。Community Edition と Ultimate Edition があり、Community は無償で利用できますが Ultimate は有償となります。ライセンスなど詳しいことは、日本の代理店である サムライズム をご参照くださいませ。

コマンド

$ brew install thrift
$ brew install gradle
$ mkdir ${SOMEWHERE}
$ cd ${SOMEWHERE}
$ git clone https://github.com/vmware/photon-controller.git
$ cd photon-controller
$ cd java
$ gradle idea
$ gradle assemble
$ open java.ipr

gradle idea で Intellij IDEA のプロジェクトファイルを作成します。これだけでは thrift ファイルから生成される Java のコードがないため gradle assemble で Thrift 周りの Java コードを生成させます。

open した後は、Intellij IDEA 上で chairman/build/generated-sources/main を “右クリック” > “Mark Directory as” > “Sources Root” としておくと import の依存関係が解決できて良い感じにソースコードを読むことが出来ます。

thrift/ の .thrift ファイルの Service と、java/api-frontend/src/main/java/com/vmware/photon/controller/apife/resources/.java あたりから読むと捗るかも…。

正直 Dropwizard も Thrift も Photon Controller ではじめて漁るので非常につらい…Orz

まとめ

  • VIVA Intellij IDEA !!
  • thrift と gradle は事前にインストールしておく
  • gradle idea, gradle assemble
  • open java.ipr

関連記事

  1. host client

    ESXi と Host Client のバージョンの組み合わせ

    vSphere 6.5 から遂に vSphere Client (C#…

  2. console

    VMware Remote Console 9.0 was just released

    VMware Remote Console (VMRC) 9.0 が …

  3. nicolas vibert

    VMware Cloud on AWS と AWS Global Accelerator によるグロ…

    この記事は Nicolas Vibert 氏のブログGl…

  4. vmotion

    vMotion の歴史 (6) – vCenter Server 6.0 – Technology …

    前回のエントリでは vCenter Server 5.5 までの vM…

  5. vmotion

    vMotion の歴史 (5) – vCenter Server 5.1 –…

    前回のエントリでは vCenter Server 5.0 までの vM…

  6. powercli

    Onyx for the Web Client

    Flings と OnyxVMware R&D で開発され…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。










  1. container

    Learning technologies around containers
  2. network insight

    vRealize Network Insight 3.2 のアプライアンスで b…
  3. key binding

    KeyRemap4MacBook で IntelliJ と Sublime Te…
  4. vco

    [Fixed] Unable to serialize object of cl…
  5. VMConAWS

    VMware Cloud on AWS 概要
PAGE TOP
Translate »