All pastes #91389 Raw Edit

Untitled

public java v1 · immutable
#91389 ·published 2006-07-18 16:01 UTC
rendered paste body
package com.loomis.jsf.component;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.faces.context.ExternalContext;import javax.faces.context.FacesContext;import javax.faces.event.PhaseEvent;import javax.faces.event.PhaseId;import javax.faces.event.PhaseListener;import javax.servlet.http.HttpServletResponse;/** *  * @author AGORI and Octoberdan */public class ResourcePhaseListener implements PhaseListener {	public static final String RESOURCE_KEY = "ResourceNames_" + new Date().getTime();		private Map<String, String> resourceMap;	private String getResource(String resourceName) {				if (getResourceMap().containsKey(resourceName)) {			return getResourceMap().get(resourceName);		}				StringBuffer resourceBuf = new StringBuffer();		BufferedReader br = new BufferedReader(new InputStreamReader(getClass()				.getResourceAsStream(resourceName)));				try {			String line = "";						while ((line = br.readLine()) != null) {				resourceBuf.append(line + "\n");			}		} catch (Exception e) {			e.printStackTrace();		} finally {			if (br != null) {				try {					br.close();				} catch (IOException ex) {				}			}		}				String resource = resourceBuf.toString();				if (resource != "") {			getResourceMap().put(resourceName, resource);		}				return resource;	}	public static List<String> getResourceNames(ExternalContext exContext) {		Object obj = exContext.getRequestMap().get(RESOURCE_KEY);				return obj instanceof List ? (List)obj : null;	}		public void afterPhase(PhaseEvent event) {				if (!event.getPhaseId().equals(PhaseId.RENDER_RESPONSE)) {			return;		}				FacesContext context = event.getFacesContext();		ExternalContext exContext = context.getExternalContext();		PrintWriter out = null;		HttpServletResponse response = (HttpServletResponse) exContext				.getResponse();		List<String> resourceNames = getResourceNames(exContext);				if (resourceNames == null) {			return;		}				for (String resourceName : getResourceNames(exContext)) {			try {				String resource = getResource((String) resourceName);				response.setContentType("text/plain;charset=UTF-8");				out = response.getWriter();				out.print(resource);			} catch (Exception e) {			} finally {				if (out != null) {					out.close();				}				context.responseComplete();			}		}	}	public PhaseId getPhaseId() {		return PhaseId.RESTORE_VIEW;	}		public void beforePhase(PhaseEvent event) {	}	public Map<String, String> getResourceMap() {		if (resourceMap == null) resourceMap = new HashMap<String, String>();				return resourceMap;	}	public void setResourceMap(Map<String, String> resourceMap) {		this.resourceMap = resourceMap;	}}