JP2010079400A - プロパティファイル読み込みシステムと方法およびプログラム - Google Patents

プロパティファイル読み込みシステムと方法およびプログラム Download PDF

Info

Publication number
JP2010079400A
JP2010079400A JP2008244256A JP2008244256A JP2010079400A JP 2010079400 A JP2010079400 A JP 2010079400A JP 2008244256 A JP2008244256 A JP 2008244256A JP 2008244256 A JP2008244256 A JP 2008244256A JP 2010079400 A JP2010079400 A JP 2010079400A
Authority
JP
Japan
Prior art keywords
setting
property file
file
property
setting object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008244256A
Other languages
English (en)
Other versions
JP5097070B2 (ja
Inventor
Yusuke Miyata
悠輔 宮田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Information Systems Ltd
Original Assignee
Hitachi Information Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Information Systems Ltd filed Critical Hitachi Information Systems Ltd
Priority to JP2008244256A priority Critical patent/JP5097070B2/ja
Publication of JP2010079400A publication Critical patent/JP2010079400A/ja
Application granted granted Critical
Publication of JP5097070B2 publication Critical patent/JP5097070B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プロパティファイルの設定内容を Java(登録商標)アプリケーションプログラムで利用する場合における手順を統一化すると共にアプリケーション固有の機能を独自に実装できるようにする。
【解決手段】設定ファイル分析機能203により、プロパティファイル206を分析し、プロパティファイル206中の設定値より、どの設定オブジェクトを生成するのかを決定し、この決定に基づき、設定オブジェクト生成機能204により、当該設定オブジェクト207を生成し、生成した設定オブジェクト207に対して、プロパティファイル206中の設定値を、ルールに則り格納することで、設定オブジェクト207の内容は、プロパティファイル206と同じ状態になり、さらに、設定ファイル検証機能205により、当該設定オブジェクト207の内容に対して、アプリケーション固有の機能を実装させ、呼び出し元の業務プログラムA202に引き渡す。
【選択図】図2

Description

本発明は、 Java(登録商標)アプリケーションプログラムで利用するプロパティファイルの情報(設定内容)を読み込む技術に係り、特に、プロパティファイルの設定内容をプログラムで利用する場合における手順を統一化すると共に、アプリケーション固有の機能を独自に実装することができる技術に関するものである。
一般的に、 Java(登録商標)アプリケーションソフトウェア(プログラム)を開発する時には、動作環境に関する設定情報(例:データベースのIDやパスワード)や、利用者ごとの設定情報(例:利用者のメールアドレス等)をプロパティファイルに記載し、開発した当該プログラムの開始時に、プロパティファイルの情報を読み込み、各種の設定内容を自動的に取り込むことで当該プログラムが動作する。
このように、プロパティファイルに設定情報を記載することで、ソースコードから、動作環境に依存する設定を外部で管理できるようになる。また、プロパティファイルは単純なテキストファイルである為に、エンドユーザであっても利用できるという利点があり、広く利用されている。
従来の Java(登録商標)アプリケーション開発におけるプロパティファイルの情報を取り込む技術としては次の(1)、(2)の技術がある。
(1)最も一般的な手段として、Sun Microsystems(登録商標)社が標準として公開している、コンピュータを制御する為のプログラムの手続き群である Java(登録商標)標準API(Application Programing Interface)を利用して、任意のロジックにより、プロパティファイルの内容を取得する技術がある。
(2)プロパティファイルの定義書から自動的にソースコードを生成することによりプロパティファイルの内容を取得する技術がある。この技術の代表的なものとしては、例えば、非特許文献1〜3に記載されている、オープンソースソフトウェアであるblanco FrameworkのblancoResourceBundleがある。
しかしながら、アプリケーション(プログラム)が大規模であったり、機能追加を繰り返すことにより、プロパティファイル中の設定項目が増える。このため、管理可能な単位に複数のプロパティファイルが定義される。このことにより、次の(A)と(B)の問題点が指摘できる。
(A)複数のプロパティファイルが定義された場合には、プロパティファイルの内容を読み込み、設定内容を取り込むプログラムも、各プロパティフィアル毎に複数必要になる。一般的には、設定ファイルの種類が増える毎に、 Java(登録商標)標準APIを用いて当該設定ファイルの内容を取り込むプログラムが作成されることになる。
このように複数のプログラムが作成されてしまうことで、その後の保守の煩雑さや、アプリケーションの統一感の欠如といった問題を招くことになる。このような問題に対しては、人間の努力(人手)による手順のルール化・共通化が必要となる。
(B) Java(登録商標)標準APIの欠陥は、汎用性がある為にルール化されないという点にある。この問題を解決する技術として、例えば、上述の非特許文献1〜3に挙げたプロパティファイルの設定内容を取り込むことができるソースコードを自動的に生成するという技術がある。
しかし、このようなソースコードの自動生成については問題点があり、代表的な問題点としては次の(B−1)、(B−2)の点が挙げられる。
(B−1)自動生成されたソースプログラムに修正を加えると、再度、自動生成が必要になった時に、修正した箇所についての見直しが必要となる。
(B−2)上記の(B−1)問題を解決するには、ソースコードの自動生成に対してアプリケーション固有の機能を実装する必要があり、ソースコードの自動生成を行う機能を追加するコストが必要である。さらに、機能追加や機能変更に関しては、再度、ソースコードの自動生成が必要となる。
blancoResourceBuncle [平成20年9月9日検索]、インターネット<URL : http://www.igapyon.jp/blanco/blancoresourcebundle.html 株式会社NTTデータビジネスブレインズ オープンソリューション [平成20年9月9日検索]、インターネット<URL : http://www.nttd−bb.com/solution/open−source.html SourceForge.JP blanco Framework [平成20年9月9日検索]、インターネット<URL : http://sourceforge.jp/projects/blancofw/
解決しようとする問題点は、従来の技術では、複数のプロパティファイルが定義された場合には、各プロパティファイルの設定内容を取り込むための Java(登録商標)標準APIを用いたプログラムも複数必要となり、その後の保守の煩雑さや、アプリケーションの統一感の欠如といった問題を招くことになり、このような問題に対しては、人間の努力(人手)による手順のルール化・共通化が必要となる点と、 Java(登録商標)標準APIの欠陥(汎用性がある為にルール化されないという点)を解決するために、プロパティファイルの設定内容を取り込むことができるソースコードを自動的に生成する従来技術では、(B−1)自動生成されたソースプログラムに修正を加えると、再度、自動生成が必要になった時に、修正した箇所についての見直しが必要となると共に、(B−2)上記の(B−1)問題を解決するには、ソースコードの自動生成に対してアプリケーション固有の機能を実装する必要があり、ソースコードの自動生成を行う機能を追加するコストが必要であり、さらに、機能追加や機能変更に関しては、再度、ソースコードの自動生成が必要となる点である。
本発明の目的は、これら従来技術の課題を解決し、プロパティファイルの設定内容を JAVA(登録商標)アプリケーションプログラムで利用する場合において、手順を統一化する機能とアプリケーション固有の機能を独自に実装できるプログラムを提供することである。
上記目的を達成するため、本発明では、分析機能により、プロパティファイルを分析し、プロパティファイル中の設定値より、どの設定オブジェクトを生成するのかを決定し、この決定に基づき、設定オブジェクト生成機能により、当該設定オブジェクトを生成し、生成した設定オブジェクトに対して、プロパティファイル中の設定値を、ルールに則り格納する。この時点で、設定オブジェクトの内容は、プロパティファイルと同じ状態になる。本発明では、さらに、設定ファイル検証機能により、当該設定オブジェクトの内容に対して、アプリケーション固有の機能を実装する。このようにして、検証を終えて、固有機能を実装した設定オブジェクトは、業務ロジックを担当するモジュールに引き渡され、当該業務ロジックにおいて、プロパティファイルの設定内容が利用可能となる。
本発明をアプリケーションプログラム開発の初期工程から採用することにより次の効果が期待できる。
(1)設定ファイルオブジェクト生成プログラムは、共通部品的な性格を持つことから、プロパティファイルの読み込みロジックを統一でき、プログラマが Java(登録商標)標準APIを利用せずに、簡単に、プロパティファイルの内容を取り込むことができるようになる。簡単に利用できるということは、ソースコード量を削減し、煩雑さを解消するという効果がある。
(2)生成される設定ファイルオブジェクトに対して検証を行う機能を有しており、拡張可能な形で提供する為に、アプリケーション固有の機能を実装することが可能である。これは、ソースコードの自動生成で問題となる自動生成後のソースコードに対する機能追加や、自動生成のロジック修正に関する問題点を解消する。
(3)副次的効果も得られる。すなわち、プロパティファイルと設定オブジェクトは1対1の関係になるので、プロパティファイルの設定内容が何処に利用されるかを追跡するのがたやすくなる。一般的に、オブジェクト化されたものを追跡するのは容易であるが、 Java(登録商標)標準APIを利用してプロパティファイルの設定を取り込んだ場合には、何処のオブジェクトで管理されるのかは不定である。
以下、図を用いて本発明を実施するための最良の形態例を説明する。図1は、本発明に係る設定ファイル取り込みシステムを具備したサーバコンピュータ装置の構成例を示すブロック図であり、図2は、本発明に係る設定ファイル取り込みシステムの構成例を示すブロック図、図3は、図2における設定ファイル分析機能と設定オブジェクト生成機能の処理動作例を示すフローチャート、図4は、図2における設定ファイル検証機能の処理動作例を示すフローチャート、図5は、図2におけるプロパティファイルの構成例を示す説明図、図6は、図2における設定オブジェクトのクラスの具体例を示す説明図、図7は、図2における設定オブジェクトのアクセサメソッドと設定内容の具体例を示す説明図である。
図1において、101は本発明に係る設定ファイル取り込みシステムを具備したサーバコンピュータ装置(図中「サーバ」と記載)、102はネットワークを介してサーバコンピュータ装置101にアクセスするクライアントコンピュータ装置(図中「クライアント」と記載)であり、サーバコンピュータ装置101とクライアントコンピュータ装置102のそれぞれは、CPU(Central Processing Unit)や主メモリ、表示装置、入力装置、外部記憶装置を具備し、光ディスク駆動装置等を介してCD−ROM等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みCPUで処理することにより、業務プログラムA処理部103、業務プログラムB処理部104、業務プログラムC処理部105、設定ファイル取り込みプログラム処理部107等によるプログラムされたコンピュータ処理を実行する。
クライアントコンピュータ装置102は、サーバコンピュータ装置101上の業務プログラムA処理部103より何らかの実行結果を受け取るものである。本例では、このクライアントコンピュータ装置の形態は特定する必要がない。例えば、業務プログラムA処理部103がWEBアプリケーションプログラムを実行する場合は、クライアントコンピュータ装置102はWEBブラウザとなる。
サーバコンピュータ装置101における業務プログラムA処理部103は、処理内容のそれぞれ異なる業務プログラムB処理部104と業務プログラムC処理部105の設定ファイルであるプロパティファイル106を共有する別々のロジックが実装されたプログラムである。
これらは、設定ファイル取り込みプログラム処理部107を介して、プロパティファイル106の設定内容を利用する。
設定ファイル取り込みプログラム処理部107は、図2において、設定ファイル取り込みプログラム処理部201として示され、以下、この図2を用いて、設定ファイル取り込みプログラム処理部201(107)の処理動作について説明する。
図2においては、設定ファイル取り込みプログラム処理部201の内部構成と共に、この設定ファイル取り込みプログラム処理部201と、業務プログラムA処理部202およびプロパティファイル206間でのデータの流れを示している。
図2に示すように、設定ファイル取り込みプログラム処理部201は、設定ファイル分析機能203と、設定オブジェクト生成機能204、設定ファイル検証機能205を具備している。
設定ファイル分析機能203は、業務プログラムA処理部202が利用する設定オブジェクト207に必要な情報を、プロパティファイル206を解析して求めてメモリ208に展開する。
設定オブジェクト生成機能204は、設定オブジェクト207に必要な情報をメモリ208から取り込み、設定オブジェクト207を生成する。
設定ファイル検証機能205は、設定オブジェクト生成機能204が生成した設定オブジェクト207を読み込み、設定内容に対して業務プログラムA処理部202が実行するアプリケーションプログラムに固有の検証作業を行う。
この設定ファイル検証機能205による検証作業の結果に問題が無い場合、業務プログラムA処理部202は、設定オブジェクト207を利用できるようになる。
設定ファイル取り込みプログラム処理部201は、外部の業務プログラムA処理部202からの処理呼出(S1)があると、まず、設定ファイル分析機能203を起動して、プロパティファイル206からの情報の読み込み(S2)を実行し、読み込んだ情報を分析して結果をメモリ208に出力する(メモリ出力(S3))。
次に設定ファイル取り込みプログラム処理部201は、設定オブジェクト生成機能を起動して、メモリ208からの情報の読み込み(S4)を実行し、当該情報を用いて設定オブジェクト207の生成(S5)を行い、その後、設定ファイル検証機能205を起動して、設定オブジェクト207に対する検証(S6)を実行する。
以下、このような設定ファイル取り込みプログラム処理部201における設定ファイル分析機能203と設定オブジェクト生成機能204の処理動作例を、図3を用いて説明する。
図3において、設定ファイル分析機能203と設定オブジェクト生成機能204からなる設定ファイル取り込みプログラム処理部201の処理起動契機は、外部の業務プログラムA処理部202からの処理呼出(S1)であり、この業務プログラムA処理部202から呼び出されることにより設定ファイル取り込みプログラム処理部201は処理を開始する(ステップS301)。
設定ファイル分析機能203は、まず、業務プログラムA処理部202が必要とするプロパティファイル206を読み込む(ステップS302)。
プロパティファイル206自身は、図5におけるファイルイメージ501として示すように、単純なテキストファイルであり、行の先頭が「#」である場合と、何も記述が無い行に関しては無視される為、処理には影響はない。尚、図5におけるファイルイメージ501のプロパティファイルのサンプル設定内容を、表形式に表現したのが図5における表形式502である。
次に、設定ファイル分析機能203は、読み込んだプロパティファイル206の解析を行い、設定一覧を作成してメモリ208に格納する(ステップS303)。この処理は、プロパティファイル206の状態を、設定項目と設定値の対応表としてメモリ208上に展開することであり、対応表を可視化すると図5における表形式502に示す内容と同等である。
図5の表形式502における設定項目の「config.bean」は、利用する設定オブジェクトのFQCN(Fully Qualified Class Name)を指し、本例ではオブジェクト「sample.ConfigBean」を利用することになる。
尚、FQCNとは、完全修飾クラス名のことであり、 Java(登録商標)の世界で唯一のオブジェクト名を指すことが可能な記述方法のことである。本来、FQCNはドメイン名を指定する必要があるが、ここでは簡易表現の為に省略している。
次に、設定オブジェクト生成機能204の処理に移り、この設定オブジェクト生成機能204は、まず、図5の表形式502において設定項目「config.bean」に対する設定値として指定されているオブジェクト「sample.ConfigBean」から、設定オブジェクト207に格納できる入力用アクセサメソッド(Accessor Method)一覧を構築する(ステップS304)。
尚、アクセサメソッドとは、設定オブジェクト207の外部(本例では、業務プログラムA処理部103,202、業務プログラムB処理部104、業務プログラムC処理部105など)から、当該設定オブジェクト207の属性(データ)に対してアクセス(入力と出力)する為に用意されたメソッド(操作)のことである。
ここで、入力用アクセサメソッド一覧および出力用アクセサメソッド一覧の構築手順について説明する。結論から述べると、入力用アクセサメソッド一覧および出力用アクセサメソッド一覧の構築とは、図7に示すアクセサメソッド一覧701を作成することである。
アクセサメソッド一覧701における入力用アクセサメソッド名および出力用アクセサメソッド名の作成ルールは、アプリケーションにより独自に定義すれば良いが、ここでは、もっとも一般的と思われるルールに従ってアクセサメソッド名を決定している。このルールについて下記のように定義する。
入力用アクセサメソッド名の生成ルールとして「set+設定項目(図5の表形式502に示すプロパティファイルにおける設定項目)」、出力用アクセサメソッド名の生成ルールとして「get+設定項目(図5の表形式502に示すプロパティファイルにおける設定項目)」と定義する。ただし、設定項目中にドット(「.」)が含まれる場合は、このドット(「.」)を削除し、次の文字を大文字に置換する。
続いて、設定オブジェクト生成機能204は、プロパティファイル206の設定値(/uap/input/data、/uap/output/dataなど)を格納する為の設定オブジェクト207を生成する(ステップS305)。
このステップS305の処理で生成する設定オブジェクト207を決定するのが、先に述べたプロパティファイル206の図5に示す表形式502中に定義されている「config.bean」の設定値である。この図5の表形式502の例では、「sample.ConfigBean」という名前の設定オブジェクトを生成する(図6の設定オブジェクトのクラス図を参照)。
尚、このsample.ConfigBeanは事前に用意されたものであり、図6において示すように、「fileInput:File」、「fileOutput:File」、「stringErrMessage001:String」、「stringErrMessage002:String」、「stringErrMessage003:String」等の属性(データ)602と、「getFileInput():File」、「setFileInput(File):void」、「getFileOutput():File」、「setFileOutput(File):void」、「getStringErrMessage001():String」、「setStringErrMessage001(String):void」、「getStringErrMessage002():String」、「setStringErrMessage002(String):void」、「getStringErrMessage003():String」、「setStringErrMessage003(String):void」等の操作(アクセサメソッド)603からなる。例えば、fileInputのアクセサメソッド601において示すように、出力用アクセサメソッドとして「getFileInput()」、入力用アクセサメソッドとして「setFileInput(File)」が定義されている。
より詳細には、図7(a)のアクセサメソッド一覧701に示すように、入力用アクセサメソッド名として、「setFileInput」、「setFileOutput」、「setStringErrMessage001」、「setStringErrMessage002」、「setStringErrMessage003」があり、
出力用アクセサメソッド名として、「getFileInput」、「getFileOutput」、「getStringErrMessage001」、「getStringErrMessage002」、「getStringErrMessage003」がある。
尚、図7(b)における「設定フィアルの内容を反映した設定オブジェクトの状態702」は、設定オブジェクト生成機能204が最終的に生成する設定オブジェクトの内容を示しており、各属性(データの名前)の設定値が示されている。例えば、属性「fileInput」に対しては設定値「/uap/input.data」が対応付けられ、同様に、属性「fileOutput」に対しては設定値「/uap/output.data」が、属性「stringErrMessage001」に対しては設定値「入力ファイルがありません」、属性「stringErrMessage002」に対しては設定値「出力ファイルの生成に失敗しました」、属性「stringErrMessage003」に対しては設定値「null」が対応付けられている。
設定オブジェクト生成機能204は、上述の図7(a)におけるアクセサメソッド一覧701に示す入力用アクセサメソッド名の一覧作成のためのループ処理を開始する(ステップS306)。
このループ処理では、まず、図7(a)のアクセサメソッド一覧701における入力用アクセサメソッド名と、図5の表形式502に示す内容のプロパティファイルの設定項目から割り出したアクセサメソッド名とを比較し(ステップS307)、同じ設定項目がある場合には、設定オブジェクト207に、プロパティファイルにおける設定値(図5の表形式502における設定値)を格納する(ステップS308)。
このループ処理を、図7(a)のアクセサメソッド一覧701における入力用アクセサメソッド名の全てに対して実行することで(ステップS309)、図7(b)における「設定ファイルの内容を反映した設定オブジェクトの状態702」に示すようにして、設定オブジェクト207の属性(データ)にプロパティファイルの設定内容が格納できることになる。
以上の処理により、図7の「設定ファイルの内容を反映した設定オブジェクトの状態702」に示す設定オブジェクト207が生成される。尚、図7の「設定ファイルの内容を反映した設定オブジェクトの状態702」における属性「stringErrMessage003」の設定値である「null」とは、初期値のことであり、ここでは、この項目(属性)には設定値が何も設定されなかったことを示している。
次に、図4を用いて、設定ファイル取り込みプログラム処理部201における設定ファイル検証機能205の処理動作を説明する。
設定ファイルの検証機能205は、アプリケーション毎に要件の異なる固有の機能であることから、ここでは、検証内容については、「設定オブジェクトには項目値が設定されなくてはならない」いう検証を例に説明する。
まず、設定ファイルの検証機能205は、設定ファイル生成機能204で生成された設定オブジェクト207を取り込み(ステップS401)、図7のアクセサメソッド一覧701における出力用アクセサメソッド一覧を用いて、取り込んだ設定オブジェクト207に設定されている設定値を取得する(ステップS402)。
次に、設定ファイルの検証機能205は、アプリケーション固有で実装可能な検証処理を実行する。今回の検証では、「設定オブジェクトには項目値が設定されなくてはならない」という前提であるために、まず、「設定値がnull」であるか否かを判定する(ステップS403)。
ここで、設定値が「null」とは、初期値のまま値が変更されなかったことであり、項目値が設定されなかったということになる。このことから、図7の設定ファイルの内容を反映した設定オブジェクトの状態702に示す各データ(属性)において、「fileInput」と「fileOutput」および「stringErrMessage001」、「stringErrMessage002」に関しての検証結果は合格となるが、「stringErrMessage003」に関しては設定値が「null」であるために不合格となる。
今回の例で言えば、「stringErrMessage003」が不合格である為に、設定ファイル取り込みプログラム処理部201の呼び出し元である業務プログラムA処理部202に対しては不合格の通知を出す(ステップS405)。
もしも、図7の設定ファイルの内容を反映した設定オブジェクトの状態702においての定義で、「stringErrMessage003」が無い場合を想定すると、ステップS403での検証結果は合格となり、業務プログラムA処理部202に対して、設定値が設定された設定オブジェクトを渡す(ステップS404)。
これにより、業務プログラムA処理部202は、プロパティファイル206を参照する必要もなく、設定オブジェクト207から、図7のアクセサメソッド一覧701における各アクセサメソッド(出力用アクセサメソッド)を利用して、プロパティファイル206の設定内容を利用することが可能となる。
以上、図1〜図7を用いて説明したように、本例の設定ファイル取り込みプログラム処理部107,201は、プログラムされたコンピュータ処理によって、呼び出し元の Java(登録商標)アプリケーションのプロパティファイルを読み込み、当該プロパティファイルの各設定項目とその設定値を呼び出し元の Java(登録商標)アプリケーションに引き渡すシステムとして機能し、プログラムされたコンピュータ処理を実行する機能として、図示していないファイル記憶処理機能と、設定ファイル分析機能203、設定オブジェクト生成機能204、設定ファイル検証機能205とを有し、ファイル記憶処理機能により、複数の Java(登録商標)アプリケーションが共通に利用する設定項目と設定値をテキストで記述したプロパティファイル206を記憶装置に記憶し、設定ファイル分析機能203により、呼び出し元の Java(登録商標)アプリケーション(業務プログラムA202)が利用するプロパティファイルを読み出し、このプロパティファイルにおける各設定項目と各設定項目の設定値を抽出し、設定オブジェクト生成機能204により、設定ファイル分析機能203が抽出した当該プロパティファイルの設定項目と設定値を格納する設定オブジェクト207を生成し、設定ファイル検証機能205により、設定オブジェクト生成機能204が生成した設定オブジェクト207を読み込み、設定オブジェクト207に格納された設定項目と設定値に対する呼び出し元の Java(登録商標)アプリケーション(業務プログラムA202)固有の検証を行い、この設定ファイル検証機能205での検証結果に応じて、設定オブジェクト207に格納された当該プロパティファイル206の設定項目と設定値の呼び出し元の Java(登録商標)アプリケーション(業務プログラムA202)への引き渡しを制御する。
尚、プロパティファイル206は、当該プロパティファイル206に対して生成される設定オブジェクト207の生成に用いる図6にしめす設定オブジェクト(602,603)を指定する設定項目と設定値(config.bean=sample.ConfigBean)を含み、設定オブジェクト生成機能204は、プロパティファイル206に含まれる設定項目と設定値(config.bean=sample.ConfigBean)で指定される設定オブジェクト(sample.ConfigBean)を利用して、設定オブジェクト207を生成する。
さらに、設定オブジェクト生成機能204は、設定ファイル分析機能203が抽出したプロパティファイル206の設定項目に対応する設定値の入出力に用いる入力用アクセサメソッドと出力用アクセサメソッド(701)を、設定オブジェクト(sample.ConfigBean)から抽出して設定オブジェクト207に格納すると共に、格納した入力用アクセサメソッドで入力される当該プロパティファイル206の設定値を設定オブジェクト207に格納する。
また、設定ファイル分析機能203が抽出したプロパティファイル206の設定項目と、設定オブジェクト(sample.ConfigBean)に格納される入力用アクセサメソッドと出力用アクセサメソッドのそれぞれの名称は、予め定められた変換ルールで対応付けられており、設定オブジェクト生成機能204は、設定ファイル分析機能203が抽出した当該プロパティファイル206の設定項目に予め定められた変換ルールで対応付けられた入力用アクセサメソッドと出力用アクセサメソッドを設定オブジェクト(sample.ConfigBean)から抽出する。
また、設定ファイル検証機能205は、設定オブジェクト生成機能204が生成した設定オブジェクト207を読み込み、この設定オブジェクト207に格納された出力用アクセサメソッドを用いて、当該設定オブジェクト207に格納されている設定値を取得し、取得した設定値を用いて、呼び出し元の Java(登録商標)アプリケーション(業務プログラムA202)固有の検証を行う。
このように、本例では、設定ファイル分析機能203により、プロパティファイル206を分析し、プロパティファイル206中の設定値より、どの設定オブジェクトを生成するのかを決定し、この決定に基づき、設定オブジェクト生成機能204により、当該設定オブジェクト207を生成し、生成した設定オブジェクト207に対して、プロパティファイル206中の設定値を、ルールに則り格納する。
この時点で、設定オブジェクト207の内容は、プロパティファイル206と同じ状態になり、さらに、設定ファイル検証機能205により、当該設定オブジェクト207の内容に対して、アプリケーション固有の機能を実装する。このようにして、設定ファイル検証機能205による検証を終えて、固有機能を実装した設定オブジェクト207は、業務ロジックを担当するモジュールに引き渡され、当該業務ロジックA202において、プロパティファイルの設定内容が利用可能となる。
以上のように、本例の技術を JAVA(登録商標)アプリケーション開発の初期工程から採用することにより次の効果が期待できる。
設定ファイルオブジェクト生成プログラムは、共通部品的な性格を持つことから、プロパティファイルの読み込みロジックを統一でき、プログラマが Java(登録商標)標準APIを利用せずに、簡単に、プロパティファイルの内容を取り込むことができるようになる。簡単に利用できるということは、ソースコード量を削減し、煩雑さを解消するという効果がある。
生成される設定ファイルオブジェクトに対して検証を行う機能を有しており、拡張可能な形で提供する為に、アプリケーション固有の機能を実装することが可能である。これは、ソースコードの自動生成で問題となる自動生成後のソースコードに対する機能追加や、自動生成のロジック修正に関する問題点を解消する。
副次的効果も得られる。すなわち、プロパティファイルと設定オブジェクトは1対1の関係になるので、プロパティファイルの設定内容が何処に利用されるかを追跡するのがたやすくなる。一般的に、オブジェクト化されたものを追跡するのは容易であるが、 Java(登録商標)標準APIを利用してプロパティファイルの設定を取り込んだ場合には、何処のオブジェクトで管理されるのかは不定である。
尚、本発明は、図1〜図7を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、業務プログラムA処理部103のプログラムAでプロパティフィル106,206を利用する例で説明しているが、業務プログラムB処理部104のプログラムBもしくは業務プログラムC処理部105のプログラムCでプロパティフィル106,206を利用する場合においても、図6に示す設定ファイル(sample.ConfigBean)を利用することで、図7(b)の設定フィアルの内容を反映した設定オブジェクトの状態702に示す内容と同じ設定オブジェクトの状態が得られ、このような設定オブジェクトに対して、設定ファイル検証機能205により、業務プログラムB処理部104のプログラムBもしくは業務プログラムC処理部105のプログラムCに固有の検証を実装することとなる。
また、本例のコンピュータ構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、FD(Flexible Disk)等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
本発明に係る設定ファイル取り込みシステムを具備したサーバコンピュータ装置の構成例を示すブロック図である。 本発明に係る設定ファイル取り込みシステムの構成例を示すブロック図である。 図2における設定ファイル分析機能と設定オブジェクト生成機能の処理動作例を示すフローチャートである。 図2における設定ファイル検証機能の処理動作例を示すフローチャートである。 図2におけるプロパティファイルの構成例を示す説明図である。 図2における設定オブジェクトのクラスの具体例を示す説明図である。 図2における設定オブジェクトのアクセサメソッドと設定内容の具体例を示す説明図である。
符号の説明
101:サーバコンピュータ装置(サーバ)、102:クライアントコンピュータ装置(クライアント)、103,202:業務プログラムA処理部、104:業務プログラムB処理部、105:業務プログラムC処理部、106,206:プロパティファイル、107,201:設定ファイル取り込みプログラム処理部、203:設定ファイル分析機能、204:設定オブジェクト生成機能、205:設定ファイル検証機能、207:設定オブジェクト、208:メモリ(情報)、501:ファイルイメージ、502:表形式、601:fileInputのアクセサメソッド、602:属性(データ)、603:操作(アクセサメソッド)、701:アクセサメソッド一覧、702:設定フィアルの内容を反映した設定オブジェクトの状態。

Claims (7)

  1. プログラムされたコンピュータ処理によって、呼び出し元の Java(登録商標)アプリケーションのプロパティファイルを読み込み、該プロパティファイルの各設定項目とその設定値を呼び出し元の Java(登録商標)アプリケーションに引き渡すシステムであって、
    プログラムされたコンピュータ処理を実行する手段として、
    複数の Java(登録商標)アプリケーションが共通に利用する設定項目と設定値をテキストで記述したプロパティファイルを記憶装置に記憶する記憶処理手段と、
    呼び出し元の Java(登録商標)アプリケーションが利用するプロパティファイルを読み出し、該プロパティファイルにおける各設定項目と各設定項目の設定値を抽出するファイル分析手段と、
    該ファイル分析手段が抽出した当該プロパティファイルの設定項目と設定値を格納する第1の設定オブジェクトを生成する設定オブジェクト生成手段と、
    該設定オブジェクト生成手段が生成した第1の設定オブジェクトを読み込み、該第1の設定オブジェクトに格納された設定項目と設定値に対する上記呼び出し元の Java(登録商標)アプリケーション固有の検証を行うファイル検証手段と
    を有し、
    上記ファイル検証手段での検証結果に応じて、上記第1の設定オブジェクトに格納された当該プロパティファイルの設定項目と設定値の上記呼び出し元の Java(登録商標)アプリケーションへの引き渡しを制御することを特徴とするプロパティファイル読み込みシステム。
  2. 請求項1に記載のプロパティファイル読み込みシステムであって、
    上記記憶処理手段が記憶するプロパティファイルは、当該プロパティファイルに対して生成される上記第1の設定オブジェクトの生成に用いる第2の設定オブジェクトを指定する設定項目と設定値を含み、
    上記設定オブジェクト生成手段は、
    上記プロパティファイルに含まれる設定項目と設定値で指定される第2の設定オブジェクトを利用して、上記第1の設定オブジェクトを生成する
    ことを特徴とするプロパティファイル読み込みシステム。
  3. 請求項2に記載のプロパティファイル読み込みシステムであって、
    上記設定オブジェクト生成手段は、
    上記ファイル分析手段が抽出した当該プロパティファイルの設定項目に対応する設定値の入出力に用いる入力用アクセサメソッドと出力用アクセサメソッドを、上記第2の設定オブジェクトから抽出して上記第1の設定オブジェクトに格納すると共に、格納した入力用アクセサメソッドで入力される当該プロパティファイルの設定値を上記第1の設定オブジェクトに格納する
    ことを特徴とするプロパティファイル読み込みシステム。
  4. 請求項3に記載のプロパティファイル読み込みシステムであって、
    上記ファイル分析手段が抽出した当該プロパティファイルの設定項目と、上記第2の設定オブジェクトに格納される入力用アクセサメソッドと出力用アクセサメソッドのそれぞれの名称は、予め定められた変換ルールで対応付けられており、
    上記設定オブジェクト生成手段は、
    上記ファイル分析手段が抽出した当該プロパティファイルの設定項目に上記予め定められた変換ルールで対応付けられた入力用アクセサメソッドと出力用アクセサメソッドを上記第2の設定オブジェクトから抽出する
    ことを特徴とするプロパティファイル読み込みシステム。
  5. 請求項3もしくは請求項4のいずれかに記載のプロパティファイル読み込みシステムであって、
    上記ファイル検証手段は、
    上記設定オブジェクト生成手段が生成した上記第1の設定オブジェクトを読み込み、
    該第1の設定オブジェクトに格納された出力用アクセサメソッドを用いて該第1の設定オブジェクトに格納されている設定値を取得し、
    取得した設定値を用いて、上記呼び出し元の Java(登録商標)アプリケーション固有の検証を行う
    ことを特徴とするプロパティファイル読み込みシステム。
  6. プログラムされたコンピュータ処理によって、呼び出し元の Java(登録商標)アプリケーションのプロパティファイルを読み込み、該プロパティファイルの各設定項目とその設定値を呼び出し元の Java(登録商標)アプリケーションに引き渡すシステムのプロパティファイル読み込み方法であって、
    プログラムされたコンピュータ処理手順として、請求項1から請求項5のいずれかに記載のプロパティファイル読み込みシステムにおける各手段が実行する処理手順を含み、
    該各手段の処理手順により、
    呼び出し元の Java(登録商標)アプリケーションへのプロパティファイルの各設定項目とその設定値の引き渡し制御を行うことを特徴とするプロパティファイル読み込み方法。
  7. コンピュータを、請求項1から請求項5のいずれかに記載のプロパティファイル読み込みシステムにおける各手段として機能させるためのプログラム。
JP2008244256A 2008-09-24 2008-09-24 プロパティファイル読み込みシステムと方法およびプログラム Expired - Fee Related JP5097070B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008244256A JP5097070B2 (ja) 2008-09-24 2008-09-24 プロパティファイル読み込みシステムと方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008244256A JP5097070B2 (ja) 2008-09-24 2008-09-24 プロパティファイル読み込みシステムと方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010079400A true JP2010079400A (ja) 2010-04-08
JP5097070B2 JP5097070B2 (ja) 2012-12-12

Family

ID=42209806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008244256A Expired - Fee Related JP5097070B2 (ja) 2008-09-24 2008-09-24 プロパティファイル読み込みシステムと方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5097070B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200046499A (ko) * 2018-10-24 2020-05-07 삼성에스디에스 주식회사 부분 소스 코드의 컴파일 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316576A (ja) * 2002-04-25 2003-11-07 Hitachi Ltd アプリケーション制御方法及びその実施装置並びにその処理プログラム
JP2006504156A (ja) * 2002-02-15 2006-02-02 トリディウム・インコーポレーテッド リアルタイム・システム制御のためのコンポーネント・モデル
JP2007011586A (ja) * 2005-06-29 2007-01-18 Hitachi Software Eng Co Ltd ソフトウェアのメッセージ資源管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006504156A (ja) * 2002-02-15 2006-02-02 トリディウム・インコーポレーテッド リアルタイム・システム制御のためのコンポーネント・モデル
JP2003316576A (ja) * 2002-04-25 2003-11-07 Hitachi Ltd アプリケーション制御方法及びその実施装置並びにその処理プログラム
JP2007011586A (ja) * 2005-06-29 2007-01-18 Hitachi Software Eng Co Ltd ソフトウェアのメッセージ資源管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200046499A (ko) * 2018-10-24 2020-05-07 삼성에스디에스 주식회사 부분 소스 코드의 컴파일 장치 및 방법
KR102439456B1 (ko) 2018-10-24 2022-09-02 삼성에스디에스 주식회사 부분 소스 코드의 컴파일 장치 및 방법

Also Published As

Publication number Publication date
JP5097070B2 (ja) 2012-12-12

Similar Documents

Publication Publication Date Title
US10565095B2 (en) Hybrid testing automation engine
US10055238B2 (en) Method and apparatus for code virtualization and remote process call generation
EP3011442B1 (en) Method and apparatus for customized software development kit (sdk) generation
US7992127B2 (en) Method and system of encapsulating web site transactions for computer-aided generation of web services
US9098636B2 (en) White-box testing systems and/or methods in web applications
US8839107B2 (en) Context based script generation
JP2008117093A (ja) ユーザ操作記録・再現方法及び装置
JP4023803B2 (ja) ウェブアプリケーション開発支援装置、データ処理方法及びプログラム
US11487595B2 (en) API adapter creation device, API adapter creation method, and API adapter creation program
KR20090089601A (ko) 문서 작성용 응용 프로그램을 이용하여 문서의 양식과 입력데이터를 결합하여 자동으로 문서를 작성하는 문서 작성자동화 시스템 및 문서 작성 자동화 방법
CN112540924A (zh) 接口自动化测试方法、装置、设备及存储介质
CN115658529A (zh) 用户页面的自动化测试方法以及相关设备
JP5463717B2 (ja) アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置
US11977872B2 (en) Method and system for code maintenance
JP6436705B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
JP5097070B2 (ja) プロパティファイル読み込みシステムと方法およびプログラム
CN115470152A (zh) 测试代码生成方法、测试代码生成装置以及存储介质
JP6436704B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
Rahmel et al. Testing a site with ApacheBench, JMeter, and Selenium
JPWO2018083977A1 (ja) システム構築支援装置、方法およびプログラム
JP2013200844A (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
Gao et al. Generating open api usage rule from error descriptions
JP6353759B2 (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
Chelemen Modeling a web application for cloud content adaptation with ASMs
JP2015148925A (ja) プログラム生成装置および方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100817

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110524

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20111227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120921

R150 Certificate of patent or registration of utility model

Ref document number: 5097070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150928

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees