Hi folks,
I've been recommended to post my problem in this forum, I
hope this is the right place. I try to run JPA + EclipseLink in
an OSGi environment with a specific architecture:
*.domain.customer // business objects
*.domain.account
*.service.customer
*.service.account
*.service.customer.dao
-
orm.xml
-
persistence.xml
*.service.account.dao
-
orm.xml
-
persistence.xml
*.service.dao_jpa // OSGi service providing the DB
credentials in a single place
-
IDatabaseCredentialsService
I try to avoid
redundant database credentials within the two
persistence.xml files using the EntityManagerFactoryBuilder
which retrieves db-credentials from my own
IDatabaseCredentialsService. But this solution seems to
produce a lot of code and one has to be aware of race
conditions.
private void createEntityManagerFactory()
{
assert emfBuilder != null : "emfBuilder != null";
assert dbCredentials != null : "dbCredentials != null";
Map<String, String> dbCredentioals = dbCredentials.getDBCredentioals();
entityManagerFactory = emfBuilder
.createEntityManagerFactory(dbCredentioals);
createCustomer();
}
public void bindDBConnectionService(IDatabaseCredentialsService
dbService) {
dbCredentials =
dbService;
if (emfBuilder != null) {
createEntityManagerFactory();
}
}
public void bindEMFBuilder(EntityManagerFactoryBuilder
builder) {
emfBuilder =
builder;
if (dbCredentials != null) {
createEntityManagerFactory();
}
}
I hope you can help me and point me to a better and simpler
solution.
Eugen
_______________________________________________
gemini-dev mailing list
gemini-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/gemini-dev