Archive for the ‘Eclipse’ Category.

SVN Connectorsはどれを選べば良いか

EclipseのSubversionクライアントのプラグインのsubversiveを入れるときに、
その接続に必要なSVN Connectorsを選択する必要があります。

これは結局どれを選べば良いのか?というかどんな違いがあるのか?
過去の経験や公式ページの説明などをまとめておきたいと思います。

まずは、subversiveのドキュメントに以下が書いてあります。
Eclipse Subversive – Documentation
http://www.eclipse.org/subversive/documentation/faq.php#connectors

What are the differences between SVN Connectors and which one to choose?
JavaHL is a native client implementation (so it needs a binaries to work (dll on Windows, so on Unix and so on). It is developed by tigris with Subversion itself as a Java binding for subversion.
Pros:
There is always a new version of this client with the new version of Subversion
Cons:
To work with SSH protocol you need to create a tunnel manually
There is no interface to configure proxy server settings
It’s almost impossible to get to work together JavaHL 1.5.x and 1.6.x clients, cause Java class loader can not use binaries with the same names in two plug-ins.
Because of native binaries usage any crash in the library makes Eclipse to crash either.

SVNKit is a pure Java implementation of the client (reverse engineered one), so it can be run on any OS with JRE installed.
Pros:
You do not need to find the binaries for you OS to get it to work
There is an interface for configuring proxy server settings
The work with SSH is incapsulated inside the client
It will never crash your Eclipse IDE instance
Cons:
It’s new versions are released always some time after Subversion release
Sometimes it inherits bugs from the native code while adopting it
The first versions (BETAs and RCs) are sometimes very unstable

It’s only for you to choose which connector to use.

Google翻訳でページをそのまま翻訳してみたらやはり厳しい結果(笑)になったので、雰囲気で意訳してみます。

選択するSVN Connectorsにはどのような違いがありますか?

JavaHLは、実行環境に依存した実装です。(Windowsではdll、Unixではso)。tigris社でのSubversionに関連する開発は、これで行われています。

■長所
  • このクライアントの新しいバージョンは、常にSubversionの最新バージョンに対応しています。
■短所
  • SSHプロトコルを使用する場合、自前でトンネルを作成する必要があります。

  • Proxyサーバーを使用する場合の設定が出来ない。
  • JavaHL1.5.xと1.6.xをJavaクラスローダーは同じ名前で実行することがまず出来ません。
  • ネイティブライブラリの一部クラッシュがEclipse全体に影響を与えます。

SVNKitはPure Javaで実装されたクライアントで、JREさえインストールされていればOSを問わず動作させることが出来ます。

■長所
  • OSのネイティブライブラリを意識する必要がありません。

  • Proxy Serverの設定を行うインターフェイスがあります。
  • SSHの動作はクライアント処理に内包されています。
  • クラッシュした際でも、Eclipseに影響がありません。
■短所
  • SVNKitの最新バージョンは、Subversionリリースのしばらく後にリリースされます。

  • ネイティブコードからバグを引き継いでしまうことがあります。
  • 最初のバージョン(BETA, RC)は非常に不安定です。

この説明だけを見ると、ネイティブのJavaHLが安定していればそれを使用したほうが良さそうですね。
パフォーマンスにも多少影響がありそうだし・・・。
ただ、以前JavaHLのConnectorとTortoiseSVNを併用していたときに、Subversionの管理ファイルのバージョンかなんかが一致しなくて、TortoiseSVNのバージョンを落としたりして対応したような気がします。
(まあそれは、SVNKitでも同じか・・・)

JavaHLの場合は、ProxyやSSHが設定できないとのことですが、そうだったっけな?
手元での環境で、SVNのConnectorをJavaHLにして確認してみると、リポジトリ追加の際の「SSH」のタブが設定できない・・・。
ただ使わないので別にいいや。Proxyの設定はどこに効いてくるのすらわかりませんでした。
今までJavaHLはなんとなく使用を避けてたのですが、これからちょっと使ってみます。


忙しい人のためのPHPデバッグ環境構築

忙しいのにPHPデバッグ環境構築したい場合はそうないかと思いますが、
現在、どこかのサーバーで動作しているPHPモジュール群をローカルで動作させたい場合の手順をメモします。

念のため、検証した環境は
・Windows Vista SP2
・Eclipse Platform 3.5.1.R35x_v20090910-9gEeG1_FthkNDSP2odXdThaOu9GFDPn83DGB7

です。
PDTと、XAMPPは既にインストールされている事が前提ですので、入っていない場合は以下記事から入れてやってください。
Installation of PDT on Eclipse3.5
Zend Debuggerインストール(xampp編)
記事の投稿日よりバージョンが上がっていたら、最新のバージョンをお勧めします。

既存のPHPモジュールをEclipseにインポート

現在動作しているPHPモジュールを、FTPやSubversionでもなんでも良いので、まずはローカルPCにコピーします。
今回は、svnからチェックアウトしましたので、subversiveが入っている前提ですが、FTPで持ってきた場合は、
PHPエクスプローラー右クリック→インポート→一般→ファイルシステムでまずはEclipseのプロジェクトと認識させます。

PHPプロジェクトへ変換

インポートしただけでは、単なるファイルセットなので、これらをPHPのプロジェクトに変換します。
プロジェクトを右クリックして、構成→Add PHP SupportでOKです。

デバッグサーバーの設定

サーバーにはXamppのApacheを使用します。ここのAliasに先ほどインポートしたプロジェクトのルートを記載します。
具体的には、(Xamppインストールディレクトリ)\apache\conf\httpd.confに以下を追加します。

Alias /testPHP "D:\Workspace\test\testPHP"
<Directory "D:\Workspace\test\testPHP">
Order allow,deny
Allow from all
</Direcotry>

とか。

デバッグサーバーの構成

プロジェクト右クリック→デバッグ→デバッグサーバーの構成で、新しくデバッグサーバーの構成を作成します。
上記では、
http://localhost/testPHP/
というURLになるので、それを踏まえて以下のようにして構成します。

ファイル:/testPHP/index.php
URL:自動生成(デフォルト)

これでXamppのコントロールパネルからApacheを起動しておいて、Eclipse環境から先ほど作成したデバッグ構成で起動してみます。
とりあえず動かすだけならこれでOKなはずです。
細かいことは置いといて、ZendDebuggerの設定だとステップ実行出来ないので、単純にXDebugで動かしてもいいかもしれません。
(これ昔からそうだったなぁ。)


Installation of MyEclipse

Eclipseは結構使い倒していると思うのですが、Eclipseにも色々なバージョンがありますし、商用で出しているものもあります。
例えば、IBMのRational Application Developer、富士通のInterstage(ちなみに富士通テンから出しているカーナビもEclipseというので紛らわしい)等は使ったことがあったですが、今回、日立のMyEclipseというのを使って作成されたプログラムを改修するということなので、それを使ってみることにしました。

と言っても、結局今考えれば普通のEclipseを使っていれば良かったのですが、Cosminexusというこれも日立製のアプリケーションサーバーを開発環境にセットアップする際に付属していたものを入れてしまったからです。
このマシンでずっと開発しているのなら良かったのですが、ある時別のマシンでこのプロジェクトを共有した時に、MyEclipse固有のプラグイン設定等がWTPではそのまま使えなかったからです。
例えば、以下のようなライブラリ変数を使っていたりしました。

com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER

普通のEclipseでは、EARファイルのエクスポート等も出来ないようなのでこれはもう入れるしかないかと。
ただ、しばらくの間

https://www.myeclipseide.jp/

にアクセスしてみてもDDoS攻撃によりアクセスしにくくなっています、みたいなメッセージが出るばかりで参照できなくなっていたので保留していたのですが、今日見てみたらアクセスできるようになっていたのでやってみました。

環境は
Windows Vista Home SP2
MyEclipse 7.5.1

です。
まずはダウンロードするために無料体験版ダウンロードボタンを押してダウンロード画面に遷移します。
2.日本語MyEclipse 7.5.1ネットワークインストーラの詳細の「適用OS」を見ると、Windows Vista Homeが入っていないのですが、まあ自己責任で。
「Eclipseの日本語化」を見ると、結局Babelで自分で日本語化するらしいのですが、「日本語MyEclipse用ネットワークインストーラ」の「日本語」ってのは単にインストーラが日本語ということなのか。なんだか。

ダウンロードした「mjvneti751-0350.exe」ファイルを実行すると「日立自己展開型プログラム」という画面が出るので「インストール実行」を押下すると、あとはウィザードが出るので適当に変更して「次へ」でインストールが完了します。

インストーラでインストールしたのだからショートカット位作ってくれたら良いと思ったのですが、まぁそこは好みなのかな。

SCMにはSubversionを使用したいので、Subversiveを入れようとして[Help]-[Software Updates]-[Available Software]-[Ganymede Update Site]の配下を見てもsubversiveプラグインがなさそう。
なので、以下更新サイトを登録します

Subversive Site
http://download.eclipse.org/technology/subversive/0.7/update-site/

Subversive SVN Connectors Site
http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/

Subversive Siteから[Subversive SVN Team Provider Plugin]-[Subversive SVN Team Privider]と、Subversive SVN Connectors Siteから[Subvesive SVN Connectors]-[Subvesive SVN Connectors]を選択してインストールを試みました。

しかし、以下エラーメッセージが出てダメなようでした。

An error occurred while collecting items to be installed
No repository found containing: com.ibm.etools.emf.event/osgi.bundle/3.0.0.v20060918_M

これで調べたのが、まず、I AMというMavenとの連携が出来るプラグインがあやしいという話でした。

Problems installing IAM – bundles are missing

でも、I AMどころかMavenすら入れてないのであんまり関係ないかなと思って今度はこの記事の中で、WTPが怪しいのかもと思い、バージョンを調べてみると、3.4.2になっており、このバージョンなら問題ないはず。

次に、Eclipse3.4から導入されたという、p2(Provisioning Platformの略?)をアップデートすれば良いのではと思って調べたら

Equinox p2 によって Eclipse プラグインの頭痛を解消する

な秀逸の記事があったので収穫でした。dropinsフォルダはこれで出来たんだなとか。
で、このp2の更新も同じエラーで行えず、VEが怪しいとのトピックも見つけた

Source for com.ibm.etools.emf.event

のですが、結局なにをインストールしても同じエラーになることに気付きました。

その後、インストール直後の構成に戻したり、subversiveではなく、subclipseを入れようとしたりしたのですが同じエラーになってしまうので断念!
OSGi Frameworkの設定をもうちょっと調べればもしかしたら出来るのかもしれないのですが、今回ちょっと緊急で、あと14時間以内にEarファイルにして持っていかなければいけないので調査はまた今度にします。

でも今後MyEclipseを使うことはないでしょうね。スタンダードは3,990円だそうですが、もっと高機能で無償なもの(普通のEclipse)があるのに個人で購入する物好きは居るのでしょうか?
普通に考えたら、こういうのは、Eclipse使いたいけどサポートがないので決裁が下りないから買う企業が多いと思うのですが、それを上司に提案するのはMyEclipseを使い倒した個人が提案すると思うので、個人ユーザーはタダにすれば良いのになぁ。
ネットでの情報もその方が増えるのに・・・。