![]() |
||
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を取得して、ロジッククラス内で値を取得しています。
これらの値に差異がある場合、エラーメッセージを表示したのちに、アプリケーションを終了するようにしております。
簡易的なチェックのみなので、最新モジュールの自動ダウンロードや、ダウンロードページへの遷移といった機能は
こちらのサンプルロジッククラスの中には含んでおりません。