2015年9月22日火曜日

jsdoc3によるJavascriptドキュメント作成

はじめに

以前、YUIDocに関するJavaScriptのドキュメント作成方法について、このブログで紹介しました。
どうも、調べているとjsdocのほうが一般的?(何をデファクトスタンダードとするかは基準に迷うところです)のようなので、改めてjsdocの生成について行ってみようと思います。

Goals

さて今回の目標設定は以下としました。
  1. Eclipse上でドキュメント生成する。
  2. Eclipse上でコメント記入中にリアルタイムにプレビューしたい。(これは難しそう)
  3. JavaScriptのコーディング中に生成したドキュメント参照できるようにする。

実施環境

  • Eclipse  Mars Release (4.5.0)
  • java version "1.8.0_51"

1.Eclipse上でドキュメント生成

まずこの目標ですが、今回はMavenを利用してpom.xmからJavaScriptのドキュメントを自動生成するようにしてみようと思います。

プロジェクト構成

  HellowWorld
    │
    │   pom.xml
    └─src
          │
          └─main
                │
                └─webapp
                      │
                      └─js
                            │
                            └─jsdoc3sample.js

pom.xmlの定義


pom.xmlの構成のポイント

  • outputDirectory:
    言わずと知れた。ドキュメントを出力する場所です。今回はMavenのビルドパス上に作成するようにしてみました。
  • jsdocInput:
    ドキュメント作成するJavaScriptを指定します。


サンプルJavaScriptファイル

まだ、ドキュメント用のコメント記述が良く分かっていないところもありますが、とりあえず以下のサンプルを作成しました。

ビルド実施

Eclipseでプロジェクトを選択して、以下のコマンドを実行です。

コマンド

> mvn clean jsdoc3:jsdoc3

Eclipse上から実行する場合

EclipseのメインメニューからRun(R)-Configuretionsを選択するとRun Configurationsダイアログが表示されます。


左側のツリーにてMaven Build下に新しいビルドを追加

Name:ご自由に
Base directory:対象のプロジェクトを選択
Goals:jsdoc3:jsdoc3

上記の内容を入力し、Runをクリック


ドキュメントが生成が成功すると上記の内容がコンソールに表示されます。


成功するとProject Explorerのtargetフォルダを再描画(F5キーを押す)するとjsdoc3フォルダが表示されます。

jsdoc3フォルダ配下のindex.htmlをブラウザで開くとドキュメントが作成されていることが分かります。



以上で、ドキュメント作成までの流れは終了です。

2.Eclipse上でコメント記入中にリアルタイムにプレビューしてみる。

Javaだと以下の画面のように、作成中のドキュメントを簡易ではあるが確認できる。


こんな感じで、作成しながら確認できればうれしい!!

とりあえずEclipseのViewをあさってみると以下のようなものがったので使ってみる。
EclipseのメインメニューからWindow(W)-Show View-Other...を選択するとShow Viewダイアログが表示されます。


JavaScript - Documentationを選択してOKをクリックする。
Documentationビューの動作を確認してみる

表示される。

表示されない。

これだけでは表示されないケースがあるみたいです。これはJsDocの記述が悪いのか、そもそもJsDocにツールが対応していないのか...
引き続き調査して、何か見つかったら追って更新します。

3.作成したドキュメントとの紐付け方

探してみましたが、そもそも、EclipseからJavaScriptのHelpを呼び出すという仕組みは見当たりませんでした。
正直これが出来ないと、つくったドキュメントを一番活用するのはコーディング中です。つまり統合開発環境と連携できないとドキュメントを見てもらえるケースが激減するので、作成に気合が入らなくなってしまいます。

総評

以下の3つの目標を立てましたが、残念ながら今回はコンプリートできませんでした。
解決策が見えましたら、随時更新していきます。
  1. Eclipse上でドキュメント生成する。

    ⇒ mavenにて自動的に作成できるので、クリア
  2. Eclipse上でコメント記入中にリアルタイムにプレビューしたい。(これは難しそう)

    ⇒ コメントの記述方法が悪いのかjsdocが対応していないのかコツを掴むのに時間がかかりそう、とりあえず継続利用して何か分かりましたらページを更新しいます。
  3. JavaScriptのコーディング中に生成したドキュメント参照できるようにする。

    ⇒ 全く、見つけれませんでした。すみません。

2015年9月20日日曜日

ウェブ・ページにソースコードをスタイリッシュに表示する方法(GitHub編)

経緯

ブログを書いていてソースコードを掲載することがあるのですが、ページに記載することが多くなりタグで書くのは面倒だったので簡単に貼り付けれるような方法を探してみました。

Goles(いつものように目標設定)

  1. ソースコードをWebページにかっこよくハイライト表示できること。
  2. 出来れば、タグなどを付与せずそのまま貼り付けたい。
  3. Java、HTML,JavaScriptに対応しているいること。

選定

検索してみると条件を満たせそうなものとして、以下のものが見つかった。
  1. SyntaxHighlighter
  2. GitHubのGistを利用して、自分のページにScriptを埋め込む
今回は、GitHubを選定してみました。理由は、GitHubに興味があり、一度使ってみたかっただけです。

GitHubとは?

個人的には以下の理解です。(まじめには勉強していないので感覚的なものです。正しい理解をしたい方は、自分で調べてみてください)
  1. ソースコードがバージョン管理できる。
  2. 世界中の人がレビューしてくれる。
    今回サンプルをアップしましたが、1時間ほどで3人ほどレビューしてくれました。たいしたものをアップしなかったので、修正はありませんでしたが、すぐに見てくれる人がいるのはすごい!!
  3. ついでに、評価もしてくれる。(ソーシャルネットワークの「いいね!」にあたるものが用意されていますが、、、何でもかんでも「いいね!」には賛同できかねますが)
開発をかれこれ、20年ほどやっていますが、こんなに簡単にグローバルに開発が行えてしまう状況はには正直、感動します。いろいろと感じた点はあるのですが、話がそれそうなので、別の機会にします。

作業の流れ

  1. GitHubへユーザ登録
  2. GitHubへログインし、Gistでソースコードを登録する。
  3. 好きなページにスクリプトを埋め込む
上記の4ステップです。実際やってみましたが、私はGoogleのBloggerを利用しており動的ページを利用していると表示できないという罠にはまった以外はあっさりとうまくいきました。

1.GitHubへのユーザ登録

ここは省略します。
必要がある方は、ここから登録できます。

2.GitHubへログインし、Gistでソースコードを登録する。

ログインすると以下の画面が表示されます。


画面上にある、Gistをクリックします。

ソースコードを入力します。
ファイルの拡張子でハイライト表示が変わるみたいなので必ず拡張子を入力すること


作成したら、Create secret gistをクリック

3.好きなページにスクリプトを埋め込む

画面右にある、Embed URLのアイコンをクリックすると
クリップボードに貼り付けるScriptタグがコピーされます。

自分のブログやホームページに貼り付けると完成です。
ちなみにこんな感じです。

Eclipseでソースを見てるみたいです。かっこいいので、皆さんもブログなど自分のコードを公開する場合は利用してみたください。

2015年8月16日日曜日

Java Web開発コーディング編 ステップ1 Hellow World

経緯とGoles

さてEclipseのインストール、WildFlyのインストールまで完了したら、いよいよプログラミングです。

今回は簡単なサーブレット、JSPプログラムを作っていこうと思いますが、せっかくなのでJava EE6で採用されたJAX-RSを利用して作成したいと思います。
また、今後のパッケージ追加が楽になるようにMavenプロジェクト化していきたいと思います。

JAX-RSのポイント


  1. 従来のサーブレットのようにWeb.xmlにURLマッピングの設定がアノテーションで可能となった。
  2. パラメータのバインドが簡単

ステップ1.動的Webプロジェクトを作成

File | New | Dynamic Web Prjectを選択します。

プロジェクトの初期設定を行っていきます。
Project name:プロジェクト名です。やる気が出るようにかっこいい名前をつけましょう
その他はそのままで、Next >をクリック

ソースを格納するパスと、ビルドしたクラスファイルなどを格納するフォルダを指定します。
ここでは、最終的にMavenプロジェクトにするので、src/main/javaにEdit...ボタンをクリックして変更してみたのですが、以下の画面のように変更できませんでした。
なんだか悔しいのですが、後で対処するとして、デフォルトのsrcのままNext>をクリックします。

次にContext rootを指定する画面ですが、WebページのURLのディレクトリになるので、こだわって名前をつけたほうが良いですが、練習なので、デフォルトのプロジェクト名と同じ設定のままFinishをクリックします。
気に入らなかった、ソースのディレクトリを変更します。
Project Explorerから作成したプロジェクトを選択して、右クリックから「Properties」をクリックします。
Propertiesから、「Java Build Path」を選択し、Sourceタブを選択します。
右中央にあるAdd Folderでsrc/main/javaを作成し、src/main/javaにチェックを入れてOKををクリック。

src/main/javaが追加されたのが確認できたら、OKをクリックする。
なぜか「ui WebContent」なんて変な名前になっているWebConetentもMaveにそって、src/main/webappに変更します。「ui WebContenet」フォルダをドラッグして、そのままsrc/mainしたに移動します。

そのまま、F2キーを押して名前をwebappに変更します。


Mavenプロジェクトにコンバートする。

プロジェクト右クリック | Configure | Convert to Maven Project
pom.xmlのDependenciesタブのDependenciesのAddボタンから以下の依存関係を追加する。


Group Id:org.jboss.spec.javax.ws.rs
Artifact Id:jboss-jaxrs-api_2.0_spec
Version:1.0.0.Final
Scope:proided

ちなみにpom.xmlの内容は以下のようになりました。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>HellowWorld</groupId>
  <artifactId>HellowWorld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
   <dependency>
    <groupId>org.jboss.spec.javax.ws.rs</groupId>
    <artifactId>jboss-jaxrs-api_2.0_spec</artifactId>
    <version>1.0.0.Final</version>
    <scope>provided</scope>
   </dependency>
  </dependencies>
</project>





2015年8月14日金曜日

WildFly 9.0.1.Final のインストール

経緯とGoals


 仕事上、JavaEE環境によるWebサイトを構築する機会が多く、何度かJBoss Application Serverを利用した機会がありました。
 技術はもうそろそろいいかなと思いつつも、ある程度、動向は掴んでおく必要があるので、自宅のマシンにも開発環境を保持した状態にしたいため、久々にバージョンアップを行っていこうと思う。

今回の説明では、インストールするのはWildFlyの9.0.1.Finalを選択しました、GoalはEclipseとの連携までもって行きます。
途中発生した事象は、省略せず記述して行きます。

前提条件

  • Java SDKをインストールしていること(本説明では、バージョン1.8.0_51をインストールしています)
  • Eclipseのインストールが完了していること

WildFlyのダウンロード


上記サイトから、9.0.1Finalのダウンロード(ちなみに私が選択肢したのはJava EE7 & Web DistributionのZIP版)

インストール

とても簡単です。ZIPを好きなところに解凍してください。
移行WildFlyを展開したフォルダを$WFLY_HOMEと表現します。

動作確認

コマンドプロンプトから、起動してみますが、Eclipseからしか起動する気がない人はここは読み飛ばしてください。

以下のファイルを実行してください。
$WFLY_HOME\bin\standalone.bat
  Started in XXXXXmsというキーワードが出てくると起動完了です。

起動したサイトにアクセスしてみます。
ブラウザを起動して、「http://localhost:8080/」にアクセスして、以下のような画面が表示されると起動OKです。


確認が終わったら停止ですが。
起動したコマンドプロンプトからCtrl+Cで、強制終了させてもいいのですが、技術者なので、正規の停止方法も念のため。

$WFLY_HOME\bin\jboss-cli.bat -c --command=":shutdown"

Eclipseからの起動方法

Eclipseを起動してください。
Eclipseのインストール、起動はこちらを参照してください。
  1. Window |  Show View | Other...を選択してShow Viewダイアログを表示させ、Server | Serversを選択してOKをクリック。
  2. Serversタブから「No servers are available.Click this link ....」を選択
  3. New Serverダイアログを開くとWild Flyが無いので、「Download additional server adapters」をクリック
  4. Install New Extenstionから「JBoss AS, WildFly, & EAP Serer Tools」を選択する。
  5. Install New Extension | Review Licensesの「I accept the terms of the license agreement」を選択して「Finish」をクリックする。


    以下のメッセージが表示されるが、かまわずOKをクリック。

    するとインストールが開始されます。
  6. (後で確認)しばらくすると以下の警告が表示されました。

    なになに。後で調べるために、とりあえずDetailsで確認

    なんか、いっぱい出てきたので、中身もとりあえずコピッておこう。
    ※ おそらく、Eclipse上にインストールされているプラグインに既に含まれているという意味なので、影響はないかと思います。(WildFly起動までは特に何も影響はありませんでした)
    Warning: You are installing software that contains unsigned content. The authenticity or validity of this software cannot be established. Do you want to continue with the installation?
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.core_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.archives.feature_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.jdt.integration_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.ui_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.archives.webtools_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.archives.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.classpath.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.classpath.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.dmr_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.doc.user_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.jmx.integration_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.jmx.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.as7_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.management.wildfly9_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.rse.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.rse.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.server.rse.integration.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\features\org.jboss.ide.eclipse.as.serverAdapter.wtp.feature_3.1.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.ui.mbeans_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.wtp.core_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.ide.eclipse.as.wtp.ui_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.archives.scanner_3.6.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.archives.scanner.feature_3.6.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.tools.as.catalog_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.as.runtimes.integration_3.1.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.common.jdt.debug_3.7.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.checkup_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.core_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.foundation.ui_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.core_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.jmx.feature_1.7.0.Beta2-v20150723-0026-B29
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.core_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.tools_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.jvmmonitor.ui_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.local_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.jmx.ui_1.7.0.Beta2-v20150723-0026-B29.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.runtime.core_3.1.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.runtime.core.feature_3.1.0.Beta2-v20150724-1456-B25
      C:\usr\bin\eclipse\plugins\org.jboss.tools.runtime.ui_3.1.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\plugins\org.jboss.tools.stacks.core_1.2.0.Beta2-v20150724-1456-B25.jar
      C:\usr\bin\eclipse\features\org.jboss.tools.stacks.core.feature_1.2.0.Beta2-v20150724-1456-B25
      C:\usr\bin\eclipse\plugins\org.jboss.tools.usage_2.1.0.Beta2-v20150724-1456-B25.jar
    
    とりえず、OKを押して継続すると、無事完了したので、YesをクリックしてEclipseを再起動
  7. JBoss Tools UsageダイアログでYesをクリックして、もう一度「No servers are available.Click this link ....」を選択





    すると、やっと、WildFly 9.x(Experimental)が表示されます。

    さっそく、選択して起動してみましょう。
  8. ここはそのまま、Next>をクリック



    Home Directoryに、$WFLY_HOMEを指定する。
    ダイアログの上部に、JDKの警告が表示されている場合は、JDKのパスを登録します。
    ダイアログ中央右のInstalled JREsボタンをクリックする。

    画面上部の右、Add..ボタンをクリック

    Standard VMを選択したまま、Next>をクリック

    FinishをクリックするとJDK1.8.0_XXが追加されたことが確認できます。
    チェックボックスを選択して、OKボタンをクリックする。
  9. New Server画面で、Alternate JREのオプションを選択して、8.で追加したJDKを選択すると、警告が消えたことが確認できる。

    ダイアログ上部の、警告メッセージが消えます。Finishボタンを押すと、ServersタブにWildFlyが追加され、設定の完了です。

EclipseからWildFlyを起動してみよう

  1. ServersタブからWildFly 9.Xを選択して、右クリックし、ショートカットメニューからStartをクリックする。
  2. 自動的にConsoleタブに切り替わりますので、Started in XXXXmsと表示されると、起動完了です。
  3. ブラウザを起動して、「http://localhost:8080/」にアクセスして、以下のような画面が表示されると起動OKです。

次のブログではサンプルプログラムを作成して、実際にプログラムをデプロイしてみます。