Can't you simply do the following??

public class MyModule extends ServletModule {
  protected void configureServlets() {
    install(new JpaPersistModule("myJpaUnit").setProperties(myProperties));
  }
}


On 15.02.2018 14:46, Evan Ruff wrote:
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
        <http://www.h2database.com/html/faq.html#database_files>


        Am 14. Februar 2018 21:06:34 MEZ schrieb Evan Ruff
        <[email protected]>:

            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--
                
<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 @RequestScoped private SessionprovideSession() {



                And then for my jUnit tests I have:

                @Provides @Singleton private SessionprovideSession() {


                in a

                public class TestGuiceModuleextends 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 [email protected] <javascript:>.
    To post to this group, send email to [email protected]
    <javascript:>.
    Visit this group at https://groups.google.com/group/google-guice
    <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
    <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 [email protected] <mailto:[email protected]>. To post to this group, send email to [email protected] <mailto:[email protected]>.
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 <https://groups.google.com/d/msgid/google-guice/9089d9ce-3580-4a5b-97c6-e757484b2413%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 [email protected].
To post to this group, send email to [email protected].
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/eba0600b-503b-0b30-43ad-dcec3c99b82a%40gmx.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to