This is an automated email from the ASF dual-hosted git repository.
veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git
The following commit(s) were added to refs/heads/master by this push:
new c0a88840a Migrate detect-cycles from enforcer-maven-plugin to
decycle-maven-plugin
c0a88840a is described below
commit c0a88840a5128748091bf1bc6c9f9813fdb61d02
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Apr 19 14:44:57 2026 +0100
Migrate detect-cycles from enforcer-maven-plugin to decycle-maven-plugin
Replace com.github.veithen.phos:enforcer-maven-plugin detect-cycles goal
with de.obqo.decycle:decycle-maven-plugin:check (v1.2.6) across 9 modules.
Keep the phos enforcer-maven-plugin in axiom-api solely for the
enforce-layering goal, which has no decycle equivalent.
Use <ignoredDependency> instead of <dependency> inside <ignoring> blocks
to work around a known tidy-maven-plugin bug (#7).
---
axiom-api/pom.xml | 93 +++++++++++++++++++++++++++++---------
axiom-legacy-attachments/pom.xml | 18 +++++---
axiom-weaver/pom.xml | 9 ++--
components/pom.xml | 9 ++--
implementations/axiom-dom/pom.xml | 48 ++++++++++++++------
implementations/axiom-impl/pom.xml | 23 ++++++----
implementations/pom.xml | 9 ++--
mixins/om-mixins/pom.xml | 39 ++++++++++++----
mixins/pom.xml | 9 ++--
pom.xml | 5 ++
10 files changed, 192 insertions(+), 70 deletions(-)
diff --git a/axiom-api/pom.xml b/axiom-api/pom.xml
index 178ac6f8d..dec552d87 100644
--- a/axiom-api/pom.xml
+++ b/axiom-api/pom.xml
@@ -253,37 +253,88 @@
</configuration>
</plugin>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
- <id>detect-cycles</id>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
<configuration>
- <ignore>
+ <skipTest>true</skipTest>
+ <ignoring>
<!-- o.a.a.soap should be a layer on top of
o.a.a.om -->
- org.apache.axiom.om.OMAbstractFactory ->
org.apache.axiom.soap.SOAPFactory,
- org.apache.axiom.om.OMMetaFactory ->
org.apache.axiom.soap.SOAPFactory,
- org.apache.axiom.om.OMMetaFactorySPI ->
org.apache.axiom.soap.SOAPModelBuilder,
- org.apache.axiom.om.OMXMLBuilderFactory ->
org.apache.axiom.soap.SOAPFactory,
- org.apache.axiom.om.OMXMLBuilderFactory ->
org.apache.axiom.soap.SOAPMessage,
- org.apache.axiom.om.OMXMLBuilderFactory ->
org.apache.axiom.soap.SOAPModelBuilder,
- org.apache.axiom.om.OMXMLBuilderFactory ->
org.apache.axiom.soap.SOAPProcessingException,
- org.apache.axiom.om.OMXMLBuilderFactory ->
org.apache.axiom.soap.SOAPVersion,
- org.apache.axiom.om.OMOutputFormat ->
org.apache.axiom.soap.SOAPVersion,
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMAbstractFactory</from>
+ <to>org.apache.axiom.soap.SOAPFactory</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMMetaFactory</from>
+ <to>org.apache.axiom.soap.SOAPFactory</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMMetaFactorySPI</from>
+
<to>org.apache.axiom.soap.SOAPModelBuilder</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMXMLBuilderFactory</from>
+ <to>org.apache.axiom.soap.SOAPFactory</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMXMLBuilderFactory</from>
+ <to>org.apache.axiom.soap.SOAPMessage</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMXMLBuilderFactory</from>
+
<to>org.apache.axiom.soap.SOAPModelBuilder</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMXMLBuilderFactory</from>
+
<to>org.apache.axiom.soap.SOAPProcessingException</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMXMLBuilderFactory</from>
+ <to>org.apache.axiom.soap.SOAPVersion</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMOutputFormat</from>
+ <to>org.apache.axiom.soap.SOAPVersion</to>
+ </ignoredDependency>
<!-- The public API shouldn't depend on
classes in o.a.a.om.util -->
- org.apache.axiom.om.OMMetaFactorySPI ->
org.apache.axiom.om.util.StAXParserConfiguration,
- org.apache.axiom.om.OMXMLBuilderFactory ->
org.apache.axiom.om.util.StAXParserConfiguration,
- org.apache.axiom.om.OMOutputFormat ->
org.apache.axiom.om.util.StAXWriterConfiguration,
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMMetaFactorySPI</from>
+
<to>org.apache.axiom.om.util.StAXParserConfiguration</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMXMLBuilderFactory</from>
+
<to>org.apache.axiom.om.util.StAXParserConfiguration</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.OMOutputFormat</from>
+
<to>org.apache.axiom.om.util.StAXWriterConfiguration</to>
+ </ignoredDependency>
<!-- StAXUtils is in the wrong package (should
be o.a.a.util.stax) -->
-
org.apache.axiom.om.ds.AbstractPushOMDataSource ->
org.apache.axiom.om.util.StAXUtils,
- org.apache.axiom.om.ds.BlobOMDataSource ->
org.apache.axiom.om.util.StAXUtils,
- org.apache.axiom.om.ds.StringOMDataSource
-> org.apache.axiom.om.util.StAXUtils,
- </ignore>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.ds.AbstractPushOMDataSource</from>
+ <to>org.apache.axiom.om.util.StAXUtils</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.ds.BlobOMDataSource</from>
+ <to>org.apache.axiom.om.util.StAXUtils</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.ds.StringOMDataSource</from>
+ <to>org.apache.axiom.om.util.StAXUtils</to>
+ </ignoredDependency>
+ </ignoring>
</configuration>
</execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>com.github.veithen.phos</groupId>
+ <artifactId>enforcer-maven-plugin</artifactId>
+ <executions>
<execution>
<id>enforce-layering</id>
<goals>
diff --git a/axiom-legacy-attachments/pom.xml b/axiom-legacy-attachments/pom.xml
index 5b7db6028..7ad613dab 100644
--- a/axiom-legacy-attachments/pom.xml
+++ b/axiom-legacy-attachments/pom.xml
@@ -116,18 +116,22 @@
</configuration>
</plugin>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
<configuration>
- <ignore>
- <!-- Bad API design: a public API shouldn't
depend on classes in an impl package in its interface -->
-
org.apache.axiom.attachments.lifecycle.LifecycleManager ->
org.apache.axiom.attachments.lifecycle.impl.FileAccessor,
- </ignore>
+ <skipTest>true</skipTest>
+ <!-- Bad API design: a public API shouldn't depend
on classes in an impl package in its interface -->
+ <ignoring>
+ <ignoredDependency>
+
<from>org.apache.axiom.attachments.lifecycle.LifecycleManager</from>
+
<to>org.apache.axiom.attachments.lifecycle.impl.FileAccessor</to>
+ </ignoredDependency>
+ </ignoring>
</configuration>
</execution>
</executions>
diff --git a/axiom-weaver/pom.xml b/axiom-weaver/pom.xml
index 90a3e34be..24e5b0c12 100644
--- a/axiom-weaver/pom.xml
+++ b/axiom-weaver/pom.xml
@@ -82,13 +82,16 @@
<build>
<plugins>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
+ <configuration>
+ <skipTest>true</skipTest>
+ </configuration>
</execution>
</executions>
</plugin>
diff --git a/components/pom.xml b/components/pom.xml
index 1bb25e295..0542e3993 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -42,13 +42,16 @@
<build>
<plugins>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
+ <configuration>
+ <skipTest>true</skipTest>
+ </configuration>
</execution>
</executions>
</plugin>
diff --git a/implementations/axiom-dom/pom.xml
b/implementations/axiom-dom/pom.xml
index 34bca71dd..63e9c2a3a 100644
--- a/implementations/axiom-dom/pom.xml
+++ b/implementations/axiom-dom/pom.xml
@@ -245,24 +245,46 @@
</configuration>
</plugin>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
<configuration>
- <ignore>
- <!-- TODO: inject the reference to the
singleton into mixins directly -->
- org.apache.axiom.om.impl.dom.CoreNodeImpl
-> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactory,
- org.apache.axiom.om.impl.dom.CoreNodeImpl
-> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-
org.apache.axiom.om.impl.dom.DOOMNSAwareElementImpl ->
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
- org.apache.axiom.om.impl.dom.CoreChildNodeImpl
-> org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-
org.apache.axiom.om.impl.dom.AxiomCoreParentNodeImpl ->
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-
org.apache.axiom.om.impl.dom.DOOMNSAwareAttributeImpl ->
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-
org.apache.axiom.om.impl.dom.DOOMNamespaceDeclarationImpl ->
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl
- </ignore>
+ <skipTest>true</skipTest>
+ <!-- TODO: inject the reference to the singleton
into mixins directly -->
+ <ignoring>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.CoreNodeImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactory</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.CoreNodeImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.DOOMNSAwareElementImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.CoreChildNodeImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.AxiomCoreParentNodeImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.DOOMNSAwareAttributeImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.dom.DOOMNamespaceDeclarationImpl</from>
+
<to>org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl</to>
+ </ignoredDependency>
+ </ignoring>
</configuration>
</execution>
</executions>
diff --git a/implementations/axiom-impl/pom.xml
b/implementations/axiom-impl/pom.xml
index eb4fd1526..85dcfbd06 100644
--- a/implementations/axiom-impl/pom.xml
+++ b/implementations/axiom-impl/pom.xml
@@ -205,19 +205,26 @@
</configuration>
</plugin>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
<configuration>
- <ignore>
- <!-- TODO: inject the reference to the
singleton into mixins directly -->
- org.apache.axiom.om.impl.llom.CoreNodeImpl
-> org.apache.axiom.om.impl.llom.factory.AxiomNodeFactoryImpl,
- org.apache.axiom.om.impl.llom.CoreNodeImpl
-> org.apache.axiom.om.impl.llom.factory.LLOMNodeFactory
- </ignore>
+ <skipTest>true</skipTest>
+ <!-- TODO: inject the reference to the singleton
into mixins directly -->
+ <ignoring>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.llom.CoreNodeImpl</from>
+
<to>org.apache.axiom.om.impl.llom.factory.AxiomNodeFactoryImpl</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.llom.CoreNodeImpl</from>
+
<to>org.apache.axiom.om.impl.llom.factory.LLOMNodeFactory</to>
+ </ignoredDependency>
+ </ignoring>
</configuration>
</execution>
</executions>
diff --git a/implementations/pom.xml b/implementations/pom.xml
index 1f073da54..938f4a912 100644
--- a/implementations/pom.xml
+++ b/implementations/pom.xml
@@ -50,13 +50,16 @@
</configuration>
</plugin>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
+ <configuration>
+ <skipTest>true</skipTest>
+ </configuration>
</execution>
</executions>
</plugin>
diff --git a/mixins/om-mixins/pom.xml b/mixins/om-mixins/pom.xml
index 70ab733e2..e2ff0a28f 100644
--- a/mixins/om-mixins/pom.xml
+++ b/mixins/om-mixins/pom.xml
@@ -74,22 +74,43 @@
<build>
<plugins>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
<configuration>
- <ignore>
+ <skipTest>true</skipTest>
+ <ignoring>
<!-- TODO: inject the reference to the
singleton into mixins directly -->
-
org.apache.axiom.om.impl.intf.AxiomInformationItem ->
org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory,
+ <ignoredDependency>
+
<from>org.apache.axiom.om.impl.intf.AxiomInformationItem</from>
+
<to>org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory</to>
+ </ignoredDependency>
<!-- TODO: figure out how to break those
cycles properly -->
- org.apache.axiom.soap.impl.intf.SOAPHelper
-> org.apache.axiom.om.impl.intf.factory.AxiomElementType,
-
org.apache.axiom.soap.impl.intf.soap11.SOAP11Helper ->
org.apache.axiom.om.impl.intf.factory.AxiomElementType,
-
org.apache.axiom.soap.impl.intf.soap12.SOAP12Helper ->
org.apache.axiom.om.impl.intf.factory.AxiomElementType
- </ignore>
+ <ignoredDependency>
+
<from>org.apache.axiom.soap.impl.intf.SOAPHelper</from>
+
<to>org.apache.axiom.om.impl.intf.factory.AxiomElementType</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.soap.impl.intf.soap11.SOAP11Helper</from>
+
<to>org.apache.axiom.om.impl.intf.factory.AxiomElementType</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.soap.impl.intf.soap11.SOAP11Helper</from>
+
<to>org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.soap.impl.intf.soap12.SOAP12Helper</from>
+
<to>org.apache.axiom.om.impl.intf.factory.AxiomElementType</to>
+ </ignoredDependency>
+ <ignoredDependency>
+
<from>org.apache.axiom.soap.impl.intf.soap12.SOAP12Helper</from>
+
<to>org.apache.axiom.om.impl.intf.factory.AxiomNodeFactory</to>
+ </ignoredDependency>
+ </ignoring>
</configuration>
</execution>
</executions>
diff --git a/mixins/pom.xml b/mixins/pom.xml
index ebaf8354d..4ad10c943 100644
--- a/mixins/pom.xml
+++ b/mixins/pom.xml
@@ -41,13 +41,16 @@
<build>
<plugins>
<plugin>
- <groupId>com.github.veithen.phos</groupId>
- <artifactId>enforcer-maven-plugin</artifactId>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
<executions>
<execution>
<goals>
- <goal>detect-cycles</goal>
+ <goal>check</goal>
</goals>
+ <configuration>
+ <skipTest>true</skipTest>
+ </configuration>
</execution>
</executions>
</plugin>
diff --git a/pom.xml b/pom.xml
index 0ae57cea3..0bd3ce26c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -860,6 +860,11 @@
<artifactId>enforcer-maven-plugin</artifactId>
<version>0.5.0-SNAPSHOT</version>
</plugin>
+ <plugin>
+ <groupId>de.obqo.decycle</groupId>
+ <artifactId>decycle-maven-plugin</artifactId>
+ <version>1.2.6</version>
+ </plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.9.0</version>