All pastes #91686 Raw Edit

Someone

public java v1 · immutable
#91686 ·published 2006-07-18 20:26 UTC
rendered paste body
public class ResourcePhaseListener implements PhaseListener {	public static final String RESOURCE_REQUEST_KEY = "rpl_resourcePath";	// Example: /path/to/resources/starting/on/package/root	// Resources.RESOURCE_DIR =	// 		getClass().getPackage().getName().replaceAll("\\.", "/");	private static final String ASSUMED_DIR_PREFIX = Resources.RESOURCE_DIR;	private static Map<String, String> resourceMap;	private void loadResource(String resourcePath) {		InputStream is = getClass().getResourceAsStream(				ASSUMED_DIR_PREFIX + resourcePath);		if (is == null) {			return;		}		BufferedReader br = new BufferedReader(new InputStreamReader(is));		try {			String line = null;			StringBuffer resourceBuf = new StringBuffer();			while ((line = br.readLine()) != null) {				resourceBuf.append(line + "\n");			}			getResourceMap().put(resourcePath, resourceBuf.toString());		} catch (Exception e) {			e.printStackTrace();		} finally {			try {				br.close();			} catch (IOException e) {				e.printStackTrace();			}		}	}	public void afterPhase(PhaseEvent event) {		FacesContext context = event.getFacesContext();		ExternalContext exContext = event.getFacesContext()				.getExternalContext();		Object resourcePathObj = exContext.getRequestParameterMap().get(				RESOURCE_REQUEST_KEY);		if (!(resourcePathObj instanceof String)) {			return;		}		String resourcePath = (String) resourcePathObj;		String resource = null;		if (!getResourceMap().containsKey(resourcePath)) {			loadResource(resourcePath);		}		resource = getResourceMap().get(resourcePath);		if (resource == null) {			return;		}		HttpServletResponse response = (HttpServletResponse) exContext				.getResponse();		PrintWriter out = null;		response.setContentType("text/plain;charset=UTF-8");		try {			out = response.getWriter();			out.print(resource);		} catch (IOException e) {			e.printStackTrace();		} finally {			if (out != null) {				out.close();			}			context.responseComplete();		}	}	public PhaseId getPhaseId() {		return PhaseId.RESTORE_VIEW;	}	public void beforePhase(PhaseEvent event) {	}	private static Map<String, String> getResourceMap() {		if (resourceMap == null) {			resourceMap = new HashMap<String, String>();		}				return resourceMap;	}}