DeprecatedPropertyScanningConfig

data class DeprecatedPropertyScanningConfig(var includePackages: List<String> = listOf( "com.embabel.agent", "com.embabel.agent.shell" ), var excludePackages: List<String> = defaultExcludePackages(), var additionalExcludes: List<String> = emptyList(), var autoExcludeJarPackages: Boolean = false, var maxScanDepth: Int = 10, var enabled: Boolean = false)

Configuration for conditional property scanning during migration.

Controls which packages are scanned for deprecated property in @ConditionalOnProperty annotations. Uses a flexible approach with configurable include/exclude patterns to handle diverse project structures and dependencies.

Spring Boot + Kotlin Binding Pattern Consistency

All properties use var to ensure consistency with production requirements:

  • @Configuration + @ConfigurationProperties: Requires var for CGLIB proxy compatibility

  • Complex types (List): Need var for reliable environment variable binding

  • Scalar types: Use var to maintain pattern consistency and avoid production issues

This follows the same pattern as DeprecatedPropertyWarningConfig which was validated in production.

See also

for detailed production lesson learned documentation

Constructors

Link copied to clipboard
constructor(includePackages: List<String> = listOf( "com.embabel.agent", "com.embabel.agent.shell" ), excludePackages: List<String> = defaultExcludePackages(), additionalExcludes: List<String> = emptyList(), autoExcludeJarPackages: Boolean = false, maxScanDepth: Int = 10, enabled: Boolean = false)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Additional user-specific packages to exclude. Allows runtime customization without modifying the default exclusion list.

Link copied to clipboard

Whether to use classpath-based detection to automatically exclude JAR-based packages. When enabled, packages from JAR files are automatically excluded from scanning.

Link copied to clipboard

Whether scanning is enabled. Disabled by default for production safety - migration system is completely dormant. Set to true to activate comprehensive migration detection and warnings.

Link copied to clipboard

Package prefixes to exclude from scanning. Uses a comprehensive strategy that excludes common framework and library packages while allowing configuration override for custom environments.

Link copied to clipboard

Base packages to scan for deprecated conditional annotations. Defaults to actual Embabel packages while excluding framework internals.

Link copied to clipboard

Maximum depth for package scanning to prevent excessive recursion.

Functions

Link copied to clipboard

Gets the complete list of packages to exclude, combining defaults with additional excludes.

Link copied to clipboard
fun init()
Link copied to clipboard

Checks if a package should be excluded from scanning.

Link copied to clipboard

Checks if a package should be included in scanning.