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 -&gt; 
org.apache.axiom.soap.SOAPFactory,
-                                org.apache.axiom.om.OMMetaFactory -&gt; 
org.apache.axiom.soap.SOAPFactory,
-                                org.apache.axiom.om.OMMetaFactorySPI -&gt; 
org.apache.axiom.soap.SOAPModelBuilder,
-                                org.apache.axiom.om.OMXMLBuilderFactory -&gt; 
org.apache.axiom.soap.SOAPFactory,
-                                org.apache.axiom.om.OMXMLBuilderFactory -&gt; 
org.apache.axiom.soap.SOAPMessage,
-                                org.apache.axiom.om.OMXMLBuilderFactory -&gt; 
org.apache.axiom.soap.SOAPModelBuilder,
-                                org.apache.axiom.om.OMXMLBuilderFactory -&gt; 
org.apache.axiom.soap.SOAPProcessingException,
-                                org.apache.axiom.om.OMXMLBuilderFactory -&gt; 
org.apache.axiom.soap.SOAPVersion,
-                                org.apache.axiom.om.OMOutputFormat -&gt; 
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 -&gt; 
org.apache.axiom.om.util.StAXParserConfiguration,
-                                org.apache.axiom.om.OMXMLBuilderFactory -&gt; 
org.apache.axiom.om.util.StAXParserConfiguration,
-                                org.apache.axiom.om.OMOutputFormat -&gt; 
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 -&gt; 
org.apache.axiom.om.util.StAXUtils,
-                                org.apache.axiom.om.ds.BlobOMDataSource -&gt; 
org.apache.axiom.om.util.StAXUtils,
-                                org.apache.axiom.om.ds.StringOMDataSource 
-&gt; 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 -&gt; 
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 
-&gt; org.apache.axiom.om.impl.dom.factory.DOOMNodeFactory,
-                                org.apache.axiom.om.impl.dom.CoreNodeImpl 
-&gt; org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-                                
org.apache.axiom.om.impl.dom.DOOMNSAwareElementImpl -&gt; 
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-                                org.apache.axiom.om.impl.dom.CoreChildNodeImpl 
-&gt; org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-                                
org.apache.axiom.om.impl.dom.AxiomCoreParentNodeImpl -&gt; 
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-                                
org.apache.axiom.om.impl.dom.DOOMNSAwareAttributeImpl -&gt; 
org.apache.axiom.om.impl.dom.factory.DOOMNodeFactoryImpl,
-                                
org.apache.axiom.om.impl.dom.DOOMNamespaceDeclarationImpl -&gt; 
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 
-&gt; org.apache.axiom.om.impl.llom.factory.AxiomNodeFactoryImpl,
-                                org.apache.axiom.om.impl.llom.CoreNodeImpl 
-&gt; 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 -&gt; 
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 
-&gt; org.apache.axiom.om.impl.intf.factory.AxiomElementType,
-                                
org.apache.axiom.soap.impl.intf.soap11.SOAP11Helper -&gt; 
org.apache.axiom.om.impl.intf.factory.AxiomElementType,
-                                
org.apache.axiom.soap.impl.intf.soap12.SOAP12Helper -&gt; 
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>

Reply via email to