Subversion Repositories bacoAlunos

Rev

Rev 1778 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.web.controllers.configuration;

import com.owlike.genson.Genson;
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.JobServiceTask;
import pt.estgp.estgweb.domain.JobServiceTaskImpl;
import pt.estgp.estgweb.domain.JobServiceTaskScheduler;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * Created by jorgemachado on 23/11/15.
 */

public class SchedullerTasksJson extends HttpServlet
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(SchedullerTasksJson.class);


        public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        try {
            process(request,response);
        } catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e) {
            response.sendError(500);
            logger.error(e,e);
        }
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        try {
            process(request,response);
        } catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e) {
            response.sendError(500);
            logger.error(e, e);
        }
    }

    private void process(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, 1.5.0/docs/api/java/io/IOException.html">IOException, 1.5.0/docs/api/java/lang/NoSuchMethodException.html">NoSuchMethodException, 1.5.0/docs/api/java/lang/reflect/InvocationTargetException.html">InvocationTargetException, 1.5.0/docs/api/java/lang/IllegalAccessException.html">IllegalAccessException {
        1.5.0/docs/api/java/lang/String.html">String service = request.getParameter("service");

        this.getClass().getMethod(service,HttpServletRequest.class,HttpServletResponse.class)
                .invoke(this,request,response);
    }

    public void loadLog(HttpServletRequest request,HttpServletResponse response) throws 1.5.0/docs/api/java/io/IOException.html">IOException, IncompatibleFilterException, InvalidFilterException, ClassNotIFilterException, FilterRetrieveException, ServiceManagerException, InvalidFilterExpressionException {

        if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("ci"))
        {
            response.sendError(403);
            return;
        }

        1.5.0/docs/api/java/lang/String.html">String id = request.getParameter("id");
        IServiceManager sm = ServiceManager.getInstance();
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{};
        5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{1.5.0/docs/api/java/lang/Long.html">Long.parseLong(id)};

        try
        {
            JobServiceTaskImpl j = (JobServiceTaskImpl) sm.execute(RequestUtils.getRequester(request, response), "LoadJobServiceTask", args, names);

            Genson genson = new Genson.Builder()
                    .exclude(5+0%2Fdocs%2Fapi+Object">Object.class)
                    .include(1.5.0/docs/api/java/lang/Boolean.html">Boolean.class)
                    .include(1.5.0/docs/api/java/lang/Integer.html">Integer.class)
                    .include(1.5.0/docs/api/java/lang/Long.html">Long.class)
                    .include(1.5.0/docs/api/java/lang/Double.html">Double.class)
                    .include(1.5.0/docs/api/java/lang/Float.html">Float.class)
                    .exclude("parameter") //metodo getParameter tem de ser evitado porque recebe parametros nao é um getter
                    .include("serviceStartDateFormated", JobServiceTask.class)
                    .include("serviceLastUpdateDateFormated", JobServiceTask.class)
                    .include("serviceFinishDateFormated", JobServiceTask.class)
                    .include("status", JobServiceTask.class)
                    .include("progress",JobServiceTask.class)
                    .create();

            1.5.0/docs/api/java/lang/String.html">String json = genson.serialize(j);
            response.setContentType("application/json");
            response.setCharacterEncoding("ISO-8859-1");
            response.setContentLength(json.length());
            response.getOutputStream().print(json);

        }
        catch (FilterChainFailedException e)
        {
            logger.error(e,e);
            response.sendError(500);
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e,e);
            response.sendError(500);
        }
    }



    public void loadTasks(HttpServletRequest request,HttpServletResponse response) throws 1.5.0/docs/api/java/io/IOException.html">IOException, IncompatibleFilterException, InvalidFilterException, ClassNotIFilterException, FilterRetrieveException, ServiceManagerException, InvalidFilterExpressionException {

        if(!UserSessionProxy.loadUserSessionFromRequest(request).getUser().isAdmin() && !UserSessionProxy.loadUserSessionFromRequest(request).getUser().hasRole("ci"))
        {
            response.sendError(403);
            return;
        }


        IServiceManager sm = ServiceManager.getInstance();
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{};
        5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{};

        try
        {
            List<JobServiceTaskScheduler> tasks = (List<JobServiceTaskScheduler>) sm.execute(RequestUtils.getRequester(request, response), "LoadJobServiceTaskSchedullers", args, names);


            Genson genson = new Genson.Builder()
                    .exclude(5+0%2Fdocs%2Fapi+Object">Object.class)
                    .include(1.5.0/docs/api/java/lang/Boolean.html">Boolean.class)
                    .include(1.5.0/docs/api/java/lang/Integer.html">Integer.class)
                    .include(1.5.0/docs/api/java/lang/Long.html">Long.class)
                    .include(1.5.0/docs/api/java/lang/Double.html">Double.class)
                    .include(1.5.0/docs/api/java/lang/Float.html">Float.class)
                    .exclude("parameter") //metodo getParameter tem de ser evitado porque recebe parametros nao é um getter
                    .include("serviceStartDateFormated", JobServiceTask.class)
                    .include("serviceLastUpdateDateFormated", JobServiceTask.class)
                    .include("serviceFinishDateFormated", JobServiceTask.class)
                    .include("status", JobServiceTask.class)
                    .include("progress",JobServiceTask.class)
                    .include("lastJobServiceTask",JobServiceTaskScheduler.class)
                    .create();

            1.5.0/docs/api/java/lang/String.html">String json = genson.serialize(tasks);

            response.setContentType("application/json");
            response.setCharacterEncoding("ISO-8859-1");
            response.setContentLength(json.length());
            response.getOutputStream().print(json);

        }
        catch (FilterChainFailedException e)
        {
            logger.error(e,e);
            response.sendError(500);
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e,e);
            response.sendError(500);
        }
    }
    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args2) throws IncompatibleFilterException, InvalidFilterException, ClassNotIFilterException, FilterRetrieveException, ServiceManagerException, InvalidFilterExpressionException {
        1.5.0/docs/api/java/lang/String.html">String id = "44365";
        IServiceManager sm = ServiceManager.getInstance();
        1.5.0/docs/api/java/lang/String.html">String[] names = new 1.5.0/docs/api/java/lang/String.html">String[]{};
        5+0%2Fdocs%2Fapi+Object">Object[] args = new 5+0%2Fdocs%2Fapi+Object">Object[]{1.5.0/docs/api/java/lang/Long.html">Long.parseLong(id)};

        try
        {
            AbstractDao.getCurrentSession().beginTransaction();
            JobServiceTaskImpl j = (JobServiceTaskImpl) DaoFactory.getJobServiceTaskDaoImpl().get(new 1.5.0/docs/api/java/lang/Long.html">Long(1));

            AbstractDao.getCurrentSession().getTransaction().commit();

            Genson genson = new Genson.Builder()
                    .exclude(5+0%2Fdocs%2Fapi+Object">Object.class)
                    .include(1.5.0/docs/api/java/lang/Boolean.html">Boolean.class)
                    .include(1.5.0/docs/api/java/lang/Integer.html">Integer.class)
                    .include(1.5.0/docs/api/java/lang/Long.html">Long.class)
                    .include(1.5.0/docs/api/java/lang/Double.html">Double.class)
                    .include(1.5.0/docs/api/java/lang/Float.html">Float.class)
                    .exclude("parameter") //metodo getParameter tem de ser evitado porque recebe parametros nao é um getter
                    .include("serviceStartDate", JobServiceTask.class)
                    .include("serviceLastUpdateDate", JobServiceTask.class)
                    .include("serviceFinishDate", JobServiceTask.class)
                    .include("status", JobServiceTask.class)
                    .include("progress",JobServiceTask.class)
                    .create();

            1.5.0/docs/api/java/lang/String.html">String json = genson.serialize(j);

            1.5.0/docs/api/java/lang/System.html">System.out.println(json);
        }
        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
        {
            logger.error(e,e);

        }
    }
}