Estou testando o novo blog!
Vamos ver se a inserção de script funciona.
Isso aí! Agora todos os posts que tiverem código fonte serão bonitos e bem formatados, graças às facilidades de compartilhamento via script do github:gist.
Pelo que vi é "só" muito melhor que o mecanismo lento e restrito do wordpress. Aqui posso até adicionar scripts no post, sem strip-tags. A interface de edição é fácil e rápida. Muito bom!
Vamos ver como é a inclusão de imagens.
Beleza!
Acho que vou mudar pra cá. Aqui tenho a liberdade que preciso.
Portanto estou importando todos os posts interessantes para este provedor. Para isso, existe a aplicação wordpress2blogger que presta uma grande ajuda, e sabe fazer tudo direitinho.
Valeu!
Ismael's Blog
Drops of knowledge to remember later
sexta-feira, 16 de dezembro de 2011
Acessar parâmetros da JVM de dentro do programa
Existem alguams situação em que achamos que nunca cairemos. Ultimamente me ocorreu uma: precisei passar parâmetros para minha aplicação web, em sua inicialização, sem que os valores destes parâmetros ficassesm dentro do pacote ".war", e sem que fossem lidos de arquivo ou base de dados. Para isso foi adotada a estratégia de adicionar parâmetros na inicialização da JVM, e acessá-los a partir da aplicação.
A maior dúvida que tive foi, como acessar os parâmetros da JVM de dentro da aplicação.
Para isto a dica é simples: a classe RuntimeMXBean fornece o acesso a estes parâmetros.
Sua utilização é muito simples conforme a seguir:
Na lista "arguments" temos a lista de todos os parametros passados na inicialização da JVM junto com seus respectivos valores em cada linha. No meu caso, tive que passar parametros personalizados, que nao são da lista de parâmetros nativos da JVM. Fiz isto configurando o servidor de aplicação para adicionar aos parametros passados para a JVM a seguinte entrada:
Com isto, na lista "arguments" procurei por uma linha que começasse com "-DismaelParametro" e lá estava!
Muito obrigado!
Referência:
RuntimeMXBean
A maior dúvida que tive foi, como acessar os parâmetros da JVM de dentro da aplicação.
Para isto a dica é simples: a classe RuntimeMXBean fornece o acesso a estes parâmetros.
Sua utilização é muito simples conforme a seguir:
RuntimeMXBean runtimemxBean = ManagementFactory.getRuntimeMXBean();
List arguments = runtimemxBean.getInputArguments();
Na lista "arguments" temos a lista de todos os parametros passados na inicialização da JVM junto com seus respectivos valores em cada linha. No meu caso, tive que passar parametros personalizados, que nao são da lista de parâmetros nativos da JVM. Fiz isto configurando o servidor de aplicação para adicionar aos parametros passados para a JVM a seguinte entrada:
-DismaelParametro="valor"
Com isto, na lista "arguments" procurei por uma linha que começasse com "-DismaelParametro" e lá estava!
Muito obrigado!
Referência:
RuntimeMXBean
terça-feira, 13 de dezembro de 2011
Manipulação de XSD no Eclipse
XML é um importante formato de marcação, utilizado para os mais diversos fins, e se tornou um padrão para troca de dados.
Neste post será vista a construção do XSD que é o elemento base para a composição do XML, pois é usado para efetuar sua validação. Para tanto, será utilizado o plugin XSD Editor da IDE Eclipse.
A seguir, um passo a passo, de como construir um XSD no eclipse:
Criar um diretorio META-INF dentro do diretorio src no projeto.
Clicar com o botão direito em cima do diretório e seguir: New->Other...->XML->XML Schema
Clicar em next e definir um nome para oa arquivo. Neste exemplo o nome é "pessoa.xsd".
Será aberto o editor XSD. Alterne entre as abas Design e Source para se ambientar. Iremos trabalhar na aba Design.
Iremos construir o objeto pessoa, que segue o seguinte esquema de atributos:
Pessoa
->nome
->endereco
-->>rua
-->>numero
-->>cidade
->telefones
Como percebemos dois atributos não são primitivos. É o caso de "endereco", que é um tipo composto e "telefones" que é uma lista. Precisamos definir estes tipos então.
Na seçao Types, na aba Design, clique com o botão direito e em Add Complex Type. Nomeie com endereço e clique duplo no item criado.
[caption id="attachment_142" align="aligncenter" width="640" caption="Adicionando Complex Type"]
[/caption]
Na tela que se abre clique com o direito no quadro endereço e clique em add element, e nomeie o elemento criado como rua.
[caption id="attachment_143" align="aligncenter" width="640" caption="Adicionando item no tipo complexo"]
[/caption]
Repita o processo de forma a contemplar o esquema definido anteriormente. No esqueça de trocar o tipo do item numero para int.
[caption id="attachment_144" align="aligncenter" width="640" caption="Tipo complexo resultante"]
[/caption]
Clique no botao superior, no XSD Editor, para voltar à tela principal.
Da mesma forma como ja criado, adicione um segundo complex type, chamado listaTelefones. Clique duplo no item criado. Clique com o direito no quadro listaTelefones, em seguida, Add Element.
Defina o nome do item como telefone, e na aba propriedades, defina os valores: Minimum Occurence=0 e Maximum Occurence=unbounded. Desta forma definimos uma lista com ocorrência minima de zero e sem limitação no número de itens.
[caption id="attachment_145" align="aligncenter" width="640" caption="Tipo Lista"]
[/caption]
Clique no botao superior, no XSD Editor, para voltar à tela principal.
Agora crie outro complex type chamado pessoaData. Clique duplo no item criado e adicione os atributos "nome", "endereco" e "telefones", conforme ja definido. Para selecionar o tipo do atributo "endereço", clique na caixa de seleção de tipo e selecione "Browse...".
[caption id="attachment_149" align="aligncenter" width="624" caption="Selecionando tipo complexo"]
[/caption]
Na caixa que se abre, selecione o tipo endereco e confirme. Logo após, repita o processo e selecione o tipo "listaTelefones" para o atributo "telefones".
[caption id="attachment_150" align="aligncenter" width="640" caption="Caixa de seleção de tipo complexo"]
[/caption]
O esquema de complex types deve ficar desta forma:
[caption id="attachment_148" align="aligncenter" width="640" caption="Esquema final"]
[/caption]
Clique no botao superior, no XSD Editor, para voltar à tela principal.
Na seção Elements, na aba Design, clique com o botão direito em Add Element, e defina o nome do elemento para "pessoa".
[caption id="attachment_146" align="aligncenter" width="640" caption="Adicionando Elemento raiz"]
[/caption]
Clique duplo no elemento. No quadro pessoa, clique com o direito, em seguida Set Type->Browse...
Na caixa que aparece selecione o tipo pessoaData e clique em OK.
[caption id="attachment_151" align="aligncenter" width="640" caption="Seleção do tipo criado"]
[/caption]
O esquema do elemento deve ficar desta forma.
[caption id="attachment_147" align="aligncenter" width="471" caption="Esquema do elemento"]
[/caption]
Por fim, temos o documento XSD resultante de nossa configuração.
[caption id="attachment_155" align="aligncenter" width="640" caption="XSD Resultante"]
[/caption]
Neste post será vista a construção do XSD que é o elemento base para a composição do XML, pois é usado para efetuar sua validação. Para tanto, será utilizado o plugin XSD Editor da IDE Eclipse.
A seguir, um passo a passo, de como construir um XSD no eclipse:
Criar um diretorio META-INF dentro do diretorio src no projeto.
Clicar com o botão direito em cima do diretório e seguir: New->Other...->XML->XML Schema
Clicar em next e definir um nome para oa arquivo. Neste exemplo o nome é "pessoa.xsd".
Será aberto o editor XSD. Alterne entre as abas Design e Source para se ambientar. Iremos trabalhar na aba Design.
Iremos construir o objeto pessoa, que segue o seguinte esquema de atributos:
Pessoa
->nome
->endereco
-->>rua
-->>numero
-->>cidade
->telefones
Como percebemos dois atributos não são primitivos. É o caso de "endereco", que é um tipo composto e "telefones" que é uma lista. Precisamos definir estes tipos então.
Na seçao Types, na aba Design, clique com o botão direito e em Add Complex Type. Nomeie com endereço e clique duplo no item criado.
[caption id="attachment_142" align="aligncenter" width="640" caption="Adicionando Complex Type"]
[/caption]Na tela que se abre clique com o direito no quadro endereço e clique em add element, e nomeie o elemento criado como rua.
[caption id="attachment_143" align="aligncenter" width="640" caption="Adicionando item no tipo complexo"]
[/caption]Repita o processo de forma a contemplar o esquema definido anteriormente. No esqueça de trocar o tipo do item numero para int.
[caption id="attachment_144" align="aligncenter" width="640" caption="Tipo complexo resultante"]
[/caption]Clique no botao superior, no XSD Editor, para voltar à tela principal.
Da mesma forma como ja criado, adicione um segundo complex type, chamado listaTelefones. Clique duplo no item criado. Clique com o direito no quadro listaTelefones, em seguida, Add Element.
Defina o nome do item como telefone, e na aba propriedades, defina os valores: Minimum Occurence=0 e Maximum Occurence=unbounded. Desta forma definimos uma lista com ocorrência minima de zero e sem limitação no número de itens.
[caption id="attachment_145" align="aligncenter" width="640" caption="Tipo Lista"]
[/caption]Clique no botao superior, no XSD Editor, para voltar à tela principal.
Agora crie outro complex type chamado pessoaData. Clique duplo no item criado e adicione os atributos "nome", "endereco" e "telefones", conforme ja definido. Para selecionar o tipo do atributo "endereço", clique na caixa de seleção de tipo e selecione "Browse...".
[caption id="attachment_149" align="aligncenter" width="624" caption="Selecionando tipo complexo"]
[/caption]Na caixa que se abre, selecione o tipo endereco e confirme. Logo após, repita o processo e selecione o tipo "listaTelefones" para o atributo "telefones".
[caption id="attachment_150" align="aligncenter" width="640" caption="Caixa de seleção de tipo complexo"]
[/caption]O esquema de complex types deve ficar desta forma:
[caption id="attachment_148" align="aligncenter" width="640" caption="Esquema final"]
[/caption]Clique no botao superior, no XSD Editor, para voltar à tela principal.
Na seção Elements, na aba Design, clique com o botão direito em Add Element, e defina o nome do elemento para "pessoa".
[caption id="attachment_146" align="aligncenter" width="640" caption="Adicionando Elemento raiz"]
[/caption]Clique duplo no elemento. No quadro pessoa, clique com o direito, em seguida Set Type->Browse...
Na caixa que aparece selecione o tipo pessoaData e clique em OK.
[caption id="attachment_151" align="aligncenter" width="640" caption="Seleção do tipo criado"]
[/caption]O esquema do elemento deve ficar desta forma.
[caption id="attachment_147" align="aligncenter" width="471" caption="Esquema do elemento"]
[/caption]Por fim, temos o documento XSD resultante de nossa configuração.
[caption id="attachment_155" align="aligncenter" width="640" caption="XSD Resultante"]
[/caption]
quarta-feira, 30 de novembro de 2011
Acessando SpringBeans no contexto do Servlet
Uma forma muito simples de se acessar SpringBeans a partir de um Servlet se dá adicionando dois trechos de código à sua aplicação.
Digamos que você tenha um SpringBean da classe "Pessoa" e você queira acessá-lo através de um Servlet. Então temos o seguinte código no ApplicationContext.xml.
Para possibilitar o acesso através do Servlet, primeiro, dentro do ApplicationContext.xml adicione a seguinte entrada:
O código acima, adiciona o SpringBean "Pessoa" no mapa de atributos do contexto de Servlets, tornando-o acessível a partir de qualquer Servlet da aplicação.
Agora, dentro do Servlet, adicione o seguinte trecho de código:
Pronto! O SpringBean "Pessoa" foi exportado para o contexto do Servlet e agora é possível acessá-lo sem problemas.
Gracias!
Digamos que você tenha um SpringBean da classe "Pessoa" e você queira acessá-lo através de um Servlet. Então temos o seguinte código no ApplicationContext.xml.
<bean id="pessoaBean" class="com.wordpress.ifsantos.Pessoa"/>
Para possibilitar o acesso através do Servlet, primeiro, dentro do ApplicationContext.xml adicione a seguinte entrada:
<bean class="org.springframework.web.context.support.ServletContextAttributeExporter">
<property name="attributes">
<map>
<entry key="pessoaBean" value-ref="pessoaBean" />
</map>
</property>
</bean>
O código acima, adiciona o SpringBean "Pessoa" no mapa de atributos do contexto de Servlets, tornando-o acessível a partir de qualquer Servlet da aplicação.
Agora, dentro do Servlet, adicione o seguinte trecho de código:
Pessoa pessoaBean = (Pessoa) getServletContext().getAttribute("pessoaBean");
Pronto! O SpringBean "Pessoa" foi exportado para o contexto do Servlet e agora é possível acessá-lo sem problemas.
Gracias!
quarta-feira, 14 de setembro de 2011
Limpar password do Subclipse
Muito fácil! Muito simples! Quando você manipula o gerenciamento de versões via Eclipse, com o plugin Subclipse, tradicionalmente opta por salvar as credenciais do servidor SVN na sua máquina. Se precisar trocar o usuário, você se depara com uma feature (ou a inexistência dela). O fato é que, pela interface do Eclipse, o plugin não torna possível "zerar" suas credenciais de acesso ao servidor SVN. Para isto, é necessário executar os passos a seguir. Mas antes se deve verificar qual cliente SVN esta sendo usado pelo Subclipse (vá em Preferences > Team > SVN > SVN interface).
Usando Subclipse com JavaHL:
Existe um arquivo chamado "svn.simple". Nele se encontram o username e password utilizado. Basta apagar estas informações dentro do arquivo.
Sistemas Unix-like:
Windows 7:
Windows XP:
Usando Subclipse com SVNKit:
DELETAR o arquvo no seguinte caminho:
Thanks ;-)
Existe um arquivo chamado "svn.simple". Nele se encontram o username e password utilizado. Basta apagar estas informações dentro do arquivo.
Sistemas Unix-like:
~/.subversion/auth/svn.simpleWindows 7:
C:\Users\[usuario]\AppData\Roaming\Subversion\auth\svn.simpleWindows XP:
C:\Documents and Settings\[usuario]\Application Data\subversion\auth\svn.simpleDELETAR o arquvo no seguinte caminho:
[eclipse_home]/configuration/org.eclipse.core.runtime/.keyringThanks ;-)
sexta-feira, 9 de setembro de 2011
Escrita de arquivos em Java: FileWriter e FileOutputStream
Em Java existem diferentes formas de se escrever dados em arquivos. Duas delas são através da utilização das classes FileWriter e FileOutputStream. Mas se exitem diferentes formas de escrita, qual é a diferença entre elas? FileOutputStream se destina à escrita fluxos de raw-bytes (bytes individuais que isoladamente não representam valores, e por sua vez, precisam ser agrupados para constituir informação), tais como dados de imagem, música ou arquivos executáveis, ao passo que, para escrever streams de caracteres, considere usar FileWriter.
Abaixo, exemplos de utilização destas duas abordagens:
FileOutputStream:
FileWriter:
No primeiro código, temos a escrita de 1024 bytes em um arquivo binário. No Segundo código, temos a escrita de 1024 caracteres em um arquivo texto. Caso o array de bytes do primeiro código, fosse escrito em disco, utilizando-se FileWriter do segundo código, o arquivo iria possuir valor diferente, em função da codificação de caracteres utilizada pelo FileWriter. Entretanto, se você tiver um array de caracteres, poderá utilizar o FileOutputStream porque este, ao efetuar a escrita, não re-codifica os bytes recebidos na entrada.
Abraço,
Até mais!
Referências:
FileOutputStream Javadoc
FileWriter Javadoc
Abaixo, exemplos de utilização destas duas abordagens:
FileOutputStream:
FileWriter:
No primeiro código, temos a escrita de 1024 bytes em um arquivo binário. No Segundo código, temos a escrita de 1024 caracteres em um arquivo texto. Caso o array de bytes do primeiro código, fosse escrito em disco, utilizando-se FileWriter do segundo código, o arquivo iria possuir valor diferente, em função da codificação de caracteres utilizada pelo FileWriter. Entretanto, se você tiver um array de caracteres, poderá utilizar o FileOutputStream porque este, ao efetuar a escrita, não re-codifica os bytes recebidos na entrada.
Abraço,
Até mais!
Referências:
FileOutputStream Javadoc
FileWriter Javadoc
quinta-feira, 11 de agosto de 2011
Instalando dependências Maven manualmente
Por questões de licença, as vezes não se tem acesso a pacotes de software através de repositórios Maven. Nestes casos torna-se necessário baixar e instalar manualmente estes pacotes, para se poder utilizá-los em projetos Maven. A seguir, um exemplo de como instalar um driver Oracle, que pelas quastões já mencioandas, não está em repositórios Maven.
Pronto! Agora esta dependência está disponível para ser utilizada no arquivo POM de sua aplicação, da seguinte forma:
Thanks!
- Coloque o arquivo "ojdbc5.jar" em um diretório vazio;
- Entre neste diretório através do prompt de comando;
- Informe o seguinte comando:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc5 -Dversion=5.0 -Dpackaging=jar -Dfile=ojdbc5.jar -DgeneratePom=true
Pronto! Agora esta dependência está disponível para ser utilizada no arquivo POM de sua aplicação, da seguinte forma:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc5</artifactId>
<version>5.0</version>
</dependency>
Thanks!
Assinar:
Comentários (Atom)
