I wonder if I can get a JDBC connection to the JIRA/Confluence database from plugin code and access the tables created by the ActiveObjects plugin.
Is that possible?
If so: Would that still work reliably on a different JIRA/Confluence instance with different configuration, specifically with a different database vendor?
You can definitely get the DS info or Connection from plugin code and use it to access AO tables.
DatasourceInfo datasourceInfo = new DefaultOfBizConnectionFactory().getDatasourceInfo(); Connection connection = new DefaultOfBizConnectionFactory().getConnection();
AO tables follows a unique naming strategy, which you can find at https://developer.atlassian.com/docs/atlassian-platform-common-components/active-objects/developing-your-plugin-with-active-objects/active-objects-faq/table-names. The names stay the same across instances.
Having said that, it is recommended to use the ActiveObjects APIs to interact with the AO tables.
Thanks a lot, Jobin, I will try that! Are you aware of specific dangers of accessing AO tables directly view JDBC?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Not really. I mostly opt for AO APIs but have done it via direct JDBC calls for complex scenarios. Other than that, it is normal JDBC!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Is there a way to make that work for Confluence? I can only find DefaultOfBizConnectionFactory in the com.atlassian.jira.ofbiz package.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I get null when I try accessing JDBC info
JdbcDatasourceInfo jdbcDatasourceInfo = new DefaultOfBizConnectionFactory().getDatasourceInfo().getJdbcDatasource();
However the JNDI Datasource works
DefaultOfBizConnectionFactory().getDatasourceInfo().getJndiDatasource()
Any clues ?
I am using SDK with
<jira.version>7.2.2</jira.version><amps.version>6.2.11</amps.version>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It seems to be SDK version issue.
It works when I change JIRA & AMPS version to the one below
<jira.version>6.3.1</jira.version>
<amps.version>5.0.3</amps.version>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have a plugin that makes an AO entity, but where do I run these lines of code to find the connection?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Be very careful. AO does have some caching built in so if you mix the access algorithm (API vs direct jdbc) you might see some strange results.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Is it still possible to access the db via jdbc connection?
The code above with jira version 8.4.0 does not work. How can we do otherwise?
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.