diff --git a/pom.xml b/pom.xml
index 2922f5c20b09e50fd17850442468033891c92467..9a6ed078ed292faff1ab84d4f36ae09d380f064e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -269,26 +269,18 @@
mysql-connector-java
5.1.14
+
org.hibernate
- hibernate-entitymanager
- 4.1.1.Final
-
-
- javax.transaction
- jta
- 1.1
-
-
- org.hibernate.javax.persistence
- hibernate-jpa-2.0-api
- 1.0.1.Final
+ hibernate-core
+ 4.3.10.Final
-
+
+
diff --git a/src/META-INF/persistence.xml b/src/META-INF/persistence.xml
deleted file mode 100644
index 64170b0bc5d336eb185111b57e7bff17b8d34e71..0000000000000000000000000000000000000000
--- a/src/META-INF/persistence.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/de/tud/kom/p2psim/impl/analyzer/metric/output/MetricOutputDAO.java b/src/de/tud/kom/p2psim/impl/analyzer/metric/output/MetricOutputDAO.java
index 327e26fa3f3ac02ee871d65a1bb8d3b87781a5f1..fa67113c34f28255f7c3e4d13e01dc199f89b684 100644
--- a/src/de/tud/kom/p2psim/impl/analyzer/metric/output/MetricOutputDAO.java
+++ b/src/de/tud/kom/p2psim/impl/analyzer/metric/output/MetricOutputDAO.java
@@ -53,16 +53,15 @@ public class MetricOutputDAO extends AbstractOutput {
*/
@XMLConfigurableConstructor({ "table" })
public MetricOutputDAO(String table) {
- DAO.configOverwrites.put("hibernate.connection.url",
- "jdbc:mysql://localhost/" + table);
+ DAO.database = table;
}
public void setUser(String user) {
- DAO.configOverwrites.put("hibernate.connection.username", user);
+ DAO.username = user;
}
public void setPassword(String password) {
- DAO.configOverwrites.put("hibernate.connection.password", password);
+ DAO.password = password;
}
public void setTimeEnableDao(long timeEnableDao) {
diff --git a/src/de/tud/kom/p2psim/impl/common/DefaultMonitor.java b/src/de/tud/kom/p2psim/impl/common/DefaultMonitor.java
index dd6e93f8e135ff026f78b197934b6243da46a0a0..9160b132979023d924252c00dbce34c2d1069e92 100644
--- a/src/de/tud/kom/p2psim/impl/common/DefaultMonitor.java
+++ b/src/de/tud/kom/p2psim/impl/common/DefaultMonitor.java
@@ -141,8 +141,7 @@ public class DefaultMonitor implements MonitorComponent, EventHandler,
public void setTableName(String tableName) {
System.out.println("Table Name is set to: " + tableName);
if (tableName != null && !tableName.equals("")) {
- DAO.configOverwrites.put("hibernate.connection.url",
- "jdbc:mysql://localhost/" + tableName);
+ DAO.database = tableName;
}
}
diff --git a/src/de/tud/kom/p2psim/impl/simengine/Simulator.java b/src/de/tud/kom/p2psim/impl/simengine/Simulator.java
index 53b3bf7919c02304151e108e31260a79f44a71ef..6f58274013cc0b2f79b35ab6d1a41d9cfbe561cd 100644
--- a/src/de/tud/kom/p2psim/impl/simengine/Simulator.java
+++ b/src/de/tud/kom/p2psim/impl/simengine/Simulator.java
@@ -475,8 +475,7 @@ public class Simulator implements RandomGeneratorComponent, GlobalComponent {
*/
@Deprecated
public void setDatabase(String database) {
- DAO.configOverwrites.put("hibernate.connection.url",
- "jdbc:mysql://localhost/" + database);
+ DAO.database = database;
}
/**
diff --git a/src/de/tud/kom/p2psim/impl/util/db/dao/CommitThread.java b/src/de/tud/kom/p2psim/impl/util/db/dao/CommitThread.java
index a8ca5198eda5635413985b83c55ed1a4628db72e..00db374163cb9469ab0be8abd568ef9a687f64aa 100644
--- a/src/de/tud/kom/p2psim/impl/util/db/dao/CommitThread.java
+++ b/src/de/tud/kom/p2psim/impl/util/db/dao/CommitThread.java
@@ -25,6 +25,8 @@ import java.util.List;
import javax.persistence.EntityManager;
+import org.hibernate.Session;
+
import de.tud.kom.p2psim.impl.util.db.metric.CustomMeasurement;
import de.tud.kom.p2psim.impl.util.db.metric.HostMetric;
import de.tud.kom.p2psim.impl.util.db.metric.HostMetricBound;
@@ -81,30 +83,30 @@ public class CommitThread implements Runnable {
public boolean commitQueue() {
int sessions = incNumSessions();
- EntityManager em = null;
+ Session s = null;
boolean ok = true;
try {
- em = DAO.getEntityManager();
- em.getTransaction().begin();
+ s = DAO.getSession();
+ s.getTransaction().begin();
for (Object persist : persistQueue) {
if (persist instanceof HostMetricBound) {
HostMetric metric = ((HostMetricBound)persist).getHostMetric();
if (metric != null) {
- HostMetric foundMetric = em.find(HostMetric.class, metric.getId());
+ HostMetric foundMetric = (HostMetric) s.get(HostMetric.class, metric.getId());
if (foundMetric != null) {
((HostMetricBound) persist).setHostMetric(foundMetric);
}
}
}
// log.info("Persisting " + persist);
- em.persist(persist);
+ s.persist(persist);
if (persist instanceof CustomMeasurement) {
((CustomMeasurement)persist).afterPersist();
}
}
- em.getTransaction().commit();
- em.close();
+ s.getTransaction().commit();
+ s.close();
ok = true;
} catch (org.hibernate.HibernateException e) {
throw e;
diff --git a/src/de/tud/kom/p2psim/impl/util/db/dao/DAO.java b/src/de/tud/kom/p2psim/impl/util/db/dao/DAO.java
index fc4fb2ff32915ba02fd97f55630d678099d54709..90df47e8b8ea2045df8335a89661e4f172e165fc 100644
--- a/src/de/tud/kom/p2psim/impl/util/db/dao/DAO.java
+++ b/src/de/tud/kom/p2psim/impl/util/db/dao/DAO.java
@@ -31,7 +31,23 @@ import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.hibernate.HibernateException;
-
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.service.ServiceRegistry;
+import org.omg.CORBA.CustomMarshal;
+
+import de.tud.kom.p2psim.impl.util.db.metric.CustomMeasurement;
+import de.tud.kom.p2psim.impl.util.db.metric.Experiment;
+import de.tud.kom.p2psim.impl.util.db.metric.HostMetric;
+import de.tud.kom.p2psim.impl.util.db.metric.HostMetricBound;
+import de.tud.kom.p2psim.impl.util.db.metric.Measurement;
+import de.tud.kom.p2psim.impl.util.db.metric.MeasurementPair;
+import de.tud.kom.p2psim.impl.util.db.metric.MeasurementPairList;
+import de.tud.kom.p2psim.impl.util.db.metric.MeasurementSingle;
+import de.tud.kom.p2psim.impl.util.db.metric.Metric;
+import de.tud.kom.p2psim.impl.util.db.metric.MetricDescription;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
@@ -49,88 +65,160 @@ import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
*/
public class DAO {
-
- /**
- * The actually session for all DAOs
- */
- private static final ThreadLocal entityManager = new ThreadLocal();
-
- /**
- * The session factory from Hibernate
- */
- private static EntityManagerFactory emf;
+// /**
+// * The actually session for all DAOs
+// */
+// private static final ThreadLocal entityManager = new ThreadLocal();
+//
+// /**
+// * The session factory from Hibernate
+// */
+// private static EntityManagerFactory emf;
private static final int QUEUE_SIZE = 20000;
/**
* The queue for the big amount of data
*/
- private static ArrayList