Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package jctools for openSUSE:Factory checked in at 2026-05-09 12:59:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/jctools (Old) and /work/SRC/openSUSE:Factory/.jctools.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "jctools" Sat May 9 12:59:49 2026 rev:8 rq:1352136 version:4.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/jctools/jctools.changes 2024-12-05 17:13:50.786677291 +0100 +++ /work/SRC/openSUSE:Factory/.jctools.new.1966/jctools.changes 2026-05-09 13:00:05.517771962 +0200 @@ -1,0 +2,21 @@ +Tue Apr 28 07:43:16 UTC 2026 - Fridrich Strba <[email protected]> + +- Update to 4.0.6 + * This release has 2 artifacts. The old jctools-core with the + following changes: + + Where plain access to field is used by queues, the field is + not volatile and volatile access is done using Unsafe. + + Use a generated ConcurrentCircularXXXQueue instead of hand + rolled base classes in generated code. + + Padding blocks formatting is improved in generated code. + * The release introduces a new artifact, jctools-core-jdk11 which + included generated VarHandle queues (padded and unpadded). + These queues do not rely on Unsafe, and offer better performance + than the AtomicFieldUpdater generated code. We expect many users + will prefer these variants going forward to break their reliance + on Unsafe. +- Added patch: + * 0001-Update-javaparser-3.24.4-3.28.0.patch + + Fix build with javaparser 3.28.0's breaking changes + +------------------------------------------------------------------- Old: ---- JCTools-4.0.5.tar.gz New: ---- 0001-Update-javaparser-3.24.4-3.28.0.patch JCTools-4.0.6.tar.gz _scmsync.obsinfo build.specials.obscpio ----------(New B)---------- New:- Added patch: * 0001-Update-javaparser-3.24.4-3.28.0.patch + Fix build with javaparser 3.28.0's breaking changes ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ jctools.spec ++++++ --- /var/tmp/diff_new_pack.vhN8YW/_old 2026-05-09 13:00:07.517854032 +0200 +++ /var/tmp/diff_new_pack.vhN8YW/_new 2026-05-09 13:00:07.537854852 +0200 @@ -1,7 +1,7 @@ # # spec file for package jctools # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,14 +18,15 @@ %global srcname JCTools Name: jctools -Version: 4.0.5 +Version: 4.0.6 Release: 0 Summary: Java Concurrency Tools for the JVM License: Apache-2.0 URL: https://github.com/JCTools/JCTools Source0: %{url}/archive/v%{version}/%{srcname}-%{version}.tar.gz +Patch0: 0001-Update-javaparser-3.24.4-3.28.0.patch BuildRequires: fdupes -BuildRequires: java-devel >= 1.8 +BuildRequires: java-devel >= 11 BuildRequires: maven-local BuildRequires: mvn(com.github.javaparser:javaparser-core) >= 3.14.16 BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) @@ -52,6 +53,20 @@ Channel implementations for the Java Concurrency Tools Library. +%package core +Summary: Java Concurrency Tools Core Library +Provides: %{name} = %{version} +Obsoletes: %{name} < %{version} + +%description core +Core Library for Java Concurrency Tools Library + +%package core-jdk11 +Summary: Java Concurrency Tools Core Library - JDK 11+ + +%description core-jdk11 +JDK 11 + Core Library for Java Concurrency Tools Library + %package experimental Summary: JCTools Experimental implementations @@ -67,17 +82,18 @@ %prep %setup -q -n %{srcname}-%{version} +%patch -P 0 -p1 # set correct version in all pom.xml files %pom_xpath_set pom:project/pom:version %{version} -%pom_xpath_set pom:parent/pom:version %{version} jctools-{build,core,channels,experimental} +%pom_xpath_set pom:parent/pom:version %{version} jctools-{build,core,core-jdk11,channels,experimental} # remove plugins unnecessary for RPM builds -%pom_remove_plugin :coveralls-maven-plugin jctools-core -%pom_remove_plugin :jacoco-maven-plugin jctools-core -%pom_remove_plugin :maven-enforcer-plugin -%pom_remove_plugin :maven-source-plugin jctools-core -%pom_remove_plugin :maven-javadoc-plugin jctools-core +%pom_remove_plugin -r :coveralls-maven-plugin +%pom_remove_plugin -r :jacoco-maven-plugin +%pom_remove_plugin -r :maven-enforcer-plugin +%pom_remove_plugin -r :maven-source-plugin +%pom_remove_plugin -r :maven-javadoc-plugin # disable unused modules with unavailable dependencies %pom_disable_module jctools-benchmarks @@ -87,7 +103,7 @@ %pom_xpath_set "pom:project/pom:properties/pom:java.test.version" "1.8" # Avoid runtime dependency on test-jar -%pom_xpath_set "pom:dependency[pom:scope='compile']/pom:scope" test jctools-experimental +%pom_xpath_set "pom:dependency[pom:scope='compile']/pom:scope" test jctools-experimental jctools-core-jdk11 # Deprecated classes "only used for testing" needed for compiling jctools-experimental mkdir -p jctools-experimental/src/main/java/org/jctools/queues/ cp -r jctools-core/src/test/java/org/jctools/queues/spec jctools-experimental/src/main/java/org/jctools/queues/ @@ -99,18 +115,18 @@ %{mvn_package} :jctools-parent __noinstall %build -%{mvn_build} -sf -- \ - -Dproject.build.outputTimestamp=$(date -u -d @${SOURCE_DATE_EPOCH:-$(date +%%s)} +%%Y-%%m-%%dT%%H:%%M:%%SZ) \ - -Dsource=8 +%{mvn_build} -sf -- -Dsource=8 %install %mvn_install %fdupes -s %{buildroot}%{_javadocdir} -%files -f .mfiles-jctools-core +%files core -f .mfiles-jctools-core %doc README.md %license LICENSE +%files core-jdk11 -f .mfiles-jctools-core-jdk11 + %files channels -f .mfiles-jctools-channels %files experimental -f .mfiles-jctools-experimental ++++++ 0001-Update-javaparser-3.24.4-3.28.0.patch ++++++ >From 451fb27cd3ba136ca901152d506774f87bca8683 Mon Sep 17 00:00:00 2001 From: Nitsan Wakart <[email protected]> Date: Wed, 11 Mar 2026 18:13:00 +0200 Subject: [PATCH] Update javaparser 3.24.4 -> 3.28.0 --- jctools-build/pom.xml | 2 +- .../JavaParsingAtomicArrayQueueGenerator.java | 4 ++-- .../JavaParsingAtomicLinkedQueueGenerator.java | 4 ++-- .../org/jctools/queues/atomic/TraceVisitor.java | 4 ++-- .../JavaParsingUnpaddedQueueGenerator.java | 9 ++------- .../org/jctools/queues/util/GeneratorUtils.java | 14 +++++++++++--- .../JavaParsingVarHandleArrayQueueGenerator.java | 4 ++-- .../JavaParsingVarHandleLinkedQueueGenerator.java | 4 ++-- 8 files changed, 24 insertions(+), 21 deletions(-) diff --git a/jctools-build/pom.xml b/jctools-build/pom.xml index 32fb5ad..5414856 100644 --- a/jctools-build/pom.xml +++ b/jctools-build/pom.xml @@ -18,7 +18,7 @@ <dependency> <groupId>com.github.javaparser</groupId> <artifactId>javaparser-core</artifactId> - <version>3.24.4</version> + <version>3.28.0</version> </dependency> </dependencies> </project> \ No newline at end of file diff --git a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java index 117d26f..4e880db 100644 --- a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicArrayQueueGenerator.java @@ -3,7 +3,7 @@ package org.jctools.queues.atomic; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Modifier.Keyword; import com.github.javaparser.ast.body.*; -import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.ast.comments.TraditionalJavadocComment; import com.github.javaparser.ast.expr.MarkerAnnotationExpr; import com.github.javaparser.ast.expr.MethodCallExpr; import com.github.javaparser.ast.expr.NameExpr; @@ -80,7 +80,7 @@ public class JavaParsingAtomicArrayQueueGenerator extends JavaParsingAtomicQueue "NOTE: This class was automatically generated by " + getClass().getName(), "which can found in the jctools-build module. The original source file is " + sourceFileName + ".") - + node.getJavadocComment().orElse(new JavadocComment("")).getContent()); + + node.getJavadocComment().orElse(new TraditionalJavadocComment("")).getContent()); } String fieldUpdaterFieldName(String fieldName) { diff --git a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java index c9a515b..af26417 100644 --- a/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/atomic/JavaParsingAtomicLinkedQueueGenerator.java @@ -3,7 +3,7 @@ package org.jctools.queues.atomic; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Modifier.Keyword; import com.github.javaparser.ast.body.*; -import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.ast.comments.TraditionalJavadocComment; import com.github.javaparser.ast.expr.*; import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.stmt.BlockStmt; @@ -88,7 +88,7 @@ public class JavaParsingAtomicLinkedQueueGenerator extends JavaParsingAtomicQueu "NOTE: This class was automatically generated by " + getClass().getName(), "which can found in the jctools-build module. The original source file is " + sourceFileName + ".") - + node.getJavadocComment().orElse(new JavadocComment("")).getContent()); + + node.getJavadocComment().orElse(new TraditionalJavadocComment("")).getContent()); } @Override diff --git a/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java b/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java index e64cf74..bb7b58f 100644 --- a/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java +++ b/jctools-build/src/main/java/org/jctools/queues/atomic/TraceVisitor.java @@ -21,7 +21,7 @@ import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.body.Parameter; import com.github.javaparser.ast.body.VariableDeclarator; import com.github.javaparser.ast.comments.BlockComment; -import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.ast.comments.TraditionalJavadocComment; import com.github.javaparser.ast.comments.LineComment; import com.github.javaparser.ast.expr.ArrayAccessExpr; import com.github.javaparser.ast.expr.ArrayCreationExpr; @@ -373,7 +373,7 @@ public final class TraceVisitor extends VoidVisitorAdapter<Void> { } @Override - public void visit(JavadocComment n, Void arg) { + public void visit(TraditionalJavadocComment n, Void arg) { out.println("JavadocComment: " + (extended ? n : n.getContent())); super.visit(n, arg); } diff --git a/jctools-build/src/main/java/org/jctools/queues/unpadded/JavaParsingUnpaddedQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/unpadded/JavaParsingUnpaddedQueueGenerator.java index 611d3b7..dd7b322 100644 --- a/jctools-build/src/main/java/org/jctools/queues/unpadded/JavaParsingUnpaddedQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/unpadded/JavaParsingUnpaddedQueueGenerator.java @@ -1,9 +1,8 @@ package org.jctools.queues.unpadded; -import com.github.javaparser.JavaParser; import com.github.javaparser.ast.*; import com.github.javaparser.ast.body.*; -import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.ast.comments.TraditionalJavadocComment; import com.github.javaparser.ast.expr.ClassExpr; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.MethodCallExpr; @@ -11,10 +10,6 @@ import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.visitor.VoidVisitorAdapter; import org.jctools.queues.util.JCToolsGenerator; -import java.io.File; -import java.io.FileWriter; - -import static org.jctools.queues.util.GeneratorUtils.buildGenerator; import static org.jctools.queues.util.GeneratorUtils.cleanupPaddingComments; import static org.jctools.queues.util.GeneratorUtils.formatMultilineJavadoc; import static org.jctools.queues.util.GeneratorUtils.removePaddingFields; @@ -79,7 +74,7 @@ public class JavaParsingUnpaddedQueueGenerator extends VoidVisitorAdapter<Void> "NOTE: This class was automatically generated by " + this.getClass().getName(), "which can found in the jctools-build module. The original source file is " + sourceFileName + ".") - + node.getJavadocComment().orElse(new JavadocComment("")).getContent()); + + node.getJavadocComment().orElse(new TraditionalJavadocComment("")).getContent()); removePaddingFields(node); } diff --git a/jctools-build/src/main/java/org/jctools/queues/util/GeneratorUtils.java b/jctools-build/src/main/java/org/jctools/queues/util/GeneratorUtils.java index 068386e..02f1198 100644 --- a/jctools-build/src/main/java/org/jctools/queues/util/GeneratorUtils.java +++ b/jctools-build/src/main/java/org/jctools/queues/util/GeneratorUtils.java @@ -88,15 +88,23 @@ public class GeneratorUtils { String outputFileName = generator.translateQueueName(file.getName().replace(".java", "")) + ".java"; try (FileWriter writer = new FileWriter(new File(outputDirectory, outputFileName))) { - // Use custom printer configuration to reduce spacing PrinterConfiguration config = new DefaultPrinterConfiguration(); DefaultPrettyPrinterVisitor printer = new DefaultPrettyPrinterVisitor(config); cu.accept(printer, null); String output = printer.toString(); - // Post-process to match Unsafe formatting for padding fields - output = output.replaceAll("(?m)^\\s*// (\\d+b)\\s*$\\s*byte (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3});", + // Post-process to match Unsafe formatting for padding fields. + // JavaParser 3.28+ separates inline comments from field declarations and adds + // spaces after commas, so we need to reassemble them into the original format. + output = output.replaceAll("(?m)^\\s*\\n\\s*//\\s*(\\d+b)\\s*$\\s*byte (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3}), (b\\d{3});", " byte $2,$3,$4,$5,$6,$7,$8,$9;// $1"); + // Fix "drop Nb" comments that get extra indentation + output = output.replaceAll("(?m)^//\\s+(\\* drop \\d+b)", "// $1"); + // Fix line comments that start with " ->" getting an extra space after "//" + output = output.replaceAll("(?m)(\\s*)// ->", "$1// ->"); + // Fix comments on class declaration lines losing their space after "//" + output = output.replaceAll("(?m)^(abstract class )//(byte )", "$1// $2"); + output = output.replaceAll("(?m)^//(byte )", "// $1"); writer.write(output); } diff --git a/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleArrayQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleArrayQueueGenerator.java index ec6d34f..36440a2 100644 --- a/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleArrayQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleArrayQueueGenerator.java @@ -7,7 +7,7 @@ import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Modifier.Keyword; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.*; -import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.ast.comments.TraditionalJavadocComment; import com.github.javaparser.ast.expr.AssignExpr; import com.github.javaparser.ast.expr.ClassExpr; import com.github.javaparser.ast.expr.MarkerAnnotationExpr; @@ -105,7 +105,7 @@ public class JavaParsingVarHandleArrayQueueGenerator extends JavaParsingVarHandl "which can found in the jctools-build module. The original source file is " + sourceFileName + ".") - + node.getJavadocComment().orElse(new JavadocComment("")).getContent()); + + node.getJavadocComment().orElse(new TraditionalJavadocComment("")).getContent()); } String varHandleFieldName(String fieldName) { diff --git a/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleLinkedQueueGenerator.java b/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleLinkedQueueGenerator.java index ada0b63..6d7c335 100644 --- a/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleLinkedQueueGenerator.java +++ b/jctools-build/src/main/java/org/jctools/queues/varhandle/JavaParsingVarHandleLinkedQueueGenerator.java @@ -4,7 +4,7 @@ import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Modifier.Keyword; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.*; -import com.github.javaparser.ast.comments.JavadocComment; +import com.github.javaparser.ast.comments.TraditionalJavadocComment; import com.github.javaparser.ast.expr.*; import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.stmt.BlockStmt; @@ -97,7 +97,7 @@ public class JavaParsingVarHandleLinkedQueueGenerator extends JavaParsingVarHand "NOTE: This class was automatically generated by " + getClass().getName(), "which can found in the jctools-build module. The original source file is " + sourceFileName + ".") - + node.getJavadocComment().orElse(new JavadocComment("")).getContent()); + + node.getJavadocComment().orElse(new TraditionalJavadocComment("")).getContent()); } @Override -- 2.53.0 ++++++ JCTools-4.0.5.tar.gz -> JCTools-4.0.6.tar.gz ++++++ ++++ 16382 lines of diff (skipped) ++++++ _scmsync.obsinfo ++++++ mtime: 1777362361 commit: ea41bae3e530f82a53f931610ecc3ab11cbf3ce403bf890413c867c5aa6df21c url: https://src.opensuse.org/java-packages/jctools revision: ea41bae3e530f82a53f931610ecc3ab11cbf3ce403bf890413c867c5aa6df21c projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj ++++++ 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-04-28 09:46:01.000000000 +0200 @@ -0,0 +1 @@ +.osc
