Facing new challenges everyday

Armazenando instâncias de objetos Java em banco.

October 30th, 2006

Esse código abaixo eu crei recentemente para auxiliar no armazenamento de instâncias de objetos no banco de dados em um simples campo que guarde textos grandes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public String serializeObject(Object object)
{
  try {
    ByteArrayOutputStream bs = new ByteArrayOutputStream();
    ObjectOutputStream os = new ObjectOutputStream(bs);
    os.writeObject(object);
    return new String(Base64.
       encodeBase64(bs.toByteArray()));
  }
  catch(Exception error) {
    throw new ResourceException("Couldn't serialize object!");     
  }
}
   
public Object deserializeObject(String data)
{
  try {
    ByteArrayInputStream bs = new ByteArrayInputStream(Base64
       .decodeBase64(data.getBytes()));
    ObjectInputStream os = new ObjectInputStream(bs);
    return os.readObject();
  }
  catch(Exception error) {
    throw new ResourceException("Couldn't deserialize object!");
  }
}

Estava esquecendo! Esse código requer Apache Commons Codec.

Post to Twitter

Gerando PDFs de forma simples usando JSF

October 30th, 2006

Esse trecho de código abaixo permite usar uma view customizada do JSF que permite criar PDFs convertendo código XHTML para XML-FO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public class PDFViewRoot extends UIViewRoot {
   
  public final static String COMPONENTY_TYPE = "studioweb.PFDView";
   
  public PDFViewRoot() {
 
  }
   
  public void encodeAll(FacesContext context) throws IOException
  {
       
    UIViewRoot root = context.getViewRoot();
    String renderKitId = root.getRenderKitId();
    RenderKitFactory renderFactory =
                (RenderKitFactory)FactoryFinder
                .getFactory(FactoryFinder.RENDER_KIT_FACTORY);
       
    RenderKit renderKit = renderFactory.
       getRenderKit(context, renderKitId);
    StringWriter stringWriter = new StringWriter();
    ResponseWriter responseWriter =
                renderKit.createResponseWriter(stringWriter,
                "text/html", "UTF-8");
       
    context.setResponseWriter(responseWriter);
    super.encodeAll(context);
    responseWriter.flush();
       
    String contentType = (String) getAttributes()
      .get("contentType");
   
    String filename = (String) getAttributes()
      .get("xsl");
       
    HttpServletResponse response = (HttpServletResponse)
      context.getExternalContext().getResponse();
       
    try {
      ByteArrayOutputStream out = convertFaceletsResponse(
         stringWriter, filename);
           
      response.setContentLength(out.size());
      response.setHeader("Pragma", "No-cache");
      response.setDateHeader("Expires", 0);
      response.setHeader("Cache-Control", "no-cache");
      response.setContentType(contentType);
      response.setHeader("Content-Disposition",
         "filename=\"listino.pdf\"");
           
      response.getOutputStream().write(out.toByteArray());
      response.getOutputStream().flush();
      out.close();
    } catch(Exception ex) {
      throw new ServiceException(ex);
    }
  }
}

Esse código é de autoria de um colega da Itália.

Post to Twitter

Conhecimento e Amadurecimento

October 30th, 2006

Ao longo dos anos, nas empresas que trabalhei e lugarei que estudei eu sempre procurei deixar uma mensagem, a mensagem do interesse em aprender mais e compartilhar aquilo que foi aprendido.

Creio que muito mais do que aprender, compartilhar é bom e essencial, pois muitas vezes é compartilhando conhecimentos que conseguimos encontrar ajuda em momentos importantes pois é muito melhor várias cabeças pensando ao redor daquilo que compreendem do que uma única cabeça.

Compartilhar conhecimento também tem seu valor social, pois compartilhando conhecimento estamos ajudando o outro a crescer profissionalmente o que pode lhe ajudar a abrir portas para outras oportunidades de trabalho, com melhores salários, ajudando no crescimento e evolução de toda uma sociedade.

Meu sonho é de um dia transformar isso em uma iniciativa sem fins lucrativos, dando oportunidade para jovens carentes de conhecer o mundo da informática por dentro capacitando-os como desenvolvedores de programas de computador, ajudando-os assim a programar um mundo melhor e uma socidade mais justa e evoluída.

Post to Twitter

jsf-extensions e eu

October 24th, 2006

Recentemente fui convidado por um colega da Sun (Ed Burns) a ser contribuinte (commiter) do projeto jsf-extensions, este projeto tem por objetivo oferecer funcionalidades extendidas para o JSF, como suporte para AJAX e um mecanismo chamado Flash (semelhante ao t:saveState do Tomahawk).

Creio que com mais essa porta aberta eu poderei contribuir muito mais para a comunidade com componentes que facilitem no desenvolvimento de aplicações web 2.0 com total suporte para AJAX.

Post to Twitter

Wicket x JSF

October 24th, 2006

Alguns dias atrás eu estive realizando pequenos testes com o Wicket, ele tem uma idéia semelhante ao Swing, é realmente um framework OO com um pouco de HTML e muitas classes Java, creio que quanto à modelagem é muito mais fácil trabalhar com o Wicket do que com o JSF.

Porém quando você que ter flexibilidade em aplicar modificações no markup como o JSF oferece as coisas mudam pois para cada página HTML existe uma classe Java e somente via código Java é possível adicionar componentes coisa que no JSF pode ser facilmente feito.

Creio que em breve farei um artigo comparando ambos.

Post to Twitter

Next Page »

Visitors Around the World

Polls

How Is My Site?

View Results

Loading ... Loading ...

Categories

Meta

Links

hosted by easy2use.net