Olá,

Esse post é apenas um lembrete meu, mas pode ajudar outras pessoas ;-)

No Mojarra 2.0.4 (acredito que este problema venha desde da 2.0.0) quando você implementa seu javax.faces.event.PhaseListener no método beforePhase() o método FacesContext.getViewRoot() retorna null. Isto impossibilita a uma verificação que eu precisava fazer no código abaixo.
Para contornar o problema joguei o código para o método afterPhase(), pois lá o getViewRoot() não vem nulo.
Não sei se isso ocorre com outras implementações do JSF 2 como o MyFaces e nem sei se é proposital ou é se um bug.

public void beforePhase(PhaseEvent evt) {
	PhaseId phaseId = evt.getPhaseId();
	FacesContext ctx = evt.getFacesContext();
	String viewId = ctx.getViewRoot().getViewId();

	if(PhaseId.RESTORE_VIEW.equals(phaseId)){
		// Verificação simples de autorização de acesso
		// Caso usuario não estiver na sessão, redireciona para o login
		// Unica pagina livre é o que tem  login na identificação da view
		HttpSession session = (HttpSession) ctx.getExternalContext().getSession(true);
		Object usuario = session.getAttribute(CrmGlobals.USUARIO_AUTENT);

		try {

			if(!(viewId.indexOf("login") > 0) && usuario == null){
				FacesContext.getCurrentInstance().getExternalContext().redirect("/crm/login/login.jsf");
			}

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Até mais,
Roberto

Olá,

Foram lançados no dia 10 de Janeiro de 2011 a versão 4.0.0 do JasperReports e do iReport.

Pelo que vi no changelog do iReport não tem muitas novidades, apenas correção de erros. No JasperReports foram incluídos essas funcionalidades listadas abaixo, além de correções de bugs.

- new CSV query executer added to simplify to allow configuring CSV data sources from within report templates
using built-in paramters and config properties;

- new CSV metadata exporter added to better control the CSV export by marking columns in the report template
using custom properties;

- new chapters in the Sample Reference documentation have beed completed
(http://jasperreports.sf.net/sample.reference.html);

Download iReport
https://sourceforge.net/projects/ireport/files

iReport plugin for NetBeans
http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=4425

Biblioteca JasperReports

http://sourceforge.net/projects/jasperreports/files/jasperreports/

Até mais,

Roberto

Feliz Ano Novo!

31/dezembro/2010 - Geral

Olá!

Gostaria de desejar a todos os visitantes do blog um Feliz Ano Novo! :-D

Que em 2011 todos os desejos se tornem realidade com muito amor,  saúde e paz.

E que tenhamos muitas linhas de código sem bugs nesse novo ano! :-D

Até mais,

Roberto

JasperReports com Oracle ADF

07/dezembro/2010 - Java, Oracle

Olá

Escrevo este post para deixar uma dica para quem precisa integrar ADF com JasperReports. No blog GEBS foi publicado um artigo sobre esse tema com direito a exemplo para download.

Veja o artigo clicando no link a seguir: http://www.gebs.ro/blog/oracle/jasper-reports-in-adf/

Até mais

Roberto

ReplaceAll() em Java 1.3

19/novembro/2010 - Geral

Olá

Para você, que como eu, está trabalhando com Java 1.3 e precisa do método replaceAll() da classe String ai vai ele. Coloque no seu famigerado singleton StringUtil.

public String replaceAll(String txt, String txtAtual, String txtNovo) {
         if (txt != null) {
            int idx = -1;
            while ((idx = txt.indexOf(txtAtual)) >= 0)
                    txt = txt.substring(0, idx) + txtNovo
                                    + txt.substring(idx + txtAtual.length());
           }
       return txt;
    }

Até mais,