package je7hb.intro.xentracker.init;
import je7hb.intro.xentracker.boundary.ProjectTaskService;
import je7hb.intro.xentracker.entity.Project;
import je7hb.intro.xentracker.entity.Task;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.transaction.UserTransaction;
import java.util.Date;
/**
* The type DemoDataConfigurator
*
* @author Peter Pilgrim
*/
@Startup
@Singleton
public class DemoDataConfigurator {
@EJB
ProjectTaskService projectTaskService;
public static Date getFutureRandomDate() {
return getFutureRandomDate( new Date() );
}
public static Date getFutureRandomDate( Date now ) {
int days = (int)(Math.random() * 14 + 1);
return new Date( days * 86400L * 1000L + now.getTime());
}
@PostConstruct
public void initialise() {
System.out.printf("%s.initialise() projectTaskService=%s\n",
getClass().getSimpleName(),
projectTaskService );
createInitialProjectData();
}
public void createInitialProjectData() {
System.out.printf("%s.createInitialProjectData() projectTaskService=%s\n",
getClass().getSimpleName(),
projectTaskService );
Date p = getFutureRandomDate();
Date q = getFutureRandomDate(p);
Date r = getFutureRandomDate(q);
Project project1 = new Project("Technology Presentation",
"Demonstration of the Milestone 1",
"Show off the project to the key stakeholders and decision makers");
project1.addTask( new Task("Design concept", getFutureRandomDate(), true ));
project1.addTask( new Task("Write slides", p, false ));
project1.addTask( new Task("Talk to the organizer", q, false ));
project1.addTask( new Task("Prepare demos", r, false ));
projectTaskService.saveProject(project1);
Project project2 = new Project("Family Birthday",
"Grandparent Birthday",
"important anniversary so tell immediate relatives not to miss it!");
project2.addTask( new Task("Secretly find out gifts", getFutureRandomDate(), true ));
project2.addTask( new Task("Buy gifts", getFutureRandomDate(), false ));
project2.addTask( new Task("Buy birthday card", getFutureRandomDate(), true ));
project2.addTask( new Task("Organize the party", getFutureRandomDate(), false ));
projectTaskService.saveProject(project2);
Project project3 = new Project("Business Report",
"Important phase in our sales strategy",
"Renegotiate the principal account with the enrolled customer.");
Date x = getFutureRandomDate();
Date y = getFutureRandomDate(x);
Date z = getFutureRandomDate(y);
project3.addTask( new Task("Set up a meeting", x, true ));
project3.addTask( new Task("Hold the meeting", y, false ));
project3.addTask( new Task("Write the report", z, false ));
project3.addTask( new Task("Furnish report to the boss", getFutureRandomDate(z), false ));
projectTaskService.saveProject(project3);
}
}