@Override
  public HbDataStore get() {
    final long COUNTER = System.currentTimeMillis();

    final Properties props = new Properties();

    props.setProperty(Environment.DRIVER, "org.hsqldb.jdbcDriver");
    props.setProperty(Environment.USER, "SA");
    props.setProperty(Environment.URL, "jdbc:hsqldb:mem:test" + COUNTER);
    props.setProperty(Environment.PASS, "");
    props.setProperty(Environment.DIALECT, "org.hibernate.dialect.HSQLDialect");
    props.setProperty(Environment.CURRENT_SESSION_CONTEXT_CLASS, "managed");

    props.setProperty("teneo.mapping.disable_econtainer", "true");
    props.setProperty("teneo.mapping.default_varchar_length", "60");

    final HbDataStore hbds = HbHelper.INSTANCE.createRegisterDataStore("data-store-test" + COUNTER);
    hbds.setProperties(props);
    hbds.setEPackages(PersistenceModule.EPACKAGES);

    hbds.initialize();

    System.err.println(" --> returngin data store : " + hbds);
    System.err.println("     " + hbds.getProperties().get(Environment.URL));
    //		Thread.dumpStack();

    return hbds;
  }
  private static Configuration generateTeneoHibernateConfig(DatabaseSetupData data) {
    // for teneo, we need to intialize the datastore in order ot properly
    // init the configuration. So we set an invalid db so init will fail,
    // but then we can use the config to generate schema...
    HbDataStore tempDataStore = HbHelper.INSTANCE.createRegisterDataStore("fakedatastore");

    String savedDbName = data.getDatabaseName();
    data.setDatabaseName("generateschema" + data.hashCode());
    String savedUserName = data.getUserName();
    data.setUserName(data.hashCode() + "generateschema");
    try {
      tempDataStore.setProperties(data.getOptions());
      tempDataStore.setEPackages(EPACKAGES);
      tempDataStore.initialize();
    } catch (Throwable t) {
      System.out.println("Caught expected error: " + t.getMessage());
    }
    data.setUserName(savedUserName);
    data.setDatabaseName(savedDbName);

    Configuration configuration = tempDataStore.getHibernateConfiguration();
    return configuration;
  }
 /**
  * Create a new session and initialize the 'current' session..
  *
  * @return
  */
 public Session openSession() {
   return hbds.getSessionFactory().openSession();
 }
 private void initializeDataStore() {
   hbds = HbHelper.INSTANCE.createRegisterDataStore(data.getDatabaseName());
   hbds.setProperties(data.getOptions());
   hbds.setEPackages(EPACKAGES);
   hbds.initialize();
 }
 @Inject
 protected SessionProvider(HbDataStore hbds) {
   sessionFactory = hbds.getSessionFactory();
 }
 /** Return the session wrapper */
 public SessionWrapper getSessionWrapper() {
   if (sessionWrapper == null) {
     sessionWrapper = hbDataStore.createSessionWrapper();
   }
   return sessionWrapper;
 }