GroupSessionは新機能をプラグインとして追加することができます。
ここでは画面に「Hello World!」と表示する簡単なプラグインの作成手順を説明します。
このドキュメントは、Java、Apache Struts、Jakarta Antについての知識がある事を前提とします。
作成するファイルの一覧です。
下記の手順2で作成します。
menu_icon.gif
menu_icon_on.gif
menu_icon_click.gif
下記の手順3で作成します。
HelloWorldAction.java
HelloWorldForm.java
下記の手順4で作成します。
helloworld.jsp
下記の手順5で作成します。
struts_config.xml
下記の手順6で作成します。
plugin.xml
下記の手順7で作成します。
build.xml
新規プラグインの作成手順を説明します。
プラグインIDとは、GroupSessionからプラグインを識別するために使用する名前です。
使用する文字は必ず半角英数字、文字数は10文字以内にしてください。
日本語や記号・半角カナなどを使用、または10文字を超えると、追加したプラグインが
認識できない場合があります。
ここでは例として、プラグインIDは「newplugin」とします。
メニューアイコンには3つの画像が必要です。
ファイル名は下記の固定ファイル名、画像のサイズは全て100px × 30pxで作成してください。
| サンプル画像 | 固定ファイル名 | 説明 | |
|---|---|---|---|
| メニューアイコン | menu_icon.gif | ヘッダのメニューに 表示される画像 |
|
| オンマウス時アイコン | menu_icon_on.gif | アイコンにマウスを 乗せた時に表示される画像 |
|
| クリック時アイコン | menu_icon_click.gif | アイコンをクリック した時に表示される画像 |
メニューアイコンのひな形をダウンロードできます。
アイコン作成時の素材としてご利用ください。
作成したメニューアイコン用画像を、GroupSessionをインストールしたgsession3ディレクトリの中に
配置します。
Windowsでインストールガイドに従ってGroupSessionをインストールした場合
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\gsession3
となります。
以降、GroupSessionをインストールしたgsession3ディレクトリは「\gsession3」と表記します。
\gsession3
にプラグインディレクトリを作成します。
ディレクトリ名は手順1で決めたプラグインIDと同じにします。
ここでは「newplugin」になります。
\gsession3\newplugin
に画像用ディレクトリを作成します。
ディレクトリ名は固定で「images」としてください。
\gsession3\newplugin\images
に作成したメニューアイコン用画像をコピーします。
下記の様な階層構造になります。
gsession3
newplugin (手順1で決めたプラグインID)
images
menu_icon.gif
menu_icon_on.gif
menu_icon_click.gif
ソースファイルを作成します。
ActionクラスとFormクラスが最低限必要になります。
ここでは例として、「HelloWorldAction.java」と「HelloWorldForm.java」を作成します。
Actionクラスを作成する場合、
必ずjp.groupsession.v2.struts.AbstractGsActionを継承してください。
package jp.groupsession.v2.newplugin.helloworld;
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jp.groupsession.v2.struts.AbstractGsAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* <br>[機 能] HelloWorldのアクションクラス
* <br>[解 説]
* <br>[備 考]
*
* @author JTS
*/
public class HelloWorldAction extends AbstractGsAction {
/**
* <br>[機 能] アクションを実行する
* <br>[解 説]
* <br>[備 考]
* @param map ActionMapping
* @param form ActionForm
* @param req HttpServletRequest
* @param res HttpServletResponse
* @param con DB Connection
* @return ActionForward
* @throws Exception 実行時例外
*/
public ActionForward executeAction(ActionMapping map,
ActionForm form,
HttpServletRequest req,
HttpServletResponse res,
Connection con)
throws Exception {
return map.getInputForward();
}
}
Formクラスを作成する場合、
必ずjp.groupsession.v2.struts.AbstractGsFormを継承してください。
package jp.groupsession.v2.newplugin.helloworld;
import jp.groupsession.v2.struts.AbstractGsForm;
/**
* <br>[機 能] HelloWorldのフォームクラス
* <br>[解 説]
* <br>[備 考]
*
* @author JTS
*/
public class HelloWorldForm extends AbstractGsForm {
}
作成したソースファイルを、以下のディレクトリに配置します。
\gsession3\WEB-INF\plugin
にプラグインディレクトリを作成します。
ディレクトリ名は手順1で決めたプラグインIDと同じにします。
ここでは「newplugin」になります。
\gsession3\WEB-INF\plugin\newplugin
にソースディレクトリを作成します。
ディレクトリ名は固定で「src」としてください。
\gsession3\WEB-INF\plugin\newplugin\src
にパッケージの階層に合わせて、ディレクトリ階層を作成します。
ここでは「\jp\groupsession\v2\newplugin\helloworld」になります。
\gsession3\WEB-INF\plugin\newplugin\src\jp\groupsession\v2
\newplugin\helloworld
に作成したソースファイルをコピーします。
下記の様な階層構造になります。
gsession3
WEB-INF
plugin
newplugin (手順1で決めたプラグインID)
src
jp (以下パッケージに対応するディレクトリ)
groupsession
v2
newplugin
helloworld
HelloWorldAction.java
HelloWorldForm.java
画面への表示に使用するJSPファイルを作成します。
ファイル名は「helloworld.jsp」とします。
<%@ page pageEncoding="Windows-31J"
contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %>
<html:html>
<head>
<title>[GroupSession] HelloWorld</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel=stylesheet href='../common/css/default.css' type='text/css'>
</head>
<body class="body_03">
<html:form action="/newplugin/helloworld">
<%@ include file="/WEB-INF/plugin/common/jsp/header001.jsp" %>
<table width="100%">
<tr>
<td width="100%" align="center">
<p>Hello World!</p>
</td>
</tr>
</table>
<%@ include file="/WEB-INF/plugin/common/jsp/footer001.jsp" %>
</html:form>
</body>
</html:html>
※1行目の記述、
<%@ page pageEncoding="Windows-31J"
contentType="text/html; charset=UTF-8"%>
およびHTMLヘッダに記述する文字コードの設定はUTF-8にしてください。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
作成したJSPファイルを、以下のディレクトリに配置します。
\gsession3\WEB-INF\plugin\newplugin
にJSPディレクトリを作成します。
ディレクトリ名は固定で「jsp」としてください。
\gsession3\WEB-INF\plugin\newplugin\jsp
に作成したJSPファイルをコピーします。
下記の様な階層構造になります。
gsession3
WEB-INF
plugin
newplugin (手順1で決めたプラグインID)
jsp
helloworld.jsp
struts設定ファイルを作成します。
内容は下記の様に記述し、ファイル名は固定で「struts_config.xml」としてください。
赤字の部分を、作成したソースやプラグイン情報に合わせて書き替えます。
<?xml version="1.0" encoding="shift_jis" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<!-- ========== Form Bean Definitions =============== -->
<form-beans>
<!-- typeには作成したFormクラスをパッケージ名から記述します -->
<form-bean
name="helloworldForm"
type="jp.groupsession.v2.newplugin.helloworld.HelloWorldForm" />
</form-beans>
<!-- ========== Action Mapping Definitions ============= -->
<action-mappings>
<!-- HelloWorld -->
<!-- nameにはform-beanに記述したnameと同じ値を記述します -->
<!-- inputには作成したJSPファイルへのパスを記述します -->
<!-- typeには作成したActionクラスをパッケージ名から記述します -->
<action
name="helloworldForm"
path="/newplugin/helloworld"
scope="request"
input="/WEB-INF/plugin/newplugin/jsp/helloworld.jsp"
validate="false"
type="jp.groupsession.v2.newplugin.helloworld.HelloWorldAction">
</action>
</action-mappings>
</struts-config>
※1行目の記述には文字コードの設定部分があります。
<?xml version="1.0" encoding="Shift_jis" ?>
上記の様にShift_jisとした場合、設定ファイルを保存する時の文字コードは必ずShift_jisに設定してください。
設定ファイル1行目に記述した文字コードと、ファイル自体の文字コードが異なる場合、
追加したプラグインが正常に動作しない場合があります。
作成したstruts設定ファイルを、以下のディレクトリに配置します。
\gsession3\WEB-INF\plugin\newplugin
に作成したstruts設定ファイルをコピーします。
下記の様な階層構造になります。
gsession3
WEB-INF
plugin
newplugin (手順1で決めたプラグインID)
struts_config.xml
プラグイン設定ファイルを作成します。
内容は下記の様に記述し、ファイル名は固定で「plugin.xml」としてください。
赤字の部分をプラグイン情報に合わせて書き替えます。
<?xml version="1.0" encoding="Shift_jis" ?>
<plugin>
<!-- プラグインID -->
<!-- 手順1で決めたプラグインIDを記述します -->
<id>newplugin</id>
<!-- 名称 -->
<!-- プラグインの名称を記述します -->
<name>ニュープラグイン</name>
<!-- 説明 -->
<!-- プラグインの説明を記述します -->
<description>新しいプラグインです。</description>
<!-- トップメニューの情報を記述する 記述しない場合はメニューに表示しない -->
<topmenu-info>
<!-- メニューへの表示/非表示 -->
<!-- プラグインをメニューへ表示する場合は「true」と記述します -->
<view>true</view>
<!-- メニューアイコンクリック時にフレーム内に表示するURLを記述します -->
<!-- struts_config.xmlのactionのpathの値を元に、下記の様に記述 -->
<url>../newplugin/helloworld.do</url>
</topmenu-info>
<!-- ヘルプ情報を設定する。 -->
<help-info>
<!-- ヘルプの表示/非表示 -->
<view>false</view>
</help-info>
</plugin>
※1行目の記述には文字コードの設定部分があります。
<?xml version="1.0" encoding="Shift_jis" ?>
上記の様にShift_jisとした場合、設定ファイルを保存する時の文字コードは必ずShift_jisに設定してください。
設定ファイル1行目に記述した文字コードと、ファイル自体の文字コードが異なる場合、
追加したプラグインが認識できない、またはプラグインが正常に動作しない場合があります。
作成したプラグイン設定ファイルを、以下のディレクトリに配置します。
\gsession3\WEB-INF\plugin\newplugin
に作成したプラグイン設定ファイルをコピーします。
下記の様な階層構造になります。
gsession3
WEB-INF
plugin
newplugin (手順1で決めたプラグインID)
plugin.xml
GroupSessionでは、ソースのコンパイルにJakarta Antを使用します。
build設定ファイルとは、その際の設定を記述するファイルです。
ここでは、コンパイルおよび、コンパイル時に作成されたファイル・ディレクトリの削除が
行えるように設定します。
内容は下記の様に記述し、ファイル名は固定で「build.xml」としてください。
<?xml version="1.0" encoding="Shift_JIS"?>
<!--
====================================================
GroupSession3 newplugin
共通クラスのビルドが完了していること
create JTS
====================================================
-->
<project name="GroupSession3 newplugin" default="build" basedir=".">
<!--
====================================================
Properties: 変数の定義
====================================================
-->
<!-- ディレクトリ名の定義 -->
<property name="SRC.DIR" value="./src" />
<property name="PLGIN_CLS.DIR" value="./classes" />
<!-- Compile Options -->
<property name="BLD.TARGET" value="1.5" />
<property name="DEBUG" value="yes" />
<property name="DEPRECATION" value="true" />
<property name="SRC.ENC" value="Windows-31J" />
<!-- ClassPath -->
<path id="app_classpath">
<!-- OSのクラスパス -->
<pathelement path="${classpath}" />
<!-- LIBディレクトリ -->
<!-- アプリケーション共通lib -->
<fileset dir="../../../WEB-INF/convert/v1.1.7tov2.0.0/lib">
<include name="**/*.jar"/>
<include name="**/*.zip"/>
</fileset>
<fileset dir="../../../WEB-INF/lib">
<include name="**/*.jar"/>
<include name="**/*.zip"/>
</fileset>
<!-- アプリケーション 共通クラス -->
<pathelement location="../../../WEB-INF/classes" />
</path>
<!--
====================================================
INIT: 初期化
====================================================
-->
<target name="init"
description="init"
>
<tstamp>
<format property="YMDHMS"
pattern="yyyy.MM.dd hh:mm:ss"
/>
</tstamp>
<echo message="Project Name = ${ant.project.name}" />
<echo message="Project Root = ${basedir}" />
<echo message="JDK Version = ${ant.java.version}" />
<echo message="Building Time = ${YMDHMS}" />
<echo message="" />
>
</target>
<!--
====================================================
BUILD: Classファイルの作成(コンパイル)
====================================================
-->
<target name="build">
<mkdir dir="${PLGIN_CLS.DIR}" />
<javac
classpathref = "app_classpath"
destdir = "${PLGIN_CLS.DIR}"
target = "${BLD.TARGET}"
debug = "${DEBUG}"
deprecation = "${DEPRECATION}"
encoding = "${SRC.ENC}">
<src path="${SRC.DIR}" />
<compilerarg value="-Xlint:unchecked" />
<include name="**/*.java"/>
</javac>
</target>
<!--
====================================================
CLEAN:作成したClassファイルをディレクトリごと削除
====================================================
-->
<target name="clean">
<antcall target="init" />
<delete dir="${PLGIN_CLS.DIR}" />
</target>
</project>
※1行目の記述には文字コードの設定部分があります。
<?xml version="1.0" encoding="Shift_jis" ?>
上記の様にShift_jisとした場合、設定ファイルを保存する時の文字コードは必ずShift_jisに設定してください。
設定ファイル1行目に記述した文字コードと、ファイル自体の文字コードが異なる場合、
手順9で行うコンパイルが正常に動作しない場合があります。
作成したbuild設定ファイルを、以下のディレクトリに配置します。
\gsession3\WEB-INF\plugin\newplugin
に作成したbuild設定ファイルをコピーします。
下記の様な階層構造になります。
gsession3
WEB-INF
plugin
newplugin (手順1で決めたプラグインID)
build.xml
以上の全てのファイルを配置すると、このような階層構造になります。
gsession3
newplugin
images
menu_icon.gif
menu_icon_on.gif
menu_icon_click.gif
WEB-INF
plugin
newplugin
struts_config.xml
plugin.xml
build.xml
jsp
helloworld.jsp
src
jp
groupsession
v2
newplugin
helloworld
HelloWorldAction.java
HelloWorldForm.java
作成したソースコードをコンパイルします。
コマンドライン上で、build.xmlを配置したディレクトリへ移動します。
この例では下記のディレクトリになります。
\gsession3\WEB-INF\plugin\newplugin
コンパイルのコマンドを実行します。
コンパイル方法については GroupSessionをビルドする を参照してください。
tomcatを再起動することで設定が反映されます。
手順2で作成したプラグインアイコンがメニューに追加されます。

プラグインアイコンをクリックすると、「Hello World!」のページがフレーム内に表示されます。

メイン > 個人設定 > メニュー項目の設定にもプラグインが追加されるので、表示順の設定も可能です。

手順2〜8で作成するファイルとディレクトリ構成のサンプルを、こちらからダウンロードできます。
1) zipファイルを解凍後、「plugin_sample」ディレクトリの下に「gsession3」ディレクトリができます。
2) GroupSessionをインストールしたgsession3ディレクトリに、
解凍後の「gsession3」ディレクトリを上書きします。
3) 「手順9 ソースコードをコンパイルする」 に従ってコンパイルを行います。
4) tomcatを再起動すると上記の「Hello World!」プラグインが追加されます。