@After
 public void tearDown() {
   MailboxSession session =
       mailboxManager.createSystemSession("test", LoggerFactory.getLogger("Test"));
   try {
     mailboxManager.deleteEverything(session);
   } catch (MailboxException e) {
     e.printStackTrace();
   }
   session.close();
 }
  @Before
  public void setUp() throws MailboxException {

    HashMap<String, String> properties = new HashMap<String, String>();
    properties.put("openjpa.ConnectionDriverName", org.h2.Driver.class.getName());
    properties.put(
        "openjpa.ConnectionURL", "jdbc:h2:mem:mailboxintegrationstress;DB_CLOSE_DELAY=-1");
    properties.put("openjpa.Log", "JDBC=WARN, SQL=WARN, Runtime=WARN");
    properties.put(
        "openjpa.ConnectionFactoryProperties", "PrettyPrint=true, PrettyPrintLineLength=72");
    properties.put("openjpa.jdbc.SynchronizeMappings", "buildSchema(ForeignKeys=true)");
    properties.put(
        "openjpa.MetaDataFactory",
        "jpa(Types="
            + JPAMailbox.class.getName()
            + ";"
            + AbstractJPAMailboxMessage.class.getName()
            + ";"
            + JPAMailboxMessage.class.getName()
            + ";"
            + JPAProperty.class.getName()
            + ";"
            + JPAUserFlag.class.getName()
            + ";"
            + JPASubscription.class.getName()
            + ")");
    properties.put("openjpa.LockTimeout", locktimeout + "");

    entityManagerFactory = OpenJPAPersistence.getEntityManagerFactory(properties);
    JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
    JPAMailboxSessionMapperFactory mf =
        new JPAMailboxSessionMapperFactory(
            entityManagerFactory,
            new JPAUidProvider(locker, entityManagerFactory),
            new JPAModSeqProvider(locker, entityManagerFactory));

    MailboxACLResolver aclResolver = new UnionMailboxACLResolver();
    GroupMembershipResolver groupMembershipResolver = new SimpleGroupMembershipResolver();

    mailboxManager = new OpenJPAMailboxManager(mf, null, aclResolver, groupMembershipResolver);
    mailboxManager.init();

    // Set the lock timeout via SQL because of a bug in openJPA
    // https://issues.apache.org/jira/browse/OPENJPA-1656
    setH2LockTimeout();
  }