<?xml version="1.0"?>
<?xml-stylesheet href="/puzzles.xsl" type="text/xsl"?>
<puzzles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.0pdd.com/puzzles.xsd" version="0.30.16" date="2019-05-01T15:57:39+00:00">
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>8-67eb3954</id>
    <ticket>8</ticket>
    <file>pom.xml</file>
    <lines>280-283</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>This test is not working. I don't know what exactly is going on. Seems like ASM is not working in maven-dependency-analyzer. I copied implementation from maven-dependency-plugin, almost literally.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>83-6c3a2ab9</id>
    <ticket>83</ticket>
    <file>src/main/java/com/qulice/maven/DefaultValidatorsProvider.java</file>
    <lines>47-47</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>When it works, add {@code DependenciesValidator()} to this list</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>83-d32bcbba</id>
    <ticket>83</ticket>
    <file>src/main/java/com/qulice/maven/DefaultValidatorsProvider.java</file>
    <lines>62-62</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>When it works, add {@code FindBugsValidator()} to this list</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/tpc2/qulice/issues/176" closed="2018-04-27T15:55:18+00:00">176</issue>
    <id>13-53c72388</id>
    <ticket>13</ticket>
    <file>qulice-xml/src/test/java/com/qulice/xml/XmlValidatorTest.java</file>
    <lines>48-49</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>The test doesn't work because functionality is not implemented yet.</body>
    <children>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>176-99bef10b</id>
        <ticket>176</ticket>
        <file>qulice-xml/src/main/java/com/qulice/xml/XmlValidator.java</file>
        <lines>83-84</lines>
        <estimate>30</estimate>
        <role>DEV</role>
        <author>unknown</author>
        <email>unknown@0pdd.com</email>
        <time>2016-12-14T08:42:37Z</time>
        <body>Perform refactoring: remove this method, use Environment.files() instead.</body>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>55-7f8cd1da</id>
    <ticket>55</ticket>
    <file>qulice-checkstyle/src/test/resources/com/qulice/checkstyle/ChecksTest/PuzzleFormatCheck/Invalid.java</file>
    <lines>14-15</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>First line is correct, but second line is impropertly indented</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>555-31c30df2</id>
    <ticket>555</ticket>
    <file>qulice-checkstyle/src/test/resources/com/qulice/checkstyle/ChecksTest/PuzzleFormatCheck/Valid.java</file>
    <lines>7-7</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Some text with proper indentation of the second and all consecutive lines.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>JIRA-7643-d253cd9d</id>
    <ticket>JIRA</ticket>
    <file>qulice-checkstyle/src/test/resources/com/qulice/checkstyle/ChecksTest/PuzzleFormatCheck/Valid.java</file>
    <lines>10-10</lines>
    <estimate>90</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Longer format of puzzle marker</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>44-99bef10b</id>
    <ticket>44</ticket>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/CheckstyleValidator.java</file>
    <lines>206-207</lines>
    <estimate>60</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Perform refactoring: remove this method, use Environment.files() instead.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>44-c0ef14bd</id>
    <ticket>44</ticket>
    <file>qulice-pmd/src/main/java/com/qulice/pmd/Files.java</file>
    <lines>56-58</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Perform refactoring: remove this method, use Environment.files() instead, in order to simplify files manipulations.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-3eabd944</id>
    <ticket>1</ticket>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/ConstantUsageCheck.java</file>
    <lines>42-46</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>ConstantUsageCheck doesn't work. This check is still in development and is not used in a released version. Let's try to fix it and enable its validation inside ChecksTest. Also, don't forget to enable it inside checks.xml and make sure all maven-invoker-plugin tests pass</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-14ec496b</id>
    <ticket>1</ticket>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/NonStaticMethodCheck.java</file>
    <lines>46-50</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>NonStaticMethodCheck doesn't work. This check is still in development and is not used in a released version. Let's try to fix it and enable its validation inside ChecksTest. Also, don't forget to enable it inside checks.xml and make sure all maven-invoker-plugin tests pass</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>143-2a590ee4</id>
    <ticket>143</ticket>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/PuzzleDuplicateCheck.java</file>
    <lines>46-46</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Add handling of non-java files (e.g. xml, groovy).</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>153-1c44959f</id>
    <ticket>153</ticket>
    <file>qulice-spi/src/main/java/com/qulice/spi/Environment.java</file>
    <lines>86-90</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Using File as classpath element is dangerous, as it won't work under Windows without conversion - classpaths always use slashes, while File objects under Windows will always use backslashes. This method should return a collection of elements that are not affected by OS.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>67-ea924b79</id>
    <ticket>67</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/PomXpathValidator.java</file>
    <lines>51-52</lines>
    <estimate>60</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Implement integration tests for PomXpathValidator. Validator should obtain xpath queries from plugin configuration</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>148-3add3478</id>
    <ticket>148</ticket>
    <file>qulice-codenarc/src/main/java/com/qulice/codenarc/CodeNarcValidator.java</file>
    <lines>46-50</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Create integration tests to check exclusion. Lets implement integration tests to check that exclusion patterns propagated to CodeNarc Validator. For syntax example see http://www.qulice.com/qulice-maven-plugin/example-exclude.html</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>152-5f54d891</id>
    <ticket>152</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DefaultMavenEnvironment.java</file>
    <lines>56-58</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Refactor excludes method. Refactor excludes method to return Collection of excludes. Move joining excludes directly to CodeNarcValidator</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/250" closed="2018-04-27T15:55:19+00:00">250</issue>
    <id>152-ea9dc1d7</id>
    <ticket>152</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DuplicateFinderValidator.java</file>
    <lines>40-40</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Maven-duplicate-finder-plugin should support exclusions. Let's add exclusions of following formats (examples): - duplicate:about.html - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5 - duplicate:org.codehaus.groovy.ast.expr.RegexExpression See https://github.com/tpc2/qulice/issues/152#issuecomment-39028953 for details</body>
    <children>
      <puzzle alive="true">
        <issue>unknown</issue>
        <id>250-bd6aad88</id>
        <ticket>250</ticket>
        <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DuplicateFinderValidator.java</file>
        <lines>58-60</lines>
        <estimate>30</estimate>
        <role>DEV</role>
        <author>unknown</author>
        <email>unknown@0pdd.com</email>
        <time>2016-12-14T08:42:37Z</time>
        <body>Fix a problem with maven configuration of duplicate finder plugin in commented out code below, and enable duplicate-finder-ignore-deps IT in pom.xml.</body>
        <children/>
      </puzzle>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>250-70b42373</id>
        <ticket>250</ticket>
        <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DuplicateFinderValidator.java</file>
        <lines>45-53</lines>
        <estimate>30</estimate>
        <author>unknown</author>
        <email>unknown@0pdd.com</email>
        <time>2016-12-14T08:42:37Z</time>
        <body>Maven-duplicate-finder-plugin should support exclusions. Let's add exclusions of following formats (examples): - duplicate:about.html - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5 - duplicate:org.codehaus.groovy.ast.expr.RegexExpression - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5|xml-apis:xml-apis:1.0.0|about.html - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5|xml-apis:xml-apis:1.0.0|org.w3c.dom.UserDataHandler See https://github.com/tpc2/qulice/issues/152#issuecomment-39028953 and https://github.com/teamed/qulice/issues/250 for details</body>
        <role>IMP</role>
        <children/>
      </puzzle>
      <puzzle alive="true">
        <issue>unknown</issue>
        <id>250-1b26b28c</id>
        <ticket>250</ticket>
        <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DuplicateFinderValidator.java</file>
        <lines>44-54</lines>
        <estimate>30</estimate>
        <body>Maven-duplicate-finder-plugin should support exclusions. Let's add exclusions of following formats (examples): - duplicate:about.html - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5 - duplicate:org.codehaus.groovy.ast.expr.RegexExpression - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5 |xml-apis:xml-apis:1.0.0|about.html - duplicate:org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5 |xml-apis:xml-apis:1.0.0|org.w3c.dom.UserDataHandler See https://github.com/tpc2/qulice/issues/152#issuecomment-39028953 and https://github.com/teamed/qulice/issues/250 for details</body>
        <role>IMP</role>
        <author>krzyk</author>
        <email>Krzysztof.Krason@sabre.com</email>
        <time>2014-06-24T19:10:43Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>152-25766266</id>
    <ticket>152</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DuplicateFinderValidator.java</file>
    <lines>47-49</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Maven-duplicate-finder-plugin integration tests. Let's add integration tests to check that all types of excludes work properly for maven-duplicate-finder-plugin</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/251" closed="2018-04-27T15:55:20+00:00">251</issue>
    <id>151-1b555c82</id>
    <ticket>151</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/JslintValidator.java</file>
    <lines>40-42</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Integration tests for jslint-maven-plugin. Let's implement integration tests for jslint-maven-plugin to be sure it is called.</body>
    <children>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>251-723b0584</id>
        <ticket>251</ticket>
        <file>qulice-maven-plugin/pom.xml</file>
        <lines>300-303</lines>
        <estimate>30</estimate>
        <role>DEV</role>
        <author>unknown</author>
        <email>unknown@0pdd.com</email>
        <time>2016-12-14T08:42:37Z</time>
        <body>Rename volations.JS to violations.js after a new version of parent is published (that uses qulice which has jslint configured to use src/main for the js file locations) and uncomment following line.</body>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/252" closed="2018-04-27T15:55:21+00:00">252</issue>
    <id>1-75aae825</id>
    <ticket>1</ticket>
    <file>qulice-xml/src/test/java/com/qulice/xml/XmlValidatorTest.java</file>
    <lines>48-51</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Let's implement a proper validation of XML document formatting (!). Not just XML validity, but formatting of the document, including indentation, spaces, quotation marks used, etc.</body>
    <children>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>252-5858aa84</id>
        <ticket>252</ticket>
        <file>qulice-xml/src/main/java/com/qulice/xml/XmlValidator.java</file>
        <lines>54-56</lines>
        <estimate>30</estimate>
        <author>unknown</author>
        <email>unknown@0pdd.com</email>
        <time>2016-12-14T08:42:37Z</time>
        <body>Use better approach to display differences between correctly and incorrectly formatted files, maybe use google-diff-match-patch.</body>
        <role>IMP</role>
        <children/>
      </puzzle>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>252-a79829e3</id>
        <ticket>252</ticket>
        <file>qulice-xml/src/main/java/com/qulice/xml/XmlValidator.java</file>
        <lines>70-71</lines>
        <estimate>30</estimate>
        <author>unknown</author>
        <email>unknown@0pdd.com</email>
        <time>2016-12-14T08:42:37Z</time>
        <body>Fix all test cases to pass with formating check enabled and change default value to true.</body>
        <role>IMP</role>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-3859ec8f</id>
    <ticket>1</ticket>
    <file>qulice-checkstyle/src/main/resources/com/qulice/checkstyle/checks.xml</file>
    <lines>366-368</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>This check leads to NullPointerException when run on a bit source code base. Just try to turn it on and run through Qulice code base. It throws NPE almost at every file.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-3961fc83</id>
    <ticket>1</ticket>
    <file>qulice-checkstyle/src/main/resources/com/qulice/checkstyle/checks.xml</file>
    <lines>372-377</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>The check complains about all methods in all unit tests, because they are not using "this", but are in reality static methods. Even though this complain is totally valid, we can't do anything about this, since JUnit is designed that way. Let's introduce a parameter in this check, which will allow to excluse classes by pattern</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-d234717c</id>
    <ticket>1</ticket>
    <file>qulice-checkstyle/src/main/resources/com/qulice/checkstyle/checks.xml</file>
    <lines>366-369</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>NPE when parsing interfaces with embedded classes. This check fails with an NPE, when parsing an interface with a final class inside it. Let's try to reproduce and fix. Once fixed, remove this puzzle and enable the check again.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>1-6974f5e9</id>
    <ticket>1</ticket>
    <file>qulice-checkstyle/src/main/resources/com/qulice/checkstyle/checks.xml</file>
    <lines>225-229</lines>
    <estimate>30</estimate>
    <role>DEV</role>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>RedundantThrows check complains about custom exceptions, even in the same package. An exception is defined in the same package, and a method throws it. This checkstyle check complains. Let's fix this problem and enable the check.</body>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/352" closed="2018-04-27T15:55:23+00:00">352</issue>
    <id>149-fa59b6ee</id>
    <ticket>149</ticket>
    <file>qulice-findbugs/src/main/java/com/qulice/findbugs/FindBugsValidator.java</file>
    <lines>66-71</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Create integration tests to check that FindBugsValidator can exclude classes from check. see http://findbugs.sourceforge.net/manual/filter.html for details of findbug filter patterns. Don't forget to update example-exclude.apt.vm with example for findbugs exclusion.</body>
    <role>IMP</role>
    <children>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>352-f6cf61e2</id>
        <ticket>352</ticket>
        <file>qulice-maven-plugin/src/it/findbugs-exclude/pom.xml</file>
        <lines>51-53</lines>
        <estimate>30</estimate>
        <body>Need to add multiline check after issue #350 resolved. Now only one class can be excluded Don't forget update example-exclude.apt.vm</body>
        <role>IMP</role>
        <author>alevohin</author>
        <email>alevohin@mail.ru</email>
        <time>2015-01-16T04:23:10Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>149-29796bc9</id>
    <ticket>149</ticket>
    <file>qulice-findbugs/src/test/java/com/qulice/findbugs/FindBugsValidatorTest.java</file>
    <lines>91-94</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Add support for multiline excludes. Use xembly Directives to generate xml on the fly. Beware, excludes may contain coma separated list of exclude patterns. When done, remove Ignore annotation on this test.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>262-9a421520</id>
    <ticket>262</ticket>
    <file>qulice-maven-plugin/src/it/checkstyle-exceptions/verify.groovy</file>
    <lines>37-41</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Checkstyle doesn't have current module in classpath (either because RedundantThrows/AbstractTypeAwareCheck have wrong implementation of resolveClass() or qulice provides wrong classpath to the module. When this is fixed uncomment following three checks and remove "suppressLoadErrors" from RedundantThrows configuration in checks.xml.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>123-3eeb54ce</id>
    <ticket>123</ticket>
    <file>qulice-maven-plugin/src/it/checkstyle-violations/src/main/resources/some.xml</file>
    <lines>3-4</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Make this a better text.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>60-2649436b</id>
    <ticket>60</ticket>
    <file>qulice-maven-plugin/src/it/findbugs-violations/verify.groovy</file>
    <lines>36-39</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>This validation doesn't work at the moment because of incorrect classpath generation in DefaultMavenEnvironment. There is some problem which leads to incomplete classpath being passed to com.qulice.findbugs.Wrap class.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>246-77de21a5</id>
    <ticket>246</ticket>
    <file>qulice-xml/src/test/java/com/qulice/xml/XmlValidatorTest.java</file>
    <lines>91-95</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>XmlValidator should be able to log IO problems (for example, inability to connect to a server) and ignore them (see ticket #243).\ However, {@link com.jcabi.xml.StrictXML} class outright throws an IllegalArgumentException in such cases. Let's find a way to detect whether a failure was caused by such IO errorsand fix this test.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>260-dc51e6f4</id>
    <ticket>260</ticket>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/MethodBodyCommentsCheck.java</file>
    <lines>50-51</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Add handling of multiple anonymous classes inside methods by looking at the recursive tree.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>260-1576b183</id>
    <ticket>260</ticket>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/MethodBodyCommentsCheck.java</file>
    <lines>52-53</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Add handling of anonymous classes outside of variable definitions, e.g. in for, try/catch, expression, etc.</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>281-2350cdf0</id>
    <ticket>281</ticket>
    <file>qulice-maven-plugin/pom.xml</file>
    <lines>296-302</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Dependency-violations is broken. As it uses maven-dependency-analyzer 1.4. The latter depends on ASM3. We can't add ASM3 in classpath as findbugs and PMD depends on ASM5. Find a way to upgrade maven-dependency-analyzer to use ASM5. After fix uncomment next line

dependency-violations/pom.xml</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>308-45ddd042</id>
    <ticket>308</ticket>
    <file>pom.xml</file>
    <lines>134-136</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>Remove this declaration when parent pom would depends on qulice-maven-plugin:0.12 --&gt;</body>
    <role>IMP</role>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/370" closed="2018-04-27T15:55:23+00:00">370</issue>
    <id>333-37771839</id>
    <ticket>333</ticket>
    <file>qulice-findbugs/pom.xml</file>
    <lines>207-208</lines>
    <estimate>30</estimate>
    <author>unknown</author>
    <email>unknown@0pdd.com</email>
    <time>2016-12-14T08:42:37Z</time>
    <body>When new jcabi is released based on qulice &gt; 0.11, remove the line below.</body>
    <role>IMP</role>
    <children>
      <puzzle alive="false">
        <issue>unknown</issue>
        <id>370-69914ea1</id>
        <ticket>370</ticket>
        <file>qulice-maven-plugin/pom.xml</file>
        <lines>379-380</lines>
        <estimate>30</estimate>
        <body>Fix all FindBugs problems reported in qulice-maven-plugin and remove the FindBugs exclude below.</body>
        <role>IMP</role>
        <author>krzyk</author>
        <email>Krzysztof.Krason@gmail.com</email>
        <time>2016-01-01T17:08:33Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>339-6f043704</id>
    <ticket>339</ticket>
    <file>qulice-gradle-plugin/src/main/java/com/qulice/gradle/QulicePlugin.java</file>
    <lines>47-47</lines>
    <estimate>30</estimate>
    <body>Design validator classes for Gradle.</body>
    <role>IMP</role>
    <author>Dmitri Pisarenko</author>
    <email>dp@altruix.co</email>
    <time>2015-01-17T13:25:27Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>280-4ce4d8c5</id>
    <ticket>280</ticket>
    <file>qulice-xml/pom.xml</file>
    <lines>66-72</lines>
    <estimate>30</estimate>
    <body>This version of jcabi-xml retries if the connection to the host of the schema document is reset. However I don't know how to trigger the "connection reset" condition for testing. We should find a way to test whether it does retry if this happens. See issues https://github.com/jcabi/jcabi-xml/issues/32 and https://github.com/teamed/qulice/issues/280 for background details.</body>
    <role>IMP</role>
    <author>Carlos Miranda</author>
    <email>carlosmiranda@users.noreply.github.com</email>
    <time>2015-01-12T13:03:58Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>337-8e901889</id>
    <ticket>337</ticket>
    <file>qulice-ant/src/main/java/com/qulice/ant/AntEnvironment.java</file>
    <lines>168-168</lines>
    <estimate>30</estimate>
    <body>Implement exclude and excludes for ant QuliceTask</body>
    <role>IMP</role>
    <author>alevohin</author>
    <email>alevohin@mail.ru</email>
    <time>2015-01-19T20:22:09Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>337-3d7cb361</id>
    <ticket>337</ticket>
    <file>qulice-ant/src/test/java/com/qulice/ant/AntEnvironmentTest.java</file>
    <lines>40-40</lines>
    <estimate>30</estimate>
    <body>Implement unit tests at AntEnvironmentTest</body>
    <role>IMP</role>
    <author>alevohin</author>
    <email>alevohin@mail.ru</email>
    <time>2015-01-19T20:22:09Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>337-8e901889</id>
    <ticket>337</ticket>
    <file>qulice-ant/src/main/java/com/qulice/ant/AntEnvironment.java</file>
    <lines>168-168</lines>
    <estimate>30</estimate>
    <body>Implement exclude and excludes for ant QuliceTask</body>
    <role>IMP</role>
    <author>Yegor Bugayenko</author>
    <email>yegor@tpc2.com</email>
    <time>2015-06-30T03:38:00Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>469-1b2c894b</id>
    <ticket>469</ticket>
    <file>qulice-xml/src/main/java/com/qulice/xml/XmlValidator.java</file>
    <lines>173-179</lines>
    <estimate>30</estimate>
    <body>Remove the method below and find a way to format tags correctly in XML. Attributes should be indented by 4 spaces, just like XML tags, but in IT xml-violations there is a tag that our Prettifier want to be indented by 3 spaces which is wrong. Another problem is that in the parent tag, attributes are indented to match the first attribute, this is also wrong - all attributes on new line should be indented by 4 spaces.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2015-10-17T08:33:41Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>447-94597ea9</id>
    <ticket>447</ticket>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <lines>214-216</lines>
    <estimate>30</estimate>
    <body>Right now ConstantUsageCheck takes into account usage of constants inside method annotations, add handling of constants used in field and class annotations.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2015-11-14T12:14:11Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>412-bd044e76</id>
    <ticket>412</ticket>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <lines>51-53</lines>
    <estimate>30</estimate>
    <body>Split this class into smaller ones and remove PMD exclude `TooManyMethods`. Good candidates for moving out of this class are all that use `validateCheckstyle` method.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2015-11-18T17:03:50Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>544-c37b2cc3</id>
    <ticket>544</ticket>
    <file>qulice-pmd/src/test/java/com/qulice/pmd/PMDEmptyTest.java</file>
    <lines>48-50</lines>
    <estimate>30</estimate>
    <body>Tests below pass only when run sequentially, when they are run in parallel some of them start to fail. Please fix the tests below and remove override of maven-surefire-plugin configuration in qulice-pmd pom.xml</body>
    <role>IMP</role>
    <author>Prahlad Yeri</author>
    <email>prahladyeri@yahoo.com</email>
    <time>2016-01-06T17:10:39Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>569-cd6c2a10</id>
    <ticket>569</ticket>
    <file>qulice-pmd/src/test/java/com/qulice/pmd/PMDDisabledRulesTest.java</file>
    <lines>44-47</lines>
    <estimate>15</estimate>
    <body>When new version of Qulice is released (with disabled rules: UseConcurrentHashMap, DoNotUseThreads and AvoidUsingVolatile) remove suppression of given rules and remove unneeded usages of ConcurrentMap and ConcurrentHashMap.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-01-10T22:24:13Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>339-f214ff2b</id>
    <ticket>339</ticket>
    <file>qulice-gradle-plugin/src/main/java/com/qulice/gradle/QulicePlugin.java</file>
    <lines>47-48</lines>
    <estimate>30</estimate>
    <body>Design validator classes for Gradle. And remove the NonStaticMethod exclude below.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-01-11T19:53:06Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>411-71c8871e</id>
    <ticket>411</ticket>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <lines>383-387</lines>
    <estimate>30</estimate>
    <body>Sample code provided in #411 should be considered as invalid. Find a way how to do that by either custom check, or updating Checkstyle whenever IndentationCheck there will be more reliable. As for Checkstyle 6.15 there's no ready solution for that. Right now Qulice allows both correct and incorrect code from #411.</body>
    <role>IMP</role>
    <author>Michal Kordas</author>
    <email>kordas.michal@gmail.com</email>
    <time>2016-02-09T09:53:11Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>676-be080182</id>
    <ticket>676</ticket>
    <file>qulice-maven-plugin/src/test/java/com/qulice/maven/DefaultMavenEnvironmentTest.java</file>
    <lines>136-143</lines>
    <estimate>30</estimate>
    <body>Ideally integration test is required to reproduce NPE in issue #676. To reproduce problem firstly revert changes marked with #676, then add to pom.xml of IT project at least one exclude rule in configuration.excludes block and dependency (in my case worked org.hibernate:hibernate-annotations:3.5.6-Final). Suggestion is that dependency must be compile-time scope as far as JUnit didn't work as test-scope dependency.</body>
    <role>IMP</role>
    <author>Viktor Kuchyn</author>
    <email>kuchin.victor@gmail.com</email>
    <time>2016-02-09T14:09:22Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>61-61fa67ee</id>
    <ticket>61</ticket>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <lines>442-444</lines>
    <estimate>30</estimate>
    <body>This test and passesWindowsEndsOfLineWithoutException should be refactored to gather log4j logs and validate that they work correctly. (see changes done in #61)</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-02-27T14:20:56Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>61-1d39a5c7</id>
    <ticket>61</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DefaultValidatorsProvider.java</file>
    <lines>78-80</lines>
    <estimate>30</estimate>
    <body>Make PMDValidator inherit from ResourceValidator and use it similarly to CheckstyleValidator. Move it to externalResource method and make sure all the tests pass.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-02-27T14:20:56Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue>unknown</issue>
    <id>61-832eca62</id>
    <ticket>61</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DefaultValidatorsProvider.java</file>
    <lines>81-83</lines>
    <estimate>30</estimate>
    <body>Make FindBugsValidator inherit from ResourceValidator and use it similarly to CheckstyleValidator. Remember to move it to externalResource method and make sure all the tests pass.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-02-27T14:20:56Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/849" closed="2018-11-30T14:29:57+00:00">849</issue>
    <id>61-1e86e587</id>
    <ticket>61</ticket>
    <file>qulice-maven-plugin/src/main/java/com/qulice/maven/DefaultValidatorsProvider.java</file>
    <lines>84-86</lines>
    <estimate>30</estimate>
    <body>Make XmlValidator and CodeNarcValidator inherit from ResourceValidator and use it similarly to CheckstyleValidator. Remember to move it to externalResource method and make sure all the tests pass.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-02-27T14:20:56Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>61-654de8aa</id>
    <ticket>61</ticket>
    <file>qulice-spi/src/main/java/com/qulice/spi/Violation.java</file>
    <lines>57-60</lines>
    <estimate>30</estimate>
    <body>Let's split the message part into lines, message and check name. After it is done fix CheckstyleValidatorTest.ViolationsMatcher to handle all those parameters and fix all failing tests.</body>
    <role>IMP</role>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2016-02-27T14:45:15Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue>unknown</issue>
    <id>715-04710633</id>
    <ticket>715</ticket>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <lines>722-723</lines>
    <estimate>30</estimate>
    <body>add test for next situation `return new ArrayList

();`</body>
    <role>IMP</role>
    <author>Viktor Kuchyn</author>
    <email>kuchin.victor@gmail.com</email>
    <time>2016-03-11T13:51:33Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/850" closed="2018-11-30T14:29:59+00:00">850</issue>
    <id>715-2a207c32</id>
    <ticket>715</ticket>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <lines>700-701</lines>
    <estimate>30</estimate>
    <body>add test for next situation {@code return new ArrayList

();}</body>
    <role>IMP</role>
    <author>Viktor Kuchyn</author>
    <email>kuchin.victor@gmail.com</email>
    <time>2016-03-11T13:51:33Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/851">851</issue>
    <id>706-72bdab5d</id>
    <ticket>706</ticket>
    <file>qulice-findbugs/src/main/java/com/qulice/findbugs/Wrap.java</file>
    <lines>78-84</lines>
    <estimate>30</estimate>
    <body>After fix issue mentioned in comment https://github.com/teamed/qulice/issues/706#issuecomment-225943946 rollback the changes done in #706 then remove @Ignore above FindBugsValidatorTest.reportsIncorrectlyAddedThrows test and fix test findbugs-bed-bogus-exception-declaration. For the moment third item is done from comment https://github.com/teamed/qulice/issues/706#issuecomment-184611854</body>
    <role>IMP</role>
    <author>DSkalenko</author>
    <email>d.skalenko@gmail.com</email>
    <time>2016-06-22T12:26:10Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/816">816</issue>
    <ticket>123</ticket>
    <estimate>0</estimate>
    <role>IMP</role>
    <id>123-1f09aa3b</id>
    <lines>43-44</lines>
    <body>Make this better in multiple lines but different.</body>
    <file>qulice-maven-plugin/src/it/checkstyle-violations/src/main/java/com/qulice/plugin/violations/Brackets.java</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2017-01-01T19:39:02Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/817">817</issue>
    <ticket>123</ticket>
    <estimate>0</estimate>
    <role>IMP</role>
    <id>123-b644cf22</id>
    <lines>66-67</lines>
    <body>Make this better in multiple lines.</body>
    <file>qulice-maven-plugin/src/it/checkstyle-violations/src/main/java/com/qulice/plugin/violations/Brackets.java</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2017-01-01T19:39:02Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/818">818</issue>
    <ticket>123</ticket>
    <estimate>120</estimate>
    <role>IMP</role>
    <id>123-cfed8d02</id>
    <lines>7-7</lines>
    <body>This is also valid.</body>
    <file>qulice-maven-plugin/src/it/checkstyle-violations/src/main/java/com/qulice/plugin/violations/Pdd.java</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2017-01-01T19:39:02Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/819">819</issue>
    <ticket>123</ticket>
    <estimate>0</estimate>
    <role>IMP</role>
    <id>123-5357374c</id>
    <lines>24-25</lines>
    <body>Here we should capture also another line.</body>
    <file>qulice-maven-plugin/src/it/checkstyle-violations/src/main/java/com/qulice/plugin/violations/Pdd.java</file>
    <author>Yegor Bugayenko</author>
    <email>yegor256@gmail.com</email>
    <time>2017-01-01T19:39:02Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/949" closed="2019-01-24T08:54:53+00:00">949</issue>
    <ticket>123</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>123-42c66e69</id>
    <lines>103-103</lines>
    <body>Dummy todo to test if it works --&gt;</body>
    <file>qulice-checkstyle/pom.xml</file>
    <author>krzyk</author>
    <email>Krzysztof.Krason@gmail.com</email>
    <time>2018-05-01T15:17:18Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/950" closed="2019-01-23T13:06:26+00:00">950</issue>
    <ticket>801</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>801-1b19be41</id>
    <lines>55-60</lines>
    <body>This rule currently doesn't complain if the string is prefixed with this when length is called (e.g. somestring.length() works but this.somestring.length() does not). The same happens in with a method call (this.method().length() does not work). Check if possible and if it is, extend this rule to also catch this case. More about how to write PMD rules here: http://pmd.sourceforge.net/pmd-4.3/howtowritearule.html.</body>
    <file>qulice-pmd/src/main/java/com/qulice/pmd/rules/UseStringIsEmptyRule.java</file>
    <author>rultor</author>
    <email>me@rultor.com</email>
    <time>2018-05-03T14:23:33Z</time>
    <children>
      <puzzle alive="false">
        <issue href="https://github.com/teamed/qulice/issues/999" closed="2019-05-01T15:57:37+00:00">999</issue>
        <ticket>950</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>950-157b8116</id>
        <lines>53-58</lines>
        <body>Correct this class so it complains if the string is prefixed with this when length is called (e.g. somestring.length() works but this.somestring.length() does not). The same happens in with a method call (this.method().length() does not work). More about how to write PMD rules here: http://pmd.sourceforge.net/pmd-4.3/howtowritearule.html. Then ignore the tests on UseStringIsEmptyRuleTest.</body>
        <file>qulice-pmd/src/main/java/com/qulice/pmd/rules/UseStringIsEmptyRule.java</file>
        <author>paulodamaso</author>
        <email>pauloeduardolobo@gmail.com</email>
        <time>2019-01-03T13:10:28Z</time>
        <children/>
      </puzzle>
      <puzzle alive="false">
        <issue href="https://github.com/teamed/qulice/issues/1000" closed="2019-01-28T14:07:40+00:00">1000</issue>
        <ticket>950</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>950-05d88f79</id>
        <lines>41-43</lines>
        <body>UseStringIsEmptyRuleTest is not comparing all possible targets. Implement the tests for the remaining targets (see complete list in UseStringIsEmptyRule#getComparisonTargets).</body>
        <file>qulice-pmd/src/test/java/com/qulice/pmd/UseStringIsEmptyRuleTest.java</file>
        <author>paulodamaso</author>
        <email>pauloeduardolobo@gmail.com</email>
        <time>2019-01-03T13:14:09Z</time>
        <children>
          <puzzle alive="false">
            <issue href="https://github.com/teamed/qulice/issues/1016" closed="2019-05-01T15:57:39+00:00">1016</issue>
            <ticket>1000</ticket>
            <estimate>30</estimate>
            <role>DEV</role>
            <id>1000-db538e24</id>
            <lines>40-48</lines>
            <body>UseStringIsEmptyRuleTest is not comparing all possible targets. Implement the tests for the remaining targets (see complete list in UseStringIsEmptyRule#getComparisonTargets). Conditions that must be tested are checking string length when the String is the result of a method (this.method().length()) and when the String is a class field (this.somestring.length()). Use the same name and file pattern used in the test methods, appending 'This' or 'Method' suffix to indicate which access type the test relates to (field or method), renaming the tests if needed.</body>
            <file>qulice-pmd/src/test/java/com/qulice/pmd/UseStringIsEmptyRuleTest.java</file>
            <author>Paulo Lobo</author>
            <email>pauloeduardolobo@gmail.com</email>
            <time>2019-01-26T00:17:56Z</time>
            <children/>
          </puzzle>
        </children>
      </puzzle>
    </children>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/959">959</issue>
    <ticket>884</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>884-ab2ca2fa</id>
    <lines>39-42</lines>
    <body>Continue migration from FindBugs to SpotBugs. Implement SpotBugsValidator for this and then uncomment SpotBugsValidatorTest class so the minimal tests on this class can be run. Then, after all is set, remove FindBugs references from pom and from qulice executions.</body>
    <file>qulice-spotbugs/src/test/java/com.qulice.spotbugs/SpotBugsValidatorTest.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2018-12-05T01:47:10Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1001" closed="2019-01-30T14:17:46+00:00">1001</issue>
    <ticket>847</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>847-6f98df35</id>
    <lines>39-42</lines>
    <body>Enforce right parameter order in javadoc. Checkstyle must check if parameter order in javadoc is the same as is in the method signature. Implement this check and add its tests to checks.xml under custom checks.</body>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/JavadocParameterOrderCheck.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2019-01-18T02:17:36Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1004" closed="2019-01-30T12:26:59+00:00">1004</issue>
    <ticket>743</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>743-bb004e21</id>
    <lines>66-69</lines>
    <body>Nested classes should have since tag. Implement check to validate if nested classes javadoc have a valid since tag. After the implementation add JavadocTagsCheck to checks.xml and ChecksTest (removed because now the test fails).</body>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/JavadocTagsCheck.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2019-01-23T17:42:43Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1005" closed="2019-01-30T14:44:08+00:00">1005</issue>
    <ticket>897</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>897-e70cf262</id>
    <lines>682-685</lines>
    <body>Allow lambdas and generics to be places at end of line. RegexpSingleline is too strict and not allow generics and lambdas being placed at end of lines. Correct this behavior and uncomment test below.</body>
    <file>qulice-checkstyle/src/test/java/com/qulice/checkstyle/CheckstyleValidatorTest.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2019-01-20T04:47:36Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1006" closed="2019-02-07T14:32:01+00:00">1006</issue>
    <ticket>917</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>917-27a2aa28</id>
    <lines>44-50</lines>
    <body>Make ProtectedMethodInFinalClassCheck stricter. ProtectedMethodInFinalClassCheck must check if the protected method in final class isn't overriding some default method from abstract parent class and fail if so. The Invalid class for tests is already implemented. After the change in ProtectedMethodInFinalClassCheck complete the tests adding the following line to violations.txt: 23:Protected method is overriding default scoped method</body>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/ProtectedMethodInFinalClassCheck.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2019-01-21T20:45:26Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1007" closed="2019-02-07T21:15:34+00:00">1007</issue>
    <ticket>920</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>920-5b2cf26e</id>
    <lines>38-42</lines>
    <body>Qulice should prohibit any non-final class. Tests for this check have already been implemented in ProhibitNonFinalClassesCheck folder. After the implementation of this class add config.xml to folder pointing to ProhibitNonFinalClassesCheck class, add check into ChecksTest and add it to custom checks in checks.xml</body>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/ProhibitNonFinalClassesCheck.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2019-01-21T23:37:10Z</time>
    <children/>
  </puzzle>
  <puzzle alive="true">
    <issue href="https://github.com/teamed/qulice/issues/1008">1008</issue>
    <ticket>738</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>738-5bee823d</id>
    <lines>39-41</lines>
    <body>Static inner classes should be qualified with outer class Implement QualifyInnerClassCheck so it follows what defined in QualifyInnerClassCheck test and add this check to checks.xml and CheckTest.</body>
    <file>qulice-checkstyle/src/main/java/com/qulice/checkstyle/QualifyInnerClassCheck.java</file>
    <author>Paulo Lobo</author>
    <email>pauloeduardolobo@gmail.com</email>
    <time>2019-01-18T02:46:46Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1009" closed="2019-04-30T13:21:56+00:00">1009</issue>
    <ticket>966</ticket>
    <estimate>5</estimate>
    <role>DEV</role>
    <id>966-537ebfc3</id>
    <lines>78-79</lines>
    <body>Add Cactoos dependency to qulice-pmd and replace IOUtils usage with Cactoos alternatives `TextOf` and `ResourceOf`</body>
    <file>qulice-pmd/src/test/java/com/qulice/pmd/PmdAssert.java</file>
    <author>Nico Korthout</author>
    <email>nicokorthout@gmail.com</email>
    <time>2019-01-21T21:36:55Z</time>
    <children/>
  </puzzle>
  <puzzle alive="false">
    <issue href="https://github.com/teamed/qulice/issues/1019" closed="2019-02-08T06:01:37+00:00">1019</issue>
    <ticket>939</ticket>
    <estimate>30</estimate>
    <role>DEV</role>
    <id>939-39a57206</id>
    <lines>138-140</lines>
    <body>Upgrade to Junit5. Continue to upgrade to Junit5 updating qulice-maven-plugin sub-module and removing remaining junit4 tags.</body>
    <file>pom.xml</file>
    <author>@rultor</author>
    <email>me@rultor.com</email>
    <time>2019-01-30T11:45:15Z</time>
    <children>
      <puzzle alive="true">
        <issue href="https://github.com/teamed/qulice/issues/1030">1030</issue>
        <ticket>1019</ticket>
        <estimate>30</estimate>
        <role>DEV</role>
        <id>1019-4869c92c</id>
        <lines>46-49</lines>
        <body>Upgrade to Junit5. Finish JUnit upgrade to JUnit5 by upgrading it in qulice-maven-plugin submodules. Qulice-maven-plugin presents some build error that does not trigger any bulid failure, so maybe they must be corrected first.</body>
        <file>qulice-maven-plugin/pom.xml</file>
        <author>Paulo Lobo</author>
        <email>pauloeduardolobo@gmail.com</email>
        <time>2019-02-07T19:11:31Z</time>
        <children/>
      </puzzle>
    </children>
  </puzzle>
</puzzles>
