org.zodiac.autoconfigure.web.remote.EnableWebRemoteApiVersionManagement Maven / Gradle / Ivy
package org.zodiac.autoconfigure.web.remote;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import org.springframework.context.annotation.Import;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Indexed;
import org.zodiac.autoconfigure.web.remote.smart.EnableSmartRequestMapping;
import org.zodiac.commons.support.SimpleVersionComparator;
import org.zodiac.core.remote.annotation.EnableRemoteApiVersionManagement;
/**
* When enabled, the API multi version request control mapping processor is automatically configured.
*
*/
@Retention(RUNTIME)
@Target({ TYPE })
@Documented
@Indexed
//@EnableRemoteApiVersionManagement
@EnableSmartRequestMapping(overrideAmbiguousByOrder = true)
@Import({WebRemoteApiVersionMappingRegistrar.class })
public @interface EnableWebRemoteApiVersionManagement {
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
String[] value() default {};
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
String[] basePackages() default {};
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
Class>[] basePackageClasses() default {};
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
boolean sensitiveParams() default false;
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
String[] versionParams() default { "_v" };
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
String[] groupParams() default { "platform" };
@AliasFor(annotation = EnableRemoteApiVersionManagement.class)
Class extends SimpleVersionComparator> versionComparator() default SimpleVersionComparator.class;
}