|
|
||
| Tips | Home | |
CAMCにバージョンチェックの機能を埋め込む方法です。
当ページでは、ロジッククラスを用いた方式を紹介しています。
前提として、RunClientConstants.wdgに以下の属性を設定してください。
<datas> <data name="MODULE_VERSION" value="1.0.0-2018.10.15" /> </datas>
このファイルは、クライアントへの配布モジュールにも含めており、
サーバ上にも配置しておくものとします。
また、モジュールに修正が加わったタイミングで、サーバ側と配布モジュールのバージョン番号を変更する運用とします。
public class VersionCheckLogicClass extends AbstractClient{
@Override
public int getIOParameter() throws Throwable {
return OK;
}
@Override
public int execute() throws Throwable {
String clientVersion = getConstantValue("MODULE_VERSION");
String serverVersion = getServerVersion();
if (serverVersion.equals(clientVersion)) {
return OK;
} else {
showErrorDialog("最新のバージョンがリリースされているようです。最新バージョンをサーバより取得してください。");
return SYSTEM_EXIT;
}
}
public String getServerVersion() throws SAXException, IOException, ParserConfigurationException {
URL url = getConfig().getCodeBase();
String serverConstants = url.toExternalForm() + "/conf/RunClientConstants.wdg";
Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(serverConstants);
NodeList nodeList = document.getElementsByTagName("data");
for(int i=0 ; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if(node instanceof Element) {
Element element = (Element)node;
if(element.getAttribute("name").equals("MODULE_VERSION")){
return element.getAttribute("value");
}
}
}
return "";
}
@Override
public void exit() throws Throwable {
}
}
このロジッククラスを、RunClientで最初に実行するモジュールに設定してください。
通常、ログイン画面や、メニュー画面となります。
このロジッククラスは、RunClientConstants.wdgのバージョン情報を元にチェックを行います。
クライアント側は、VisualFrame標準機能で、値を取得し、
サーバ側はHTTP通信を用いて、最新のRunClientConstants.wdgを取得して、ロジッククラス内で値を取得しています。
これらの値に差異がある場合、エラーメッセージを表示したのちに、アプリケーションを終了するようにしております。
簡易的なチェックのみなので、最新モジュールの自動ダウンロードや、ダウンロードページへの遷移といった機能は
こちらのサンプルロジッククラスの中には含んでおりません。