@@ -0,0 +1,1880 @@
+package org.mutabilitydetector;%0A%0Aimport static org.mutabilitydetector.unittesting.MutabilityAsserter.configured;%0Aimport static org.mutabilitydetector.unittesting.MutabilityMatchers.areNotImmutable;%0A%0Aimport org.junit.Test;%0Aimport org.mutabilitydetector.unittesting.MutabilityAsserter;%0A%0Apublic class ConfigureClassesToBeImmutable %7B%0A    %0A    public static final MutabilityAsserter MUTABILITY = configured(new ConfigurationBuilder() %7B%0A        @Override public void configure() %7B%0A            overrideAsDefinitelyImmutable(DigitsOfPi.class);%0A        %7D%0A    %7D);%0A    %0A    @Test%0A    public void canConfigureClassesToBeOverrideMutabilityDetectorsResult() throws Exception %7B%0A        MUTABILITY.assertImmutable(DigitsOfPiFormatter.class);%0A    %7D%0A    %0A    @Test%0A    public void hardcodedResultsAreIgnoredWhenTestingClassDirectly() throws Exception %7B%0A        MUTABILITY.assertInstancesOf(DigitsOfPi.class, areNotImmutable());%0A    %7D%0A%0A    %0A    /**%0A     * MutabilityDetector is wrong, %7B@link DigitsOfPi%7D is immutable.%0A     */%0A    static final class DigitsOfPi %7B%0A        private final int%5B%5D sillyWayToStorePi = new int%5B%5D %7B 3, 141 %7D;%0A        %0A        public int piDigitsLeftOfDecimalPlace() %7B%0A            return sillyWayToStorePi%5B0%5D;%0A        %7D%0A%0A        public int piDigitsRightOfDecimalPlace() %7B%0A            return sillyWayToStorePi%5B1%5D;%0A        %7D%0A    %7D%0A    %0A    /**%0A     * %7B@link DigitsOfPiFormatter%7D is considered mutable because of the%0A     * transitivity of mutability, and the incorrect analysis performed%0A     * on %7B@link DigitsOfPi%7D.%0A     */%0A    static final class DigitsOfPiFormatter %7B%0A        private final DigitsOfPi other;%0A%0A        public DigitsOfPiFormatter(DigitsOfPi other) %7B%0A            this.other = other;%0A        %7D%0A        %0A        public String formatPi() %7B%0A            return other.piDigitsLeftOfDecimalPlace() + %22.%22 + other.piDigitsRightOfDecimalPlace();%0A        %7D%0A        %0A    %7D%0A%7D%0A

Update example of runtime analysis to reflect removal of RequestedAnalysis type from the AnalysisSession.