package cz.muni.fi.rtc.teacherWorkbench.demo;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.ibm.icu.util.Calendar;
import cz.muni.fi.rtc.teacherWorkbench.importer.ImporterConfigurationImpl;
import cz.muni.fi.rtc.teacherWorkbench.importer.Mailer;
import cz.muni.fi.rtc.teacherWorkbench.importer.PasswordGenerator;
import cz.muni.fi.rtc.teacherWorkbench.importer.PeopleImporter;
import cz.muni.fi.rtc.teacherWorkbench.importer.ProjectImporter;
import cz.muni.fi.rtc.teacherWorkbench.importer.exceptions.ImporterException;
import cz.muni.fi.rtc.teacherWorkbench.model.ImportedPerson;
import cz.muni.fi.rtc.teacherWorkbench.model.ImportedPersonImpl;
import cz.muni.fi.rtc.teacherWorkbench.model.Project;
import cz.muni.fi.rtc.teacherWorkbench.model.ProjectImpl;
/**
* Example of the usage of the Teacher Workbench API
* @author Jan Stastny
*
*/
public class Demo {
private static Log log = LogFactory.getLog(Demo.class);
private static ImporterConfigurationImpl conf;
private static PeopleImporter importer;
// private static ImportedPersonImpl person;
private static Set people = new HashSet();
private static Set projects = new HashSet();
/**
* @param args
*/
public static void main(String[] args) {
conf = new ImporterConfigurationImpl();
conf.setLdapServer("localhost");
conf.setLdapPort(10389);
conf.setLdapAdminDN("uid=admin,ou=system");
conf.setLdapBaseDN("o=localhost");
conf.setLdapAdminPassword("secret");
conf.setLdapGroupJazzUsers("cn=JazzUsers,ou=JazzGroups,o=localhost");
conf.setLdapGroupPeople("ou=people,o=localhost");
conf.setSmtpHost("localhost");
conf.setEmailFromAddress("root@localhost");
// Working gmail configuration
// conf.setSmtpHost("smtp.gmail.com");
// conf.setSmtpTls(true);
// conf.setSmtpPort(587);
// conf.setSmtpUser("honza.stastny@gmail.com");
// conf.setSmtpPassword("password");
// conf.setEmailFromAddress("honza.stastny@gmail.com");
conf.setRtcAddress("https://localhost:9443/jazz");
conf.setRtcAdminUser("jstastny");
conf.setRtcAdminPassword("jstastny");
try {
importer = new PeopleImporter(conf);
} catch (ImporterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long timestamp = Calendar.getInstance().getTimeInMillis();
ImportedPersonImpl person = new ImportedPersonImpl();
person.setFirstName(timestamp + "Krestni");
person.setLastName("Prijmeni");
person.setUID("java-test-" + timestamp);
person.setRawPassword("ahoj");
person.setDescription("Java test user");
person.setEmailAddress("honza@localhost");
people.add(person);
PasswordGenerator.generatePasswordsForPeople(people);
ImportedPersonImpl teacher = new ImportedPersonImpl();
teacher.setUID("jstastny");
addPerson();
sendMail();
ProjectImpl pr = new ProjectImpl();
pr.setName("Java test Project " + timestamp);
pr.setSummary("Project summary");
pr.setDescription("");
pr.setProcessTemplate("cz.muni.fi.pa165.imported.v4");
pr.setMembers(people);
// Add teacher
pr.getMembers().add(teacher);
pr.addRootMember(teacher);
pr.addRoleOfUser(teacher, "vyucujici_PA165");
//Map> roles = new HashMap>();
pr.addRoleOfUser(person, "student_PA165");
projects.add(pr);
createProjects();
}
private static void createProjects() {
try {
ProjectImporter prIm = new ProjectImporter(conf);
prIm.importProjects(projects);
} catch (ImporterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void addPerson() {
//Set people = new HashSet();
//people.add(person);
try {
importer.importUsers(people);
} catch (ImporterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void sendMail() {
String subject = "Email about %%RTCADDRESS%%";
String body = "Your information (%%UID%%): \n\n" +
"UID: %%UID%%\n" +
"First: %%FIRST%%\n" +
"Last: %%LAST%%\n" +
"Email: %%EMAIL%%\n" +
"Password: %%PASS%%\n" +
"\nZdravime. Admini řčžčřžíoěáýščáířžýšěčq";
try {
Mailer mailer = new Mailer(conf);
mailer.sendEmailAnnouncement(subject, body, people);
} catch (ImporterException e) {
e.printStackTrace();
}
}
}