Example usage for com.liferay.portal.kernel.scheduler.messaging SchedulerResponse getMessage

List of usage examples for com.liferay.portal.kernel.scheduler.messaging SchedulerResponse getMessage

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.scheduler.messaging SchedulerResponse getMessage.

Prototype

public Message getMessage() 

Source Link

Usage

From source file:com.liferay.exportimport.internal.upgrade.v1_0_0.UpgradePublisherRequest.java

License:Open Source License

protected void updateScheduledLocalPublication(SchedulerResponse schedulerResponse) throws PortalException {

    Message message = schedulerResponse.getMessage();

    LayoutsLocalPublisherRequest publisherRequest = (LayoutsLocalPublisherRequest) message.getPayload();

    User user = _userLocalService.getUser(publisherRequest.getUserId());

    Map<String, Serializable> publishLayoutLocalSettingsMap = ExportImportConfigurationSettingsMapFactory
            .buildPublishLayoutLocalSettingsMap(user, publisherRequest.getSourceGroupId(),
                    publisherRequest.getTargetGroupId(), publisherRequest.isPrivateLayout(),
                    ExportImportHelperUtil.getLayoutIds(publisherRequest.getLayoutIdMap()),
                    publisherRequest.getParameterMap());

    ExportImportConfiguration exportImportConfiguration = _exportImportConfigurationLocalService
            .addDraftExportImportConfiguration(user.getUserId(), schedulerResponse.getDescription(),
                    ExportImportConfigurationConstants.TYPE_SCHEDULED_PUBLISH_LAYOUT_LOCAL,
                    publishLayoutLocalSettingsMap);

    _schedulerEngineHelper.schedule(schedulerResponse.getTrigger(), StorageType.PERSISTED,
            schedulerResponse.getDescription(), DestinationNames.LAYOUTS_LOCAL_PUBLISHER,
            exportImportConfiguration.getExportImportConfigurationId(), 0);
}

From source file:com.liferay.exportimport.internal.upgrade.v1_0_0.UpgradePublisherRequest.java

License:Open Source License

protected void updateScheduleRemotePublication(SchedulerResponse schedulerResponse) throws PortalException {

    Message message = schedulerResponse.getMessage();

    LayoutsRemotePublisherRequest publisherRequest = (LayoutsRemotePublisherRequest) message.getPayload();

    User user = _userLocalService.getUser(publisherRequest.getUserId());

    Map<String, Serializable> publishLayoutRemoteSettingsMap = ExportImportConfigurationSettingsMapFactory
            .buildPublishLayoutRemoteSettingsMap(user, publisherRequest.getSourceGroupId(),
                    publisherRequest.isPrivateLayout(), publisherRequest.getLayoutIdMap(),
                    publisherRequest.getParameterMap(), publisherRequest.getRemoteAddress(),
                    publisherRequest.getRemotePort(), publisherRequest.getRemotePathContext(),
                    publisherRequest.isSecureConnection(), publisherRequest.getRemoteGroupId(),
                    publisherRequest.isRemotePrivateLayout());

    ExportImportConfiguration exportImportConfiguration = _exportImportConfigurationLocalService
            .addDraftExportImportConfiguration(user.getUserId(), schedulerResponse.getDescription(),
                    ExportImportConfigurationConstants.TYPE_SCHEDULED_PUBLISH_LAYOUT_REMOTE,
                    publishLayoutRemoteSettingsMap);

    _schedulerEngineHelper.schedule(schedulerResponse.getTrigger(), StorageType.PERSISTED,
            schedulerResponse.getDescription(), DestinationNames.LAYOUTS_REMOTE_PUBLISHER,
            exportImportConfiguration.getExportImportConfigurationId(), 0);
}

From source file:de.uhh.l2g.plugins.util.PortletScheduler.java

License:Open Source License

/**
 * Crowds this Scheduler with ResponseMessage Data Unique iff (jobName ==
 * schedulerClassName == groupName && storageType == STOR)
 * //www.ja va2s  .  co m
 * @return PortletScheduler
 */
public PortletScheduler assembleMessageFromResponses() {

    // These should be unique if everything is configured by liferay default
    try {
        List<SchedulerResponse> scheduledJobs = SchedulerEngineHelperUtil.getScheduledJobs();
        for (SchedulerResponse resp : scheduledJobs) {
            if (resp.getJobName().equalsIgnoreCase(this.schedulerClassName)) {
                this.setJobName(resp.getJobName());
                this.setGroupName(resp.getGroupName());
                this.setStorageType(resp.getStorageType());
                this.setDescription(resp.getDescription());
                this.setMessage(resp.getMessage());
                this.setTrigger(resp.getTrigger());

                if (this.getMessage() == null)
                    this.setMessage(new Message());
                LOG.debug("Job found. Copy Portlet Information: " + this.getMessage().toString());
                Map<String, Object> map = this.getMessage().getValues();

                // Fill this message with portlet specific data
                if (map.containsKey(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME))
                    this.getMessage().put(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME,
                            map.get(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME).toString());
                if (map.containsKey(SchedulerEngine.PORTLET_ID))
                    this.getMessage().put(SchedulerEngine.PORTLET_ID,
                            map.get(SchedulerEngine.PORTLET_ID).toString());
                if (map.containsKey(SchedulerEngine.MESSAGE_LISTENER_UUID))
                    this.getMessage().put(SchedulerEngine.MESSAGE_LISTENER_UUID,
                            map.get(SchedulerEngine.MESSAGE_LISTENER_UUID).toString());

                LOG.debug(this.getMessage().get(SchedulerEngine.DESTINATION_NAME) + " "
                        + this.getMessage().getDestinationName() + " "
                        + this.getMessage().getValues().get(SchedulerEngine.DESTINATION_NAME) + " "
                        + this.getMessage().getDestinationName());

                if (map.containsKey("MESSAGE_LISTENER_CLASS_NAME") && map.get("DESTINATION_NAME") != null) {
                    this.destination = map.get("DESTINATION_NAME").toString();
                    // this.getMessage().put(SchedulerEngine.DESTINATION_NAME,
                    // map.get("DESTINATION_NAME").toString());
                    this.getMessage().getValues().put(SchedulerEngine.DESTINATION_NAME,
                            map.get("DESTINATION_NAME").toString());
                    this.getMessage().setDestinationName(
                            this.getMessage().getValues().get(SchedulerEngine.DESTINATION_NAME).toString());
                } else {
                    LOG.debug("Destination not available yet. Setting to " + DEST);
                    this.destination = DEST;
                    // this.getMessage().put(SchedulerEngine.DESTINATION_NAME,
                    // DEST);
                    this.getMessage().getValues().put(SchedulerEngine.DESTINATION_NAME, DEST);
                    this.getMessage().setDestinationName(
                            this.getMessage().getValues().get(SchedulerEngine.DESTINATION_NAME).toString());
                }
                // new ReceiverKey(this.getJobName(), this.getGroupName())
                this.getMessage().put(SchedulerEngine.RECEIVER_KEY,
                        GetterUtil.getString(new ReceiverKey(this.getJobName(), this.getGroupName())));
                LOG.debug("ReceiverKey: " + new ReceiverKey(this.getJobName(), this.getGroupName()));
                TriggerState state = SchedulerEngineHelperUtil.getJobState(this.getJobName(),
                        this.getGroupName(), this.getStorageType());
                LOG.debug(state);
            }
        }
    } catch (SchedulerException e) {
        LOG.warn(e);
    }
    return this;
}

From source file:de.uhh.l2g.plugins.util.PortletScheduler.java

License:Open Source License

/**
 * Unschedules Quartz Job but keeps SchedulerEntry in Memory (Scheduler will
 * be not correctly (re)deployed if in state UNSCHEDULED
 * /* w  w  w.  j  av a 2 s .co  m*/
 */
public void unschedule() {
    try {
        List<SchedulerResponse> scheduledJobs = SchedulerEngineHelperUtil.getScheduledJobs();
        for (SchedulerResponse resp : scheduledJobs) {
            if (resp.getJobName().equalsIgnoreCase(this.schedulerClassName)) {

                LOG.info("Stopping :" + resp.toString());
                Map<String, Object> map = resp.getMessage().getValues();

                String portletId = "";
                String listenerName = "";

                if (map.containsKey(SchedulerEngine.PORTLET_ID))
                    portletId = map.get(SchedulerEngine.PORTLET_ID).toString();
                if (map.containsKey(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME))
                    listenerName = map.get(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME).toString();

                LOG.info("Associated to :" + portletId + " " + listenerName + " " + this.destination);

                TriggerState state = SchedulerEngineHelperUtil.getJobState(resp.getJobName(),
                        resp.getGroupName(), resp.getStorageType());

                if (state != (TriggerState.UNSCHEDULED)) {

                    Thread thread = Thread.currentThread();
                    LOG.info("Thread :" + thread.getContextClassLoader() + thread.toString());

                    LOG.info("Unscheduling :" + this.schedulerClassName + " " + resp.getTrigger().toString());
                    SchedulerEngineHelperUtil.unschedule(schedulerEntry, resp.getStorageType());
                    // TODO: Check Workaround
                    // This removes the SchedulerEntry from Liferay's
                    // Scheduler List so it is not started aditionally on
                    // re-deploy
                    // BUT, removing this entry will also destroy our
                    // Trigger (as Quartz unschedule(), removes the Trigger
                    // from QuartzJob
                    this.removeFromEntries();
                } else {
                    LOG.warn("Scheduler could not be unscheduled beacuse it was in state " + state);
                }
            }
        }

    } catch (SchedulerException e) {
        LOG.warn("Failed to unschedule job" + this.schedulerClassName, e);
    }
}

From source file:de.uhh.l2g.plugins.util.PortletScheduler.java

License:Open Source License

/**
 * Deletes the Scheduler thoroughly until server restart!
 * //from w w w .ja v a 2 s  . c o  m
 */
public void delete() {
    try {
        List<SchedulerResponse> scheduledJobs = SchedulerEngineHelperUtil.getScheduledJobs();
        for (SchedulerResponse resp : scheduledJobs) {
            if (resp.getJobName().equalsIgnoreCase(this.schedulerClassName)) {

                LOG.info("Stopping :" + resp.toString());
                Map<String, Object> map = resp.getMessage().getValues();

                String portletId = "";
                String listenerName = "";

                if (map.containsKey(SchedulerEngine.PORTLET_ID))
                    portletId = map.get(SchedulerEngine.PORTLET_ID).toString();
                if (map.containsKey(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME))
                    listenerName = map.get(SchedulerEngine.MESSAGE_LISTENER_CLASS_NAME).toString();

                LOG.info("Associated to :" + portletId + " " + listenerName + " " + this.destination);

                TriggerState state = SchedulerEngineHelperUtil.getJobState(resp.getJobName(),
                        resp.getGroupName(), resp.getStorageType());

                if (state.equals(TriggerState.NORMAL)) {

                    Thread thread = Thread.currentThread();
                    LOG.info("Thread :" + thread.getContextClassLoader() + thread.toString());

                    LOG.info("Unscheduling :" + this.schedulerClassName + " " + resp.getTrigger().toString());
                    SchedulerEngineHelperUtil.delete(schedulerEntry, resp.getStorageType());
                    // This removes the SchedulerEntry from Liferay's
                    // Scheduler List so it is not started aditionally on
                    // re-deploy
                    // Removing this entry will also destroy our Trigger (as
                    // Quartz unschedule(), removes the Trigger from
                    // QuartzJob
                    this.removeFromEntries();
                } else {
                    LOG.warn("Scheduler could not be unscheduled beacuse it was in state " + state);
                }
            }
        }

    } catch (SchedulerException e) {
        LOG.warn("Failed to unschedule job" + this.schedulerClassName, e);
    }
}

From source file:de.uhh.l2g.plugins.util.PortletScheduler.java

License:Open Source License

public static List<PortletScheduler> ListSchedulers() {
    List<PortletScheduler> schedulers = new LinkedList<PortletScheduler>();
    PortletScheduler psch = null;//ww w.  jav a2  s .co m

    try {
        List<SchedulerResponse> scheduledJobs = SchedulerEngineHelperUtil.getScheduledJobs();
        for (SchedulerResponse resp : scheduledJobs) {
            if (resp != null && resp.getJobName().contains(PortletScheduler.class.getPackage().getName())) {
                psch = new PortletScheduler();

                LOG.info(resp.toString());
                psch.setJobName(resp.getJobName());
                psch.setGroupName(resp.getGroupName());
                psch.setStorageType(resp.getStorageType());
                psch.setDescription(resp.getDescription());
                psch.setMessage(resp.getMessage());
                psch.setTrigger(resp.getTrigger());
                TriggerState state = SchedulerEngineHelperUtil.getJobState(resp.getJobName(),
                        resp.getGroupName(), resp.getStorageType());
                schedulers.add(psch);
                LOG.info("SchedulerResponse: " + psch.getJobName());
            }

        }

    } catch (SchedulerException e) {
        LOG.error("Could not retrieve ScheduledJobs");
    }
    return schedulers;
}