Giter Site home page Giter Site logo

jqa-maven-plugin's Introduction

jQAssistant Aggregator Repository

jQAssistant has been splitted into multiple repositories to allow more flexible releases.

Note
Want to raise an issue? If possible try to go to the affected repository. If not, please raise it in our Idea Hub.

Want to get started? Here are some links to help you:

If you have questions related to jQAssistant please get in touch with us via the jQAssistant forum or Stackoverflow.

The table below lists the repositories jQAssistant is made of.

Table 1. List of jQAssistant repositories

BOM

https://github.com/jqassistant/jqa-bom

Commandline Distribution

https://github.com/jqassistant/jqa-commandline-tool

Core Framework

https://github.com/jqassistant/jqa-core-framework

Java Plugin

https://github.com/jqassistant/jqa-java-plugin

JSON Plugin

https://github.com/jqassistant/jqa-json-plugin

Maven 3 Plugin

https://github.com/jqassistant/jqa-maven3-plugin

JUnit Plugin

https://github.com/jqassistant/jqa-junit-plugin

Neo4j Backend

https://github.com/jqassistant/jqa-neo4j-backend

Plugin for Apache Maven

https://github.com/jqassistant/jqa-maven-plugin

XML Plugin

https://github.com/jqassistant/jqa-xml-plugin

YAML 2 Plugin

https://github.com/jqassistant/jqa-yaml2-plugin

Tip
For convenience reasons the repositories are aggregated as sub-modules in this Git repository. You can clone it using git clone --recursive https://github.com/jQAssistant/jQAssistant.git. Once checked out you might need to run git submodule update --remote to update to the latest commits of the sub-modules.

jqa-maven-plugin's People

Contributors

aparnachaudhary avatar bogosj avatar dependabot[bot] avatar dirkmahler avatar feststelltaste avatar jensnercheke avatar jexp avatar khmarbaise avatar obfischer avatar pherklotz avatar ronaldkunzmann avatar stephanpirnbaum avatar yrodiere avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

jqa-maven-plugin's Issues

jQA's Database is empty in a Multi-Maven-Module setup

Given the following Maven project structure:

+- Global Company POM
      +- Service Parent POM
           + Modul A POM
           + Modul B POM

If I run jQAssistant via the Maven Plugin of jQAssistant the resulting database under target/jqassistant/store (target is in the same directory as the Service Parent POM).

pluginGroup is wrong

The documentation mentions a pluginGroup com.buschmais.jqassistant.scm but since some time (1.2.x?) it should be com.buschmais.jqassistant.

Evaluate migration of jQA Maven plugin to an extension

The Maven plugin regularily runs into classloading problems for the managed Neo4j singletons. It should be evaluated how the Maven extension mechanism could help to get around this without making first-user experience worse (i.e. easy setup)

Add support do local maven repo

My approach is to scan maven repos located in the workspace of Hudson/Jenkins jobs. Considering this use case, please, add support to local maven repos.

Bug Report: JQAssistant Maven Plugin 1.11.1 - relocated WARNING..

Bug Description

Currently the following output is produced:

[INFO] 
[INFO] --- jqassistant-maven-plugin:1.11.1:scan (default) @ leidad-parent ---
[WARNING] The artifact xml-apis:xml-apis:jar:2.0.2 has been relocated to xml-apis:xml-apis:jar:1.0.b2
[INFO] Scanning for jQAssistant plugins...
[INFO] Loaded plugin 'jQAssistant Core Report Plugin' with id 'jqa.core.report.plugin'
[INFO] Loaded plugin 'jQAssistant Core Analysis Plugin' with id 'jqa.core.analysis.plugin'
...

Expected Behaviour

It would be great to cleanup this warning.

Your Environment

Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /Users/xyz/tools/maven
Java version: 11.0.13, vendor: Eclipse Adoptium, runtime: /Users/xyz/.sdkman/candidates/java/11.0.13-tem
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"

How can we reproduce the bug?

Should be in any build...

Good ⭐⭐⭐

Using the example configuration out of the documentation. https://jqassistant.org/get-started/ and select "Maven".

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)

GC overhead limit exceeded

I am getting this on our reactor build. Any advice?

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 55:41 min
[INFO] Finished at: 2018-10-12T16:29:10+02:00
[INFO] Final Memory: 236M/932M
[INFO] ------------------------------------------------------------------------
[ERROR] GC overhead limit exceeded -> [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/OutOfMemoryError
[INFO] Closing store in directory 'file:/opt/jenkins/jenkins/jobs/DE/jobs/target/jqassistant/store/'.
[WARNING] Rolling back an active transaction.
Build step 'Conditional steps (multiple)' marked build as failure
Recording test results
[BFA] Scanning build for known causes...
................................................................................[BFA] No failure causes found
[BFA] Done. 80s
No emails were triggered.
Finished: FAILURE

jqassistant-maven-plugin appears to be incompatible with the newest maven-site-plugin

Bug Description

New version of maven-site-plugin appears to be incompatible with the newest jQAssistant plugin
I get actually following exception:

Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.11.0:site (default-site) on project dummy-name: Error generating jqassistant-maven-plugin:1.11.1:report report: UndeclaredThrowableException: InvocationTargetException: Receiver class com.buschmais.jqassistant.scm.maven.ReportMojo does not define or inherit an implementation of the resolved method 'abstract void generate(org.apache.maven.doxia.sink.Sink, java.util.Locale)' of interface org.apache.maven.reporting.MavenReport.

Your Environment

jqassistant-maven-plugin:1.11.1
maven.plugins:maven-site-plugin:3.11.0

  • JDK: JDK11, 11.0.10
  • OS: windows10
  • Maven: 3.6.3

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)

Property value bytes length: 10225 is longer than 4095, which is maximum supported length of indexed property value

JQAssistant version: 1.4.0.

Full stack trace:

java.lang.IllegalArgumentException: Property value bytes length: 10225 is longer than 4095, which is maximum supported length of indexed property value.
	at org.neo4j.kernel.impl.api.IndexTextValueLengthValidator.validate(IndexTextValueLengthValidator.java:67)
	at org.neo4j.kernel.impl.api.IndexTextValueLengthValidator.validate(IndexTextValueLengthValidator.java:53)
	at org.neo4j.kernel.impl.api.IndexTextValueLengthValidator.validate(IndexTextValueLengthValidator.java:30)
	at org.neo4j.kernel.impl.index.schema.StringSchemaIndexAccessor.validateBeforeCommit(StringSchemaIndexAccessor.java:70)
	at org.neo4j.kernel.impl.index.schema.fusion.FusionIndexAccessor.validateBeforeCommit(FusionIndexAccessor.java:174)
	at org.neo4j.kernel.impl.api.index.OnlineIndexProxy.validateBeforeCommit(OnlineIndexProxy.java:206)
	at org.neo4j.kernel.impl.api.index.FlippableIndexProxy.validateBeforeCommit(FlippableIndexProxy.java:364)
	at org.neo4j.kernel.impl.api.index.AbstractDelegatingIndexProxy.validateBeforeCommit(AbstractDelegatingIndexProxy.java:140)
	at org.neo4j.kernel.impl.api.index.IndexMapReference.validateBeforeCommit(IndexMapReference.java:120)
	at org.neo4j.kernel.impl.api.index.IndexingService.validateBeforeCommit(IndexingService.java:404)
	at org.neo4j.kernel.impl.newapi.IndexTxStateUpdater.lambda$onPropertyAdd$0(IndexTxStateUpdater.java:126)
	at org.neo4j.kernel.impl.newapi.NodeSchemaMatcher.onMatchingSchema(NodeSchemaMatcher.java:88)
	at org.neo4j.kernel.impl.newapi.IndexTxStateUpdater.onPropertyAdd(IndexTxStateUpdater.java:122)
	at org.neo4j.kernel.impl.newapi.Operations.nodeSetProperty(Operations.java:499)
	at org.neo4j.kernel.impl.core.NodeProxy.setProperty(NodeProxy.java:244)
	at com.buschmais.xo.neo4j.embedded.impl.model.AbstractEmbeddedPropertyContainer.setProperty(AbstractEmbeddedPropertyContainer.java:40)
	at com.buschmais.xo.neo4j.embedded.impl.datastore.AbstractNeo4jPropertyManager.setProperty(AbstractNeo4jPropertyManager.java:17)
	at com.buschmais.xo.neo4j.embedded.impl.datastore.AbstractNeo4jPropertyManager.setProperty(AbstractNeo4jPropertyManager.java:13)
	at com.buschmais.xo.impl.AbstractPropertyManager.setProperty(AbstractPropertyManager.java:16)
	at com.buschmais.xo.impl.proxy.common.property.AbstractPrimitivePropertySetMethod.invoke(AbstractPrimitivePropertySetMethod.java:20)
	at com.buschmais.xo.impl.proxy.AbstractProxyMethodService.invoke(AbstractProxyMethodService.java:26)
	at com.buschmais.xo.impl.proxy.InstanceInvocationHandler.invoke(InstanceInvocationHandler.java:23)
	at com.sun.proxy.$Proxy176.setValue(Unknown Source)
	at com.buschmais.jqassistant.plugin.java.impl.scanner.ManifestFileScannerPlugin.readSection(ManifestFileScannerPlugin.java:66)
	at com.buschmais.jqassistant.plugin.java.impl.scanner.ManifestFileScannerPlugin.scan(ManifestFileScannerPlugin.java:49)
	at com.buschmais.jqassistant.plugin.java.impl.scanner.ManifestFileScannerPlugin.scan(ManifestFileScannerPlugin.java:28)
	at com.buschmais.jqassistant.core.scanner.impl.ScannerImpl.scan(ScannerImpl.java:82)
	at com.buschmais.jqassistant.core.scanner.impl.ScannerImpl.scan(ScannerImpl.java:59)
	at com.buschmais.jqassistant.plugin.common.api.scanner.AbstractContainerScannerPlugin.scan(AbstractContainerScannerPlugin.java:50)
	at com.buschmais.jqassistant.plugin.common.api.scanner.AbstractContainerScannerPlugin.scan(AbstractContainerScannerPlugin.java:29)
	at com.buschmais.jqassistant.core.scanner.impl.ScannerImpl.scan(ScannerImpl.java:82)
	at com.buschmais.jqassistant.core.scanner.impl.ScannerImpl.scan(ScannerImpl.java:59)
	at com.buschmais.jqassistant.plugin.maven3.impl.scanner.MavenProjectScannerPlugin.scanPath(MavenProjectScannerPlugin.java:332)
	at com.buschmais.jqassistant.plugin.maven3.impl.scanner.MavenProjectScannerPlugin.scanPath(MavenProjectScannerPlugin.java:303)
	at com.buschmais.jqassistant.plugin.maven3.impl.scanner.MavenProjectScannerPlugin.scanClassesDirectory(MavenProjectScannerPlugin.java:281)
	at com.buschmais.jqassistant.plugin.maven3.impl.scanner.MavenProjectScannerPlugin.scan(MavenProjectScannerPlugin.java:90)
	at com.buschmais.jqassistant.plugin.maven3.impl.scanner.MavenProjectScannerPlugin.scan(MavenProjectScannerPlugin.java:43)
	at com.buschmais.jqassistant.core.scanner.impl.ScannerImpl.scan(ScannerImpl.java:82)
	at com.buschmais.jqassistant.core.scanner.impl.ScannerImpl.scan(ScannerImpl.java:59)
	at com.buschmais.jqassistant.scm.maven.ScanMojo.execute(ScanMojo.java:96)
	at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo$1.run(AbstractModuleMojo.java:21)
	at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute(AbstractMojo.java:340)
	at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo.execute(AbstractModuleMojo.java:24)
	at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute(AbstractMojo.java:212)
	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:956)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:194)
	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)

Arguments to the failing method:

key = "value"
value = "org.hibernate.search.analyzer;version="5.11.0.SNAPSHOT",org.hibernate.search.annotations;version="5.11.0.SNAPSHOT";uses:="org.apache.lucene.analysis.util,org.hibernate.search.analyzer,org.hibernate.search.bridge.builtin,org.hibernate.search.engine,org.hibernate.search.indexes.interceptor",org.hibernate.search.backend;version="5.11.0.SNAPSHOT";uses:="javax.transaction,org.apache.lucene.document,org.hibernate.search.backend.spi,org.hibernate.search.indexes.spi,org.hibernate.search.spi",org.hibernate.search.backend.spi;version="5.11.0.SNAPSHOT";uses:="org.apache.lucene.index,org.apache.lucene.search,org.hibernate.search.backend,org.hibernate.search.engine.spi,org.hibernate.search.indexes.spi,org.hibernate.search.spi",org.hibernate.search.backend.impl.batch;version="5.11.0.SNAPSHOT";uses:="org.hibernate.search.backend,org.hibernate.search.backend.spi,org.hibernate.search.batchindexing,org.hibernate.search.engine.integration.impl,org.hibernate.search.spi",org.hibernate.search.batchindexing;"

Steps to reproduce:

mkdir jqatest
cd jqatest
git clone https://github.com/yrodiere/hibernate-search.git --single-branch --no-tags -b jqa-i17-i18 .
mvn clean install -DskipTests -Pjqassistant -e -X

Note: the issue will not be immediately visible, because of #17
However, you can launch maven in debug mode (use the mvnDebug command instead of mvn) and put a breakpoint in org.neo4j.kernel.impl.api.KernelTransactionImplementation#failure to see the error occur before it is lost due to another exception.

Errors without details reported since 1.9.1

Bug Description

Since updating the Maven plugin from Version 1.8.0 to 1.9.1 (1.10.0 is also affected), the plugins reports "Error: File does not exist" several times without providing any details. What is the path of the missing file and where is it referenced from? That would be very valuable to know. Also, this error is reported by Maven as INFO, so it is entirely unclear, how severe it is. Further, it is nor clear whether the also reported "Error: only sequence diagrams will be generated" messages are related and what they mean. What is not generated in this case? We generally don't have/generate any sequence diagrams, so this message seems to be nonsense anyway.

[INFO] --- jqassistant-maven-plugin:1.9.1:analyze (default-cli) @ xxxxxxxx ---
[INFO] Executing analysis for 'xxxxxxxx'.
[INFO] Will warn on violations starting from severity 'INFO'
[INFO] Will fail on violations starting from severity 'MINOR'.
[INFO] Reading rules from directory /Users/xxxxxxxx
[INFO] Error: File does not exist
[INFO] Error: only sequence diagrams will be generated
[INFO] Error: File does not exist
[INFO] Error: only sequence diagrams will be generated
[INFO] Error: File does not exist
[INFO] Error: only sequence diagrams will be generated
[INFO] Executing group 'default'
...

Expected Behaviour

I expect the jQAssistant plugin to not report these errors as it did in version 1.8.0, or if there is indeed a problem with our configurations or Asciidoc rules, provide meaningful and sufficiently detailed errors messages that enable us to fix the reported problems. The path of the missing files would be a nice start.

Your Environment

  • JDK: AdoptOpenJDK 11
  • OS: MacOS 12.0.1

How can we reproduce the bug?

-> The source code or the data can't be disclosed.
I suggest to search your code base for the aforementioned messages. That should not be further away than a Cmd + Shift + F in IntelliJ.

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)

Maven plugin fails on JDK 11 with ClassCastException

  1. Create simple Maven project
  2. Add JQAssistant Maven plugin
  3. Execute mvn jqassistant:scan

Caused by: javax.xml.bind.JAXBException: ClassCastException: attempting to cast jar:file:/C:/Users/XXX/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar!/javax/xml/bind/JAXBContext.class to jar:file:/C:/Users/XXX/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar!/javax/xml/bind/JAXBContext.class. Please make sure that you are specifying the proper ClassLoader.

Adding JAXB and Activation explicitly makes no difference (see attached pom.xml)

Full Stacktrace: stacktrace.txt

Sample pom.xml: pom.xml.txt

Allow users to exclude plugins from all phases

Starting with version 1.3.0 all plugins will be active by default. Under some circumstances users would like to be able to deaktivate specific plugins. Therefore we need an easy and futur-proof way to skip the execution of a jQAssistant plugin.

Colors in Maven sites

Probably this is only a question if the required feature is configurable in Maven or jQA?

I would like to see the following behaviour in Maven site reports for jQAssitant rules:

  • If a concept returns an empty result set, it should be colored less aggressive depending on the severity, e.g., if the severity is info and the result set is empty it should be green instead of red:
    image
  • If a constraint returns a result set and is, e.g., critical, it should be shown in red color instead of orange:
    image.

If possible the colors for the severities should become configurable?

Failed to execute goal: Caused by: java.lang.ClassCastException: class org.apache.lucene.codecs.lucene50.Lucene50PostingsFormat

Hello,

we're getting the following Exception (last Root-Cause, Full Stacktrace attached) when running "jqassistant:server" (with v1.6.0):

Caused by: java.lang.ClassCastException: class org.apache.lucene.codecs.lucene50.Lucene50PostingsFormat at java.lang.Class.asSubclass (Class.java:3404) at org.apache.lucene.util.SPIClassIterator.next (SPIClassIterator.java:158) at org.apache.lucene.util.NamedSPILoader.reload (NamedSPILoader.java:70) at org.apache.lucene.util.NamedSPILoader.<init> (NamedSPILoader.java:51) at org.apache.lucene.util.NamedSPILoader.<init> (NamedSPILoader.java:38) at org.apache.lucene.codecs.PostingsFormat$Holder.<clinit> (PostingsFormat.java:49) at org.apache.lucene.codecs.PostingsFormat.forName (PostingsFormat.java:112) at org.apache.lucene.codecs.lucene54.Lucene54Codec.<init> (Lucene54Codec.java:161) at org.apache.lucene.codecs.lucene54.Lucene54Codec.<init> (Lucene54Codec.java:81)

Scanning and Analyzing works fine, but the server can't be started.

We're trying this while upgrading from 1.3.0 to 1.6.0, with 1.3.0 the server starts up fine.

Any ideas?

Best regards,
Tom

PS: stacktrace.txt

Plugin of version 1.3.0 fails when Java 7 is used for Maven invocation

Excerpt from manual (https://buschmais.github.io/jqassistant/doc/1.3.0/#_requirements_3):

4.2.1. Requirements

  • Maven 3.2 or later
  • Java Development Kit 7 or later

Actual output from execution with Java 7:

Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.3.0:scan (jqassistant-scan) on project project: Execution jqassistant-scan of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.3.0:scan failed: Unable to load the mojo 'scan' in the plugin 'com.buschmais.jqassistant:jqassistant-maven-plugin:1.3.0' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com/buschmais/jqassistant/plugin/json/api/model/JSONArrayDescriptor : Unsupported major.minor version 52.0

Maven plugin configuration:

            <plugin>
                <groupId>com.buschmais.jqassistant</groupId>
                <artifactId>jqassistant-maven-plugin</artifactId>
                <version>1.3.0</version>
                <executions>
                    <execution>
                        <id>jqassistant-scan</id>
                        <goals>
                            <goal>scan</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Local Repository also scanned while running integration tests

We execute the integration tests with the help of the Maven Invoker Plugin. While running the integration test the jQAssistant Maven Plugin also scans the local repository used by the Maven Invoker Plugin.

Is this needed? The scan process prolongs the run time of the integration tests.

Documentation for resetting the store is wrong

Bug Description

I was trying to prevent the plugin to reset the store, since I want to build a team server containing data for all our classes. Setting <resetStore>false</resetStore> didn't work, but <reset>false</reset> did work.

I got the name for the parameter from the documentation, so the documentation is wrong and should be corrected.

How can we reproduce the bug?

Try <resetStore>false</resetStore> as described by https://jqassistant.github.io/jqassistant/doc/1.10.0/manual/index.html#_plugin_configuration . The plugin's output will show [INFO] Resetting store. and the story will be reset.

How could we have prevented this Bug?

Perhaps there should be a check between the source code and the documentation. Or the documentation should be generated from the source.

Definition of Done for the Implementers

  • Documentation has been written

Bolt port is already in use and can not be changed

The source scanning of a multi module maven project fails because in our CI environment the Neo4j Bolt port 7687 is already in use. I have seen no possibility to override neo4j specific setting. Have I missed something?

26-Sep-2018 18:15:09 [ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan (default) on project xxx: Execution default of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan failed: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory: Component 'org.neo4j.bolt.transport.NettyServer@38360fc3' was successfully initialized, but failed to start. Please see the attached cause exception "Address 127.0.0.1:7687 is already in use, cannot bind to it.". -> [Help 1]
26-Sep-2018 18:15:09 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan (default) on project helbsstore-webservice-clients: Execution default of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan failed: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
26-Sep-2018 18:15:09 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
26-Sep-2018 18:15:09 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
26-Sep-2018 18:15:09 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
26-Sep-2018 18:15:09 at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
26-Sep-2018 18:15:09 at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
26-Sep-2018 18:15:09 at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
26-Sep-2018 18:15:09 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
26-Sep-2018 18:15:09 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
26-Sep-2018 18:15:09 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
26-Sep-2018 18:15:09 at java.lang.reflect.Method.invoke(Method.java:498)
26-Sep-2018 18:15:09 at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
26-Sep-2018 18:15:09 at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
26-Sep-2018 18:15:09 at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
26-Sep-2018 18:15:09 at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
26-Sep-2018 18:15:09 Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan failed: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory
26-Sep-2018 18:15:09 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
26-Sep-2018 18:15:09 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
26-Sep-2018 18:15:09 ... 20 more
26-Sep-2018 18:15:09 Caused by: java.lang.RuntimeException: Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory
26-Sep-2018 18:15:09 at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:212)
26-Sep-2018 18:15:09 at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.newFacade(GraphDatabaseFacadeFactory.java:125)
26-Sep-2018 18:15:09 at org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:137)
26-Sep-2018 18:15:09 at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:130)
26-Sep-2018 18:15:09 at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:107)
26-Sep-2018 18:15:09 at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:199)
26-Sep-2018 18:15:09 at com.buschmais.xo.neo4j.embedded.api.FileDatastoreFactory.createGraphDatabaseService(FileDatastoreFactory.java:36)
26-Sep-2018 18:15:09 at com.buschmais.xo.neo4j.embedded.api.FileDatastoreFactory.createGraphDatabaseService(FileDatastoreFactory.java:17)
26-Sep-2018 18:15:09 at com.buschmais.xo.neo4j.embedded.api.EmbeddedNeo4jXOProvider.createDatastore(EmbeddedNeo4jXOProvider.java:23)
26-Sep-2018 18:15:09 at com.buschmais.xo.impl.XOManagerFactoryImpl.(XOManagerFactoryImpl.java:48)
26-Sep-2018 18:15:09 at com.buschmais.xo.impl.bootstrap.XOBootstrapServiceImpl.createXOManagerFactory(XOBootstrapServiceImpl.java:39)
26-Sep-2018 18:15:09 at com.buschmais.xo.api.bootstrap.XO.createXOManagerFactory(XO.java:43)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.core.store.impl.EmbeddedGraphStore.configure(EmbeddedGraphStore.java:62)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.core.store.impl.AbstractGraphStore.start(AbstractGraphStore.java:48)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.scm.maven.provider.StoreFactory.createStore(StoreFactory.java:38)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.scm.maven.AbstractMojo.getStore(AbstractMojo.java:403)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute(AbstractMojo.java:335)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo.execute(AbstractModuleMojo.java:24)
26-Sep-2018 18:15:09 at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute(AbstractMojo.java:212)
26-Sep-2018 18:15:09 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
26-Sep-2018 18:15:09 ... 21 more
26-Sep-2018 18:15:09 Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.bolt.transport.NettyServer@38360fc3' was successfully initialized, but failed to start. Please see the attached cause exception "Address 127.0.0.1:7687 is already in use, cannot bind to it.".
26-Sep-2018 18:15:09 at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:466)
26-Sep-2018 18:15:09 at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
26-Sep-2018 18:15:09 at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:445)
26-Sep-2018 18:15:09 at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
26-Sep-2018 18:15:09 at org.neo4j.kernel.extension.KernelExtensions.start(KernelExtensions.java:84)
26-Sep-2018 18:15:09 at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:445)
26-Sep-2018 18:15:09 at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:107)
26-Sep-2018 18:15:09 at org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory.initFacade(GraphDatabaseFacadeFactory.java:208)
26-Sep-2018 18:15:09 ... 40 more
26-Sep-2018 18:15:09 Caused by: org.neo4j.helpers.PortBindException: Address 127.0.0.1:7687 is already in use, cannot bind to it.
26-Sep-2018 18:15:09 at io.netty.channel.unix.Errors.newIOException(Errors.java:122)
26-Sep-2018 18:15:09 at io.netty.channel.unix.Socket.bind(Socket.java:287)
26-Sep-2018 18:15:09 at io.netty.channel.epoll.AbstractEpollChannel.doBind(AbstractEpollChannel.java:688)
26-Sep-2018 18:15:09 at io.netty.channel.epoll.EpollServerSocketChannel.doBind(EpollServerSocketChannel.java:70)
26-Sep-2018 18:15:09 at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:558)
26-Sep-2018 18:15:09 at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1358)
26-Sep-2018 18:15:09 at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:501)
26-Sep-2018 18:15:09 at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:486)
26-Sep-2018 18:15:09 at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:1019)
26-Sep-2018 18:15:09 at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:254)
26-Sep-2018 18:15:09 at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:366)
26-Sep-2018 18:15:09 at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
26-Sep-2018 18:15:09 at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
26-Sep-2018 18:15:09 at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309)
26-Sep-2018 18:15:09 at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
26-Sep-2018 18:15:09 at java.lang.Thread.run(Thread.java:745)

Maven Plugin: scanInclude seems not to work

I've added another directory for scanning as given in the documentation:


target/site/jacoco

But this directory is not scanned. There is no Entering/Leaving log output and the data is not imported. Same configuration is known to work in version 1.0.0.

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

reactor builds don't execute goals

with 1.5-rc-1, when I run a goal (e.g. jqassistant:server or jqassistant:available-rules) on a build with multiple modules, then nothing is done - for each module listed.

when selecting a project with -pl MODULE, the commands work again

<plugin> <groupId>com.buschmais.jqassistant</groupId> <artifactId>jqassistant-maven-plugin</artifactId> <version>1.5.0-RC-1</version> <executions> <execution> <goals> <goal>scan</goal> <goal>analyze</goal> </goals> <configuration> <warnOnSeverity>MINOR</warnOnSeverity> <failOnSeverity>MAJOR</failOnSeverity> <storeLifecycle>MODULE</storeLifecycle> </configuration> </execution> </executions> </plugin>

AnalyzeMojo should write the XML report with UTF-8 encoding

I created a simple rule with an umlaut in the description:

<constraint id="my-rules:dummy">
	<description>Hällo Wörld</description>
	<cypher><![CDATA[
MATCH ... RETURN ...
	]]></cypher>
</constraint>

The analysis with mvn jqassistant:analyze runs without problems and produces a XML report, but with platform encoding instead of UTF-8.

Running mvn jqassistant:report fails with this exception:

[ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.2.0:report (default-cli) on project myproject: An error has occurred in jQAssistant report generation. Cannot transform report. javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Ungültiges Byte 1 von 1-Byte-UTF-8-Sequenz. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.2.0:report (default-cli) on project myproject: An error has occurred in jQAssistant report generation.
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        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:497)
        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: An error has occurred in jQAssistant report generation.
        at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:101)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 20 more
Caused by: org.apache.maven.reporting.MavenReportException: Cannot transform report.
        at com.buschmais.jqassistant.scm.maven.ReportMojo.executeReport(ReportMojo.java:70)
        at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:135)
        at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:87)
        ... 22 more
Caused by: com.buschmais.jqassistant.core.report.api.ReportTransformerException: Cannot transform report.
        at com.buschmais.jqassistant.core.report.impl.HtmlReportTransformer.transform(HtmlReportTransformer.java:56)
        at com.buschmais.jqassistant.core.report.impl.HtmlReportTransformer.toEmbedded(HtmlReportTransformer.java:15)
        at com.buschmais.jqassistant.scm.maven.ReportMojo.executeReport(ReportMojo.java:68)
        ... 24 more
Caused by: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Ungültiges Byte 1 von 1-Byte-UTF-8-Sequenz.
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:755)
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:357)
        at com.buschmais.jqassistant.core.report.impl.HtmlReportTransformer.transform(HtmlReportTransformer.java:54)
        ... 26 more
Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Ungültiges Byte 1 von 1-Byte-UTF-8-Sequenz.
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:584)
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:745)
        ... 28 more
Caused by: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: Ungültiges Byte 1 von 1-Byte-UTF-8-Sequenz.
        at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:427)
        at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215)
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:562)
        ... 29 more

Version: 1.2.0

jqa creates large transaction log

JQA (1.1.3) creates a large transaction log (when called via Maven) in the neo4j store directory:

drwxr-xr-x  2 ascheman  staff         68 Apr 19 06:31 index/
-rw-r--r--  1 ascheman  staff      65211 Apr 19 06:34 messages.log
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:34 neostore
-rw-r--r--  1 ascheman  staff         96 Apr 19 06:31 neostore.counts.db.a
-rw-r--r--  1 ascheman  staff       9696 Apr 19 06:34 neostore.counts.db.b
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.id
-rw-r--r--  1 ascheman  staff       8190 Apr 19 06:31 neostore.labeltokenstore.db
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.labeltokenstore.db.id
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:31 neostore.labeltokenstore.db.names
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.labeltokenstore.db.names.id
-rw-r--r--  1 ascheman  staff   22743630 Apr 19 06:34 neostore.nodestore.db
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.nodestore.db.id
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:31 neostore.nodestore.db.labels
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.nodestore.db.labels.id
-rw-r--r--  1 ascheman  staff   81190209 Apr 19 06:34 neostore.propertystore.db
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:31 neostore.propertystore.db.arrays
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.propertystore.db.arrays.id
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.propertystore.db.id
-rw-r--r--  1 ascheman  staff       8190 Apr 19 06:31 neostore.propertystore.db.index
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.propertystore.db.index.id
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:31 neostore.propertystore.db.index.keys
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.propertystore.db.index.keys.id
-rw-r--r--  1 ascheman  staff   37076992 Apr 19 06:34 neostore.propertystore.db.strings
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.propertystore.db.strings.id
-rw-r--r--  1 ascheman  staff     384225 Apr 19 06:34 neostore.relationshipgroupstore.db
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.relationshipgroupstore.db.id
-rw-r--r--  1 ascheman  staff  100710720 Apr 19 06:34 neostore.relationshipstore.db
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.relationshipstore.db.id
-rw-r--r--  1 ascheman  staff       8190 Apr 19 06:31 neostore.relationshiptypestore.db
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.relationshiptypestore.db.id
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:31 neostore.relationshiptypestore.db.names
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.relationshiptypestore.db.names.id
-rw-r--r--  1 ascheman  staff       8192 Apr 19 06:31 neostore.schemastore.db
-rw-r--r--  1 ascheman  staff          9 Apr 19 06:34 neostore.schemastore.db.id
-rw-r--r--  1 ascheman  staff  263867275 Apr 19 06:34 neostore.transaction.db.1
-rw-r--r--  1 ascheman  staff   37773591 Apr 19 06:34 neostore.transaction.db.2
drwxr-xr-x  4 ascheman  staff        136 Apr 19 06:31 schema/
-rw-r--r--  1 ascheman  staff          0 Apr 19 06:31 store_lock

According to personal communications with @DirkMahler this should not be the case.

Migrate the Plugin Documentation of the Maven Plugin to the new Reference Manual

Task Description

Migrate the existing documentation of the Maven Plugin to the new reference manul.

Definition of Done for the Implementers

  • The reference manual contains the same information as the old user manual
  • The section on the Maven Plugin in the old user manual points to the section for the plugin in the reference manual

Problems with "mvn clean install"

Hi,

I don't think it will be easy to fix this, but I wanted to documet it for the future.

We use JQA 1.1.3-SNAPSHOT in conjunction with the insanely cool useExecutionRootAsProjectRoot option set to true. This works as it should.

Now we had the problem that in one project we could do "mvn clean install" and in another we couldn't. Yesterday I found out what was different. In the working version the reactor root was a parent of the child modules and in the not-working version it wasn't. It seems Maven would usually build the pom artifact at the end, unless it is referenced by another module (the parent dependency).

In the working case the reactor root is referenced by the children and the "clean" is done first. If the root is not referenced by any other module, it is processed at the end and hereby the clean is done at the end. On windows machines this will fail as the Neo4j system has locked the data files. On a Mac it will simply delete them and after the build the data is lost.

Chris

@ascheman

Allow analyze goal to execute per module

The analyze goal currently only executes at the last module of a project (i.e. usually the reactor). It shall be possible to configure the goal to execute per module

Record information about the build/version of which the analysis has been done

It should be recorded somewhere with which version/scm/build number information the analysis has been done. This is really important if you use a CI solution and to reference the results of a report in comparsion to the code state.

I would suggest to use a kind of meta data like git sha1/ svn revision or more generally a version, branch name and a build number. This could be easily extracted from the maven build itself or passed to jqassistant-maven-plugin by some properties...

Bug Report - Illegal reflective access - JDK11

Bug Description

I'm using jqassistant-maven-plugin:1.11.1

Currently I'm starting mvn jqassistant:server and got the following message:

[INFO] Connecting to store at 'file:/Users/xyz/project/target/jqassistant/store/'
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.eclipse.collections.impl.utility.ArrayListIterate (file:/Users/xyz/.m2/repository/org/eclipse/collections/eclipse-collections/9.2.0/eclipse-collections-9.2.0.jar) to field java.util.ArrayList.elementData
WARNING: Please consider reporting this to the maintainers of org.eclipse.collections.impl.utility.ArrayListIterate
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Initializing embedded Neo4j server 3.x

Expected Behaviour

It would be great that this warning could be cleaned up...

Your Environment

(jqassistant)$ mvn --version 
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /Users/xyz/tools/maven
Java version: 11.0.13, vendor: Eclipse Adoptium, runtime: /Users/xyz/.sdkman/candidates/java/11.0.13-tem
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"

How can we reproduce the bug?

$ mvn jqassistant:server

Afterwards you will see the above described warning.

Good ⭐⭐⭐

leidad (jqassistant)$ mvn --version 
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /Users/xyz/tools/maven
Java version: 11.0.13, vendor: Eclipse Adoptium, runtime: /Users/xyz/.sdkman/candidates/java/11.0.13-tem
Default locale: en_GB, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"

How could we have prevented this Bug?

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)

Clarification use of <configuration>

In the Maven plugin documentation is a proposal how to configure the scan goal:

<execution>
  <goals>
    <goal>scan</goal>
  </goals>
  <configuration>
    <scanIncludes>
      <scanInclude>
        <path>path-to-my-file-or-directory</path>
      </scanInclude>
    </scanIncludes>
  </configuration>
</execution>

This doesn't work for. In this case jQA scans the classes in the target directory.

In my experience the following works:

<plugin>
  ...
  <executions>
    <execution>
      <goals>
        <goal>scan</goal>
      </goals>
    </execution>
  <executions>
  <configuration>
    <scanIncludes>
      <scanInclude>
        <path>path-to-my-file-or-directory</path>
      </scanInclude>
    </scanIncludes>
  </configuration>
</plugin>

Questions:

  1. Could you verify my point?
  2. If I'm right, could you please fix the documentation?

Improvements around the report file required

The maven plugin of jQAssistant takes the custom rules (like XML based in /jqassistant) from the top-level-root-maven-root project; that's currently ok, because the rules are valid for the whole project (root in maven multi project environment).

But the maven plugin does also store the report file in that top-level-root-maven-root project. It does it also if reactor-root-project is a nested project inside the project structure. Other maven tasks like sonar:sonar cannot reach the report file in that top level location.
The jQAssistant report writer should respect the reactor top level module/project and store the report file there!

In a mid size project i got a resulting report file with a size of 250MB; that's a little bit to much for fast processing (With sonar:sonar the report file must be processed for every sub module in the multi project environment).
Can we find a strategy to reduce the size of the file or to split it into one per sub module... maybe aggregated by the top level project?
Or add an configuration flag to suppress concept failures and/or 'successful' constraints?!

In a Java environment the report file may contain entries having a 'source' like org/foo/Bar.class. If such a class file exists in more than once project the source is ambiguous.
So we need a more detailed source reference...
Or as in the topic before: if the report file is specific to ONE maven module the source should be unique enough

Add "Locations" to the Maven plugin

Starting with Maven 3 the "org.apache.maven.model.Dependenc" has a map of "locations" in which Maven specifies from which location a "version", "scope", ... is managed. This information could be extremely helpfull for rules like "Third Party Dependencies are managed by the Main Company Pom".

Allow rules in ./jqassistant to be used automatically

Currently jQAssistant does only use the project specific rules below ./jqassistant if they belong to the group "default" and if there is not a list of rule groups to be used specified in the project POM.

Please provide a way to force jQAssistant to use automatically all rules in ./jqassistant in addition to the list of rule groups specified on the command line or for the Maven plugin.

Adding this feature would help to support such use cases there the parent POM of an organisation already provides some rule groups and enforces them. In such a szenario such a feature would be helpfull to provide in an easy way some project specific rules with out any additional configuration.

Can't override property failOnSeverity on the commandline

I am not able to change the value for the configuration property failOnSeverity on the commandline, if the configuration of the plugin for Maven contains an explicit setting for the property failOnSeverity.

Tested with version: 1.6.0

How to reproduce:

  > git checkout 	[email protected]:buschmais/spring-petclinic.git
  > cd spring-petclinic
  > mvn clean install

The build will now pass, as the configuration of the plugin for Maven has been configured to fail only if constraints with the severity CRITICAL are violated

Now try to fail the build if constraints with the severity MAJOR are violated:

> mvn clean install -Djqassistant.failOnSeverity=MAJOR

The build will also succeed. The log messages by the plugin for Maven show that the property does not have changed.

Error occurs on scan for OSGi-bundles combined with JDK Service Provider Interfaces

Our big maven-reactor fails with jQAssistant from version 1.3.0 up, if we use Service Provider Interfaces in some module in combination with OSGi (tycho), with message:

[ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.6.0:scan (default) on project xxx: Execution default of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.6.0:scan failed: Unexpected problem encountered while scanning: item='/x/y/z/META-INF/services/xxx', path='/META-INF/services/xxx', scope='CLASSPATH', pipeline='[com.buschmais.jqassistant.plugin.common.impl.scanner.FileResourceScannerPlugin@705bf0, com.buschmais.jqassistant.plugin.java.impl.scanner.ServiceLoaderFileScannerPlugin@65c2c5fb]'. Please report this error including the full stacktrace (continueOnError=false). Cannot find a value for 'com.buschmais.jqassistant.plugin.java.api.scanner.TypeResolver' in the context -> [Help 1]

After deleting the mapping file under '/x/y/z/META-INF/services/xxx' (which is used to create new Service Provided Interfaces), the problem was solved and the jqa-scan is working again. So we think, there is a problem on resolving the named class from the mapping-file (which is located inside the OSGi-bundle itself).
With the old version 1.2.0 the scan runs through the project.

"Transaction was marked as successful, but unable to commit transaction so rolled back."

JQAssistant version: 1.4.0, but 1.5.0-SNAPSHOTS seems to use the same code.

Apparently, when an error occurs while scanning, the plugin will still try to commit the transaction in a finally block, and this will fail (see logs below). What's worse, the original error will be lost, since and exception will be thrown in a finally block.

See in particular https://github.com/buschmais/jqa-maven-plugin/blob/master/src/main/java/com/buschmais/jqassistant/scm/maven/ScanMojo.java#L98

I don't know exactly what should be done instead, but at the very least I think the try/finally block should be replaced with this:

Throwable thrown = null;

try {
    ...

} catch (Throwable e) {
    try {
         // Even if an error occurred, try to commit the transaction
         store.commitTransaction();
     } catch (Throwable e2) {
         e.addSuppressed(e2);
     }
     throw e;
}
// If scanning went well, commit the transaction
store.commitTransaction();

Logs:

[ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan (jqassistant) on project hibernate-search-engine: Execution jqassistant of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan failed: Transaction was marked as successful, but unable to commit transaction so rolled back.: Transaction rolled back even if marked as successful -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan (jqassistant) on project hibernate-search-engine: Execution jqassistant of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan failed: Transaction was marked as successful, but unable to commit transaction so rolled back.
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    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.PluginExecutionException: Execution jqassistant of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.4.0:scan failed: Transaction was marked as successful, but unable to commit transaction so rolled back.
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    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.neo4j.graphdb.TransactionFailureException: Transaction was marked as successful, but unable to commit transaction so rolled back.
    at org.neo4j.kernel.impl.coreapi.TopLevelTransaction.close (TopLevelTransaction.java:100)
    at com.buschmais.xo.neo4j.embedded.impl.datastore.EmbeddedNeo4jDatastoreTransaction.closeTransaction (EmbeddedNeo4jDatastoreTransaction.java:52)
    at com.buschmais.xo.neo4j.embedded.impl.datastore.EmbeddedNeo4jDatastoreTransaction.commit (EmbeddedNeo4jDatastoreTransaction.java:30)
    at com.buschmais.xo.impl.XOTransactionImpl.commit (XOTransactionImpl.java:38)
    at com.buschmais.jqassistant.core.store.impl.AbstractGraphStore.commitTransaction (AbstractGraphStore.java:165)
    at com.buschmais.jqassistant.scm.maven.ScanMojo.execute (ScanMojo.java:98)
    at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo$1.run (AbstractModuleMojo.java:21)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:340)
    at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo.execute (AbstractModuleMojo.java:24)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:212)
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    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.neo4j.internal.kernel.api.exceptions.TransactionFailureException: Transaction rolled back even if marked as successful
    at org.neo4j.kernel.impl.api.KernelTransactionImplementation.failOnNonExplicitRollbackIfNeeded (KernelTransactionImplementation.java:599)
    at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction (KernelTransactionImplementation.java:541)
    at org.neo4j.internal.kernel.api.Transaction.close (Transaction.java:189)
    at org.neo4j.kernel.impl.coreapi.TopLevelTransaction.close (TopLevelTransaction.java:78)
    at com.buschmais.xo.neo4j.embedded.impl.datastore.EmbeddedNeo4jDatastoreTransaction.closeTransaction (EmbeddedNeo4jDatastoreTransaction.java:52)
    at com.buschmais.xo.neo4j.embedded.impl.datastore.EmbeddedNeo4jDatastoreTransaction.commit (EmbeddedNeo4jDatastoreTransaction.java:30)
    at com.buschmais.xo.impl.XOTransactionImpl.commit (XOTransactionImpl.java:38)
    at com.buschmais.jqassistant.core.store.impl.AbstractGraphStore.commitTransaction (AbstractGraphStore.java:165)
    at com.buschmais.jqassistant.scm.maven.ScanMojo.execute (ScanMojo.java:98)
    at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo$1.run (AbstractModuleMojo.java:21)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:340)
    at com.buschmais.jqassistant.scm.maven.AbstractModuleMojo.execute (AbstractModuleMojo.java:24)
    at com.buschmais.jqassistant.scm.maven.AbstractMojo.execute (AbstractMojo.java:212)
    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:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    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)
[ERROR] 
[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/PluginExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hibernate-search-engine
[INFO] Closing store in directory 'file:/home/yrodiere/tmp/jqatest/target/jqassistant/store'.
[WARNING] Rolling back an active transaction.

Steps to reproduce:

mkdir jqatest
cd jqatest
git clone https://github.com/yrodiere/hibernate-search.git --single-branch --no-tags -b jqa-i17-i18 .
mvn clean install -DskipTests -Pjqassistant -e -X

JQAssistant on a new project shows a warning

Hello,

Adding JQAssistant (1.8.0-MS1 and 1.7.0) on a brand new project that only has one class Cat.java, gives the following message

Report plugin org.apache.maven.plugins:maven-project-info-reports-plugin has an empty version.
It is highly recommended to fix these problems because they threaten the stability of your build.
For this reason, future Maven versions might no longer support building such malformed projects.

I strongly believe that you should address this issue, at least help users to fix the issue by adding some workaround in your documentation.

Here is a link to a commit where you can see the warning :
gabrieloshiro/jqassistant-pov@72a0c77

And here is the solution (that I believe you should be addressing)

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.0.0</version>
			</plugin>
	</reporting>

Thanks

Execution default of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.5.0:scan failed: There is no existing transaction.

We use this plugin in a big maven-reactor. After many successful scanned modules the run breaks in a project with the error-message:
[ERROR] Failed to execute goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.5.0:scan (default) on project xxxxxxxxx: Execution default of goal com.buschmais.jqassistant:jqassistant-maven-plugin:1.5.0:scan failed: There is no existing transaction.
What could be the reason for this error?

jqassistant-maven-plugin failing during site build

Even when building with one thread
mvn -T1 -Psite site:site
the scan goal of the jqassistant-maven-plugin failed with problems with neo4j:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.5.1:site (default-cli) on project intention-dto: failed to get report for org.codehaus.mojo:cobertura-maven-plugin: Failed to execute goal com.buschmais.jqassistant.scm:jqassistant-maven-plugin:1.1.4:scan (default) on project intention-dto: Execution default of goal com.buschmais.jqassistant.scm:jqassistant-maven-plugin:1.1.4:scan failed: Error starting org.neo4j.kernel.impl.factory.CommunityFacadeFactory, /home/raucha/entwicklung/applicationServices/ask-ims/head/ask-ims/target/jqassistant/store: Component 'org.neo4j.kernel.StoreLockerLifecycleAdapter@5e5df179' was successfully initialized, but failed to start. Please see attached cause exception. Unable to obtain lock on store lock file: /home/raucha/entwicklung/applicationServices/ask-ims/head/ask-ims/target/jqassistant/store/store_lock. Please ensure no other process is using this database, and that the directory is writable (required even for read-only access): OverlappingFileLockException -> [Help 1]

Interestingly the previous mvn install worked fine which also includes the scan goal. Is there any way to find out why install is working and site is not?

Error injecting: private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder com.buschmais.jqassistant.scm.maven.ScanMojo.dependencyGraphBuilder while locating com.buschmais.jqassistant.scm.maven.ScanMojo

Hello,

when in I try to run the jqassistant analysis via the maven parameter, I get the following error:

[INFO] --- jqassistant-maven-plugin:1.7.0-MS3:scan (default-cli) @ ejb3guice ---
[INFO] Loaded jQAssistant plugins [CDI, Common, Core Analysis, Core Report, EJB3, GraphML, JAX-RS, JPA 2, JSON, JUnit, Java, Java 8, Java EE 6, Maven 2 Repository, Maven 3, OSGi, RDBMS, Spring, TestNG, Tycho, XML, YAML].
[WARNING] Error injecting: com.buschmais.jqassistant.scm.maven.ScanMojo
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting: private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder com.buschmais.jqassistant.scm.maven.ScanMojo.dependencyGraphBuilder
  while locating com.buschmais.jqassistant.scm.maven.ScanMojo

1 error
    at com.google.inject.internal.InjectorImpl$2.get (InjectorImpl.java:1025)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1051)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:81)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:53)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:65)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:115)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:133)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:68)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:63)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:45)
    at com.google.inject.internal.InjectorImpl$2$1.call (InjectorImpl.java:1016)
    at com.google.inject.internal.InjectorImpl.callInContext (InjectorImpl.java:1092)
    at com.google.inject.internal.InjectorImpl$2.get (InjectorImpl.java:1012)
    at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:519)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:121)
    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:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    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: java.lang.IllegalArgumentException: Can not set org.apache.maven.shared.dependency.graph.DependencyGraphBuilder field com.buschmais.jqassistant.scm.maven.ScanMojo.dependencyGraphBuilder to org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java:167)
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException (UnsafeFieldAccessorImpl.java:171)
    at sun.reflect.UnsafeObjectFieldAccessorImpl.set (UnsafeObjectFieldAccessorImpl.java:81)
    at java.lang.reflect.Field.set (Field.java:764)
    at org.eclipse.sisu.bean.BeanPropertyField.set (BeanPropertyField.java:74)
    at org.eclipse.sisu.plexus.ProvidedPropertyBinding.injectProperty (ProvidedPropertyBinding.java:48)
    at org.eclipse.sisu.bean.BeanInjector.injectMembers (BeanInjector.java:52)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers (MembersInjectorImpl.java:140)
    at com.google.inject.internal.ConstructorInjector.provision (ConstructorInjector.java:114)
    at com.google.inject.internal.ConstructorInjector.access$000 (ConstructorInjector.java:32)
    at com.google.inject.internal.ConstructorInjector$1.call (ConstructorInjector.java:89)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:115)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:133)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:68)
    at com.google.inject.internal.ConstructorInjector.construct (ConstructorInjector.java:87)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get (ConstructorBindingImpl.java:267)
    at com.google.inject.internal.InjectorImpl$2$1.call (InjectorImpl.java:1016)
    at com.google.inject.internal.InjectorImpl.callInContext (InjectorImpl.java:1103)
    at com.google.inject.internal.InjectorImpl$2.get (InjectorImpl.java:1012)
    at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1051)
    at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:81)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:53)
    at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:65)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:115)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:133)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:68)
    at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:63)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:45)
    at com.google.inject.internal.InjectorImpl$2$1.call (InjectorImpl.java:1016)
    at com.google.inject.internal.InjectorImpl.callInContext (InjectorImpl.java:1092)
    at com.google.inject.internal.InjectorImpl$2.get (InjectorImpl.java:1012)
    at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:519)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:121)
    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:51)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    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)

Can anybody tell from the stacktrace what is going wrong?

Thanks and best regards

Plugin slows down maven start-up

After adding jqassistant plugin, we experience a huge ramp-up time on any maven command, even completely unrelated actions such as eclipse.eclipse. I guess this comes from startup up the neo4j in-memory database.

Is this behaviour intended? Is there a way to deactivating it?

Error deploying to repository when the project includes the JQA Maven Plugin

When addind the version 1.7.0 to the project deploying to a private Maven repository (hosted at work) fails. This works with older versions of the plugin.

The deployment, done with Maven and Jenkins, fails with a forbidden error (HTTP code 403).

Maven version: 3.6.2
JDK: 1.8.0_162
Operative system: OS name: "linux", version: "4.4.73-5-default", arch: "amd64", family: "unix"
Jenkins version: 2.204.1

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.