CONFIRA NOSSA EDIÇÃO IMPRESSA ABAIXO - EDIÇÕES ANTERIORES CLIQUE AQUI!

Clique aqui e veja a edição impressa do informativo geral.

Java 4 ever o filme para todos os nerds

01/07/2010    







Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




IBM WebSphere Application Server Community Edition

27/05/2010    


A IBM aplicou toda sua tecnologia e experiência no desenvolvimento
de um servidor de aplicação que é uma versão extendida do Apache Gerônimo: WebSphere Application Server Community Edition.
Essa versão prima pela simplicidade e eficiência em um ambiente
onde você pode criar, implementar, integrar e hospedar suas
aplicações sem custo algum.

Criado sobre Apache Geronimo, o servidor de aplicação Community Edition da IBM utiliza as últimas inovações da comunidade de código aberto, incluindo Apache Tomcat. Você pode usar o WebSphere Application Server Community Edition para desenvolver e hospedar suas aplicações para fins comerciais e pessoais.

O WebSphere Application Server CE simplifica a criação de aplicativos menos críticos de nível departamental com custo mais baixo, baseado em servidor de Aplicativo Java EE Open Source.

Link download: http://www.servidordeaplicacao.com.br/opensource?d=3

Acesse este link e saiba tudo .




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email


 
Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina


org.apache.myfaces.custom.aliasbean.AliasBean

12/04/2010    


A Tag aliasBean permite criar um nome temporarário para um Bean existente. Ele se torna visível somente à tags filhas do AliasBean.

É como se fosse uma simulação de um novo escopo interno para o JSP, com ele você consegue fazer com quem um pequeno trecho do seu código se comporte com algumas funcionalidades que você teria costumeiramente apenas em uma página nova. Em alguns casos tu conseguirás substituir trechos que podem ser colocados em subViews. Já falamos aqui de alguns pontos importantes em como as subviews são tratadas pelo framework e da alocação limitada que existe automaticamente dependendo da forma como o viewstate esta configurado para as páginas. Neste caso você tanbém poderá utilizar o AliasBean como forma de delegar funções específicas à ela e contidas no seu ALIAS ou temporário Bean.

Veja um exemplo retirado da especificação do MyFaces Tomahawk for JSF 1.1:


<t:aliasBean alias="#{holder}" value="#{aliasTest1}"" >

    <f:subview id="simulatedIncludedSubform1">

        <h:outputLabel for="name" value="Name:"/>

        <h:inputText id="name" value="#{holder.name}"/>

    </f:subview>  

</t:aliasBean>



Comentários originais desta Tag que citamos aqui:

The aliasBean tag allows you to create a temporary name for a real bean. The temporary name exists (is visible) only to the children of the aliasBean.

One use of this feature is to pass "parameters" from an including page to an included one. The included page can use any name it desires for beans it needs to reference, and the including page can then use aliasBean to make those names refer to the beans it wishes to "pass" as parameters.

Suppose you have a block of components you use often but with different beans. You can create a separate JSP page (or equivalent) containing these beans, where the value-bindings refer to some fictive bean name. Document these names as the required "parameters" for this JSP page. Wherever you wish to use this block you then declare an alias component mapping each of these "parameters" to whatever beans (or literal values) you really want to apply the block to, then use jsp:include (or equivalent) to include the reusable block of components.

Note, however, that AliasBean does not work for component bindings; JSF1.1 just has no mechanism available to set up the alias during the "restore view" phase while the bindings of its children are being re-established, and then remove the alias after the child bindings are done.

As a special case, if this component's direct parent is an AliasBeansScope then the alias (temporary name) is active until the end of the parent component, rather than the end of this component.


FONTE ORIGINAL: http://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc/t_aliasBean.html




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




JAXB E O MALDITO NS2

08/04/2010    


Se você precisou atribuir um namespace a um xml sendo que o marshall precisa ser feito sem declaração de "xmlns:ns2" não tem santo que faça o JAXB remover isso, andei pesquisando bastante e devido à pressa para solucionar o problema achei 2 soluções que não são as melhores, porém resolvem o problema.

1: Remover o nodo do XML ns2 no parse:


# NodeList elements = doc.getElementsByTagName("infNFe");
# Element el = (Element) elements.item(i);
# String id = el.getAttribute("Id");
# // aqui ocorre a remoção do atributo...
# doc.getDocumentElement().removeAttribute("xmlns:ns2");
# ((Element)
# doc.getDocumentElement().getElementsByTagName("NFe").item(0))
# .setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe");
#
# Create a DOM XMLSignatureFactory that will be used to
# generate the enveloped signature.
#
# Reference ref = fac.newReference("#" + id, fac.newDigestMethod(
# DigestMethod.SHA1, null), transformList, null, null);


Um exemplo completo do código em:
http://www.guj.com.br/posts/list/83758.java


Aqui uma gambiarra que foi usada até que se resolvesse da maneira acima:
// passa-se o file a ser re-formatado como string
public void ajustaXml(File file) throws Exception {



FileReader reader = new FileReader(file);
BufferedReader leitor = new BufferedReader(reader);

leitor.read();

String vlr = "";
StringBuffer vlrFile = new StringBuffer();
String line = leitor.readLine();

while(line != null) {
vlrFile.append( line );
line = leitor.readLine();
}

vlr = vlrFile.toString();

if (vlr.indexOf("ns2:") > -1) {
vlr = vlr.replaceAll("ns2:", "");
}

if (vlr.indexOf(":ns2") > -1) {
vlr = vlr.replaceAll(":ns2", "");
}

leitor.close();
reader.close();

FileWriter writer = new FileWriter(file);
PrintWriter saida = new PrintWriter(writer);

saida.print( "<" + vlr);

writer.close();
saida.close();
}


Ambas maneiras acima resolvem o problema do ns2, e servem para remover o ns2 do jaxb, se alguem tiver uma solução melhor favor comentar.

Assim que eu resolver de forma correta esse problema postarei aqui a resposta.

Abraço





Conforme prometido.. segue solução abaixo:


SOLUÇÃO CORRETA, SEM GAMBIARRAS (Setando um name space preferido) :

SIm, há solução de personalizar os namespaces, no link:

http://blogs.sun.com/enterprisetechtips/entry/customizing_jaxb

Você encontra a solução.


Você precisa criar uma classe que estenda NamespacePrefixMapper vide:

[code]NamespacePrefixMapper m = new PreferredMapper();
marshal(jc, e, m);

public static class PreferredMapper extends NamespacePrefixMapper {
@Override
public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) {
return "mappedNamespace" + namespaceUri;
}
}[/code]


Depois no seu marshaller voce seta:

[code]final Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.setProperty("com.sun.xml.internal.bind.namespacePrefixMapper",
new NamespacePrefixMapperImpl("http://www.isotc211.org/2005/gmd"));[/code]


Abraço




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email


 
Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina


Aprenda a adicionar BIRT Reporting a aplicações usando RichFaces

19/01/2010    


"Learn how to add BIRT Reporting to JSF Applications using RichFaces"

Pessoal, vai acontecer um webcast ao vivo no dia 9 de fevereiro. Pode ser bem produtivo, é uma iniciativa Exadel.

Confira mais detalhes no link abaixo:

http://www.actuate.com/be/info/techexadelwsem/

Nos "vemos" lá.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Manuseando a propriedade NUMBER_OF_VIEWS_IN_SESSION

19/01/2010    


Mais um post referente à Java Server Faces e relacionado ao anterior sobre a propriedade javax.faces.STATE_SAVING_METHOD.

É importante saber que existe um limite de Views a serem mantidos em Session, esse número de views, inclui qualquer tela que seja submetida simultâneamente em uma mesma sessão. Importante: Subviews tanbém contam (e como).

Para resolver este problema, em casos onde você precisa que sua sessão dure bastante tempo e com muitas views a serem guardadas, você pode ampliar este número (o padrão é 20), segue um exemplo de configuração que pode ser incorporada no seu web.xml:


<context-param> 

         <param-name>org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION</param-name> 

         <param-value>200</param-value> 

         <description>Only applicable if state saving method is "server" (= default). 

                      Defines the amount (default = 20) of the latest views are stored in session. 

         </description> 

 </context-param>


No exemplo acima foi definido o número de 200 views, porém use com prudência essa propriedade, economize objetos em sessão e ganhe performance em sua aplicação.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




javax.faces.STATE_SAVING_METHOD pode resolver problemas

15/01/2010    


Após algum tempo sem escrever no blog, venho aproveitar a ocasião para descrever uma experiência que tive durante a resolução de um problema.

A maioria dos desenvolvedores que utiliza o framework JavaServerFaces acaba adotando por regra determinar a propriedade STATE_SAVING_METHOD como client, deixando a validação da renderização dos componentes no cliente ( cria-se um input hidden com o nome de ViewState ), é possível também deixar que essa responsabilidade fique no servidor de aplicações, definindo assim a propriedade com o valor "server".

Basta verificar a seguinte configuração em seu web.xml:

<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>


Caso exista algum problema de validação na estrutura do seu código ( jspx, jsp, jsf ), e a propriedade server estiver definida, será possível que a validação ocorra em linha, ou seja, antes de renderizar a página o servidor irá fazer todas as validações necessárias ( se existe tal propriedade ou metodo, se existe mais de 1 componente com mesmo id, se seus conversores estao definidos de maneira correta, etc ), pois bem, muitas dessas validações são feitas indiferentemente do que se define no "saving_method", porém em alguns casos o "client" pode falhar.

Ex: Caso você tenha utilizado jstl para fazer alguma verificação dos componentes, ex:

<c:choose>
<c:when> test="${meuMBean.minhaCondicao}"
<t:inputHidden id="meuHiddenComIdRepetido" forceId="true" value="#{meuFacesMBean.meuValue}" />
</c:when>
</c:otherwise>
<t:inputHidden id="meuHiddenComIdRepetido" forceId="true" value="#{meuFacesMBean.meuValue}" />
</c:otherwise>
</c:choose>



Obs: Veja que o ID é o mesmo, isso não pode.

Nesses casos, a validação client pode falhar. Muitos poderão dizer que o motivo é essa mistura do JSTL com JSF, porém em muitos casos se faz necessária, além de que você nunca sabe o que foi escrito no código antes de dar manutenção no mesmo, e pode ser que pensem diferente de você, portanto é preciso estar preparado para todos os casos. Outro argumento à favor é o fato de ser permitida essa adição, então se é permitida, logo é possível que ocorra e se o código funcionar assim, poderá causar erros inexplicáveis na aplicação, pois no momento em que for para o server, a validação irá falhar (e pode falhar de forma intermitente, digo isso como experiência propria que tive em uma aplicação).

Pois bem, adicionando em sua aplicação a propriedade SERVER, esse trecho de código acima, será rejeitado sempre, não deixando que nenhuma execução problemática ocorra.

Nota: Utilizei neste projeto myfaces1.1.7, tomahawk 1.9 e trinidad-api-1.0.11.jar




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




ATOM É O MENOR PROCESSADOR FEITO PELA INTEL

23/10/2009    


Saiu no Informativo Geral: http://www.informativogeral.com.br/?post=ATOM-O-MENOR-PROCESSADOR-DA-INTEL.

Confira esta matéria completa sobre este revolucionário processador. Com palavras dos próprios executivos da intel, responsáveis pela coordenação geral do seu desenvolvimento. Uma tecnologia de várias décadas que vem evoluindo com o passar dos anos.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Apache Trinidad dispensa tutoriais alternativos

20/10/2009    


Leitores

Gostaria de compartilhar com vocês alguns links que precisam ser visitados para o desenvolvimento Java com JSF. Todos os links foram retirados de http://myfaces.apache.org/trinidad/, tudo sobre o Trinidad está lá no apache.org, não existe tutorial mais completo do que estes:


Sobre o Apache Trinidad: http://myfaces.apache.org/trinidad/index.html#Overview

Lista de componentes: http://www.irian.at/trinidad-demo/faces/componentDemos.jspx

Demonstração de componentes: http://www.irian.at/trinidad-demo/faces/demos/demos.jspx

FAQ: http://myfaces.apache.org/trinidad/FAQ.html


Existe a seção Guia do desenvolvedor com exemplos de código de como implementar, o que implementar e o que o componente faz:
http://myfaces.apache.org/trinidad/devguide/index.html

Exemplo de desenvolvimento de tabela (tr:table):
http://myfaces.apache.org/trinidad/devguide/table.html



Bons estudos.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Thread safety aprenda sua necessidade

09/10/2009    


É um conceito de programação de sistemas onde o reaproveitamento de instâncias que contenham determinados valores ou lógica é utilizado, deste modo é possível obter maior performance e fazer com que os sistemas possam de forma mais inteligente deixar de alocar recursos desnecessários à aplicação.

Baseando-se no exemplo da linguagem de programação Java, a utilização de classes estáticas e obter uma instância compartilhada na aplicação faz com que um código padrão possa ser reutilizado em demais aplicações, vejamos abaixo um simples Hello World de uma classe onde os conceitos Thead Safe são aplicados:

// MinhaClasse.java
package pacotemeu;

public class MinhaClasse {

public static final MinhaClsse getInstance() {
return FooHolder.INSTANCE;
}

MinhaClasse () {
}
}
// MinhaClasseHello.java

package pacotemeu;

class MinhaClasseHello {

public static final MinhaClasse INSTANCE = new MinhaClasse();

}


outro exemplo de helloworld:

class Classe { private Classe(){}

private static Classe _instance;

static{ _instance = new Classe(); }

}



No desenvolvimento de software, os detalhes sempre fazem a diferença no final do processo. A qualidade de seu software depende da qualidade do código que escreveu-o.

Mais informações. Wiki: http://en.wikipedia.org/wiki/Thread_safety




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Persistindo dados com hibernate 3

08/10/2009    


Saiu no site JavaFree esta matéria que prevê orientá-los na configuração de persistencia de dados com hibernate 3.

Ótima leitura no link abaixo:

FONTE: LER Hibernate-3-com-Spring-e-DAO-Generico




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Phpbb configure pacote de linguagem

12/08/2009    


É muito simples, através do phpBB configurar um pacote de linguagem.

Vejamos em simples passos como fazer.

Exemplo, pacote português:

Com seu phpBB já instalado ( Clique aqui para ver como se faz), execute os passos abaixo.


1) Inicialmente faça o download, você pode utilizar este link:
http://superdownloads.uol.com.br/download/53/phpbb-portugues/

2)descompacte e copie o pacote para a pasta language, com o nome correspondente (no caso pt_br, conforme o zip), dentro do seu diretorio do phpBB, em seu servidor de aplicações.

3) entre no administrador do seu forum (aplicação localizada em /forum/adm/index.php, é claro, voce precisará estar logado como admin).

3) Clique na aba SYSTEM depois language pack.





4) Clique na opção install.





5) Essa mensagem aparecerá.





6) depois disso basta ir nas configurações do blog e definir o idioma principal (se portugues se ingles, criar regras, definições, etc).

No próximo tópico vou ensinar como baixar um layout especial para seu blog e configura-lo, com alguns passos tanbém.

Quer conferir o resultado? Acesse o fórum do Amarelinho:

http://www.informativogeral.com.br/forum/




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Gerando jpeg progressivo com imageio

30/07/2009    


Segue um exemplo de como fazer para gerar Jpeg progressivo com a api imageio:


ImageWriteParam param = writer.getDefaultWriteParam();

param.setCompressionMode( ImageWriteParam.MODE_EXPLICIT );

param.setCompressionQuality( quality );

param.setProgressiveMode( ImageWriteParam.MODE_DEFAULT );

ImageWriter writer = (ImageWriter) ImageIO.getImageWritersByFormatName("JPEG").next();
writer.setOutput( ImageIO.createImageOutputStream(out) );
writer.write(null, new IIOImage(image, null, null), param);


Para quem não sabe o que é um jpeg progressivo, leia uma explicação mais técnica e exata:

http://www.faqs.org/faqs/jpeg-faq/part1/section-11.html

Para leigos, podemos resumir:

"É aquele 'efeitinho'?|?| que faz com que a imagem seja carregada toda, inicialmente 'sem foco' e depois irá ganhando nitidez", essa é uma explicação bem tosca, na verdade não há efeito nenhum, o que ocorre é que o browser recebe uma informação diferente quando encontra um jpeg progressivo para ser carregado, esse jpeg precisa SER GRAVADO de uma forma diferente, não há nada que Javascript ou css possa fazer (talvez com swf... gif animado..), mas ai ja perdemos o foco (jpeg).

Abraços




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




Porque Java ME?

08/07/2009    


Saiu no site Java Móvel:


Java Plataform, Micro Edition, Java ME, ou ainda J2ME, é uma tecnologia que possibilita o desenvolvimento de software para sistemas e aplicações embarcadas, ou seja, toda aquela que roda em um dispositivo de propósito específico, desempenhando alguma tarefa que seja útil para o dispositivo.

Das opções tecnológicas disponíveis no mercado, desde sistemas embarcados aos inúmeros jogos e aplicações de celulares, a plataforma Java ME destaca-se como sendo mais atrativa devido a sua portabilidade e acessibilidade, pois além de suas aplicações rodarem nas plataformas de várias empresas de telemóveis, com o Java ME é mais simples construir aplicações que não exigem alto custo, visto que muitos dispositivos de baixo custo suportam aplicativos desta plataforma, o que não acontece com as demais plataformas, como Symbian, Brew, Android, Iphone OS, que requerem implementações específicas utilizando APIs proprietárias.

Mesmo sendo mais limitada que a plataforma Java SE, a Java Micro Edition possui recursos essenciais para o desenvolvimento de qualquer aplicação móvel e provê um ambiente robusto e flexível para aplicativos portados para dispositivos móveis. Possui uma gama de APIs e frameworks para otimização do desenvolvimento das aplicações, juntamente com ferramentas, emuladores e plug-ins que enriquecem o arsenal do desenvolvedor. A plataforma não para de evoluir desde sua criação e através do Java Community Process, onde diversos fabricantes formam uma comunidade para aprimoramento e definição de novas funcionalidades de forma padronizada, a linguagem se tornou um instrumento importante tanto para desenvolvedores quanto para os fabricantes.


FONTE http://www.javamovel.com/2009/07/por-que-java-me.html




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email




GEERAL DISPONIBILIZA SOFTWARE LIVRE PARA SEUS CLIENTES

08/07/2009    


Com a idéia de manter o suporte e prestar o serviço de manutenção/hospedagem para seus clientes, o Guia comercial Geeral.com.br disponibilizará até o próximo mês a ferramenta de CMS Joomla, que disponibilizará para cada um dos assinantes um site próprio, automaticamente gerenciado por esta ferramenta de software livre.

Visando e respeitando todos os princípios do software livre, os fins comerciais serão atribuídos à suporte do Joomla, desenvolvimento de Layout e adaptação de melhorias.

O Joomla disponibilizará aos clientes diversos recursos, como Galerias de foto, informações, notícias, artigos, etc.

Aguardem por novidades.




Redação Ige. ( redacao@informativogeral.com.br )

Topo   |   Link para este post   |   Comentários   |   Enviar por email