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
basePackagestringThe root package where validation starts. Limits checks to a specific namespace or module.
fileRuleobjectDefines file naming conventions and validation rules.
fileRule.levelstringLog level for rule violations. Options: OFF, TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Default: WARNING.
fileRule.namingstringDefines how file names are validated. Options: ENDS_WITH, ENDS_WITH_LAYERED, STARTS_WITH.
fileRule.namingArgstringSpecifies a single argument for file naming validation. Example: "Service"UserService.java.
fileRule.namingArgsarrayAllows multiple naming arguments. Example: ["Service", "Controller"] allows UserService.java & UserController.java.
fileRule.ignoreFilesarrayList of files to ignore from validation (e.g., README.md, config.xml).
directoriesRuleobjectDefines folder structure validation rules.
directoriesRule.patternstringSpecifies the project structure type. Options: LAYERED, HEXAGONAL, DOMAIN_DRIVEN, IMPLEMENTATION, ENDS_WITH, STARTS_WITH, CONTAINS.
directoriesRule.patternArgstringDefines a single argument for directory validation (e.g., "Module"UserModule, OrderModule).
directoriesRule.patternArgsarrayAllows multiple arguments for directory validation.
directoriesRule.levelstringLog level for directory rule violations. Options: OFF, TRACE, DEBUG, INFO, WARN, ERROR, FATAL. Default: WARNING.
directoriesRule.basePackagestringThe root directory where validation starts.
directoriesRule.ignorePackagesarrayList of directories to ignore from validation (e.g., test, generated).
directoriesRule.directoriesRuleobjectAllows nested directory validation rules within a parent rule.
directoriesRule.fileRuleobjectAllows 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.