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. virtual san

    Virutal SAN – 重複排除と圧縮と OSR ルール

    前回のエントリー で Virtual SAN の重複排除と圧縮の機能を…

  2. vcenter

    vCenter Server 6.5 に対して IE11 で 4GB 以上の OVF/OVA をデプ…

    先日、無事 vSphere 6.5 がリリースされました。Clie…

  3. nicolas vibert

    ゲートウェイ ファイアウォール

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

  4. nicolas vibert

    設計における検討事項とベストプラクティス

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

  5. software-defined storage

    Virtual SAN の HCL を JSON で取得する

    はじめにVMware の Hardware Compatibili…

コメント

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

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










  1. storage

    ESXi における 512e ディスク フォーマットの認識方法
  2. storage

    Virutal SAN – 重複排除と圧縮
  3. certificates

    備忘録:自己証明書の有効期限の指定方法
  4. devbox

    Insight into VMware Photon Controller – …
  5. isilon

    VMware Tools on Isilon Virtual Nodes (un…
PAGE TOP
Translate »