Etiquetas

,

Spring Loaded

Função Principal: Atualizar código Java sem ter que restartar o servidor.

Similares: JRebel.

URL: https://github.com/spring-projects/spring-loaded

  • Para utilizar o Spring Loaded, basta baixar o jar e adicionar os seguintes parâmetros na JVM:
-Djavaagent:PATH_ABSOLUTO/springloaded-1.2.5.RELEASE.jar -noverify
  • Nos servidores abaixo, os parâmetros TAMBÉM deverão ser incluídos:
    • JBOSS
-Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager,org.springsource
-Djava.util.logging.manager=org.jboss.logmanager.LogManager 
-Xbootclasspath/p:${JBOSS_HOME}/modules/org/jboss/logmanager/main/jboss-logmanager-1.2.0.GA.jar 
-Xbootclasspath/p:${JBOSS_HOME}/modules/org/jboss/logmanager/log4j/main/jboss-logmanager-log4j-1.0.0.GA.jar 
-Xbootclasspath/p:${JBOSS_HOME}/modules/org/apache/log4j/main/log4j-1.2.16.jar
  • Wildfly
-Djboss.modules.system.pkgs=org.jboss.byteman,org.springsource

Depois disso, é só inicializar o servidor em modo Debug e qualquer alteração que não seja na definição de método ou um método/classe nova, não precisará restartar. Recomenda-se desabilitar o Hot Deploy do servidor (Never publish automatically).

PODAM

Função Principal: Preencher uma classe (e suas dependências) com dados aleatórios.

URL: http://devopsfolks.github.io/podam/

Principais Funcionalidades: Além de poder preencher uma classe, é possível definir estratégias para gerar seus próprios dados, suporta Bean Validation, gerando dados por exemplo: Números entre 3 e 5 (@Min e @Max), e muito mais.

Um exemplo simples:

  • Dependência no Maven
<dependency>
    <groupId>uk.co.jemos.podam</groupId>
    <artifactId>podam</artifactId>
    <version>7.0.4.RELEASE</version>
</dependency>

  • O código
public static void main(String[] args) {
    PodamFactory factory = new PodamFactoryImpl();
    MyPojo myClass = factory.manufacturePojo(MyPojo.class); // Filled class
}

//class MyPojo
public class MyPojo {
    String abc;
    Integer bca;
    Date data;
    //getters and setters
}

Lombok

Função Principal: Reduzir a quantidade de código Java.

URL: https://projectlombok.org/

Principais Funcionalidades: Simplificar as coisas do Java usando anotações. Coisas como Getter, Setter, Construtores, Equals e HashCode, Builder e outros.

A configuração do Lombok se dá em duas partes: instalação do Lombok na IDE e o download do JAR para a aplicação. Ao baixar o lombok.jar basta executar:

java -jar lombok.jar

E a dependência no Maven:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.12</version>
</dependency>

E um exemplo simples numa classe:

//class MyPojo
public class MyPojo {
    @Getter @Setter
    String abc;
    
    public static void main(String[] args) { 
        MyPojo myPojo = new MyPojo();
        myPojo.setAbc("my value");  // I can use setter
        System.out.println(myPojo.getAbc()); // And getter
    }
}