在用于枚举的mule3自定义连接器下拉过程中,连接器显示空字段

在用于枚举的mule3自定义连接器下拉过程中,连接器显示空字段,mule,mule-component,Mule,Mule Component,在mule3中开发自定义连接器时,我将类别作为枚举,其中包含功能、技术和性能下拉字段。但我不确定为什么下拉列表中会出现空行,这不应该发生 package org.mule.modules.apipflogger; import org.apache.commons.lang3.StringUtils; import org.mule.api.annotations.Connector; import org.mule.api.annotations.Processor; import org.

在mule3中开发自定义连接器时,我将类别作为枚举,其中包含功能、技术和性能下拉字段。但我不确定为什么下拉列表中会出现空行,这不应该发生

package org.mule.modules.apipflogger;

import org.apache.commons.lang3.StringUtils;
import org.mule.api.annotations.Connector;
import org.mule.api.annotations.Processor;
import org.mule.api.annotations.param.Default;
import org.mule.api.annotations.param.Optional;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.mule.api.expression.ExpressionManager;
import corp.api.Categories;
import org.mule.api.MuleContext;
import org.mule.api.MuleEvent;
import org.mule.api.MuleException;

@Connector(name = "apipflogger", friendlyName = "Apipflogger")
public class ApipfloggerConnector {

protected Log logger;

protected String message;

protected String level = "DEBUG";

protected MuleContext muleContext;

protected ExpressionManager expressionManager;

protected void initLogger(Categories category) {
    if (category != null) {
        logger = LogFactory.getLog(category.name());
    } else {
        logger = LogFactory.getLog(ApipfloggerConnector.class);
    }
    expressionManager = muleContext.getExpressionManager();
}

@Processor(friendlyName = "Custom Logger")
public MuleEvent customLogger(MuleEvent muleEvent, @Optional String message, @Default("INFO") LogLevel level,
        @Default("Technical") Categories category) throws MuleException {
    muleContext = muleEvent.getMuleContext();
    setLevel(level.name());
    initLogger(category);
    log(muleEvent, message, level);
    return muleEvent;
}

protected void log(MuleEvent event, String message, LogLevel level) {
    if (event == null) {
        logWithLevel(null, level);
    } else {
        if (StringUtils.isEmpty(message)) {
            logWithLevel(event.getMessage(), level);
        } else {
            LogLevel logLevel = LogLevel.valueOf(level.name());
            if (LogLevel.valueOf(level.name()).isEnabled(logger))
                logLevel.log(logger, expressionManager.parse(message, event));

        }
    }
}

protected void logWithLevel(Object object, LogLevel level) {
    LogLevel logLevel = LogLevel.valueOf(level.name());
    if (logLevel.isEnabled(logger))
        logLevel.log(logger, object);
}

public void setLevel(String level) {
    this.level = level.toUpperCase();
}

public MuleContext getMuleContext() {
    return muleContext;
}

public void setMuleContext(MuleContext muleContext) {
    this.muleContext = muleContext;
}

public void setMessage(String message) {
    this.message = message;
}

public enum LogLevel {
    ERROR {
        public void log(Log logger, Object object) {
            logger.error(object);
        }

        public boolean isEnabled(Log logger) {
            return logger.isErrorEnabled();
        }
    },
    WARN {
        public void log(Log logger, Object object) {
            logger.warn(object);
        }

        public boolean isEnabled(Log logger) {
            return logger.isWarnEnabled();
        }
    },
    INFO {
        public void log(Log logger, Object object) {
            logger.info(object);
        }

        public boolean isEnabled(Log logger) {
            return logger.isInfoEnabled();
        }
    },
    DEBUG {
        public void log(Log logger, Object object) {
            logger.debug(object);
        }

        public boolean isEnabled(Log logger) {
            return logger.isDebugEnabled();
        }
    },
    TRACE {
        public void log(Log logger, Object object) {
            logger.trace(object);
        }

        public boolean isEnabled(Log logger) {
            return logger.isTraceEnabled();
        }
    };

    public abstract void log(Log param1Log, Object param1Object);

    public abstract boolean isEnabled(Log param1Log);
}
}
public enum Categories {
   Performance,Technical,Functional
}

它不显示,因为它优先使用类别导入-
导入公司api.Categories

我认为有两种类型可用,一种是导入,另一种是定义为enum


如果删除
import corp.api.Categories那么它应该可以正常工作。

import corp.api.Categories是自定义的,如果我删除它,无论在哪里使用,编译器都会抛出一个错误categoris,无法解析为type。这是根据我们的要求定制的枚举。你能告诉我要做什么吗?你可以用两种方法测试-1。重命名类别枚举2。在processor-like-org.mule.modules.apipflogger.Categories中提供完整的限定名称。。。请进行测试,并让我们知道您的反馈。是的,尝试了两种方法,结果相同。我的意思是配置中出现了空行。您可以共享第一种方法的代码和ui屏幕截图吗?@Processor(friendlyName=“Custom Logger”)public MuleEvent apipfLogger(MuleEvent MuleEvent,@Placement(order=1,group=“General”)@可选字符串消息,@Default(value=“Technical”)CustomCategory,@Default(value=“INFO”)CustomLogger(CustomLogger)抛出多个异常{屏幕截图相同。刚刚将类别重命名为customCategory。