org.cleverbus.admin.web.StopController.java Source code

Java tutorial

Introduction

Here is the source code for org.cleverbus.admin.web.StopController.java

Source

/*
 * Copyright (C) 2015
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.cleverbus.admin.web;

import org.cleverbus.api.entity.MsgStateEnum;
import org.cleverbus.core.common.asynch.stop.StopService;
import org.cleverbus.spi.msg.MessageService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Controller for stopping ESB.
 *
 * @author <a href="mailto:petr.juza@cleverlance.com">Petr Juza</a>
 * @since 0.4
 */
@Controller
public class StopController {

    private static final String VIEW_NAME = "stop";

    @Autowired
    private StopService stopService;

    @Autowired
    private MessageService messageService;

    @RequestMapping("/" + VIEW_NAME)
    @SuppressWarnings("unchecked")
    public String getStoppingState(ModelMap model) {
        addStoppingState(model);

        if (stopService.isStopping()) {
            addMsgCounts(model);
        }

        return VIEW_NAME;
    }

    @RequestMapping(value = "/stop", method = RequestMethod.POST)
    public String stopEsb(ModelMap model) {
        stopService.stop();

        addStoppingState(model);
        addMsgCounts(model);

        return VIEW_NAME;
    }

    @RequestMapping(value = "/cancelStop", method = RequestMethod.POST)
    public String cancelStopEsb(ModelMap model) {
        stopService.cancelStopping();

        addStoppingState(model);

        return VIEW_NAME;
    }

    private void addStoppingState(ModelMap model) {
        model.addAttribute("isStopping", stopService.isStopping());
    }

    private void addMsgCounts(ModelMap model) {
        model.addAttribute("processingCount", messageService.getCountMessages(MsgStateEnum.PROCESSING, null));
        model.addAttribute("waitingForResCount",
                messageService.getCountMessages(MsgStateEnum.WAITING_FOR_RES, null));
    }
}