diff --git a/0001-JSR-166.patch b/0001-JSR-166.patch new file mode 100644 index 0000000..728e232 --- /dev/null +++ b/0001-JSR-166.patch @@ -0,0 +1,396 @@ +From f8f1810ce3828b5507dbfe68f348f35644f52314 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Tue, 4 Nov 2014 12:05:10 +0100 +Subject: [PATCH 1/3] JSR-166 + +--- + src/main/groovy/groovyx/gpars/GParsPool.groovy | 14 +++++++------- + src/main/groovy/groovyx/gpars/GParsPoolUtil.java | 8 ++++---- + .../groovyx/gpars/forkjoin/AbstractForkJoinWorker.java | 2 +- + src/main/groovy/groovyx/gpars/forkjoin/ForkJoinUtils.java | 4 ++-- + src/main/groovy/groovyx/gpars/group/PGroupBuilder.java | 2 +- + src/main/groovy/groovyx/gpars/pa/CallAsyncTask.java | 2 +- + src/main/groovy/groovyx/gpars/pa/ClosureMapper.java | 2 +- + .../groovy/groovyx/gpars/pa/ClosureNegationPredicate.java | 2 +- + src/main/groovy/groovyx/gpars/pa/ClosurePredicate.java | 2 +- + src/main/groovy/groovyx/gpars/pa/ClosureReducer.java | 2 +- + .../groovy/groovyx/gpars/pa/GParsPoolUtilHelper.groovy | 8 ++++---- + src/main/groovy/groovyx/gpars/pa/MappedPAWrapper.groovy | 2 +- + src/main/groovy/groovyx/gpars/scheduler/FJPool.java | 2 +- + src/test/groovy/groovyx/gpars/ForkJoinPoolDSLTest.groovy | 2 +- + src/test/groovy/groovyx/gpars/GParsPoolAsyncFunTest.groovy | 2 +- + src/test/groovy/groovyx/gpars/GParsPoolUtilTest.groovy | 2 +- + .../groovyx/gpars/benchmark/BenchmarkGParsPool.groovy | 2 +- + src/test/groovy/groovyx/gpars/groups/FJGroupTest.groovy | 2 +- + .../groovy/groovyx/gpars/groups/PGroupBuilderTest.groovy | 2 +- + .../groovyx/gpars/samples/forkjoin/DemoFJDirect.groovy | 6 +++--- + .../samples/forkjoin/DemoRawForkJoinFileCounter.groovy | 2 +- + .../groovyx/gpars/samples/group/DemoPoolToGroup.groovy | 2 +- + 22 files changed, 37 insertions(+), 37 deletions(-) + +diff --git a/src/main/groovy/groovyx/gpars/GParsPool.groovy b/src/main/groovy/groovyx/gpars/GParsPool.groovy +index 4b6bfdd..f34e97c 100644 +--- a/src/main/groovy/groovyx/gpars/GParsPool.groovy ++++ b/src/main/groovy/groovyx/gpars/GParsPool.groovy +@@ -20,8 +20,8 @@ import groovyx.gpars.dataflow.DataflowVariable + import groovyx.gpars.forkjoin.AbstractForkJoinWorker + import groovyx.gpars.forkjoin.ForkJoinUtils + import groovyx.gpars.util.PoolUtils +-import jsr166y.ForkJoinPool +-import jsr166y.RecursiveTask ++import java.util.concurrent.ForkJoinPool ++import java.util.concurrent.RecursiveTask + + import java.lang.Thread.UncaughtExceptionHandler + import java.util.concurrent.Future +@@ -76,7 +76,7 @@ public class GParsPool { + + private static createPool(int poolSize, UncaughtExceptionHandler handler) { + if (!(poolSize in 1..Integer.MAX_VALUE)) throw new IllegalArgumentException("Invalid value $poolSize for the pool size has been specified. Please supply a positive int number.") +- final jsr166y.ForkJoinPool pool = new jsr166y.ForkJoinPool(poolSize, ForkJoinPool.defaultForkJoinWorkerThreadFactory, handler, false) ++ final java.util.concurrent.ForkJoinPool pool = new java.util.concurrent.ForkJoinPool(poolSize, ForkJoinPool.defaultForkJoinWorkerThreadFactory, handler, false) + return pool + } + +@@ -140,7 +140,7 @@ public class GParsPool { + * @param cl The block of code to invoke with the DSL enabled + */ + public static withPool(int numberOfThreads, UncaughtExceptionHandler handler, Closure cl) { +- final jsr166y.ForkJoinPool pool = createPool(numberOfThreads, handler) ++ final java.util.concurrent.ForkJoinPool pool = createPool(numberOfThreads, handler) + try { + return withExistingPool(pool, cl) + } finally { +@@ -165,7 +165,7 @@ public class GParsPool { + *}* + * @param pool The thread pool to use, the pool will not be shutdown after this method returns + */ +- public static withExistingPool(jsr166y.ForkJoinPool pool, Closure cl) { ++ public static withExistingPool(java.util.concurrent.ForkJoinPool pool, Closure cl) { + + currentPoolStack << pool + def result = null +@@ -184,7 +184,7 @@ public class GParsPool { + * Just like withExistingPool() registers a thread pool, but doesn't install the GParsPoolUtil category. + * Used by ParallelEnhancer's Parallel mixins. + */ +- static ensurePool(final jsr166y.ForkJoinPool pool, final Closure cl) { ++ static ensurePool(final java.util.concurrent.ForkJoinPool pool, final Closure cl) { + currentPoolStack << pool + try { + return cl(pool) +@@ -226,7 +226,7 @@ public class GParsPool { + * @return Futures for the result values or exceptions of all closures + */ + public static List> executeAsync(Closure... closures) { +- jsr166y.ForkJoinPool pool = retrieveCurrentPool() ++ java.util.concurrent.ForkJoinPool pool = retrieveCurrentPool() + if (pool == null) throw new IllegalStateException("No active Fork/Join thread pool available to execute closures asynchronously. Consider wrapping the function call with GParsPool.withPool().") + List> result = closures.collect { cl -> + pool.submit(new MyCancellableRecursiveTask(cl)) +diff --git a/src/main/groovy/groovyx/gpars/GParsPoolUtil.java b/src/main/groovy/groovyx/gpars/GParsPoolUtil.java +index ff6aed1..8e85943 100644 +--- a/src/main/groovy/groovyx/gpars/GParsPoolUtil.java ++++ b/src/main/groovy/groovyx/gpars/GParsPoolUtil.java +@@ -18,8 +18,8 @@ package groovyx.gpars; + + import groovy.lang.Closure; + import groovy.time.Duration; +-import groovyx.gpars.extra166y.Ops; +-import groovyx.gpars.extra166y.ParallelArray; ++import extra166y.Ops; ++import extra166y.ParallelArray; + import groovyx.gpars.memoize.LRUProtectionStorage; + import groovyx.gpars.pa.CallAsyncTask; + import groovyx.gpars.pa.CallClosure; +@@ -33,8 +33,8 @@ import groovyx.gpars.pa.SumClosure; + import groovyx.gpars.scheduler.FJPool; + import groovyx.gpars.util.GeneralTimer; + import groovyx.gpars.util.PAUtils; +-import jsr166y.ForkJoinPool; +-import jsr166y.RecursiveTask; ++import java.util.concurrent.ForkJoinPool; ++import java.util.concurrent.RecursiveTask; + + import java.util.ArrayList; + import java.util.Collection; +diff --git a/src/main/groovy/groovyx/gpars/forkjoin/AbstractForkJoinWorker.java b/src/main/groovy/groovyx/gpars/forkjoin/AbstractForkJoinWorker.java +index e8dbc51..033ecec 100644 +--- a/src/main/groovy/groovyx/gpars/forkjoin/AbstractForkJoinWorker.java ++++ b/src/main/groovy/groovyx/gpars/forkjoin/AbstractForkJoinWorker.java +@@ -16,7 +16,7 @@ + + package groovyx.gpars.forkjoin; + +-import jsr166y.RecursiveTask; ++import java.util.concurrent.RecursiveTask; + + import java.util.ArrayList; + import java.util.Arrays; +diff --git a/src/main/groovy/groovyx/gpars/forkjoin/ForkJoinUtils.java b/src/main/groovy/groovyx/gpars/forkjoin/ForkJoinUtils.java +index 97b5149..8f4c758 100644 +--- a/src/main/groovy/groovyx/gpars/forkjoin/ForkJoinUtils.java ++++ b/src/main/groovy/groovyx/gpars/forkjoin/ForkJoinUtils.java +@@ -16,8 +16,8 @@ + + package groovyx.gpars.forkjoin; + +-import jsr166y.ForkJoinPool; +-import jsr166y.ForkJoinTask; ++import java.util.concurrent.ForkJoinPool; ++import java.util.concurrent.ForkJoinTask; + + import java.util.concurrent.ExecutionException; + +diff --git a/src/main/groovy/groovyx/gpars/group/PGroupBuilder.java b/src/main/groovy/groovyx/gpars/group/PGroupBuilder.java +index 0a2d893..b0c787a 100644 +--- a/src/main/groovy/groovyx/gpars/group/PGroupBuilder.java ++++ b/src/main/groovy/groovyx/gpars/group/PGroupBuilder.java +@@ -19,7 +19,7 @@ package groovyx.gpars.group; + import groovyx.gpars.scheduler.DefaultPool; + import groovyx.gpars.scheduler.FJPool; + import groovyx.gpars.scheduler.Pool; +-import jsr166y.ForkJoinPool; ++import java.util.concurrent.ForkJoinPool; + + import java.util.concurrent.ThreadPoolExecutor; + +diff --git a/src/main/groovy/groovyx/gpars/pa/CallAsyncTask.java b/src/main/groovy/groovyx/gpars/pa/CallAsyncTask.java +index e7d1d5c..6610217 100644 +--- a/src/main/groovy/groovyx/gpars/pa/CallAsyncTask.java ++++ b/src/main/groovy/groovyx/gpars/pa/CallAsyncTask.java +@@ -17,7 +17,7 @@ + package groovyx.gpars.pa; + + import groovy.lang.Closure; +-import jsr166y.RecursiveTask; ++import java.util.concurrent.RecursiveTask; + + /** + * A helper class to wrap closures for callAsync on GParsPool +diff --git a/src/main/groovy/groovyx/gpars/pa/ClosureMapper.java b/src/main/groovy/groovyx/gpars/pa/ClosureMapper.java +index df090da..2e20bc8 100644 +--- a/src/main/groovy/groovyx/gpars/pa/ClosureMapper.java ++++ b/src/main/groovy/groovyx/gpars/pa/ClosureMapper.java +@@ -16,7 +16,7 @@ + + package groovyx.gpars.pa; + +-import groovyx.gpars.extra166y.Ops; ++import extra166y.Ops; + import groovy.lang.Closure; + + /** +diff --git a/src/main/groovy/groovyx/gpars/pa/ClosureNegationPredicate.java b/src/main/groovy/groovyx/gpars/pa/ClosureNegationPredicate.java +index dc2e782..22987ec 100644 +--- a/src/main/groovy/groovyx/gpars/pa/ClosureNegationPredicate.java ++++ b/src/main/groovy/groovyx/gpars/pa/ClosureNegationPredicate.java +@@ -16,7 +16,7 @@ + + package groovyx.gpars.pa; + +-import groovyx.gpars.extra166y.Ops; ++import extra166y.Ops; + import groovy.lang.Closure; + + /** +diff --git a/src/main/groovy/groovyx/gpars/pa/ClosurePredicate.java b/src/main/groovy/groovyx/gpars/pa/ClosurePredicate.java +index d2fae30..620bd01 100644 +--- a/src/main/groovy/groovyx/gpars/pa/ClosurePredicate.java ++++ b/src/main/groovy/groovyx/gpars/pa/ClosurePredicate.java +@@ -16,7 +16,7 @@ + + package groovyx.gpars.pa; + +-import groovyx.gpars.extra166y.Ops; ++import extra166y.Ops; + import groovy.lang.Closure; + + /** +diff --git a/src/main/groovy/groovyx/gpars/pa/ClosureReducer.java b/src/main/groovy/groovyx/gpars/pa/ClosureReducer.java +index c0a35f2..4ff7adc 100644 +--- a/src/main/groovy/groovyx/gpars/pa/ClosureReducer.java ++++ b/src/main/groovy/groovyx/gpars/pa/ClosureReducer.java +@@ -16,7 +16,7 @@ + + package groovyx.gpars.pa; + +-import groovyx.gpars.extra166y.Ops; ++import extra166y.Ops; + import groovy.lang.Closure; + + /** +diff --git a/src/main/groovy/groovyx/gpars/pa/GParsPoolUtilHelper.groovy b/src/main/groovy/groovyx/gpars/pa/GParsPoolUtilHelper.groovy +index a23dfe6..b6f6fdc 100644 +--- a/src/main/groovy/groovyx/gpars/pa/GParsPoolUtilHelper.groovy ++++ b/src/main/groovy/groovyx/gpars/pa/GParsPoolUtilHelper.groovy +@@ -20,15 +20,15 @@ import groovyx.gpars.GParsPool + import groovyx.gpars.GParsPoolUtil + import groovyx.gpars.TransparentParallel + import groovyx.gpars.dataflow.DataflowVariable +-import groovyx.gpars.extra166y.Ops +-import groovyx.gpars.extra166y.ParallelArray +-import groovyx.gpars.extra166y.ParallelArrayWithMapping ++import extra166y.Ops ++import extra166y.ParallelArray ++import extra166y.ParallelArrayWithMapping + import groovyx.gpars.memoize.LRUProtectionStorage + import groovyx.gpars.memoize.NullProtectionStorage + import groovyx.gpars.memoize.NullValue + import groovyx.gpars.scheduler.FJPool + import groovyx.gpars.util.PAUtils +-import jsr166y.ForkJoinPool ++import java.util.concurrent.ForkJoinPool + + import java.lang.ref.ReferenceQueue + import java.lang.ref.SoftReference +diff --git a/src/main/groovy/groovyx/gpars/pa/MappedPAWrapper.groovy b/src/main/groovy/groovyx/gpars/pa/MappedPAWrapper.groovy +index 07c235e..b48938f 100644 +--- a/src/main/groovy/groovyx/gpars/pa/MappedPAWrapper.groovy ++++ b/src/main/groovy/groovyx/gpars/pa/MappedPAWrapper.groovy +@@ -16,7 +16,7 @@ + + package groovyx.gpars.pa + +-import groovyx.gpars.extra166y.ParallelArrayWithMapping ++import extra166y.ParallelArrayWithMapping + + /** + * The ParallelArray wrapper used after the map() operation +diff --git a/src/main/groovy/groovyx/gpars/scheduler/FJPool.java b/src/main/groovy/groovyx/gpars/scheduler/FJPool.java +index 359e344..148be60 100644 +--- a/src/main/groovy/groovyx/gpars/scheduler/FJPool.java ++++ b/src/main/groovy/groovyx/gpars/scheduler/FJPool.java +@@ -17,7 +17,7 @@ + package groovyx.gpars.scheduler; + + import groovyx.gpars.util.PoolUtils; +-import jsr166y.ForkJoinPool; ++import java.util.concurrent.ForkJoinPool; + + import java.util.concurrent.TimeUnit; + +diff --git a/src/test/groovy/groovyx/gpars/ForkJoinPoolDSLTest.groovy b/src/test/groovy/groovyx/gpars/ForkJoinPoolDSLTest.groovy +index 5c2b6a8..9195b9d 100644 +--- a/src/test/groovy/groovyx/gpars/ForkJoinPoolDSLTest.groovy ++++ b/src/test/groovy/groovyx/gpars/ForkJoinPoolDSLTest.groovy +@@ -17,7 +17,7 @@ + package groovyx.gpars + + import java.lang.Thread.UncaughtExceptionHandler +-import jsr166y.ForkJoinPool ++import java.util.concurrent.ForkJoinPool + import static groovyx.gpars.GParsPool.withExistingPool + import static groovyx.gpars.GParsPool.withPool + +diff --git a/src/test/groovy/groovyx/gpars/GParsPoolAsyncFunTest.groovy b/src/test/groovy/groovyx/gpars/GParsPoolAsyncFunTest.groovy +index a27b200..203f2bb 100644 +--- a/src/test/groovy/groovyx/gpars/GParsPoolAsyncFunTest.groovy ++++ b/src/test/groovy/groovyx/gpars/GParsPoolAsyncFunTest.groovy +@@ -19,7 +19,7 @@ package groovyx.gpars + import groovyx.gpars.dataflow.DataflowQueue + import groovyx.gpars.dataflow.Promise + import groovyx.gpars.scheduler.FJPool +-import jsr166y.RecursiveAction ++import java.util.concurrent.RecursiveAction + + /** + * @author Vaclav Pech +diff --git a/src/test/groovy/groovyx/gpars/GParsPoolUtilTest.groovy b/src/test/groovy/groovyx/gpars/GParsPoolUtilTest.groovy +index a7c60fd..5c0d642 100644 +--- a/src/test/groovy/groovyx/gpars/GParsPoolUtilTest.groovy ++++ b/src/test/groovy/groovyx/gpars/GParsPoolUtilTest.groovy +@@ -16,7 +16,7 @@ + + package groovyx.gpars + +-import jsr166y.ForkJoinPool ++import java.util.concurrent.ForkJoinPool + + import java.lang.Thread.UncaughtExceptionHandler + import java.util.concurrent.ConcurrentHashMap +diff --git a/src/test/groovy/groovyx/gpars/benchmark/BenchmarkGParsPool.groovy b/src/test/groovy/groovyx/gpars/benchmark/BenchmarkGParsPool.groovy +index 7932ab0..6a7e476 100644 +--- a/src/test/groovy/groovyx/gpars/benchmark/BenchmarkGParsPool.groovy ++++ b/src/test/groovy/groovyx/gpars/benchmark/BenchmarkGParsPool.groovy +@@ -21,7 +21,7 @@ import groovyx.gpars.GParsPoolUtil + import groovyx.gpars.ParallelEnhancer + import groovyx.gpars.extra166y.Ops.Reducer + import groovyx.gpars.extra166y.ParallelArray +-import jsr166y.ForkJoinPool ++import java.util.concurrent.ForkJoinPool + + import static groovyx.gpars.GParsPool.withExistingPool + import static groovyx.gpars.GParsPool.withPool +diff --git a/src/test/groovy/groovyx/gpars/groups/FJGroupTest.groovy b/src/test/groovy/groovyx/gpars/groups/FJGroupTest.groovy +index d879203..554c59f 100644 +--- a/src/test/groovy/groovyx/gpars/groups/FJGroupTest.groovy ++++ b/src/test/groovy/groovyx/gpars/groups/FJGroupTest.groovy +@@ -21,7 +21,7 @@ import groovyx.gpars.group.DefaultPGroup + import groovyx.gpars.scheduler.DefaultPool + import groovyx.gpars.scheduler.FJPool + import java.util.concurrent.CountDownLatch +-import jsr166y.ForkJoinWorkerThread ++import java.util.concurrent.ForkJoinWorkerThread + + public class FJGroupTest extends GroovyTestCase { + public void testFJGroup() { +diff --git a/src/test/groovy/groovyx/gpars/groups/PGroupBuilderTest.groovy b/src/test/groovy/groovyx/gpars/groups/PGroupBuilderTest.groovy +index b849e44..120088e 100644 +--- a/src/test/groovy/groovyx/gpars/groups/PGroupBuilderTest.groovy ++++ b/src/test/groovy/groovyx/gpars/groups/PGroupBuilderTest.groovy +@@ -22,7 +22,7 @@ import groovyx.gpars.scheduler.DefaultPool + import groovyx.gpars.scheduler.Pool + import java.util.concurrent.ExecutorService + import java.util.concurrent.Executors +-import jsr166y.ForkJoinPool ++import java.util.concurrent.ForkJoinPool + + class PGroupBuilderTest extends GroovyTestCase { + public void testCreationFromPool() { +diff --git a/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoFJDirect.groovy b/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoFJDirect.groovy +index ee8d2ac..e7f249a 100644 +--- a/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoFJDirect.groovy ++++ b/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoFJDirect.groovy +@@ -16,9 +16,9 @@ + + package groovyx.gpars.samples.forkjoin + +-import jsr166y.ForkJoinPool +-import jsr166y.ForkJoinTask +-import jsr166y.RecursiveTask ++import java.util.concurrent.ForkJoinPool ++import java.util.concurrent.ForkJoinTask ++import java.util.concurrent.RecursiveTask + + class Fibonacci extends RecursiveTask { + final int n; +diff --git a/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoRawForkJoinFileCounter.groovy b/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoRawForkJoinFileCounter.groovy +index 5356cbc..af509dd 100644 +--- a/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoRawForkJoinFileCounter.groovy ++++ b/src/test/groovy/groovyx/gpars/samples/forkjoin/DemoRawForkJoinFileCounter.groovy +@@ -17,7 +17,7 @@ + package groovyx.gpars.samples.forkjoin + + import groovyx.gpars.GParsPool +-import jsr166y.RecursiveTask ++import java.util.concurrent.RecursiveTask + + /** + * Shows use of the ForkJoin mechanics to count files recursively in a directory. +diff --git a/src/test/groovy/groovyx/gpars/samples/group/DemoPoolToGroup.groovy b/src/test/groovy/groovyx/gpars/samples/group/DemoPoolToGroup.groovy +index 9f88b9c..7fe29ed 100644 +--- a/src/test/groovy/groovyx/gpars/samples/group/DemoPoolToGroup.groovy ++++ b/src/test/groovy/groovyx/gpars/samples/group/DemoPoolToGroup.groovy +@@ -21,7 +21,7 @@ import groovyx.gpars.GParsPool + import groovyx.gpars.group.PGroup + import groovyx.gpars.group.PGroupBuilder + import java.util.concurrent.ExecutorService +-import jsr166y.ForkJoinPool ++import java.util.concurrent.ForkJoinPool + + /** + * Demonstrates how to use existing thread pool to build an instance of PGroup and then retrieve the pool back from the group. +-- +2.13.6 + diff --git a/0002-Enable-XMvn-local-mode.patch b/0002-Enable-XMvn-local-mode.patch new file mode 100644 index 0000000..8dcd64f --- /dev/null +++ b/0002-Enable-XMvn-local-mode.patch @@ -0,0 +1,113 @@ +From 1301e1357283018fa2271b16cc2bb2b7bead2de0 Mon Sep 17 00:00:00 2001 +From: Mikolaj Izdebski +Date: Tue, 4 Nov 2014 09:36:04 +0100 +Subject: [PATCH 2/3] Enable XMvn local mode + +--- + build.gradle | 27 ++------------------------- + buildSrc/build.gradle | 6 ------ + buildSrc/src/main/groovy/PdfGuide.groovy | 12 ------------ + 3 files changed, 2 insertions(+), 43 deletions(-) + +diff --git a/build.gradle b/build.gradle +index 71fa27c..b199036 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -115,28 +115,10 @@ configurations { + + dependencies { + compile group: 'org.codehaus.groovy', name: 'groovy-all', version: project.hasProperty('gpars_groovyVersion') ? gpars_groovyVersion : '2.1.9' +- compile 'org.codehaus.jsr166-mirror:jsr166y:1.7.0' ++ compile 'org.codehaus.jsr166-mirror:extra166y:1.7.0' + compile('org.multiverse:multiverse-core:0.7.0') { transitive = false } +- compile group: 'org.jboss.netty', name: 'netty', version: project.hasProperty('gpars_nettyVersion') ? gpars_nettyVersion : '3.2.9.Final' ++ compile group: 'org.jboss.netty', name: 'netty', version: project.hasProperty('gpars_nettyVersion') ? gpars_nettyVersion : '3' + compile 'org.codehaus.jcsp:jcsp:1.1-rc5' +- testCompile group: 'junit', name: 'junit', version: project.hasProperty('gpars_junitVersion') ? gpars_junitVersion : '4.11' +- testCompile group: 'org.spockframework', name: 'spock-core', version: project.hasProperty('gpars_spockVersion') ? gpars_spockVersion : '0.7-groovy-2.0' +- testCompile 'com.google.code.gson:gson:2.2.2' +- testCompile 'com.google.guava:guava:14.0.1' +- testCompile fileTree(dir: 'lib', include: '*.jar') +- // Manually load up the required dependencies for grailsDoc to avoid pulling in everything needed for +- // Grails, including all the SpringRoo stuff. +- docs group: 'org.codehaus.groovy', name: 'groovy-all', version: project.hasProperty('gpars_groovyVersion') ? gpars_groovyVersion : '2.0.8' +- docs 'org.yaml:snakeyaml:1.12' +- docs 'commons-lang:commons-lang:2.6' +- docs project.ext.grailsDocs +- docs project.ext.radeox +- docs project.ext.lowagieItext +- docs project.ext.xhtmlRenderer +- docs 'commons-logging:commons-logging:1.1.1' +- deployerJars "org.apache.maven.wagon:wagon-http-lightweight:2.4" +- cover 'net.sourceforge.cobertura:cobertura:1.9.4.1' +- testRuntime 'net.sourceforge.cobertura:cobertura:1.9.4.1' + } + + task runBenchmarks(type: JavaExec) { +@@ -300,11 +282,6 @@ task zipSrc(type: Jar, dependsOn: classes) { + from sourceSets.main.allSource + } + +-artifacts { +- archives(zipSrc) +- archives(zipDoc) +-} +- + task zipSamples(type: Zip) { + appendix = 'samples' + from sourceSets.test.allSource.matching { +diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle +index 2516924..829175c 100644 +--- a/buildSrc/build.gradle ++++ b/buildSrc/build.gradle +@@ -22,8 +22,6 @@ + + apply plugin: 'groovy' + +-apply from: '../gradle/docsDependencies.gradle' +- + repositories { + mavenCentral() + //mavenRepo name: 'SpringSource', url: 'http://repository.springsource.com/maven/bundles/release' +@@ -33,8 +31,4 @@ repositories { + dependencies { + compile localGroovy() + compile gradleApi() +- compile(project.ext.grailsDocs) { transitive = false } +- compile(project.ext.xhtmlRenderer) { transitive = false } +- compile(project.ext.lowagieItext) { transitive = false } +- compile(project.ext.radeox) { transitive = false } + } +diff --git a/buildSrc/src/main/groovy/PdfGuide.groovy b/buildSrc/src/main/groovy/PdfGuide.groovy +index 4ada443..b2d1ae9 100644 +--- a/buildSrc/src/main/groovy/PdfGuide.groovy ++++ b/buildSrc/src/main/groovy/PdfGuide.groovy +@@ -24,7 +24,6 @@ import org.gradle.api.DefaultTask + import org.gradle.api.tasks.Input + import org.gradle.api.tasks.OutputDirectory + import org.gradle.api.tasks.TaskAction +-import grails.doc.PdfBuilder + + class PdfGuide extends DefaultTask { + +@@ -38,17 +37,6 @@ class PdfGuide extends DefaultTask { + + @TaskAction + def publish() { +- try { +- PdfBuilder.build( +- basedir: outputDirectory.absolutePath, +- home: project.file('grails-doc').absolutePath, +- tool: 'pdf/gpars' +- ) +- } catch (ignore) { +- // it's very likely that the stream is closed before +- // the renderer 'finishes' but it actually does +- // ignore for now +- } + project.file(outputDirectory.absolutePath + '/guide/single.pdf') + .renameTo(new File(outputDirectory, pdfName).absolutePath) + } +-- +2.13.6 + diff --git a/0003-Port-build-script-to-current-gradle.patch b/0003-Port-build-script-to-current-gradle.patch new file mode 100644 index 0000000..56ff212 --- /dev/null +++ b/0003-Port-build-script-to-current-gradle.patch @@ -0,0 +1,33 @@ +From ec9a2856a49c648d2acfec5455aa7efc52346d20 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 30 Mar 2015 16:26:57 +0200 +Subject: [PATCH 3/3] Port build script to current gradle + +--- + build.gradle | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/build.gradle b/build.gradle +index b199036..0341009 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -267,7 +267,6 @@ groovydoc { + header = packageTitle + footer = copyrightString + include 'groovyx/gpars/**' +- overview = new File('overview.html') + } + + task documentation(dependsOn: ['javadoc', 'groovydoc', 'buildGuide', 'pdfGuide'], description: 'Create the API documentation.') +@@ -299,7 +298,7 @@ task zipJavaDemo(type: Zip) { + + task zipDist(type: Zip) { + from jar.outputs.files +- from(runtimeClasspath) { ++ from(sourceSets.main.runtimeClasspath) { + include('jsr166*', 'netty*', 'multiverse*') + } + from('licenses') { +-- +2.13.6 + diff --git a/LICENSE-2.0.txt b/LICENSE-2.0.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE-2.0.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. diff --git a/gpars-1.2.1-port-to-netty-3.10.6.patch b/gpars-1.2.1-port-to-netty-3.10.6.patch new file mode 100644 index 0000000..4eb311b --- /dev/null +++ b/gpars-1.2.1-port-to-netty-3.10.6.patch @@ -0,0 +1,20 @@ +diff -Nru gpars-1.2.1/src/main/groovy/groovyx/gpars/remote/netty/RemoteObjectDecoder.java gpars-1.2.1.netty3/src/main/groovy/groovyx/gpars/remote/netty/RemoteObjectDecoder.java +--- gpars-1.2.1/src/main/groovy/groovyx/gpars/remote/netty/RemoteObjectDecoder.java 2014-05-09 07:20:08.000000000 +0200 ++++ gpars-1.2.1.netty3/src/main/groovy/groovyx/gpars/remote/netty/RemoteObjectDecoder.java 2016-12-27 11:55:46.293323739 +0100 +@@ -22,6 +22,7 @@ + import org.jboss.netty.channel.Channel; + import org.jboss.netty.channel.ChannelHandler; + import org.jboss.netty.channel.ChannelHandlerContext; ++import org.jboss.netty.handler.codec.serialization.ClassResolvers; + import org.jboss.netty.handler.codec.serialization.ObjectDecoder; + + @ChannelHandler.Sharable +@@ -34,7 +35,7 @@ + * @param connection connection handling serialization details + */ + public RemoteObjectDecoder(final RemoteConnection connection) { +- super(); ++ super(ClassResolvers.weakCachingResolver(null)); + this.connection = connection; + } + diff --git a/gpars.spec b/gpars.spec new file mode 100644 index 0000000..e5006c0 --- /dev/null +++ b/gpars.spec @@ -0,0 +1,47 @@ +Name: gpars +Version: 1.2.1 +Release: 13 +Summary: Groovy Parallel Systems +License: ASL 2.0 and Public Domain +URL: https://github.com/GPars/GPars +Source0: https://github.com/GPars/GPars/archive/release-%{version}.tar.gz +Source1: LICENSE-2.0.txt + +Patch0: 0001-JSR-166.patch +Patch1: 0002-Enable-XMvn-local-mode.patch +Patch2: 0003-Port-build-script-to-current-gradle.patch +Patch3: gpars-1.2.1-port-to-netty-3.10.6.patch + +BuildArch: noarch +BuildRequires: gradle-local >= 2.1-0.10 apache-parent extra166y +BuildRequires: jcsp netty3 groovy-lib multiverse + +%description +The GPars framework (http://www.gpars.org) offers Java developers +intuitive and safe ways to handle Java or Groovy tasks concurrently. +Leveraging the enormous flexibility of the Groovy programing language +and building on proven Java technologies, we aim to make concurrent +programming for multi-core hardware intuitive, robust and enjoyable. + +%prep +%autosetup -n GPars-release-%{version} -p1 + +cp %{SOURCE1} . +rm -rf lib/ gradle/wrapper/ +rm -rf src/main/groovy/groovyx/gpars/extra166y/ + +%build +%gradle_build -f + +%install +%mvn_install + +%files +%doc README.md +%license LICENSE-2.0.txt +%{_datadir}/java/gpars/gpars.jar +%{_datadir}/maven-metadata/gpars.xml + +%changelog +* Wed Dec 11 2019 openEuler Buildteam - 1.2.1-13 +- Package init diff --git a/release-1.2.1.tar.gz b/release-1.2.1.tar.gz new file mode 100644 index 0000000..9ea82f0 Binary files /dev/null and b/release-1.2.1.tar.gz differ