我正在寻找一种方法来提供一个额外的数据源,在使用提供的 JIRA 插件 SDK 执行集成测试时将获取该数据源。
目前,我的插件访问我通过以下方式配置 Tomcat 定义的 JDBC 数据库:
添加到 server.xml:
<Resource auth="Container"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
maxActive="20"
name="jdbc/myDS"
password="password"
type="javax.sql.DataSource"
url="jdbc:jtds:sqlserver://sqlserver:/database"
username="username"/>
这到 web.xml
<resource-ref>
<description>My Datasource</description>
<res-ref-name>jdbc/myDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
然后我可以从我的插件中访问数据库,如下所示
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myDS");
此方法在使用独立的 JIRA 实例时工作正常,但是我使用提供的集成测试atlas-integration-test
启动了 JIRA 的嵌入式版本,而正是这个嵌入式版本我无法配置使用额外的数据源。
我找到了我认为需要将资源添加到的文件,entityengine.xml
但这似乎在每次嵌入式服务器启动时都会重新生成,因此我添加到该文件的任何更改都将丢失。
并在 Atlassian 论坛上找到了一个类似的帖子,但仍未解决:http ://forums.atlassian.com/thread.jspa?messageID=257355500&tstart=0
如何配置 JIRA 的嵌入式版本来获取我的数据源?