/private/tmp/play-ebean-electives-830/project/Dependencies.scala sha256=801a12abebe756beef1556b2802fee3604749c4459ae87277ff1a91e2990c2ed
17:   object Versions {
18:     val play: String   = "3.0.2"
19:     val ebean          = "15.1.0"
20:     val typesafeConfig = "1.4.3"
21:   }
22: 
23:   val ebean = libraryDependencies ++= Seq(
24:     ("io.ebean" % "ebean"               % Versions.ebean).excludeAll(ExclusionRule("com.fasterxml.jackson.core")),
25:     "io.ebean"  % "ebean-ddl-generator" % Versions.ebean,
26:     "io.ebean"  % "ebean-agent"         % Versions.ebean,
27:     "org.playframework" %% "play-java-jdbc"       % Versions.play,
28:     "org.playframework" %% "play-jdbc-evolutions" % Versions.play,

/private/tmp/play-ebean-electives-830/sbt-play-ebean/src/main/scala/play/ebean/sbt/PlayEbean.scala sha256=9fe8d3ce70ffff665713bd6923809cf841e70447e058f2f3abe7ab4e4cc79ae8
80:         val classpath   = deps.map(_.data.toURI.toURL).toArray :+ classes.toURI.toURL
81:         val classLoader = new URLClassLoader(classpath, null)
82: 
83:         Thread.currentThread.setContextClassLoader(classLoader)
84: 
85:         val transformer   = new Transformer(classLoader, agentArgsString)
86:         val fileTransform = new OfflineFileTransform(transformer, classLoader, classes.getAbsolutePath)
87: 
88:         try {
89:           fileTransform.process(playEbeanModels.value.mkString(","))
90:         } catch {
91:           case NonFatal(_) =>
92:         }
93: 
94:       } finally {
95:         Thread.currentThread.setContextClassLoader(originalContextClassLoader)
96:       }

/private/tmp/play-ebean-electives-830/play-ebean/src/main/java/play/db/ebean/TransactionalAction.java sha256=ac71f566f7ae9f954f91139356e8ab26018c9649f4f9f56de096426466952ef6
13: /** Wraps an action in an Ebean/DB transaction. */
14: public class TransactionalAction extends Action<Transactional> {
15:   public CompletionStage<Result> call(final Request req) {
16:     return DB.executeCall(() -> delegate.call(req));
17:   }
18: }

/private/tmp/play-series-source/playframework-3.0.6/persistence/play-java-jpa/src/main/java/play/db/jpa/DefaultJPAApi.java sha256=6d3679724a76fc5e396976b174b2dff1e75519d2475c9531106831ee982b4c29
155:     try {
156:       entityManager = em(name);
157: 
158:       if (entityManager == null) {
159:         throw new RuntimeException("Could not create JPA entity manager for '" + name + "'");
160:       }
161: 
162:       if (!readOnly) {
163:         tx = entityManager.getTransaction();
164:         tx.begin();
165:       }
166: 
167:       T result = block.apply(entityManager);
168: 
169:       if (tx != null) {
170:         if (tx.getRollbackOnly()) {
171:           tx.rollback();
172:         } else {
173:           tx.commit();
174:         }
175:       }
176: 
177:       return result;
178: 
179:     } catch (Throwable t) {
180:       if (tx != null) {
181:         try {
182:           if (tx.isActive()) {
183:             tx.rollback();
184:           }
185:         } catch (Exception e) {
186:           logger.error("Could not rollback transaction", e);
187:         }
188:       }
189:       throw t;
190:     } finally {
191:       if (entityManager != null) {
192:         entityManager.close();
193:       }
194:     }
195:   }
196: 
197:   /**
198:    * Run a block of code with a newly created EntityManager for the named Persistence Unit.
199:    *
200:    * @param name The persistence unit name
201:    * @param readOnly Is the transaction read-only?
202:    * @param block Block of code to execute

