Skip to content

Instantly share code, notes, and snippets.

View jeffbicca's full-sized avatar

Jefferson Bicca jeffbicca

  • SERPRO
  • Porto Alegre, Brazil
View GitHub Profile
$(function() {
var jsonDec;
try {
jsonDec = decodeURIComponent(window.atob($.captures().jsonEnc));
} catch(e) {
$('#errors').puidialog('show');
alert("This page is just available for those who already added items to the cart!");
location.href = 'shopping.html';
}
var cart = JSON.parse(jsonDec);
@jeffbicca
jeffbicca / post-redirect-get.js
Last active June 10, 2016 21:08
Adjusting indentation.
$("#submitButton").click(function() {
$.ajax({
type : "POST",
url : "api/cart",
contentType : "application/json",
data : JSON.stringify(cartItems),
success : function(data, status, xhr) {
var dataEnc = window.btoa(unescape(encodeURIComponent(JSON.stringify(data))));
$.redirect('/virtual-store/confirm.html', dataEnc);
$('#jsonForm').capture();
@jeffbicca
jeffbicca / JacksonConfigurator.java
Last active November 10, 2015 12:27
The issue with Dates with TimeZone in JAX-RS and Jackson
package pkg;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import javax.ws.rs.Produces;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import org.codehaus.jackson.map.DeserializationConfig;
@jeffbicca
jeffbicca / EntityManagerProducer.java
Last active August 29, 2015 14:08
An EntityManagerProducer without memory leaks and stuff that works with JBoss EAP 6.1
package pckg;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Default;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
@jeffbicca
jeffbicca / SSH.java
Last active September 19, 2018 08:53
A class that describes a simple SSH client, which allows remote commands and file upload through SFTP.
package utils;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import net.sf.expectit.Expect;
import net.sf.expectit.ExpectBuilder;
import net.sf.expectit.matcher.Matchers;
@jeffbicca
jeffbicca / WebServiceCaller.java
Created December 2, 2013 17:20
Adding header elements into a SOAP envelope and setting timeout with JAX-WS.
import javax.xml.ws.Binding;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceRef;
import javax.xml.ws.handler.Handler;
public class WebServiceCaller implements Serializable {
private static final int MINUTES = 60000;
@WebServiceRef(wsdlLocation = "http://localhost/WebService.wsdl")
@jeffbicca
jeffbicca / AsyncProcessManager.java
Last active December 28, 2015 23:59
Keeping a long-running process executing in an asynchronous fashion using CDI, EJB and JSF 2.
@ApplicationScoped
public class AsyncProcessManager implements Serializable {
private Map<AsyncProcess, Future<Object>> asyncProcesses = new ConcurrentHashMap<AsyncProcess, Future<Object>>();
public void addProcess(AsyncProcess process) {
// put the process into the map.
}
public void removeProcess(AsyncProcess process) {
@jeffbicca
jeffbicca / MeuBC.java
Created May 14, 2012 15:00
Por que o Weld/DemoiselleRunner? sobrescreve o mock que setei, fazendo novamente o Inject, sendo que o bean já inicializou?
@BusinessController
public class MeuBC implements Serializable {
@Inject MeuDAO meuDAO;
public List<JPABean> listaJPABeans() {
return meuDAO.findAll();
}
}
@jeffbicca
jeffbicca / gist:2361562
Created April 11, 2012 19:15
Observações sobre o "DI" do CDI.
Durante a migração de algumas funcionalidades de um sistema que foi desenvolvido utilizando JEE 5 para JEE 6 conforme
algumas experiências expostas em (https://gist.github.com/2361046), fui observando e prestando a atenção em especial no
funcionamento do DI (Dependency Injection) do CDI. Alguns detalhes que exponho aqui podem parecer óbvios para quem já
trabalha com o CDI, mas que para "marinheiros de primeira viagem" possam não ser naturais.
- Injections null em construtores e como o CDI os trata
A verdade sobre construtores é: JAMAIS coloque muita responsabilidade em construtores. Construtores servem para
inicializar um objeto, desde que não se tenha muitas dependências para realizar isso. Ao usar CDI, até recomendo que nem
se crie um construtor. Você raramente (só para não dizer NUNCA) irá usar a keyword "new" para instanciar objetos CDI.
Deixe o container cuidar disso pra você.
@jeffbicca
jeffbicca / gist:2361046
Created April 11, 2012 18:09
Migração Demoiselle 1 para Demoiselle 2
Eis aqui as experiências que tive até o momento, ao migrar algumas funcionalidades de um sistema, desenvolvido usando
Demoiselle 1 com JSF 1.2, RichFaces 3.3, JPA para Demoiselle 2, JSF 2, RichFaces 4 e J2EE 6.
*** XHTML:
- Mudar xmlns do a4j para xmlns:a4j="http://richfaces.org/a4j"
- Mudar tag "<body>" para "<h:body>".
- Mudar tag "<head> para "<h:head>".
- Retirar o prefixo "on" dos eventos atribuidos na propriedade "event" das tags ajax.
Ex.: JSF1: "<a4j:support event="onchange">", JSF2: "<a4j:ajax event="change">"