I think that your best bet is to continue with your solution of extracting the `SessionFactoryManager` from the list of managed objects. The `SessionFactoryManager`'s state changes boil down to starting and stopping the underlying `javax.sql.DataSource` object, which isn't exposed directly. The only way that I see to tickle it is via the managed object.
On Tue, Nov 8, 2016 at 4:55 AM, <[email protected]> wrote: > Hi, > > I'm trying to implement an EnvironmentCommand (it needs to be environment > because I want to exploits my application hibernate bundle and it needs to > be initialised and stuffs). > > My problem is that it seems that since the hibernate/datasource/etc > resources are normally managed by Jetty's lifecycle management, they are > not managed when used in a command. > > The problem is not always visible (because everything is closed/killed on > JVM stop), but when running a command with maven exec plugin, for example, > it detects that some things are not clean as they should: > [WARNING] thread Thread[Tomcat JDBC Pool Cleaner[1981821368: > 1478608496356],5,org.ow2.petals.cockpit.server.CockpitApplication] was > interrupted but is still alive after waiting at least 15000msecs > [WARNING] thread Thread[Tomcat JDBC Pool Cleaner[1981821368: > 1478608496356],5,org.ow2.petals.cockpit.server.CockpitApplication] will > linger despite being asked to die via interruption > [WARNING] thread Thread[MVStore background writer nio:/home/vnoel/Linagora/ > Petals/dev/git/petals-cockpit-new/cockpit.mv.db,5,org.ow2. > petals.cockpit.server.CockpitApplication] will linger despite being asked > to die via interruption > [WARNING] NOTE: 2 thread(s) did not finish despite being asked to via > interruption. This is not a problem with exec:java, it is a problem with > the running code. Although not serious, it should be remedied. > > I found a workaround by starting the lifecycles at the beginning of my > command's run method and stopping them at the end of it with: > > for (LifeCycle lf : environment.lifecycle().getManagedObjects()) > { > // start/stop > } > > But it seems a bit complex, is there a simpler way to do that? > Maybe dropwizard could implement such functionality, no? > > Thanks > > Victor > > -- > You received this message because you are subscribed to the Google Groups > "dropwizard-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- Evan Meagher -- You received this message because you are subscribed to the Google Groups "dropwizard-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
