[Seasar-user:2101] Re: injectDependencyについて
Koichi Kobayashi
koichik
2005年 6月 6日 (月) 00:40:10 JST
小林 (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 メーリングリストの案内