Giter Site home page Giter Site logo

jqa-asciidoc-report-plugin's People

Contributors

aberndl avatar ahus1 avatar dirkmahler avatar dominikschlosser avatar iso-dsc avatar obfischer avatar stephanpirnbaum avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

jqa-asciidoc-report-plugin's Issues

Goal "analyze" fails if project path contains whitespaces

This is the corresponding stacktrace:

[ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.8.0:analyze (default-cli) on project SingleServer: Analysis failed.: Caught unexpected exception from store. (ENOENT) No such file or directory - /home/aberndl/repositories%20with%20whitespace/onedata%20backend/jqassistant/index.adoc -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.8.0:analyze (default-cli) on project SingleServer: Analysis failed.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Analysis failed.
    at com.buschmais.jqassistant.scm.maven.AnalyzeMojo.aggregate (AnalyzeMojo.java:103)
    at com.buschmais.jqassistant.scm.maven.AbstractProjectMojo$1.run (AbstractProjectMojo.java:33)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:339)
    at com.buschmais.jqassistant.scm.maven.AbstractProjectMojo.execute (AbstractProjectMojo.java:30)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:200)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: com.buschmais.jqassistant.core.rule.api.model.RuleException: Caught unexpected exception from store.
    at com.buschmais.jqassistant.core.analysis.impl.TransactionalRuleVisitor.doInXOTransaction (TransactionalRuleVisitor.java:89)
    at com.buschmais.jqassistant.core.analysis.impl.TransactionalRuleVisitor.doInXOTransaction (TransactionalRuleVisitor.java:62)
    at com.buschmais.jqassistant.core.analysis.impl.TransactionalRuleVisitor.afterRules (TransactionalRuleVisitor.java:28)
    at com.buschmais.jqassistant.core.rule.api.executor.RuleSetExecutor.execute (RuleSetExecutor.java:56)
    at com.buschmais.jqassistant.core.analysis.impl.AnalyzerImpl.execute (AnalyzerImpl.java:61)
    at com.buschmais.jqassistant.scm.maven.AnalyzeMojo.aggregate (AnalyzeMojo.java:101)
    at com.buschmais.jqassistant.scm.maven.AbstractProjectMojo$1.run (AbstractProjectMojo.java:33)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:339)
    at com.buschmais.jqassistant.scm.maven.AbstractProjectMojo.execute (AbstractProjectMojo.java:30)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:200)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.jruby.exceptions.SystemCallError: (ENOENT) No such file or directory - /home/aberndl/repositories%20with%20whitespace/onedata%20backend/jqassistant/index.adoc
    at org.jruby.RubyIO.sysopen (org/jruby/RubyIO.java:1233)
    at org.jruby.RubyFile.initialize (org/jruby/RubyFile.java:361)
    at org.jruby.RubyIO.open (org/jruby/RubyIO.java:1152)
    at RUBY.load_file (uri:classloader:/gems/asciidoctor-1.5.8/lib/asciidoctor.rb:1399)
    at RUBY.load_file (<script>:83)

It would be great if you could provide the fix for 1.8.x

#6

Best regards,
Adrian

Highlight failed rules in summary

Feature Description

Failed rules are already rendered as the first items in the summary table(s). For quickly catching them they should be highlighted, e.g. by using a different color.

Definition of Done for the Implementers

  • We got a final feedback from the reporting user (if applicable)
  • Unittests have been written (if applicable)
  • Integration tests have been written (if applicable)
  • Test coverage is the same or even better then before (if applicable)
  • Documentation has been written (if applicable)
  • Added a note on the new feature to the release notes (if applicable)

Asciidoctor Report should be reusable

As user of the Asciidoctor Plugin for jQAssistant,
I want do be able to share or to reuse an existing report as I can do it already with any kind of rules,
so that I am able to define and provide consistant reports for multiple projects.

PlantUML component diagram rendering fails for paths-like structures

The rendering to PlantUML component diagram fails for queries like this:

MATCH
  (:Maven:Project)-[:CREATES]->(artifact:Artifact)
OPTIONAL MATCH
  (artifact)-[dependsOn:DEPENDS_ON*]->(dependency:Artifact)
RETURN
  *

The returned value for dependsOn is an array which is not supported.

Use Github Actions to provide a simple CI/CD Buildchain

As core developer of jQAssistant, I want this project to be build on various plattforms with different JDK versions on each commit, so that I know if the change done my the commit does not break the build and the software is fully functional.

The following acceptance criterias must be met:

  • mvn -DskipTests -Djqassistant.skip clean install must pass
  • mvn -Djqassistant.skip clean install must pass
  • mvn -P IT clean install must pass
  • mvn -DskipTests -Djqassistant.skip=false clean install must pass

Improve control on table layout for rule results

Feature Description

Tables are the default visualization for concept and constraint results. Currently there's no control on the layout of the tables, i.e. a large number of rows or columns (or long values in columns) break the layout of the rendered document.

Therefore the ways of controlloing the table layout shall be improved, e.g. by supporting options for horizontal or vertical scrolling (e.g. as descrivbed in https://stackoverflow.com/questions/58639752/asciidoctor-overflow-on-a-large-table).

Definition of Done for the Implementers

  • We got a final feedback from the reporting user (if applicable)
  • Unittests have been written (if applicable)
  • Integration tests have been written (if applicable)
  • Test coverage is the same or even better then before (if applicable)
  • Documentation has been written (if applicable)
  • Added a note on the new feature to the release notes (if applicable)

Concept without description leads to NPE during report creation

Please bear with me @DirkMahler and @obfischer, I know there is a nice bug report template but currently I do not have much time to fill all the fields, sorry.

Having a concept defined in an XML file without description leads to an NPE:

Caused by: java.lang.NullPointerException
    at com.buschmais.jqassistant.plugin.asciidocreport.include.AbstractIncludeStrategy.escape (AbstractIncludeStrategy.java:18)
    at com.buschmais.jqassistant.plugin.asciidocreport.include.SummaryIncludeStrategy.includeSummaryTable (SummaryIncludeStrategy.java:51)
    at com.buschmais.jqassistant.plugin.asciidocreport.include.SummaryIncludeStrategy.process (SummaryIncludeStrategy.java:37)
    at com.buschmais.jqassistant.plugin.asciidocreport.IncludeProcessor.process (IncludeProcessor.java:49)
    at com.buschmais.jqassistant.core.shared.asciidoc.delegate.IncludeProcessorDelegate.process (IncludeProcessorDelegate.java:25)

From the source code the problem is obvious: https://github.com/jQAssistant/jqa-asciidoc-report-plugin/blob/95dacd9d5f4f980737ec77ee5ed4ec1d11fce626/src/main/java/com/buschmais/jqassistant/plugin/asciidocreport/include/SummaryIncludeStrategy.java#L51

since the escape method does not check for null content:

https://github.com/jQAssistant/jqa-asciidoc-report-plugin/blob/95dacd9d5f4f980737ec77ee5ed4ec1d11fce626/src/main/java/com/buschmais/jqassistant/plugin/asciidocreport/include/AbstractIncludeStrategy.java#L17

and

https://github.com/jQAssistant/jqa-asciidoc-report-plugin/blob/95dacd9d5f4f980737ec77ee5ed4ec1d11fce626/src/main/java/com/buschmais/jqassistant/plugin/asciidocreport/include/AbstractIncludeStrategy.java#L18

pragma graphviz_dot jdot is deprecated

Using the plantuml reporting leads to a rendering error because the pragma was renamed:

PlantUML 1.2021.8
This version of PlantUML is 172 days old, so you should
consider upgrading from https://plantuml.com/download
[From string (line 3) ]
@startuml
skinparam componentStyle uml2
!pragma graphviz_dot jdot
This directive has been renamed to '!pragma layout smetana'. Please update your diagram.

Documentation can be found here: https://plantuml.com/de/smetana02

Allow rendering of simple reports (without graphs) on headless machines

Feature Description

Since the new report plugin (I think somewhere around 1.8) can render graphs and plantuml it depends on a running graphics backend. In other words it fails hard on a jenkins without X11 configured.
I am not reporting this as a bug, since I
a) don't have a portable testcase for you :( and
b) am not too sure whether the rest of the world doesn't mind this restriction.

I, as a developer
would like to generate simple reports of rule-checks (without rendered graphs)
on a jenkins instance that runs without a display (x11) configured.
Both lazy initialization (only if there are graphs to be rendered) or a config-option (supported by the maven-plugin) to disable graph rendering are ok.

How to Test

When I try to do this today, I get an exception (on headless jenkins)
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
(full exception attached x11_needed.txt )

I have traced this problem to the fact that https://github.com/jQAssistant/jqa-asciidoc-report-plugin/blob/master/src/main/java/com/buschmais/jqassistant/plugin/asciidocreport/plantuml/AbstractPlantUMLReportPlugin.java defines a constant with the value of FileFormat.SVG.name() which in turn initializes a buffered image triggering the problem.

To test this feature...
Use a jenkins build without X11 configured and render any report result without graphics to be rendered.

Definition of Done for the Implementers

Remove this hint: these checkboxes can be checked like this: [x]

  • We got a final feedback from the reporting user (if applicable)
  • Unittests have been written (if applicable)
  • Integration tests have been written (if applicable)
  • Test coverage is the same or even better then before (if applicable)
  • Documentation has been written (if applicable)
  • Added a note on the new feature to the release notes (if applicable)

New Feature

How can I disable asciidoc plugin if I don't need it? It seem even though I don't use it, it executes Graphviz and "dot.exe" executable file on my machine. I have some limitation and don't want to execute third party none-Java applications.

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.