Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package domtrip for openSUSE:Factory checked in at 2026-07-21 23:10:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/domtrip (Old) and /work/SRC/openSUSE:Factory/.domtrip.new.24530 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "domtrip" Tue Jul 21 23:10:25 2026 rev:3 rq:1366877 version:1.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/domtrip/domtrip.changes 2026-06-04 18:57:22.480453023 +0200 +++ /work/SRC/openSUSE:Factory/.domtrip.new.24530/domtrip.changes 2026-07-21 23:10:43.234954254 +0200 @@ -1,0 +2,22 @@ +Tue Jul 21 05:53:21 UTC 2026 - Fridrich Strba <[email protected]> + +- Update to upstream version 1.6.0 + * New features and improvements + + Fix #254: Add Editor.insertCommentBefore/After methods + + Add COMBINE_REMOVE constant to MavenPomElements.Attributes + * Dependency updates + + bump version.quarkus.platform from 3.36.0 to 3.37.1 + + bump org.junit.jupiter:junit-jupiter from 6.1.0 to 6.1.1 + + bump eu.maveniverse.maven.nisse:extension from 0.9.2 to 0.9.3 + + bump eu.maveniverse.maven.parent:parent from 55 to 56 + + bump version.quarkus-roq from 2.1.3 to 2.1.5 + + bump actions/checkout from 6 to 7 + + bump jaxen:jaxen from 2.0.4 to 2.0.6 + * Maintenance + + Deps: parent POM 55 and others +- Removed patch: + * domtrip-ant-build-system.patch + + distribute the ant build system as domtrip-build.tar.xz + tarball instead + +------------------------------------------------------------------- Old: ---- 1.5.2.tar.gz domtrip-ant-build-system.patch New: ---- 1.6.0.tar.gz domtrip-build.tar.xz ----------(Old B)---------- Old:- Removed patch: * domtrip-ant-build-system.patch + distribute the ant build system as domtrip-build.tar.xz ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ domtrip.spec ++++++ --- /var/tmp/diff_new_pack.tlnBNM/_old 2026-07-21 23:10:43.814974085 +0200 +++ /var/tmp/diff_new_pack.tlnBNM/_new 2026-07-21 23:10:43.818974222 +0200 @@ -17,13 +17,13 @@ Name: domtrip -Version: 1.5.2 +Version: 1.6.0 Release: 0 Summary: Lossless XML Editing for Java License: EPL-2.0 URL: https://github.com/maveniverse/domtrip Source0: https://github.com/maveniverse/%{name}/archive/refs/tags/%{version}.tar.gz -Patch0: %{name}-ant-build-system.patch +Source1: %{name}-build.tar.xz BuildRequires: ant BuildRequires: fdupes BuildRequires: java-devel >= 9 @@ -44,8 +44,7 @@ This package contains the API documentation for %{name}. %prep -%setup -q -%patch -P 0 -p1 +%setup -q -a1 %pom_xpath_inject pom:project/pom:properties " <nisse.jgit.dynamicVersion>%{version}</nisse.jgit.dynamicVersion>" ++++++ 1.5.2.tar.gz -> 1.6.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.github/workflows/ci.yml new/domtrip-1.6.0/.github/workflows/ci.yml --- old/domtrip-1.5.2/.github/workflows/ci.yml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.github/workflows/ci.yml 2026-07-08 13:30:36.000000000 +0200 @@ -15,7 +15,7 @@ steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.github/workflows/deploy-website.yml new/domtrip-1.6.0/.github/workflows/deploy-website.yml --- old/domtrip-1.5.2/.github/workflows/deploy-website.yml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.github/workflows/deploy-website.yml 2026-07-08 13:30:36.000000000 +0200 @@ -19,7 +19,7 @@ steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 # Fetch all history for proper git info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.github/workflows/release-drafter.yml new/domtrip-1.6.0/.github/workflows/release-drafter.yml --- old/domtrip-1.5.2/.github/workflows/release-drafter.yml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.github/workflows/release-drafter.yml 2026-07-08 13:30:36.000000000 +0200 @@ -25,7 +25,7 @@ - name: Checkout if: github.event_name == 'push' - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.github/workflows/release.yml new/domtrip-1.6.0/.github/workflows/release.yml --- old/domtrip-1.5.2/.github/workflows/release.yml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.github/workflows/release.yml 2026-07-08 13:30:36.000000000 +0200 @@ -24,7 +24,7 @@ steps: - name: Checkout ${{ github.ref_name }} - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 ref: ${{ github.ref }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.github/workflows/snapshot.yml new/domtrip-1.6.0/.github/workflows/snapshot.yml --- old/domtrip-1.5.2/.github/workflows/snapshot.yml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.github/workflows/snapshot.yml 2026-07-08 13:30:36.000000000 +0200 @@ -16,7 +16,7 @@ steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.github/workflows/sonarcloud.yml new/domtrip-1.6.0/.github/workflows/sonarcloud.yml --- old/domtrip-1.5.2/.github/workflows/sonarcloud.yml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.github/workflows/sonarcloud.yml 2026-07-08 13:30:36.000000000 +0200 @@ -16,7 +16,7 @@ steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.mvn/extensions.xml new/domtrip-1.6.0/.mvn/extensions.xml --- old/domtrip-1.5.2/.mvn/extensions.xml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.mvn/extensions.xml 2026-07-08 13:30:36.000000000 +0200 @@ -3,6 +3,6 @@ <extension> <groupId>eu.maveniverse.maven.nisse</groupId> <artifactId>extension</artifactId> - <version>0.9.1</version> + <version>0.9.3</version> </extension> </extensions> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/.mvn/wrapper/maven-wrapper.properties new/domtrip-1.6.0/.mvn/wrapper/maven-wrapper.properties --- old/domtrip-1.5.2/.mvn/wrapper/maven-wrapper.properties 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/.mvn/wrapper/maven-wrapper.properties 2026-07-08 13:30:36.000000000 +0200 @@ -1,19 +1,3 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -wrapperVersion=3.3.2 +wrapperVersion=3.3.4 distributionType=only-script -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/core/src/main/java/eu/maveniverse/domtrip/Editor.java new/domtrip-1.6.0/core/src/main/java/eu/maveniverse/domtrip/Editor.java --- old/domtrip-1.5.2/core/src/main/java/eu/maveniverse/domtrip/Editor.java 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/core/src/main/java/eu/maveniverse/domtrip/Editor.java 2026-07-08 13:30:36.000000000 +0200 @@ -604,6 +604,117 @@ return comment; } + /** + * Inserts a comment before the specified reference element. + * + * <p>This method creates a new comment and inserts it immediately before + * the reference element in the parent's child list. The comment's whitespace + * is automatically inferred from the reference element's context, matching + * the behavior of {@link #insertElementBefore(Element, String)}.</p> + * + * <h3>Example:</h3> + * <pre>{@code + * // Before: + * // <plugins> + * // <plugin>...</plugin> + * // </plugins> + * + * editor.insertCommentBefore(pluginElement, " Override version inherited from parent "); + * + * // After: + * // <plugins> + * // <!-- Override version inherited from parent --> + * // <plugin>...</plugin> + * // </plugins> + * }</pre> + * + * @param referenceElement the element to insert the comment before + * @param text the comment text (without the {@code <!-- -->} delimiters) + * @return the newly created comment + * @throws DomTripException if the reference element is null, has no parent, or is not found in its parent + * @see #insertCommentAfter(Element, String) + * @see #addComment(ContainerNode, String) + */ + public Comment insertCommentBefore(Element referenceElement, String text) throws DomTripException { + return insertCommentRelativeTo(referenceElement, text, 0); + } + + /** + * Inserts a comment after the specified reference element. + * + * <p>This method creates a new comment and inserts it immediately after + * the reference element in the parent's child list. The comment's whitespace + * is automatically inferred from the reference element's context, matching + * the behavior of {@link #insertElementAfter(Element, String)}.</p> + * + * <h3>Example:</h3> + * <pre>{@code + * // Before: + * // <plugins> + * // <plugin>...</plugin> + * // <plugin>...</plugin> + * // </plugins> + * + * editor.insertCommentAfter(firstPlugin, " Next plugin section "); + * + * // After: + * // <plugins> + * // <plugin>...</plugin> + * // <!-- Next plugin section --> + * // <plugin>...</plugin> + * // </plugins> + * }</pre> + * + * @param referenceElement the element to insert the comment after + * @param text the comment text (without the {@code <!-- -->} delimiters) + * @return the newly created comment + * @throws DomTripException if the reference element is null, has no parent, or is not found in its parent + * @see #insertCommentBefore(Element, String) + * @see #addComment(ContainerNode, String) + */ + public Comment insertCommentAfter(Element referenceElement, String text) throws DomTripException { + return insertCommentRelativeTo(referenceElement, text, 1); + } + + /** + * Shared implementation for {@link #insertCommentBefore} and {@link #insertCommentAfter}. + * Validates inputs, creates the comment with inferred whitespace, and inserts it at the + * reference element's index plus the given offset. + * + * @param referenceElement the element to position relative to + * @param text the comment text + * @param indexOffset 0 to insert before the reference element, 1 to insert after + * @return the newly created comment + */ + private Comment insertCommentRelativeTo(Element referenceElement, String text, int indexOffset) + throws DomTripException { + if (referenceElement == null) { + throw new DomTripException("Reference element cannot be null"); + } + + ContainerNode parent = referenceElement.parent(); + if (parent == null) { + throw new DomTripException("Reference element has no parent"); + } + + int index = parent.children.indexOf(referenceElement); + if (index < 0) { + throw new DomTripException("Reference element not found in parent"); + } + + Comment comment = new Comment(text != null ? text : ""); + + // Normalize whitespace and adjust index (same as element insertion) + index = normalizeWhitespaces(parent, index); + + // Infer proper indentation from the parent context + String properIndentation = inferIndentation(parent); + comment.precedingWhitespace(lineEnding + properIndentation); + + parent.insertChild(index + indexOffset, comment); + return comment; + } + // ========== ELEMENT COMMENTING METHODS ========== /** @@ -881,29 +992,7 @@ * @throws DomTripException if the insertion fails */ public Element insertElementBefore(Element referenceElement, String elementName) throws DomTripException { - if (referenceElement == null) { - throw new DomTripException("Reference element cannot be null"); - } - if (elementName == null || elementName.trim().isEmpty()) { - throw new DomTripException("Element name cannot be null or empty"); - } - - ContainerNode parent = referenceElement.parent(); - if (parent == null) { - throw new DomTripException("Reference element has no parent"); - } - - int index = parent.children.indexOf(referenceElement); - if (index < 0) { - throw new DomTripException("Reference element not found in parent"); - } - - Element newElement = new Element(elementName.trim()); - - // Use centralized node insertion with automatic whitespace normalization - insertChild(parent, newElement, index); - - return newElement; + return insertElementRelativeTo(referenceElement, elementName, 0); } /** @@ -943,6 +1032,21 @@ * @throws DomTripException if the insertion fails */ public Element insertElementAfter(Element referenceElement, String elementName) throws DomTripException { + return insertElementRelativeTo(referenceElement, elementName, 1); + } + + /** + * Shared implementation for {@link #insertElementBefore} and {@link #insertElementAfter}. + * Validates inputs, creates the element, and inserts it at the reference element's index + * plus the given offset. + * + * @param referenceElement the element to position relative to + * @param elementName the name of the new element + * @param indexOffset 0 to insert before the reference element, 1 to insert after + * @return the newly created element + */ + private Element insertElementRelativeTo(Element referenceElement, String elementName, int indexOffset) + throws DomTripException { if (referenceElement == null) { throw new DomTripException("Reference element cannot be null"); } @@ -963,7 +1067,7 @@ Element newElement = new Element(elementName.trim()); // Use centralized node insertion with automatic whitespace normalization - insertChild(parent, newElement, index + 1); + insertChild(parent, newElement, index + indexOffset); return newElement; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/core/src/test/java/eu/maveniverse/domtrip/EditorCommentingTest.java new/domtrip-1.6.0/core/src/test/java/eu/maveniverse/domtrip/EditorCommentingTest.java --- old/domtrip-1.5.2/core/src/test/java/eu/maveniverse/domtrip/EditorCommentingTest.java 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/core/src/test/java/eu/maveniverse/domtrip/EditorCommentingTest.java 2026-07-08 13:30:36.000000000 +0200 @@ -220,6 +220,271 @@ assertEquals(xml, result); } + // ========== insertCommentBefore / insertCommentAfter tests ========== + + @Test + void testInsertCommentBeforeElement() throws DomTripException { + String xml = """ + <root> + <first>content1</first> + <second>content2</second> + </root>"""; + String expected = """ + <root> + <first>content1</first> + <!-- inserted comment --> + <second>content2</second> + </root>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element second = doc.root().childElement("second").orElseThrow(); + + Comment comment = editor.insertCommentBefore(second, " inserted comment "); + + assertNotNull(comment); + assertEquals(" inserted comment ", comment.content()); + assertEquals(doc.root(), comment.parent()); + + String result = editor.toXml(); + assertEquals(expected, result); + } + + @Test + void testInsertCommentAfterElement() throws DomTripException { + String xml = """ + <root> + <first>content1</first> + <second>content2</second> + </root>"""; + String expected = """ + <root> + <first>content1</first> + <!-- inserted comment --> + <second>content2</second> + </root>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element first = doc.root().childElement("first").orElseThrow(); + + Comment comment = editor.insertCommentAfter(first, " inserted comment "); + + assertNotNull(comment); + assertEquals(" inserted comment ", comment.content()); + assertEquals(doc.root(), comment.parent()); + + String result = editor.toXml(); + assertEquals(expected, result); + } + + @Test + void testInsertCommentBeforeFirstElement() throws DomTripException { + String xml = """ + <root> + <first>content1</first> + <second>content2</second> + </root>"""; + String expected = """ + <root> + <!-- before first --> + <first>content1</first> + <second>content2</second> + </root>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element first = doc.root().childElement("first").orElseThrow(); + + editor.insertCommentBefore(first, " before first "); + + String result = editor.toXml(); + assertEquals(expected, result); + } + + @Test + void testInsertCommentAfterLastElement() throws DomTripException { + String xml = """ + <root> + <first>content1</first> + <second>content2</second> + </root>"""; + String expected = """ + <root> + <first>content1</first> + <second>content2</second> + <!-- after last --> + </root>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element second = doc.root().childElement("second").orElseThrow(); + + editor.insertCommentAfter(second, " after last "); + + String result = editor.toXml(); + assertEquals(expected, result); + } + + @Test + void testInsertCommentBeforeWithDeepNesting() throws DomTripException { + String xml = """ + <root> + <dependencies> + <dependency> + <groupId>junit</groupId> + </dependency> + </dependencies> + </root>"""; + String expected = """ + <root> + <dependencies> + <!-- Override version inherited from parent --> + <dependency> + <groupId>junit</groupId> + </dependency> + </dependencies> + </root>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element dependency = doc.root() + .childElement("dependencies") + .orElseThrow() + .childElement("dependency") + .orElseThrow(); + + editor.insertCommentBefore(dependency, " Override version inherited from parent "); + + String result = editor.toXml(); + assertEquals(expected, result); + } + + @Test + void testInsertCommentBeforeNullElement() { + assertThrows(DomTripException.class, () -> editor.insertCommentBefore(null, "text")); + } + + @Test + void testInsertCommentAfterNullElement() { + assertThrows(DomTripException.class, () -> editor.insertCommentAfter(null, "text")); + } + + @Test + void testInsertCommentBeforeOrphanElement() { + Element orphan = new Element("orphan"); + assertThrows(DomTripException.class, () -> editor.insertCommentBefore(orphan, "text")); + } + + @Test + void testInsertCommentAfterOrphanElement() { + Element orphan = new Element("orphan"); + assertThrows(DomTripException.class, () -> editor.insertCommentAfter(orphan, "text")); + } + + @Test + void testInsertCommentWithNullText() throws DomTripException { + String xml = """ + <root> + <child>content</child> + </root>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element child = doc.root().childElement("child").orElseThrow(); + + Comment comment = editor.insertCommentBefore(child, null); + + assertNotNull(comment); + assertEquals("", comment.content()); + } + + @Test + void testInsertCommentBeforeInMavenPluginScenario() throws DomTripException { + String xml = """ + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + </plugins> + </build>"""; + String expected = """ + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + <!-- Override version inherited from parent --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + </plugins> + </build>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element plugins = doc.root().childElement("plugins").orElseThrow(); + Element secondPlugin = plugins.childElements() + .filter(e -> "plugin".equals(e.name())) + .skip(1) + .findFirst() + .orElseThrow(); + + editor.insertCommentBefore(secondPlugin, " Override version inherited from parent "); + + String result = editor.toXml(); + assertEquals(expected, result); + } + + @Test + void testInsertCommentAfterInMavenPluginScenario() throws DomTripException { + String xml = """ + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + </plugins> + </build>"""; + String expected = """ + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + </plugin> + <!-- Next section --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + </plugins> + </build>"""; + + Document doc = Document.of(xml); + editor = new Editor(doc); + Element plugins = doc.root().childElement("plugins").orElseThrow(); + Element firstPlugin = plugins.childElement("plugin").orElseThrow(); + + editor.insertCommentAfter(firstPlugin, " Next section "); + + String result = editor.toXml(); + assertEquals(expected, result); + } + @Test void testUncommentElementWithPrettyPrint() throws DomTripException { String xml = """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/jaxen/pom.xml new/domtrip-1.6.0/jaxen/pom.xml --- old/domtrip-1.5.2/jaxen/pom.xml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/jaxen/pom.xml 2026-07-08 13:30:36.000000000 +0200 @@ -31,7 +31,7 @@ <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> - <version>2.0.3</version> + <version>2.0.6</version> </dependency> <dependency> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/maven/src/main/java/eu/maveniverse/domtrip/maven/MavenPomElements.java new/domtrip-1.6.0/maven/src/main/java/eu/maveniverse/domtrip/maven/MavenPomElements.java --- old/domtrip-1.5.2/maven/src/main/java/eu/maveniverse/domtrip/maven/MavenPomElements.java 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/maven/src/main/java/eu/maveniverse/domtrip/maven/MavenPomElements.java 2026-07-08 13:30:36.000000000 +0200 @@ -155,6 +155,7 @@ public static final String COMBINE_OVERRIDE = "override"; public static final String COMBINE_MERGE = "merge"; public static final String COMBINE_APPEND = "append"; + public static final String COMBINE_REMOVE = "remove"; private Attributes() { // Utility class diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/mvnw new/domtrip-1.6.0/mvnw --- old/domtrip-1.5.2/mvnw 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/mvnw 2026-07-08 13:30:36.000000000 +0200 @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.3.2 +# Apache Maven Wrapper startup batch script, version 3.3.4 # # Optional ENV vars # ----------------- @@ -105,14 +105,17 @@ printf "%s" "${1}" | tr -d '[:space:]' } +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + # parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties while IFS="=" read -r key value; do case "${key-}" in distributionUrl) distributionUrl=$(trim "${value-}") ;; distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; esac -done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" -[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" case "${distributionUrl##*/}" in maven-mvnd-*bin.*) @@ -130,7 +133,7 @@ distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" ;; maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; -*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; esac # apply MVNW_REPOURL and calculate MAVEN_HOME @@ -227,7 +230,7 @@ echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 exit 1 elif command -v sha256sum >/dev/null; then - if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then distributionSha256Result=true fi elif command -v shasum >/dev/null; then @@ -252,8 +255,41 @@ else tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" fi -printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" -mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" clean || : exec_maven "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/mvnw.cmd new/domtrip-1.6.0/mvnw.cmd --- old/domtrip-1.5.2/mvnw.cmd 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/mvnw.cmd 2026-07-08 13:30:36.000000000 +0200 @@ -19,7 +19,7 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.3.2 +@REM Apache Maven Wrapper startup batch script, version 3.3.4 @REM @REM Optional ENV vars @REM MVNW_REPOURL - repo url base for downloading maven distribution @@ -40,7 +40,7 @@ @SET __MVNW_ARG0_NAME__= @SET MVNW_USERNAME= @SET MVNW_PASSWORD= -@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) @echo Cannot start maven from wrapper >&2 && exit /b 1 @GOTO :EOF : end batch / begin powershell #> @@ -73,16 +73,30 @@ # apply MVNW_REPOURL and calculate MAVEN_HOME # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash> if ($env:MVNW_REPOURL) { - $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } - $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" } $distributionUrlName = $distributionUrl -replace '^.*/','' $distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' -$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" + +$MAVEN_M2_PATH = "$HOME/.m2" if ($env:MAVEN_USER_HOME) { - $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain" + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null } -$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' $MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { @@ -134,7 +148,33 @@ # unzip and move Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null -Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null try { Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null } catch { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/pom.xml new/domtrip-1.6.0/pom.xml --- old/domtrip-1.5.2/pom.xml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/pom.xml 2026-07-08 13:30:36.000000000 +0200 @@ -14,7 +14,7 @@ <parent> <groupId>eu.maveniverse.maven.parent</groupId> <artifactId>parent</artifactId> - <version>53</version> + <version>56</version> </parent> <groupId>eu.maveniverse.maven.domtrip</groupId> @@ -41,7 +41,7 @@ <maven.compiler.release>8</maven.compiler.release> <maven.compiler.testRelease>21</maven.compiler.testRelease> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <version.junit>6.1.0</version.junit> + <version.junit>6.1.1</version.junit> </properties> </project> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/domtrip-1.5.2/website/pom.xml new/domtrip-1.6.0/website/pom.xml --- old/domtrip-1.5.2/website/pom.xml 2026-05-28 07:41:57.000000000 +0200 +++ new/domtrip-1.6.0/website/pom.xml 2026-07-08 13:30:36.000000000 +0200 @@ -23,8 +23,8 @@ <properties> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> - <version.quarkus.platform>3.36.0</version.quarkus.platform> - <version.quarkus-roq>2.1.2</version.quarkus-roq> + <version.quarkus.platform>3.37.1</version.quarkus.platform> + <version.quarkus-roq>2.1.5</version.quarkus-roq> </properties> <dependencyManagement> ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.tlnBNM/_old 2026-07-21 23:10:44.250988992 +0200 +++ /var/tmp/diff_new_pack.tlnBNM/_new 2026-07-21 23:10:44.254989128 +0200 @@ -1,6 +1,6 @@ -mtime: 1780549738 -commit: 10c2c2b5c684191d726eca7b420a3323b57ffad7713b6e7799f4d394057e6276 +mtime: 1784613546 +commit: feb2d6d5c2901f068d2b78d291e5525f96957db4ba193381a650367de7643145 url: https://src.opensuse.org/java-packages/domtrip -revision: 10c2c2b5c684191d726eca7b420a3323b57ffad7713b6e7799f4d394057e6276 +revision: feb2d6d5c2901f068d2b78d291e5525f96957db4ba193381a650367de7643145 projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-07-21 07:59:06.000000000 +0200 @@ -0,0 +1,5 @@ +*.obscpio +*.osc +_build.* +_service:* +.pbuild
