quinta-feira, 16 de janeiro de 2014

Conectando JVisualVM com JBoss AS 7

Uma das ferramentas disponíveis para análise de memória do Java é o jvisualvm disponibilizado pela própria Oracle no Java JDK.

Aqui utilizei o Java JDK 6u45  e o Jboss AS 7.1.1 Final, vamos a prática:

Vou partir do princípio que você já possui as variáveis de ambiente JBOSS_HOME e JAVA_HOME definidas.

Configurando o Jboss para aceitar a conexão JMX:

  • Abra o CMD.exe
  • Digite: cd %JBOSS_HOME%\bin
  • Adicione um usuário ao Jboss (se já possuir um não precisa): add-user.bat -a usuario senha
  • Abra o client do Jboss: jboss-cli.bat
  • digite para habilitar as configurações JMX:
    • connect --controller
    • /subsystem=jmx :read-resource-description(recursive=true)
    • quit
  • Inicie o Jboss normalmente.

Iniciando o JVisualVM:
  • No CMD digite todas as linhas abaixo:
set JBOSS_MODULEPATH=%JBOSS_HOME%/modules
set CLASSPATH=""

rem lib necessarias
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\remoting3\remoting-jmx\main\remoting-jmx-1.0.2.Final.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\remoting3\main\jboss-remoting-3.2.3.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\remoting3\remoting-jmx\main\remoting-jmx-1.0.2.Final.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\logging\jul-to-slf4j-stub\main\jul-to-slf4j-stub-1.0.0.Final.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\logging\main\jboss-logging-3.1.0.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\xnio\main\xnio-api-3.0.3.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\xnio\nio\main\xnio-nio-3.0.3.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\xnio\nio\main\xnio-nio-3.0.3.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\sasl\main\jboss-sasl-1.0.0.Final.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\marshalling\main\jboss-marshalling-1.3.11.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\marshalling\river\main\jboss-marshalling-river-1.3.11.GA.jar"
set CLASSPATH=%CLASSPATH%;"%JBOSS_MODULEPATH%\org\jboss\marshalling\river\main\jboss-marshalling-river-1.3.11.GA.jar"

jvisualvm -cp:a %CLASSPATH%

  • Irá abrir o Java VisualVM:

  • Clique com o botão direito em Local
  • Depois em Add JMX Connection
  • Insira o seguinte no campo Connection: service:jmx:remoting-jmx://localhost:9999
  • Insira o usuário e senha que você informou la em cima no add-user.bat
  • Vai ficar mais ou menos assim:


Se tudo ocorreu bem, você já pode verificar as configurações do Jboss e também o uso de memória do mesmo.

Dúvidas??




quinta-feira, 20 de junho de 2013

Adobe Flash Builder 4.7 com Apache SDK 4.10

ATUALIZAÇÃO: 16/08/2013 ApacheFlex 4.10


Pequeno tutorial (copiado e traduzido do Apache Flex) para instalar o Adobe Flash Builder 4.7 junto com a ultima versão do SDK o Apache Flex SDK 4.10 que foi lançado dia 06/08/2013.

Então, vamos começar:


  1. Faça download do Adobe Flash Builder 4.7 neste link: https://creative.adobe.com/products/flash-builder com cerca de 1,2Gb (para isso você precisa ter uma conta da adobe), esta versão tem 60 dias de avaliação, após isso, para continuar utilizando você deve comprá-lo, cerca de 250 obamas.
  2. Instale o FlashBuilder normalmente, seguindo as informações da tela.
  3. Faça download da ultima versão do SDK Installer no logo abaixo

    ou pelo link: http://flex.apache.org/installer.html
  4. Após o término do download, instale o Apache SDK 4.10 de acordo com as instruções de tela.
  5. Após a instalação do SDK, abra o FlashBuilder, insira seu login e senha da Adobe para ativar os 60 dias de teste.
  6. Agora vamos configurar o SDK dentro do FlashBuilder. Com o FlashBuilder aberto, vá no menu Windows > Preference, então expanda o item "Flash Builder", vá até o item "Installed Flex SDKs", clique em "ADD" e selecione a pasta de instalação do SDK (passo 4), por padrão está dentro da pasta do FlashBuilder\sdks, ex: "C:\Program Files\Adobe\Adobe Flash Builder 4.7\sdks\4.10\". Automaticamente será preenchido o campo "Flex SDK name" com o seguinte nome "Apache Flex 4.10 FP11.1 en_US", clique em OK e OK novamente.
Pronto, seu FlashBuilder está pronto para utilizar o novo SDK.

Agora basta criar um novo projeto, e selecionar o SDK correto.

Links de interesse:

Vídeo aulas:





Qualquer dúvida postem comentários abaixo.

Divulgue e comente!!


quarta-feira, 19 de junho de 2013

Exportar Tabela Sql para CSV

Método simples e eficaz de exportar uma tabela de algum banco de dados para um arquivo CSV.
Útil para quando não se tem acesso ao editor do banco para exportar os dados.

Precisa apenas do Session com o Hibernate já criado (exemplo) para a função saber em qual banco conectar.

Função:
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;



public class ExportTableToCsv {

 /**
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception {
  exportTableToCsv("CAD_CLIENTE", new File("C:\\temp\\out.csv"), HibernateSessionFactory.getSession());
  
  System.out.println("OK");
 }
 
 /**
  * Export table to CSV file.
  * @param table: name of table
  * @param fileOut: file where you saved the CSV
  * @param em: Input the "org.hibernate.Session", session connection to the database
  * @throws Exception
  */
 private static void exportTableToCsv(String table, File fileOut, Session em) throws Exception{
  Transaction trans = em.beginTransaction();
  try {
   Query query = em.createSQLQuery("SELECT COLUMNS.NAME AS COLUNA "+
     "FROM SYSOBJECTS AS TABLE, "+
     "     SYSCOLUMNS AS COLUMNS "+
     "WHERE TABLE.ID = COLUMNS.ID "+
     "  AND TABLE.NAME = '"+table+"' ");
   @SuppressWarnings("rawtypes")
   List list = query.list();
   if(list.size()==0){
    throw new Exception("Table '"+table+"' does not exist.");
   }
   
   String texto = "";
   for (int i = 0; i < list.size(); i++) {
    texto+= (String) list.get(i) + ";";
   }
   texto+="\n";
   

   query = em.createSQLQuery("SELECT * FROM "+table);
   list = query.list();
   trans.commit();
   
   for (int i = 0; i < list.size(); i++) {
    Object[] object = (Object[]) list.get(i);

    for (Object obj : object) {
     if(obj!=null){
      texto+= obj.toString().replace(";","|") + ";";
     }else{
      texto+= "null;";
     }
    }
    texto+="\n";
   }
   
   FileOutputStream fileOutputStream = new FileOutputStream(fileOut);
   fileOutputStream.write(texto.getBytes());
   
   fileOutputStream.flush();
   fileOutputStream.close();
  } catch (Exception e) {
   e.printStackTrace();
   if (trans!=null&&trans.isActive()) {
    trans.rollback();
   }
   throw e;
  } finally {
   em.close();
  }
 }
}


Por hoje é isso pessoal.
COMPARTILHE, COMENTE, AGRADEÇA.


quarta-feira, 8 de maio de 2013

Copiar, Colar, Selecionar tudo em um DataGrid ou AdvancedDataGrid

Olá pessoal, após muito tempo sumido, por falta de tempo. Voltei para mais um post.
Hoje vou mostrar algo que tive que implementar em um DataGrid ou AdvancedDataGrid.

Necessidade:
Poder copiar os registros selecionados para o clipboard, também poder adicionar registros vindos de uma tabela  no excel, através do CTRL+C e CTRL+V.

Solução:
Implementar as funções de COPY e PASTE em um datagrid, podendo copiar os itens selecionados, e também adicionar novos itens (desde que estejam com a mesma quantidade de colunas).

quinta-feira, 15 de dezembro de 2011

Ajude o Flex - Seja um Committer

Após toda a história da Adobe "doar" o Flex SDK para a Apache Software Foundation  (mais info)...

Você que sempre teve ótimas idéias para o Flex, gosta de desenvolver em Flex, quer ajudar o Flex a se tornar cada vez melhor, agora você pode. Se inscreva para ser um COMMITTER do Flex SDK.

Mais informações aqui.

Abraço!

segunda-feira, 5 de dezembro de 2011

Flex Patch de segurança

Devido a uma vulnerabilidade no SDK do Flex, muitas aplicações estão vulneráveis ​​a cross-site scripting (XSS), e deve ser corrigida, a fim de proteger os dados do usuário.

Os links para download do patch são:


Mais informações aqui.

quarta-feira, 16 de novembro de 2011