@Override protected void initializeProcessEngine() { ContextConfiguration contextConfiguration = getClass().getAnnotation(ContextConfiguration.class); String[] value = contextConfiguration.value(); boolean hasOneArg = value != null && value.length == 1; String key = hasOneArg ? value[0] : ProcessEngine.class.getName(); ProcessEngine engine = this.cachedProcessEngines.containsKey(key) ? this.cachedProcessEngines.get(key) : this.applicationContext.getBean(ProcessEngine.class); this.cachedProcessEngines.put(key, engine); this.processEngine = engine; }
@Test public void contextConfigurationValue() throws Exception { Class<MetaValueConfigTestCase> declaringClass = MetaValueConfigTestCase.class; AnnotationDescriptor<ContextConfiguration> descriptor = findAnnotationDescriptor(declaringClass, ContextConfiguration.class); assertNotNull(descriptor); assertEquals(declaringClass, descriptor.getRootDeclaringClass()); assertEquals(MetaValueConfig.class, descriptor.getComposedAnnotationType()); assertEquals(ContextConfiguration.class, descriptor.getAnnotationType()); assertNotNull(descriptor.getComposedAnnotation()); assertEquals(MetaValueConfig.class, descriptor.getComposedAnnotationType()); // direct access to annotation value: assertArrayEquals(new String[] { "foo.xml" }, descriptor.getAnnotation().value()); }
@Test @SuppressWarnings("unchecked") public void findAnnotationDescriptorForTypesWithMetaAnnotationWithDefaultAttributes() { Class<?> startClass = MetaConfigWithDefaultAttributesTestCase.class; Class<ContextConfiguration> annotationType = ContextConfiguration.class; UntypedAnnotationDescriptor descriptor = findAnnotationDescriptorForTypes(startClass, Service.class, ContextConfiguration.class, Order.class, Transactional.class); assertNotNull(descriptor); assertEquals(startClass, descriptor.getRootDeclaringClass()); assertEquals(annotationType, descriptor.getAnnotationType()); assertArrayEquals(new Class<?>[] {}, ((ContextConfiguration) descriptor.getAnnotation()).value()); assertArrayEquals(new Class<?>[] {MetaConfig.DevConfig.class, MetaConfig.ProductionConfig.class}, descriptor.getAnnotationAttributes().getClassArray("classes")); assertNotNull(descriptor.getComposedAnnotation()); assertEquals(MetaConfig.class, descriptor.getComposedAnnotationType()); }
@Test @SuppressWarnings("unchecked") public void findAnnotationDescriptorForTypesWithMetaAnnotationWithOverriddenAttributes() { Class<?> startClass = MetaConfigWithOverriddenAttributesTestCase.class; Class<ContextConfiguration> annotationType = ContextConfiguration.class; UntypedAnnotationDescriptor descriptor = findAnnotationDescriptorForTypes( startClass, Service.class, ContextConfiguration.class, Order.class, Transactional.class); assertNotNull(descriptor); assertEquals(startClass, descriptor.getRootDeclaringClass()); assertEquals(annotationType, descriptor.getAnnotationType()); assertArrayEquals(new Class<?>[] {}, ((ContextConfiguration) descriptor.getAnnotation()).value()); assertArrayEquals(new Class<?>[] {MetaAnnotationUtilsTests.class}, descriptor.getAnnotationAttributes().getClassArray("classes")); assertNotNull(descriptor.getComposedAnnotation()); assertEquals(MetaConfig.class, descriptor.getComposedAnnotationType()); }
@Test public void overriddenContextConfigurationValue() throws Exception { Class<?> declaringClass = OverriddenMetaValueConfigTestCase.class; AnnotationDescriptor<ContextConfiguration> descriptor = findAnnotationDescriptor(declaringClass, ContextConfiguration.class); assertNotNull(descriptor); assertEquals(declaringClass, descriptor.getRootDeclaringClass()); assertEquals(MetaValueConfig.class, descriptor.getComposedAnnotationType()); assertEquals(ContextConfiguration.class, descriptor.getAnnotationType()); assertNotNull(descriptor.getComposedAnnotation()); assertEquals(MetaValueConfig.class, descriptor.getComposedAnnotationType()); // direct access to annotation value: assertArrayEquals(new String[] { "foo.xml" }, descriptor.getAnnotation().value()); // overridden attribute: AnnotationAttributes attributes = descriptor.getAnnotationAttributes(); // NOTE: we would like to be able to override the 'value' attribute; however, // Spring currently does not allow overrides for the 'value' attribute. // See SPR-11393 for related discussions. assertArrayEquals(new String[] { "foo.xml" }, attributes.getStringArray("value")); }
@Override protected void initializeDmnEngine() { ContextConfiguration contextConfiguration = getClass().getAnnotation(ContextConfiguration.class); String[] value = contextConfiguration.value(); boolean hasOneArg = value != null && value.length == 1; String key = hasOneArg ? value[0] : DmnEngine.class.getName(); DmnEngine engine = this.cachedDmnEngines.containsKey(key) ? this.cachedDmnEngines.get(key) : this.applicationContext.getBean(DmnEngine.class); this.cachedDmnEngines.put(key, engine); this.dmnEngine = engine; }
protected void initializeCmmnEngine() { ContextConfiguration contextConfiguration = getClass().getAnnotation(ContextConfiguration.class); String[] value = contextConfiguration.value(); boolean hasOneArg = value != null && value.length == 1; String key = hasOneArg ? value[0] : CmmnEngine.class.getName(); CmmnEngine engine = this.cachedCmmnEngines.containsKey(key) ? this.cachedCmmnEngines.get(key) : this.applicationContext.getBean(CmmnEngine.class); this.cachedCmmnEngines.put(key, engine); this.cmmnEngine = engine; }
@Override protected void initializeProcessEngine() { ContextConfiguration contextConfiguration = getClass().getAnnotation(ContextConfiguration.class); String[] value = contextConfiguration.value(); if (value==null) { throw new ActivitiException("value is mandatory in ContextConfiguration"); } if (value.length!=1) { throw new ActivitiException("SpringActivitiTestCase requires exactly one value in annotation ContextConfiguration"); } String configurationFile = value[0]; processEngine = cachedProcessEngines.get(configurationFile); if (processEngine==null) { processEngine = applicationContext.getBean(ProcessEngine.class); cachedProcessEngines.put(configurationFile, processEngine); } }