org.seasar.framework.container.external
クラス RebuildableExternalContextMap

java.lang.Object
  拡張java.util.AbstractMap
      拡張org.seasar.framework.container.external.AbstractExternalContextMap
          拡張org.seasar.framework.container.external.RebuildableExternalContextMap
すべての実装インタフェース:
java.util.Map
直系の既知のサブクラス:
PortletApplicationMap, ServletApplicationMap

public abstract class RebuildableExternalContextMap
extends AbstractExternalContextMap

HOT deploy時に値を再構築可能な外部コンテキスト用の抽象Mapです。

HOT deploy中はリクエストごとにクラスが変わってしまうので、 セッションなどに入れたデータを別のリクエストで取り出すと ClassCastExceptionが起きます。 これを防ぐために最新のクラスで元のオブジェクトを再作成します。

HOT deployは単一スレッドで実行されることが前提なので、このクラスはスレッドセーフではありません。

作成者:
koichik
関連項目:
HotdeployUtil.rebuildValue(Object)

入れ子クラスの概要
 
クラス org.seasar.framework.container.external.AbstractExternalContextMap から継承した入れ子クラス
AbstractExternalContextMap.ImmutableEntry
 
クラス java.util.Map から継承した入れ子クラス
java.util.Map.Entry
 
フィールドの概要
protected static java.lang.ref.WeakReference hotdeployClassLoader
          HotdeployClassLoader
protected static java.util.Set rebuiltNames
          hotdeployClassLoaderの元で再構築したコンポーネント名のSet
 
コンストラクタの概要
RebuildableExternalContextMap()
           
 
メソッドの概要
 java.lang.Object get(java.lang.Object key)
           
protected  boolean isHotdeployMode()
          HOT deployモードの場合はtrueを返します。
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
           
 void putAll(java.util.Map map)
           
 
クラス org.seasar.framework.container.external.AbstractExternalContextMap から継承したメソッド
clear, containsKey, containsValue, entrySet, getAttribute, getAttributeNames, isEmpty, keySet, remove, removeAttribute, setAttribute, values
 
クラス java.util.AbstractMap から継承したメソッド
clone, equals, hashCode, size, toString
 
クラス java.lang.Object から継承したメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

hotdeployClassLoader

protected static java.lang.ref.WeakReference hotdeployClassLoader
HotdeployClassLoader


rebuiltNames

protected static java.util.Set rebuiltNames
hotdeployClassLoaderの元で再構築したコンポーネント名のSet

コンストラクタの詳細

RebuildableExternalContextMap

public RebuildableExternalContextMap()
メソッドの詳細

get

public java.lang.Object get(java.lang.Object key)
定義:
インタフェース java.util.Map 内の get
オーバーライド:
クラス AbstractExternalContextMap 内の get

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
定義:
インタフェース java.util.Map 内の put
オーバーライド:
クラス AbstractExternalContextMap 内の put

putAll

public void putAll(java.util.Map map)
定義:
インタフェース java.util.Map 内の putAll
オーバーライド:
クラス AbstractExternalContextMap 内の putAll

isHotdeployMode

protected boolean isHotdeployMode()
HOT deployモードの場合はtrueを返します。

HOT deployモードの場合で、HotdeployClassLoaderが前回のチェック以降に切り替わっていた場合は 保持しているリビルド済みオブジェクトの名前をクリアします。

戻り値:
HOT deployモードの場合はtrue


Copyright © 2004-2014 The Seasar Foundation. All Rights Reserved.