<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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 name="Custom Rules"
         xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">

    <description>
        My custom rules
    </description>
    <rule name="StaticFieldsMustBeImmutable"
          message="All static final fields must be immutable objects. No mutable static state is allowed."
          language="java"
          class="org.apache.geode.pmd.StaticFieldsMustBeImmutable">
        <description>
            Geode does not allow mutable static fields within the product code. All static
            fields must be marked final and be immutable objects.

            If the value of your static field is actually immutable, you can annotate that
            class or the field itself with @Immutable, and it will be ignored by this rule.
        </description>
        <priority>3</priority>
        <example>
            <![CDATA[
              public class SomeClass {
                //This field could be mutated by some outside code
                private static final Map field = new HashMap();
              }
			]]>
        </example>
    </rule>
</ruleset>