Como fazer referência a um adaptador de recursos JCA incorporado
Pergunta
Para o nosso projeto J2EE atual baseado no JBoss, precisamos interagir com um sistema remoto usando feijões acionados por mensagens e um adaptador de recursos JCA fornecido como um arquivo RAR por terceiros. Gostaria de empacotar e implantar o projeto inteiro como um arquivo de ouvido no nosso servidor JBoss. Mais notavelmente, o arquivo RAR deve ser incorporado no arquivo EAR e não ser implantado globalmente.
Tudo isso está funcionando bem até agora, mas não estou particularmente feliz com a maneira como o arquivo RAR é referenciado. O jboss.xml embalado com o MDB, por exemplo, atualmente se parece com o seguinte:
<jboss>
<enterprise-beans>
<message-driven>
<ejb-name>testBean1</ejb-name>
<resource-adapter-name>test1.ear#thirdparty-1.0.rar</resource-adapter-name>
</message-driven>
</enterprise-beans>
</jboss>
Embora isso geralmente esteja funcionando bem, ele quebrará quando o arquivo de ouvido for renomeado para "test2.ear". Existe uma maneira de fazer referência ao arquivo rar incorporado sem codificar o nome do arquivo contendo?
Editar: Quase dois meses depois, ainda não encontrei uma resposta real para essa pergunta. Perguntando, tudo o que recebi foram essas duas sugestões úteis: "Use propriedades e filtragem do Maven", e "não inclua o rar dentro da orelha". Suspeito fortemente que atualmente não há como lidar com isso corretamente em Jboss. Então, vou desistir e aceitar a única resposta que recebi aqui.
Solução
Você está usando o Maven para construir? Nesse caso, você pode definir uma propriedade Maven que nomeia o arquivo EAR e use esse nome para definir valores em arquivos de recursos usando um espaço reservado
por exemplo, xxx
Em seguida, use
$ {ear.name} .ear#terceiroParty-1.0.rar
Apenas certifique -se de definir os recursos que terão os espaços reservados
algo assim:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>