diff --git a/jctools-2.0.2.tar.gz b/jctools-2.0.2.tar.gz
deleted file mode 100644
index 8036e9b..0000000
Binary files a/jctools-2.0.2.tar.gz and /dev/null differ
diff --git a/jctools-2.1.2.tar.gz b/jctools-2.1.2.tar.gz
new file mode 100644
index 0000000..4cc05d9
Binary files /dev/null and b/jctools-2.1.2.tar.gz differ
diff --git a/jctools.spec b/jctools.spec
index ab91b1a..0eaacac 100644
--- a/jctools.spec
+++ b/jctools.spec
@@ -1,58 +1,68 @@
-Name: jctools
-Version: 2.0.2
-Release: 5
-Summary: Java Concurrency Tools for the JVM
-License: ASL 2.0
-BuildArch: noarch
-URL: http://jctools.github.io/JCTools/
-Source0: https://github.com/JCTools/JCTools/archive/v2.0.2/jctools-2.0.2.tar.gz
-BuildRequires: maven-local mvn(junit:junit) mvn(org.apache.felix:maven-bundle-plugin)
-BuildRequires: mvn(org.hamcrest:hamcrest-all) mvn(org.ow2.asm:asm-all)
-Provides: jctools-experimental = %{version}-%{release} jctools-parent = %{version}-%{release}
-Obsoletes: jctools-experimental < %{version}-%{release} jctools-parent < %{version}-%{release}
-
+Name: jctools
+Version: 2.1.2
+Release: 1
+Summary: Java Concurrency Tools for the JVM
+License: Apache-2.0
+URL: https://jctools.github.io/JCTools/
+Source0: https://github.com/JCTools/JCTools/archive/v%{version}/%{name}-%{version}.tar.gz
+BuildRequires: fdupes maven-local mvn(com.github.javaparser:javaparser-core)
+BuildRequires: mvn(com.google.guava:guava-testlib) mvn(junit:junit)
+BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
+BuildRequires: mvn(org.codehaus.mojo:exec-maven-plugin) mvn(org.hamcrest:hamcrest-all)
+BuildRequires: mvn(org.ow2.asm:asm-util)
+BuildArch: noarch
%description
-Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK:
-SPSC/MPSC/SPMC/MPMC variations for concurrent queues:
-SPSC - Single Producer Single Consumer (Wait Free, bounded and unbounded)
-MPSC - Multi Producer Single Consumer (Lock less, bounded and unbounded)
-SPMC - Single Producer Multi Consumer (Lock less, bounded)
-MPMC - Multi Producer Multi Consumer (Lock less, bounded)
+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 help
-Summary: Help documents for jctools
-Provides: jctools-javadoc = %{version}-%{release}
-Obsoletes: jctools-javadoc < %{version}-%{release}
+%package channels
+Summary: JCTools Channel implementations
+%description channels
+Channel implementations for the
+Java Concurrency Tools Library.
-%description help
-The jctools-help package conatins javadoc for jctools.
+%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
-%autosetup -n JCTools-2.0.2 -p1
-
-for filename in *.class *.jar;do
- find . -name ${filename} -delete
-done
-
-%pom_xpath_set pom:project/pom:version 2.0.2
-%pom_xpath_set -r pom:parent/pom:version 2.0.2 jctools-core jctools-experimental
+%setup -q -n JCTools-%{version}
+find . -name '*.class' -print -delete
+find . -name '*.jar' -print -delete
+rm jctools-core/src/test/java/org/jctools/queues/MpqSanityTestMpscCompound.java
+rm jctools-core/src/test/java/org/jctools/queues/atomic/AtomicMpqSanityTestMpscCompound.java
+%pom_xpath_set pom:project/pom:version %{version}
+%pom_xpath_set -r pom:parent/pom:version %{version} %{name}-{build,core,channels,experimental}
%pom_remove_plugin :maven-enforcer-plugin
-
-for pom_disable_module in jctools-benchmarks jctools-concurrency-test;do
- %pom_disable_module ${pom_disable_module}
-done
-
-%pom_remove_dep "com.google.guava:guava-testlib" jctools-experimental
-
-for pom_remove_plugin in cobertura-maven-plugin maven-source-plugin;do
- %pom_remove_plugin :${pom_remove_plugin} jctools-core
-done
-
-%pom_xpath_remove "pom:plugin[pom:artifactId = 'maven-javadoc-plugin']/pom:executions" jctools-core
-
+%pom_remove_plugin :coveralls-maven-plugin
+%pom_remove_plugin :jacoco-maven-plugin
+%pom_remove_plugin :maven-source-plugin %{name}-core
+%pom_remove_plugin :maven-javadoc-plugin %{name}-core
+%pom_disable_module %{name}-benchmarks
+%pom_disable_module %{name}-concurrency-test
+%pom_change_dep ":asm-all" ":asm-util" jctools-{channels,experimental}
for mod in core experimental; do
- %pom_xpath_set "pom:project/pom:packaging" bundle jctools-${mod}
- %pom_add_plugin org.apache.felix:maven-bundle-plugin:2.3.7 jctools-${mod} '
+ %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
@@ -67,20 +77,32 @@ for mod in core experimental; do
true
'
done
+%{mvn_package} :jctools-build __noinstall
%build
-%mvn_build -s -f
+%{mvn_build} -s -f
%install
%mvn_install
+%fdupes -s %{buildroot}%{_javadocdir}
-%files -f .mfiles-jctools-core -f .mfiles-jctools-experimental -f .mfiles-jctools-parent
+%files -f .mfiles-%{name}-core
%doc README.md
%license LICENSE
-%files help -f .mfiles-javadoc
-%doc README.md
+%files channels -f .mfiles-%{name}-channels
+
+%files experimental -f .mfiles-%{name}-experimental
+
+%files javadoc -f .mfiles-javadoc
+%license LICENSE
+
+%files parent -f .mfiles-%{name}-parent
+%license LICENSE
%changelog
+* Sat Aug 1 2020 Jeffery.Gao - 2.1.2-1
+- Package upgrade
+
* Mon Dec 23 2019 liujing - 2.0.2-5
- Package init
diff --git a/jctools.yaml b/jctools.yaml
new file mode 100644
index 0000000..5d61b09
--- /dev/null
+++ b/jctools.yaml
@@ -0,0 +1,5 @@
+git_url: https://github.com/JCTools/JCTools
+version_control: github
+src_repo: JCTools/JCTools
+tag_prefix: "^v"
+seperator: "."