Spring
Java 8
Here my enum
public enum NEStatus {
Online(0),
Offline(1),
Unknown(2),
}
Here snippet:
@EventListener(condition = "#sdnStatusEvent.getNeStatus() != null && #sdnStatusEvent.getNeStatus() == T(com.mycompany.myproject.NEStatus).Offline")
public void handleSdnStatusEvent(SdnStatusEvent sdnStatusEvent) {
LOGGER.info("handleSdnStatusEvent: sdnStatusEvent = {}", sdnStatusEvent);
}
And this work just fine.
But I want to skip full package name to my enum.
So I try this:
@EventListener(condition = "#sdnStatusEvent.getNeStatus() != null && #sdnStatusEvent.getNeStatus() == #object.NEStatus.name() == 'Offline'")
public void handleSdnStatusEvent(SdnStatusEvent sdnStatusEvent) {
LOGGER.info("handleSdnStatusEvent: sdnStatusEvent = {}", sdnStatusEvent);
}
But I get error:
2023-07-05 12:25:34.424 ERROR [ContextLoader:localhost-startStop-1] Context initialization failed
org.springframework.expression.spel.SpelParseException: EL1041E: After parsing a valid expression, there is still more data in the expression: 'eq(==)'
at org.springframework.expression.spel.standard.InternalSpelExpressionParser.doParseExpression(InternalSpelExpressionParser.java:129) ~[spring-expression-4.3.22.RELEASE.jar:4.3.22.RELEASE]