scl, Thanks for the tip, this works as expected. JpaPersistModule is final (ARGH) but I created a static utility class with an install method that handles it. I build the database connection string using the env props and then I'm able to set it using the JpaPersistModule.properties( <?,?> prop ) method. Set a map of strings in there, and it appears that it will use those values to overwrite what comes out of the META-INF/persistence.xml file.
Best of both worlds! Thanks! E On Thursday, February 15, 2018 at 6:47:33 AM UTC-5, scl wrote: > > Only way you can try to achieve this is the methode: > JpaPersistModule.setProperties() > The properties passed in will be used to create the entity manager factory > (see JpaPersistService.start()) > > Maybe you can overwrite the URL in the properties you pass. > > > > On 15.02.2018 12:05, Evan Ruff wrote: > > I'd really like to be able to define the location of the DB, as multiple > services will be accessing it. > > I'm okay with moving away from the persistence.xml file and rolling the > configuration in code, but I'm not sure where to do that while still using > JpaPersistModule. Has anyone tried a declarative approach? Any examples > anywhere? > > E > > On Wednesday, February 14, 2018 at 6:13:43 PM UTC-5, scl wrote: >> >> Maybe you can make your path relative to the user directory as described >> here: >> http://www.h2database.com/html/faq.html#database_files >> >> >> Am 14. Februar 2018 21:06:34 MEZ schrieb Evan Ruff <evan...@gmail.com>: >>> >>> Hey guys, >>> >>> So I'm actually just letting Guice Persist pull it straight out of >>> META-INF/persistence.xml file. >>> >>> I'm wondering where I can either change the URL or set it explicitly, >>> while still using Guice Persist. >>> >>> thanks! >>> >>> E >>> >>> On Wednesday, February 14, 2018 at 10:58:11 AM UTC-5, Sondre Bjornebekk >>> wrote: >>>> >>>> If you always want to use h2, you could just simply build the string >>>> using >>>> https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#getenv-- >>>> ? >>>> >>>> If you wanted to inject different JPA providers, you could certainly >>>> use Guice for that (since you posted here) - I have a >>>> HibernateSessionFactory that provides a session per request like this: >>>> >>>> @Provides@RequestScopedprivate Session provideSession() { >>>> >>>> >>>> >>>> And then for my jUnit tests I have: >>>> >>>> @Provides@Singletonprivate Session provideSession() { >>>> >>>> >>>> in a >>>> >>>> public class TestGuiceModule extends AbstractModule >>>> >>>> >>>> Would that fit your use case? >>>> >>>> Cheers, >>>> >>>> -S- >>>> >>>> On Wednesday, February 14, 2018 at 10:38:16 AM UTC, Evan Ruff wrote: >>>>> >>>>> Hey guys, >>>>> >>>>> I've got what I think is a pretty straightforward task but I'm having >>>>> a little issue figuring out where to attach in my code. >>>>> >>>>> I've got an embedded H2 database being used in an installed >>>>> application to manage state of some objects. I'm using Hibernate as my >>>>> JPA >>>>> implementation and everything is working great. The one issue I have is >>>>> that the path of the database file is set in my URL as: >>>>> >>>>> jdbc:h2:file:./data/ >>>>> application_db;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE; >>>>> >>>>> which changes depending on how the application is executed. I'd like >>>>> to have the database file be written in a location set by an environment >>>>> variable, so that I'd have: >>>>> >>>>> jdbc:h2:file:*$APP_DB_PATH* >>>>> /data/application_db;DB_CLOSE_ON_EXIT=FALSE;AUTO_SERVER=TRUE; >>>>> >>>>> I've tried several different forms and it doesn't seem to be taking. >>>>> >>>>> Has anyone encountered this and could give me a pointer on how to >>>>> implement? >>>>> >>>>> Thanks! >>>>> >>>>> E >>>>> >>>> -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to google-guice...@googlegroups.com <javascript:>. > To post to this group, send email to google...@googlegroups.com > <javascript:>. > Visit this group at https://groups.google.com/group/google-guice. > To view this discussion on the web visit > https://groups.google.com/d/msgid/google-guice/359f8de0-3a51-4ca0-8209-50252d136788%40googlegroups.com > > <https://groups.google.com/d/msgid/google-guice/359f8de0-3a51-4ca0-8209-50252d136788%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-guice+unsubscr...@googlegroups.com. To post to this group, send email to google-guice@googlegroups.com. Visit this group at https://groups.google.com/group/google-guice. To view this discussion on the web visit https://groups.google.com/d/msgid/google-guice/9089d9ce-3580-4a5b-97c6-e757484b2413%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.