KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > j2biz > blogunity > CreateFakeData


1 /*
2  * $Id: CreateFakeData.java,v 1.20 2005/01/17 21:36:27 michelson Exp $
3  *
4  * Copyright (c) 2004 j2biz Group, http://www.j2biz.com
5  * Koeln / Duesseldorf , Germany
6  *
7  * @author Max Kalina
8  *
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23  *
24  */

25 package com.j2biz.blogunity;
26
27 import java.io.ByteArrayOutputStream JavaDoc;
28 import java.io.File JavaDoc;
29 import java.io.IOException JavaDoc;
30 import java.util.Calendar JavaDoc;
31 import java.util.Properties JavaDoc;
32 import java.util.Random JavaDoc;
33
34 import org.apache.commons.lang.StringUtils;
35 import org.radeox.api.engine.RenderEngine;
36 import org.radeox.api.engine.context.RenderContext;
37 import org.radeox.engine.BaseRenderEngine;
38 import org.radeox.engine.context.BaseRenderContext;
39
40 import com.j2biz.blogunity.dao.BlogDAO;
41 import com.j2biz.blogunity.dao.CategoryDAO;
42 import com.j2biz.blogunity.dao.EntryDAO;
43 import com.j2biz.blogunity.dao.SystemConfigurationDAO;
44 import com.j2biz.blogunity.dao.TrackbackDAO;
45 import com.j2biz.blogunity.dao.UserDAO;
46 import com.j2biz.blogunity.dao.UserpicDAO;
47 import com.j2biz.blogunity.exception.BlogunityException;
48 import com.j2biz.blogunity.pojo.Blog;
49 import com.j2biz.blogunity.pojo.Category;
50 import com.j2biz.blogunity.pojo.Entry;
51 import com.j2biz.blogunity.pojo.SystemConfiguration;
52 import com.j2biz.blogunity.pojo.Trackback;
53 import com.j2biz.blogunity.pojo.User;
54 import com.j2biz.blogunity.pojo.Userpic;
55 import com.j2biz.blogunity.util.HibernateUtil;
56 import com.j2biz.blogunity.util.PasswordEncryptionService;
57 import com.j2biz.blogunity.util.ResourceUtils;
58
59 /**
60  * @author michelson
61  * @version $$
62  * @since 0.1
63  *
64  *
65  */

66 public class CreateFakeData {
67
68     private static String JavaDoc ROOT_DIR = null;
69
70     private static String JavaDoc BLOGS_DATA_DIR = null;
71
72     private static String JavaDoc TEMP_DIR = null;
73
74     private static boolean enablePasswordEncryption = false;
75
76     private static int passwordEncryptionType = PasswordEncryptionService.MD5;
77
78     private static String JavaDoc[] bodies = {
79             "{code}"
80                     + "User user = new User();\n"
81                     + "user.setName( \"test\");\n"
82                     + "user.setPassword(time);\n"
83                     + "user.setEmail( time);\n"
84                     + "\n"
85                     + "{code}"
86                     + "\\"
87                     + "\\"
88
89                     + "Lorem ipsum mei meis postea neglegentur te. Eos nulla discere ut. Vix sumo labore dissentias at, nominavi percipit ei per. Stet elitr eleifend id ius, essent referrentur per in."
90                     + "__Malis eleifend interesset qui in, ei quo accumsan maluisset__, ad ullum salutandi incorrupte sea. Voluptua deterruisset pro in, mei an error sanctus philosophia. Vim ei summo detracto, at eum saperet dolorem mediocrem. Eos tollit officiis hendrerit eu, sed te possit delectus. Ex vim error dicunt. Ut cum quidam iracundia, ei elaboraret assueverit pri."
91                     + "Est id choro postea postulant, in mea fugit audire fastidii, quem viderer maiestatis an sea. Tempor verterem interesset et per, eu per vero graeci platonem. Nec voluptaria definiebas an, in soleat labore deterruisset nec, mei enim oblique facilis in. Velit decore his te, eu zzril putant est. Fabulas consequat vim ut, puto lobortis dignissim an eam. Te suas rationibus duo, reque malis tamquam eos ad."
92                     + "Nam ut sumo dicta, at cum kasd partiendo disputando. Vis et imperdiet conclusionemque. At sit oratio suavitate neglegentur, populo aliquyam sed cu. Unum verear per ad, vim clita epicuri facilisis at."
93                     + "Eam duis dolorum ad, id delenit fastidii recteque nec, vel propriae conceptam necessitatibus cu. Stet sale paulo vim ne. Mei ut audire euismod, ullum hendrerit adipiscing ne usu. Odio nominati eum in, pro impetus persius eleifend ut. Ea mea dicat singulis accusata, id quod constituto vix."
94                     + "Illum munere bonorum eu his. Id atqui mediocrem efficiantur sed. Id sea solum causae, suas appetere nam in. No eos quod ridens, ex cum graece copiosae honestatis, adhuc adolescens efficiendi ea mei. Pericula maluisset eos in."
95                     + "Has novum movet exerci ex. ~~Ea eum patrioque reprimique, usu et invenire conclusionemque. In scripta tractatos nec. Tempor doctus audiam in qui, et movet minimum persequeris duo."
96                     + "Oporteat urbanitas has at, id euripidis~~ tincidunt abhorreant his. Detracto accusata ei vim. Duo facer viderer id, eu equidem alienum sapientem sea, ne reque dolor has. Vel solum torquatos et. Sit dolor exerci ut, pri tation aperiam et. Vel cu perfecto invenire interesset, pro ex iuvaret percipitur."
97                     + "Ut ius dolore phaedrum. --Porro vitae tation id duo, an has persius aliquam. Evertitur conclusionemque ei has. Duo ad nihil nobis impetus, his quas omnesque ad, odio iudico meliore duo in. Quot labore dissentias eos id, mei et amet propriae pericula. Sit in nonumy quaeque adolescens, nec ad vocibus consequuntur, ex velit possit honestatis per."
98                     + "Pro ad summo-- labores praesent, illum nemore aliquam ad pri. Id essent fuisset cum, integre habemus efficiendi eos ne. An omnis putent adolescens nec. Ad nobis dicunt constituam vix, discere numquam referrentur qui ad. Esse vocibus phaedrum pro cu, an mei theophrastus consequuntur, ad mei alia debet recteque."
99
100             ,
101             "GMailer API for Java (g4j) is set of API that allows Java programmer to communicate to GMail. With G4J programmers can made Java based application that based on huge storage of GMail."
102                     + "An Email application, GMailer for Java is also built to demonstrate the usage of the API. It is planned to include minimalist email capabilities such as browse, search, read, send mail and download attachment.."
103
104             ,
105             "One possible approach is to leave the session open (and transaction uncommitted) when "
106                     + "forwarding to the view. The session/transaction would be closed/committed after the view is rendered in, for example, a servlet filter "
107                     + "(another example would by to use the ModelLifetime.discard() callback in Maverick). One difficulty with "
108                     + "this approach is making sure the session/transaction is closed/rolled back if an exception occurs rendering the view."};
109
110     public static void main(String JavaDoc[] args) {
111
112         System.out.println("Creating fake data...");
113
114         if (args.length < 3)
115                 throw new UnsupportedOperationException JavaDoc(
116                         "Can not create fake data! Not enougth arguments found!");
117
118         ROOT_DIR = args[0];
119
120         if (StringUtils.isEmpty(ROOT_DIR))
121                 throw new RuntimeException JavaDoc("Value for ROOT_DIRECTORY is empty! Aborted!");
122
123         File JavaDoc rootDir = new File JavaDoc(ROOT_DIR);
124         if (!rootDir.exists() || !rootDir.isDirectory() || !rootDir.canWrite())
125                 throw new RuntimeException JavaDoc("Directory '" + ROOT_DIR
126                         + "' not exists or is not avaliable!");
127
128         BLOGS_DATA_DIR = ROOT_DIR + "/WEB-INF/data";
129         TEMP_DIR = ROOT_DIR + "/WEB-INF/temp";
130
131         File JavaDoc dataDir = new File JavaDoc(BLOGS_DATA_DIR);
132         if (!dataDir.exists()) {
133             boolean result = dataDir.mkdirs();
134             if (!result)
135                     throw new RuntimeException JavaDoc("Aborted! Unable to create directory: "
136                             + BLOGS_DATA_DIR);
137         }
138
139         File JavaDoc tempDir = new File JavaDoc(TEMP_DIR);
140         if (!tempDir.exists()) {
141             boolean result = tempDir.mkdirs();
142             if (!result)
143                     throw new RuntimeException JavaDoc("Aborted! Unable to create directory: " + TEMP_DIR);
144         }
145
146         String JavaDoc _enableEncryptionStr = args[1];
147         if (_enableEncryptionStr.equalsIgnoreCase("true")) {
148             enablePasswordEncryption = true;
149             if (args.length >= 3) {
150                 // try to gt encryption-type
151
String JavaDoc _typeStr = args[2];
152                 if (_typeStr.equalsIgnoreCase("MD5")) {
153                     passwordEncryptionType = PasswordEncryptionService.MD5;
154                 } else if (_typeStr.equalsIgnoreCase("SHA")) {
155                     passwordEncryptionType = PasswordEncryptionService.SHA;
156                 } else {
157                     enablePasswordEncryption = false;
158                 }
159             }
160         } else {
161             enablePasswordEncryption = false;
162         }
163
164         System.out.println("Create configuration...");
165
166         createConfig();
167
168         System.out.println("Create users...");
169         createUsers();
170
171         System.out.println("Create blogs...");
172         createBlogs();
173
174         System.out.println("Create categories...");
175         createCategories();
176
177         System.out.println("Create entries...");
178         createEntries();
179
180     }
181
182     /**
183      *
184      */

185     private static void createConfig() {
186         HibernateUtil.beginTransaction();
187
188         Properties JavaDoc props = new Properties JavaDoc();
189
190         props.setProperty("resource.loader", "file, class");
191
192         // file resource loader
193
props.setProperty("file.resource.loader.path", BLOGS_DATA_DIR);
194         props.setProperty("file.resource.loader.cache", "true");
195         props.setProperty("file.resource.loader.modificationCheckInterval", "2");
196         props.setProperty("velocimacro.library", "blogunity_macros.vm");
197
198         // classpath resource loader
199
props
200                 .setProperty("class.resource.loader.description",
201                         "Velocity Classpath Resource Loader");
202         props.setProperty("class.resource.loader.class",
203                 "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
204
205         // velocity.log
206
props.setProperty("runtime.log", ROOT_DIR + "/WEB-INF/velocity.log");
207         props.setProperty("input.encoding", "UTF-8");
208         props.setProperty("output.encoding", "UTF-8");
209
210         SystemConfiguration config = new SystemConfiguration();
211         config.setAllowNewUsers(true);
212
213         if (enablePasswordEncryption) {
214             config.setPasswordEncriptionEnabled(true);
215             config.setPasswordEncryptionType(passwordEncryptionType);
216         } else
217             config.setPasswordEncriptionEnabled(false);
218
219         config.setDataDir(BLOGS_DATA_DIR);
220         config.setTempDir(TEMP_DIR);
221         // config.setRenderEngineClass("org.radeox.engine.BaseRenderEngine");
222
config.setValidateNewUsers(true);
223
224         ByteArrayOutputStream JavaDoc out = new ByteArrayOutputStream JavaDoc();
225         try {
226             props.store(out, "test");
227         } catch (IOException JavaDoc e) {
228             e.printStackTrace();
229         }
230
231         config.setVelocityProperties(new String JavaDoc(out.toByteArray()));
232
233         try {
234             SystemConfigurationDAO dao = new SystemConfigurationDAO();
235             dao.setSystemConfiguration(config);
236             HibernateUtil.commitTransaction();
237         } catch (BlogunityException e1) {
238             e1.printStackTrace();
239         } finally {
240             HibernateUtil.closeSession();
241         }
242
243     }
244
245     /**
246      *
247      */

248     private static void createUsers() {
249
250         try {
251             UserDAO dao = new UserDAO();
252
253             // user1
254
User u1 = new User();
255             u1.setNickname("max");
256
257             try {
258                 if (enablePasswordEncryption) u1.setPassword(PasswordEncryptionService.encrypt(
259                         "123", passwordEncryptionType));
260                 else
261                     u1.setPassword("123");
262             } catch (Exception JavaDoc e1) {
263                 u1.setPassword("123");
264             }
265
266             u1.setFirstname("Maxim");
267             u1.setLastname("Gorky");
268             u1.setEmail("max@avrora.net");
269             u1.setBioRaw("Rodilsja, zhil i __umer__...");
270             u1.setBio("Rodilsja, zhil i <b>umer</b>...");
271             u1.setHomepage("http://www.avrora.net");
272             u1.setIcq("58009584");
273             u1.setAdministrator(true);
274             Calendar JavaDoc birthday = Calendar.getInstance();
275             birthday.set(1978, Calendar.JUNE, 19);
276             u1.setBirthday(birthday.getTime());
277             dao.createUser(u1);
278
279             // create userpics
280
File JavaDoc userDir = new File JavaDoc(BLOGS_DATA_DIR, "users/" + u1.getNickname());
281             if (userDir.exists()) {
282                 ResourceUtils.removeDirectory(userDir);
283             }
284
285             userDir.mkdirs();
286             File JavaDoc userpicsDir = new File JavaDoc(userDir, "userpics");
287             userpicsDir.mkdir();
288
289             Userpic pic1 = new Userpic("pic1", "/users/max/userpics/img001.jpg", true, u1);
290             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img001.jpg"), new File JavaDoc(
291                     userpicsDir, "img001.jpg"));
292
293             Userpic pic2 = new Userpic("pic2", "/users/max/userpics/img002.jpg", false, u1);
294             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img002.jpg"), new File JavaDoc(
295                     userpicsDir, "img002.jpg"));
296
297             Userpic pic3 = new Userpic("pic3", "/users/max/userpics/img003.jpg", false, u1);
298             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img003.jpg"), new File JavaDoc(
299                     userpicsDir, "img003.jpg"));
300
301             Userpic pic4 = new Userpic("pic4", "/users/max/userpics/img004.jpg", false, u1);
302             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img004.jpg"), new File JavaDoc(
303                     userpicsDir, "img004.jpg"));
304
305             Userpic pic5 = new Userpic("pic5", "/users/max/userpics/img005.jpg", false, u1);
306             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img005.jpg"), new File JavaDoc(
307                     userpicsDir, "img005.jpg"));
308
309             UserpicDAO userpicDAO = new UserpicDAO();
310             userpicDAO.createUserpic(pic1);
311             userpicDAO.createUserpic(pic2);
312             userpicDAO.createUserpic(pic3);
313             userpicDAO.createUserpic(pic4);
314             userpicDAO.createUserpic(pic5);
315
316             // user2
317
User u2 = new User();
318             u2.setNickname("vasja");
319
320             try {
321                 if (enablePasswordEncryption) u2.setPassword(PasswordEncryptionService.encrypt(
322                         "123", passwordEncryptionType));
323                 else
324                     u2.setPassword("123");
325             } catch (Exception JavaDoc e1) {
326                 u2.setPassword("123");
327             }
328
329             u2.setFirstname("Vasisualij");
330             u2.setLastname("Lohankin");
331             u2.setEmail("vasja@hotmail.com");
332             dao.createUser(u2);
333
334             userDir = new File JavaDoc(BLOGS_DATA_DIR, "users/" + u2.getNickname());
335             if (userDir.exists()) {
336                 ResourceUtils.removeDirectory(userDir);
337             }
338
339             userDir.mkdirs();
340             userpicsDir = new File JavaDoc(userDir, "userpics");
341             userpicsDir.mkdir();
342
343             Userpic pic1x = new Userpic("pic1", "/users/max/userpics/img011.jpg", true, u2);
344             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img011.jpg"), new File JavaDoc(
345                     userpicsDir, "img011.jpg"));
346             Userpic pic2x = new Userpic("pic1", "/users/max/userpics/img031.jpg", false, u2);
347             ResourceUtils.copyFile(new File JavaDoc(ROOT_DIR, "/images/avatars/img031.jpg"), new File JavaDoc(
348                     userpicsDir, "img031.jpg"));
349
350             userpicDAO.createUserpic(pic1x);
351             userpicDAO.createUserpic(pic2x);
352
353             // user3
354
User u3 = new User();
355             u3.setNickname("petja");
356
357             try {
358                 if (enablePasswordEncryption) u3.setPassword(PasswordEncryptionService.encrypt(
359                         "123", passwordEncryptionType));
360                 else
361                     u3.setPassword("123");
362             } catch (Exception JavaDoc e1) {
363                 u3.setPassword("123");
364             }
365
366             u3.setFirstname("Peter");
367             u3.setLastname("Pervyj");
368             u3.setEmail("peter@russia.ru");
369             dao.createUser(u3);
370
371             // user4
372
User u4 = new User();
373             u4.setNickname("soso");
374
375             try {
376                 if (enablePasswordEncryption) u4.setPassword(PasswordEncryptionService.encrypt(
377                         "123", passwordEncryptionType));
378                 else
379                     u4.setPassword("123");
380             } catch (Exception JavaDoc e1) {
381                 u4.setPassword("123");
382             }
383
384             u4.setFirstname("Sosulija");
385             u4.setLastname("Vzhopuvyebajko");
386             u4.setEmail("soska@sex.com");
387             u4.setSex(User.FEMALE);
388             dao.createUser(u4);
389
390             u1.addFriend(u2);
391             u1.addFriend(u3);
392             dao.updateUser(u1);
393
394             HibernateUtil.commitTransaction();
395         } catch (BlogunityException e) {
396             e.printStackTrace();
397         } finally {
398             HibernateUtil.closeSession();
399         }
400
401     }
402
403     /**
404      *
405      */

406     private static void createBlogs() {
407         try {
408             UserDAO userDAO = new UserDAO();
409             BlogDAO blogDAO = new BlogDAO();
410
411             User u1 = userDAO.getUserByID(new Long JavaDoc(1));
412             User u2 = userDAO.getUserByID(new Long JavaDoc(2));
413             User u3 = userDAO.getUserByID(new Long JavaDoc(3));
414
415             //blog1
416
Blog b1 = new Blog();
417             b1.setUrlName("blog1");
418             b1.setFullName("blog1 full");
419             b1.setDescription("this is a description for blog number 1");
420             b1.setFounder(u1);
421             blogDAO.createBlog(b1);
422             createThemeDirectory(b1, "dark");
423
424             // blog2
425
Blog b2 = new Blog();
426             b2.setUrlName("blog2");
427             b2.setFullName("blog2 full");
428             b2.setDescription("this is a description for blog number 2");
429             b2.setFounder(u2);
430             blogDAO.createBlog(b2);
431             createThemeDirectory(b2, "blue");
432
433             // blog3 (community)
434
Blog b3 = new Blog();
435             b3.setUrlName("blog3");
436             b3.setFullName("blog3 full");
437             b3.setDescription("this is a description for blog number 3");
438             b3.setType(Blog.COMMUNITY_BLOG);
439             b3.setFounder(u1);
440             blogDAO.createBlog(b3);
441             createThemeDirectory(b3, "blue");
442
443             // blog4 (community)
444
Blog b4 = new Blog();
445             b4.setUrlName("blog4");
446             b4.setFullName("blog4 full");
447             b4.setDescription("this is a description for blog number 4");
448             b4.setType(Blog.COMMUNITY_BLOG);
449             b4.setFounder(u3);
450             blogDAO.createBlog(b4);
451             createThemeDirectory(b4, "dark");
452
453             // bidirectional!
454
u2.addContributedBlog(b3);
455             b3.addContributor(u2);
456
457             // bidirectional!
458
u3.addContributedBlog(b3);
459             b3.addContributor(u3);
460
461             // bidirectional!
462
u1.addContributedBlog(b4);
463             b4.addContributor(u1);
464
465             // bidirectional!
466
u2.addContributedBlog(b4);
467             b4.addContributor(u2);
468
469             //create favorite blogs
470
u1.addFavoriteBlog(b4);
471
472             userDAO.updateUser(u1);
473             userDAO.updateUser(u2);
474             userDAO.updateUser(u3);
475
476             HibernateUtil.commitTransaction();
477         } catch (BlogunityException e) {
478             e.printStackTrace();
479         } finally {
480             HibernateUtil.closeSession();
481         }
482
483     }
484
485     private static void createThemeDirectory(Blog b, String JavaDoc theme) throws BlogunityException {
486         File JavaDoc blogDir = new File JavaDoc(BLOGS_DATA_DIR, "blogs/" + b.getUrlName());
487         if (blogDir.exists()) {
488             ResourceUtils.removeDirectory(blogDir);
489         }
490
491         blogDir.mkdirs();
492
493         new File JavaDoc(BLOGS_DATA_DIR, "blogs/" + b.getUrlName() + "/indexes").mkdirs();
494         new File JavaDoc(BLOGS_DATA_DIR, "blogs/" + b.getUrlName() + "/images").mkdirs();
495         new File JavaDoc(BLOGS_DATA_DIR, "blogs/" + b.getUrlName() + "/logs").mkdirs();
496         new File JavaDoc(BLOGS_DATA_DIR, "blogs/" + b.getUrlName() + "/files").mkdirs();
497
498         File JavaDoc themeDir = new File JavaDoc(blogDir, "theme");
499         themeDir.mkdir();
500         ResourceUtils.copyDirectory(new File JavaDoc(ROOT_DIR, "/WEB-INF/themes/" + theme), themeDir);
501
502     }
503
504     /**
505      *
506      */

507     private static void createCategories() {
508         try {
509             CategoryDAO dao = new CategoryDAO();
510             BlogDAO blogDAO = new BlogDAO();
511
512             // create 2 global categories
513
Category cx = new Category("global1", Category.GLOBAL);
514             dao.createCategory(cx);
515
516             Category cy = new Category("global2", Category.GLOBAL);
517             dao.createCategory(cy);
518
519             //create local categories
520

521             //blog1
522
Blog b1 = blogDAO.getBlogByID(new Long JavaDoc(1));
523             b1.addCategory(cx);
524             b1.addCategory(cy);
525
526             Category c1 = new Category("blog1_local1", Category.LOCAL);
527             c1.addBlog(b1);
528             b1.addCategory(c1);
529             dao.createCategory(c1);
530
531             Category c2 = new Category("blog1_local2", Category.LOCAL);
532             c2.addBlog(b1);
533             b1.addCategory(c2);
534             dao.createCategory(c2);
535
536             // blog2
537
Blog b2 = blogDAO.getBlogByID(new Long JavaDoc(2));
538             b2.addCategory(cx);
539             b2.addCategory(cy);
540
541             Category c3 = new Category("blog2_local1", Category.LOCAL);
542             c3.addBlog(b2);
543             b2.addCategory(c3);
544             dao.createCategory(c3);
545
546             Category c4 = new Category("blog2_local2", Category.LOCAL);
547             c4.addBlog(b2);
548             b2.addCategory(c4);
549             dao.createCategory(c4);
550
551             // blog3 (community)
552
Blog b3 = blogDAO.getBlogByID(new Long JavaDoc(3));
553             b3.addCategory(cx);
554             b3.addCategory(cy);
555
556             Category c5 = new Category("blog3_local1", Category.LOCAL);
557             c5.addBlog(b3);
558             b3.addCategory(c5);
559             dao.createCategory(c5);
560
561             // blog4 (community)
562
Blog b4 = blogDAO.getBlogByID(new Long JavaDoc(4));
563             b4.addCategory(cx);
564             b4.addCategory(cy);
565
566             Category c6 = new Category("blog4_local1", Category.LOCAL);
567             c6.addBlog(b4);
568             b4.addCategory(c6);
569             dao.createCategory(c6);
570             Category c7 = new Category("blog4_local2", Category.LOCAL);
571             c7.addBlog(b4);
572             b4.addCategory(c7);
573             dao.createCategory(c7);
574
575             HibernateUtil.commitTransaction();
576         } catch (BlogunityException e) {
577             e.printStackTrace();
578         } finally {
579             HibernateUtil.closeSession();
580         }
581
582     }
583
584     /**
585      *
586      */

587     private static void createEntries() {
588         try {
589             UserDAO userDAO = new UserDAO();
590             BlogDAO blogDAO = new BlogDAO();
591             EntryDAO entryDAO = new EntryDAO();
592             TrackbackDAO trackbackDAO = new TrackbackDAO();
593
594             long time = System.currentTimeMillis();
595
596             RenderEngine engine = new BaseRenderEngine();
597             RenderContext ctx = new BaseRenderContext();
598
599             Calendar JavaDoc timeBegin = Calendar.getInstance();
600             timeBegin.set(2004, Calendar.JUNE, 30);
601
602             Calendar JavaDoc timeEnd = Calendar.getInstance();
603             timeEnd.set(2004, Calendar.DECEMBER, 20);
604
605             User u1 = userDAO.getUserByID(1);
606             User u2 = userDAO.getUserByID(2);
607             User u3 = userDAO.getUserByID(3);
608
609             Blog b1 = blogDAO.getBlogByID(1);
610             Blog b2 = blogDAO.getBlogByID(2);
611             Blog b3 = blogDAO.getBlogByID(3);
612
613             Random JavaDoc rnd = new Random JavaDoc();
614             boolean tbAllowed = true;
615             while (timeBegin.getTimeInMillis() < timeEnd.getTimeInMillis()) {
616                 Entry entry = new Entry();
617
618                 entry.setCreateTime(timeBegin.getTime());
619                 entry.setBlog(b1);
620
621                 int i = rnd.nextInt(10);
622                 int j = rnd.nextInt(2);
623
624                 entry.setRawTitle("entry title" + i);
625                 entry.setTitle(engine.render(entry.getRawTitle(), ctx));
626                 entry.setRawBody(bodies[j]);
627                 entry.setBody(engine.render(entry.getRawBody(), ctx));
628
629                 // every second article is trackback capable
630
entry.setTrackbackAllowed(tbAllowed);
631                 tbAllowed = !tbAllowed;
632
633                 if (i > 5) {
634                     entry.setRawExcerpt("this is just an excerpt " + i);
635                     entry.setExcerpt(engine.render(entry.getRawExcerpt(), ctx));
636                 }
637
638                 entry.addCategory((Category) b1.getCategories().iterator().next());
639                 entry.setAuthor(u1);
640
641                 if (i > 5) {
642                     entry.setUserpic((Userpic) u1.getUserpics().iterator().next());
643                 }
644
645                 entryDAO.createEntry(entry);
646
647                 if (entry.isTrackbackAllowed()) {
648                     int tbIndex = rnd.nextInt(10);
649                     for (int tbTmpIndex = 0; tbTmpIndex < tbIndex; tbTmpIndex++) {
650                         Trackback tb = new Trackback();
651                         tb.setDate(entry.getCreateTime());
652                         tb.setDirection(Trackback.DIRECTION_INCOMING);
653                         // tb.setReferencedBlogId(b1.getId());
654
tb.setReferencedEntryId(entry.getId());
655                         tb.setUrl("http://mok.com");
656                         tb.setTitle(tb.getUrl());
657                         tb.setLoggedIp("127.0.0.1");
658                         tb
659                                 .setTrackbackContent("Lorem ipsum mei meis postea neglegentur te. Eos nulla discere ut. Vix sumo labore dissentias at, nominavi percipit ei per. Stet elitr eleifend id ius, essent referrentur per in.Malis eleifend interesset qui in, ei quo accumsan maluisset, ad ullum salutandi incorrupte sea. Voluptua deterruisset pro in, mei an error sanctus philosophia. Vim ei summo detracto, at eum saperet dolorem mediocrem. Eos tollit officiis hendrerit eu, sed te possit delectus. Ex vim error dicunt. Ut cum quidam iracundia, ei elaboraret assueverit pri.Est id choro postea postulant, in mea fugit audire fastidii, quem viderer maiestatis an sea. Tempor verterem interesset et per, eu per vero graeci platonem. Nec voluptaria definiebas an, in soleat labore deterruisset nec, mei enim oblique facilis in. Velit decore his te, eu zzril putant est. Fabulas consequat vim ut, puto lobortis dignissim an eam. Te suas rationibus duo, reque malis tamquam eos ad.Nam ut sumo dicta, at cum kasd partiendo disputando. Vis et imperdiet conclusionemque. At sit oratio suavitate neglegentur, populo aliquyam sed cu. Unum verear per ad, vim clita epicuri facilisis at.Eam duis dolorum ad, id delenit fastidii recteque nec, vel propriae conceptam necessitatibus cu. Stet sale paulo vim ne. Mei ut audire euismod, ullum hendrerit adipiscing ne usu. Odio nominati eum in, pro impetus persius eleifend ut. Ea mea dicat singulis accusata, id quod constituto vix.Illum munere bonorum eu his. Id atqui mediocrem efficiantur sed. Id sea solum causae, suas appetere nam in. No eos quod ridens, ex cum graece copiosae honestatis, adhuc adolescens efficiendi ea mei. Pericula maluisset eos in.Has novum movet exerci ex. Ea eum patrioque reprimique, usu et invenire conclusionemque. In scripta tractatos nec. Tempor doctus audiam in qui, et movet minimum persequeris duo.Oporteat urbanitas has at, id euripidis tincidunt abhorreant his. Detracto accusata ei vim. Duo facer viderer id, eu equidem alienum sapientem sea, ne reque dolor has. Vel solum torquatos et. Sit dolor exerci ut, pri tation aperiam et. Vel cu perfecto invenire interesset, pro ex iuvaret percipitur.Ut ius dolore phaedrum. Porro vitae tation id duo, an has persius aliquam. Evertitur conclusionemque ei has. Duo ad nihil nobis impetus, his quas omnesque ad, odio iudico meliore duo in. Quot labore dissentias eos id, mei et amet propriae pericula. Sit in nonumy quaeque adolescens, nec ad vocibus consequuntur, ex velit possit honestatis per.Pro ad summo labores praesent, illum nemore aliquam ad pri. Id essent fuisset cum, integre habemus efficiendi eos ne. An omnis putent adolescens nec. Ad nobis dicunt constituam vix, discere numquam referrentur qui ad. Esse vocibus phaedrum pro cu, an mei theophrastus consequuntur, ad mei alia debet recteque.");
660                         trackbackDAO.createTrackback(tb);
661                     }
662                 }
663                 timeBegin.add(Calendar.HOUR, 18);
664             }
665             HibernateUtil.commitTransaction();
666         } catch (BlogunityException e) {
667             e.printStackTrace();
668         } finally {
669             HibernateUtil.closeSession();
670         }
671     }
672 }
Popular Tags