diff options
Diffstat (limited to 'framework/src/onos/tools/build/conf')
5 files changed, 472 insertions, 0 deletions
diff --git a/framework/src/onos/tools/build/conf/pom.xml b/framework/src/onos/tools/build/conf/pom.xml new file mode 100644 index 00000000..e4f8e9dc --- /dev/null +++ b/framework/src/onos/tools/build/conf/pom.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2014 Open Networking Laboratory + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.onosproject</groupId> + <artifactId>onos-base</artifactId> + <version>1</version> + </parent> + + <groupId>org.onosproject</groupId> + <artifactId>onos-build-conf</artifactId> + <version>1.0</version> + <description>Various ONOS build settings</description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + +</project> + diff --git a/framework/src/onos/tools/build/conf/src/main/resources/onos/checkstyle.xml b/framework/src/onos/tools/build/conf/src/main/resources/onos/checkstyle.xml new file mode 100644 index 00000000..2908c891 --- /dev/null +++ b/framework/src/onos/tools/build/conf/src/main/resources/onos/checkstyle.xml @@ -0,0 +1,295 @@ +<?xml version="1.0"?> +<!-- + ~ Copyright 2014 Open Networking Laboratory + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<!DOCTYPE module PUBLIC + "-//Puppy Crawl//DTD Check Configuration 1.3//EN" + "http://www.puppycrawl.com/dtds/configuration_1_3.dtd"> + + +<!-- + + Checkstyle configuration that checks the sun coding conventions from: + + - the Java Language Specification at + http://java.sun.com/docs/books/jls/second_edition/html/index.html + + - the Sun Code Conventions at http://java.sun.com/docs/codeconv/ + + - the Javadoc guidelines at + http://java.sun.com/j2se/javadoc/writingdoccomments/index.html + + - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html + + - some best practices + + Checkstyle is very configurable. Be sure to read the documentation at + http://checkstyle.sf.net (or in your downloaded distribution). + + Most Checks are configurable, be sure to consult the documentation. + + To completely disable a check, just comment it out or delete it from the file. + + Finally, it is worth reading the documentation. + +--> + + +<!-- + The default severity setting in checkstyle is 'error', so some + of the rules below are configured to change the severity to + 'warning'. Over time, these 'warning' settings should be + removed as more of the ONOS source code is modified to + follow the recommended rules. +--> + + + +<module name="Checker"> + <!-- + If you set the basedir property below, then all reported file + names will be relative to the specified directory. See + http://checkstyle.sourceforge.net/5.x/config.html#Checker + + <property name="basedir" value="${basedir}"/> + --> + <!-- Checks that a package-info.java file exists for each package. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage --> + <!-- ONOS does not currently supply package level Javadoc information + in package-info files --> + <!-- <module name="JavadocPackage"/> --> + + <!-- Checks whether files end with a new line. --> + <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile --> + <module name="NewlineAtEndOfFile"/> + + <!-- Checks that property files contain the same keys. --> + <!-- See http://checkstyle.sf.net/config_misc.html#Translation --> + <module name="Translation"/> + + <!-- Checks for Size Violations. --> + <!-- See http://checkstyle.sf.net/config_sizes.html --> + <module name="FileLength"/> + + <!-- Checks for whitespace --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="FileTabCharacter"/> + + <!-- Miscellaneous other checks. --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <module name="RegexpSingleline"> + <property name="format" value="\s+$"/> + <property name="minimum" value="0"/> + <property name="maximum" value="0"/> + <property name="message" value="Line has trailing spaces."/> + </module> + + <!-- Checks for Headers --> + <!-- See http://checkstyle.sf.net/config_header.html --> + <!-- <module name="Header"> --> + <!-- <property name="headerFile" value="${checkstyle.header.file}"/> --> + <!-- <property name="fileExtensions" value="java"/> --> + <!-- </module> --> + + <module name="SuppressionCommentFilter"> + <property name="offCommentFormat" value="(CHECKSTYLE\:OFF|Generated by the protocol buffer compiler.)"/> + <property name="onCommentFormat" value="CHECKSTYLE:ON"/> + </module> + + <module name="SuppressWithNearbyCommentFilter"> + <property name="commentFormat" value="CHECKSTYLE IGNORE THIS LINE" /> + <property name="checkFormat" value=".*" /> + <property name="influenceFormat" value="0" /> + </module> + + <!-- Example: // CHECKSTYLE IGNORE FinalClass FOR NEXT 1 LINES --> + <module name="SuppressWithNearbyCommentFilter"> + <property name="commentFormat" value="CHECKSTYLE IGNORE (\w+) FOR NEXT (\d+) LINES"/> + <property name="checkFormat" value="$1"/> + <property name="influenceFormat" value="$2"/> + </module> + + <module name="TreeWalker"> + + <module name="FileContentsHolder"/> + <!-- Checks for Javadoc comments. --> + <!-- See http://checkstyle.sf.net/config_javadoc.html --> + <module name="JavadocMethod"> + <property name="severity" value="warning"/> + <property name="allowUndeclaredRTE" value="true"/> + </module> + <module name="JavadocType"> + <property name="severity" value="warning"/> + </module> + <module name="JavadocVariable"> + <!-- Suppress check for private member Javadocs. + Possibly revist fixing these. --> + <property name="scope" value="public"/> + <property name="severity" value="warning"/> + </module> + <module name="JavadocStyle"/> + <!-- @author tag should not be used --> + <module name="WriteTag"> + <property name="tag" value="@author"/> + <property name="tagFormat" value="\S"/> + <property name="severity" value="ignore"/> + <property name="tagSeverity" value="error"/> + </module> + + + <!-- Checks for Naming Conventions. --> + <!-- See http://checkstyle.sf.net/config_naming.html --> + <module name="ConstantName"> + <!-- ONOS allows the name "log" for static final Loggers --> + <property name="format" + value="^log$|^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/> + </module> + <module name="LocalFinalVariableName"/> + + <module name="LocalVariableName"/> + + <module name="MemberName"/> + <module name="MethodName"/> + <module name="PackageName"/> + <module name="ParameterName"/> + <module name="StaticVariableName"/> + <module name="TypeName"/> + + <!-- Checks for imports --> + <!-- See http://checkstyle.sf.net/config_import.html --> + <module name="AvoidStarImport"> + <property name="allowStaticMemberImports" value="true"/> + </module> + <module name="IllegalImport"/> + <!-- defaults to sun.* packages --> + <module name="RedundantImport"/> + <module name="UnusedImports"/> + + + <!-- Checks for Size Violations. --> + <!-- See http://checkstyle.sf.net/config_sizes.html --> + <module name="LineLength"> + <!-- ONOS standard usage is 80 columns, but we allow up + to 120 to not break the build. --> + <property name="max" value="120"/> + <property name="ignorePattern" value="^import"/> + </module> + <module name="MethodLength"> + <property name="max" value="200"/> + </module> + + <module name="ParameterNumber"> + <property name="max" value="15"/> + <property name="tokens" value="CTOR_DEF"/> + </module> + <!-- Checks for whitespace --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="EmptyForIteratorPad"/> + <module name="GenericWhitespace"/> + <module name="MethodParamPad"/> + <module name="NoWhitespaceAfter"/> + <module name="NoWhitespaceBefore"/> + + <!-- Disabled for ONOS. Default rules specify undesired behavior for the '?' operator --> + <!-- <module name="OperatorWrap"/> --> + <module name="ParenPad"/> + <module name="TypecastParenPad"/> + <module name="WhitespaceAfter"/> + <module name="WhitespaceAround"> + <property name="allowEmptyConstructors" value="true"/> + <property name="allowEmptyMethods" value="true"/> + </module> + + + + <!-- Modifier Checks --> + <!-- See http://checkstyle.sf.net/config_modifiers.html --> + <module name="ModifierOrder"/> + + <!-- Disabled for ONOS to allow use of public --> + <!-- modifiers in interfaces. --> + <!-- <module name="RedundantModifier"/> --> + + + <!-- Checks for blocks. You know, those {}'s --> + <!-- See http://checkstyle.sf.net/config_blocks.html --> + <module name="AvoidNestedBlocks"> + <!-- ONOS alows declarations inside of switch case blocks --> + <property name="allowInSwitchCase" value="true"/> + </module> + <module name="EmptyBlock"/> + <module name="LeftCurly"/> + <module name="NeedBraces"/> + <module name="RightCurly"/> + + <!-- Checks for common coding problems --> + <!-- See http://checkstyle.sf.net/config_coding.html --> + <!-- ONOS allows conditional operators --> + <!-- <module name="AvoidInlineConditionals"/> --> + <module name="EmptyStatement"/> + <module name="EqualsHashCode"/> + + <module name="HiddenField"> + <property name="ignoreSetter" value="true"/> + <property name="ignoreConstructorParameter" value="true"/> + </module> + + <module name="IllegalInstantiation"/> + <module name="InnerAssignment"/> + + <!-- Many violations of this rule present, revist in a + subsequent round of cleanups --> + <!-- <module name="MagicNumber"/> --> + <module name="MissingSwitchDefault"/> + + <module name="RedundantThrows"> + <property name="allowSubclasses" value="true"/> + </module> + + <module name="SimplifyBooleanExpression"/> + <module name="SimplifyBooleanReturn"/> + + <!-- Checks for class design --> + <!-- See http://checkstyle.sf.net/config_design.html --> + <!-- ONOS produces many warnings of this type. + Fixing all of these is outside the scope of the current cleanup. --> + <!-- <module name="DesignForExtension"/> --> + <module name="FinalClass"/> + + <module name="HideUtilityClassConstructor"/> + + <module name="InterfaceIsType"/> + + <module name="VisibilityModifier"> + <property name="severity" value="warning"/> + </module> + + + + <!-- Miscellaneous other checks. --> + <!-- See http://checkstyle.sf.net/config_misc.html --> + <module name="ArrayTypeStyle"/> + + <!-- Many violations of this rule currently, too many to fix + in the current cleanup. --> + <!-- <module name="FinalParameters"/> --> + <!-- ONOS allows TODO markers in checked in source code --> + <!-- <module name="TodoComment"/> --> + <module name="UpperEll"/> + + + </module> + + </module> diff --git a/framework/src/onos/tools/build/conf/src/main/resources/onos/findbugs-suppressions.xml b/framework/src/onos/tools/build/conf/src/main/resources/onos/findbugs-suppressions.xml new file mode 100644 index 00000000..2ebfa1de --- /dev/null +++ b/framework/src/onos/tools/build/conf/src/main/resources/onos/findbugs-suppressions.xml @@ -0,0 +1,30 @@ +<!-- + ~ Copyright 2014 Open Networking Laboratory + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<FindBugsFilter> + + <!-- False positives on calls to CompletableFuture methods with a null + parameter --> + <Match> + <Class name="~org\.onosproject\.store\.service\.impl\..*" /> + <Bug pattern="NP_NONNULL_PARAM_VIOLATION" /> + </Match> + + <!-- Filter out testing application --> + <Match> + <Class name="~org\.onosproject\.foo\..*" /> + </Match> + +</FindBugsFilter> diff --git a/framework/src/onos/tools/build/conf/src/main/resources/onos/pmd.xml b/framework/src/onos/tools/build/conf/src/main/resources/onos/pmd.xml new file mode 100644 index 00000000..68d0b219 --- /dev/null +++ b/framework/src/onos/tools/build/conf/src/main/resources/onos/pmd.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2014 Open Networking Laboratory + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + name="ONOS Rules" + xmlns="http://pmd.sf.net/ruleset/1.0.0" + xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd" + xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" > + + <description>ONOS PMD rules</description> + + <rule ref="rulesets/java/unnecessary.xml" > + <exclude name="UselessParentheses" /> + </rule> + <rule ref="rulesets/java/basic.xml"> + <exclude name="EmptyCatchBlock"/> + </rule> + <rule ref="rulesets/java/basic.xml/EmptyCatchBlock"> + <properties> + <property name="allowCommentedBlocks" value="true"/> + </properties> + </rule> + <rule ref="rulesets/java/unusedcode.xml"> + <!-- Explicit public keyword in interface methods is acceptable --> + <exclude name="UnusedModifier" /> + </rule> + <rule ref="rulesets/java/imports.xml"/> + <rule ref="rulesets/java/optimizations.xml"> + <exclude name="LocalVariableCouldBeFinal" /> + <exclude name="MethodArgumentCouldBeFinal" /> + <exclude name="AvoidInstantiatingObjectsInLoops" /> + </rule> + + <rule ref="rulesets/java/strings.xml"> + <exclude name="AvoidDuplicateLiterals" /> + </rule> + <rule ref="rulesets/java/braces.xml"/> + <rule ref="rulesets/java/naming.xml"> + <exclude name="AvoidInstantiatingObjectsInLoops" /> + <exclude name="ShortClassName" /> + <exclude name="ShortMethodName" /> + <exclude name="ShortVariable" /> + <exclude name="LongVariable" /> + </rule> + <rule ref="rulesets/java/naming.xml/VariableNamingConventions"> + <properties> + <!-- ONOS allows the name "log" for static final Loggers --> + <property name="violationSuppressRegex" value=".*'log'.*"/> + </properties> + </rule> + + <rule ref="rulesets/java/clone.xml"/> + <rule ref="rulesets/java/strictexception.xml"/> + <rule ref="rulesets/java/design.xml"> + <exclude name="GodClass" /> + </rule> + <rule ref="rulesets/java/coupling.xml"> + <exclude name="LawOfDemeter" /> + <exclude name="ExcessiveImports" /> + <!-- Suppress Removed misconfigured rule warning --> + <exclude name="LoosePackageCoupling" /> + </rule> +</ruleset> + diff --git a/framework/src/onos/tools/build/conf/src/main/resources/onos/suppressions.xml b/framework/src/onos/tools/build/conf/src/main/resources/onos/suppressions.xml new file mode 100644 index 00000000..a71d941f --- /dev/null +++ b/framework/src/onos/tools/build/conf/src/main/resources/onos/suppressions.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2014 Open Networking Laboratory + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<!DOCTYPE suppressions PUBLIC "-//Puppy Crawl//DTD Suppressions 1.1//EN" "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd"> + +<suppressions> + + <suppress files="org.apache.karaf.branding.*" checks="[a-zA-Z0-9]*"/> + + <suppress files=".*" checks="FinalParametersCheck"/> + <suppress files=".*" checks="MagicNumbersCheck"/> + <suppress files=".*" checks="DesignForExtensionCheck"/> + <suppress files=".*" checks="TodoCommentCheck"/> + <suppress files=".*" checks="AvoidInlineConditionalsCheck"/> + <suppress files=".*" checks="OperatorWrapCheck"/> + <suppress files=".*" checks="HiddenField"/> + <suppress files=".java" checks="NewlineAtEndOfFile"/> + +</suppressions> |