diff --git a/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java b/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java
index 8612506..f6c42b5 100644
--- a/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java
+++ b/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-persistence
  * ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2020 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -54,6 +54,9 @@
     // get an instance of logger
     private static Logger  logger = LoggerFactory.getLogger(StateManagementTest.class);
 
+    private static EntityManagerFactory emf;
+    private static EntityManager em;
+
     StateManagementFeatureApi stateManagementFeature;
 
     /**
@@ -80,7 +83,8 @@
 
     @AfterClass
     public static void tearDownClass() throws Exception {
-
+        em.close();
+        emf.close();
     }
 
     @Before
@@ -239,13 +243,13 @@
 
         Properties cleanProperties = new Properties();
         cleanProperties.put(StateManagementProperties.DB_DRIVER,"org.h2.Driver");
-        cleanProperties.put(StateManagementProperties.DB_URL, "jdbc:h2:file:./sql/statemanagement");
+        cleanProperties.put(StateManagementProperties.DB_URL, "jdbc:h2:mem:statemanagement");
         cleanProperties.put(StateManagementProperties.DB_USER, "sa");
         cleanProperties.put(StateManagementProperties.DB_PWD, "");
 
-        EntityManagerFactory emf = Persistence.createEntityManagerFactory("junitPU", cleanProperties);
+        emf = Persistence.createEntityManagerFactory("junitPU", cleanProperties);
 
-        EntityManager em = emf.createEntityManager();
+        em = emf.createEntityManager();
         // Start a transaction
         EntityTransaction et = em.getTransaction();
 
@@ -258,7 +262,6 @@
 
         // commit transaction
         et.commit();
-        em.close();
 
         logger.debug("initializeDb: Exiting");
     }
diff --git a/feature-state-management/src/test/resources/META-INF/persistence.xml b/feature-state-management/src/test/resources/META-INF/persistence.xml
index 24dabe1..c96d8b6 100644
--- a/feature-state-management/src/test/resources/META-INF/persistence.xml
+++ b/feature-state-management/src/test/resources/META-INF/persistence.xml
@@ -3,14 +3,14 @@
   ============LICENSE_START=======================================================
   feature-state-management
   ================================================================================
-  Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+  Copyright (C) 2017-2018, 2020 AT&T Intellectual Property. All rights reserved.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
-  
+
        http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -40,10 +40,10 @@
                 value="drop-and-create" />
             <property
                 name="javax.persistence.schema-generation.scripts.create-target"
-                value="./sql/generatedCreateStateManagement.ddl" />
+                value="target/classes/META-INF/generatedCreateStateManagement.ddl" />
             <property
                 name="javax.persistence.schema-generation.scripts.drop-target"
-                value="./sql/generatedDropStateManagement.ddl" />
+                value="target/classes/META-INF/generatedDropStateManagement.ddl" />
         </properties>
     </persistence-unit>
 
diff --git a/feature-state-management/src/test/resources/feature-state-management.properties b/feature-state-management/src/test/resources/feature-state-management.properties
index 56d18b5..5e1864a 100644
--- a/feature-state-management/src/test/resources/feature-state-management.properties
+++ b/feature-state-management/src/test/resources/feature-state-management.properties
@@ -2,14 +2,14 @@
 # ============LICENSE_START=======================================================
 # feature-state-management
 # ================================================================================
-# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+# Copyright (C) 2017, 2020 AT&T Intellectual Property. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #      http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,7 +20,7 @@
 
 # DB properties
 javax.persistence.jdbc.driver = org.h2.Driver
-javax.persistence.jdbc.url  = jdbc:h2:file:./sql/statemanagement
+javax.persistence.jdbc.url  = jdbc:h2:mem:statemanagement
 javax.persistence.jdbc.user = sa
 javax.persistence.jdbc.password =
 
@@ -37,19 +37,19 @@
 
 # Must be unique across the system
 resource.name=pdp1
-# Name of the site in which this node is hosted 
+# Name of the site in which this node is hosted
 site_name = pdp_1
 # Forward Progress Monitor update interval seconds
 fp_monitor_interval = 30
-# Failed counter threshold before failover 
+# Failed counter threshold before failover
 failed_counter_threshold = 3
 # Interval between test transactions when no traffic seconds
 test_trans_interval = 10
-# Interval between writes of the FPC to the DB seconds 
+# Interval between writes of the FPC to the DB seconds
 write_fpc_interval = 5
-# Node type Note: Make sure you don't leave any trailing spaces, or you'll get an 'invalid node type' error! 
+# Node type Note: Make sure you don't leave any trailing spaces, or you'll get an 'invalid node type' error!
 node_type = pdp_drools
-# Dependency groups are groups of resources upon which a node operational state is dependent upon. 
+# Dependency groups are groups of resources upon which a node operational state is dependent upon.
 # Each group is a comma-separated list of resource names and groups are separated by a semicolon.  For example:
 # dependency_groups=site_1.astra_1,site_1.astra_2;site_1.brms_1,site_1.brms_2;site_1.logparser_1;site_1.pypdp_1
 dependency_groups=
@@ -58,14 +58,14 @@
 test_via_jmx=true
 # This is the max number of seconds beyond which a non incrementing FPC is considered a failure
 max_fpc_update_interval=120
-# Run the state audit every 60 seconds (60000 ms).  The state audit finds stale DB entries in the 
-# forwardprogressentity table and marks the node as disabled/failed in the statemanagemententity 
+# Run the state audit every 60 seconds (60000 ms).  The state audit finds stale DB entries in the
+# forwardprogressentity table and marks the node as disabled/failed in the statemanagemententity
 # table. NOTE! It will only run on nodes that have a standbystatus = providingservice.
 # A value of <= 0 will turn off the state audit.
 state_audit_interval_ms=-1000
-# The refresh state audit is run every (default) 10 minutes (600000 ms) to clean up any state corruption in the 
+# The refresh state audit is run every (default) 10 minutes (600000 ms) to clean up any state corruption in the
 # DB statemanagemententity table. It only refreshes the DB state entry for the local node.  That is, it does not
-# refresh the state of any other nodes.  A value <= 0 will turn the audit off. Any other value will override 
+# refresh the state of any other nodes.  A value <= 0 will turn the audit off. Any other value will override
 # the default of 600000 ms.
 refresh_state_audit_interval_ms=-1000
 
@@ -77,7 +77,7 @@
 # Timeout in seconds
 repository.audit.timeout=5
 repository.audit.id=statemanagement
-repository.audit.url=jdbc:h2:file:./sql/statemanagement
+repository.audit.url=jdbc:h2:mem:statemanagement
 repository.audit.username=sa
 repository.audit.password=
 
