Skip to main content

Configuration File

The configuration follows a JSON Schema to enforce validation and standardization.

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"basePackage": { "type": "string" },
"fileRule": { "$ref": "#/definitions/fileRule" },
"directoriesRule": { "$ref": "#/definitions/directoriesRule" }
},
"required": ["directoriesRule"],
"definitions": {
"fileRule": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": ["OFF", "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"],
"default": "WARNING"
},
"naming": {
"type": "string",
"enum": ["ENDS_WITH", "ENDS_WITH_LAYERED", "STARTS_WITH"]
},
"namingArg": { "type": "string" },
"namingArgs": { "type": "array", "items": { "type": "string" } },
"ignoreFiles": { "type": "array", "items": { "type": "string" } }
},
"required": ["naming"]
},
"directoriesRule": {
"type": "object",
"properties": {
"pattern": {
"type": "string",
"enum": [
"LAYERED", "HEXAGONAL", "DOMAIN_DRIVEN",
"IMPLEMENTATION", "ENDS_WITH", "STARTS_WITH", "CONTAINS"
]
},
"patternArg": { "type": "string" },
"patternArgs": { "type": "array", "items": { "type": "string" } },
"level": {
"type": "string",
"enum": ["OFF", "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"],
"default": "WARNING"
},
"basePackage": { "type": "string" },
"ignorePackages": { "type": "array", "items": { "type": "string" } },
"directoriesRule": { "$ref": "#/definitions/directoriesRule" },
"fileRule": { "$ref": "#/definitions/fileRule" }
},
"required": ["pattern"]
}
}
}

Configuration Fields Explained​

FieldTypeRequiredDescription
basePackagestring❌The root package where validation starts. Limits checks to a specific namespace or module.
fileRuleobject❌Defines file naming conventions and validation rules.
fileRule.levelstring❌Log level for rule violations. Options: OFF, TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Default: WARNING.
fileRule.namingstring✅Defines how file names are validated. Options: ENDS_WITH, ENDS_WITH_LAYERED, STARTS_WITH.
fileRule.namingArgstring❌Specifies a single argument for file naming validation. Example: "Service" → UserService.java.
fileRule.namingArgsarray❌Allows multiple naming arguments. Example: ["Service", "Controller"] allows UserService.java & UserController.java.
fileRule.ignoreFilesarray❌List of files to ignore from validation (e.g., README.md, config.xml).
directoriesRuleobject✅Defines folder structure validation rules.
directoriesRule.patternstring✅Specifies the project structure type. Options: LAYERED, HEXAGONAL, DOMAIN_DRIVEN, IMPLEMENTATION, ENDS_WITH, STARTS_WITH, CONTAINS.
directoriesRule.patternArgstring❌Defines a single argument for directory validation (e.g., "Module" → UserModule, OrderModule).
directoriesRule.patternArgsarray❌Allows multiple arguments for directory validation.
directoriesRule.levelstring❌Log level for directory rule violations. Options: OFF, TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Default: WARNING.
directoriesRule.basePackagestring❌The root directory where validation starts.
directoriesRule.ignorePackagesarray❌List of directories to ignore from validation (e.g., test, generated).
directoriesRule.directoriesRuleobject❌Allows nested directory validation rules within a parent rule.
directoriesRule.fileRuleobject❌Allows file validation rules within a directory rule.

🚀 Upcoming Enhancements:

  • Support for multiple configuration files.
  • Ability to merge configurations dynamically.
  • XML/YAML support based on user demand.