diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2017-09-28 16:56:25 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2017-09-28 16:56:25 +0200 |
| commit | 504598b320c689cca3d1bbf523a4dd82f69d7a61 (patch) | |
| tree | 5058464bf8b8f4068240020c639bb1de6721a029 /opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt | |
| parent | d6d9d37abf17071ff050e45ea37c693e659a4e98 (diff) | |
Add thread pool for experiment platform
Diffstat (limited to 'opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt')
| -rw-r--r-- | opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt b/opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt index faa1a771..ce69f84b 100644 --- a/opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt +++ b/opendc-integration-jpa/src/main/kotlin/nl/atlarge/opendc/platform/JpaExperimentManager.kt @@ -27,14 +27,21 @@ package nl.atlarge.opendc.platform import nl.atlarge.opendc.integration.jpa.schema.Experiment as InternalExperiment import nl.atlarge.opendc.integration.jpa.schema.ExperimentState import javax.persistence.EntityManager +import javax.persistence.EntityManagerFactory /** * A manager for [Experiment]s received from a JPA database. * - * @property manager The JPA entity manager to retrieve entities from the database from. + * @property factory The JPA entity manager factory to create [EntityManager]s to retrieve entities from the database + * from. * @author Fabian Mastenbroek (f.s.mastenbroek@student.tudelft.nl) */ -class JpaExperimentManager(private val manager: EntityManager) { +class JpaExperimentManager(private val factory: EntityManagerFactory) { + /** + * The entity manager for this experiment. + */ + private val manager: EntityManager = factory.createEntityManager() + /** * The amount of experiments in the queue. This property makes a call to the database and does therefore not * run in O(1) time. @@ -68,6 +75,6 @@ class JpaExperimentManager(private val manager: EntityManager) { experiment!!.state = ExperimentState.CLAIMED } manager.transaction.commit() - return experiment?.let { JpaExperiment(manager, it) } + return experiment?.let { JpaExperiment(factory.createEntityManager(), it) } } } |
