Thursday, 15. May 2008, 20:54:10
for文が正しく機能していなかったバグの修正(スタックがあふれてました)
templateが正しく機能していなかったバグの修正(スタックがあふれてました)
Tuesday, 13. May 2008, 17:39:30
色々なデータを扱うようにするため、変更しました。
設定ファイルは次の様になります。
sys
.documentRoot = %"C:\workSpace\PJ\PJ\"%%
.importDir = "imports/sample/category,imports/sample/class,imports/sample/templates,imports/test"
.encoding = "UTF-8"
.uploadDir = "uploadDir"
.debugMode = true
.dispError = true
.dispTime = false
sys::db::pjtest
.type = "postgres"
.host = "localhost"
.port = 5432
.database = "pj_test"
.user = "nagashima"
.password = "nagashima"
.maxconn = 10
変更点は見てのとおり、属性値の記述方法です。以前の記述方法では、同名の要素を複数作成することができませんでしたが、コレにより複数作成することが可能になります。
次のような記述が可能です。
conf::data
.name = "data name1"
.value = "value1"
conf::data
.name = "data name2"
.value = "value2"
このように同名の要素が複数ある場合、最後の要素が新規に作成されます。例ではdataが追加されます。
pjdf::elem.getElems( str name )は、合致した最後の要素を返します。
ループさせる場合は、次の様になります。
pjdf = pjdf::base;
root = pjdf.getElem( @path "conf" );
elems = root.getElems();
for( i = 0; elems[i], != void; i++ ){
echo [for].getName();
echo [for].getValueStr( "name" ) _ "<br />";
echo [for].getValueStr( "value" ) _ "<br />";
}
Monday, 12. May 2008, 22:39:54
各ファイル毎にimportをするのはちょっと面倒なのと、クラスファイルをパースしない様にする事が難しいためimportは設定ファイルで指定するように変更しました。
sys.importDir = "imports/sample/category,imports/sample/class,imports/sample/templates,imports/test"
このような設定が必要になります。
Monday, 12. May 2008, 03:52:50
category file のパスの変更
dir1/dir2/fileName.category.pj の場合
aa = new@dir1::dir2 className;
になります。categoryのファイル名はクラスファイルとは異なり任意になります。クラス名にしておくとわかりやすいです。
getValueClone が getMulti()わかりにくいので変更しました。
stmtにgetMulti()を追加templateだけではなく、orのstmtにもgetMulti()を追加しました。
sequence対応dbのkeyとしてSequenceが指定できるようになりました。pj.confのorの設定のkeySequenceを指定してください。
例
sys::or::sample.keySequence = "sample_id_seq"
keySequenceが設定されている場合、insertでkeyの値を設定するとエラーになります。nullを設定してください。
destroySession機能していなかったのを修正
Saturday, 10. May 2008, 14:21:28
Friday, 9. May 2008, 22:31:52
PJには例外は必要ないという考えで以前例外を廃止しましたが、ちょっと使いにくいのでerrorとしてを再度復活させます。ただし、デストラクタがあるのでfinallyに相当するものはありません。記述は以前と同じで、関数単位になります。またエラー処理なので、種類もありません。
メソッドでエラーが発生した場合、処理がエラーブロックに移ります。この時点ではデストラクタは処理されません。エラーブロックの処理を行ってからデストラクタが処理されます。エラーブロックでもreturnは必要になります。
エラーブロックが無いメソッドでエラーが発生した場合、デストラクタの処理を行い呼び出し側にエラーを投げます。
errorステートメントでエラーを投げることが出来ます。エラーの内容は文字だけです。
トップレベルでエラーが発生した場合は処理が中止になり、エラーが表示されます。
PJでは、0で割った場合や、ファイル取得でファイルが無い場合等、戻り値がある場合で問題がある場合はvoidを返します。そのためifでvoidが戻ったかどうかを確認することで関数単位のエラー処理は可能ですし、voidは変数に入れるとエラーが発生するためチェックしない場合でもエラーになります。
errorはそれをまとめて処理する場合に使用します。
Friday, 9. May 2008, 19:40:56
全文検索用のライブラリをsenからgosenに変更しました。
合わせてluceneもちょっと変更してます。
変更した結果。
なんだかちょっと遅くなってる気がする。(TT
Friday, 9. May 2008, 14:21:32
オープンソース系のライセンスはソースさえ公開してれば何しても良いと思ってたんですが、どうやら違うみたい。
現在考慮しないといけないライセンスは
Eclipse Public License
jericho html parser 変更無し
GNU Lesser General Public License
jericho html parser 変更無し
senをちょっと改造してる
Apache License 2.0
commons系 変更無し
lucene 色々変更してる
これらを考慮しないといけないので、配布の方法を変えて
変更してないものは、個別に用意してもらう
変更してるものはライセンスにそって別に配布
という事にします。
なので、インストールがちょっと面倒になります。
Friday, 9. May 2008, 13:01:15
今まではwarファイルを作るのはeclipseのexportを使っていましたが、全文検索用の辞書を含まないwarを作るべくantでwarを作ることにしました。
最新からは
- PJ(辞書込み)とPJ-nodic(辞書無し)の2種類になります。全文検索を使用しない、また辞書は自分で用意するという場合PJ-nodicを使うとファイルが小さくで良いです。
- 設定ファイルが含まれなくなりpj.conf.sampleと言うファイルが含まれます。.sampleを取って使ってください。
と変更になります。
Friday, 9. May 2008, 12:56:22
breakとcontinueが上手く動いていなかったのを修正
1 2 3 4 Next »
Showing posts 1 -
10 of
37.