parent
ea5ef098cf
commit
cfa3aa001f
|
@ -404,24 +404,14 @@ class ConfigBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
*/
|
*/
|
||||||
private Class<?> getAdviceClass(Element adviceElement, ParserContext parserContext) {
|
private Class<?> getAdviceClass(Element adviceElement, ParserContext parserContext) {
|
||||||
String elementName = parserContext.getDelegate().getLocalName(adviceElement);
|
String elementName = parserContext.getDelegate().getLocalName(adviceElement);
|
||||||
if (BEFORE.equals(elementName)) {
|
return switch (elementName) {
|
||||||
return AspectJMethodBeforeAdvice.class;
|
case BEFORE -> AspectJMethodBeforeAdvice.class;
|
||||||
}
|
case AFTER -> AspectJAfterAdvice.class;
|
||||||
else if (AFTER.equals(elementName)) {
|
case AFTER_RETURNING_ELEMENT -> AspectJAfterReturningAdvice.class;
|
||||||
return AspectJAfterAdvice.class;
|
case AFTER_THROWING_ELEMENT -> AspectJAfterThrowingAdvice.class;
|
||||||
}
|
case AROUND -> AspectJAroundAdvice.class;
|
||||||
else if (AFTER_RETURNING_ELEMENT.equals(elementName)) {
|
default -> throw new IllegalArgumentException("Unknown advice kind [" + elementName + "].");
|
||||||
return AspectJAfterReturningAdvice.class;
|
};
|
||||||
}
|
|
||||||
else if (AFTER_THROWING_ELEMENT.equals(elementName)) {
|
|
||||||
return AspectJAfterThrowingAdvice.class;
|
|
||||||
}
|
|
||||||
else if (AROUND.equals(elementName)) {
|
|
||||||
return AspectJAroundAdvice.class;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw new IllegalArgumentException("Unknown advice kind [" + elementName + "].");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -182,16 +182,11 @@ public class ComponentScanBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
|
|
||||||
if (element.hasAttribute(SCOPED_PROXY_ATTRIBUTE)) {
|
if (element.hasAttribute(SCOPED_PROXY_ATTRIBUTE)) {
|
||||||
String mode = element.getAttribute(SCOPED_PROXY_ATTRIBUTE);
|
String mode = element.getAttribute(SCOPED_PROXY_ATTRIBUTE);
|
||||||
if ("targetClass".equals(mode)) {
|
switch (mode) {
|
||||||
scanner.setScopedProxyMode(ScopedProxyMode.TARGET_CLASS);
|
case "targetClass" -> scanner.setScopedProxyMode(ScopedProxyMode.TARGET_CLASS);
|
||||||
}
|
case "interfaces" -> scanner.setScopedProxyMode(ScopedProxyMode.INTERFACES);
|
||||||
else if ("interfaces".equals(mode)) {
|
case "no" -> scanner.setScopedProxyMode(ScopedProxyMode.NO);
|
||||||
scanner.setScopedProxyMode(ScopedProxyMode.INTERFACES);
|
default ->
|
||||||
}
|
|
||||||
else if ("no".equals(mode)) {
|
|
||||||
scanner.setScopedProxyMode(ScopedProxyMode.NO);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw new IllegalArgumentException("scoped-proxy only supports 'no', 'interfaces' and 'targetClass'");
|
throw new IllegalArgumentException("scoped-proxy only supports 'no', 'interfaces' and 'targetClass'");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -234,19 +229,20 @@ public class ComponentScanBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
String filterType = element.getAttribute(FILTER_TYPE_ATTRIBUTE);
|
String filterType = element.getAttribute(FILTER_TYPE_ATTRIBUTE);
|
||||||
String expression = element.getAttribute(FILTER_EXPRESSION_ATTRIBUTE);
|
String expression = element.getAttribute(FILTER_EXPRESSION_ATTRIBUTE);
|
||||||
expression = parserContext.getReaderContext().getEnvironment().resolvePlaceholders(expression);
|
expression = parserContext.getReaderContext().getEnvironment().resolvePlaceholders(expression);
|
||||||
if ("annotation".equals(filterType)) {
|
switch (filterType) {
|
||||||
|
case "annotation" -> {
|
||||||
return new AnnotationTypeFilter((Class<Annotation>) ClassUtils.forName(expression, classLoader));
|
return new AnnotationTypeFilter((Class<Annotation>) ClassUtils.forName(expression, classLoader));
|
||||||
}
|
}
|
||||||
else if ("assignable".equals(filterType)) {
|
case "assignable" -> {
|
||||||
return new AssignableTypeFilter(ClassUtils.forName(expression, classLoader));
|
return new AssignableTypeFilter(ClassUtils.forName(expression, classLoader));
|
||||||
}
|
}
|
||||||
else if ("aspectj".equals(filterType)) {
|
case "aspectj" -> {
|
||||||
return new AspectJTypeFilter(expression, classLoader);
|
return new AspectJTypeFilter(expression, classLoader);
|
||||||
}
|
}
|
||||||
else if ("regex".equals(filterType)) {
|
case "regex" -> {
|
||||||
return new RegexPatternTypeFilter(Pattern.compile(expression));
|
return new RegexPatternTypeFilter(Pattern.compile(expression));
|
||||||
}
|
}
|
||||||
else if ("custom".equals(filterType)) {
|
case "custom" -> {
|
||||||
Class<?> filterClass = ClassUtils.forName(expression, classLoader);
|
Class<?> filterClass = ClassUtils.forName(expression, classLoader);
|
||||||
if (!TypeFilter.class.isAssignableFrom(filterClass)) {
|
if (!TypeFilter.class.isAssignableFrom(filterClass)) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
|
@ -254,8 +250,7 @@ public class ComponentScanBeanDefinitionParser implements BeanDefinitionParser {
|
||||||
}
|
}
|
||||||
return (TypeFilter) BeanUtils.instantiateClass(filterClass);
|
return (TypeFilter) BeanUtils.instantiateClass(filterClass);
|
||||||
}
|
}
|
||||||
else {
|
default -> throw new IllegalArgumentException("Unsupported filter type: " + filterType);
|
||||||
throw new IllegalArgumentException("Unsupported filter type: " + filterType);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,22 +61,13 @@ public class ExecutorBeanDefinitionParser extends AbstractSingleBeanDefinitionPa
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String prefix = "java.util.concurrent.ThreadPoolExecutor.";
|
String prefix = "java.util.concurrent.ThreadPoolExecutor.";
|
||||||
String policyClassName;
|
String policyClassName = switch (rejectionPolicy) {
|
||||||
if (rejectionPolicy.equals("ABORT")) {
|
case "ABORT" -> prefix + "AbortPolicy";
|
||||||
policyClassName = prefix + "AbortPolicy";
|
case "CALLER_RUNS" -> prefix + "CallerRunsPolicy";
|
||||||
}
|
case "DISCARD" -> prefix + "DiscardPolicy";
|
||||||
else if (rejectionPolicy.equals("CALLER_RUNS")) {
|
case "DISCARD_OLDEST" -> prefix + "DiscardOldestPolicy";
|
||||||
policyClassName = prefix + "CallerRunsPolicy";
|
default -> rejectionPolicy;
|
||||||
}
|
};
|
||||||
else if (rejectionPolicy.equals("DISCARD")) {
|
|
||||||
policyClassName = prefix + "DiscardPolicy";
|
|
||||||
}
|
|
||||||
else if (rejectionPolicy.equals("DISCARD_OLDEST")) {
|
|
||||||
policyClassName = prefix + "DiscardOldestPolicy";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
policyClassName = rejectionPolicy;
|
|
||||||
}
|
|
||||||
builder.addPropertyValue("rejectedExecutionHandler", new RootBeanDefinition(policyClassName));
|
builder.addPropertyValue("rejectedExecutionHandler", new RootBeanDefinition(policyClassName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1778,19 +1778,13 @@ class SpelReproTests extends AbstractExpressionTests {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolve(EvaluationContext context, String beanName) throws AccessException {
|
public Object resolve(EvaluationContext context, String beanName) throws AccessException {
|
||||||
if (beanName.equals("foo")) {
|
return switch (beanName) {
|
||||||
return "custard";
|
case "foo" -> "custard";
|
||||||
}
|
case "foo.bar" -> "trouble";
|
||||||
else if (beanName.equals("foo.bar")) {
|
case "&foo" -> "foo factory";
|
||||||
return "trouble";
|
case "goo" -> throw new AccessException("DONT ASK ME ABOUT GOO");
|
||||||
}
|
default -> null;
|
||||||
else if (beanName.equals("&foo")) {
|
};
|
||||||
return "foo factory";
|
|
||||||
}
|
|
||||||
else if (beanName.equals("goo")) {
|
|
||||||
throw new AccessException("DONT ASK ME ABOUT GOO");
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,19 +242,17 @@ public abstract class JdbcUtils {
|
||||||
// Corresponding SQL types for JSR-310 / Joda-Time types, left up
|
// Corresponding SQL types for JSR-310 / Joda-Time types, left up
|
||||||
// to the caller to convert them (e.g. through a ConversionService).
|
// to the caller to convert them (e.g. through a ConversionService).
|
||||||
String typeName = requiredType.getSimpleName();
|
String typeName = requiredType.getSimpleName();
|
||||||
if ("LocalDate".equals(typeName)) {
|
return switch (typeName) {
|
||||||
return rs.getDate(index);
|
case "LocalDate" -> rs.getDate(index);
|
||||||
}
|
case "LocalTime" -> rs.getTime(index);
|
||||||
else if ("LocalTime".equals(typeName)) {
|
case "LocalDateTime" -> rs.getTimestamp(index);
|
||||||
return rs.getTime(index);
|
default ->
|
||||||
}
|
|
||||||
else if ("LocalDateTime".equals(typeName)) {
|
|
||||||
return rs.getTimestamp(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fall back to getObject without type specification, again
|
// Fall back to getObject without type specification, again
|
||||||
// left up to the caller to convert the value if necessary.
|
// left up to the caller to convert the value if necessary.
|
||||||
return getResultSetValue(rs, index);
|
getResultSetValue(rs, index);
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform was-null check if necessary (for results that the JDBC driver returns as primitives).
|
// Perform was-null check if necessary (for results that the JDBC driver returns as primitives).
|
||||||
|
|
|
@ -131,60 +131,26 @@ public class FacesRequestAttributes implements RequestAttributes {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object resolveReference(String key) {
|
public Object resolveReference(String key) {
|
||||||
if (REFERENCE_REQUEST.equals(key)) {
|
return switch (key) {
|
||||||
return getExternalContext().getRequest();
|
case REFERENCE_REQUEST -> getExternalContext().getRequest();
|
||||||
}
|
case REFERENCE_SESSION -> getExternalContext().getSession(true);
|
||||||
else if (REFERENCE_SESSION.equals(key)) {
|
case "application" -> getExternalContext().getContext();
|
||||||
return getExternalContext().getSession(true);
|
case "requestScope" -> getExternalContext().getRequestMap();
|
||||||
}
|
case "sessionScope" -> getExternalContext().getSessionMap();
|
||||||
else if ("application".equals(key)) {
|
case "applicationScope" -> getExternalContext().getApplicationMap();
|
||||||
return getExternalContext().getContext();
|
case "facesContext" -> getFacesContext();
|
||||||
}
|
case "cookie" -> getExternalContext().getRequestCookieMap();
|
||||||
else if ("requestScope".equals(key)) {
|
case "header" -> getExternalContext().getRequestHeaderMap();
|
||||||
return getExternalContext().getRequestMap();
|
case "headerValues" -> getExternalContext().getRequestHeaderValuesMap();
|
||||||
}
|
case "param" -> getExternalContext().getRequestParameterMap();
|
||||||
else if ("sessionScope".equals(key)) {
|
case "paramValues" -> getExternalContext().getRequestParameterValuesMap();
|
||||||
return getExternalContext().getSessionMap();
|
case "initParam" -> getExternalContext().getInitParameterMap();
|
||||||
}
|
case "view" -> getFacesContext().getViewRoot();
|
||||||
else if ("applicationScope".equals(key)) {
|
case "viewScope" -> getFacesContext().getViewRoot().getViewMap();
|
||||||
return getExternalContext().getApplicationMap();
|
case "flash" -> getExternalContext().getFlash();
|
||||||
}
|
case "resource" -> getFacesContext().getApplication().getResourceHandler();
|
||||||
else if ("facesContext".equals(key)) {
|
default -> null;
|
||||||
return getFacesContext();
|
};
|
||||||
}
|
|
||||||
else if ("cookie".equals(key)) {
|
|
||||||
return getExternalContext().getRequestCookieMap();
|
|
||||||
}
|
|
||||||
else if ("header".equals(key)) {
|
|
||||||
return getExternalContext().getRequestHeaderMap();
|
|
||||||
}
|
|
||||||
else if ("headerValues".equals(key)) {
|
|
||||||
return getExternalContext().getRequestHeaderValuesMap();
|
|
||||||
}
|
|
||||||
else if ("param".equals(key)) {
|
|
||||||
return getExternalContext().getRequestParameterMap();
|
|
||||||
}
|
|
||||||
else if ("paramValues".equals(key)) {
|
|
||||||
return getExternalContext().getRequestParameterValuesMap();
|
|
||||||
}
|
|
||||||
else if ("initParam".equals(key)) {
|
|
||||||
return getExternalContext().getInitParameterMap();
|
|
||||||
}
|
|
||||||
else if ("view".equals(key)) {
|
|
||||||
return getFacesContext().getViewRoot();
|
|
||||||
}
|
|
||||||
else if ("viewScope".equals(key)) {
|
|
||||||
return getFacesContext().getViewRoot().getViewMap();
|
|
||||||
}
|
|
||||||
else if ("flash".equals(key)) {
|
|
||||||
return getExternalContext().getFlash();
|
|
||||||
}
|
|
||||||
else if ("resource".equals(key)) {
|
|
||||||
return getFacesContext().getApplication().getResourceHandler();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -67,18 +67,12 @@ public abstract class TagUtils {
|
||||||
*/
|
*/
|
||||||
public static int getScope(String scope) {
|
public static int getScope(String scope) {
|
||||||
Assert.notNull(scope, "Scope to search for cannot be null");
|
Assert.notNull(scope, "Scope to search for cannot be null");
|
||||||
if (scope.equals(SCOPE_REQUEST)) {
|
return switch (scope) {
|
||||||
return PageContext.REQUEST_SCOPE;
|
case SCOPE_REQUEST -> PageContext.REQUEST_SCOPE;
|
||||||
}
|
case SCOPE_SESSION -> PageContext.SESSION_SCOPE;
|
||||||
else if (scope.equals(SCOPE_SESSION)) {
|
case SCOPE_APPLICATION -> PageContext.APPLICATION_SCOPE;
|
||||||
return PageContext.SESSION_SCOPE;
|
default -> PageContext.PAGE_SCOPE;
|
||||||
}
|
};
|
||||||
else if (scope.equals(SCOPE_APPLICATION)) {
|
|
||||||
return PageContext.APPLICATION_SCOPE;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return PageContext.PAGE_SCOPE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue