package io.trygvis; import io.trygvis.model.*; import org.hibernate.dialect.*; import org.quartz.*; import org.quartz.impl.*; import org.quartz.impl.triggers.*; import org.slf4j.*; import org.slf4j.bridge.*; import org.springframework.beans.factory.annotation.*; import org.springframework.context.support.*; import org.springframework.stereotype.*; import org.springframework.transaction.annotation.*; import javax.persistence.*; import java.text.*; import java.util.*; import static java.lang.System.*; @Component @Transactional public class Main { private static final Logger log = LoggerFactory.getLogger(Main.class); public static void main(String[] args) throws Exception { SLF4JBridgeHandler.install(); String username = getProperty("user.name"); setProperty("database.url", "jdbc:postgresql://localhost/" + username); setProperty("database.username", username); setProperty("database.password", username); setProperty("hibernate.showSql", "true"); setProperty("hibernate.hbm2ddl.auto", "validate"); // create setProperty("hibernate.dialect", PostgreSQL82Dialect.class.getName()); log.info("Starting context"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); context.start(); log.info("Started context"); context.getBean(Main.class).run(); Thread.sleep(1000 * 1000); // log.info("Sleeping"); // Thread.sleep(10 * 1000); log.info("Stopping context"); context.stop(); log.info("Stopped context"); exit(0); } @PersistenceContext private EntityManager entityManager; @Autowired private Scheduler scheduler; public void run() throws Exception { log.info("Main.run"); JobKey jobKey = JobKey.jobKey("create-article"); boolean b = scheduler.checkExists(jobKey); log.info("checkExists: {}", b); if(!b) { JobDetailImpl jobDetail = new JobDetailImpl(); jobDetail.setKey(jobKey); jobDetail.setDurability(true); jobDetail.setJobClass(MyJob.class); scheduler.addJob(jobDetail, true); } TriggerKey triggerKey = TriggerKey.triggerKey("my-trigger"); boolean b1 = scheduler.checkExists(triggerKey); log.info("checkExists: {}", b1); if(!b1) { CronTriggerImpl trigger = new CronTriggerImpl(); trigger.setName("my-trigger"); trigger.setJobKey(jobKey); trigger.setCronExpression("0/10 * * * * ?"); scheduler.scheduleJob(trigger); } // Article article = new Article(new Date(), null, "title", "body"); // entityManager.persist(article); } }