Peter Palaga created CAMEL-19461:
------------------------------------

             Summary: Newcomer friendly source formatting
                 Key: CAMEL-19461
                 URL: https://issues.apache.org/jira/browse/CAMEL-19461
             Project: Camel
          Issue Type: Improvement
            Reporter: Peter Palaga


As discussed in 
https://github.com/apache/camel/pull/10403#issuecomment-1594287508 , 

I'd like to replace the current checkstyle setup with a more ergonomic tooling 
that would format the sources during the default build. The new configuration 
would require much less attention from both newcomers and regular contributors. 
Most of formatting would be done automatically by Maven plugins without 
additional local configuration in IDE and without the need to fix the 
validation issues manually.

Here is the idea how the individual Checkstyle checks can be replaced: 

* <module name="Translation"/> - no replacement, we do not have any 
translations, do we?
* <module name="SuppressWarningsFilter"/> - no replacement, the annotations 
will be removed
* <module name="Header"> - replace by maven license plugin
* <module name="RegexpMultiline">
        <property name="format" 
value="(\bgpl\b)|(\bgplv2\b)|(\bgnu\sgeneral\spublic\s*license\b)|(\bwww\.gnu\.org\/licenses\/gpl\.txt\b)"/>
        <property name="ignoreCase"  value="true"/>
    </module> - would transform it into a groovy/ant script
* <module name="FileLength"> - no replacement
* <module name="FileTabCharacter"> - done by formatter plugin
* <module name="LineLength"> - done by formatter plugin
* <module name="SuppressWithPlainTextCommentFilter"> - no replacement, the 
inline tags should be removed
* <module name="ConstantName"/><module name="LocalFinalVariableName"/><module 
name="LocalVariableName"/><module name="MemberName"/><module 
name="MethodName"/><module name="PackageName"/><module 
name="ParameterName"/><module name="StaticVariableName"/><module 
name="TypeName"/> - no replacement. I do not think we had many PR in the past 
where these would hit.
* <module name="AvoidStarImport"> - should be done by impsort plugin
* <module name="IllegalImport"/> <!-- defaults to sun.* packages --> I guess 
using banned dependencies of enforcer plugin is a better way to enforce this?
* <module name="RedundantImport"/> done either by impsort or formatter plugins.
* <module name="ImportOrder"> - done by impsort
* <module name="AnonInnerLength"><module 
name="ExecutableStatementCount"><module name="MethodLength"> - no replacement 
* <module name="ModifierOrder"/> - done by formatter
* <module name="RedundantModifier"> - done by formatter IIRC
* <module name="LeftCurly"/><module name="NeedBraces"/><module 
name="RightCurly"/> no replacement
* <module name="CovariantEquals"/><module name="EmptyStatement"/><module 
name="EqualsHashCode"/><module name="MissingSwitchDefault"/><module 
name="StringLiteralEquality"/> - aren't these covered by PMD?
* <module name="IllegalInstantiation"/><module 
name="SimplifyBooleanExpression"/>       <module name="SimplifyBooleanReturn"/> 
- no replacement 
* <module name="NestedIfDepth"><module name="NestedTryDepth"><module 
name="SuperFinalize"/> - no replacement
* <module name="IllegalThrows"> - PMD?
* <module name="PackageDeclaration"/><module name="ReturnCount"> - no 
replacement
* <module name="DeclarationOrder"/> - no replacement
* <module name="ExplicitInitialization"/> - java compiler complains where 
really necessary
* <module name="DefaultComesLast"/><module name="FallThrough"/><module 
name="MultipleVariableDeclarations"/><module 
name="UnnecessaryParentheses"/><module name="FinalClass"/><module 
name="HideUtilityClassConstructor"/><module name="MutableException"><module 
name="ThrowsCount"><module name="BooleanExpressionComplexity"><module 
name="UpperEll"/><module name="DescendantToken"> - no replacement
* <module name="SuppressionCommentFilter"><module 
name="SuppressionCommentFilter"> - no replacement, the inline tags should be 
removed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to