[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 10/30 04:07 / Filesize : 205 KB / Number-of Response : 753
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Java】Apache Jakarta Commons



1 名前:デフォルトの名無しさん [04/09/12 10:56:03]
クラスもかなり増えてきた
Apache Jakarta Commons について語るスレッド

Apache Jakarta Commons
jakarta.apache.org/commons/

中でも便利なものが
Commons Lang
jakarta.apache.org/commons/lang/
Commons Collections
jakarta.apache.org/commons/collections/
Commons FileUpload
jakarta.apache.org/commons/fileupload/

とくにLangには equals(), hashcode(), compareTo(), toString()
メソッドを簡単にオーバライドできるメソッドが用意されており重宝する。
そのほか、NestableExceptionはC#のような言語に頼らなくても
投げられ続けた例外を上書きせずに保持する事ができるので便利。

Collectionsは java.utilのコレクションクラスに不満を持つ者にとっては
朗報だ。ListとHashを兼ねた便利なクラスも用意されており、その数は豊富である。


369 名前:デフォルトの名無しさん mailto:sage [2005/11/05(土) 02:35:29 ]
>>368
Commons4E
www.jiayun.org/mediawiki/index.php?title=Commons4E

これとどっちがいい?

370 名前:デフォルトの名無しさん mailto:sage [2005/11/05(土) 04:11:19 ]
>>369
Field selection is the main difference between Commonclipse
and Commons4E currently. (Commonclipse uses all fields)

371 名前:369 mailto:sage [2005/11/05(土) 11:36:27 ]
>>370
ありがとー。
アホなのでExcite使いますた。

>現在、フィールド選択はCommonclipseとCommons4Eの主な違いです。
>(Commonclipseはすべての分野を使用します)

全フィールド使う方がいいのかな?

372 名前:デフォルトの名無しさん mailto:sage [2005/11/05(土) 16:01:11 ]
>>371
toString ならいいんじゃないか?

で hashCode と equals には使ってないんだな。
使ってたら、なぜ選択する必要があるか分かると思う。
まー、手修正すんのと GUI で選ぶのもどっちもどっちだけど。

373 名前:デフォルトの名無しさん [2005/11/10(木) 22:34:15 ]
jakarta.apache.orz/commons/lang/

374 名前:デフォルトの名無しさん mailto:sage [2005/11/10(木) 22:48:40 ]
わかりにくいネタはやめてくれ。

375 名前:デフォルトの名無しさん mailto:sage [2005/11/14(月) 23:18:35 ]
【玄人】プロジェクト管理ツールApache Maven【2.0登場】
pc8.2ch.net/test/read.cgi/tech/1131976988/

376 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 14:28:23 ]
>>222
> リフレクションは、重いという弊害の他に、ダウンキャストの危険性も多い。

そこでGenericsを。
BeanUtilが対応していればだが


377 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 14:32:57 ]
>>229
> closeQuietelyだけだったらさすがに環境構築のたびにクラスパス通して
> インポートしてってよりは自分とこの共通クラスにコード書くね。
> だって誰が書いたってああなるでしょ。
> 実際ほとんど同じのcommons自体知る前に書いてたし。
> 結局commons-ioかよとか思わないと思うけどね。
> 別にたいした手間じゃないんだけどクラスパスが無駄に多いのは好きじゃない。

Apache Mavenを使えばクラスパスの設定もいらんぞ。
やってみいよ



378 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 14:54:50 ]
>>276
実際このCommonsのこれ使っちゃ駄目
これ使っちゃ駄目とか言いだすDQNいるんだな〜これが。
それだけでなくある程度プログラムができあがってくると
多少問題があってもソースコードを弄ることを拒否しようとする。
リファクタリング拒絶というトンデモ君が。
一度こうなってしまったら前へすすむしかない、みたいな。
その様は何人もの犠牲者を出してしまった軍隊のようだ。
犠牲者を出してしまったんだからもう目的地に行かなくては
犠牲者に申し訳が立たないといってデスマーチに陥る。

実際徹夜ばっかになったプロジェクトでしたが。

379 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 14:57:27 ]

>>267
レスにたいして>>302のようなレスをする意味が
激しく解らない

>>302は誤爆?


380 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 15:08:21 ]
>>370
なーるほど、
ただしCommonclipseプラグインは
未だにEclpse3.1に対応していないというバグが
直っていないのでパス

381 名前:デフォルトの名無しさん [2005/11/15(火) 15:09:22 ]
>>309
> 誤爆適用スレってしってるか?
> 今日は当たり日なんだろうか・・・

それってどうやって
誤爆を受けているのか確認できる?

382 名前:デフォルトの名無しさん [2005/11/15(火) 15:18:42 ]
Commons FileUploadはServletにしか対応していないのか・・・・

普通にデスクトップJavaや
コマンドラインJavaアプリケーションで
シェルのようにFTPサーバにftp, sftpまたはSCP経由で
ファイルのアップロードするということをやってみたかったんだが。


383 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 15:32:33 ]
よくみたらFTP接続できるのは
Commons Netか!
orz

384 名前:デフォルトの名無しさん [2005/11/15(火) 19:07:46 ]
Commons NetのFTP接続ってファイアウォール越しに
接続する機能は無いのか?
scpかsftpでポート22経由で接続したいのだが・・・。
対応してるプロトコルをみるとsshが見あたらない。
ということは無理か?

385 名前:デフォルトの名無しさん mailto:sage [2005/11/15(火) 23:45:54 ]
SOCKSが使えるんでない?
もちろんsshのDynamicForwardが前提。

386 名前:デフォルトの名無しさん mailto:sage [2005/11/18(金) 23:35:40 ]
Velocityを覚えたからAnakiaに手を出そうとしたらAntをまだ覚えていなかった。盲点。
ライブラリじゃなくてアプリのOSSで俺は貢献してやるぜ!

387 名前:デフォルトの名無しさん mailto:sage [2005/11/22(火) 13:39:32 ]
Antは簡単だからいいよ。

Velocityより簡単かと。



388 名前:デフォルトの名無しさん mailto:sage [2005/11/22(火) 14:00:41 ]
>>387
比べるモノなのか?

389 名前:デフォルトの名無しさん [2005/11/22(火) 14:12:55 ]
ValidatorとかConfigurationsって使えるんだね。

ConfigurationはResourceBundleの代わりとして使えそう

390 名前:デフォルトの名無しさん mailto:sage [2005/11/23(水) 01:00:38 ]
水を挿すようで悪いがたいていResourceBundleで事足りる

391 名前:デフォルトの名無しさん mailto:sage [2005/11/23(水) 02:09:55 ]
気がついたらlibディレクトリがゴチャゴチャになってしまったので
整理したいのですが、Commonsとかそれぞれのjarの依存関係って
どうやって調べればよいのでしょうか…
とりあえずどこからも呼び出されてないjarだけでも外したいのですが…

392 名前:デフォルトの名無しさん mailto:sage [2005/11/23(水) 19:04:57 ]
ドキュメントに書いてあるので嫁。
つーか大した量じゃないんだし、commonsぐらい全部入れちゃっても (ry


393 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 12:42:07 ]
>>391
Apache Mavenを使った方が楽だと思うんだけどなあ。
EclipseのMaven Repo Searchプラグインを使って
必要だとわかったJARの<depedency>タグをクリック一発で作って
それをpom.xml(Maven1.xではproject.xml)の<dependencies>タグの
内側に貼り付けて、
 mvn install
を実行し
Eclipseを使っているなら
 mvn eclipse:eclipse
を実行してEclipseプロジェクトにJARのパスを自動的に追加して
またエラーが出ることを確認してしらみ潰しに、一個一個見てゆき
再びMaven Repo Searchを使って同じ事を繰り返すってやりかたで。

依存関係を調べる方法の一つとして
Eclipse3.xのcal Hierarchy(呼び出し階層)を調べる機能で
このクラスはどのクラスに必要とされているか、
あるいは逆にこのクラスはどのクラスを使っているかを調べることができる。
ただしJarについては(ry
リストアップされるエラーメッセージをみながらこのJARが
必要だあのJARが必要だと調べながらあれこれやることができる。



394 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 12:42:49 ]
>>390
Configurationはそんなに使えなかった?
それとも面倒だからやらなかっただけ?

395 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 12:50:08 ]
気がつくとCommons Mathとかの
リポジトリがCVSからSubversionに入れ替わってるね。
ApacheもとうとうSubversionを導入し始めたか。

他のプロジェクトもすべてSubversionに以降しきっているのかな?




396 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 13:11:27 ]
>>395
気づくの遅すぎ。

397 名前:390 mailto:sage [2005/11/24(木) 21:50:13 ]
>>394
使えないというより、ResourceBundleで十分だった。
それなら誰もが知ってる方がいいよね。
Tomcatレベルの複雑な設定が可能なアプリケーションには向いてるんじゃない?



398 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 22:00:43 ]
そもそもResourceBundleって、メッセージとかラベルの文字列外部化だから
Configurationほど色々できる必要が殆ど無いと思われ。
キーを階層構造にしてオブジェクトに格納できたところで、大して意味無いし。

小面倒な設定ファイルとか、シリアライズしたいとかならConfigurationの出番だろうけど。

399 名前:デフォルトの名無しさん mailto:sage [2005/11/24(木) 22:09:23 ]
Configurationで、i18nってできるの?
ごめん、確認しないで聞いてる。。。

400 名前:デフォルトの名無しさん mailto:sage [2005/11/25(金) 10:06:40 ]
ResourceBundleで配列のメッセージリソース管理できたらなー

401 名前:デフォルトの名無しさん mailto:sage [2005/11/25(金) 12:17:01 ]
>小面倒な設定ファイルとか、シリアライズしたいとか
スキーマ切ってXMLでやりとりした方が楽になる。

402 名前:デフォルトの名無しさん [2005/11/26(土) 01:23:36 ]
Commons-devのメーリングリストに参加して
メール読んでるんだけど、
Java Genericsに対応したCommons Collectionって
すでにあるんだね。いまのところSourceForge専用だけど。
そのうちCommons Collectionに対応させてゆくらしい。

Tim,

It's already been done (collections15.sourceforge.net/). Hopefully
we'll finally figure out how we're going to bring this code (or some version
of it) into our codebase. For now, if you need generic support you can use
the sourceforge project.

James

-----Original Message-----
From: Tim Roberts [mailto:troberts@computing.dundee.ac.uk]
Sent: Friday, November 25, 2005 6:05 AM
To: 'Jakarta Commons Developers List'
Subject: Making Commons Collections Generic Enabled

Are there any plans to make commons collections generics (as in JDK 1.5)
enabled? If not I would be happy to do this. Tim.


-- This message has been scanned for viruses and dangerous content by MailScanner,
and is believed to be clean. MailScanner thanks transtec Computers for their support.
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org For additional
commands, e-mail: commons-dev-help@jakarta.apache.org

403 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 20:29:31 ]
冷害(笑
ttp://www.jajakarta.org/commons/lang-2.0/ja/withoutPrimary/org/apache/commons/lang/ArrayUtils.html

404 名前:デフォルトの名無しさん mailto:sage [2005/11/29(火) 20:31:04 ]
BeanWriterって便利ですね。
BeanUtils系で使用される、ネストで出力できるライブラリってないですか。

$form.property1.name="commons"

のような感じで。
BeanWriterもいいけど、xmlより直感的でわかりやすいです。

405 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 20:04:22 ]
Velocityって環境によってコメントの解釈が違ったりしないか?
#*
## こめんと
#hogeMacro($hogehoge)
#if( $hage )
ほげはげ
#end
*#

こんな感じのコメントつけてると、一番上の #* の部分が表示されたり、最悪 ## 以外のコメントが利かなかったり・・・

406 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 21:33:11 ]
環境によるとは?

407 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 21:34:57 ]
>>405
バグはあるかも知れんね
けどテンプレファイルにそんなにコメントつけることなんてある?



408 名前:デフォルトの名無しさん mailto:sage [2005/11/30(水) 22:35:55 ]
>>405
ブロックコメントの中にコメント入れないほうがいいよ

409 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 16:20:38 ]
>>404
ほかは知らないけどそれはほしいね。
velocityもstrutsもibatisも xxx.yyy.zzz 表記だから、
ネスト形式のほうが直感的でわかりやすいかも。

410 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 21:55:33 ]
VelocityでXMLを出力する場合に上手いやり方ってあります?
firstChildとかやってくのは、ちょっと違う気がするです。

411 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 04:11:59 ]
>>406
CVS使って開発してるから違うのはJVMとOSのバージョンくらいしか思いつかないんだが、
自分のPCで大丈夫だと思っていたものが他の環境では上手くいかないとか

>>407-408
仕事で使ってるとマクロ丸々コメントしたりして、その過程でマクロ内に入れてるコメントに引っかかったりするんだ。
つかVelocityは仕事で使うもんじゃないな。

412 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 13:54:54 ]
じゃあなに使うの?

413 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 15:40:10 ]
>>403
っていうかJakarta Commons Langって翻訳が全然すすんでないな。
最後に編集したのがこれかい

$Id: ArrayUtils.java,v 1.1.1.1 2004/02/13 10:02:05 hioki Exp $


hiokiって誰だ?
姓名がいおき?

414 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 15:46:18 ]
>>405
そんなのは初めて聞いたぞ。
っていうかそもそも*なんて普通つかうか?

>>410
新規にXMLファイル作るなら
簡単だろ。
独自のオブジェクト作ってしまえば
かなり楽だろ。
独自のクラスで作られたオブジェクトを
newしてそれをListにぶちこんでから
Velocityのputにぶちこんで
あとはVelocityファイル側で
#foreachを使ってlistにぶち込まれた
オブジェクトを取り出すだけ。
やり方はマニュアルとかに書いてある。
ググって見ても簡単でいいサンプルもあった。

>>411
普通に仕事でVelocity使ったんだが。Velocityファイルにコメントなんて
一切書かないが。XMLを自動生成するならコメントは<!-- -->だな
XMLファイルを自動生成するためにVelocity
使ってコード書いて納品したよ。そのシステム、今でも動いている。

415 名前:デフォルトの名無しさん mailto:sage [2005/12/03(土) 21:32:07 ]
velocityよりfreemarkerの方がいい。


416 名前:デフォルトの名無しさん mailto:sage [2005/12/04(日) 09:28:41 ]
>>413
文句言うなら自分でやれよ。

417 名前:デフォルトの名無しさん mailto:sage [2005/12/05(月) 18:34:53 ]
FreeMaker はタイプ量が増えるのでやだ。
< と > で囲うことに魅力が感じられない。



418 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:13:16 ]
あっははは
これだからJakarta信者は。

419 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:23:36 ]
Velocityは人気が高いからな
ELでいいじゃん

420 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:29:28 ]
Velocityで質問。
配列のリストをVelocityContextにlistOfArrayとして入れたとするでしょ。
#foreach($array in $listOfArray)〜#endで中身の配列は取れるけど
$arrayの各要素が#foreach($object in $array)〜#endで、
それどころか$array[0]でも取れないのはどうすればいいんかね。

421 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:34:05 ]
velocityCountとかいう内部変数があるよ。
デフォルトは1からだが、0からに変更することも可能。


422 名前:420 mailto:sage [2005/12/11(日) 02:50:00 ]
>>421
質問内容が伝わってないようだから改めて書く。
下のような例の場合 1 と 4 が出力されてほしいがそうならない。foreachで受けた
変数が配列の場合、どういう表記をすればその配列の中身を取り出せるのかね。

Java側
List listOfArray = new ArrayList(); listOfArray.add(new int[] { 1, 2, 3, }); listOfArray.add(new int[] { 4, 5, 6, });
VelocityContext context = new VelocityContext(); context.put("listOfArray", listOfArray);

Velocity側
#foreach ($array in $listOfArray) ## $listOfArrayの各要素は取り出せる。
$array[0] ## $array の各要素は取り出せない。
#foreach ($object in $array) ## foreach でもダメ。
$object
#end
#end

423 名前:420 mailto:sage [2005/12/11(日) 02:52:36 ]
> 下のような例の場合 1 と 4 が出力されてほしいがそうならない。

下のような例の場合 $array[0] に対応した箇所で 1 と 4 が出力されてほしいがそうならない。

424 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 02:59:26 ]
プリミティブ配列だからでは?
Integerで出来ない?

425 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 03:02:29 ]
Integerでも無理

426 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 03:04:54 ]
#foreach( $ref in arg ) statement #end

使い方:

* $ref - 最初の変数リファレンスは、リストの項目です。
* arg - リストのリファレンス(つまりオブジェクト配列/コレクション/マップ)、 配列リスト、範囲演算子のいずれかです。
* statement - 上記で arg と示されたリスト内にある、 有効なアイテムの分だけ出力する内容です。 この出力は有効なVTLなら何でもよく、ループの繰り返し毎に処理されます。

ドキュメントを見ると出来るはずなのにな。

#{array[0]}は試した?

427 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 03:07:21 ]
#{array[0]} もダメ。
でも配列のリストでなく、リストのリストならうまくいくことは確認している。



428 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 06:33:17 ]
画面ばっかり作っていて
#foreach( $arrays in $beans.samplearray )
#foreach( $array in $arrays )
#foreach( $sample in $array )
$sample
#end
#end
#end
みたいな事やってたから出来ると思うが・・・リストのリストだったのかな

$array[n] はできないよ。 #set( $sample = [] ) みたいにカラのArrayListオブジェクトを作ることは出来るけど・・・
配列の中身取りたかったら、#foreachでまわすか、リストにして $array.get(n) のかたちで取らないといけないんじゃなかったか。

#foreach でまわせないのは・・・
new int[] { 1, 2, 3, }
ってやってるけど、3つなら3つって指定してやらないといけないとか

しかし long の数値が if で比較できないとか色々不便だな。
#if( "$longvalue".equals( "0" ) ) みたいなことやってる。悲しすぎる。
ああ、$math 使えばよかったか・・・どっちにしろ長く分かりにくくなるんだよなぁ。

429 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 15:11:00 ]
>>426を見るとオブジェクト配列は可能ってあるけど、何が可能なんだろうな

430 名前:デフォルトの名無しさん mailto:sage [2005/12/11(日) 15:20:04 ]
あれ?俺は普通に出来たが・・・ArrayListにint[]

431 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:20:24 ]
>>403
こんなところで笑ってないで、フィードバックしる。

432 名前:デフォルトの名無しさん mailto:sage [2005/12/12(月) 14:33:17 ]
>>420-430
ListToolを使ってみたらどう?
Velocity Tools 1.2 (最近リリースされた) 以降でないとだめだけど。

ttp://jakarta.apache.org/velocity/tools/javadoc/org/apache/velocity/tools/generic/ListTool.html

433 名前:デフォルトの名無しさん [2005/12/13(火) 16:03:56 ]
Configurationsって仕様見ると超便利なのに
バグが多すぎだなorz
プロパティファイルが更新されると同時に更新されたことを
自動的に読みとってくるリロードストラテジークラスを
使ってみたのにプロパティファイルを更新しても全然リロードされなかった。
クラスパスが通っているところにファイルを置いてもうまく
いかないみたいだ。これって最悪。Hibernateの設定ファイルを
管理しようと思っていたのに。
しかも読み込んだ設定ファイルを保存するsave()メソッドもちゃんと機能しない。
なにやらJavaプログラム実行ディレクトリを基点とした
絶対パスを指定しないとうまくいかないようだ。save()メソッドを実行する前に
setBasePath()またはコンストラクタで絶対パスを指定するか、save()メソッドの
引数に絶対パスを指定するかしないと変更が反映されないようだ。
これもクラスパス上に置いただけではまったく糠に釘出しのようだ。

それでも正確に反映されないときがある。それにはク意図的にコンストラクタで
newしないといけないようだ。

ということで現状のConfigurationには期待に反して不満が多すぎ。
XMLファイルの読み書きは楽だと思ったけど。



434 名前:デフォルトの名無しさん mailto:sage [2005/12/13(火) 20:41:50 ]
現在、Jakartaのサイトにつながらないが、
そんなことを掲示板に書くな、ヴォケが。

435 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 18:21:13 ]
>420
primitiveの配列でもサポートされるはずだけど。
org.apache.velocity.util.introspection.UberspectImpl#getIterator(Object, Info)あたり参照。
正直、Velocityはソース追いながら & hackしながらじゃないと使いにくい。

436 名前:デフォルトの名無しさん mailto:sage [2005/12/19(月) 18:59:19 ]
perl5utilでtrは未サポートらしいですね。

自力でかな 全角→半角 置換します。

if ("ア".match(str)) {
str.replaceAll("", "ア");
} else if ・・・

tr/アイウエオ/アイウエオ/ができたら1行なのに!

437 名前:デフォルトの名無しさん mailto:sage [2005/12/19(月) 19:37:50 ]
誤爆?



438 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 21:05:05 ]
きわどい内容だね
ここに書いてもなんら違和感ないキャスティングだ

439 名前:デフォルトの名無しさん mailto:sage [2005/12/20(火) 22:57:08 ]
OROだな。テラナツカシス

440 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 00:08:03 ]
JMeterみたいな知る人ぞ知るみたいなツールもあれば
ECSみたいに厨房のオナニーライブラリと見分けが付かないものもあったり
Jakartaも質がばらばらだな

441 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 02:51:14 ]
>>440
でもオープンなライブラリがこれだけあるのがありがたいじゃん。
例え玉石混淆でもさ。

最近.NET案件入ったらCommonsみたいのがなくて、そのありがたさを身にしみて感じてるよ。

442 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 02:52:04 ]
.netは金だせばなんでもある世界

443 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 07:16:13 ]
JakartaっていうかApacheのいいところは、既存プロジェクトからいい機能が
独立プロジェクトになるところ

444 名前:デフォルトの名無しさん mailto:sage [2005/12/21(水) 17:19:23 ]
JMeterって知る人ぞ知るかぁ?Jakartaのトップからもう何年もリンクがあるのに?
あんまり使われてないのは

1. JMeter重すぎ、サーバの負荷テストの前にクライアントの負荷テストになる
2. HTTPのテストならproxyの設定の必要がないのと軽さで
  Microsoft Web Application Stress Tool(通称ゲイツ砲)に軍配
3. RMIについてはちょっと他に代わりを知らないのでJMeter使う場合もあるが
  そもそもリッチクライアントだってRMI使うことが流行じゃない
4. データベースの負荷テストなんてそもそもJMeterからやらんでもいい
5. テスト仕様書もエヴィデンスもJavadoc化できるので
  負荷テストはユニットテストの延長でjunit/junit-eeなりcactusなりで作る
6. お金があるのでWinRunnerみたいなテスト自動化ツールとか
  Cloverみたいな分析ツールを買った

ってところが理由だと思うけどな。

ECSを厨房ライブラリと言い切るのもなんだかねぇ。
perlのCGI..pmとかXML::Writer.pmのjava版だと思えばあっても構わんだろ。
使いたい奴は使えばいい。

445 名前:デフォルトの名無しさん [2006/01/02(月) 14:32:56 ]
正月じゃカルタやるべさ

446 名前:デフォルトの名無しさん mailto:sage [2006/01/02(月) 15:06:10 ]
>>440
Commonsの場合はSandboxであるかないか、とか
AかBか、という違いで質がわかるようになっている。

それ以外にも古いものや開発が停滞しているものあるはい開発が
すっかり止まっているものは質が悪かったりする(とは限らないが)、などなど。



447 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 19:59:02 ]
JXPathめちゃめちゃ使えますね。
XPathでワイルドカード、正規表現検索ってできるのでしょうか?



448 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 11:50:05 ]
Commonsに電卓のようなクラスはあるでしょうか。
"10 + (9 -1) / 2"の文字列を計算するようなものです。

449 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:43:16 ]
>>448
velocityでやるべし。
StringWriter writer = new StringWriter();
Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * 4 * 6 )$value");
System.out.println("result: " + writer);


450 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:49:43 ]
>>449
なるほどね。
いただき!やってみます

451 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 15:53:39 ]
>>450
こんなんもできる。
StringWriter writer = new StringWriter();
Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * 4 - 6 )$value");
System.out.println("result: " + writer);
writer = new StringWriter();
Velocity.evaluate(ctx, writer, "", "#set( $value = 2 * ( 4 - 6) )$value");
System.out.println("result: " + writer);


452 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 20:34:35 ]
Mapのキーのリストを渡して、Mapのvalueを配列(リストでもいいんだけど)で帰すメソッドってありますか?
見つからなかったので自分で作りました。
あってもいいんだけど・・・
public static Object[] toValueList(Map map, List keyList) {
Iterator iterater = keyList.iterator();
List result = new ArrayList();
while (iterater.hasNext()) {
result.add(map.get(iterater.next()));
}
return result.toArray();
}

453 名前:デフォルトの名無しさん mailto:sage [2006/01/11(水) 21:56:02 ]
>>452
キーのリストを指定しなくて良いなら map.values().toArray() で取れるけど。

454 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 09:47:11 ]
>>453
ありがとうございます。


455 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 16:36:04 ]
FileUtilsでcopyDirectory(File srcDir, File destDir)がありますが、
UNIXにあたる mv はないでしょうか。

456 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 05:32:36 ]
>>455
Commonsと関係ないけど

import java.io.File;

public class MoveFile {
public static void main(String[] args) {
File orgFile = new File("a.gif");
orgFile.renameTo(new File("tmp" + File.separator + orgFile.getName()));
}
}

こんなやり方で a.gifファイルが tmpディレクトリに移動できるみたいだけど
これじゃだめ?

457 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 10:24:43 ]
>>456
ありがとうございます。
できました。
ちなみにパーティションを介した場合でも移動になるのでしょうか?
自分のマシンがCドライブのみなので確認できません。



458 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 12:27:35 ]
>>457
共有してドライブに割り当てれば?

459 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 12:28:52 ]
>457
それか、これ。
arena.nikkeibp.co.jp/tec/winxp/20040825/109291/

460 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 19:37:27 ]
>>458
できました。
ありがとうございます。

461 名前:デフォルトの名無しさん mailto:sage [2006/01/13(金) 20:25:19 ]
CompositeMap使ったことある人

462 名前:デフォルトの名無しさん [2006/01/15(日) 23:09:53 ]
Commons VFSを使えば
Commons Netにはなかったsftp接続ができるとわかったんだけど
このVFS、うまく動かない。

EclipseのMaven Repo Searchプラグインを使ってvfsで検索して
以下のタグをクリップボードからpom.xmlに貼り付けてMaven2で mvn ecipse:eclipseとして
JARファイルをEclipseプロジェクトのライブラリに追加したのだが・・・

<dependency>
 <groupId>commons-vfs</groupId>
 <artifactId>commons-vfs</artifactId>
 <version>20050307052300</version>
 <scope>compile</scope>
 <type>jar</type>
</dependency>
ナイトリービルドだからいたしかない、というしかないのだろうか?


以下のコードをためしてみたものの
homepage2.nifty.com/igat/igapyon/diary/2005/ig050702.html

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.vfs.impl.StandardFileSystemManager.<init>(StandardFileSystemManager.java:45)
at name.sugawara.hiroshi.html.taggenerator.uploader.ImageUploader.main(ImageUploader.java:31)


どういうことだ?
EclipseにはCommons LoggingのJarがライブラリにクラスパスとして通っているというのに。

463 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 00:04:50 ]
とりあえずsugawara hiroshiさんだということは分かった。

464 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 01:35:30 ]
     ∩___∩
     | ノ      ヽ
    /⌒) ●   ● |
   / ////( _●_)// ミ
  .(  ヽ  |∪|  、\
   \    ヽノ /´>  )
     |      / (_/

465 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:07:22 ]
ワラタ(・∀・)

466 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:21:57 ]
>>463
ばれちゃったか(笑
しばらくレスするのやめることにするかもしれないけど
実名晒しても恐れずに前に突き進んでみるさ。

VFSはまだまだバグがあるのようなので

かわりにJschまたはJ2SSHを試して見ることにしたよ。
レスサンクスな。

467 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:35:03 ]
パッケージ名にname.sugawara.hiroshiという.nameドメインを使っていただけ
ただそれだけのようで何も珍しくも







468 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 02:48:56 ]
Maven Repo SearchでもsshをキーワードにしてJ2SSHをインストールできることがわかった。


469 名前:デフォルトの名無しさん mailto:sage [2006/01/16(月) 12:50:48 ]
>>462
どうやら、実行時にCommons Logging のjarをクラスパスに通すだけでいいっぽい。
これはどうやら、なぜかJ2SSHでも同じように必要なようですな。




470 名前:462 mailto:sage [2006/01/17(火) 02:02:23 ]
結局sftpを使うにはJ2SSHを使うことにした。
Commons VFSを使うよりこっちのほうが安定している。
確かにVFS, J2SSHどちらも実行時にCommons Loggingを必要としている。
内部ではjsch.jarを使っているようだ。
Maven Repo SearchでJ2SSHも引っかかることがわかった。





471 名前:デフォルトの名無しさん [2006/01/25(水) 04:51:28 ]
Commons Configurations使ったらlog4j,becl,beanutils.commons-loggingのダウンロードも強いられた。
もうわけわかめ。Eclipse + Maven2がなかったら困惑してたに違いヌー


472 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 11:46:12 ]
ネストされているBeanのプロパティーの値も出力してくれる
ReflectionToStringBuilderみたいなものはないでしょうか。
DB登録失敗時にデータを運用で復元したいので、
テキスト形式で情報を出してほしいといわれてしまいました。
対処法がわからず途方にくれています。

473 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:11:34 ]
org.apache.commons.transaction.file.FileResourceManager使ったことある人
ファイルをベースにして、DBのようなトランザクションができそう

474 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 12:16:13 ]
>>472
とりあえず、XMLEncoderでシリアライズしてみるとか。

475 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 13:28:04 ]
>>474
そうですね。
今はとりあえずBeanWriterでXML形式で全部出しています。
ただプロパティー形式にしろといわれ、ちょっと困っています。
Commonsをいろいろみましたが、XML→プロパティの変換はなかったので・・・

476 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 17:00:12 ]
ちょっとしたことなんだけど、ファイル削除メソッドってstaticであってもよくないですか。
new File("xx").delete();はめんどくさいです。

477 名前:デフォルトの名無しさん mailto:sage [2006/01/26(木) 17:22:38 ]
仮にあったとしても FileUtils.delete("xx"); じゃ大して変わらんね。

static import すりゃタイプ数も変わるかもしれんが、
delete は比較的衝突しやすそうな名前だしなぁ。



478 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 10:32:22 ]
>>473
自己レス。
新たにファイルを作成・書込み・変更の作業はロールバックできるけど、
すでにあるファイルを削除したときのロールバックはできないみたい。
他にやり方があるかもしれないですが・・・

479 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 10:41:11 ]
org.apache.commons.collections.iterators いろいろみましたが、
カウンタを取得できるiteratorはないですね。
ループはiteratorでいつも通りしたいのですが、
ループ中にカウンタがほしい、ということはないんですかね・・・。
カウンタ取るために、リストを配列に戻して、list.get(1)とかって、なんか悲しいです。
皆さんはどうしてます。

480 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 12:20:57 ]
>>479
ローカル変数でカウンタ宣言してループ内で使えばいいんじゃ?
イテレータがカウンタ持つ必要はないと思うけど

481 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 12:26:48 ]
>>479
インデックス使いたいなら、わざわざIterator使う必要ないと思うけど。
インデックス使わずに、走査できるのがIteratorなのに。
なんで、List→配列化するかも不明??

482 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:32:46 ]
俺も行番号生成とかでたまにやるけど、少なくとも配列に戻す必要は無いな。
ローカル変数で十分。

483 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 17:43:28 ]
List#listIterator() じゃダメなの?

484 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 17:29:34 ]

>>479
LinkedHashMap使ってキーに数字をいれるのはどうよ?
って話じゃないか

List#subList()などを組み合わせてループしながら
List#index.Of() , List#lastIndexOf()でindexを検索するのはどうよ?



485 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 18:02:07 ]
BeanMap bmap = new BeanMap(this);
System.out.println(IteratorUtils.toList(bmap.entryIterator()));
でフィールドのリストが出力されますが、
thisのクラスのみのフィールドをしゅとくすることはできるでしょうか。

486 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 19:04:22 ]
>>479
素直に
int counter = 0;
for( String s : stringList) {
counter++;
//なんか処理
}
じゃ駄目なのか?

487 名前:デフォルトの名無しさん [2006/02/02(木) 00:19:04 ]
CodeZine:Jakarta Commonsを使ってJDKクラスを拡張する:パート1
codezine.jp/a/article.aspx?aid=283

CodeZine:Jakarta Commonsを使ってJDKクラスを拡張する:パート2
codezine.jp/a/article.aspx?aid=284



488 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 16:14:27 ]
日付の大小比較をしたいのですが、DateUtils.isSameDayだと
大小比較ができません。Commonsで他に便利なものはありますでしょうか?

489 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 16:20:31 ]
>>488
java.util.Date#compareTo(Date)

490 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 17:50:24 ]
>>489
失敬です。
当然でした・・・・

491 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 18:43:06 ]
PropertiesでLinkedHashMapに対応するPropertiesみたいなものってないでしょうか?
PropertiesのpropertyNamesでキーのリストを取れますが、
Propertiesの先頭から順に取得したいです。

492 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 19:26:59 ]
ファイルの内容をiteratorでまわすクラスはあるでしょうか。

493 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 19:37:41 ]
org.apache.commons.io.FileUtils.readLines(new File("filename"), "encoding")

494 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 20:24:22 ]
>>493
ありがとうございます。
これは一気にファイルの情報をStringにつめていますが(たぶん)
小さいファイルなのでかまわず使用させていただきます。

495 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 20:44:09 ]
一気に読みたくないなら commons なんか使わないで普通に

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("filename"), "encoding"));
String line;
while(null != (line = br.readLine())){
 // line 使った処理
}

496 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 14:45:55 ]
cvsファイルの、"xx xx"やxx\'xxなど文字を、下記の通り返すようなユーティリティはありますか。
"xx xx" → xx xx
xx\'xx → xx'xx


497 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 14:58:46 ]
>>496
それありそうでないよね。



498 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 19:08:45 ]
>>497
たしかに。StringTokenizerはつかえねーし。

499 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 23:59:52 ]
>>496
いまいち意味がつかめないんだけど、ダブルクォートと円サインを空文字で
置換したあとに、(CSVなので)カンマでsplitしたらいいの?

500 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 05:59:06 ]
>>499
ダブルクォートの中にカンマがあったら?

501 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 13:45:01 ]
HashMapのみで構成されたCollectionにCollections.sortかけたら、
なぜかClassCastExceptionが発生。なぜ?

502 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 13:51:39 ]
>>501
Comparator 渡さなかったんじゃないの?

HashMap は Comparable 実装して無いから ((Comparable)e1).compareTo(e2)
みたいにやってる部分で ClassCastException 食らうはず。

503 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 13:55:06 ]
>>501
すいません。自己解決。Comparable実装してませんでした。

504 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 18:16:05 ]
シリアライズ可能でないオブジェクトは、どうあがいてもシリアライズできないでしょうか。
SerializationUtilsは、見た感じそのようなものではなかったのですが・・

505 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:49:00 ]
CollectionUtilsのforAllDo()で、コレクションの再起処理はできないのでしょうか

506 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 22:14:17 ]
class RecursiveClosuer implements Closure{
 private Closure delegate;
 public RecursiveClosure(Closure closure){ delegate = closure; }
 public void execute(Object input){
  if(!input instanceof Collection) delegate.execute(input);
  else CollectionUtils.forAllDo((Collection)input, this);
 }
}

みたいのを作って
CollectionUtils.forAllDo(collection, new RecursiveClosure(delegate))
とかすれば数行で対応できるから作らんかったんじゃなかろーか。

507 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 16:25:06 ]
>>506
すばらしい。
ありがとうございます。



508 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 05:09:46 ]
Closure closure = new Closure(input) {
 if (input instanceof Collection) {
  CollectionUtils.forAllDo((Collection) input, this);
 } else {
  // したい処理
 }
};
CollectionUtils.forAllDo(collection, closure);

再帰処理するように Closure を書けばいいだけじゃん。
506 みたいな RecursiveClosure なんか作る必要もない。

509 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 05:11:03 ]
なんか変になったが new Closure() { public void execute(Object input) {・・・ な

510 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 11:00:42 ]
PropertyUtils#setPropertyって、BeanUtils#setPropertyと違って
オブジェクトのConvertが使用されないのですね・・

511 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 13:11:57 ]
ドキュメントに with no type conversions ってしっかり書いてあるし。

512 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 15:01:18 ]
yahooの検索結果で、10件表示の全件が110件以上の場合は
検索画面の下に
2・・・・11って出ますが、あんな計算をさくっとやってくれるツールないですかね

513 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 15:54:24 ]
>>512
電卓


514 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 16:49:07 ]
一定期間で無効になるHashMapのようなクラスってないのかな
WebAppで小さいファイルを読み込んだり、
定期的に再読み込みしてほしいことって良くあるけど、それようのUtilクラスが見当たらないね

515 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 16:55:10 ]
それ HashMap 関係あるの?
定期的になんらかの処理させたいなら java.util.Timer とかもあるし。

516 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 17:24:18 ]
ま、Timerかなんかで定期的にキャッシュしたい値が入ってるMapをクリアすればいいが、
出来ればそれぞれのvalueは指定した時間内だけ有効(取り出せる)なコンテナがあると、
気軽にキャッシュとして使えていいなー と。

517 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 17:34:55 ]
>>516
一応、Sandboxにキャッシュ関係はあるみたいだけど、使い物になるかどうか……。
jakarta.apache.org/commons/sandbox/cache/




518 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 18:12:31 ]
一定期間にはならんけど、キャッシュならWeakHashMapを良く使うな

519 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 18:17:22 ]
WeakHashMap で put("key", value) とかやって……

520 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 09:38:43 ]
unixで言うところのgrepのようなクラスはあるでしょうか。
今は正規表現のMatcherを使用して自力で書いています。

521 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 09:50:40 ]
プリミティブ型とintやdoubleが混ざる計算をするときに、
全ての型をプリミティブ型にしなければいけませんが、
もっと簡単に計算できるツールはないでしょうか。
MathUtilsかなと思ったのですが、数学用のものでした。

522 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 11:31:43 ]
>>513
ありがとうございます。
電卓用クラスがあるのでしょうか?

523 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 12:00:01 ]
>520
grep のような、と言うのは
複数ファイルから検索を行うってこと?
それはクラスレベルではなくて、
アプリケーションレベルの話じゃないでしょうか。

524 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 12:04:00 ]
>>523
すいません。
1ファイルレベルです。

525 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 12:26:08 ]
>>524
jakarta.terra-intl.com/oro/

526 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 12:57:10 ]
>>522
110 / 10 = 11
これ以上になにか必要か?

527 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 17:47:46 ]
LazyListで、set(6, "")すると落ちます。
LazyList.decorate(new ArrayList(), FactoryUtils.constantFactory(""));
list.set(6, "")
addは対応されているのですが、setは対応していないのでしょうか?



528 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 19:39:01 ]
DateUtils#iteratorは使えるが、xx日〜yy日のリストもほしいな・・・

529 名前:デフォルトの名無しさん mailto:sage [2006/02/20(月) 12:00:18 ]
>>527
自己解決。
setをオーバーライドし、中でaddを呼ぶようにして解決しました。

530 名前:デフォルトの名無しさん [2006/02/26(日) 17:34:14 ]
commonsだけじゃないんだけど、既存のプロジェクトで使われてるjarのバージョンを正確に知る方法とか
ツールってなんかありますか?

引き継いだはいいけどライブラリのバージョンに関する情報が無くて・・・orz
いちいち全部クラスとかプロパティの存在有無とかで当たりつけるしかないのかなぁ・・・。

531 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 17:46:20 ]
>>530
jar内のMANIFEST.MFに書いてあることもある。Jakartaのはだいたい書いてあって気がするよ。

532 名前:デフォルトの名無しさん mailto:sage [2006/02/26(日) 19:41:13 ]
MANIFEST.MFになければhashやサイズで比較するとかかな。
内容で比較するのはしんどいでしょ。

533 名前:デフォルトの名無しさん mailto:sage [2006/02/27(月) 00:09:23 ]
>>531
>>532

レスありがとうございます。
やっぱり全部共通で調べられるような楽な方法はないっすよね。

でもMANIFEST.MFとかサイズで比較ならなんとかなりそうなんで、いっちょやってみます!
ありがとうございました。

534 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 10:17:56 ]
あるファイルの、エンコード種別を判断するクラスはあるでしょうか。
読込むファイルの文字コードをPGで判断しろといわれてしまいました。

535 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 12:09:41 ]
Converterで、配列を変換することはできないのでしょうか。

536 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 12:55:02 ]
なんのConverterだよ

537 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 13:08:56 ]
>>536
ConvertUtils.register()に追加できるConverterです。



538 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 13:18:25 ]
BeanUtilsのConverterか?だったらできる。
何の話をしているのかわからない質問するなよ

539 名前:デフォルトの名無しさん mailto:sage [2006/03/08(水) 14:56:51 ]
>>538
すんませんす。
ありがとうございます。

540 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 11:44:45 ]
「2M」の文字情報を、byte単位の文字情報に変換するクラスはあるでしょうか。
FileUtilsの逆みたいなものです。
単純に、byte変換クラス見たいのがあればいいのですが

541 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 19:28:38 ]
>>540
自分で見つけました。
String prefix =
ModuleUtils
.getInstance()
.getModuleConfig(request, application)
.getPrefix();

return (ValidatorResources) application.getAttribute(
ValidatorPlugIn.VALIDATOR_KEY + prefix);


542 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 11:42:01 ]
CollectionUtilsで、重複したデータを取得することはできるでしょうか。
Beanのリストに対し、BeanPredicateなどで、比較対照項目を絞り込んで
そこから重複を取得したいです。

543 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 21:55:41 ]
>>534
文字エンコードに
"Shift_JIS"とか"EUC-JP"とかのかわりに
"JISAutoDetect"ってやるのがいちばん簡単

それが信用できないなら(実際あまり当てにならないけど)
↓をよくよんでガンバレ
www.mars.dti.ne.jp/~torao/program/appendix/japanese.html

544 名前:デフォルトの名無しさん mailto:sage [2006/03/10(金) 22:48:40 ]
>>543
とんでもないことすすめるなよ

545 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 12:31:08 ]
>>541
誤爆???
>>540とは関係なくない?

↓に全く同じ投稿あったけど。


pc8.2ch.net/test/read.cgi/tech/1109465052/669
> >>668
> 自分で見つけました。
> String prefix =
> ModuleUtils
> .getInstance()
> .getModuleConfig(request, application)
> .getPrefix();
> return (ValidatorResources) application.getAttribute(
> ValidatorPlugIn.VALIDATOR_KEY + prefix);


546 名前:デフォルトの名無しさん mailto:sage [2006/03/11(土) 12:56:41 ]
んなこともあるさ

547 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 18:45:51 ]
>>544
これは結構危険なのでしょうか?



548 名前:デフォルトの名無しさん mailto:sage [2006/03/13(月) 23:20:07 ]
いまどき文字コード自動判別とか馬鹿じゃねえの
そんなこと要求するやつ糞食わしていいよ

549 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 09:15:21 ]
>>547
危険つーか、大体でしか判別できないのでハズレる可能性あり

550 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 10:23:10 ]
自動判別の難しさと不確実さをきちんと説明して
それでもPG側でやれって言うならやればいいだろう。
それで問題が起きても指示した人間の罪だ。
きちんと説明してさえあれば。

551 名前:デフォルトの名無しさん mailto:sage [2006/03/14(火) 16:01:53 ]
>>551
それに加え、何かしら仕様書なんかに書いておくのは必須だな。
後になってから「そんなの聞いてない」 とかいう客よくいるから。

552 名前:デフォルトの名無しさん mailto:sage [2006/03/15(水) 20:48:27 ]
そうだな、証拠は残すべき
たとえ、客が仕様書を読んでないとしても。

553 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 23:35:26 ]
Java以外だとエディタとかで自動判別する奴結構あるじゃん?
あれってどーやってんの?

554 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 15:41:55 ]
日本語の場合、
1. iso-2022-jpだとそれを示す並びがあるので判別可能。
2. euc-jp と shift_jis は本質的に判別が難しいが、片方のエンコードにはあるのに、
 もう片方のエンコードにはないコード列が存在するので、
 それを検出した段階で判別可能。
ってやり方だと思う。

早い話、「片方のエンコードにしか存在しないコード列」を使っていない文章は判別不可能になる。

自動判別持ち出すんなら、そういうケースに対して
どう対処すべきかくらい考えてて然るべき。
何も考えていないんなら、ただのバカ。

555 名前:デフォルトの名無しさん mailto:sage [2006/03/17(金) 22:28:18 ]
BeanUtils.getPropertyで、以下の"aaa"の値を出そうとしていますが、
下記の通りに書いてもエラーになります。
値をとる方法はあるでしょうか?
Map map = new HashMap();
map.put("aaa", "bbb");
List list = new ArrayList();
list.add(map);
Map top = new HashMap();
top.put("list", list);

BeanUtils.getProperty(top, "list[0].aaa");
BeanUtils.getProperty(top, "list[0](aaa)");
BeanUtils.getProperty(top, "list.aaa");

556 名前:デフォルトの名無しさん mailto:sage [2006/03/20(月) 13:23:53 ]
>>555
それは無理だな。
リストのマップも、マップのリストも無理だよ。
リストマップともに扱いが特別だから、併用は難しいね

557 名前:デフォルトの名無しさん mailto:sage [2006/04/20(木) 17:34:51 ]
BeanUtilすげー賢いね。
booleanに文字列の1とか突っ込んだらちゃんとtrueにしてくれた。
1以外はすべてfalseね。
こりゃー便利だわー。



558 名前:デフォルトの名無しさん mailto:sage [2006/04/20(木) 20:08:17 ]
Cなら0がfalseで他がtrueにならね?

559 名前:デフォルトの名無しさん [2006/04/21(金) 23:12:26 ]
commonsのライブラリ同梱でアプリ配るときって、どうすればいいの?
なんか一緒に入れとかなきゃいけないファイルとか教えて。

560 名前:デフォルトの名無しさん mailto:sage [2006/04/22(土) 00:52:55 ]
Apacheの製品を含んでいるアプリを配布する場合は
「This product includes software developed by the
Apache Software Foundation www.apache.org/
とどこかに明記していればOK。
たとえば、Eclipseだとメニューバーのヘルプの「Eclipse SDKについて」を参照すると
これが書いてある。
アプリのライセンス文に上記の一文を含めておくのでも良い。

あとはかなり自由。ソースコードの公開義務や添付義務は無い。商用利用OK。


561 名前:デフォルトの名無しさん mailto:sage [2006/04/22(土) 01:55:47 ]
>>559
ASL 2.0の翻訳がここにある。
ttp://www.opensource.jp/licenses/apache2.0.html

バイナリ再配布に絡むところとしては、
> 1. 成果物または派生成果物の他の受領者に本ライセンスのコピーも渡すこと。
> 4.成果物の一部として「NOTICE」に相当するテキストファイルが含まれている場合は、
> そうしたNOTICEファイルに含まれている帰属告知のコピーを、派生成果物のどこにも
> 関係しないものは除いて、頒布する派生成果物に入れること。その際、次のうちの少
> なくとも1箇所に挿入すること。
>
> (i) 派生成果物の一部として頒布するNOTICEテキストファイル、
> (ii) ソース形式またはドキュメント(派生成果物と共にドキュメントを頒布する場合)、
> (iii) 派生成果物によって生成される表示(こうした第三者告知を盛り込むことが
> 標準的なやり方になっている場合)。

上記は結構省略してるので、自分でも全文を見て欲しい。さらに言えば、日本語訳は
あくまで翻訳なので、ライセンスとしては英文のみが有効。

まあ大ざっぱに言うと
1. Apache Software Licence 2.0の原本(英文)のコピーを配布物に含めること。(日本語訳も
一緒に配布している例もあるけど、英文のものは必ず含めること)
2. 利用したASLベースの成果物に「NOTICE」というファイルが含まれている場合、その内容を
以下のいずれかに必ず含めること。

・あんたのプログラムにNOTICEファイルがある場合は、その中。
・ドキュメントあるいはソースの中
・あんたのプログラムでライセンスとかについて表示しているところがあるなら(例:アバウト画面)その中

>>560の言っているのが、上記の2に該当する。
それに含めてASLの書かれたファイルを一緒に添付しろってこと。

562 名前:561 mailto:sage [2006/04/22(土) 02:02:38 ]
追記。
あと、NOTICE表示に自分の派生物についての告知を追加してもいいんだけど、
その追加ライセンス条項がASL 2.0の修正であるかのように読まれないようにしろ、
という条件もある。

要は
・この配布物にはASL 2.0ライセンスの成果物が含まれてる。
・この配布物のライセンス条件は俺がきめたこれだけど、APL 2.0ライセンスの成果物に
ついてはあくまでAPL 2.0の条件下にあるよ。

ということを保証しろ、ということ。APL 2.0には、配布物によって損害を被っても
Apache Software Foundationは知らんよ、という条項があって、もしライセンスを独自のもの
にするとしても、APL2.0成果物についてはAPL2.0の条件下にあることを理解させろ、という
ことだと思う。

563 名前:559 [2006/04/23(日) 20:41:41 ]
>>560
>>561

丁寧な説明ありがとう!
意外と簡単に配布できるんだね。

564 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 13:32:52 ]
2つ以上のInputStreamから読込み待ち?することはできるでしょうか。
例えば、標準入力とネットワークストリームを常に読込みスタンバイして
データが転送されたストリームのデータを取得するとか。
IOUtilsには、らしきものがなかったような・・・

565 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 13:46:02 ]
そりゃcommonsじゃなくて質問スレだな
スレッド分けて待機させればいいだけだが

566 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 17:25:26 ]
Configuration#getProperties()の機能ってわかる人いますか?

567 名前:デフォルトの名無しさん mailto:sage [2006/04/27(木) 18:42:32 ]
ノシ



568 名前:デフォルトの名無しさん mailto:sage [2006/04/28(金) 15:20:09 ]
PropertiesConfiguration#setProperty同期とってねー。
パッケージの全ソースgrepしたけど、synchronizedが4箇所だけで、セットとは関係ないところに・・・

569 名前:デフォルトの名無しさん mailto:sage [2006/04/30(日) 15:04:24 ]
Commons Configuration はまだバグが多いので
使い勝手がよろしくないなー。
自動リロード戦略クラスを適用しても
瀬定ファイルの修正を監視してくれなかったし。

570 名前:デフォルトの名無しさん mailto:sage [2006/05/01(月) 10:28:44 ]
>>569
瀬定ファイルってなに?
監視はうまく動いてたよ

571 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 00:29:15 ]
C#版Commonsみたいなプロジェクトとかってないの?
誰かガッツンガッツン移植してよ。

572 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 00:59:59 ]
>>571
.net で C# 限定にする意味があんのか?

573 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 01:34:03 ]
マイクロソフト自身がJakarta Projectみたいなことしてて
いろんなライブラリをソースごと公開してるんじゃなかったっけ。
おれは良く知らんのだけど。

574 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 11:04:54 ]
>>570
設定ファイルのtypo

XMLファイルのviで編集しても
監視が反映されていなかたことがある。

XMLConfigurationという奴だったかな?
もうひとつ、XMLPropertiesConfigurationもうまくいかず

575 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 11:06:36 ]
>>573
下手に移植するとApache Software License違反に
なるんじゃないのか?

NantとかNUnitとかいうのがM$に吸収されてはいるが。
ライセンス形態をBSDにするとすべてマイクロソフトに持ってかれるが
ASLだとそうはいかないと思うのだが。

576 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 12:03:39 ]
>>574
のるほど。
ただ、Configurationは便利だね。
MapやPropertiesに変更できることも大きいし。
ソースをそんなに変更しなくても、MapやPropertiesから移植は簡単だ

577 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 17:05:38 ]
>>575
いや、Jakartaを移植してるんじゃないよ。共用コンポーネントを
作ってるってだけで。

どこでみたんだっけと思って検索したら@ITだった。
ttp://www.atmarkit.co.jp/fdotnet/entlib/index/index.html



578 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 19:38:11 ]
SandboxのIdって、jarリリースしていないのでしょうか。ソースしかありません。

579 名前:デフォルトの名無しさん mailto:sage [2006/05/02(火) 23:38:16 ]
>>577
Enterprise Libraryみたいな大規模向け(?)っぽいのじゃなくて、commonsのlangとかみたいな小粒なやつが欲しいんだよー。
参照設定にdllの参照追加するだけでOK、って感じの。
どっかそーゆーの作ってる人いないのかな?

ASFって.NET系にはあまり力入れてないの?

580 名前:デフォルトの名無しさん [2006/05/03(水) 12:53:27 ]
すいません、配布に関して質問なんですが、commonsの中の使用したいクラスのみ取り出して
自分のjarに含めてしまう、といった配布方法は可能ですか?
もちろん>>561さんご指摘の点は守るとしてです。

commonsのjar内のクラスを全部使っているわけではないので、できれば配布ファイルのサイズを抑えたいのですが・・・。

581 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 13:41:02 ]
>>579
> ASFって.NET系にはあまり力入れてないの?

聞いたことがない。
背後でJavaやLinuxを推しているIBM等の企業がかかわっているらしいからなあ。
MS製品対応ソフトウェアの開発はやっていなさそうな気がする。
なにせ、MSはオープンソースを嫌っているし、オープンソースは共産主義だ
などめちゃくちゃなこといっているし。
GPLとくらべたらASLは共産主義とまではいかないんだけどね。
たとえMSが一部の自社製品をSourceForgeに公開したとしても
オープンソース全体を敵に回すような不可解な発言が、
無理して.NETに力を入れない方がいいという暗示を示しているのではないかと。

それで今.NETが流行らなくなっているような

582 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 22:38:47 ]
>>581
聞いたことが無いって、あーた log4net とかも聞いたこと無いの?
.net も言うほど、死んでないよ。俺は Java メインだが、
今は .net 案件のほうが単価が上げれる。色々な会社の話を聞く限り
.net で技術的に自信を持っている会社が少なくて、金額的にはおいしい。

583 名前:デフォルトの名無しさん mailto:sage [2006/05/03(水) 22:40:24 ]
>>582
Enterprise Libraryのことだろ。
しかしJakartaとくらべるとまだまだものが少ないし
オープンソースコミュニティの活発さが足りないし、
まだまだって感じがする。

584 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 19:03:28 ]
org.apache.commons.mailいけるぞ!

585 名前:デフォルトの名無しさん [2006/05/09(火) 22:32:31 ]
Commons Mail?
Java Mail APIを補足するやつなのか?

どうういけるのか感想きぼんぬ

586 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 22:43:36 ]
おれは584じゃないが、かなり簡単にメールが送れるね。
Perlでメール送る時みたいな感じといったらいいのかな。
setTitle()とかsetFrom()とかしてからsend()よんだらメールが
送れてしまう、というやつです。
添付ファイルやHTMLメールもさっくり送れます。

内部ではJavaMailを使ってるらしい。

587 名前:デフォルトの名無しさん mailto:sage [2006/05/09(火) 22:43:54 ]
>>585
すごーくシンプルだから、Webサイト見れば一発で理解できると思う。
JavaMailのうすーいラップのようなもの。
new()して、TOやらCCやらFROMやらSubjectやらをセットして、send()呼べば送れる。
ちょうどJavaBeansのようにsetterでセットする形になってるから、DIコンテナでJavaBeansとして扱えるカモ。




588 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 00:11:44 ]
>>587
いいねー。Commons の HTTP 扱うやつより、よっぽど需要がありそうだ。
っつか、そこらじゅうの業務プロジェクトに似たようなのがあったのが
いらなくなるな。

589 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 00:51:01 ]
>>588
そうそう。いつもみんな自前で似たような、しかし出来の悪い物を作っていたアレだ。
もう作らなくてよくなる。


590 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 01:36:24 ]
Java Mail APIが使いやすくなるのか。
ええなあ。
内部でJava Mailを使っているということは、
Mavenで導入するときは自分でmail.jarとactivation.jarをダウンロードして
mvn installでローカルリポジトリに追加しないといけないのか。

591 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 01:55:52 ]
>>590
そうだね。バイナリ版をダウンロードしても、libフォルダ内にテキストファイルが
入っていて、「mail.jarとactivation.jarを別途ダウンロードしてね」と書いてあった。

592 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 10:02:30 ]
探せばまだまだある。
commons-transactionだって使えるぞ。
ファイルの追加、削除、リネームをして、
ヤベ、戻したいっと思ったときにロールバックをかけるときれいさっぱりに

593 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 12:31:42 ]
>>592
DB がからむと使い方が難しそうだ。
2 フェーズコミット問題。JTA みたいなのを自作っつーのもあれだ。
厳密でなければ、良さげ。

594 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 12:59:40 ]
>ヤベ、戻したいっと思ったときにロールバックをかけるときれいさっぱりに

きれいさっぱりに消えてしまうんですか!?
(((;゚Д゚)))ガクガクブルブル


595 名前:デフォルトの名無しさん mailto:sage [2006/05/10(水) 13:49:38 ]
>>594
ちゃんと言うと、DBのトランザクションと同じで
コミットしないと、対象ディレクトリに作成・削除が実行されないって事。
つまり、コミットまではワークスペースに対して実行されている。

596 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 00:00:06 ]
mail試そうと思ったらサーバ落ちてる・・・

597 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 11:01:21 ]
XMLを読み込むフレームワークで、DigesterとかBetwixtとか見てるんだけど、
XMLの内容を格納するbeanを明示的に書かなくてもいいものって無いかな?

  XMLのパース → BeanUtilなどでパース結果を格納したbeanを動的生成

までやってくれて、利用者側は、あくまでXMLをAPIに読み込ませて、
結果として返されるDynaBeanとかを利用するだけ、みたいな。




598 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 12:14:31 ]
commons ではないけど xmlbeans や relaxer でどう?
DynaBean 的なものではないけど、
人間がやるのはスキーマを書くところだけ。
マッピングクラスの定義は自動生成する。

599 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 13:20:58 ]
両方見てるんだけれど、スキーマも書きたくないヘタレ厨('A`)としては、
もっと手を抜きたいんですわ。

ってことで、マッピングクラスは作らないといけないけど、XerialJ/XMLBeanっていうのを見つけた。
ttp://www.xerial.org/projects/Xerial/wiki/XerialJ/XMLBean
Digesterよりは楽そう。

ライセンスは、
Indiana University Extreme! Lab Software License
ってものらしいけど、
ttp://www.novell.com/ja-jp/documentation/workbench41/docs/help/books/TutorialWarfront.html
で見たライセンスの翻訳見る限りは、商用利用でも制限無さそう。


600 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 14:05:44 ]
俺はスキーマ書くだけで
・コンパイラによるチェック
・入力補完
で手が抜ける方が素敵に感じる。

まぁ人それぞれっすね。

601 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 14:25:50 ]
>>599
Betwixtですむよ。定義いらない(Betwixt自身で吐き出したxmlならね)。

602 名前:599 mailto:sage [2006/05/11(木) 17:35:13 ]
いろんな考え方があるねぇ。。。
自分に合ったものを選べばいいってことなんだろうけど。

早速、XerialJ/XMLBeanを試してみたけど、
格納するBeanさえ作ってしまえば楽ちんだわ、これ。
日本語もOK。

603 名前:デフォルトの名無しさん mailto:sage [2006/05/11(木) 17:49:31 ]
>>602
配列じゃなくリストは対応できるのかぁ・・・

604 名前:デフォルトの名無しさん mailto:sage [2006/05/12(金) 09:29:16 ]
>>603
格納先Beanに、配列の代わりにListを使うとダメみたい。

605 名前:デフォルトの名無しさん mailto:sage [2006/05/12(金) 09:44:51 ]
>>604
Betwixtならできるぞよ

606 名前:デフォルトの名無しさん mailto:sage [2006/05/12(金) 11:07:04 ]
>>605
まぢっすか。
Betwixtの勉強によさげなサイトとか紹介してもらえませんか。

607 名前:デフォルトの名無しさん mailto:sage [2006/05/12(金) 13:48:02 ]
XerialJ、配列ってのを気にしなければ、
けっこーネストしたxmlでもbeanさえ作っておけば
処理してくれるね。



608 名前:デフォルトの名無しさん mailto:sage [2006/05/12(金) 20:48:32 ]
>>604
Beanにset/getの2つのメソッド以外に、addを用意するのがミソ。

609 名前:デフォルトの名無しさん mailto:sage [2006/05/12(金) 22:15:15 ]
>>608
Betwixtもそうだよ。
まぁ、みんな同じだね・・・

610 名前:デフォルトの名無しさん mailto:sage [2006/05/13(土) 01:03:49 ]
まぁ、いろんな技術要素を知っておいたほうが、
選択肢や対応力は広がるよね。

611 名前:デフォルトの名無しさん mailto:sage [2006/05/17(水) 04:56:52 ]
beanutils が遅いと聞いたのでどれくらい遅いか試してみました。

プロパティファイルから取得したプロパティをbeanutilsで入れるのと、
setterで入れるのを比較しました。

Bean は int boolean String のフィールドを持ち、
setter では、
それぞれ Integer.parseInt Boolean.valueOf.booleanValue Stringはそのまま
を使用しました。

beanutils ではPropertyNameをEnumerationで取得して
while(enu.hasMoreElements()){
  String name = (String)enu.nextElement();
  BeanUtils.setProperty(bean, name, props.getProperty(name));
}

これらを100万回ループさせた結果、
beanutils は 平均 7090.3 ms
setter は 604.7

でした。



612 名前:デフォルトの名無しさん mailto:sage [2006/05/17(水) 05:18:32 ]
Bean の プロパティの数を増やし、
int 2個 boolean 2個 String 2個
にして、同様の実験をしたところ、

beanutils 平均 14372.4 ms
setter 平均 1134.9 ms

でした。
web の場合、1アクセスで3つのbeanを呼び出すとして、
そのbeanにプロパティが10個とします。
その場合上の結果から、100万回アクセスがあると、
7090 * 10 / 3 * 3 = 70900
100万回で、beanutilsの部分だけで71秒もかかってしまうのですが、
これはボトルネックになりうると思ったんですが、
1アクセスあたり 0.0000709秒なのでDBからデータの取得のほうが全然重そうですね。

613 名前:デフォルトの名無しさん mailto:sage [2006/05/17(水) 19:42:58 ]
>>612
配列に比べコレクションが重いとか
String の + 連結が遅いとかもその類だな。

システム構築の標準化を行う人間で、
そういうのを禁止する奴がいて困る。
全クラスをシングルトンにするとかバカもいたしな。
要件がきついシステムもあるので全否定するわけではないが、
そんなんだったら環境を改善するか、Java やめたほうが(ry

巷の Java 初心者のなんちゃってアーキテクトをなんとかしてくれ。
あー、あんたの検証した DB がボトルネックというのは概ね正しいと思う。


614 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 14:26:27 ]
Digesterのルールを自動生成するeclipseプラグインなんてあるのだろうか・・・

615 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 15:05:29 ]
commonsみたいな、ユーティリティをフリーで提供している団体ってあるのかなぁ・・・

616 名前:デフォルトの名無しさん mailto:sage [2006/05/18(木) 17:49:22 ]
>>615
xerial.org

617 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 13:31:20 ]
大きなフレームワークを駆使するよりも、
細かいcommonsをフル活用したほうが作業効率がかなり上がるような・・・
まぁ、比較する対象としてはおかしいけど。



618 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 14:24:07 ]
>>617
commonsをあさって機能を試して・・・というのにどのくらい時間がかかるか。

619 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 15:58:34 ]
>>618
いや、そんなに掛からない。

620 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 16:23:37 ]
>>618
commonsを知って試しに使ってみるまで3時間くらいかかりました

621 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 19:04:22 ]
>>620
そーかなぁ・・・。API見たらわかりやすかったから
結構直感的にいけたけど・・・

622 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 19:20:14 ]
Commons次第。
Collections、IO、FileUploadあたりなら、APIとUser Guide見ればすぐ使えるけど、
Digester、Validatorあたりだと、API見てすぐに、とは行かないと思う。

623 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 22:44:19 ]
>>620
その試した機能を自分で実装したら3時間で済んだのか?

624 名前:デフォルトの名無しさん mailto:sage [2006/05/19(金) 23:19:44 ]
ライブラリによっては依存関係や
バージョン違いに
引っかかってCommonsライブラリを使えるようになるのに
何日もかかったことがあったな俺は。

Maven2が出てからその手間も大幅に省けるようになったのが嬉しい。

625 名前:デフォルトの名無しさん mailto:sage [2006/05/24(水) 18:06:26 ]
strutsのaction-mappingのformの検索をしているのですが、
ファイル検索だと、関係ない箇所のまで名前一致で引っかかるので苦労しております。
xmlのスキーマを理解し、<a><b>xxx</b></a>だと、<a><b>のxxxを探す、というプラグインはないでしょうか。
つまり、xmlファイルに対して、xpath検索できるものです。

626 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 00:27:47 ]
>>625
JXPathでちょちょいと実装、ってのじゃだめ?
大した手間じゃなさそうだし、好きに作れるじゃん。

627 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 11:31:31 ]
>>626
実はJXPathで実装して、検索できましたー!って思ったのですが、
検索はできても、その定義がファイルの何行目であるかの情報が取得できなくて断念しました。

ちなみに、JXPathで質問ですが、
ibatisの設定ファイルを読込むと、
設定ファイルのdtd設定が下記のようにしてあり、
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"www.ibatis.com/dtd/sql-map-config-2.dtd">
どうも、www.ibatis.comにアクセスしています。
ネットワークにつながらない環境なので、エラーになってしまします。
ソースは↓です。
DocumentContainer location = new DocumentContainer(XXClass.class.getResource("/jxpath/sql-map-config.xml"));
JXPathContext context = JXPathContext.newContext(location);
ネットワークにつなげない方法などあるのでしょうか?



628 名前:デフォルトの名無しさん mailto:sage [2006/05/25(木) 23:01:26 ]
>>627
sql-map-config-2.dtd を落としてくるか、配布ファイルのどっかに入ってるだろうから
それを設定ファイルと同じディレクトリに置いて

<!DOCTYPE beans SYSTEM "sql-map-config-2.dtd">

に変えてみたらどう?
確か PUBLIC じゃなく SYSTEM使えばローカルファイル見てくれたと思った。
今試してないんで、やってみ。

629 名前:628 mailto:sage [2006/05/25(木) 23:03:33 ]
間違えた。

<!DOCTYPE sqlMapConfig SYSTEM "sql-map-config-2.dtd">

だねきっと。

あと

× 今試してないんで、やってみ。
○ 今試せないんで、取りあえずやってみ。

と書くつもりだった。
疲れてんなーorz

630 名前:デフォルトの名無しさん mailto:sage [2006/05/26(金) 11:12:57 ]
>>628
ありがとうございます。
取り合えずレス見る前にやってみたのは
"jar:file:C:/xxx/ibatis-sqlmap-2.jar!/com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd">
でいけました。
クラスパスからの検索ができれば、フルパスを書かなくてもよく、環境依存しないのですが・・・

ちなみに、超強引な方法として、extends DocumentContainerしたクラスを作成し
public Object parseXML(InputStream stream) {
String data = IOUtils.toString(stream);
//正規表現で"<!DOCTYPE.*?dtd\">"を空に変更。
} catch (IOException e) {
throw new RuntimeException(e);
}
stream = IOUtils.toInputStream(data);
return super.parseXML(stream);
}
のクラスを使用してもうまくいきました。

631 名前:デフォルトの名無しさん mailto:sage [2006/06/01(木) 15:00:17 ]
FTP超つかえる
超感動
f = new FTPClient();
f.connect("xxxx");
f.login("xxx", "xxx");
FTPFile[] files = f.listFiles("xxx");


632 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 12:15:59 ]
>>631
sftpではどうしたらいいの?

633 名前:デフォルトの名無しさん mailto:sage [2006/06/02(金) 14:45:04 ]
>>632
ttp://jakarta.apache.org/commons/vfs/apidocs/org/apache/commons/vfs/provider/sftp/package-summary.html

634 名前:デフォルトの名無しさん mailto:sage [2006/06/03(土) 00:44:13 ]
>>633
Commons NetじゃなくてCommons VFSにあるんだね。
なんでだろ?

635 名前:デフォルトの名無しさん [2006/06/18(日) 02:52:24 ]
Commonsじゃないけど

HttpComponents
jakarta.apache.org/httpcomponents/

こんなんあるんだね。
今日初めて知った。

Http直に触る必要がある時とかにSocket叩くよりは便利、って感じなのかな?
誰か使ってる人いる?

636 名前:デフォルトの名無しさん mailto:sage [2006/06/19(月) 01:04:51 ]
HTTPClientの次期バージョンが独立しただけでは?

637 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 22:14:34 ]
>>636
え?そうなの?
じゃあHttpClientはいづれなくなっちゃうのか。



638 名前:デフォルトの名無しさん mailto:sage [2006/06/21(水) 22:32:42 ]
Commonsからはなくなる
ただ、まだbetaなのでVer3はのこしている、だったかな

639 名前:デフォルトの名無しさん mailto:sage [2006/06/22(木) 00:22:05 ]
>>638
なるほど〜。ありがとう!
じゃあこれから覚えるにはこっちのがいいかもだねー。

640 名前:デフォルトの名無しさん mailto:sage [2006/06/23(金) 18:38:31 ]
ibatisのSqlMapClientは、スレッド毎にbuildしないといけないのでしょうか?
1つのSqlMapClientはでかいので、何とか1つにしたいのですが。

641 名前:デフォルトの名無しさん [2006/06/25(日) 16:34:55 ]
>>635
今alpha2が出てるんで色々と使ってるけど、SSL周りがあやしい、超あやしい。テストしてない予感。
接続を切る時に
java.lang.UnsupportedOperationException: The method shutdownOutput() is not supported in SSLSocket
が出る(当方 java 1.4.2_12-b03、1.5.0_07-b03でも出る)。
英語が苦手だけど、調べてみるとSSLってhalf-openはよくないらしい?で、J2SE 1.4からサポートしなくなった、みたい?(いずれにしても、closeする時はthis.socket.close()の一発でOKみたいだ)
だれか、プロジェクトに通報してやってくれ!

[AbstractHttpConnection.java:153-161]
        try {
            this.socket.shutdownOutput();
        } catch (IOException ignore) {
        }
        try {
            this.socket.shutdownInput();
        } catch (IOException ignore) {
        }
        this.socket.close();


642 名前:デフォルトの名無しさん mailto:sage [2006/06/25(日) 17:54:47 ]
>>641
英語苦手だからなぁ・・・。
そもそもJakartaプロジェクトとかにこーゆーバグとかを報告する手順ってどうやるの?
誰か詳しい人、解説して下さい。


643 名前:デフォルトの名無しさん mailto:sage [2006/06/26(月) 17:47:13 ]
>>640
自己解決。複数スレッドで使いまわしOKだった。

644 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 23:55:53 ]
>>642
最近だとJiraを使う。

ttp://issues.apache.org/jira/browse/HTTPCLIENT
この辺でどう?

645 名前:デフォルトの名無しさん [2006/07/04(火) 21:06:55 ]
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)

i−want−to−study−java@hotmail.co.jp
(アドレスは全角で書いてあるので半角に直してください)
よろしくおねがいします

646 名前:デフォルトの名無しさん [2006/07/04(火) 21:50:13 ]
>>645
なにこれ?


647 名前:デフォルトの名無しさん [2006/07/04(火) 22:06:14 ]
>>646
JAVAスレの保守



648 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 22:32:27 ]
>>645
java.sun.com/docs/books/jls/third_edition/html/j3TOC.html
コレを読めwwwwwwマジオススメwwwwwwwww
まさにjavaのバイブルwwwwwww

649 名前:デフォルトの名無しさん mailto:sage [2006/07/05(水) 03:43:06 ]
言語仕様だけわかってもなあ…
せめてJakartaくらい押さえんと。

650 名前:デフォルトの名無しさん mailto:sage [2006/07/05(水) 03:59:29 ]
押さえても押さえても抜け落ちていくJakartaかな

651 名前:デフォルトの名無しさん mailto:sage [2006/07/05(水) 12:03:03 ]
じっと手を見る

652 名前:デフォルトの名無しさん [2006/07/05(水) 15:17:09 ]
トンヘの小島の磯の白砂に
ウリ泣き濡れてカニとたはむる

653 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 00:04:12 ]
ところで今、Jakartaって何があるの?

654 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 00:10:56 ]
>>653
聞いて回答を待つより見た方が早いと思うけど・・・
jakarta.apache.org/


655 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:07:19 ]
>>653
ココが分かりやすい
ttp://www.biwa.ne.jp/~x208403/

>>654
ボケろということだろ・・・

656 名前:デフォルトの名無しさん [2006/07/06(木) 14:37:44 ]
WEBサーバのメンテ、だいぶかかってるな・・・

657 名前:1 [2006/07/07(金) 01:50:00 ]
はじめましてはじめともうします。

common-fileuploadを利用したファイルアップロードクラスを
作成したいのですが、うまくいきません。
commons-fileuploadのServletのサンプル(doPostメソッド
による処理)ではうまくいくのですが・・・

uploadClassの
List objLst=objDfu.parseRequest(request);
の値がnullになることまでは確認できましたが
なぜそうなるのかが分からない状態です。

大変恐縮ですがご指摘・ご教授の程お願いします。





658 名前:2 [2006/07/07(金) 01:52:05 ]
---------------------------------
Action
---------------------------------
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import test.uploadClass;
public class testAction extends Action {
  public ActionForward execute(ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response)throws Exception {

    // アップロードクラスをインスタンス化
    uploadClass uploadclass = new uploadClass();

    // アップロードを実行
    uploadclass.upload(request,response);
    return mapping.findForward("success");
  }
}


659 名前:2 [2006/07/07(金) 01:53:42 ]
---------------------------------
ActionForm
---------------------------------
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class testForm extends ActionForm{
    private DiskFileUpload files;

    public DiskFileUpload getFiles() {
      return files;
    }
    public void DiskFileUpload (DiskFileUpload files) {
      this.files = files;
    }
}


660 名前:2 [2006/07/07(金) 01:55:51 ]
public class uploadClass extends HttpServlet {
  public void upload(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{

    //String path = getServletContext().getRealPath(".");
    String path = new String(".");
    DiskFileUpload objDfu = new DiskFileUpload();
    objDfu.setSizeMax(-1);
    objDfu.setSizeThreshold(1024);
    objDfu.setRepositoryPath(path);
    objDfu.setHeaderEncoding("Shift_JIS");

    try {
      List objLst=objDfu.parseRequest(request);
      Iterator objItr=objLst.iterator();
      while (objItr.hasNext()) {
        FileItem objFi=(FileItem)objItr.next();
        if (!objFi.isFormField()) {
          String strNam=objFi.getName();


661 名前:2 [2006/07/07(金) 01:57:32 ]
          if (strNam!=null && !strNam.equals("")) {
            strNam=(new File(strNam)).getName();
            objFi.write(new File(path + "/" + strNam));
          }
        }
      }
    } catch (FileUploadException e) {
      e.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}



662 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 12:26:05 ]
オフィシャルのFAQにそれっぽいのがあるけど、確認した?

663 名前:デフォルトの名無しさん [2006/07/08(土) 02:54:08 ]
Jakartaの名前の由来って何?検索しても都市しかでてこない

664 名前:デフォルトの名無しさん mailto:sage [2006/07/08(土) 03:39:45 ]
ジャワ島(Java島)にある都市ジャカルタだろ。

665 名前:デフォルトの名無しさん mailto:sage [2006/07/08(土) 08:19:14 ]
SunがJDWSDK(その後のTomcat)をASFに寄贈した時に調印を行った会議室の名前。

666 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 00:38:34 ]
へートリビアだな

667 名前:デフォルトの名無しさん [2006/07/17(月) 20:57:15 ]
時給1000円でJava教えてくださるかたを募集します
場所 所沢(池袋・高田馬場から直通)
よろしくおねがいします
i−want−to−study−java@hotmail.co.jp
教える対象は超初心者です。

専門学校などでJavaを勉強されていて夏休みだけ教えたいという方も歓迎です




668 名前:WildBoa [2006/07/17(月) 21:50:39 ]
DataBaseへの接続設定ファイルの保存用にXMLを使用しようとして勉強をしております。

@ITにおいて、Digesterの解説があったので、これをサンプルとして、動作させようとしてます。
記事:ttp://www.atmarkit.co.jp/fjava/rensai2/jakarta04/jakarta04.html#list2
ソース:ttp://www.atmarkit.co.jp/fjava/rensai2/jakarta04/sample.zip

ところが、ClassNotFoundExceptionが発生して、実行できません。
大変恐縮ですが原因・対応のご教授をお願いします。

発生したエラー
2006/07/17 21:40:46 org.apache.commons.digester.Digester startElement
致命的: Begin event threw exception
java.lang.ClassNotFoundException: net.skirnir.sample.DataSourceConfig

環境
OS :WindowsXP Home SP2
JDK:1.5.0_07
IDE:ECLIPSE 3.1.1(コンパイラー準拠レベルでJDK1.4を指定)
commons-digester:1.7
commons-beanutils:1.7
commons-collections:3.2
commons-logging:1.1

以上です

669 名前:デフォルトの名無しさん [2006/07/17(月) 22:00:12 ]
bbs.girlswalker.com/pc/

670 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:01:14 ]
Digesterは結構バージョンによってタグや属性名が変更になってるから注意が必要
Webページの解説がどこもてんでばらばらなんで
DigesterのDTDを読んだ方がいいよ

671 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 13:24:26 ]
>668
添付のソースをコンパイルして、
しかるべき場所にクラスパス通した?
zip の中の構造がパッケージ無視してるっぽいんだが。

672 名前:WildBoa [2006/07/19(水) 01:01:55 ]
>670,671
ありがとうございます。

ソースを「\net\skirnir\sample」において
コンパイル・実行しております。
又、「config.xml」は「.\」においております。
各ライブラリはJREの「\lib\ext\」に展開してありますが、
他に何か設定が必要になるのでしょうか?

>しかるべき場所にクラスパス通した?

何処かクラスパスを通す必要があるのでしょうか?

673 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 06:44:41 ]
¥net¥skirnir¥sampleなら¥にクラスパス通さなきゃ

674 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 08:20:47 ]
>各ライブラリはJREの「\lib\ext\」に展開してあります
おい!ちょっと待て!

675 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 10:30:14 ]
>672
Digester に手を出す前にまずやるべき事が有りそう。
Digester 固有の問題じゃないので
とりあえずしかるべき場所(初心者スレなど)で
環境設定の仕方を聞いてきた方が良いよ。

676 名前:WildBoa [2006/07/19(水) 23:15:25 ]
>674様、
Jakarta CommonsのライブラリをJREのlib\extに展開している件ですが、
何かまずかったでしょうか?

作成したプログラムは配布しないのですが...
JavaHouseの下記のスレッド程度は理解しているつもりなのですが...
>ttp://java-house.jp/ml/archive/j-h-b/037700.html



677 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 23:31:23 ]
>>676
使い方を間違っている。
特定のアプリで利用するライブラリを置く場所ではない。
そこは、JVMそのものを拡張するとかJVMにパッチを当てる的な使い方をする場所。
そのJVM上で動作する全てのアプリに影響する。

そのJVMを、そのアプリでしか使わないことが保証されているなら、事実上問題は起きないことにはなるが・・・
それでも「とりあえず、動けばOK」的な発想。

そのJavaHouseのスレッドを、ごく表面的にしか理解できていないようだね。



678 名前:WildBoa [2006/07/19(水) 23:42:38 ]
>JVMそのものを拡張するとかJVMにパッチを当てる的な使い方をする場所。

677様、ご教授ありがとうございます。

674様、
ECLIPSEの「構成およびデバッグ」のクラスパスタブで、
ユーザーエントリーに\と\net\skinr.sampleを追加しておりますが、
追加の仕方に問題があるのでしょうか。

679 名前:デフォルトの名無しさん mailto:sage [2006/07/20(木) 00:00:03 ]
>>672
\net\skirnir\sample\において、さらに実行している場所は
ちゃんと「\」なんだろうね。

あと、「.」がクラスパスに入っていないに1ドル。

680 名前:デフォルトの名無しさん mailto:sage [2006/07/20(木) 00:00:21 ]
>>678
問題有り。
余計な設定をして、必要な設定をしていない。

>ECLIPSEの「構成およびデバッグ」のクラスパスタブで、
>ユーザーエントリーに\と\net\skinr.sampleを追加しておりますが、
これは不要。Eclipseはソース・フォルダーは自動的にビルドパスに追加される。

そして、アプリで利用するJarファイルをビルドパスに含めなければならない。

Digester以前に、基礎から学ぶべきコトが多そうだな。

681 名前:WildBoa [2006/07/20(木) 00:30:47 ]
皆様ありがとうございました、解決しました。

680様の指摘どおり、ビルドパスが問題でした。
コードがコンパイルできていたので、安心しきっていました。

追伸
679様、WindowsのJava環境では「.」はデフォルトでクラスパスに
含まれておりませんでしたでしょうか?


682 名前:デフォルトの名無しさん mailto:sage [2006/07/20(木) 09:23:59 ]
>>681
まーインストーラは . をクラスパスに入れてたような記憶があるけどね。
SET CLASSPATH すりゃ判るじゃん。
環境変数なんざいくらでも変更できちまうんだから、
デフォルトを信用しすぎないほうが安全だと思われ。

683 名前:デフォルトの名無しさん mailto:sage [2006/07/20(木) 09:59:15 ]
>>681
どこにもclasspathを設定していない場合のみね。
デフォルト値なんてEclipseや環境変数の設定次第でいくらでも上書きされる。

ホント、中途半端な知識だね。


684 名前:デフォルトの名無しさん mailto:sage [2006/08/22(火) 13:11:26 ]
遅レスだが、CLASSPATHのミスといい、lib\extの使い方といい
QuickTime作ってる人かと思ってしまったw

685 名前:デフォルトの名無しさん mailto:sage [2006/09/24(日) 04:51:27 ]
てs

686 名前:デフォルトの名無しさん [2006/10/13(金) 02:14:30 ]
BeanUtils.describe(bean); 経由の
シリアライズが超速いと不思議に思ってたら
このメソッドって配列無視しちゃうのね orz

どなかた別にCommonsじゃなくてもよいので、この問題に対応した
Map <-> JavaBeanの相互変換ライブラリ知りませんか?

687 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 07:45:45 ]
>>686
PropertyUtils.describeの方は確か配列もきちんと変換してくれるはず



688 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 18:14:36 ]
>>687
どうもありがとう。

689 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:26:16 ]
>>633-634
それ不安定だったのでおれJsch使ってる


690 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:27:09 ]
>>641
SSL3.0やTLSに対応していないとか?

691 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:28:34 ]
>>655
おもろいw

692 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:29:36 ]
>>657-661
>>1でも>>2でもないのに名前欄に1とか2とかかかないでくれ

693 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:36:09 ]
SCXML使ってる人、いるかい?

694 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:58:44 ]
最近、Jakarta CommonのMLのSubjectに[SCXML]と
名がつくメールが良く来るが、一体どんなもんなのだ?


695 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:49:30 ]
>>694
ちょっとはぐぐれよ。

696 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 21:49:28 ]
今、Commons-Dev MLで
Generics対応Collectionsを既存のCollectionsのサブパッケージに
するかどうか投票をしているようだ。


なんでそんなことが必要なのか流れを読んでいないのでわからないけど
俺個人としてはJava5のコレクションフレームワークの
ようにそのまま使えるよう分離させないで欲しいなと思っている。




697 名前:デフォルトの名無しさん [2006/11/04(土) 21:52:20 ]
あげ忘れた

よくMLを読んでみるといくつかのクラスの削除またはリネーム
などについて議論しているようだ


> - BoundedCollection should be deleted/renamed to Bounded
> new Bounded interface would not implement Collection, allowing it to be
> implemented by Maps as well as Collections
>
> - UnmodifiableBoundedCollection should be deleted
> Just use the isFull/maxSize methods on CollectionUtils or similar
>
> - AbstractSerializedCollectionDecorator should be deleted
> Serialization can now be rolled up into the base decorator
> This simplifies a lot of code
> It wasn't done originally due to back-compat
>
> - TransformedCollection will need some thinking about to generify, as a
> transformer can change object types
>
> - Consider adding a Decorator interface
> This would provide a single method decorated() that obtains the
> collection that has been decorated.
> Whilst useful, this is also potentially dangerous exposure of state.
>
> - Consider adding a Container interface
> This would be a base super interface for Collection and Map (but
> obviously we can't hack the JDK.
>
> - Consider whether UnmodifiableCollection should be deleted as it
> duplicates the JDK.



698 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 10:12:59 ]
10個の要素があるリストで、5、6、7、8、9,10,1,2,3,4って順にまわしてくれる
iteratorないですか?
5でnextがfalseになるような感じです。

699 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 10:20:57 ]
開始する要素が固定とかだったら、自分で書いた方が早いんじゃない?

700 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 12:01:25 ]
>>698
なんで10の次が1になるのか。
まず最初に5から読み込むがいきなりfalseになって
結局回らない。

何がいいたいのかわからない。

701 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 12:30:02 ]
こういうコンパイラ以上のことが出来ないやつは一生底辺プログラマだな
>698
それ位はさすがに自分でコード書こう
応急処置としてsubListでばらして繋ぎなおすとか。

702 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:08:40 ]
>>698の日本語が変なので
具体的に彼が何がしたいのかよくわからない


703 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:17:41 ]
>>702
要は、開始位置が指定できて、リストが持っている配列の最後にきたら先頭に戻るようにして
終了のタイミングは開始位置の1つ前、って事でしょ。わかれよ

704 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:32:35 ]
test

705 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:33:49 ]
で、そんなよく使うわけでもないモノはcommonsには無いし、書くのも簡単だから書けば。
で終了。

706 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:37:51 ]
>>703
Bufferでやりたくなってくる

707 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:43:15 ]
>>706
List から Buffer への変換やるのか。面倒くさそう。



708 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:50:06 ]
Iteratorを継承して自作すればいい

709 名前:デフォルトの名無しさん mailto:sage [2006/11/06(月) 17:51:58 ]
>>703
それでも>>698の言っている意味と合致していないような気がするが。

最後に5でnextがfalseになるようにしたい?


俺は、まずソートしてからIteratorを回したいと>>698
主張しているように見えたぞ



710 名前:デフォルトの名無しさん mailto:sage [2006/11/09(木) 23:59:03 ]
LoopingIterator

711 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 00:04:09 ]
「作ればいいじゃん」でFAですね。

712 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 00:06:58 ]
>>711
>>710

713 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 10:48:27 ]
>>710
それじゃ永久ループじゃん。

714 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 18:57:49 ]
ToStringBuilder.reflectionToStringのネスト機能が欲しい・・・

715 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 20:58:45 ]
そういうときこそ、自作すればいいじゃないか。
そしてパッチをCommonsに提供するんだ。
そうすれば知名度が上がるかもしれないぞ。

つか、EclipseのCommons4Eプラグインを使えば
ある程度自動化できるんじゃないのか?


716 名前:デフォルトの名無しさん mailto:sage [2006/11/10(金) 22:24:56 ]
Iteratorなんて滅茶苦茶シンプルなインタフェースなんだから探すより作った方が早いよ。

717 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 15:52:40 ]
JRCS・・・なくなった。
diffも使えなくなった・・・



718 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 09:47:19 ]
commonsにchainってあったんだ。
struts1.3でも使っているみたいだね。
ovserveもあるといいかも。

719 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 09:55:28 ]
Chain of Responsibilityパターンが実現できる
あのAPIか

720 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 11:27:16 ]
unixでいうところのbashのreadlineのライブラリに似たものはcommonsにないですかね。

721 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 11:29:29 ]
>>719
そうそう。
springって単純にnewの内容を設定ファイル化できるけど、
それじゃ処理の流れを変更できないので、
spring+chainの軽量ライブラリがあればbestなんだけど。

722 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 11:53:14 ]
>>720
commonsじゃないけど、sourceforgeにJava Readlineっつうのがあったよ。
ttp://java-readline.sourceforge.net/

723 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 11:32:29 ]
ConfigurationのXPathExpressionEngineって、XMLConfiguration をxpath検索できるのかな?
jxpathの絡んでる?

724 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 09:46:42 ]
ArrayIntList結構便利かも。

725 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 12:27:59 ]
>>723
それ使ったことがないからわからないけど
Configurationは不安定でファイルをオートリロードするストラテジも
ろくに機能しないし、ファイル書き込みも意味不明でどこの
ディレクトリパスなのかさっぱりわからない不具合がおきるし(save()メソッドの
挙動が変。絶対パスなのか相対パスなのかイマイチ)。

726 名前:デフォルトの名無しさん mailto:sage [2006/11/21(火) 14:38:51 ]
>>725
最近バージョン上がったよ。
細かくは試していないけど。

727 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 22:59:05 ]
JSP2.0のEL部分だけ取り出したようなライブラリってCommonsにないんかな。
変数入れたMapと文字列渡すと実行できるようなやつ。

静的なメソッド呼び出しを関数に割り当てできるとベスト。
設定に数式を入力できないとヤダとか言い出すヤツが多くて困る…




728 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 23:18:02 ]
Jakarta Commons EL

729 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:16:00 ]
>>728
それはJSP用のELやん。

Expression#evaluateがjavax.servlet.jsp.el.VariableResolver使うから避けたい。
このライブラリで言うと、
引数はorg.apache.commons.el.VariableResolverになってるやつが欲しい。
んで、JspVariableResolverとMapVariableResolverって感じでAdapterがあると単独で使いやすい。
ついでに言うと、Expressionにはevaluate(Map)な簡易メソッドがあると最高。

730 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:25:08 ]
Jakarta Commons JEXLはどうなん?
> Java Expression Language (JEXL) is an expression language engine
> which can be embedded in applications and frameworks.
ってあるけど。

731 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:44:55 ]
>>730
おぉ、パッと見はよさげ。サンクス。
式って言うか、ちょっとスクリプト寄り?
意図しないstaticメソッド呼び出しができないようになってれば
変数入れたMapとの変換で何とかなるかな。

今筋トレ中なので、明日にでも試してみるよ。

732 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 13:27:00 ]
OROの話題ですが、置換で$1が使えますが、(??{ code }) は使えるでしょうか。
codeは、Perlにおいて、埋め込まれたPerlコードを実行してその結果を正規表現を表すものとして使用します。
らしいですが、javaのメソッドなど呼べたら便利かなと。

つまり、メソッドを登録しておき、そのメソッドにマッチした部分の引数をOROがわで渡すことができればOKなのですが。

733 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 13:43:55 ]
PropertyUtils#setProperty()でセットできる対象はsetterがあるプロパティだけだけど、
setterがないものにもセットできるものはないかな?
ToStringBuilderあたりはその辺強引にやっているらしいけど

734 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 14:24:22 ]
>>732
多分Oro単体では無理。
GroovyやBeanShellみたいなスクリプティングエンジンと組み合わせれば多分可能。

735 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 00:07:47 ]
IOUtils1.2にあるProxyReaderとかのProxy〜系ストリームクラスってJDK標準のFilter〜系クラスと何が違うんですか?
それぞれFilter系クラスを拡張してあるようなのですが、いまいち何のために使うべきなのかわかりません。

736 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 13:29:22 ]
A Proxy stream which acts as expected, that is it passes the method calls on to the proxied stream and doesn't change which methods are being called.
It is an alternative base class to FilterReader to increase reusability, because FilterReader changes the methods being called, such as read(char[]) to read(char[], int, int).

FilterReader がメソッドのシグネチャを変えやがるから
Reader のシグネチャと同じになるようにしたやつを作った。

らしい。

737 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 09:48:59 ]
>>722
nativeのライブラリ使ってるだけだった。
ナンだよそれって感じ。
環境依存するので使用はボツ



738 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 10:28:31 ]
>>737
コンソール使ってる時点で環境依存はやむを得ない。

739 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 10:54:20 ]
log4jで、設定ファイル中のログレベルを変更した場合、アプリ再起動しないで即時更新させることはできますか?
運用中にレベルを変更することは結構あると思うので・・・

740 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 23:19:40 ]
ログファイルの変更を監視すればいいんじゃない?

741 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 08:21:05 ]
>>739
つ ttp://www.beasys.co.jp/dev2dev/resourcelibrary/utilitiestools/adminmgmt.html#Log4jAdministrationJSP

742 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 11:15:47 ]
>>741
そんな面倒なことしなくても、タイムスタンプを見てから
DOMConfigurator.configureを実行すれば、ロガーの追加もレベル変更も即時更新。


743 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 14:21:01 ]
>>742
ほんまや

744 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 16:44:04 ]
DOMConfigurator.configureAndWatchでよくね?

745 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 02:43:17 ]
>>742,744
739じゃないけど、kwsk教えてください


746 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 15:05:25 ]
つAPI
ttp://www.ingrid.org/jajakarta/log4j/jakarta-log4j-1.1.3/docs-ja/api/org/apache/log4j/xml/DOMConfigurator.html#configureAndWatch(java.lang.String,%20long)

747 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 21:08:33 ]
XMLConfiguration、HierarchicalConfiguration超使える。
これで書き込みができれば最高



748 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 10:47:57 ]
IOUtilsのFileUtils.listFilesでファイル検索が簡単にできるけど、

/home/*/bin/*.sh とかのワイルドカード検索はできないんだね。
ワイルドカードのフィルターはあるけど・・・

749 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 13:05:53 ]
>>747
XMLのほうは書き込みやリロードのバグがあったが
直ってるか?

750 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 14:19:04 ]
>>749
ぽいよ。

751 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 19:58:22 ]
CollectionのBagで数が多い順に取り出す方法はありますか?

752 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 10:08:56 ]
AbstractMapBagに
/**
* Mutable integer class for storing the data.
*/
protected static class MutableInteger {
/** The value of this mutable. */
protected int value;

/**
* Constructor.
* @param value the initial value
*/
MutableInteger(int value) {
this.value = value;
}

public boolean equals(Object obj) {
if (obj instanceof MutableInteger == false) {
return false;
}
return ((MutableInteger) obj).value == value;
}

public int hashCode() {
return value;
}
}
ってあるけど、何でInteger使わないんだろ。メモリの削減になるわけでもないような。
ツーか頻繁に変えるなら、plus()minux()のメソッド作ってデータの変更のたびにnewしないようにすればいいのに・・・






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef