[weld-commits] Weld SVN: r6998 - archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Fri Aug 20 17:10:12 EDT 2010


Author: dan.j.allen
Date: 2010-08-20 17:10:11 -0400 (Fri, 20 Aug 2010)
New Revision: 6998

Added:
   archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/SeedDataImporter.java
Log:
add portable seed data importer


Added: archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/SeedDataImporter.java
===================================================================
--- archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/SeedDataImporter.java	                        (rev 0)
+++ archetypes/javaee6-webapp/trunk/src/main/java/com/mycompany/SeedDataImporter.java	2010-08-20 21:10:11 UTC (rev 6998)
@@ -0,0 +1,60 @@
+package com.mycompany;
+
+import javax.annotation.PostConstruct;
+import javax.ejb.Singleton;
+import javax.ejb.Startup;
+import javax.inject.Inject;
+import javax.persistence.EntityManager;
+import javax.persistence.TransactionRequiredException;
+import javax.transaction.UserTransaction;
+import org.slf4j.Logger;
+
+/**
+ * Import seed data into the database on application startup using
+ * a startup singleton EJB.
+ *
+ * @author Dan Allen
+ */
+ at Startup
+ at Singleton
+public class SeedDataImporter
+{
+   @Inject
+   private Logger log;
+   
+   @Inject
+   @MemberRepository
+   private EntityManager em;
+   
+   @Inject
+   private UserTransaction tx;
+
+   @PostConstruct
+   public void importData()
+   {
+      Member member1 = new Member();
+      member1.setName("John Smith");
+      member1.setEmail("john.smith at mailinator.com");
+      member1.setPhoneNumber("2125551212");
+      try
+      {
+         try
+         {
+            em.persist(member1);
+         }
+         catch (TransactionRequiredException e)
+         {
+            // manual transaction control required in @PostConstruct method
+            // only use if enforced by JPA provider (due to bug in GlassFish)
+            tx.begin();
+            em.persist(member1);
+            tx.commit();
+         }
+         log.info("Successfully imported seed data.");
+      }
+      catch (Exception e)
+      {
+         log.warn("Seed data import failed.", e);
+      }
+   }
+}



More information about the weld-commits mailing list