[Notice] Announcing the End of Demo Server [Read me]
Yi EungJun 2013-04-17
Insert essential data the first time hive runs.
@47c8c706238f3cd7e95867dcdaa9eeb3eaa6e2fa
app/Global.java
--- app/Global.java
+++ app/Global.java
@@ -17,58 +17,65 @@
 
 public class Global extends GlobalSettings {
     public void onStart(Application app) {
+        insertInitialData();
         if (app.isTest()) {
             insertTestData();
         }
     }
 
-    private static void insertTestData() {
+    private static void insertDataFromYaml(String yamlFileName, String[] entityNames) {
+        @SuppressWarnings("unchecked")
+        Map<String, List<Object>> all = (Map<String, List<Object>>) Yaml
+                .load(yamlFileName);
+
+        // Check whether every entities exist.
+        for (String entityName : entityNames) {
+            if (all.get(entityName) == null) {
+                throw new RuntimeException("Failed to find the '" + entityName
+                        + "' entity in '" + yamlFileName + "'");
+            }
+        }
+
+        for (String entityName : entityNames) {
+            Ebean.save(all.get(entityName));
+        }
+    }
+
+    private static void insertInitialData() {
         if (Ebean.find(User.class).findRowCount() == 0) {
-            String initFileName = "initial-data.test.yml";
-
-            @SuppressWarnings("unchecked")
-            Map<String, List<Object>> all = (Map<String, List<Object>>) Yaml
-                    .load(initFileName);
-
             String[] entityNames = {
-                "users", "projects", "milestones",
-                "issues", "issueComments",
-                "postings", "postingComments",
-                "roles", "projectUsers",
-                "siteAdmins"
+                "users", "roles", "siteAdmins"
             };
 
-            // Check whether every entities exist.
-            for (String entityName : entityNames) {
-                if (all.get(entityName) == null) {
-                    throw new RuntimeException("Failed to find the '" + entityName
-                            + "' entity in '" + initFileName + "'");
-                }
+            insertDataFromYaml("initial-data.yml", entityNames);
+        }
+    }
+
+    private static void insertTestData() {
+        String[] entityNames = {
+            "projects", "milestones", "issues", "issueComments", "postings",
+            "postingComments", "projectUsers"
+        };
+
+        insertDataFromYaml("test-data.yml", entityNames);
+
+        // Do numbering for issues and postings.
+        for (Project project : Project.find.findList()) {
+            List<Issue> issues = Issue.finder.where()
+                    .eq("project.id", project.id).orderBy("id desc")
+                    .findList();
+
+            for (Issue issue: issues) {
+                issue.save();
             }
 
-            for (String entityName : entityNames) {
-                Ebean.save(all.get(entityName));
+            List<Posting> postings = Posting.finder.where()
+                    .eq("project.id", project.id).orderBy("id desc")
+                    .findList();
+
+            for (Posting posting: postings) {
+                posting.save();
             }
-
-            // Do numbering for issues and postings.
-            for (Project project : Project.find.findList()) {
-                List<Issue> issues = Issue.finder.where()
-                        .eq("project.id", project.id).orderBy("id desc")
-                        .findList();
-
-                for (Issue issue: issues) {
-                    issue.save();
-                }
-
-                List<Posting> postings = Posting.finder.where()
-                        .eq("project.id", project.id).orderBy("id desc")
-                        .findList();
-
-                for (Posting posting: postings) {
-                    posting.save();
-                }
-            }
-
         }
     }
 
 
conf/initial-data.yml (added)
+++ conf/initial-data.yml
@@ -0,0 +1,24 @@
+# Users
+users:
+    - !!models.User
+        name:           Site admin
+        loginId:        admin
+        password:       5v4TVjzLo1bqullT1CU4/bENUNOUfX97WpdunGLvJvw=
+        passwordSalt:   '[B@1032a4'
+        email:          admin@nhn.com
+        avatarUrl:      /assets/images/default-avatar-128.png
+        createdDate:           2012-11-01 08:00:00
+
+siteAdmins:
+     - !!models.SiteAdmin
+        admin:        !!models.User
+                            id: 1
+
+# Role
+roles:
+    - !!models.Role
+        name:           manager
+        active:         true
+    - !!models.Role
+        name:           member
+        active:         true
conf/test-data.yml (Renamed from conf/initial-data.test.yml)
--- conf/initial-data.test.yml
+++ conf/test-data.yml
No changes
Add a comment
List