jkstatustask.java

来自「精通tomcat书籍原代码,希望大家共同学习」· Java 代码 · 共 499 行 · 第 1/2 页

JAVA
499
字号
                                        + mapping.getContext());
                            }
                        }
                        if (resultproperty != null && mappings.size() > 0) {
                            getProject().setNewProperty(
                                    resultproperty + ".balancer."
                                            + balancerIndex + ".map.length",
                                    Integer.toString(mappings.size()));
                        }
                    }
                }
            }
            if (!isWorkerOnly && !isLoadbalancerOnly) {
                if (resultproperty != null && balancers.size() > 0) {
                    getProject().setNewProperty(
                            resultproperty + ".balancer.length",
                            Integer.toString(balancers.size()));
                }
            }
        } catch (Throwable t) {
            error.append(t.getMessage());
            if (getErrorProperty() != null) {
                getProject().setNewProperty(errorProperty, error.toString());
            }
            if (isFailOnError()) {
                throw new BuildException(t);
            } else {
                handleErrorOutput(t.getMessage());
                return;
            }
        }
        if (error.length() != 0) {
            if (getErrorProperty() != null) {
                getProject().setNewProperty(errorProperty, error.toString());
            }
            if (isFailOnError()) {
                // exception should be thrown only if failOnError == true
                // or error line will be logged twice
                throw new BuildException(error.toString());
            }
        }

    }

    /**
     * @param member
     */
    private void echoWorker(JkBalancerMember member) {
        if (isEcho()) {
            handleOutput("worker name=" + member.getName() + " status="
                    + member.getStatus() + " host=" + member.getAddress());
        }
    }

    /**
     * @param balancer
     */
    private void echoBalancer(JkBalancer balancer) {
        if (isEcho()) {
            handleOutput("balancer name=" + balancer.getName() + " type="
                    + balancer.getType());
        }
    }

    /**
     * @param balancer
     */
    private void setPropertyBalancerOnly(JkBalancer balancer) {
        String prefix = resultproperty + "." + balancer.getName();
        getProject().setNewProperty(prefix + ".id",
                Integer.toString(balancer.getId()));
        getProject().setNewProperty(prefix + ".type", balancer.getType());
        getProject().setNewProperty(prefix + ".sticky",
                Boolean.toString(balancer.isSticky()));
        getProject().setNewProperty(prefix + ".stickyforce",
                Boolean.toString(balancer.isStickyforce()));
        getProject().setNewProperty(prefix + ".retries",
                Integer.toString(balancer.getRetries()));
        getProject().setNewProperty(prefix + ".recover",
                Integer.toString(balancer.getRecover()));
    }

    /**
     * @param balancer
     * @return
     */
    private void setPropertyBalancer(JkBalancer balancer,String balancerIndex) {
        createProperty(balancer, balancerIndex, "id");
        createProperty(balancer, balancerIndex, "name");
        createProperty(balancer, balancerIndex, "type");
        createProperty(balancer, balancerIndex, "sticky");
        createProperty(balancer, balancerIndex, "stickyforce");
        createProperty(balancer, balancerIndex, "retries");
        createProperty(balancer, balancerIndex, "recover");
    }

    /**
     * @param balancerIndex
     * @param member
     */
    private void setPropertyWorker(String balancerIndex, JkBalancerMember member) {
        String workerIndex = Integer.toString(member.getId());
        createProperty(member, balancerIndex, workerIndex, "id");
        createProperty(member, balancerIndex, workerIndex, "name");
        createProperty(member, balancerIndex, workerIndex, "type");
        createProperty(member, balancerIndex, workerIndex, "host");
        createProperty(member, balancerIndex, workerIndex, "port");
        createProperty(member, balancerIndex, workerIndex, "address");
        createProperty(member, balancerIndex, workerIndex, "status");
        createProperty(member, balancerIndex, workerIndex, "lbfactor");
        createProperty(member, balancerIndex, workerIndex, "lbvalue");
        createProperty(member, balancerIndex, workerIndex, "elected");
        createProperty(member, balancerIndex, workerIndex, "readed");
        createProperty(member, balancerIndex, workerIndex, "busy");
        createProperty(member, balancerIndex, workerIndex, "transferred");
        createProperty(member, balancerIndex, workerIndex, "errors");
        if (member.getDomain() != null)
            createProperty(member, balancerIndex, workerIndex, "domain");
        else
            getProject().setNewProperty(resultproperty + ".balancer." + balancerIndex + ".member." + workerIndex +
                    ".domain", "");          
        if (member.getRedirect() != null)
            createProperty(member, balancerIndex, workerIndex, "redirect");
        else
            getProject().setNewProperty(resultproperty + ".balancer." + balancerIndex + ".member." + workerIndex +
                    ".redirect", "");          
    }

    /**
     * @param balancer
     * @param member
     */
    private void setPropertyWorkerOnly(JkBalancer balancer,
            JkBalancerMember member) {
        String prefix = resultproperty + "." + member.getName();
        getProject().setNewProperty(prefix + ".lb.id",
                Integer.toString(balancer.getId()));
        getProject().setNewProperty(prefix + ".lb.name", balancer.getName());
        getProject().setNewProperty(prefix + ".id",
                Integer.toString(member.getId()));
        getProject().setNewProperty(prefix + ".type", member.getType());
        getProject().setNewProperty(prefix + ".status", member.getStatus());
        getProject().setNewProperty(prefix + ".host", member.getHost());
        getProject().setNewProperty(prefix + ".address", member.getAddress());
        getProject().setNewProperty(prefix + ".port",
                Integer.toString(member.getPort()));
        getProject().setNewProperty(prefix + ".lbfactor",
                Integer.toString(member.getLbfactor()));
        getProject().setNewProperty(prefix + ".lbvalue",
                Long.toString(member.getLbvalue()));
        getProject().setNewProperty(prefix + ".elected",
                Long.toString(member.getElected()));
        getProject().setNewProperty(prefix + ".readed",
                Long.toString(member.getReaded()));
        getProject().setNewProperty(prefix + ".transferred",
                Long.toString(member.getTransferred()));
        getProject().setNewProperty(prefix + ".busy",
                Integer.toString(member.getBusy()));
        getProject().setNewProperty(prefix + ".errors",
                Long.toString(member.getErrors()));
        if (member.getDomain() != null)
            getProject().setNewProperty(prefix + ".domain", member.getDomain());
        else
            getProject().setNewProperty(prefix + ".domain", "");
        if (member.getRedirect() != null)
            getProject().setNewProperty(prefix + ".redirect",
                    member.getRedirect());
        else
            getProject().setNewProperty(prefix + ".redirect", "");
            
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.apache.catalina.ant.BaseRedirectorHelperTask#setErrorProperty(java.lang.String)
     */
    public void setErrorProperty(String arg0) {
        errorProperty = arg0;
        super.setErrorProperty(arg0);
    }

    /**
     * @return Returns the errorProperty.
     */
    public String getErrorProperty() {
        return errorProperty;
    }

    protected void createProperty(Object result, String attribute) {
        createProperty(result, null, null, attribute);
    }

    protected void createProperty(Object result, String arraymark,
            String attribute) {
        createProperty(result, arraymark, null, attribute);
    }

    /**
     * create result as property with name from attribute resultproperty
     */
    protected void createProperty(Object result, String arraymark,
            String arraymark2, String attribute) {
        if (resultproperty != null) {
            Object value = IntrospectionUtils.getProperty(result, attribute);
            if (value != null) {
                StringBuffer propertyname = new StringBuffer(resultproperty);

                if (result instanceof JkServer) {
                    propertyname.append(".server");
                } else if (result instanceof JkBalancer) {
                    propertyname.append(".balancer");
                    if (arraymark != null) {
                        propertyname.append(".");
                        propertyname.append(arraymark);
                    }
                } else if (result instanceof JkBalancerMember) {
                    propertyname.append(".balancer");
                    if (arraymark != null) {
                        propertyname.append(".");
                        propertyname.append(arraymark);
                    }
                    propertyname.append(".member");
                    if (arraymark2 != null) {
                        propertyname.append(".");
                        propertyname.append(arraymark2);
                    }

                } else if (result instanceof JkBalancerMapping) {
                    propertyname.append(".balancer");
                    if (arraymark != null) {
                        propertyname.append(".");
                        propertyname.append(arraymark);
                    }
                    propertyname.append(".map");
                    if (arraymark2 != null) {
                        propertyname.append(".");
                        propertyname.append(arraymark2);
                    }
                }
                propertyname.append(".");
                propertyname.append(attribute);
                getProject().setNewProperty(propertyname.toString(),
                        value.toString());
            }
        }
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?