@Test public void testResolvingList() { StandardEvaluationContext context = TestScenarioCreator.getTestEvaluationContext(); try { assertFalse(parser.parseExpression("T(List)!=null").getValue(context, Boolean.class)); fail("should have failed to find List"); } catch (EvaluationException ee) { // success - List not found } ((StandardTypeLocator) context.getTypeLocator()).registerImport("java.util"); assertTrue(parser.parseExpression("T(List)!=null").getValue(context, Boolean.class)); }
@Test public void testStandardEvaluationContext() { StandardEvaluationContext context = new StandardEvaluationContext(); assertNotNull(context.getTypeComparator()); TypeComparator tc = new StandardTypeComparator(); context.setTypeComparator(tc); assertEquals(tc, context.getTypeComparator()); TypeLocator tl = new StandardTypeLocator(); context.setTypeLocator(tl); assertEquals(tl, context.getTypeLocator()); }
@Override protected void onInit() { this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(getBeanFactory()); TypeLocator typeLocator = this.evaluationContext.getTypeLocator(); if (typeLocator instanceof StandardTypeLocator) { //Register MongoDB query API package so FQCN can be avoided in query-expression. ((StandardTypeLocator) typeLocator).registerImport("org.springframework.data.mongodb.core.query"); } if (this.mongoTemplate == null) { this.mongoTemplate = new MongoTemplate(this.mongoDbFactory, this.mongoConverter); } this.initialized = true; }
@Override protected void onInit() { this.evaluationContext = ExpressionUtils.createStandardEvaluationContext(getBeanFactory()); TypeLocator typeLocator = this.evaluationContext.getTypeLocator(); if (typeLocator instanceof StandardTypeLocator) { //Register MongoDB query API package so FQCN can be avoided in query-expression. ((StandardTypeLocator) typeLocator).registerImport("org.springframework.data.mongodb.core.query"); } if (this.mongoTemplate == null) { this.mongoTemplate = new MongoTemplate(this.mongoDbFactory, this.mongoConverter); } this.initialized = true; }
@PostConstruct public void init() { if (evalContext == null) { evalContext = new StandardEvaluationContext(); } if (evalContext instanceof StandardEvaluationContext) { StandardEvaluationContext standardEvalContext = (StandardEvaluationContext)evalContext; // PropertyAccessor used when the model is a BeanFactory. standardEvalContext.addPropertyAccessor(new BeanFactoryAccessor()); if (beanFactory != null) { if (standardEvalContext.getBeanResolver() == null) { standardEvalContext.setBeanResolver(new BeanFactoryResolver(beanFactory)); } if (standardEvalContext.getTypeLocator() == null) { standardEvalContext.setTypeLocator(new StandardTypeLocator(beanFactory.getBeanClassLoader())); } if (standardEvalContext.getTypeConverter() == null) { ConversionService conversionService = beanFactory.getConversionService(); if (conversionService != null) { standardEvalContext.setTypeConverter(new StandardTypeConverter(conversionService)); } } } } }