[Seasar-user:2103] Re: injectDependencyについて
Masataka Kurihara
kurihara
2005年 6月 6日 (月) 10:45:30 JST
栗原です。
> public interface ResourceResolver {
> void setServletContext(ServletContext servletContext);
> InputStream getInputStream(String path);
> }
setServletContextはAPIにはいらないんじゃないかなと思い
ますけど。。。まあ、すでに本体がサーブレットAPIに侵食されて
いるからどっちでもいいか。。。私は今からでも、Deployerモデル
を整理すれば、サーブレットAPIを仕様変えなくても分離できると
思ってるので、それもいっしょに考えたい。
ちなみに、Mayaにはテンプレなどのソースを読んだりするのに
以下のものがあります。
package org.seasar.maya.source;
public interface SourceDescriptorFactory {
SourceDescriptor getSourceDescriptor(String path);
}
package org.seasar.maya.source;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Date;
public interface SourceDescriptor extends Serializable {
String getPath();
boolean exists();
InputStream getInputStream();
Date getTimestamp();
}
SourceDescriptorの実装としては、
-CompositeSourceDescriptor
-ClassLoaderSourceDescriptor
-MetaInfSourceDescriptor
-ServletSourceDescriptor
-NullSourceDescriptor
ちょびっと変えるんでなく、ガッチリ変えるなら、ちょっと時間かけて
考えて見ましょうか。Mayaでも結構考えてみたけど、もうちょいやり
よう有るかなと思ってます。InputSourceを継承させようかなとかも
考えています。あと、Factoryがうまく使えてなかったりします。結局、
ディスクリプタを直に生成して使うことになる。。。
--
株式会社グルージェント
栗原 傑享(くりはら まさたか)
渋谷区渋谷3-7-6 第6矢木ビル4F
TEL:03-5469-8869 FAX:03-5469-8879
URL:http://www.gluegent.com/
--
> 小林 (koichik) です.
>
> On Fri, 03 Jun 2005 10:29:31 +0900
> Masataka Kurihara <[E-MAIL ADDRESS DELETED]> wrote:
>
> > やっぱりこれはダメですね。FactoryもBuilderも、XML特化ではないから、
> > InputSourceはいかんと思います。これらはInputStreamでやっておかないと。
>
> S2ContainerFactory のインタフェースとして考えるなら,
> InputStream だけではだめですね.
> Factory が Builder を選択する材料が無くなっちゃいます.
>
> public S2Container create(String path, InputStream is)
>
> ならいけますが,前にも書いたように S2ContainerFactory および
> SingletonS2ContainerFactory にはあまりメソッド増やしたくないと
> 考えているので,新たに次のようなインタフェースを追加するのは
> いかがでしょうか?
>
> public interface ResourceResolver {
> void setServletContext(ServletContext servletContext);
> InputStream getInputStream(String path);
> }
>
> もうひとつ.
>
> public interface ResourceResolverAware {
> void setResourceResolver(ResourceResolver resourceResolver);
> }
>
> 後者は Builder が実装することを意図しています.
> もちろん XmlS2ContainerBuilder はこれを実装します.
> 将来 S2GroovyBuilder がこれを実装してくれることも期待.
> # S2ContainerBuilder に setResourceResolver() を追加しても
> # いいのかもしれませんが...
> # 既存のインタフェースは変更しない方を選択しました.
>
> そして s2containerbuilder.properties は
>
> ext=buider-class:resolver-class
>
> と記述できるようにします (resolver-class はオプション).
> そして,builder-class が ResourceResolverAware を実装していれば,
> resolver-class をインスタンス化して設定します.
>
> resolver-class が指定されていなければ DefaultResourceResolver が
> 使われます.こいつは従来同様クラスパスからリソースを探します.
> WEB-INF からの検索は DefaultResourceResolver でやるか,それとも
> WebResourceResolver とかを別途用意した方がいいか思案中.
>
> 感想・ご意見・要望があればお願いします.
>
>
>
> --
> <signature>
> <name>Koichi Kobayashi</name>
> <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> http://lists.sourceforge.jp/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内