File | Line |
---|
org/apache/myfaces/application/jsp/JspStateManagerImpl.java | 322 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 949 |
}
private static void checkForDuplicateIds(FacesContext context,
UIComponent component,
Set ids)
{
String id = component.getId();
if (id != null && !ids.add(id))
{
throw new IllegalStateException("Client-id : "+id +
" is duplicated in the faces tree. Component : "+component.getClientId(context)+", path: "+
getPathToComponent(component));
}
Iterator it = component.getFacetsAndChildren();
boolean namingContainer = component instanceof NamingContainer;
while (it.hasNext())
{
UIComponent kid = (UIComponent) it.next();
if (namingContainer)
{
checkForDuplicateIds(context, kid, new HashSet());
}
else
{
checkForDuplicateIds(context, kid, ids);
}
}
}
private static String getPathToComponent(UIComponent component)
{
StringBuffer buf = new StringBuffer();
if(component == null)
{
buf.append("{Component-Path : ");
buf.append("[null]}");
return buf.toString();
}
getPathToComponent(component,buf);
buf.insert(0,"{Component-Path : ");
buf.append("}");
return buf.toString();
}
private static void getPathToComponent(UIComponent component, StringBuffer buf)
{
if(component == null)
return;
StringBuffer intBuf = new StringBuffer();
intBuf.append("[Class: ");
intBuf.append(component.getClass().getName());
if(component instanceof UIViewRoot)
{
intBuf.append(",ViewId: ");
intBuf.append(((UIViewRoot) component).getViewId());
}
else
{
intBuf.append(",Id: ");
intBuf.append(component.getId());
}
intBuf.append("]");
buf.insert(0,intBuf.toString());
if(component!=null)
{
getPathToComponent(component.getParent(),buf);
}
}
public void writeState(FacesContext facesContext,
SerializedView serializedView) throws IOException {
if (log.isTraceEnabled()) log.trace("Entering writeState");
if (log.isTraceEnabled())
log.trace("Processing writeState - either client-side (full state) or server-side (partial information; e.g. sequence)");
if (serializedView != null) {
UIViewRoot uiViewRoot = facesContext.getViewRoot();
//save state in response (client-side: full state; server-side: sequence)
RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, uiViewRoot.getRenderKitId());
renderKit.getResponseStateManager().writeState(facesContext, serializedView);
if (log.isTraceEnabled()) log.trace("Exiting writeState");
}
}
/**
* MyFaces extension
* @param facesContext
* @param serializedView
* @throws IOException
*/
public void writeStateAsUrlParams(FacesContext facesContext,
SerializedView serializedView) throws IOException
{
if (log.isTraceEnabled()) log.trace("Entering writeStateAsUrlParams");
if (isSavingStateInClient(facesContext))
{
if (log.isTraceEnabled()) log.trace("Processing writeStateAsUrlParams - client-side state saving writing state");
UIViewRoot uiViewRoot = facesContext.getViewRoot();
//save state in response (client)
RenderKit renderKit = getRenderKitFactory().getRenderKit(facesContext, uiViewRoot.getRenderKitId());
ResponseStateManager responseStateManager = renderKit.getResponseStateManager();
if (responseStateManager instanceof MyfacesResponseStateManager)
{
((MyfacesResponseStateManager)responseStateManager).writeStateAsUrlParams(facesContext,
serializedView);
}
else
{
log.error("ResponseStateManager of render kit " + uiViewRoot.getRenderKitId() + " is no MyfacesResponseStateManager and does not support saving state in url parameters.");
}
}
if (log.isTraceEnabled()) log.trace("Exiting writeStateAsUrlParams");
}
//helpers
protected RenderKitFactory getRenderKitFactory()
{
if (_renderKitFactory == null)
{
_renderKitFactory = (RenderKitFactory)FactoryFinder.getFactory(FactoryFinder.RENDER_KIT_FACTORY);
}
return _renderKitFactory;
}
protected void saveSerializedViewInServletSession(FacesContext context,
SerializedView serializedView) {
Map sessionMap = context.getExternalContext().getSessionMap();
SerializedViewCollection viewCollection = (SerializedViewCollection) sessionMap
.get(SERIALIZED_VIEW_SESSION_ATTR);
if (viewCollection == null) {
viewCollection = new SerializedViewCollection();
sessionMap.put(SERIALIZED_VIEW_SESSION_ATTR, viewCollection);
}
viewCollection.add(context, serializeView(context, serializedView));
// replace the value to notify the container about the change
sessionMap.put(SERIALIZED_VIEW_SESSION_ATTR, viewCollection);
}
protected SerializedView getSerializedViewFromServletSession(FacesContext context, String viewId, String sequenceStr)
{
ExternalContext externalContext = context.getExternalContext();
Map requestMap = externalContext.getRequestMap();
SerializedView serializedView = null;
if (requestMap.containsKey(RESTORED_SERIALIZED_VIEW_REQUEST_ATTR))
{
serializedView = (SerializedView) requestMap.get(RESTORED_SERIALIZED_VIEW_REQUEST_ATTR);
}
else
{
SerializedViewCollection viewCollection = (SerializedViewCollection) externalContext
.getSessionMap().get(SERIALIZED_VIEW_SESSION_ATTR);
if (viewCollection != null) {
Integer sequence = null;
if (sequenceStr == null) {
// use latest sequence
sequence = ViewSequenceUtils.getCurrentSequence(context);
}
else {
sequence = new Integer(sequenceStr);
}
if (sequence != null) {
Object state = viewCollection.get(sequence, viewId);
if (state != null) {
serializedView = deserializeView(state);
}
}
}
requestMap.put(RESTORED_SERIALIZED_VIEW_REQUEST_ATTR, serializedView);
ViewSequenceUtils.nextViewSequence(context);
}
return serializedView;
}
protected Object serializeView(FacesContext context, SerializedView serializedView)
{
if (log.isTraceEnabled()) log.trace("Entering serializeView");
if(isSerializeStateInSession(context))
{
if (log.isTraceEnabled()) log.trace("Processing serializeView - serialize state in session");
ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
try
{
OutputStream os = baos;
if(isCompressStateInSession(context))
{
if (log.isTraceEnabled()) log.trace("Processing serializeView - serialize compressed");
os.write(COMPRESSED_FLAG);
os = new GZIPOutputStream(os, 1024);
}
else
{
if (log.isTraceEnabled()) log.trace("Processing serializeView - serialize uncompressed");
os.write(UNCOMPRESSED_FLAG);
}
ObjectOutputStream out = new ObjectOutputStream(os);
out.writeObject(serializedView.getStructure());
out.writeObject(serializedView.getState());
out.close();
baos.close();
if (log.isTraceEnabled()) log.trace("Exiting serializeView - serialized. Bytes : "+baos.size());
return baos.toByteArray();
}
catch (IOException e)
{
log.error("Exiting serializeView - Could not serialize state: " + e.getMessage(), e);
return null;
}
}
else
{
if (log.isTraceEnabled()) log.trace("Exiting serializeView - do not serialize state in session.");
return new Object[] {serializedView.getStructure(), serializedView.getState()};
}
}
/**
* Reads the value of the <code>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</code> context parameter.
* @see SERIALIZE_STATE_IN_SESSION_PARAM
* @param context <code>FacesContext</code> for the request we are processing.
* @return boolean true, if the server state should be serialized in the session
*/
protected boolean isSerializeStateInSession(FacesContext context)
{
String value = context.getExternalContext().getInitParameter(
SERIALIZE_STATE_IN_SESSION_PARAM);
boolean serialize = DEFAULT_SERIALIZE_STATE_IN_SESSION;
if (value != null)
{
serialize = new Boolean(value).booleanValue();
}
return serialize;
}
/**
* Reads the value of the <code>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</code> context parameter.
* @see COMPRESS_SERVER_STATE_PARAM
* @param context <code>FacesContext</code> for the request we are processing.
* @return boolean true, if the server state steam should be compressed
*/
protected boolean isCompressStateInSession(FacesContext context)
{
String value = context.getExternalContext().getInitParameter(
COMPRESS_SERVER_STATE_PARAM);
boolean compress = DEFAULT_COMPRESS_SERVER_STATE_PARAM;
if (value != null)
{
compress = new Boolean(value).booleanValue();
}
return compress;
}
protected SerializedView deserializeView(Object state)
{
if (log.isTraceEnabled()) log.trace("Entering deserializeView");
if(state instanceof byte[])
{
if (log.isTraceEnabled()) log.trace("Processing deserializeView - deserializing serialized state. Bytes : "+((byte[]) state).length);
try
{
ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) state);
InputStream is = bais;
if(is.read() == COMPRESSED_FLAG)
{
is = new GZIPInputStream(is);
}
ObjectInputStream in = new MyFacesObjectInputStream(
is); |
File | Line |
---|
org/apache/myfaces/application/jsp/JspStateManagerImpl.java | 579 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 1241 |
return new SerializedView(a, b);
}
catch (IOException e)
{
log.error("Exiting deserializeView - Could not deserialize state: " + e.getMessage(), e);
return null;
}
catch (ClassNotFoundException e)
{
log.error("Exiting deserializeView - Could not deserialize state: " + e.getMessage(), e);
return null;
}
}
else if (state instanceof Object[])
{
if (log.isTraceEnabled()) log.trace("Exiting deserializeView - state not serialized.");
Object[] value = (Object[]) state;
return new SerializedView(value[0], value[1]);
}
else if(state == null)
{
log.error("Exiting deserializeView - this method should not be called with a null-state.");
return null;
}
else
{
log.error("Exiting deserializeView - this method should not be called with a state of type : "+state.getClass());
return null;
}
}
protected static class SerializedViewCollection implements Serializable
{
private static final long serialVersionUID = -3734849062185115847L;
private final List _keys = new ArrayList(DEFAULT_NUMBER_OF_VIEWS_IN_SESSION);
private final Map _serializedViews = new HashMap();
// old views will be hold as soft references which will be removed by
// the garbage collector if free memory is low
private transient Map _oldSerializedViews = null;
public synchronized void add(FacesContext context, Object state)
{
Object key = new SerializedViewKey(context);
_serializedViews.put(key, state);
while (_keys.remove(key));
_keys.add(key);
int views = getNumberOfViewsInSession(context);
while (_keys.size() > views)
{
key = _keys.remove(0);
Object oldView = _serializedViews.remove(key);
if (oldView != null)
{
getOldSerializedViewsMap().put(key, oldView);
}
}
}
/**
* Reads the amount (default = 20) of views to be stored in session.
* @see NUMBER_OF_VIEWS_IN_SESSION_PARAM
* @param context FacesContext for the current request, we are processing
* @return Number vf views stored in the session
*/
protected int getNumberOfViewsInSession(FacesContext context)
{
String value = context.getExternalContext().getInitParameter(
NUMBER_OF_VIEWS_IN_SESSION_PARAM);
int views = DEFAULT_NUMBER_OF_VIEWS_IN_SESSION;
if (value != null)
{
try
{
views = Integer.parseInt(value);
if (views <= 0)
{
log.error("Configured value for " + NUMBER_OF_VIEWS_IN_SESSION_PARAM
+ " is not valid, must be an value > 0, using default value ("
+ DEFAULT_NUMBER_OF_VIEWS_IN_SESSION);
views = DEFAULT_NUMBER_OF_VIEWS_IN_SESSION;
}
}
catch (Throwable e)
{
log.error("Error determining the value for " + NUMBER_OF_VIEWS_IN_SESSION_PARAM
+ ", expected an integer value > 0, using default value ("
+ DEFAULT_NUMBER_OF_VIEWS_IN_SESSION + "): " + e.getMessage(), e);
}
}
return views;
}
/**
* @return old serialized views map
*/
protected Map getOldSerializedViewsMap()
{
if (_oldSerializedViews == null)
{
_oldSerializedViews = new ReferenceMap();
}
return _oldSerializedViews;
}
public Object get(Integer sequence, String viewId)
{
Object key = new SerializedViewKey(viewId, sequence);
Object value = _serializedViews.get(key);
if (value == null)
{
value = getOldSerializedViewsMap().get(key);
}
return value;
}
}
protected static class SerializedViewKey implements Serializable {
private static final long serialVersionUID = -1170697124386063642L;
private final String _viewId;
private final Integer _sequenceId;
public SerializedViewKey(String viewId, Integer sequence) {
_sequenceId = sequence;
_viewId = viewId;
}
public SerializedViewKey(FacesContext context) {
_sequenceId = ViewSequenceUtils.getViewSequence(context);
_viewId = context.getViewRoot().getViewId();
}
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (obj == this) {
return true;
}
if (obj instanceof SerializedViewKey) {
SerializedViewKey other = (SerializedViewKey) obj;
return new EqualsBuilder().append(other._viewId, _viewId).append(other._sequenceId,
_sequenceId).isEquals();
}
return false;
}
public int hashCode() {
return new HashCodeBuilder().append(_viewId).append(_sequenceId).toHashCode();
}
}
} |
File | Line |
---|
org/apache/myfaces/application/jsp/JspViewHandlerImpl.java | 161 |
org/apache/myfaces/application/pss/PssJspViewHandlerImpl.java | 153 |
}
public void renderView(FacesContext facesContext, UIViewRoot viewToRender)
throws IOException, FacesException
{
if (viewToRender == null)
{
log.fatal("viewToRender must not be null");
throw new NullPointerException("viewToRender must not be null");
}
ExternalContext externalContext = facesContext.getExternalContext();
String viewId = facesContext.getViewRoot().getViewId();
if (PortletUtil.isPortletRequest(facesContext)) {
externalContext.dispatch(viewId);
return;
}
ServletMapping servletMapping = getServletMapping(externalContext);
if (servletMapping != null && servletMapping.isExtensionMapping())
{
String defaultSuffix = externalContext.getInitParameter(ViewHandler.DEFAULT_SUFFIX_PARAM_NAME);
String suffix = defaultSuffix != null ? defaultSuffix : ViewHandler.DEFAULT_SUFFIX;
DebugUtils.assertError(suffix.charAt(0) == '.',
log, "Default suffix must start with a dot!");
if (!viewId.endsWith(suffix))
{
int dot = viewId.lastIndexOf('.');
if (dot == -1)
{
if (log.isTraceEnabled()) log.trace("Current viewId has no extension, appending default suffix " + suffix);
viewId = viewId + suffix;
}
else
{
if (log.isTraceEnabled()) log.trace("Replacing extension of current viewId by suffix " + suffix);
viewId = viewId.substring(0, dot) + suffix;
}
facesContext.getViewRoot().setViewId(viewId);
}
}
if (log.isTraceEnabled()) log.trace("Dispatching to " + viewId);
// handle character encoding as of section 2.5.2.2 of JSF 1.1
if (externalContext.getResponse() instanceof ServletResponse) {
ServletResponse response = (ServletResponse) externalContext.getResponse();
response.setLocale(viewToRender.getLocale());
} |
File | Line |
---|
org/apache/myfaces/application/jsp/JspViewHandlerImpl.java | 297 |
org/apache/myfaces/application/pss/PssJspViewHandlerImpl.java | 261 |
}
}
private static ServletMapping getServletMapping(ExternalContext externalContext)
{
String servletPath = externalContext.getRequestServletPath();
String requestPathInfo = externalContext.getRequestPathInfo();
WebXml webxml = WebXml.getWebXml(externalContext);
List mappings = webxml.getFacesServletMappings();
if (requestPathInfo == null)
{
// might be extension mapping
for (int i = 0, size = mappings.size(); i < size; i++)
{
ServletMapping servletMapping = (ServletMapping) mappings.get(i);
String urlpattern = servletMapping.getUrlPattern();
String extension = urlpattern.substring(1, urlpattern.length());
if (servletPath.endsWith(extension))
{
return servletMapping;
} else if (servletPath.equals(urlpattern)) {
// path mapping with no pathInfo for the current request
return servletMapping;
}
}
}
else
{
// path mapping
for (int i = 0, size = mappings.size(); i < size; i++)
{
ServletMapping servletMapping = (ServletMapping) mappings.get(i);
String urlpattern = servletMapping.getUrlPattern();
urlpattern = urlpattern.substring(0, urlpattern.length() - 2);
// servletPath starts with "/" except in the case where the
// request is matched with the "/*" pattern, in which case
// it is the empty string (see Servlet Sepc 2.3 SRV4.4)
if (servletPath.equals(urlpattern))
{
return servletMapping;
}
}
}
// handle cases as best possible where servletPath is not a faces servlet,
// such as when coming through struts-faces
if (mappings.size() > 0)
{
return (ServletMapping) mappings.get(0);
}
else
{
log.warn("no faces servlet mappings found");
return null;
}
}
} |
File | Line |
---|
org/apache/myfaces/application/jsp/JspStateManagerImpl.java | 213 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 502 |
UIViewRoot uiViewRoot;
if (isSavingStateInClient(facesContext))
{
//reconstruct tree structure from request
RenderKit rk = getRenderKitFactory().getRenderKit(facesContext, renderKitId);
ResponseStateManager responseStateManager = rk.getResponseStateManager();
Object treeStructure = responseStateManager.getTreeStructureToRestore(facesContext, viewId);
if (treeStructure == null)
{
if (log.isDebugEnabled()) log.debug("Exiting restoreTreeStructure - No tree structure state found in client request");
return null;
}
TreeStructureManager tsm = new TreeStructureManager();
uiViewRoot = tsm.restoreTreeStructure((TreeStructureManager.TreeStructComponent)treeStructure);
if (log.isTraceEnabled()) log.trace("Tree structure restored from client request");
}
else {
String sequenceStr = getSequenceString(facesContext, renderKitId, viewId);
//reconstruct tree structure from ServletSession
SerializedView serializedView = getSerializedViewFromServletSession(facesContext,
viewId,
sequenceStr);
if (serializedView == null)
{
if (log.isDebugEnabled()) log.debug("Exiting restoreTreeStructure - No serialized view found in server session!");
return null;
}
Object treeStructure = serializedView.getStructure();
if (treeStructure == null)
{
if (log.isDebugEnabled()) log.debug("Exiting restoreTreeStructure - No tree structure state found in server session, former UIViewRoot must have been transient");
return null;
}
TreeStructureManager tsm = new TreeStructureManager();
uiViewRoot = tsm.restoreTreeStructure((TreeStructureManager.TreeStructComponent)serializedView.getStructure());
if (log.isTraceEnabled()) log.trace("Tree structure restored from server session");
}
if (log.isTraceEnabled()) log.trace("Exiting restoreTreeStructure");
return uiViewRoot;
} |
File | Line |
---|
org/apache/myfaces/taglib/core/ViewTag.java | 169 |
org/apache/myfaces/application/pss/BufferedStringWriter.java | 63 |
String bodyStr = _buffer.toString();
//if ( stateManager.isSavingStateInClient(facesContext) )
//{
int form_marker = bodyStr.indexOf(JspViewHandlerImpl.FORM_STATE_MARKER);
int url_marker = bodyStr.indexOf(HtmlLinkRendererBase.URL_STATE_MARKER);
int lastMarkerEnd = 0;
while (form_marker != -1 || url_marker != -1)
{
if (url_marker == -1 || (form_marker != -1 && form_marker < url_marker))
{
//replace form_marker
realWriter.write(bodyStr, lastMarkerEnd, form_marker - lastMarkerEnd);
stateManager.writeState(facesContext, serializedView);
lastMarkerEnd = form_marker + JspViewHandlerImpl.FORM_STATE_MARKER_LEN;
form_marker = bodyStr.indexOf(JspViewHandlerImpl.FORM_STATE_MARKER, lastMarkerEnd);
}
else
{
//replace url_marker
realWriter.write(bodyStr, lastMarkerEnd, url_marker - lastMarkerEnd);
if (stateManager instanceof MyfacesStateManager)
{
((MyfacesStateManager)stateManager).writeStateAsUrlParams(facesContext,
serializedView);
}
else
{
log.error("Current StateManager is no MyfacesStateManager and does not support saving state in url parameters.");
}
lastMarkerEnd = url_marker + HtmlLinkRendererBase.URL_STATE_MARKER_LEN;
url_marker = bodyStr.indexOf(HtmlLinkRendererBase.URL_STATE_MARKER, lastMarkerEnd);
}
}
realWriter.write(bodyStr, lastMarkerEnd, bodyStr.length() - lastMarkerEnd);
/*}
else
{
realWriter.write( bodyStr );
} */
} |
File | Line |
---|
org/apache/myfaces/application/pss/PartialTreeStructureManager.java | 51 |
org/apache/myfaces/application/pss/PartialTreeStructureManager.java | 121 |
private TreeStructComponent internalBuildTreeStructureToSave(UIComponent component,FacesContext facesContext, Object state, int childIndex)
{
Object myState = ((Object[])state)[0];
Map facetStateMap = (Map)((Object[])state)[1];
List childrenStateList = (List)((Object[])state)[2];
TreeStructComponent structComp = new TreeStructComponent(convertStringToComponentClassId(facesContext,component.getClass().getName()),
component.getId(),myState,component.isTransient());
//children
if (component.getChildCount() > 0)
{
List childList = component.getChildren();
List structChildList = new ArrayList();
for (int i = 0, len = childList.size(); i < len; i++)
{
UIComponent child = (UIComponent)childList.get(i);
if (!child.isTransient())
{
TreeStructComponent structChild = internalBuildTreeStructureToSave(child,facesContext,childrenStateList != null ? childrenStateList.get(childIndex++):null,0); |
File | Line |
---|
org/apache/myfaces/config/impl/digester/elements/Attribute.java | 52 |
org/apache/myfaces/config/impl/digester/elements/Property.java | 54 |
public void addDescription(String value)
{
if(_description == null)
_description = new ArrayList();
_description.add(value);
}
public Iterator getDescriptions()
{
if(_description==null)
return Collections.EMPTY_LIST.iterator();
return _description.iterator();
}
public void addDisplayName(String value)
{
if(_displayName == null)
_displayName = new ArrayList();
_displayName.add(value);
}
public Iterator getDisplayNames()
{
if(_displayName==null)
return Collections.EMPTY_LIST.iterator();
return _displayName.iterator();
}
public void addIcon(String value)
{
if(_icon == null)
_icon = new ArrayList();
_icon.add(value);
}
public Iterator getIcons()
{
if(_icon==null)
return Collections.EMPTY_LIST.iterator();
return _icon.iterator();
}
public void setPropertyName(String propertyName) |
File | Line |
---|
org/apache/myfaces/context/servlet/ServletExternalContextImpl.java | 132 |
org/apache/myfaces/context/portlet/PortletExternalContextImpl.java | 112 |
}
}
} catch (Exception e)
{
if (log.isWarnEnabled())
log.warn("Failed to set character encoding " + e);
}
}
}
private String lookupCharacterEncoding(String contentType)
{
String characterEncoding = null;
if (contentType != null)
{
int charsetFind = contentType.indexOf("charset=");
if (charsetFind != -1)
{
if (charsetFind == 0)
{
//charset at beginning of Content-Type, curious
characterEncoding = contentType.substring(8);
}
else
{
char charBefore = contentType.charAt(charsetFind - 1);
if (charBefore == ';' || Character.isWhitespace(charBefore))
{
//Correct charset after mime type
characterEncoding = contentType.substring(charsetFind + 8);
}
}
if (log.isDebugEnabled()) log.debug("Incoming request has Content-Type header with character encoding " + characterEncoding);
}
else
{
if (log.isDebugEnabled()) log.debug("Incoming request has Content-Type header without character encoding: " + contentType);
}
}
return characterEncoding;
}
public void dispatch(String path) throws IOException |
File | Line |
---|
org/apache/myfaces/application/jsp/JspStateManagerImpl.java | 113 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 174 |
return _partialStateSaving.booleanValue();
}
protected Object getComponentStateToSave(FacesContext facesContext)
{
if (log.isTraceEnabled()) log.trace("Entering getComponentStateToSave");
UIViewRoot viewRoot = facesContext.getViewRoot();
if (viewRoot.isTransient())
{
return null;
}
Object serializedComponentStates = viewRoot.processSaveState(facesContext);
//Locale is a state attribute of UIViewRoot and need not be saved explicitly
if (log.isTraceEnabled()) log.trace("Exiting getComponentStateToSave");
return serializedComponentStates;
}
/**
* Return an object which contains info about the UIComponent type
* of each node in the view tree. This allows an identical UIComponent
* tree to be recreated later, though all the components will have
* just default values for their members.
*/
protected Object getTreeStructureToSave(FacesContext facesContext)
{
if (log.isTraceEnabled()) log.trace("Entering getTreeStructureToSave");
UIViewRoot viewRoot = facesContext.getViewRoot();
if (viewRoot.isTransient())
{
return null;
}
TreeStructureManager tsm = new TreeStructureManager();
Object retVal = tsm.buildTreeStructureToSave(viewRoot);
if (log.isTraceEnabled()) log.trace("Exiting getTreeStructureToSave");
return retVal;
}
/**
* Return an object which contains info about the UIComponent type
* of each node in the view tree. This allows an identical UIComponent
* tree to be recreated later, though all the components will have
* just default values for their members.
*/
protected Object getTreeToSave(FacesContext facesContext) |
File | Line |
---|
org/apache/myfaces/taglib/core/ViewTag.java | 56 |
org/apache/myfaces/application/NavigationHandlerImpl.java | 60 |
private Boolean _partialStateSaving = null;
private boolean isPartialStateSavingOn(javax.faces.context.FacesContext context)
{
if(context == null) throw new NullPointerException("context");
if (_partialStateSaving != null) return _partialStateSaving.booleanValue();
String stateSavingMethod = context.getExternalContext().getInitParameter(PARTIAL_STATE_SAVING_METHOD_PARAM_NAME);
if (stateSavingMethod == null)
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("No context init parameter '"+PARTIAL_STATE_SAVING_METHOD_PARAM_NAME+"' found; no partial state saving method defined, assuming default partial state saving method off.");
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_ON))
{
_partialStateSaving = Boolean.TRUE;
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_OFF))
{
_partialStateSaving = Boolean.FALSE;
}
else
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("Illegal partial state saving method '" + stateSavingMethod + "', default partial state saving will be used (partial state saving off).");
}
return _partialStateSaving.booleanValue();
} |
File | Line |
---|
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 125 |
org/apache/myfaces/application/pss/PssJspViewHandlerImpl.java | 64 |
private boolean isPartialStateSavingOn(FacesContext context)
{
if(context == null) throw new NullPointerException("context");
if (_partialStateSaving != null) return _partialStateSaving.booleanValue();
String stateSavingMethod = context.getExternalContext().getInitParameter(PARTIAL_STATE_SAVING_METHOD_PARAM_NAME);
if (stateSavingMethod == null)
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("No context init parameter '"+PARTIAL_STATE_SAVING_METHOD_PARAM_NAME+"' found; no partial state saving method defined, assuming default partial state saving method off.");
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_ON))
{
_partialStateSaving = Boolean.TRUE;
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_OFF))
{
_partialStateSaving = Boolean.FALSE;
}
else
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("Illegal partial state saving method '" + stateSavingMethod + "', default partial state saving will be used (partial state saving off).");
}
return _partialStateSaving.booleanValue();
}
private ViewHandler getOldViewHandler() |
File | Line |
---|
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 125 |
org/apache/myfaces/application/NavigationHandlerImpl.java | 62 |
private boolean isPartialStateSavingOn(javax.faces.context.FacesContext context)
{
if(context == null) throw new NullPointerException("context");
if (_partialStateSaving != null) return _partialStateSaving.booleanValue();
String stateSavingMethod = context.getExternalContext().getInitParameter(PARTIAL_STATE_SAVING_METHOD_PARAM_NAME);
if (stateSavingMethod == null)
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("No context init parameter '"+PARTIAL_STATE_SAVING_METHOD_PARAM_NAME+"' found; no partial state saving method defined, assuming default partial state saving method off.");
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_ON))
{
_partialStateSaving = Boolean.TRUE;
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_OFF))
{
_partialStateSaving = Boolean.FALSE;
}
else
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("Illegal partial state saving method '" + stateSavingMethod + "', default partial state saving will be used (partial state saving off).");
}
return _partialStateSaving.booleanValue();
}
private Map _navigationCases = null; |
File | Line |
---|
org/apache/myfaces/taglib/core/ViewTag.java | 58 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 125 |
private boolean isPartialStateSavingOn(FacesContext context)
{
if(context == null) throw new NullPointerException("context");
if (_partialStateSaving != null) return _partialStateSaving.booleanValue();
String stateSavingMethod = context.getExternalContext().getInitParameter(PARTIAL_STATE_SAVING_METHOD_PARAM_NAME);
if (stateSavingMethod == null)
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("No context init parameter '"+PARTIAL_STATE_SAVING_METHOD_PARAM_NAME+"' found; no partial state saving method defined, assuming default partial state saving method off.");
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_ON))
{
_partialStateSaving = Boolean.TRUE;
}
else if (stateSavingMethod.equals(PARTIAL_STATE_SAVING_METHOD_OFF))
{
_partialStateSaving = Boolean.FALSE;
}
else
{
_partialStateSaving = Boolean.FALSE; //Specs 10.1.3: default server saving
context.getExternalContext().log("Illegal partial state saving method '" + stateSavingMethod + "', default partial state saving will be used (partial state saving off).");
}
return _partialStateSaving.booleanValue();
} |
File | Line |
---|
org/apache/myfaces/application/pss/PartialTreeStructureManager.java | 81 |
org/apache/myfaces/application/pss/PartialTreeStructureManager.java | 143 |
structChildList.add(structChild);
}
}
TreeStructComponent[] childArray = (TreeStructComponent[])structChildList.toArray(new TreeStructComponent[structChildList.size()]);
structComp.setChildren(childArray);
}
//facets
Map facetMap = component.getFacets();
if (!facetMap.isEmpty())
{
List structFacetList = new ArrayList();
for (Iterator it = facetMap.entrySet().iterator(); it.hasNext(); )
{
Map.Entry entry = (Map.Entry)it.next();
UIComponent child = (UIComponent)entry.getValue();
String facetName = (String)entry.getKey();
if (!child.isTransient())
{
TreeStructComponent structChild = internalBuildTreeStructureToSave(child,facesContext,facetStateMap.get(facetName),0); |
File | Line |
---|
org/apache/myfaces/application/pss/PartialTreeStructureManager.java | 142 |
org/apache/myfaces/application/TreeStructureManager.java | 66 |
TreeStructComponent structChild = internalBuildTreeStructureToSave(child);
structChildList.add(structChild);
}
}
TreeStructComponent[] childArray = (TreeStructComponent[])structChildList.toArray(new TreeStructComponent[structChildList.size()]);
structComp.setChildren(childArray);
}
//facets
Map facetMap = component.getFacets();
if (!facetMap.isEmpty())
{
List structFacetList = new ArrayList();
for (Iterator it = facetMap.entrySet().iterator(); it.hasNext(); )
{
Map.Entry entry = (Map.Entry)it.next();
UIComponent child = (UIComponent)entry.getValue(); |
File | Line |
---|
org/apache/myfaces/application/jsp/JspStateManagerImpl.java | 301 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 777 |
serializedView = new StateManager.SerializedView(null, new Object[]{facesContext.getViewRoot().getViewId(),diff});
externalContext.getRequestMap().put(SERIALIZED_VIEW_REQUEST_ATTR,
serializedView);
if (log.isTraceEnabled()) log.trace("Processing saveSerializedView - new serialized view created");
}
if (!isSavingStateInClient(facesContext))
{
if (log.isTraceEnabled()) log.trace("Processing saveSerializedView - server-side state saving - save state");
//save state in server session
saveSerializedViewInServletSession(facesContext, serializedView);
if (log.isTraceEnabled()) log.trace("Exiting saveSerializedView - server-side state saving - saved state");
Integer sequence = ViewSequenceUtils.getViewSequence(facesContext);
return new SerializedView(sequence.toString(), null); }
if (log.isTraceEnabled()) log.trace("Exiting saveSerializedView - client-side state saving");
return serializedView;
}
private boolean difState(Object[] currentState,Object[] templateState) |
File | Line |
---|
org/apache/myfaces/application/pss/PartialTreeStructureManager.java | 81 |
org/apache/myfaces/application/TreeStructureManager.java | 67 |
structChildList.add(structChild);
}
}
TreeStructComponent[] childArray = (TreeStructComponent[])structChildList.toArray(new TreeStructComponent[structChildList.size()]);
structComp.setChildren(childArray);
}
//facets
Map facetMap = component.getFacets();
if (!facetMap.isEmpty())
{
List structFacetList = new ArrayList();
for (Iterator it = facetMap.entrySet().iterator(); it.hasNext(); )
{
Map.Entry entry = (Map.Entry)it.next();
UIComponent child = (UIComponent)entry.getValue(); |
File | Line |
---|
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 438 |
org/apache/myfaces/application/pss/PssJspStateManagerImpl.java | 903 |
HashMap templatefacetMap = new HashMap();
if ((templateComponent != null) && (templateComponent.getFacets() != null))
{
Object [] templatefacets = templateComponent.getFacets();
for(int componentIndex = 0;componentIndex < templatefacets.length;componentIndex++ )
{
templatefacetMap.put(((Object[])(templatefacets[componentIndex]))[0],(TreeStructComponent)((Object[])(templatefacets[componentIndex]))[1]);
}
}
Map facetMap = new HashMap(); |