/** @return {@code true} if this schedule was triggered. */ public boolean trigger() { Date triggerDate = getTriggerDate(); if (triggerDate == null || !triggerDate.before(new Date())) { return false; } LOGGER.debug("Triggering [{}] schedule", getLabel()); try { beginWrites(); for (Object draftObject : Query.fromAll() .where("com.psddev.cms.db.Draft/schedule = ?", this) .master() .noCache() .resolveInvisible() .selectAll()) { if (!(draftObject instanceof Draft)) { continue; } Draft draft = (Draft) draftObject; Object object = draft.getObject(); LOGGER.debug("Processing [{}] draft in [{}] schedule", draft.getLabel(), getLabel()); if (object != null) { ToolUser triggerUser = getTriggerUser(); if (triggerUser == null) { triggerUser = draft.as(Content.ObjectModification.class).getUpdateUser(); if (triggerUser == null) { triggerUser = draft.getOwner(); } } State state = State.getInstance(object); Content.ObjectModification contentData = state.as(Content.ObjectModification.class); if (!state.isVisible()) { state.getExtras().put(FIRST_TRIGGER_EXTRA, Boolean.TRUE); } contentData.setDraft(false); contentData.setPublishDate(triggerDate); contentData.setPublishUser(triggerUser); state.as(BulkUploadDraft.class).setRunAfterSave(true); Content.Static.publish(object, getTriggerSite(), triggerUser); } draft.delete(); } delete(); commitWrites(); return true; } finally { endWrites(); } }