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. vmware

    NSX L2 VPN

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

  2. VMConAWS

    柔軟なキャパシティと回復

    はじめにVMware Cloud on AWS で用…

  3. Tong-Sai@Naka Island, Thailand

    raid-5/6

    Virtual SAN – RAID-5/6 には Witness がないのは何故か

    前回のエントリでは RAID-5/6 の仕組みや動作について説明しまし…

  4. VMConAWS

    ベアメタル インスタンスにインストールされた vSphere ESXi

    はじめにVMware Cloud on AWS で用いられるハイパ…

  5. network

    VMC on AWS のネットワーク – 内部ネットワーク

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

  6. devbox

    Insight into VMware Photon Controller – devb…

    はじめに昨年の vmworld で発表になった Photon Co…

コメント

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

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










  1. vagrant

    Vagrantfile で Linked Clone をデフォルトにする
  2. host profiles

    Host Profiles 抽出時のエラー回避方法 / How to avoid…
  3. vsphere

    Guest OS Customization for CentOS 7.0
  4. sdk

    vSphere Web Client Plugin SDK の dev-setu…
  5. vmware

    VMware から提供されるサービス
PAGE TOP
Translate »