[ https://issues.apache.org/jira/browse/RANGER-5018?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Madhan Neethiraj updated RANGER-5018: ------------------------------------- Description: Here are the steps I used to update the sources to be compliant with the checkstyle requirements: # Update IntelliJ IDE (one time operation) with code schema corresponding to Ranger checkstyle requirements: ## IntelliJ IDEA/Settings/Editor/Code Style/Java ## Click on icon next to Scheme, then select Import Scheme/IntelliJ IDEA code style XML ## Pick dev-support/RangerCodeScheme-IntelliJ.xml from Apache Ranger master branch ## Click OK, OK # Steps to update Java sources in a module to comply with checkstyle requirements: ## Add following property to module's pom.xml, so that build will fail on checkstyle violations *** <checkstyle.failOnViolation>true</checkstyle.failOnViolation> ## Click on the module name in the Project navigation at the left side of the IDE ## Click on menu (at the top of the IDE): Code/Reformat Code ## Check the following boxes, and click Run *** Optimize Imports *** Rearrange entries *** Cleanup Code *** Filters: Scope - All Places *** Filters: File mask(s) - *.java ## Build the module with command: *mvn clean install* ## Review reported errors, similar to errors shown below, update sources to address them, ensure that the build succeeds with no errors *** [ERROR] src/main/java/org/apache/ranger/audit/test/TestEvents.java:[35] (regexp) RegexpMultiline: Blank line after opening brace *** [ERROR] src/main/java/org/apache/ranger/audit/test/TestEvents.java:[35,1] (design) HideUtilityClassConstructor: Utility classes should not have a public or default constructor. *** [ERROR] src/main/java/org/apache/ranger/audit/test/TestEvents.java:[45,20] (naming) LocalVariableName: Name 'AUDIT_PROPERTIES_FILE' must match pattern '^([a-z][a-zA-Z0-9]*|_)$'. *** [ERROR] src/main/java/org/apache/ranger/audit/provider/AuditMessageException.java:[27] (regexp) RegexpMultiline: Blank line after opening brace *** [ERROR] src/main/java/org/apache/ranger/audit/provider/BufferedAuditProvider.java:[26,44] (coding) ExplicitInitialization: Variable 'mBuffer' explicitly initialized to 'null' (default value for its type). *** [ERROR] src/main/java/org/apache/ranger/audit/provider/BufferedAuditProvider.java:[27,44] (coding) ExplicitInitialization: Variable 'mDestination' explicitly initialized to 'null' (default value for its type). *** [ERROR] src/main/java/org/apache/ranger/audit/provider/AuditWriterFactory.java:[1] (misc) NewlineAtEndOfFile: File does not end with a newline *** [ERROR] src/main/java/org/apache/ranger/audit/provider/AuditWriterFactory.java:[35,49] (coding) ExplicitInitialization: Variable 'me' explicitly initialized to 'null' (default value for its type). *** ... *** [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.0:check (checkstyle-check) on project ranger-plugins-audit: You have 399 Checkstyle violations. -> [Help 1] ## Review each Java file in the module for the following and update where necessary ### Ensure that Logger initialization is at the top of the class, immediately after class declartion. It is likely that the code reformat performed earlier pushed this line after other initializations **** private static final Logger LOG = LoggerFactory.getLogger(TestEvents.class); ### Separate member declaration of different scope/visibility with an empty line - if it helps readability. Example: **** private static final Logger logger = LoggerFactory.getLogger(AuditWriterFactory.class); **** **** public static final String AUDIT_FILETYPE_DEFAULT = "json"; **** public static final String AUDIT_JSON_FILEWRITER_IMPL = "org.apache.ranger.audit.utils.RangerJSONAuditWriter"; **** public static final String AUDIT_ORC_FILEWRITER_IMPL = "org.apache.ranger.audit.utils.RangerORCAuditWriter"; **** **** private static volatile AuditWriterFactory me; **** **** public Map<String, String> auditConfigs; **** public Properties props; ### Join multiline statements into a single line. Example: **** long timeSinceLastFlush = System.currentTimeMillis() - lastFlushTime; **** long timeSinceLastFlush = System.currentTimeMillis() - lastFlushTime; ### Replace log statements having string concats with parameterized message. Example: **** LOG.info("AsyncAuditProvider-stats:" + mName + ": process lifetime" + ": inLogs=" + lifeTimeInLogCount.get() + ", outLogs=" + lifeTimeOutLogCount.get() + ", dropped=" + lifeTimeDropCount.get()); **** LOG.info("AsyncAuditProvider-stats:{}: process lifetime: inLogs={}, outLogs={}, dropped={}", mName, lifeTimeInLogCount, lifeTimeOutLogCount, lifeTimeDropCount); ### Review Warnings flagged by the IDE by clicking on icon at the top-right of the source file, and address as many of them as safely possible. However, please make sure to not make any changes that can break existing usage (see examples given below). Note that usage of a class (methods, fields) may not be in Ranger repo - consider plugins for NiFi, Kudu, Trino that are not in Ranger repo. #### remove/rename a method or field #### changing visibility of a method or field #### changing signature of a method > agents-audit module: update for code readability improvement > ------------------------------------------------------------ > > Key: RANGER-5018 > URL: https://issues.apache.org/jira/browse/RANGER-5018 > Project: Ranger > Issue Type: Sub-task > Components: audit > Reporter: Madhan Neethiraj > Assignee: Madhan Neethiraj > Priority: Major > Fix For: 3.0.0 > > Attachments: RANGER-5018.patch > > Time Spent: 10m > Remaining Estimate: 0h > > Here are the steps I used to update the sources to be compliant with the > checkstyle requirements: > # Update IntelliJ IDE (one time operation) with code schema corresponding to > Ranger checkstyle requirements: > ## IntelliJ IDEA/Settings/Editor/Code Style/Java > ## Click on icon next to Scheme, then select Import Scheme/IntelliJ IDEA > code style XML > ## Pick dev-support/RangerCodeScheme-IntelliJ.xml from Apache Ranger master > branch > ## Click OK, OK > # Steps to update Java sources in a module to comply with checkstyle > requirements: > ## Add following property to module's pom.xml, so that build will fail on > checkstyle violations > *** <checkstyle.failOnViolation>true</checkstyle.failOnViolation> > ## Click on the module name in the Project navigation at the left side of > the IDE > ## Click on menu (at the top of the IDE): Code/Reformat Code > ## Check the following boxes, and click Run > *** Optimize Imports > *** Rearrange entries > *** Cleanup Code > *** Filters: Scope - All Places > *** Filters: File mask(s) - *.java > ## Build the module with command: *mvn clean install* > ## Review reported errors, similar to errors shown below, update sources to > address them, ensure that the build succeeds with no errors > *** [ERROR] src/main/java/org/apache/ranger/audit/test/TestEvents.java:[35] > (regexp) RegexpMultiline: Blank line after opening brace > *** [ERROR] > src/main/java/org/apache/ranger/audit/test/TestEvents.java:[35,1] (design) > HideUtilityClassConstructor: Utility classes should not have a public or > default constructor. > *** [ERROR] > src/main/java/org/apache/ranger/audit/test/TestEvents.java:[45,20] (naming) > LocalVariableName: Name 'AUDIT_PROPERTIES_FILE' must match pattern > '^([a-z][a-zA-Z0-9]*|_)$'. > *** [ERROR] > src/main/java/org/apache/ranger/audit/provider/AuditMessageException.java:[27] > (regexp) RegexpMultiline: Blank line after opening brace > *** [ERROR] > src/main/java/org/apache/ranger/audit/provider/BufferedAuditProvider.java:[26,44] > (coding) ExplicitInitialization: Variable 'mBuffer' explicitly initialized > to 'null' (default value for its type). > *** [ERROR] > src/main/java/org/apache/ranger/audit/provider/BufferedAuditProvider.java:[27,44] > (coding) ExplicitInitialization: Variable 'mDestination' explicitly > initialized to 'null' (default value for its type). > *** [ERROR] > src/main/java/org/apache/ranger/audit/provider/AuditWriterFactory.java:[1] > (misc) NewlineAtEndOfFile: File does not end with a newline > *** [ERROR] > src/main/java/org/apache/ranger/audit/provider/AuditWriterFactory.java:[35,49] > (coding) ExplicitInitialization: Variable 'me' explicitly initialized to > 'null' (default value for its type). > *** ... > *** [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-checkstyle-plugin:3.1.0:check > (checkstyle-check) on project ranger-plugins-audit: You have 399 Checkstyle > violations. -> [Help 1] > ## Review each Java file in the module for the following and update where > necessary > ### Ensure that Logger initialization is at the top of the class, > immediately after class declartion. It is likely that the code reformat > performed earlier pushed this line after other initializations > **** private static final Logger LOG = > LoggerFactory.getLogger(TestEvents.class); > ### Separate member declaration of different scope/visibility with an empty > line - if it helps readability. Example: > **** private static final Logger logger = > LoggerFactory.getLogger(AuditWriterFactory.class); > **** > **** public static final String AUDIT_FILETYPE_DEFAULT = "json"; > **** public static final String AUDIT_JSON_FILEWRITER_IMPL = > "org.apache.ranger.audit.utils.RangerJSONAuditWriter"; > **** public static final String AUDIT_ORC_FILEWRITER_IMPL = > "org.apache.ranger.audit.utils.RangerORCAuditWriter"; > **** > **** private static volatile AuditWriterFactory me; > **** > **** public Map<String, String> auditConfigs; > **** public Properties props; > ### Join multiline statements into a single line. Example: > **** long timeSinceLastFlush = System.currentTimeMillis() > - lastFlushTime; > **** long timeSinceLastFlush = System.currentTimeMillis() - lastFlushTime; > ### Replace log statements having string concats with parameterized message. > Example: > **** LOG.info("AsyncAuditProvider-stats:" + mName + ": process lifetime" > + ": inLogs=" + lifeTimeInLogCount.get() > + ", outLogs=" + lifeTimeOutLogCount.get() > + ", dropped=" + lifeTimeDropCount.get()); > **** LOG.info("AsyncAuditProvider-stats:{}: process lifetime: inLogs={}, > outLogs={}, dropped={}", mName, lifeTimeInLogCount, lifeTimeOutLogCount, > lifeTimeDropCount); > ### Review Warnings flagged by the IDE by clicking on icon at the top-right > of the source file, and address as many of them as safely possible. However, > please make sure to not make any changes that can break existing usage (see > examples given below). Note that usage of a class (methods, fields) may not > be in Ranger repo - consider plugins for NiFi, Kudu, Trino that are not in > Ranger repo. > #### remove/rename a method or field > #### changing visibility of a method or field > #### changing signature of a method -- This message was sent by Atlassian Jira (v8.20.10#820010)