Bloquear commit sem comentário no SVN! (Hook-Script SVN)

Tanto tempo que não mexo aqui… =)

 

Só passando para deixar um pequeno hook-script(svn) para bloqueio de commits sem comentários.

 

#!/bin/sh

REPOS="$1"
TXN="$2"
# Make sure that the log message contains some text.
SVNLOOK=/usr/bin/svnlook
SVNLOOKOK=1
$SVNLOOK log -t "$TXN" "$REPOS" | \
grep "[a-zA-Z0-9]" > /dev/null || SVNLOOKOK=0
if [ $SVNLOOKOK = 0 ]; then
echo -e "Empty log messages are not allowed. Please provide a proper log message." 1>&2
exit 1
fi
exit 0

[JSF] – RichTabPanel “some” no IE6/7

 

 

 

 

 

Para os que utilizam RichFaces e estão passando pelo problema onde após uma requisição AJAX as abas do TabPanel somem(no IE6/7, seus problemas “se acabaram-se”… =)

Procurando na net, vi que há um relato no JIRA do RichFaces informando sobre este bug. Disseram que este problema ocorre quando o componente <rich:tabPanel> está dentro de um div(Absoluto, se não me engano). Desculpem não postar o link do Jira mas não o encontrei ao criar esse post.

 

Para resolver o problema eu precisei criar um selector do Rich/JQuery e aplicar um css para esconder/mostrar a célula que possui as abas.

Ficou assim:

Status de requisições AJAX invocando a funcção javascript do selector:

<a4j:status id="stAjax" onstop="reloadTabs();" />

E o selector:

<rich:jQuery id="reloadTabs" name="reloadTabs" selector=".rich-tab-bottom-line" 
timing="onload" query="css('display', 'none').css('display','inline')" />

Espero ter ajudado.

 

Abraços.

RichFaces – Calendário com mês e ano(MM/yyyy)

Olá, há um tempo, o Flávio Abel e eu precisamos utilizar o componente do RichFaces(JSF1.2) para datas porém só seria possível escolher mês/ano.

Para isso, criamos o código abaixo.

<rich:calendar enableManualInput="true" id="myDate"  
inputClass="maskDateDDYYYY" styleClass="special" showWeekDaysBar="false" showFooter="false"
value="#{mbean.myDate}"
oncurrentdateselected="event.rich.component.selectDate(event.rich.date)"
datePattern="MM/yyyy" locale="pt_BR" inputSize="7" required="true">
 <s:convertDateTime pattern="MM/yyyy" />
 <f:attribute name="maxlength" value="7" />
</rich:calendar>

E a aplicação da máscara com JQuery:

<rich:jQuery id="unMskDateDDYYYY" selector=".maskDateDDYYYY" timing="onload"
 query="unmask()" name="unMskDateDDYYYY" />
<rich:jQuery id="maskDateDDYYYY" selector=".maskDateDDYYYY" timing="onload"
query="mask('99/9999',{placeholder:' '})" name="maskDateDDYYYY" />

E por fim, crie a folha de estilo:

.special tr[id]{ display:none; }


Espero que seja útil.

Publicado em Java, Tecnologia. 5 Comments »

WebService MTOM: UnsupportedMediaException – E agora?

Pessoal,

Recentemente passei por um problema ao criar um cliente para um webservice construído com JAX-WS e rodando no Tomcat 6.0.14.
O meu webservice utilizava o mecanismo MTOM.
O problema era o seguinte:

Quando um servidor SnowLeopard “subia” o webservice e também em um SnowLeopard a aplicação cliente era executada ocorria o seguinte erro:


Exception in thread "main" com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html;charset=utf-8 Supported ones are: [text/xml]

O João Zarate e eu pesquisamos e encontramos várias sugestões na internet porém nada resolvia nosso problema. Mais tarde, percebemos que o erro ocorria apenas quando o retorno do arquivo binário era vazio, ou seja, quando o webservice retornava um arquivo com 0KB.

Como no nosso caso sempre haveria um retorno, consideramos o problema como resolvido.

Realizamos os seguintes testes:
– Webservice rodando em LINUX:
– Cliente SnowLeopard: OK
– Cliente Windows: OK

– Webservice rodando em WINDOWS:
– Cliente SnowLeopard: OK
– Cliente Windows: OK

– Webservice rodando em SnowLeopard:
– Cliente SnowLeopard: FAIL
– Cliente Windows: OK

Conclusões:
– Não encontramos de fato o motivo de o erro estar ocorrendo(Cremos que seja algum problema de SO ou da JVM do SnowLeopard);
– Vimos na internet que o erro pode ocorrer por situações que não eram semelhantes à nossa.

Espero ter ajudado de alguma forma e se alguém tiver algo que possa contribuir, fique à vontade.

Alguns links interessantes:
Implementando WebService com JAX-WS
Implementando MTOM
MTOM W3C

Até.

Fonte não encontrada(IReport/Jasper). E agora?

Olá amigo,

Recentemente uma pessoa me perguntou sobre um erro que ocorria apenas em ambiente de produção ao gerar relatórios.
O erro era: JRFontNotFoundException.

Vimos na documentação do Jasper que isso ocorre a partir da versão 3.6.1 e para corrigir temos duas opções:

Ignorar a fonte: Para tanto, você deverá criar o arquivo jasperreports.properties(Que deverá estar no classpath da sua app) com a seguinte chave:

net.sf.jasperreports.awt.ignore.missing.font=true

Anexar a fonte: Para tanto, você deverá … ler a documentação pois eu não tive muito tempo de detalhar os passos aqui(Apesar de ser super simples)… ehehe

Até mais:

Fonte: http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/util/JRFontNotFoundException.html

Growl Flash Messages – CakePHP

Olá,

Acabo de postar um artigo no Bakery sobre como utilizar Growl Flash Messages com o framework CakePHP.

O Link do artigo é:
Growl Flash Message

Para copiar o projeto, faça o download aqui.

Abaixo, uma imagem das mensagens em Growl(Alerta, Sucesso, Erro).
Growl Flash Message

Erro ao consumir webservice com MTOM

Recentemente precisei criar um webservice com base no mecanismo mtom.

Quando fiz a prova de conceito funcionou perfeitamente, porém, quando apliquei no projeto ocorria o seguinte erro:

java.lang.NullPointerException         at
com.sun.xml.stream.writers.XMLStreamWriterImpl.getProperty(XMLStreamWriterImpl.java:441)at

Isso estava ocorrendo devido ao uso da biblioteca sjsxp-1.0.1.jar. Ao remover do meu projeto, funcionou corretamente.

No meu caso, essa biblioteca não era necessária.

Considerações:

– Não testei com a versão mais nova dessa biblioteca. Caso você teste, poste aqui o resultado;

– Não considero uma boa prática realizar transferência de arquivos via webservice mas pode ser que um dia você precise(Assim como eu precisei).

=)

Até mais!

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.