Persistence.xml - Como alterar o caminho do banco ao entregar pro cliente?

Boa tarde, aqui no trabalho configuroo persistence.xml usando essa configuração como caminho do banco no arquivo persistence.xml:

<property name="javax.persistence.jdbc.url" value="jdbc:firebirdsql:localhost/3050:c:/util/banco_mineradora.gdb"/>

Porém como vou ter varios clientes, como poderia fazer pra editar esse caminho dinamicamente, sem ter que extrair os arquivos do .jar e editar o xml no bloco de notas?

Você pode criar um arquivo .properties, e lá passar o endereço do banco de dados, usuário, url e outros parâmtetros necessário para configuração do acesso ao servidor de banco de dados,
depois faz com que o value seja igual ao valor declarado lá, assim deixa com maior portabilidade.

Pelo menos aqui no trabalho utilizamos assim

Mas e como você faz no arquivo xml pra ele pegar o valor de uma variavel?

Você pode usar JNDI também, pois assim os dados de conexão ficam no servidor de aplicações, e não no arquivo war.
Para cada servidor, existe uma forma diferente de criar JNDI’s, mas isso é relativamente simples.

O que eu vejo são datasources.

Você cria um datasource dentro do servidor e aponta para o datasource dentro do persistence.xml.

[quote=mateusviccari]Boa tarde, aqui no trabalho configuroo persistence.xml usando essa configuração como caminho do banco no arquivo persistence.xml:

<property name="javax.persistence.jdbc.url" value="jdbc:firebirdsql:localhost/3050:c:/util/banco_mineradora.gdb"/>

Porém como vou ter varios clientes, como poderia fazer pra editar esse caminho dinamicamente, sem ter que extrair os arquivos do .jar e editar o xml no bloco de notas?
[/quote]

A solução é usar um registro geral como o JNDI e configurar o JPA para usar o JNDI como fonte de DataSource. Isto funciona nos servidores de aplicação e em alguns webcontainers com suporte a jndi como o tomcat.

Lembre-se que o servidor é que deve definir este tipo de coisa e a aplicação simplesmente deve usar o que o servidor decidiu.