There are a number of integrations with other components that make Gemini JPA play well with others.
Gemini JPA is integrated with the OSGi JDBC spec. In fact, the use of Gemini DBAccess to access a JDBC datasource is highly recommended. See the Using Gemini DBAccess section.
Gemini JPA can do a JNDI lookup to find an existing data source if an entry is supplied in the non-jta-data-source element in the persistence.xml descriptor. For example:
<persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL"> ... <non-jta-data-source>jdbc/myDS</non-jta-data-source> ... </persistence-unit>
If the data source is available in the OSGi service registry and an OSGi JNDI provider is active then the OSGi JNDI syntax of osgi:service can be used to specify it. (The osgi:servicelist syntax is not supported.) The following entry could be present in the persistence descriptor to refer to a data source that was registered as a service, with a service property org.osgi.service.jndi.JNDIConstants.JNDI_SERVICENAME value of myDS:
<persistence-unit name="MyPU" transaction-type="RESOURCE_LOCAL"> ... <non-jta-data-source>osgi:service/myDS</non-jta-data-source> ... </persistence-unit>
Note that the service must be of type javax.sql.DataSource and not be a JTA data source.
See the Configuration Admin section for details on how to use Config Admin with Gemini JPA.