Arquivo da categoria: Desenvolvimento

[HowTo] – [Git] Trabalhando com Repositório Central

  • Forma 1 - linear e parecida com a do SVN

git fetch ou git pull
Exp: git fetch origin/master;

git rebase ou git merge
Exp: git merge origin/master ou git rebase origin/master
git push

  • Forma 2 - Não desenvolver no master.
  • Criar novos branches.
  • git checkout no repositorio clonado.
  • Ex: git checkout -b bugfix

  • Depois que tiver terminado a correção do bug, sincronizar o master
  • No branch bugfix, dar rebase.
  • Ex: git rebase

  • no branch master, fazer merge para trazer as correções.
  • Ex: git merge bugfix

    git push origin master

  • Desfazer do branch.
  • Ex: git branch -d bugfix

    Enjoy
    Marcos Carvalho

    [HowTo] – [Git] Colaboração

    • Depois que tiver recebido uma invocação que alguém fez alguma melhoria, é necessário validar e aprovar.
    • Você verá novos repositórios clonados a partir do seu.
    • Baixar as melhorias, validar e disponibilizar novamente.

    git remote add <remote> <url>
    <remote> é interessante você salvar o nome do usuário.
    <url> read-only.

    • É recomendável criar um novo branch para validação e aprovação.

    git fetch <remote>
    Baixando as informações.

    git branch -a
    Mostrar todas as branches nos seus devidos lugares.

    git diff <forkRemoteRepositorio>/<branch>
    Para visualizar as diferenças do fork com o original, a partir da branch que se encontra.

    git merge <forkRemoteRepositorio>/<branch>
    Aceitando as alterações.
    Entre nos arquivos que deram conflitos para tirar as cláusulas que estão conflitantes. Salve.

    git commit
    Commit do merge a partir do fork.

    git push <remote> <branch>
    Empurre para o repositório original.

    Enjoy
    Marcos Carvalho

    [HowTo] – [Git] Colaboração com Tickets

    git format-patch master --stdout > <arquivo>.diff
    Novo arquivo com as diferenças.

    • Mandar esse arquivo para o dono;
    • O Dono criará um novo branch e a partir desse, validará se as modificações aperfeiçoam o projeto e aceitar o commit disponibilizando para a comunidade.

    git am <arquivo>.diff
    É aplicado o diff com o commit.
    Como se tivesse recebido o commit.

    git checkout <branch>
    Voltar para um branch. Ex: master;

    git merge <branchCriadoAcima>

    git push origin <branch>
    <branch> normalmente é o master

    Enjoy
    Marcos Carvalho

    [HowTo] – [Git] Tags

    • Demarcar momentos

    git tag <nome>
    Ex: git tag v1.0

    git push <remote> <nomeTag>
    Ex: git push origin v1.0

    Caso crie uma tag dentro de um branch e você delete esse branch, a tag não será apagada.

    git push <tag>
    Empurra a tag para o server.

    git push --tags
    manda as tags para o server.

    git checkout -b <branch> <TAG>
    Cria um branch a partir da tag.

    Enjoy
    Marcos Carvalho

    [HowTo] – [Git] Logs

    git log
    order by created desc
    SHA1
    Autor
    Commit
    Date

    git log --stat
    Mostra quais arquivos foram modificados e o que mudou.
    + Entrou Linhas
    - Saíram linhas

    git log --pretty=oneline
    Mostra apenas 1 linha para cada commit.

    git log --pretty=format:"%an %ad %h %s"
    author
    date
    abreviação do hash
    subject
    Ex: git log --pretty=format:"[%an %ad] %h - %s"

    git log --graph
    Mostra os logs graficamente

    git log --since=<Date>
    Mostra desde algum tempo
    Ex: git log --since=30.minutes
    Ex: git log --since=1.hour
    Ex: git log --since=2.hours
    Ex: git log --since=2.weeks
    Ex: git log --since=2.hours --until=3.hours

    git log --author
    .
    .
    .

    E assim por diante

    Enjoy
    Marcos Carvalho

    [HowTo] – [Git] Subversion

    • Não tem branches. Ter cuidado.
    • Manter sempre o master em sincronia com o svn.

    git svn clone svn://<url>/<repositorio> <diretorio>
    clona o repositório svn.

    git commit

    git svn dcommit
    manda o commit de volta ao repositório.

  • Para fazer update
  • git svn fetch

  • Para fazer merge
  • git svn merge <branch>
    Ex: git svn merge git-svn

  • Adicionando no GitHub
  • git remote add <repositorio>[email protected]:<user>/<pasta>

    Enjoy
    Marcos Carvalho

    Exceptions Java

    • Exceptions thrown by JVM

    1. ArrayIndexOutOfBoundsException
    Thrown when attempting to access an array with an invalid index value (either negative or beyond the length of the array).
    Example :
    int[] ia = new int[]{ 1, 2, 3}; // ia is of length 3.
    System.out.println(ia[3]); //exception !!!

    2. ClassCastException
    Thrown when attempting to cast a reference variable to a type that fails the IS-A test.
    Example :
    Object s = “asdf”;
    StringBuffer sb = (StringBuffer) s; //exception at runtime because s is referring to a String.

    3. NullPointerException
    Thrown when attempting to call a method or field using a reference variable that is pointing to null.
    Example :
    String s = null;
    System.out.println(s.length()); //exception!!!

    4. ExceptionInInitializerError
    Thrown when any exception is thrown while initializing a static variable or a static block.
    Example :
    public class X { int k = 0;
    static{
    k = 10/0; //throws DivideByZeroException but this is wrapped into a
    //ExceptionInInitializationError and thrown outside.
    }
    }

    5. StackOverflowError
    Thrown when the stack is full. Usually thrown when a method calls itself and there is no boundary condition.
    Example :
    public void m1(int k){
    m1(k++); // exception at runtime.
    }

    6. NoClassDefFoundError
    Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found. The searched-for class definition existed when the currently executing class was compiled, but the definition can no longer be found.
    Example :
    Object o = new com.abc.SomeClassThatIsNotAvailableInClassPathAtRunTime(); // exception at runtime.

     

    • Exceptions thrown by Application Programmer

    1. IllegalArgumentException
    Thrown when a method receives an argument that the programmer has determined is not legal.
    Example:
    public void processData(byte[] data, int datatype)
    {
    if(datatype != 1 || datatype != 2) throw new IllegalArgumentException();
    else …
    }

    2. IllegalStateException
    Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java
    environment or Java application is not in an appropriate state for the requested operation. Note that this is
    different from IllegalMonitorStateException that is thrown by JVM when a thread performs an operation
    that it is not permitted to (say, calls notify(), without having the lock in the first place).
    Example:
    Connection c = …
    public void useConnection()
    {
    if(c.isClosed()) throw new IllegalStateException();
    else …
    }

    3. NumberFormatException
    It extends from IllegalArgumentException. It is thrown when a method that converts a String to a number
    receives a String that it cannot convert.
    Example:
    Integer.parseInt(“asdf”);

    4. AssertionError
    Thrown to indicate that an assertion has failed i.e.when an assert statement’s boolean test expression returns false.
    Example:
    private void internalMethod(int position)
    {
    assert (position<100 && position >0) : position;
    }

    Enjoy
    Marcos Carvalho

    Design Principle – Composition

    Favor composition over inheritance.

    Create system using composition gives you a lot more flexibility. Not only does it let you encapsulate a family of algorithms into their own set of classes, but it also lets you change behavior at runtime.

    Enjoy
    Marcos Carvalho

    Integrando JBoss AS 7 + PostgreSQL

    Simples,

    No seu arquivo “standaloneconfigurationstandalone.xml” procure pela tag “<datasources>”. Em seguida, adicione abaixo de “<drivers>” o seguinte código:

    <driver name="org.postgresql" module="org.postgresql">
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    </driver>

    Feito, necessita-se adicionar a LIB no módulo informado.
    Caso tenha seguido o padrão acima, “org.postgresql”, adicione a LIB no local especificado.

    Depois, apenas informar os datasources da forma que precisar seguindo o modelo abaixo:

    <datasource jndi-name="java:jboss/datasources/ExemploDS" pool-name="ExemploPool" enabled="true" jta="true" use-java-context="true">
    <connection-url>jdbc:postgresql://localhost:5432/exemplo</connection-url>
    <driver>org.postgresql</driver>
    <security>
    <user-name>usuario</user-name>
    <password>senha</password>
    </security>
    </datasource>

    Enjoy
    Marcos de Carvalho Oliveira

    ­­

    Instalando/Configurando Maven

    Instalar / Configurar o Maven? Siga os passos a baixo!

    Repositório maven: http://maven.apache.org/download.html

    1º Descompacte o Arquivo
    2º Adicione as váriáveis de ambientes:
    M2_HOME = D:\caminho_pasta_mave\napache-maven-x.y.z
    M2 = %M2_HOME%\bin
    3º Altere a Variável Path:
    Adicionar "%M2%;"
    4º Testar do terminal "mvn -version"
    Retornará a mensagem:

    Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T08:57:37-03:00)
    Maven home: C:\Marcos\Executaveis\apache-maven-3.3.3-bin\apache-maven-3.3.3
    Java version: 1.8.0_92, vendor: Oracle Corporation
    Java home: C:\Program Files\Java\jdk1.8.0_92\jre
    Default locale: pt_BR, platform encoding: Cp1252
    OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

    Sucesso!!!!!!

    Caso apareça a mensagem:
    "ERROR: JAVA_HOME is set to an invalid directory"

    1º Vá na variável JAVA_HOME e retire a pasta bin
    C:\Program Files\Java\jdk1.8.0_92\bin
    para
    C:\Program Files\Java\jdk1.8.0_92

    Adapte os comandos para a versão do programa disponível.

    Enjoy
    Marcos de Carvalho Oliveira