|
|
|
@ -3,6 +3,7 @@ package envoy.server.database;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import javax.persistence.EntityManager;
|
|
|
|
|
import javax.persistence.EntityTransaction;
|
|
|
|
|
import javax.persistence.Persistence;
|
|
|
|
|
|
|
|
|
|
import envoy.server.data.ConfigItem;
|
|
|
|
@ -19,6 +20,9 @@ import envoy.server.data.User;
|
|
|
|
|
*/
|
|
|
|
|
public class PersistenceManager {
|
|
|
|
|
|
|
|
|
|
private final EntityManager entityManager = Persistence.createEntityManagerFactory("envoy").createEntityManager();
|
|
|
|
|
private final EntityTransaction transaction = entityManager.getTransaction();
|
|
|
|
|
|
|
|
|
|
private static final PersistenceManager persistenceManager = new PersistenceManager();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -26,7 +30,10 @@ public class PersistenceManager {
|
|
|
|
|
*
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
private PersistenceManager() {}
|
|
|
|
|
private PersistenceManager() {
|
|
|
|
|
transaction.begin();
|
|
|
|
|
Runtime.getRuntime().addShutdownHook(new Thread(() -> transaction.commit()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @return the {@link PersistenceManager} singleton
|
|
|
|
@ -34,8 +41,6 @@ public class PersistenceManager {
|
|
|
|
|
*/
|
|
|
|
|
public static PersistenceManager getPersistenceManager() { return persistenceManager; }
|
|
|
|
|
|
|
|
|
|
private EntityManager entityManager = Persistence.createEntityManagerFactory("envoy").createEntityManager();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Adds a {@link User} to the database.
|
|
|
|
|
*
|
|
|
|
@ -43,9 +48,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void addUser(User User) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.persist(User);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -55,9 +59,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void addMessage(Message message) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.persist(message);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -67,9 +70,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void addConfigItem(ConfigItem configItem) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.persist(configItem);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -79,9 +81,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void updateUser(User user) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.merge(user);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -91,9 +92,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void updateMessage(Message message) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.merge(message);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -103,9 +103,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void updateConfigItem(ConfigItem configItem) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.merge(configItem);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -115,9 +114,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void deleteUser(User user) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.remove(user);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -127,9 +125,8 @@ public class PersistenceManager {
|
|
|
|
|
* @since Envoy Server Standalone v0.1-alpha
|
|
|
|
|
*/
|
|
|
|
|
public void deleteMessage(Message message) {
|
|
|
|
|
entityManager.getTransaction().begin();
|
|
|
|
|
entityManager.remove(message);
|
|
|
|
|
entityManager.getTransaction().commit();
|
|
|
|
|
entityManager.flush();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|