Package org.apache.axis2.transport.http

Source Code of org.apache.axis2.transport.http.ListingAgent

/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.axis2.transport.http;

import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.deployment.util.PhasesInfo;
import org.apache.axis2.description.OperationDescription;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.description.ParameterImpl;
import org.apache.axis2.description.ServiceDescription;
import org.apache.axis2.engine.AxisConfigurationImpl;
import org.apache.axis2.i18n.Messages;
import org.apache.axis2.transport.http.server.AdminAppException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.namespace.QName;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;

public class ListingAgent {

    /**
     * Field LIST_MULTIPLE_SERVICE_JSP_NAME
     */
    private static final String LIST_MULTIPLE_SERVICE_JSP_NAME = "listServices.jsp";

    private static final String LIST_SERVICE_GROUP_JSP = "ListServiceGroup.jsp";

    private static final String LIST_SRVICES_JSP_NAME = "listService.jsp";

    private static final String SELECT_SERVICE_JSP_NAME = "SelectService.jsp";

    private static final String REMOVE_SERVICE_JSP_NAME = "RemoveService.jsp";

    public static final String ADMIN_JSP_NAME = "admin.jsp";

    private static final String LIST_AVAILABLE_MODULES_JSP_NAME = "listModules.jsp";

    private static final String LIST_GLOABLLY_ENGAGED_MODULES_JSP_NAME = "globalModules.jsp";

    private static final String LIST_PHASES_JSP_NAME = "viewphases.jsp";

    private static final String ENGAGING_MODULE_GLOBALLY_JSP_NAME = "engagingglobally.jsp";

    private static final String ENGAGING_MODULE_TO_SERVICE_JSP_NAME = "engagingtoaservice.jsp";
    private static final String ENGAGING_MODULE_TO_SERVICE_GROUP_JSP_NAME = "EngageToServiceGroup.jsp";

    /**
     * Field LIST_SINGLE_SERVICE_JSP_NAME
     */
    private static final String LIST_SINGLE_SERVICE_JSP_NAME = "listSingleService.jsp";
    private static final String VIEW_GLOBAL_HANDLERS_JSP_NAME = "ViewGlobalHandlers.jsp";
    private static final String VIEW_SERVICE_HANDLERS_JSP_NAME = "ViewServiceHandlers.jsp";

    private static final String ENGAGE_TO_OPERATION_JSP_NAME = "enaggingtoanopeartion.jsp";
    private static final String SERVICE_PARA_EDIT_JSP_NAME = "ServiceParaEdit.jsp";

    public ListingAgent(ConfigurationContext configContext) {
        this.configContext = configContext;
    }

    private ConfigurationContext configContext;
    /**
     * Field allowListServices
     */
    private final boolean allowListServices = true;

    /**
     * Field allowListSingleService
     */
    private final boolean allowListSingleService = true;
    private OutputStream out = null;

    public void handle(HttpServletRequest httpServletRequest,
                       HttpServletResponse httpServletResponse,
                       OutputStream out)
            throws IOException,Exception {
        this.out = out;
        String filePart = httpServletRequest.getRequestURL().toString();
        if ((filePart != null) &&
                filePart.endsWith(Constants.ADMIN_LISTSERVICES)) {
            listAdminServices(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.LIST_MODULES)) {
            listModules(httpServletRequest, httpServletResponse);
            return;
        } else if (
                (filePart != null) &&
                        filePart.endsWith(Constants.LIST_GLOABLLY_ENGAGED_MODULES)) {
            listGloballyModules(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.LIST_PHASES)) {
            listPhases(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.ENGAGE_GLOBAL_MODULE)) {
            engageModulesGlobally(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.ENGAGE_MODULE_TO_SERVICE)) {
            engageModulesToService(httpServletRequest, httpServletResponse);
            return;
        else if ((filePart != null) &&
                filePart.endsWith(Constants.ENGAGE_MODULE_TO_SERVICE_GROUP)) {
            engageModulesToServiceGroup(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.ADMIN_LOGIN)) {
            adminLogging(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.VIEW_GLOBAL_HANDLERS)) {
            viewGlobalHandlers(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.SELECT_SERVICE)) {
            selectService(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.VIEW_SERVICE_HANDLERS)) {
            viewServiceHandlers(httpServletRequest, httpServletResponse);
            return;
        } else if (
                (filePart != null) &&
                        filePart.endsWith(Constants.LIST_SERVICE_FOR_MODULE_ENGAMNET)) {
            lsitServiceformodules(httpServletRequest, httpServletResponse);
            return;
        } else if (
                (filePart != null) &&
                        filePart.endsWith(Constants.LIST_OPERATIONS_FOR_THE_SERVICE)) {
            engageModulesToOpeartion(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.REMOVE_SERVICE)) {
            removeService(httpServletRequest, httpServletResponse);
            return;
        }else if ((filePart != null) &&
                filePart.endsWith(Constants.SELECT_SERVICE_FOR_PARA_EDIT)) {
            lsitServiceforParameterChanged(httpServletRequest, httpServletResponse);
            return;
        } else if ((filePart != null) &&
                filePart.endsWith(Constants.EDIR_SERVICE_PARA)) {
            chageParameters(httpServletRequest, httpServletResponse);
            return;
        }else if ((filePart != null) &&
                filePart.endsWith(Constants.LIST_SERVIC_GROUPS)) {
            listServiceGroups(httpServletRequest, httpServletResponse);
            return;
        }else if ((filePart != null) &&
                filePart.endsWith(Constants.LIST_CONTEXTS)) {
            listContexts(httpServletRequest, httpServletResponse);
            return;
        else if ((filePart != null) &&
                filePart.endsWith(Constants.LOGOUT)) {
            logout(httpServletRequest, httpServletResponse);
            return;
        }

        if ((filePart != null) &&
                filePart.endsWith(Constants.LISTSERVICES)) {
            listServices(httpServletRequest, httpServletResponse);
            return;
        } else {
            if (allowListSingleService) {
                listService(httpServletRequest, httpServletResponse, filePart);
                return;
            }
        }
    }

    /**
     * Method listServices
     *
     * @param req
     * @param res
     * @throws IOException
     */
    private void listServices(HttpServletRequest req, HttpServletResponse res) throws IOException {
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        req.getSession().setAttribute(Constants.ERROR_SERVICE_MAP,
                configContext.getAxisConfiguration().getFaultyServices());
        res.sendRedirect(LIST_MULTIPLE_SERVICE_JSP_NAME);
    }

    private void listServiceGroups(HttpServletRequest req, HttpServletResponse res) throws IOException {
        Iterator serviceGroups = configContext.getAxisConfiguration().getServiceGroups();
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        req.getSession().setAttribute(Constants.SERVICE_GROUP_MAP, serviceGroups);
        res.sendRedirect(LIST_SERVICE_GROUP_JSP);
    }


    private void listContexts(HttpServletRequest req, HttpServletResponse res) throws IOException {
        req.getSession().setAttribute(Constants.CONFIG_CONTEXT, configContext);
        res.sendRedirect("ViewContexts.jsp");
    }

     private void logout(HttpServletRequest req, HttpServletResponse res) throws IOException {
        req.getSession().invalidate();
        res.sendRedirect("index.jsp");
    }
    /**
     * @param req
     * @param res
     * @throws IOException
     */
    private void listAdminServices(HttpServletRequest req,
                                   HttpServletResponse res)
            throws IOException {
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        req.getSession().setAttribute(Constants.ERROR_SERVICE_MAP,
                configContext.getAxisConfiguration().getFaultyServices());
        res.sendRedirect(LIST_SRVICES_JSP_NAME);
    }

    private void selectService(HttpServletRequest req,
                               HttpServletResponse res)
            throws IOException {
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "VIEW");
        res.sendRedirect(SELECT_SERVICE_JSP_NAME);
    }

    private void adminLogging(HttpServletRequest req, HttpServletResponse res) throws AdminAppException, IOException {
        String username = req.getParameter("userName");
        String password = req.getParameter("password");
        if (username == null
                || password == null
                || username.trim().equals("")
                || password.trim().equals("")) {
            throw new AdminAppException(Messages.getMessage("invaliduser"));
        }
        String adminUserName =
                (String) configContext.getAxisConfiguration()
                        .getParameter(Constants.USER_NAME)
                        .getValue();
        String adminPassword =
                (String) configContext.getAxisConfiguration()
                        .getParameter(Constants.PASSWORD)
                        .getValue();
        if (username != null
                && password != null
                && username.equals(adminUserName)
                && password.equals(adminPassword)) {
            req.getSession().setAttribute(Constants.LOGGED, "Yes");
            res.sendRedirect(ADMIN_JSP_NAME);
        } else {
//            res.setContentType("text/css");
//            PrintWriter out_writer = new PrintWriter(out);
//            out_writer.println("Invalid user name password");
//            out_writer.flush();
//            out_writer.close();
            throw new AdminAppException(Messages.getMessage("invaliduser"));
        }
    }

    private void listModules(HttpServletRequest req, HttpServletResponse res) throws IOException {
        HashMap modules =
                ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getModules();
        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
        req.getSession().setAttribute(Constants.ERROR_MODULE_MAP,
                configContext.getAxisConfiguration().getFaultyModules());
        res.sendRedirect(LIST_AVAILABLE_MODULES_JSP_NAME);
    }

    private void engageModulesGlobally(HttpServletRequest req,
                                       HttpServletResponse res)
            throws IOException {
        HashMap modules =
                ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getModules();
        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
        String moduleName = req.getParameter("modules");
        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        if (moduleName != null) {
            try {
                configContext.getAxisConfiguration().engageModule(
                        new QName(moduleName));
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        moduleName + " module engaged globally Successfully");
            } catch (AxisFault axisFault) {
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        axisFault.getMessage());
            }
        }
        req.getSession().setAttribute("modules", null);
        res.sendRedirect(ENGAGING_MODULE_GLOBALLY_JSP_NAME);
    }

    private void engageModulesToOpeartion(HttpServletRequest req,
                                          HttpServletResponse res)
            throws IOException {
        HashMap modules =
                ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getModules();
        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
        String moduleName = req.getParameter("modules");

        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        req.getSession().setAttribute("modules", null);

        String serviceName = req.getParameter("service");
        if (serviceName != null) {
            req.getSession().setAttribute("service", serviceName);
        } else {
            serviceName = (String) req.getSession().getAttribute("service");
        }
        req.getSession().setAttribute(Constants.OPEARTION_MAP,
                configContext
                        .getAxisConfiguration()
                        .getService(serviceName)
                        .getOperations());
        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        String operationName = req.getParameter("operation");
        if (serviceName != null && moduleName != null && operationName != null) {
            try {
                OperationDescription od =
                        configContext.getAxisConfiguration().getService(
                                serviceName)
                                .getOperation(new QName(operationName));
                od.engageModule(
                        configContext.getAxisConfiguration().getModule(
                                new QName(moduleName)));
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        moduleName +
                                " module engaged to the operation Successfully");
            } catch (AxisFault axisFault) {
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        axisFault.getMessage());
            }
        }
        req.getSession().setAttribute("operation", null);
        res.sendRedirect(ENGAGE_TO_OPERATION_JSP_NAME);
    }



    private void engageModulesToServiceGroup(HttpServletRequest req,
                                        HttpServletResponse res)
            throws IOException {
        HashMap modules =
                ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getModules();
        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
        Iterator services = configContext.getAxisConfiguration().getServiceGroups();
        req.getSession().setAttribute(Constants.SERVICE_GROUP_MAP, services);
        String moduleName = req.getParameter("modules");
        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        req.getSession().setAttribute("modules", null);
        String serviceName = req.getParameter("service");
        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        if (serviceName != null && moduleName != null) {
            try {

                configContext.getAxisConfiguration().getServiceGroup(
                        serviceName)
                        .engageModuleToGroup(new QName(moduleName));
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        moduleName +
                                " module engaged to the serviceGroup Successfully");
            } catch (AxisFault axisFault) {
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        axisFault.getMessage());
            }
        }
        req.getSession().setAttribute("service", null);
        res.sendRedirect(ENGAGING_MODULE_TO_SERVICE_GROUP_JSP_NAME);
    }

    private void engageModulesToService(HttpServletRequest req,
                                        HttpServletResponse res)
            throws IOException {
        HashMap modules =
                ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getModules();
        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        String moduleName = req.getParameter("modules");
        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        req.getSession().setAttribute("modules", null);
        String serviceName = req.getParameter("service");
        req.getSession().setAttribute(Constants.ENGAGE_STATUS, null);
        if (serviceName != null && moduleName != null) {
            try {

                configContext.getAxisConfiguration().getService(
                        serviceName)
                        .engageModule(
                                configContext.getAxisConfiguration().getModule(
                                        new QName(moduleName)),configContext.getAxisConfiguration());
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        moduleName +
                                " module engaged to the service Successfully");
            } catch (AxisFault axisFault) {
                req.getSession().setAttribute(Constants.ENGAGE_STATUS,
                        axisFault.getMessage());
            }
        }
        req.getSession().setAttribute("service", null);
        res.sendRedirect(ENGAGING_MODULE_TO_SERVICE_JSP_NAME);
    }

    private void listGloballyModules(HttpServletRequest req,
                                     HttpServletResponse res)
            throws IOException {
        Collection modules =
                ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getEngadgedModules();
        req.getSession().setAttribute(Constants.MODULE_MAP, modules);
        res.sendRedirect(LIST_GLOABLLY_ENGAGED_MODULES_JSP_NAME);
    }

    private void lsitServiceformodules(HttpServletRequest req,
                                       HttpServletResponse res)
            throws IOException {
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "MODULE");
        res.sendRedirect(SELECT_SERVICE_JSP_NAME);
    }

    private void lsitServiceforParameterChanged(HttpServletRequest req,
                                                HttpServletResponse res)
            throws IOException {
        HashMap services = configContext.getAxisConfiguration().getServices();
        req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        req.getSession().setAttribute(Constants.SELECT_SERVICE_TYPE, "SERVICE_PARAMETER");
        res.sendRedirect(SELECT_SERVICE_JSP_NAME);
    }



    private void chageParameters(HttpServletRequest req,
                                 HttpServletResponse res)
            throws IOException {
        if(req.getParameter("changePara")!=null){
            String serviceName = req.getParameter("service");
            ServiceDescription service =  configContext.getAxisConfiguration().
                    getService(serviceName);
            if(service !=null){
                ArrayList service_para = service.getParameters();
                for (int i = 0; i < service_para.size(); i++) {
                    Parameter parameter = (Parameter) service_para.get(i);
                    String para =  req.getParameter(serviceName + "_" + parameter.getName());
                    service.addParameter(new ParameterImpl(parameter.getName(),para));
                }
                HashMap operation = service.getOperations();
                Collection op_col = operation.values();
                for (Iterator iterator = op_col.iterator(); iterator.hasNext();) {
                    OperationDescription operationDescription =
                            (OperationDescription) iterator.next();
                    String op_name = operationDescription.getName().getLocalPart();
                    ArrayList operation_para = operationDescription.getParameters();
                    for (int i = 0; i < operation_para.size(); i++) {
                        Parameter parameter = (Parameter) operation_para.get(i);
                        String para =  req.getParameter(op_name + "_" + parameter.getName());
                        operationDescription.addParameter(
                                new ParameterImpl(parameter.getName(),para));
                    }
                }
            }
            res.setContentType("text/css");
            PrintWriter out_writer = new PrintWriter(out);
            out_writer.println("Parameters  changed Successfully");
            out_writer.flush();
            out_writer.close();
            req.getSession().removeAttribute(Constants.SERVICE);
            return;

        }   else {
            String service = req.getParameter("service");
            if (service != null) {
                req.getSession().setAttribute(Constants.SERVICE,
                        configContext.getAxisConfiguration().getService(
                                service));
            }
        }
        res.sendRedirect(SERVICE_PARA_EDIT_JSP_NAME);
    }

    private void removeService(HttpServletRequest req,
                               HttpServletResponse res)
            throws IOException {
        if (req.getParameter("submit") != null) {
            String serviceName = req.getParameter("service");
            String turnoff = req.getParameter("turnoff") ;
//            String remove = req.getParameter("remove");
            if(serviceName !=null){
//                if (remove !=null){
//                    ServiceDescription service =  configContext.getAxisConfiguration().
//                            getService(new QName(serviceName));
//                    if(service != null ){
//                        File servicefile = new File(service.getFileName());
//                        if(servicefile.exists()){
//                            configContext.getAxisConfiguration().removeService(
//                                    new QName(serviceName));
//                            servicefile.delete();
//                        }
//
//                    }
//                }
                if(turnoff !=null){
                    configContext.getAxisConfiguration().removeService(serviceName);
                    res.setContentType("text/css");
                    PrintWriter out_writer = new PrintWriter(out);
                    out_writer.println("Service removed from the system Successfully");
                    out_writer.flush();
                    out_writer.close();
                    return;
                }
            }

        } else {
            HashMap services = configContext.getAxisConfiguration().getServices();
            req.getSession().setAttribute(Constants.SERVICE_MAP, services);
        }
        res.sendRedirect(REMOVE_SERVICE_JSP_NAME);
    }

    private void viewGlobalHandlers(HttpServletRequest req,
                                    HttpServletResponse res)
            throws IOException {
        req.getSession().setAttribute(Constants.GLOBAL_HANDLERS,
                configContext.getAxisConfiguration());
        res.sendRedirect(VIEW_GLOBAL_HANDLERS_JSP_NAME);
    }

    private void viewServiceHandlers(HttpServletRequest req,
                                     HttpServletResponse res)
            throws IOException {
        String service = req.getParameter("service");
        if (service != null) {
            req.getSession().setAttribute(Constants.SERVICE_HANDLERS,
                    configContext.getAxisConfiguration().getService(
                            service));
        }
        res.sendRedirect(VIEW_SERVICE_HANDLERS_JSP_NAME);
    }

    private void listPhases(HttpServletRequest req, HttpServletResponse res) throws IOException {
        ArrayList phaselist = new ArrayList();
        PhasesInfo info = ((AxisConfigurationImpl) configContext.getAxisConfiguration()).getPhasesinfo();
        phaselist.add(info.getINPhases());
        phaselist.add(info.getIN_FaultPhases());
        phaselist.add(info.getOUTPhases());
        phaselist.add(info.getOUT_FaultPhases());

        phaselist.add(info.getOperationInPhases());
        phaselist.add(info.getOperationInFaultPhases());
        phaselist.add(info.getOperationOutPhases());
        phaselist.add(info.getOperationOutFaultPhases());
        req.getSession().setAttribute(Constants.PHASE_LIST, phaselist);
        res.sendRedirect(LIST_PHASES_JSP_NAME);
    }

    /**
     * Method listService
     *
     * @param req
     * @param res
     * @param filePart
     * @throws IOException
     */
    private void listService(HttpServletRequest req,
                             HttpServletResponse res,
                             String filePart)
            throws IOException {
        String serviceName = filePart.substring(filePart.lastIndexOf("/") + 1,
                filePart.length());
        HashMap services = configContext.getAxisConfiguration().getServices();
        String wsdl = req.getParameter("wsdl");
        if ((services != null) && !services.isEmpty()) {
            Object serviceObj = services.get(serviceName);
            if (serviceObj != null) {
                if (wsdl != null) {
                    res.setContentType("text/html");
                    PrintWriter out_writer = new PrintWriter(out);
                    ((ServiceDescription) serviceObj).printWSDL(out_writer,
                            filePart);
                    out.flush();
                    out.close();
                    wsdl = null;
                    return;
                } else {
                    req.getSession().setAttribute(Constants.SINGLE_SERVICE,
                            serviceObj);
                }
            }
        }
        String URI = req.getRequestURI();
        URI = URI.substring(0, URI.indexOf("services"));
        res.sendRedirect(URI + LIST_SINGLE_SERVICE_JSP_NAME);
    }

}
TOP

Related Classes of org.apache.axis2.transport.http.ListingAgent

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.