Git Product home page Git Product logo

dgroup / arch4u-pmd Goto Github PK

View Code? Open in Web Editor NEW
24.0 2.0 3.0 300 KB

Linting rules for Java frameworks like Spring, Quarkus, Jackson, SLF4J, etc., to avoid known problems in REST API, logging, observability, performance, and general best practices.

License: MIT License

Shell 2.09% Java 95.57% Ruby 2.33%
java pmd pmd-ruleset spring-boot spring quark quarkus open-api monitoring logging

arch4u-pmd's Introduction

visitor badge

dgroup | Gmail dgroup | LinkedIn dgroup | Twitter dgroup | Telegram dgroup | Skype dgroup | Instagram



I'm a developer, tech. lead and technical project manager, open-source contributor, author of few libs in maven central and ruby gems, won the "Software Quality Award, 2018."

Iโ€™m currently working on a lazylead. Join to our channel here Winner Badge .

lazylead/readme.md

Languages and Tools:

Java

Docker

SQL

Oracle SQL

Ruby

Git

GitHub

Linux



dgroup's Github Stats

dgroup's Lang Stats

arch4u-pmd's People

Contributors

dependabot[bot] avatar dgroup avatar dykov avatar emouty avatar rultor avatar smithros avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

arch4u-pmd's Issues

pom.xml:32: Write an instruction how to add arch4u rules to your gradle and maven projects -->

The puzzle DEV-70551f03 from #DEV has to be resolved:

<!-- @todo #/DEV Write an instruction how to add arch4u rules to your gradle and maven projects -->

The puzzle was created by @dgroup on 22-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Configure the deployment to dev maven repository in Github in order to work with RC and snapshots. The dev repo should be Github for master branch + bugfix branches if needed. As a plan B, we can consider promoting using Nexus+OSSRH:...

The puzzle DEV-8084d74e from #DEV has to be resolved:

arch4u-pmd/.rultor.yml

Lines 9 to 18 in 870567e

# @todo #/DEV Configure the deployment to dev maven repository in Github in order to work with RC and snapshots.
# The dev repo should be Github for master branch + bugfix branches if needed.
# As a plan B, we can consider promoting using Nexus+OSSRH:
# https://help.sonatype.com/repomanager2/staging-releases/staging-overview
# https://help.sonatype.com/repomanager2/staging-releases/configuring-your-project-for-deployment
# https://nvie.com/posts/a-successful-git-branching-model
# https://github.com/nvie/gitflow
# https://gist.github.com/lemiorhan/97b4f827c08aed58a9d8
# https://github.com/jgitver/jgitver
# https://danielkummer.github.io/git-flow-cheatsheet/index.html

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:50: SignatureDeclareThrowsException: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-7a64a11a from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/4414e67203963403fb94eba425750fb52db3e7e7/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L50-L50

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

DepShield encountered errors while building your project

The project could not be analyzed because of build errors. Please review the error messages here. Another build will be scheduled when a change to a manifest file* occurs. If the build is successful this issue will be closed, otherwise the error message will be updated.

This is an automated GitHub Issue created by Sonatype DepShield. GitHub Apps, including DepShield, can be managed from the Developer settings of the repository administrators.

* Supported manifest files are: pom.xml, package.json, package-lock.json, npm-shrinkwrap.json, Cargo.lock, Cargo.toml, main.rs, lib.rs, build.gradle, build.gradle.kts, settings.gradle, settings.gradle.kts, gradle.properties, gradle-wrapper.properties, go.mod, go.sum

arch4u-recommended-third-party-ruleset.xml:92: MissingSerialVersionUID: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-b715b35a from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/0d0f3378aa683a3d666c779cab97f45cb1024688/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L92-L92

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Annotation is present on method if {there is another annotation|method signature pattern}

Overview

Each application should provide metrics for future application monitoring, especially if its expose API endpoints.

The rule

If we expose a particular REST endpoint, this endpoint should be monitored as well, therefore, each method with @Get, @Post, etc. annotations should have annotation @Timed with metric reference.

@Timed is just an example, in the future we'll configure several REST frameworks with different standards for monitoring (e.g micrometer, etc.).

Ruleset(s)

  • arch4u-micrometer-ruleset.xml (with monitoring related test cases e.g. micrometer @Timed annotation)
  • arch4u-template-ruleset.xml (with non-monitoring related test cases e.g. any other annotation like @Override)

Test case 1 [positive/right]: Expected annotation is present on the method that has another annotation

@RestController
public class MyTypicalRestController {
   
   @Timed                                          
   @GetMapping("/get")                 // ok, @Timed is present for all methods with annotation @GET
   public .. get(BigInteger id) {
      ..
   }

   @GetMapping("/getXXX")              // violation, no annotation @Timed found
   public .. getXXX(BigInteger id) {
      ..
   }
}

Test case 2 [positive/right]: Expected annotation is present on the method that has some signature like public Order getXXXX

@RestController
public class MyTypicalRestController {
   
   @Timed                                          
   @GetMapping("/get")                 // ok, @Timed is present for all methods with annotation @GET
   public .. get(BigInteger id) {
      ..
   }

   @GetMapping("/getXXX")              // violation, no annotation @Timed found for method `public Order getXXXX`
   public .. getXXX(BigInteger id) {
      ..
   }
}

Replace key by real one, generated for arch4u-pmd project

The puzzle DEV-138e429d from #DEV has to be resolved:

# @todo #/DEV Replace key by real one, generated for arch4u-pmd project

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:52: LoosePackageCoupling: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-6c748374 from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/0d0f3378aa683a3d666c779cab97f45cb1024688/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L52-L52

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project arch4u-pmd: MavenReportException: Error while creating archive: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set.

[INFO] --- maven-javadoc-plugin:2.9.1:jar (attach-javadocs) @ arch4u-pmd ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.007 s
[INFO] Finished at: 2022-02-07T21:43:32+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9.1:jar (attach-javadocs) on project arch4u-pmd: MavenReportException: Error while creating archive: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Process finished with exit code 1

arch4u-recommended-third-party-ruleset.xml:49: AvoidCatchingGenericException: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-98a1620e from #DEV has to be resolved:

<exclude name="AvoidCatchingGenericException"/> <!-- @todo #/DEV AvoidCatchingGenericException: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Define arch4u-pmd ruleset that includes third-party rules and new rules -->

The puzzle DEV-61e86f59 from #DEV has to be resolved:

<!-- @todo #/DEV Define arch4u-pmd ruleset that includes third-party rules and new rules -->

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Activate JMH for testing on JDK8

The puzzle DEV-5f4df571 from #DEV has to be resolved:

<!-- @todo #/DEV Activate JMH for testing on JDK8

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

jacoco warning during local build: `Unsupported class file major version 61`

[INFO] --- maven-surefire-plugin:3.0.0-M3:test (default-test) @ arch4u-pmd ---
[INFO]
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running io.github.dgroup.arch4u.pmd.AvoidProhibitedClassesTest
java.lang.instrument.IllegalClassFormatException: Error while instrumenting java/sql/SQLException.
	at org.jacoco.agent.rt.internal_f3994fa.CoverageTransformer.transform(CoverageTransformer.java:94)
	at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244)
	at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
	at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:541)
	at java.base/java.lang.ClassLoader.defineClass2(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1103)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:182)
	at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
	at java.base/jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:741)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:665)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:700)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:669)
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
	at net.sourceforge.pmd.testframework.RuleTst.runTestFromString(RuleTst.java:271)
	at net.sourceforge.pmd.testframework.RuleTst.runTestFromString(RuleTst.java:305)
	at net.sourceforge.pmd.testframework.RuleTst.processUsingStringReader(RuleTst.java:257)
	at net.sourceforge.pmd.testframework.RuleTst.runTest(RuleTst.java:148)
	at net.sourceforge.pmd.testframework.RuleTestRunner$2.evaluate(RuleTestRunner.java:117)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at net.sourceforge.pmd.testframework.RuleTestRunner.runChild(RuleTestRunner.java:102)
	at net.sourceforge.pmd.testframework.RuleTestRunner.runChild(RuleTestRunner.java:36)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at net.sourceforge.pmd.testframework.PMDTestRunner.run(PMDTestRunner.java:97)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:273)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:384)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:345)
	at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:126)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:418)
Caused by: java.io.IOException: Error while instrumenting java/sql/SQLException.
	at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrumentError(Instrumenter.java:160)
	at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:110)
	at org.jacoco.agent.rt.internal_f3994fa.CoverageTransformer.transform(CoverageTransformer.java:92)
	... 38 more
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 61
	at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.<init>(ClassReader.java:196)
	at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.<init>(ClassReader.java:177)
	at org.jacoco.agent.rt.internal_f3994fa.asm.ClassReader.<init>(ClassReader.java:163)
	at org.jacoco.agent.rt.internal_f3994fa.core.internal.instr.InstrSupport.classReaderFor(InstrSupport.java:280)
	at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:76)
	at org.jacoco.agent.rt.internal_f3994fa.core.instr.Instrumenter.instrument(Instrumenter.java:108)
	... 39 more

Environment

 ~/projects/arch4u-pmd > java -version  
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
 ~/projects/arch4u-pmd > uname -a            
Darwin osx 21.2.0 Darwin Kernel Version 21.2.0: Sun Nov 28 20:28:54 PST 2021; root:xnu-8019.61.5~1/RELEASE_X86_64 x86_64

MDC try/finally rule

Test case 1 [positive/right]: Regular MDC invocation

private static final Logger LOG = ...
    
    public ... process(Order order) throws ... {
       MDC.put("order", order.getId());
       MDC.put("customer", order.getCustomerId());
       LOG.debug("Order {} initiated for {}", order.geId(), order.getCustomerId());
       
      // .. business logic
       
       MDC.remove("order");
       MDC.remove("customer");

       return ...
  }

Test case 2 [positive/right]: MDC invocation with try-finally

private static final Logger LOG = ...
    
    public ... process(Order order) throws ... {
       try {
             MDC.put("order", order.getId());
             MDC.put("customer", order.getCustomerId());
             LOG.debug("Order {} initiated for {}", order.geId(), order.getCustomerId());
       
             // .. business logic

       } finally {
             MDC.remove("order");
             MDC.remove("customer");
       }      
       return ...
  }

Test case 3 [negative/wrong]: MDC cleaning is absent during regular MDC invocation

private static final Logger LOG = ...
    
    public ... process(Order order) throws ... {
       MDC.put("order", order.getId());
       MDC.put("customer", order.getCustomerId());
       LOG.debug("Order {} initiated for {}", order.geId(), order.getCustomerId());
       
      // .. business logic
       return ...
  }

Clarification: Quite often developers forget to clean the thread-local values which leads to unexpected side effects.

arch4u-recommended-third-party-ruleset.xml:47: LawOfDemeter: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-71c809fa from #DEV has to be resolved:

<exclude name="LawOfDemeter"/> <!-- @todo #/DEV LawOfDemeter: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

codeql-analysis.yml:42: Setup java8 for inspection during CI/CD by CodeQL tool

The puzzle DEV-cfa0d1a0 from #DEV has to be resolved:

# @todo #/DEV Setup java8 for inspection during CI/CD by CodeQL tool

The puzzle was created by Yurii Dubinka on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

New rule: ObfuscationRequired

Overview

Quite often developers writing the logs using statements like

log.debug("Processing started for customer {}", customer);
// or
log.debug("User {} not authorized for operation {} ", user, operation);

As the result, the toString() method from customer or user may have sensitive data that needs to be obfuscated before exposing it to the logs.

The proper fix should be like

log.debug("User {} not authorized for operation {} ", this.obfuscation.apply(user), operation);

Related discussion: #64.

New rule requirements

  1. Rule should have a property where we may specify package or direct class name(s) for objects that should not be passed into log.debug|info|warn|error|fatal methods without obfuscation
  2. Rule should have a property obfuscation where we may specify class#method names with expected obfuscation.
  3. Rule should throw a violation if the object that has type or package defined in sensitiveClasses passed to logger without applying obfuscation from property obfuscationBy.
<rule name="ObfuscationRequired"
        since="0.1.0"
        language="java"
        message="Obfuscation is missing for sensitive logging arguments: https://github.com/dgroup/arch4u-pmd/discussions/64"
        class="io.github.dgroup.arch4u.pmd.ObfuscationRequired">
    ...
    <properties>
      <property name="sensitiveClasses" description="Package(s) or direct class name(s) for objects that should not be passed into logs without obfuscation" value="tbd"/>
      <property name="obfuscationBy" value="ClassA#methodA|com.company.ClassB#methodB|com.company.ClassC" />
    </properties>
  </rule>

arch4u-recommended-third-party-ruleset.xml:90: BeanMembersShouldSerialize: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-87bdbb0c from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/0d0f3378aa683a3d666c779cab97f45cb1024688/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L90-L90

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Setup Lock threads as 'Lock' is not supported anymore https://github.com/marketplace/actions/lock-threads

The puzzle DEV-6f85efe2 from #DEV has to be resolved:

# @todo #/DEV Setup Lock threads as 'Lock' is not supported anymore
# https://github.com/marketplace/actions/lock-threads

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Define ruleset with third-party basic PMD rules -->

The puzzle DEV-187cd84d from #DEV has to be resolved:

<!-- @todo #/DEV Define ruleset with third-party basic PMD rules -->

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:51: ExcessiveImports: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-15c4aeea from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/0d0f3378aa683a3d666c779cab97f45cb1024688/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L51-L51

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Write minimalistic/laconic project overview in readme.md -->

The puzzle DEV-508fa6be from #DEV has to be resolved:

<!-- @todo #/DEV Write minimalistic/laconic project overview in readme.md -->

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-micrometer-ruleset.xml:8: Define the rule related to @Timed annotation here. -->

The puzzle 28-822008ce from #28 has to be resolved:

<!-- @todo #28/DEV Define the rule related to @Timed annotation here. -->

The puzzle was created by @dgroup on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:82: UseConcurrentHashMap: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-48ee7d25 from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/0d0f3378aa683a3d666c779cab97f45cb1024688/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L82-L82

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-micrometer-ruleset.xml:10: io.micrometer.core.annotation.Timed should receive metric name as a string constant, not a string literal

The puzzle DEV-b245d2b6 from #DEV has to be resolved:

<!-- @todo #/DEV io.micrometer.core.annotation.Timed should receive metric name as a string constant, not a string literal

The puzzle was created by @dgroup on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Setup code code quality 3rd-party services and add badge to the readme.md -->

The puzzle DEV-0529dd2e from #DEV has to be resolved:

<!-- @todo #/DEV Setup code code quality 3rd-party services and add badge to the readme.md -->

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-thirdpary-ruleset.xml:35: Include this file into 'arch4u-ruleset.xml' once task #14 is done -->

The puzzle 14-0acc3693 from #14 has to be resolved:

<!-- @todo #14/DEV Include this file into 'arch4u-ruleset.xml' once task #14 is done -->

The puzzle was created by @dgroup on 22-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:34: GuardLogStatement: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-cbd9294a from #DEV has to be resolved:

<exclude name="GuardLogStatement"/> <!-- @todo #/DEV GuardLogStatement: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle was created by @dgroup on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Set up jdk 1.8 for CI/CD

The puzzle DEV-293e89ed from #DEV has to be resolved:

# @todo #/DEV Set up jdk 1.8 for CI/CD

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:36: JUnitAssertionsShouldIncludeMessage: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-f166bfda from #DEV has to be resolved:

<exclude name="JUnitAssertionsShouldIncludeMessage"/> <!-- @todo #/DEV JUnitAssertionsShouldIncludeMessage: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle was created by @dgroup on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

https://pmd.github.io/latest/pmd_userdocs_suppressing_warnings.html#the-property-violationsuppressregex

arch4u-recommended-third-party-ruleset.xml:48: UseObjectForClearerAPI: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-287c52fb from #DEV has to be resolved:

<exclude name="UseObjectForClearerAPI"/> <!-- @todo #/DEV UseObjectForClearerAPI: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

pom.xml:28: Define format for all GitHub discussion items and change all existing in order to follow defined standard. -->

The puzzle DEV-7da84a11 from #DEV has to be resolved:

<!-- @todo #/DEV Define format for all GitHub discussion items and change all existing in order to follow defined standard. -->

The puzzle was created by @dgroup on 08-Feb-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-recommended-third-party-ruleset.xml:91: AvoidDuplicateLiterals: deep investigation is needed regarding purpose and goal of this this rule. Potentially improvement is needed. -->

The puzzle DEV-27367a79 from #DEV has to be resolved:

https://github.com/dgroup/arch4u-pmd/blob/0d0f3378aa683a3d666c779cab97f45cb1024688/src/main/resources/io/github/dgroup/arch4u/pmd/arch4u-recommended-third-party-ruleset.xml#L91-L91

The puzzle was created by Yurii Dubinka on 30-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

ToString.java:34: Remove this class once any API class added to the classpath.

The puzzle DEV-e6044bbd from #DEV has to be resolved:

* @todo #/DEV Remove this class once any API class added to the classpath.

The puzzle was created by @dgroup on 22-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

arch4u-rest-ruleset.xml:33: Check 'since' attribute, it should be 0.1.0 (not 0.4.0) everywhere before we release 0.1.0 -->

The puzzle DEV-94d5ff38 from #DEV has to be resolved:

<!-- @todo #/DEV Check 'since' attribute, it should be 0.1.0 (not 0.4.0) everywhere before we release 0.1.0 -->

The puzzle was created by @dgroup on 03-Feb-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Activate de.thetaphi:forbiddenapis in order to forbid the usage of forbidden API like static matchers, etc -->

The puzzle DEV-08faa53a from #DEV has to be resolved:

<!-- @todo #/DEV Activate de.thetaphi:forbiddenapis in order to forbid the usage of forbidden API like static matchers, etc -->

The puzzle was created by @dgroup on 07-Jan-22.

role: DEV.

If you have any technical questions, don't ask me, submit new tickets instead. The task will be "done" when the problem is fixed and the text of the puzzle is removed from the source code. Here is more about PDD and about me.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.