List of usage examples for org.springframework.beans.factory.config ConfigurableBeanFactory getBeanExpressionResolver
@Nullable BeanExpressionResolver getBeanExpressionResolver();
From source file:com.github.ljtfreitas.restify.http.spring.contract.metadata.SpelDynamicParameterExpressionResolver.java
public SpelDynamicParameterExpressionResolver(ConfigurableBeanFactory beanFactory) { this.beanFactory = beanFactory; this.resolver = beanFactory.getBeanExpressionResolver(); this.context = new BeanExpressionContext(beanFactory, null); }
From source file:cf.spring.CfComponentConfiguration.java
@Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (beanFactory instanceof ConfigurableBeanFactory) { final ConfigurableBeanFactory cbf = (ConfigurableBeanFactory) beanFactory; expressionResolver = cbf.getBeanExpressionResolver(); expressionContext = new BeanExpressionContext(cbf, cbf.getRegisteredScope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)); } else {/* w ww .j av a 2 s . com*/ throw new BeanCreationException( getClass().getName() + " can only be used with a " + ConfigurableBeanFactory.class.getName()); } }
From source file:com.github.jmnarloch.spring.jaxrs.client.support.JaxRsClientProxyFactoryBean.java
/** * Retrieves the service url.//from www. java 2 s. c om * * @return the service url */ private String getServiceUrl() { try { if (!serviceUrl.isEmpty()) { ConfigurableBeanFactory beanFactory = getBeanFactory(); if (beanFactory != null) { return (String) beanFactory.getBeanExpressionResolver().evaluate(serviceUrl, new BeanExpressionContext(beanFactory, null)); } return serviceUrl; } return applicationContext.getBean(serviceUrlProvider).getServiceUrl(); } catch (BeansException e) { throw new IllegalStateException("The service url hasn't been specified and " + "no ServiceUrlProvider has been registered in application context.", e); } }
From source file:cf.spring.servicebroker.ServiceBrokerConfiguration.java
@Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (beanFactory instanceof ConfigurableBeanFactory) { final ConfigurableBeanFactory cbf = (ConfigurableBeanFactory) beanFactory; expressionResolver = new BeanExpressionResolver() { @Override/*www. j av a 2s. c om*/ public Object evaluate(String expression, BeanExpressionContext beanExpressionContext) throws BeansException { final Object value = cbf.getBeanExpressionResolver().evaluate(expression, expressionContext); return value == null ? null : value.toString(); } }; expressionContext = new BeanExpressionContext(cbf, cbf.getRegisteredScope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)); } else { throw new BeanCreationException( getClass().getName() + " can only be used with a " + ConfigurableBeanFactory.class.getName()); } }
From source file:org.springframework.test.context.junit.jupiter.AbstractExpressionEvaluatingCondition.java
private <A extends Annotation> boolean evaluateExpression(String expression, boolean loadContext, Class<A> annotationType, ExtensionContext context) { Assert.state(context.getElement().isPresent(), "No AnnotatedElement"); AnnotatedElement element = context.getElement().get(); GenericApplicationContext gac = null; ApplicationContext applicationContext; if (loadContext) { applicationContext = SpringExtension.getApplicationContext(context); } else {/* www . ja v a 2 s .c om*/ gac = new GenericApplicationContext(); gac.refresh(); applicationContext = gac; } if (!(applicationContext instanceof ConfigurableApplicationContext)) { if (logger.isWarnEnabled()) { String contextType = applicationContext.getClass().getName(); logger.warn(String.format( "@%s(\"%s\") could not be evaluated on [%s] since the test " + "ApplicationContext [%s] is not a ConfigurableApplicationContext", annotationType.getSimpleName(), expression, element, contextType)); } return false; } ConfigurableBeanFactory configurableBeanFactory = ((ConfigurableApplicationContext) applicationContext) .getBeanFactory(); BeanExpressionResolver expressionResolver = configurableBeanFactory.getBeanExpressionResolver(); Assert.state(expressionResolver != null, "No BeanExpressionResolver"); BeanExpressionContext beanExpressionContext = new BeanExpressionContext(configurableBeanFactory, null); Object result = expressionResolver.evaluate(configurableBeanFactory.resolveEmbeddedValue(expression), beanExpressionContext); if (gac != null) { gac.close(); } if (result instanceof Boolean) { return (Boolean) result; } else if (result instanceof String) { String str = ((String) result).trim().toLowerCase(); if ("true".equals(str)) { return true; } Assert.state("false".equals(str), () -> String.format("@%s(\"%s\") on %s must evaluate to \"true\" or \"false\", not \"%s\"", annotationType.getSimpleName(), expression, element, result)); return false; } else { String message = String.format("@%s(\"%s\") on %s must evaluate to a String or a Boolean, not %s", annotationType.getSimpleName(), expression, element, (result != null ? result.getClass().getName() : "null")); throw new IllegalStateException(message); } }
From source file:org.springframework.test.context.junit.jupiter.DisabledIfCondition.java
private boolean isDisabled(String expression, ExtensionContext extensionContext) { ApplicationContext applicationContext = SpringExtension.getApplicationContext(extensionContext); if (!(applicationContext instanceof ConfigurableApplicationContext)) { if (logger.isWarnEnabled()) { String contextType = (applicationContext != null ? applicationContext.getClass().getName() : "null"); logger.warn(String.format( "@DisabledIf(\"%s\") could not be evaluated on [%s] since the test " + "ApplicationContext [%s] is not a ConfigurableApplicationContext", expression, extensionContext.getElement(), contextType)); }//from w w w . j a v a 2s . co m return false; } ConfigurableBeanFactory configurableBeanFactory = ((ConfigurableApplicationContext) applicationContext) .getBeanFactory(); BeanExpressionResolver expressionResolver = configurableBeanFactory.getBeanExpressionResolver(); BeanExpressionContext beanExpressionContext = new BeanExpressionContext(configurableBeanFactory, null); Object result = expressionResolver.evaluate(configurableBeanFactory.resolveEmbeddedValue(expression), beanExpressionContext); Assert.state((result instanceof Boolean || result instanceof String), () -> String.format("@DisabledIf(\"%s\") must evaluate to a String or a Boolean, not %s", expression, (result != null ? result.getClass().getName() : "null"))); boolean disabled = (result instanceof Boolean && ((Boolean) result).booleanValue()) || (result instanceof String && Boolean.parseBoolean((String) result)); return disabled; }