package org.activiti.spring.components.config.java.impl;
import org.activiti.spring.components.config.java.EnableActiviti;
import org.springframework.context.annotation.ImportSelector;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.util.Assert;
/**
* Enables the same functionality provided by the XML {@code <activiti:annotation-driven/>} while employing some
* extra convenience to auto detect required dependencies by type.
*
* @author Josh Long
*/
public class ActivitiConfigurationSelector implements ImportSelector {
@Override
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
Class<?> annotationType = EnableActiviti.class;
AnnotationAttributes attributes = AnnotationAttributes.fromMap(
importingClassMetadata.getAnnotationAttributes(annotationType.getName(), false));
Assert.notNull(attributes, String.format("@%s is not present on importing " +
"class '%s' as expected", annotationType.getSimpleName(), importingClassMetadata.getClassName()));
return new String[]{DefaultActvitiConfiguration.class.getName()};
}
}