Utilizando System Propertie em Deployable ( *-ds ) Data Sources no WildFly 8

Postado em Atualizado em

wildfly_logoEm ambientes de desenvolvimento normalmente pela facilidade e pelo “cultura” de outras versões decidimos utilizar os já conhecidos *-ds, que são data sources “Deployables”, ou seja basta colocar no diretório wildfly-8.0.0.CR1/standalone/deployments que estará disponivel para uso.

Por exemplos vamos publicar um data souce para o MySQL simplesmente copiando o arquivo mysql-ds para o diretorio wildfly-8.0.0.CR1/standalone/deployments :

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema">
 <datasource
  jndi-name="testeDatasource"
  enabled="true"
  use-java-context="true" pool-name="testeDatasource_pool">
    <connection-url>jdbc:mysql://localhost/classicmodels</connection-url>
    <driver>mysql-connector-java-5.1.26-bin.jar</driver>
    <security>
      <user-name>root</user-name>
      <password>root</password>
    </security>
 </datasource>
</datasources>

Observe o LOG após realizarmos o deploy do arquivo mysql-ds.xml :

14:32:49,171 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) JBAS010400: Bound data source [java:/testeDatasource]
14:32:49,313 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "mysql-ds.xml" (runtime-name : "mysql-ds.xml")
14:32:49,314 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 29) JBAS018559: Deployed "mysql-connector-java-5.1.26-bin.jar" (runtime-name : "mysql-connector-java-5.1.26-bin.jar")

Veja os arquivos “deployados”:

ds

Para  testar o data source utilize a aplicação dstest.war.

ds2

Observe que o data source funcionou pefeitamente!

As vezes por questão de segurança ou praticidade desejamos que informações críticas não fiquem expostas nos arquivos *-ds. Para suprir essa necessidade podemos utilizar System Properties definidas no servidor de aplicação. Por exemplo, crie duas propriedades para, uma para o username e outra para o password:

[standalone@localhost:9990 /] /system-property=username:add(value=root)
{"outcome" => "success"}
[standalone@localhost:9990 /] /system-property=password:add(value=root)
{"outcome" => "success"}

Observe que no arquivo wildfly-8.0.0.CR1/standalone/configuration/standalone.xml as propriedades foram criadas:

propsAgora altere o arquivo wildfly-8.0.0.CR1/standalone/deployments/mysql-ds adicionando as propriedades criadas:

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema">
  <datasource
   jndi-name="testeDatasource"
   enabled="true"
   use-java-context="true" pool-name="testeDatasource_pool">
    <connection-url>jdbc:mysql://localhost/classicmodels</connection-url>
    <driver>mysql-connector-java-5.1.26-bin.jar</driver>
    <security>
      <user-name>${username}</user-name>
      <password>${password}</password>
    </security>
  </datasource>
</datasources>

Salve o arquivo e teste novamente utilizando a aplicação dstest.war:

ds3Observe que não conseguimos obter uma conexão😦

Calma! Isso foi apenas para que você nunca se esqueça que no JBoss AS 7 / JBoss EAP 6 e WidlFly 8 quando vamos fazer property replacement a tag jboss-descriptor-property-replacement deve estar como true:

 <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>

Utiliando  JBoss CLI execute:

 [standalone@localhost:9990 /] /subsystem=ee:write-attribute(name=jboss-descriptor-property-replacement,value=true)
 {"outcome" => "success"}

Teste novamente:

dsfinal

Agora sim tudo funcionou perfeitamente🙂

Espero que tenha ajudado!

Abraços

2 comentários em “Utilizando System Propertie em Deployable ( *-ds ) Data Sources no WildFly 8

    Raphael Ozelo disse:
    8 de março de 2014 às 15:23

    Olá,
    Uma duvida sobre DataSource, no JBoss 7 tínhamos que criar um módulo para drive JDBC Postgresql (por exemplo). Mas a estrutura do modules do WildFly foi modificada. Se deve criar este módulo da mesma forma ou têm outra forma para o WildFly8?
    Obrigado

      Mauricio Magnani Jr respondido:
      17 de março de 2014 às 21:49

      Pode ser criada da mesma forma… desculpe a demora em responder. Vou atualizar os tutoriais para o WildFly8.

      Abs

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s