在用于枚举的mule3自定义连接器下拉过程中,连接器显示空字段
在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.
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。