commit ca6f45fb981f481b8e58d3723e18c7d3c3c8d12e Author: James Antill Date: Mon Aug 8 12:42:44 2022 -0400 Import rpm: 050d58f8ee897d0d0de3e2f4993c9a8166f46add diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6dda2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/jctools-2.0.2.tar.gz diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f1bb5dd --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +--- !Policy +product_versions: + - rhel-9 +decision_contexts: + - osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/jctools.spec b/jctools.spec new file mode 100644 index 0000000..69b0ea7 --- /dev/null +++ b/jctools.spec @@ -0,0 +1,138 @@ +%global namedreltag %nil +%global namedversion %{version}%{?namedreltag} + +Name: jctools +Version: 2.0.2 +Release: 2%{?dist} +Summary: Java Concurrency Tools for the JVM +License: ASL 2.0 +URL: http://jctools.github.io/JCTools/ +Source0: https://github.com/JCTools/JCTools/archive/v%{namedversion}/%{name}-%{namedversion}.tar.gz + +BuildRequires: maven-local +BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.hamcrest:hamcrest-all) +BuildRequires: mvn(org.ow2.asm:asm-all) + +BuildArch: noarch + +%description +This project aims to offer some concurrent data structures +currently missing from the JDK: + +° SPSC/MPSC/SPMC/MPMC Bounded lock free queues +° SPSC/MPSC Unbounded lock free queues +° Alternative interfaces for queues +° Offheap concurrent ring buffer for ITC/IPC purposes +° Single Writer Map/Set implementations +° Low contention stats counters +° Executor + +%package experimental +Summary: JCTools Experimental implementations + +%description experimental +Experimental implementations for the +Java Concurrency Tools Library. + +%package javadoc +Summary: Javadoc for %{name} + +%description javadoc +This package contains javadoc for %{name}. + +%package parent +Summary: JCTools Parent POM + +%description parent +JCTools Parent POM. + +%prep +%setup -q -n JCTools-%{namedversion} +# Cleanup +find . -name '*.class' -print -delete +find . -name '*.jar' -print -delete + +%pom_xpath_set pom:project/pom:version %{namedversion} +%pom_xpath_set -r pom:parent/pom:version %{namedversion} %{name}-core %{name}-experimental + +# Prevent build failure +%pom_remove_plugin :maven-enforcer-plugin + +# Unavailable deps +%pom_disable_module %{name}-benchmarks +%pom_disable_module %{name}-concurrency-test + +# This dep is unused and unneeded +%pom_remove_dep "com.google.guava:guava-testlib" jctools-experimental + +# Not available +%pom_remove_plugin :cobertura-maven-plugin %{name}-core + +# Useless tasks +%pom_remove_plugin :maven-source-plugin %{name}-core +%pom_xpath_remove "pom:plugin[pom:artifactId = 'maven-javadoc-plugin']/pom:executions" %{name}-core + +# Add OSGi support +for mod in core experimental; do + %pom_xpath_set "pom:project/pom:packaging" bundle %{name}-${mod} + %pom_add_plugin org.apache.felix:maven-bundle-plugin:2.3.7 %{name}-${mod} ' + true + + + bundle-manifest + process-classes + + manifest + + + + + true + ' +done + +%build + +%mvn_build -s + +%install +%mvn_install + +%files -f .mfiles-%{name}-core +%doc README.md +%license LICENSE + +%files experimental -f .mfiles-%{name}-experimental + +%files javadoc -f .mfiles-javadoc +%license LICENSE + +%files parent -f .mfiles-%{name}-parent +%license LICENSE + +%changelog +* Sun Sep 17 2017 Mat Booth - 2.0.2-2 +- Drop unneeded dep on guava-testlib + +* Mon Aug 14 2017 Tomas Repik - 2.0.2-1 +- Update to 2.0.2 + +* Wed Jul 26 2017 Fedora Release Engineering - 1.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Sep 28 2016 gil cattaneo 1.2.1-1 +- update to 1.2.1 + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1-0.3.alpha +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1-0.2.alpha +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Tue May 19 2015 gil cattaneo 1.1-0.1.alpha +- initial rpm diff --git a/plans/Smoke.java b/plans/Smoke.java new file mode 100644 index 0000000..070ad9f --- /dev/null +++ b/plans/Smoke.java @@ -0,0 +1,23 @@ +import java.util.Queue; + +import org.jctools.queues.MpscChunkedArrayQueue; + +public class Smoke { + + public static void main(String[] args) { + System.out.println("SMOKE TEST START"); + + Queue q = new MpscChunkedArrayQueue<>(1024, 8*1024); + // fill up the queue + int i = 0; + while(q.offer(i)) i++; + System.out.println("Added "+ i); + // empty it + i = 0; + while(q.poll() != null) i++; + System.out.println("Removed "+ i); + + System.out.println("SMOKE TEST COMPLETE"); + } + +} diff --git a/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..231fd98 --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,8 @@ +summary: Basic smoke test +prepare: + how: install + package: java-1.8.0-openjdk-devel +execute: + script: + - /usr/lib/jvm/java-1.8.0-openjdk/bin/javac -cp /usr/share/java/jctools/jctools-core.jar plans/Smoke.java + - /usr/lib/jvm/java-1.8.0-openjdk/bin/java -cp /usr/share/java/jctools/jctools-core.jar:plans Smoke diff --git a/sources b/sources new file mode 100644 index 0000000..4371a8f --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA1 (jctools-2.0.2.tar.gz) = 35969e3255117fcfe1b66fb601f886cad3d4b743