THE DEV SIDE
May the Code be with you!
Tuesday, November 27, 2012
SQLite com Hibernate/JPA?
Neste artigo irei postar uma solução que é a integração entre o SQLite e o Hibernate/JPA
Mas afinal o que é SQLite?
SQLite é o banco de dados mais utilizado no mundo. Pensa em quantos dispositivos Androids e iOS encontrados no mercado?
Segundo a Wikipédia
"SQLite é uma biblioteca em linguagem C que implementa um banco de dados SQL embutido. Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo SGBD separado. SQLite não é uma biblioteca cliente usada para conectar com um grande servidor de banco de dados, mas sim o próprio servidor. A biblioteca SQLite lê e escreve diretamente para e do arquivo do banco de dados no disco."
Criei um projeto maven e está hospedado na seguinte url https://github.com/juniorware/sqlite-jpa
O propósito deste projeto e realizar uma prova de conceito entre o bando de dados SQLite e o Hibernate, com propósitos futuros de utilizá-lo como uma forma de utilizar TDD, ao invés de base dados relacionais aonde dificulta o ambiente de desenvolvimento.
O arquivo persistence.xml abaixo possui uma peculiaridade a classe SQLiteDialect, o dialeto do SQLite no Hibernate ainda não foi implementado, então é necessário criar um dialeto:
O dialeto SQLite para o Hibernate, pode ser visto a partir desta url:
https://github.com/juniorware/sqlite-jpa/blob/master/sqlite-jpa/src/main/java/com/blogspot/thedevside/util/SQLiteDialect.java
Este projeto por enquanto, só possui uma classe persistente irei criar outros tópicos para aprofundar mais o assunto.
Até a próxima :)
Wednesday, February 29, 2012
Como traduzir o componente Calendar para português no PrimeFaces 3
O Primefaces na sua versão 2.x já traduzia o calendário por padrão, porém no PrimeFaces 3 é necessário colocar estas configurações.
Criar um arquivo javascript e colocar o seguinte código:
PrimeFaces.locales['pt_BR'] = {
closeText : 'Fechar',
prevText : 'Anterior',
nextText : 'Próximo',
currentText : 'Começo',
monthNames : [ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho','Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ],
monthNamesShort : [ 'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago','Set', 'Out', 'Nov', 'Des' ],
dayNames : [ 'Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta','Sábado' ],
dayNamesShort : [ 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb' ],
dayNamesMin : [ 'D', 'S', 'T', 'Q', 'Q', 'S', 'S' ],
weekHeader : 'Semana',
firstDay : 1,
isRTL : false,
showMonthAfterYear : false,
yearSuffix : '',
timeOnlyTitle : 'Só Horas',
timeText : 'Tempo',
hourText : 'Hora',
minuteText : 'Minuto',
secondText : 'Segundo',
ampm : false,
month : 'Mês',
week : 'Semana',
day : 'Dia',
allDayText : 'Todo Dia'
};
e no componente do calendário colocar a seguinte valor em negrito na tag abaixo.
<p:calendar locale="pt_BR" showButtonPanel="true" navigator="true" id="ptCal"/>
Não esquecer de importar o javascript nas páginas que utilizaram o componente p:calendar do PrimeFaces ou se preferir colocar em um template.
Criar um arquivo javascript e colocar o seguinte código:
PrimeFaces.locales['pt_BR'] = {
closeText : 'Fechar',
prevText : 'Anterior',
nextText : 'Próximo',
currentText : 'Começo',
monthNames : [ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho','Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ],
monthNamesShort : [ 'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago','Set', 'Out', 'Nov', 'Des' ],
dayNames : [ 'Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta','Sábado' ],
dayNamesShort : [ 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb' ],
dayNamesMin : [ 'D', 'S', 'T', 'Q', 'Q', 'S', 'S' ],
weekHeader : 'Semana',
firstDay : 1,
isRTL : false,
showMonthAfterYear : false,
yearSuffix : '',
timeOnlyTitle : 'Só Horas',
timeText : 'Tempo',
hourText : 'Hora',
minuteText : 'Minuto',
secondText : 'Segundo',
ampm : false,
month : 'Mês',
week : 'Semana',
day : 'Dia',
allDayText : 'Todo Dia'
};
e no componente do calendário colocar a seguinte valor em negrito na tag abaixo.
<p:calendar locale="pt_BR" showButtonPanel="true" navigator="true" id="ptCal"/>
Não esquecer de importar o javascript nas páginas que utilizaram o componente p:calendar do PrimeFaces ou se preferir colocar em um template.
Sunday, August 21, 2011
Mudando o remetente de e-mail do Liferay Portal Workflow Notifications
Quando configuramos o Liferay para controlar o conteúdo que é inserido no portal por padrão é enviado um e-mail para os usuários que possuem o papel Portal Content Reviwer, neste e-mail o nome do remetente é Liferay Portal Workflow Notifications e o e-mail do remetente é no-replay@liferay.com, para alterar o nome do remetente será necessário alterar o arquivo kaleo-spring.xml no caminho abaixo:
../liferay-portal-tomcat-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/META-INF.
Na figura abaixo existe um bean chamado com.liferay.portal.workflow.kaleo.runtime.notification.EmailNotificationSender, dentro dele possui duas propriedades fromAddress (com o valor no-reply@liferay.com) e fromName (com o valor Liferay Portal Workflow Notifications), e só alterá-los e ser feliz. :-) (Se o servidor estiver executando, será necessário reiniciá-lo)
../liferay-portal-tomcat-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/META-INF.
Na figura abaixo existe um bean chamado com.liferay.portal.workflow.kaleo.runtime.notification.EmailNotificationSender, dentro dele possui duas propriedades fromAddress (com o valor no-reply@liferay.com) e fromName (com o valor Liferay Portal Workflow Notifications), e só alterá-los e ser feliz. :-) (Se o servidor estiver executando, será necessário reiniciá-lo)
Sunday, August 14, 2011
Configurando o Liferay para enviar e-mail utilizando o Gmail
Para enviar e-mails no Liferay utilizando uma conta do Gmail é muito simples.
1º passo - Configurar a sua conta para enviar e receber e-mails (veja link).
2º passo - Configurar o Liferay de acordo com a figura abaixo.
No Control Panel clique em Server Administration e então clique em Mail.
Na figura acima os campos que estiverem com uma linha vermelha devem ser alterados.
No campo Incoming POP Server é o Servidor de entrada POP e deve ser preenchido com este valor pop.gmail.com
No campo Incoming Port é a Porta de Entrada e deve ser preenchido com este valor 995.
Os campos User a Secure Network Connection deve ser marcado porque o G-Mail utiliza SSL (conexão de rede segura) obrigatoriamente.
No campos User Name deve ser preenchido com o e-mail do G-Mail.
No campo Outgoing SMTP Server é o campo que corresponde ao Servidor SMTP de saída e dever ser assim preenchido smtp.gmail.com.
No campo Outgoing Port é a Porta de Saída e deve ser preenchido com este valor 465.
Muito simples, configurei aqui e funcionou direitinho, igual a uma uva. rsrsr =)
Se por acaso aparecer este erro é porque a sua conta não foi configurada corretamente ou o seu usuário/senha estão incorretos!
Referencial:
Configurar cliente de correio utilizando uma conta do g-mail.
No próximo artigo irei explicar como criar um workflow no Liferay. =)
1º passo - Configurar a sua conta para enviar e receber e-mails (veja link).
2º passo - Configurar o Liferay de acordo com a figura abaixo.
No Control Panel clique em Server Administration e então clique em Mail.
Na figura acima os campos que estiverem com uma linha vermelha devem ser alterados.
No campo Incoming POP Server é o Servidor de entrada POP e deve ser preenchido com este valor pop.gmail.com
No campo Incoming Port é a Porta de Entrada e deve ser preenchido com este valor 995.
Os campos User a Secure Network Connection deve ser marcado porque o G-Mail utiliza SSL (conexão de rede segura) obrigatoriamente.
No campos User Name deve ser preenchido com o e-mail do G-Mail.
No campo Outgoing SMTP Server é o campo que corresponde ao Servidor SMTP de saída e dever ser assim preenchido smtp.gmail.com.
No campo Outgoing Port é a Porta de Saída e deve ser preenchido com este valor 465.
Muito simples, configurei aqui e funcionou direitinho, igual a uma uva. rsrsr =)
Se por acaso aparecer este erro é porque a sua conta não foi configurada corretamente ou o seu usuário/senha estão incorretos!
12:59:39,451 ERROR [MailEngine:154] javax.mail.AuthenticationFailedException at javax.mail.Service.connect(Service.java:306) at com.liferay.util.mail.MailEngine._send(MailEngine.java:459) at com.liferay.util.mail.MailEngine.send(MailEngine.java:366) at com.liferay.util.mail.MailEngine.send(MailEngine.java:110) at com.liferay.mail.messaging.MailMessageListener.doMailMessage(MailMessageListener.java:101) at com.liferay.mail.messaging.MailMessageListener.doReceive(MailMessageListener.java:115) at com.liferay.mail.messaging.MailMessageListener.receive(MailMessageListener.java:43) at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:63) at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:61) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680)
Referencial:
Configurar cliente de correio utilizando uma conta do g-mail.
No próximo artigo irei explicar como criar um workflow no Liferay. =)
Thursday, August 11, 2011
Configurando o portal Liferay com Tomcat e MySQL
Pre-requisitos: Sistema operacional com o MySQL e JDK 6.0 instalado.
1º passo - Baixar a última versão do Liferay Portal Standard Edition bunbled with Tomcat 6.x no site http://www.liferay.com/downloads/liferay-portal.
2º passo - Extrair o arquivo baixado no diretorio de sua preferencia (chamado daqui por diante de $LIFERAY_PORTAL, por exemplo, C:\portal\liferay-portal-6.0.6).
3 - Remover os arquivos $TOMCAT_DIR/webapps/sevencogs-hook.war, $TOMCAT_DIR/webapps/sevencogs-theme.war e $TOMCAT_DIR/webapps/sevencogs-mobile-theme.war. O nome $TOMCAT_DIR se refere a pasta do tomcat-6.x.x no diretorio $LIFERAY_HOME. O nome $TOMCAT_DIR se refere ao endereço C:\portal\liferay-portal-6.0.6\tomcat-6.0.29 (exemplo).
4 - Criar um banco de dados chamado lportal e uma conta com usuario/senha chamado lportal/lportal no MySQL, exemplo:
5 - Criar um arquivo chamado portal-ext.properties no diretorio $TOMCAT_DIR/webapps/ROOT/WEB-INF/classes, e adicionar as seguintes linhas:
6 - Executar o script $TOMCAT_DIR/bin/startup.bat se estiver no Windows ou $TOMCAT_DIR/bin/startup.sh e estiver no Linux.
1º passo - Baixar a última versão do Liferay Portal Standard Edition bunbled with Tomcat 6.x no site http://www.liferay.com/downloads/liferay-portal.
2º passo - Extrair o arquivo baixado no diretorio de sua preferencia (chamado daqui por diante de $LIFERAY_PORTAL, por exemplo, C:\portal\liferay-portal-6.0.6).
3 - Remover os arquivos $TOMCAT_DIR/webapps/sevencogs-hook.war, $TOMCAT_DIR/webapps/sevencogs-theme.war e $TOMCAT_DIR/webapps/sevencogs-mobile-theme.war. O nome $TOMCAT_DIR se refere a pasta do tomcat-6.x.x no diretorio $LIFERAY_HOME. O nome $TOMCAT_DIR se refere ao endereço C:\portal\liferay-portal-6.0.6\tomcat-6.0.29 (exemplo).
4 - Criar um banco de dados chamado lportal e uma conta com usuario/senha chamado lportal/lportal no MySQL, exemplo:
drop database if exists lportal; create database lportal character set utf8; grant all on lportal.* to 'lportal'@'localhost' identified by 'lportal' with grant option; grant all on lportal.* to 'lportal'@'localhost.localdomain' identified by 'lportal' with grant option;
5 - Criar um arquivo chamado portal-ext.properties no diretorio $TOMCAT_DIR/webapps/ROOT/WEB-INF/classes, e adicionar as seguintes linhas:
##MySQL jdbc.default.driverClassName=com.mysql.jdbc.Driver jdbc.default.url=jdbc:mysql://localhost:3306/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false jdbc.default.username=lportal jdbc.default.password=lportal
6 - Executar o script $TOMCAT_DIR/bin/startup.bat se estiver no Windows ou $TOMCAT_DIR/bin/startup.sh e estiver no Linux.
Saturday, May 7, 2011
Erro de fonte não disponível na JVM ao gerar pdf com JasperReport
Se você está se deparando com o erro parecido com isso net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Courier New' is not available to the JVM. See the Javadoc for more details ao gerar um pdf utilizando o jasperreport, pode ser que a versão da sua JRE não contenha esta fonte "Courier New", eu passei por este erro ao atualizar uma biblioteca do jasper-report em um sistema aonde eu trabalho, a solução adotada foi criar um jar e fazer com que o framework reconheça esta fonte. Então crie um jar com a estrutura presente na figura abaixo:
Criar um arquivo xml chamado fonts.xml (1) dentro do pacote net.sf.jasperreports.fonts e um arquivo chamado jasperreports_extension.properties (3) com as configurações presentes na figura abaixo:
O arquivo courbd.tff (2) é o arquivo que contém a fonte que está faltando na sua JVM.
Se o erro que ocorreu com você foi de outro tipo de fonte não tem problema é só alterar o arquivo fonts.xml e colocar o arquivo que contém o fonte na raiz do jar.
Pesquisa de referência:
Download da fonte: http://truetype-font.com/C-COURBD.TTF-Courier-New-Bold.html
Jar contendo a solução: http://sites.google.com/site/xmedeko/code/misc/jasperreports-pdf-font-mapping
Configuração dos arquivos: http://www.redstream.nl/2010/05/31/solving-the-jasperserver-truetype-font-issue/
Criar um arquivo xml chamado fonts.xml (1) dentro do pacote net.sf.jasperreports.fonts e um arquivo chamado jasperreports_extension.properties (3) com as configurações presentes na figura abaixo:
O arquivo courbd.tff (2) é o arquivo que contém a fonte que está faltando na sua JVM.
Se o erro que ocorreu com você foi de outro tipo de fonte não tem problema é só alterar o arquivo fonts.xml e colocar o arquivo que contém o fonte na raiz do jar.
Pesquisa de referência:
Download da fonte: http://truetype-font.com/C-COURBD.TTF-Courier-New-Bold.html
Jar contendo a solução: http://sites.google.com/site/xmedeko/code/misc/jasperreports-pdf-font-mapping
Configuração dos arquivos: http://www.redstream.nl/2010/05/31/solving-the-jasperserver-truetype-font-issue/
Tuesday, April 12, 2011
Visualizando o código-fonte de um arquivo .class
Se você está precisando de visualizar o código-fonte a partir de um arquivo .class, então utilize o Java Decompiler, ele roda tanto no Windows, Linux e Mac. Existem outros no mercado como o DJ Java Decompiler, porém ele só roda do “Ruindows”, é necessário realizar instalação e também quando “decompila” converte acentuações em código UTF-8, e NÃO É GRATUITO : (
Não é necessário instalar o Java Decompiler, é leve, multi-plataforma, É GRATUITO :), e não define no seu “Ruindows” os arquivos .class como programa padrão.
Não é necessário instalar o Java Decompiler, é leve, multi-plataforma, É GRATUITO :), e não define no seu “Ruindows” os arquivos .class como programa padrão.
Subscribe to:
Posts (Atom)