Package com.alibaba.dubbo.governance.web.home.module.screen

Source Code of com.alibaba.dubbo.governance.web.home.module.screen.Shell

/*
* Copyright 2011 Alibaba.com All right reserved. This software is the
* confidential and proprietary information of Alibaba.com ("Confidential
* Information"). You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license agreement you entered
* into with Alibaba.com.
*/
package com.alibaba.dubbo.governance.web.home.module.screen;

import java.io.PrintWriter;
import java.util.Map;
import java.util.regex.Pattern;

import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.dubbo.governance.web.util.WebConstants;
import com.alibaba.dubbo.registry.common.domain.User;

public abstract class Shell {
    @Autowired
    private HttpServletResponse response;
   
    protected String role = null;
    protected String operator = null;
    protected User currentUser = null;
    protected String operatorAddress = null;

  public void execute(Map<String,Object> context) throws Exception {
      if(context.get(WebConstants.CURRENT_USER_KEY)!=null){
            User user = (User) context.get(WebConstants.CURRENT_USER_KEY);
            currentUser = user;
            operator = user.getUsername();
            role = user.getRole();
            context.put(WebConstants.CURRENT_USER_KEY, user);
        }
        operatorAddress = (String)context.get("request.remoteHost");
        context.put("operator", operator);
        context.put("operatorAddress", operatorAddress);
    try {
      String message = doExecute(context);
      context.put("message", "OK: " + filterERROR(message));
    } catch (Throwable t) {
          context.put("message", "ERROR: " + filterOK(t.getMessage()));
        }
    PrintWriter writer = response.getWriter();
    writer.print(context.get("message"));
    writer.flush();
  }

  protected abstract String doExecute(Map<String,Object> context) throws Exception;
 
  private static final Pattern OK_PATTERN = Pattern.compile("ok", Pattern.CASE_INSENSITIVE);

  private static final Pattern ERROR_PATTERN = Pattern.compile("error", Pattern.CASE_INSENSITIVE);

  private static String filterOK(String value) {
    if (value == null || value.length() == 0) {
      return value;
    }
    return OK_PATTERN.matcher(value).replaceAll("0k");
  }

  private static String filterERROR(String value) {
    if (value == null || value.length() == 0) {
      return value;
    }
    return ERROR_PATTERN.matcher(value).replaceAll("err0r");
  }

}
TOP

Related Classes of com.alibaba.dubbo.governance.web.home.module.screen.Shell

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.