/** * Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados. * * e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro * dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do * Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão. * * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; * sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. * Veja a Licença Pública Geral Menor GNU para maiores detalhes. */ package br.gov.camara.edemocracia.util; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.PortalClassLoaderUtil; /** * @author P_7339 * */ public final class ClassPathResourceUtil { private static Log _log = LogFactoryUtil.getLog(ClassPathResourceUtil.class); /** * Carrega um template, utilizando inicialmente o classloader local e, * depois, o classloader do portal. * * Caso não encontre nenhum arquivo, retorna uma string vazia * * @param fileName * @return */ public static final String loadResource(String fileName) { ClassLoader clPortal = PortalClassLoaderUtil.getClassLoader(); ClassLoader clThread = Thread.currentThread().getContextClassLoader(); InputStream is = clThread.getResourceAsStream(fileName); if (is == null) { is = clPortal.getResourceAsStream(fileName); if (is == null) return ""; } InputStreamReader reader = new InputStreamReader(is); try { char[] chr = new char[1024]; StringBuilder sb = new StringBuilder(); int readed; while ( (readed = reader.read(chr)) != -1) { sb.append(chr, 0, readed); } return sb.toString(); } catch (IOException e) { _log.error(String.format("Erro recuperando template %s", fileName), e); return ""; } finally { try { is.close(); } catch (IOException ignore) { } } } }