Java – Erro: SSLHandshakeException: …validator.ValidatorException: PKIX path building failed: …SunCertPathBuilderException: unable to find valid certification path to requested target

error sslhandshake

ERROR: SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.

Solução 1:

URL url = new URL("https://exemplo1");
HttpsURLConnection conn1 = (HttpsURLConnection) url.openConnection();

  conn1.setHostnameVerifier(new HostnameVerifier() {
    public boolean verify(String hostname, SSLSession session) {
      return true;
    }
  });

Solução 2: Continue reading

Java / Gson – Convertendo json em lista tipada List (Gson – convert from Json to a typed ArrayList)

gson

O Gson é uma biblioteca Java que pode ser usada para converter objetos Java em sua representação JSON. Ele também pode ser usado para converter uma string JSON em um objeto Java equivalente. Gson pode trabalhar com objetos Java arbitrários, incluindo objetos pré-existentes que você não tem código fonte de. (Gson – Google)

A seguir segue um exemplo de como converter um JSON Array em uma lista de objetos: Continue reading

Gradle – Instalando o Gradle no Linux

gradle

Gradle é um sistema de automação de compilação open source que se baseia nos conceitos de Apache Ant e Apache Maven e introduz uma linguagem de domínio específico (DSL) baseada em Groovy em vez do XML usado pelo Apache Maven para declarar a configuração do projeto. Gradle foi projetado para multi-projetos que podem ter alto crescimento, e suporta compilações incrementais quando inteligentemente determina quais partes da árvore estão atualizadas, de modo que qualquer tarefa dependente dessas partes não precisa ser re-executada.

Os plugins iniciais são focados principalmente em torno do desenvolvimento e implantação de Java, Groovy e Scala, porém mais linguagens e fluxos de projeto são pretendidos.

1- Primeiro de tudo verifique sua instalação do JAVA:

 $java -version

Caso não tenha o java instalado e configurado: http://helpdev.com.br/2016/04/14/java-configurando-jdk-no-linux-adicionando-java-path/

2 – Faça o Download do gradle: Continue reading

Android, GitHub, Maven, JitPack – Disponibilizando uma biblioteca Android como dependência utilizando o GitHub + JitPack (publishing of android libraries)

android-github-logo

Para disponibilizar uma biblioteca com gerenciamento de dependência, normalmente os desenvolvedores publicam suas libs em repositórios utilizando o Maven como ferramenta de configuração. Porem esse processo é complicado e trabalhoso. O JitPack (https://jitpack.io/) trabalha em conjunto com o Maven, GitHub, Gradle e o Android Arsenal para facilitar essa configuração, tornando muito simples criar uma biblioteca android para ser utilizada como dependência em outros projetos.
Ele constrói projetos Git sob demanda e fornece-lhe com artefatos prontos para o uso (jar, AAR). Se você quer sua biblioteca para estar disponível para o mundo, não há necessidade de passar por compilação de projeto e upload. Tudo que você precisa fazer é empurrar o seu projeto para GitHub e JitPack vai cuidar do resto.

1 – Primeiro de tudo, seu projeto deve estar no GitHubContinue reading

Android – Como adicionar uma view em um RelativeLayout programaticamente? (How to add a view programmattically to RelativeLayout?)

Android minimizar

//Criando uma view para adicionar no layout;
FloatingActionButton floatingActionButton = new FloatingActionButton(this);
floatingActionButton.setImageResource(R.drawable.ic_menu_add);
floatingActionButton.setOnClickListener(this);

//Adquire o RelativeLayout
RelativeLayout mainLayout = getLayout();

//Cria uma LayoutParams aonde vamos configurar as propriedades do componente inserido
//dentro do RelativeLayout;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);

//Adiciona a view com as propriedades no RelativeLayout
mainLayout.addView(floatingActionButton, params);

Android – Links úteis para ícones e geradores de ícones

icone_generator

===============================================

ROMANNURIK – AndroidAssetStudio

https://romannurik.github.io/AndroidAssetStudio/index.html

Icon generators — Make icons for your app

Icon generators allow you to quickly and easily generate icons from existing source images, clipart, or text.

Other generators — Miscellaneous asset creation tools

=================================VEJA MAIS-> Continue reading

JAVA/Linux – Configurando JDK no linux – Adicionando JAVA no PATH

java_linux

Faça o Download do JAVA JDK:

http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html

Extraia o arquivo baixado para sua pasta de preferência (exemplo: /opt/java_xxxx)

Opcional: Por costume e em caso de atualização do java, para não precisar mudar minhas configurações eu crio um link simbólico para referenciar a ultima versão do java:

$ ln -s /opt/java_xxxx /opt/java_jdk/

Para configurar o PATH, JAVA_HOME, CLASSPATH e MANPATH edite o arquivo:

$ sudo gedit /etc/profile

Adicione as seguintes linhas no topo do arquivo:

#JAVA
export JAVA_HOME=/opt/java_jdk
export CLASSPATH="$JAVA_HOME/lib"
export PATH="$PATH":"$JAVA_HOME/bin"
export MANPATH=/usr/local/man:/usr/man:"$JAVA_HOME/man"

Java – Como Retornar o ID do registro inserido de uma tabela (Get Autoincrement value after INSERT query in MySQL)

O método abaixo fica responsável em retornar o id autoincrement do registro inserido de uma tabela:

.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
  if (stm.executeUpdate() > 0) {
     ResultSet rs = stm.getGeneratedKeys();
     if (rs.next()) {
        return rs.getInt(1);
     }
}

Android – Salvar Logcat em arquivo (Save LogCat To A Text File)

logcat

O método abaixo é responsável por criar um arquivo de log na raiz do sdcard/ com a data do dia mais o appName passado por parametro. Após gerar o arquivo ele limpa o log do sistema, pois se chamado novamente ele escreve as novas informações no final do arquivo.

public class LogCat {
    private static final String LOG = "LogCat";

    public static File extractLogToFile(Context context, String appName) {
        //set a file
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH);
        String fullName = appName.toUpperCase() + "_" + df.format(new Date()) + ".log";
        File file = new File(Environment.getExternalStorageDirectory(), fullName);
        try {
            if (!file.exists()) file.createNewFile();

            String command = String.format("logcat -d -v threadtime " + context.getPackageName() + "*:*");
            Process process = Runtime.getRuntime().exec(command);

            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            StringBuilder result = new StringBuilder();
            String currentLine = null;

            while ((currentLine = reader.readLine()) != null) {
                result.append(currentLine);
                result.append("\n");
            }

            FileWriter out = new FileWriter(file, true);
            out.append(result.toString());
            out.flush();
            out.close();

            //clear the log
            try {
                Runtime.getRuntime().exec("logcat -c");
            } catch (IOException e) {
            }
        } catch (IOException e) {
            Log.e(LOG, "extractLog", e);
            file = null;
        }

        return file;
    }
}

RabbitVCS – Cliente SVN para Linux

rabbitvcs-post-logo

” Para aqueles que necessitam de um Cliente SVN para Linux nos moldes do Tortuga que existe no Windows, a solução mais viável é usar o RabbitVCS.

Para instalar o RabbitVCS no Ubuntu, basta seguir os seguintes passos:

1 – Adicionar o RabbitVCS no repositório:

$ sudo add-apt-repository ppa:rabbitvcs/ppa

2 – Atualizar o repositório:

$ sudo apt-get update

3 – Instalar o RabbitCVS:

$ sudo apt-get install rabbitvcs-core rabbitvcs-nautilus rabbitvcs-thunar rabbitvcs-gedit rabbitvcs-cli

Feito isto, basta reiniciar o sistema.”

FONTE: http://www.vivaolinux.com.br/dica/RabbitVCS-Cliente-SVN-para-Linux