Package com.tll.server

Source Code of com.tll.server.Db4oBootstrapper

/**
* The Logic Lab
* @author jpk
* @since Sep 18, 2009
*/
package com.tll.server;

import javax.servlet.ServletContext;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.transaction.PlatformTransactionManager;

import com.db4o.ObjectContainer;
import com.google.inject.Injector;


/**
* Db4oBootstrapper
* @author jpk
*/
public class Db4oBootstrapper implements IBootstrapHandler {

  private static final Log log = LogFactory.getLog(Db4oBootstrapper.class);

  private static final String KEY = Integer.toString(Db4oBootstrapper.class.getName().hashCode());

  @Override
  public void startup(Injector injector, ServletContext servletContext) {
    log.debug("Bootstrapping db4o..");
    // instantiate db4o (by forcing instantiation of the trans manager)
    injector.getInstance(PlatformTransactionManager.class);
    // retain the db4o's object container ref
    final Object oc = injector.getInstance(ObjectContainer.class);
    if(oc == null) throw new Error("Unable to obtain db4o's object container");
    servletContext.setAttribute(KEY, oc);
  }

  @Override
  public void shutdown(ServletContext servletContext) {
    final ObjectContainer oc = (ObjectContainer) servletContext.getAttribute(KEY);
    if(oc != null) {
      log.debug("Shutting down db4o..");
      oc.close();
    }
  }
}
TOP

Related Classes of com.tll.server.Db4oBootstrapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.