[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 メーリングリストの案内