From d6b422635839bd498d38bde54018b27f8c15510d Mon Sep 17 00:00:00 2001 From: John McClean Date: Wed, 11 May 2022 22:33:27 +0100 Subject: [PATCH 1/3] upgrade gradle --- build.gradle | 28 +++++++--------- cyclops/build.gradle | 40 +++++++++++------------ gradle/wrapper/gradle-wrapper.jar | Bin 54712 -> 53324 bytes gradle/wrapper/gradle-wrapper.properties | 4 +-- gradlew | 28 ++++++---------- gradlew.bat | 6 ++++ 6 files changed, 49 insertions(+), 57 deletions(-) diff --git a/build.gradle b/build.gradle index 70e3e1ea8b..e3df17da09 100644 --- a/build.gradle +++ b/build.gradle @@ -9,12 +9,13 @@ buildscript { } plugins { - id 'me.champeau.gradle.jmh' version '0.2.0' + id "me.champeau.jmh" version "0.6.5" } -def custom = { "$rootDir/gradle/${it}.gradle" } //find custom plugins locally - - +dependencies { + jmh 'org.openjdk.jmh:jmh-core:1.29' + jmh 'org.openjdk.jmh:jmh-generator-annprocess:1.28' +} jar { manifest { @@ -23,26 +24,19 @@ jar { } + subprojects { + apply plugin: 'me.champeau.jmh' + apply plugin: 'java-library' +// sourceCompatibility = 1.8 +// targetCompatibility = 1.8 - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - if (JavaVersion.current().isJava8Compatible()) { - allprojects { - tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') - } - } - } -} -task wrapper(type: Wrapper) { - gradleVersion = '2.14.1' } allprojects { - tasks.withType(JavaCompile).configureEach { + tasks.withType(JavaCompile) { options.fork = true options.incremental = true } diff --git a/cyclops/build.gradle b/cyclops/build.gradle index c47b09eb3d..b9df6fff80 100644 --- a/cyclops/build.gradle +++ b/cyclops/build.gradle @@ -13,11 +13,11 @@ buildscript { def custom = { "$rootDir/gradle/${it}.gradle" } //find custom plugins locally -apply plugin: 'me.champeau.gradle.jmh' + apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'maven-publish' -apply plugin: 'com.bmuschko.nexus' +//apply plugin: 'com.bmuschko.nexus' apply plugin: 'jacoco' apply from: custom('jacoco-version') apply from: custom('jacoco-config') @@ -51,23 +51,23 @@ configurations { dependencies { - compile 'org.agrona:Agrona:0.9.1' - compile 'org.reactivestreams:reactive-streams:1.0.0' - compile 'io.kindedj:kindedj:'+kindedJVersion - provided 'org.projectlombok:lombok:1.16.20' - testCompile group: 'io.projectreactor', name: 'reactor-test', version: '3.2.2.RELEASE' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' - testCompile 'io.projectreactor:reactor-core:3.2.2.RELEASE' - testCompile 'com.google.guava:guava:19.0' - testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0' - testCompile 'junit:junit:4.12' - testCompile 'org.hamcrest:hamcrest-all:1.3' - testCompile 'org.mockito:mockito-all:1.9.5' - testCompile 'io.javaslang:javaslang:2.0.2' - testCompile 'org.assertj:assertj-core:3.8.0' - testCompile(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') - testCompile (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') - testCompile group: 'org.hsqldb', name: 'hsqldb', version: '2.0.0' + implementation 'org.agrona:Agrona:0.9.1' + implementation 'org.reactivestreams:reactive-streams:1.0.0' + implementation 'io.kindedj:kindedj:'+kindedJVersion + compileOnly 'org.projectlombok:lombok:1.16.20' + testImplementation group: 'io.projectreactor', name: 'reactor-test', version: '3.2.2.RELEASE' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' + testImplementation 'io.projectreactor:reactor-core:3.2.2.RELEASE' + testImplementation 'com.google.guava:guava:19.0' + testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.0' + testImplementation 'junit:junit:4.12' + testImplementation 'org.hamcrest:hamcrest-all:1.3' + testImplementation 'org.mockito:mockito-all:1.9.5' + testImplementation 'io.javaslang:javaslang:2.0.2' + testImplementation 'org.assertj:assertj-core:3.8.0' + testImplementation(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') + testImplementation (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') + testImplementation group: 'org.hsqldb', name: 'hsqldb', version: '2.0.0' jmh 'com.github.akarnokd:ixjava:1.0.0-RC5' jmh 'io.vavr:vavr:0.9.2' jmh 'com.google.guava:guava:19.0' @@ -87,7 +87,7 @@ jacocoTestReport { } jmh { - jmhVersion = '1.14' + jmhVersion = '1.29' humanOutputFile = null include = ".*scrabble*" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index ed88a042a287c140a32e1639edfc91b2a233da8c..3baa851b28c65f87dd36a6748e1a85cf360c1301 100644 GIT binary patch delta 24054 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⪼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 delta 25496 zcmZ6yV{|1>^evcz!Iv;AS zv-YX8_pYfzh>jWvWK{(SNK7y=SXeMHFfp(sWD<=3+1+ts?u-3*uAL;RhL?SccZPTG ze&_xJ?EjZjgAe~dIZ3l*|NHKp4(ESjH-7pVH;`apf8oHum{Qo3u~Voxh=4we+Nj@{ zlj#(a*fu|4WD&`RXUsL^?c{9XJK!L5MJ-^tiZDm|ydj%YC)g>saJpVlZr3yV(s6Rq zHT>S!f%78b0y@p;F0R?R9vN%>SppRQzCK@Uz>Eh}*u{MfM$M)abbq;ujgm4?=nhli zWhCuSCL@xhTNw^$_4Qy3!viZye|Avsb%oL4ZRw`DN{n{@k?rV&`O-~sWr%v|=-dbZ z6tMV&s#?`jFp%Lu9*p(GNzlr!qN4Ja;AIQZ{Kko|gGWuVPJlaAwu3fc##zboQZibJ zMwidh(=yRwir;aNoZp_42REl%q^E>W&tBBq4=HnYW@m8Q=DbQ)$^cSnaV&uB*QT-Ulvn^?)7G?DOMD~j#` zMwltrRyvjGKO;TInlf#*C6=aj;SC%=aR-Zok>iow*BSrI+O-Yez+#?ZqU8-$gW@2? z_%Qy(|3h9#X257OrI3Mk@Ruq5>M#sEV;|v$;;9U4<;wLbH7NP!G$C)$9&s}Bwwc#zS6AKg!>y4j zjIsi?+A_t4$c~XQNKOSca&W@@i^E%3E zpY)f=;Q4aCMd;cTRKN1vSsE+OWp+nO@c!C+xGmj?Ji6^gMT)#)dku+SBO%^&eR84? zKS``X3w}@2xaDAp%|we< z`g*WYw6Z*6c52xe1`!&*=;zO2O)R2GmA%O*py+9af(P$G``UExbQ@kySo&SgWo13F@r4sz8^3n*^A6rP*hme zr4DEF1`(4D@`GW2WK+wIodv{@x>b4{a)%Pn!&kq>Pzi`6<8+4ao>3px4~o(~6-dgJd4_2m}T~ z34H1>DEsyY*)C@_j)av`Cle;nG6&n-Ix8$GESMZY=~Gdx%jP{;h9u>6%*by%u35DT z#^_Lnq471ANy?wl|5Hl;cP0J0Lz_WC1_Pre1Op@ce@h1z$ZX+g=HZd2hhU1i;w7ZA zzJ(VrO`ib9l~j`kEVJGR$K4Y6Su9jO&Zl zZ@#N@2Uz>eE`9S_`-}+LxXX^%S-LfV&c5A%9(*N&=#Sk=ne1oD5t+M#f&fN|Bu|q} z9>+rWg^94;R=jeoeFBiA0`%tN1&7KeDI6w?x3lV5z@+K^iQ^s1hnwa%l(hgO?tgSx?<_?BoOU68jav9g>lW7#$1*$5 zk7#!ea4R{k4A*6MD1m_=7apt{11IDwu3ANXmpoXQ9<4w1Htte1(r^60pGqvoP!f@b z%~767@JRTmNui<6-;HRl3=%}l%GkZzT1!NMPCKtf5)c+BqtGfSnhcsbpU zgzmjr*Lbt?rI**S`CK9{{#z3EZVkbscTrq68sSAA%TP4}R(u>=Y•ERK-f@c0_ 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 Date: Wed, 11 May 2022 23:40:48 +0100 Subject: [PATCH 2/3] Migrate to Gradle 7.2 --- build.gradle | 102 +++++++++++++++-- cyclops-anym/build.gradle | 93 +++------------- cyclops-anym/gradle.properties | 1 + cyclops-futurestream/build.gradle | 98 +++-------------- cyclops-futurestream/gradle.properties | 1 + cyclops-jackson-integration/build.gradle | 78 ++----------- cyclops-jackson-integration/gradle.properties | 1 + cyclops-pure/build.gradle | 98 +++-------------- cyclops-pure/gradle.properties | 1 + cyclops-reactive-collections/build.gradle | 101 +++-------------- .../gradle.properties | 1 + cyclops-reactor-integration/build.gradle | 103 ++++-------------- cyclops-reactor-integration/gradle.properties | 1 + cyclops-rxjava2-integration/build.gradle | 97 ++++------------- cyclops-rxjava2-integration/gradle.properties | 1 + cyclops/build.gradle | 96 ++-------------- cyclops/gradle.properties | 4 + gradle.properties | 6 + 18 files changed, 228 insertions(+), 655 deletions(-) create mode 100644 cyclops-anym/gradle.properties create mode 100644 cyclops-futurestream/gradle.properties create mode 100644 cyclops-jackson-integration/gradle.properties create mode 100644 cyclops-pure/gradle.properties create mode 100644 cyclops-reactive-collections/gradle.properties create mode 100644 cyclops-reactor-integration/gradle.properties create mode 100644 cyclops-rxjava2-integration/gradle.properties create mode 100644 cyclops/gradle.properties diff --git a/build.gradle b/build.gradle index e3df17da09..34dfabe7fa 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,10 @@ -buildscript { - repositories { - jcenter() - } - - dependencies { - classpath 'com.bmuschko:gradle-nexus-plugin:2.2' - } -} - plugins { id "me.champeau.jmh" version "0.6.5" + id 'maven-publish' + id 'signing' +} +repositories { + mavenCentral() } dependencies { @@ -28,11 +23,98 @@ jar { subprojects { apply plugin: 'me.champeau.jmh' apply plugin: 'java-library' + apply plugin: 'maven-publish' + apply plugin: 'signing' + + group 'com.oath.cyclops' // sourceCompatibility = 1.8 // targetCompatibility = 1.8 + java { + withJavadocJar() + withSourcesJar() + } + /** + signing { + sign publishing.publications.mavenJava + } + + **/ + + javadoc { + if(JavaVersion.current().isJava9Compatible()) { + options.addBooleanOption('html5', true) + } + } + artifacts { + archives javadocJar, sourcesJar + } + signing { + sign configurations.archives + } + publishing { + publications { + mavenJava(MavenPublication) { + from components.java + version "$version" + pom { + name = POM_NAME + packaging = POM_PACKAGING + description = POM_DESCRIPTION + url = POM_URL + scm { + url = 'scm:git@github.com:aol/cyclops-react.git' + connection = 'scm:git@github.com:aol/cyclops-react.git' + developerConnection = 'scm:git@github.com:aol/simple-react.git' + } + licenses { + license { + name = 'The Apache Software License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution = 'repo' + } + } + + developers { + developer { + id = 'johnmcclean-aol' + name = 'John McClean' + email = 'john.mcclean@teamaol.com' + } + developer { + id = 'kewangie' + name = 'Ke Wang' + email = 'ke.wang@teamaol.com' + } + + developer { + id = 'tkountis' + name = 'Thomas Kountis Wang' + email = 'thomas.kountis@adtech.com' + } + developer { + id = 'colinfkennedy' + name = 'Colin Kennedy' + email = 'Colin.Kennedy@teamaol.com' + } + } + } + } + } + repositories { + mavenLocal() + maven { + url = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' + credentials { + username = nexusUsername + password = nexusPassword + } + } + } + + } } allprojects { diff --git a/cyclops-anym/build.gradle b/cyclops-anym/build.gradle index e662d579cd..420c033646 100644 --- a/cyclops-anym/build.gradle +++ b/cyclops-anym/build.gradle @@ -12,7 +12,7 @@ buildscript { apply plugin: 'java' apply plugin: 'maven-publish' -apply plugin: 'com.bmuschko.nexus' + sourceCompatibility = 1.8 jar { @@ -25,26 +25,20 @@ repositories { mavenCentral() jcenter() } -configurations { - provided -} + dependencies { - compile project(':cyclops') - compile project(':cyclops-futurestream') - compile project(':cyclops-reactive-collections') - compile project(':cyclops-pure') - provided 'org.projectlombok:lombok:1.16.20' - testCompile project(':cyclops').sourceSets.test.output - testCompile 'io.projectreactor:reactor-core:3.0.7.RELEASE' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile 'org.hamcrest:hamcrest-all:1.3' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' -} -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] + api project(':cyclops') + api project(':cyclops-futurestream') + api project(':cyclops-reactive-collections') + api project(':cyclops-pure') + compileOnly 'org.projectlombok:lombok:1.16.20' + testImplementation project(':cyclops').sourceSets.test.output + testImplementation 'io.projectreactor:reactor-core:3.0.7.RELEASE' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation 'org.hamcrest:hamcrest-all:1.3' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' } + task packageTests(type: Jar) { from sourceSets.test.output classifier = 'tests' @@ -59,66 +53,5 @@ test { artifacts.archives packageTests -modifyPom { - project { - name 'cyclops-anym' - description 'A higher kinded monad abstraction for Java' - url 'https://github.com/aol/cyclops-react' - inceptionYear '2015' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-anym' - version "$version" - - scm { - url 'scm:git@github.com:aol/cyclops-react.git' - connection 'scm:git@github.com:aol/cyclops-react.git' - developerConnection 'scm:git@github.com:aol/simple-react.git' - } - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - developer { - id 'kewangie' - name 'Ke Wang' - email 'ke.wang@teamaol.com' - } - developer { - id 'tkountis' - name 'Thomas Kountis Wang' - email 'thomas.kountis@adtech.com' - } - developer { - id 'colinfkennedy' - name 'Colin Kennedy' - email 'Colin.Kennedy@teamaol.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} - -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} diff --git a/cyclops-anym/gradle.properties b/cyclops-anym/gradle.properties new file mode 100644 index 0000000000..1c6d40fb76 --- /dev/null +++ b/cyclops-anym/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-anym diff --git a/cyclops-futurestream/build.gradle b/cyclops-futurestream/build.gradle index 28af2a6aa5..a7a77fd0a5 100644 --- a/cyclops-futurestream/build.gradle +++ b/cyclops-futurestream/build.gradle @@ -11,7 +11,7 @@ buildscript { apply plugin: 'java' apply plugin: 'maven-publish' -apply plugin: 'com.bmuschko.nexus' + sourceCompatibility = 1.8 jar { @@ -29,28 +29,24 @@ configurations { } dependencies { - compile project(':cyclops') - compile project(':cyclops-reactive-collections') + api project(':cyclops') + api project(':cyclops-reactive-collections') - provided 'org.projectlombok:lombok:1.16.20' - testCompile project(':cyclops').sourceSets.test.output - testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0' - testCompile 'org.mockito:mockito-core:1.9.5' - testCompile 'io.projectreactor:reactor-core:3.0.7.RELEASE' - testCompile 'org.hamcrest:hamcrest-all:1.3' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile 'org.testng:testng:5.14.10' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' - testCompile 'io.vertx:vertx-core:3.0.0' - testCompile(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') - testCompile (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') -} -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] + compileOnly 'org.projectlombok:lombok:1.16.20' + testImplementation project(':cyclops').sourceSets.test.output + testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.0' + testImplementation 'org.mockito:mockito-core:1.9.5' + testImplementation 'io.projectreactor:reactor-core:3.0.7.RELEASE' + testImplementation 'org.hamcrest:hamcrest-all:1.3' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation 'org.testng:testng:5.14.10' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' + testImplementation 'io.vertx:vertx-core:3.0.0' + testImplementation(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') + testImplementation (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') } + test { reports.html.destination = file("$buildDir/reports/test") forkEvery = 1 @@ -59,66 +55,4 @@ test { } } -modifyPom { - project { - name 'cyclops-futurestream' - description 'Asynchronous parallel streaming via futures' - url 'https://github.com/aol/cyclops-react' - inceptionYear '2015' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-futurestream' - version "$version" - - scm { - url 'scm:git@github.com:aol/cyclops-react.git' - connection 'scm:git@github.com:aol/cyclops-react.git' - developerConnection 'scm:git@github.com:aol/simple-react.git' - } - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - developer { - id 'kewangie' - name 'Ke Wang' - email 'ke.wang@teamaol.com' - } - - developer { - id 'tkountis' - name 'Thomas Kountis Wang' - email 'thomas.kountis@adtech.com' - } - developer { - id 'colinfkennedy' - name 'Colin Kennedy' - email 'Colin.Kennedy@teamaol.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} - -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} diff --git a/cyclops-futurestream/gradle.properties b/cyclops-futurestream/gradle.properties new file mode 100644 index 0000000000..40b278f81a --- /dev/null +++ b/cyclops-futurestream/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-futurestream diff --git a/cyclops-jackson-integration/build.gradle b/cyclops-jackson-integration/build.gradle index dff97eea82..9f00a20a6b 100644 --- a/cyclops-jackson-integration/build.gradle +++ b/cyclops-jackson-integration/build.gradle @@ -1,17 +1,11 @@ apply plugin: 'java' apply plugin: 'eclipse' -apply plugin: 'com.bmuschko.nexus' apply plugin: 'maven-publish' buildscript { repositories { jcenter() } - - dependencies { - classpath 'com.bmuschko:gradle-nexus-plugin:2.3.1' - - } } sourceCompatibility = 1.8 @@ -33,75 +27,23 @@ configurations { dependencies { - compile project(':cyclops') - compile 'com.fasterxml.jackson.core:jackson-databind:'+jacksonVersion - provided group: 'org.projectlombok', name: 'lombok', version: lombokVersion - testCompile project(':cyclops-reactive-collections') - testCompile 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:'+jacksonVersion - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' - testCompile group: 'org.mockito', name: 'mockito-all', version: '1.9.5' + api project(':cyclops') + api 'com.fasterxml.jackson.core:jackson-databind:'+jacksonVersion + compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion + testImplementation project(':cyclops-reactive-collections') + testImplementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:'+jacksonVersion + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' + testImplementation group: 'org.mockito', name: 'mockito-all', version: '1.9.5' } -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] -} -eclipse.classpath.plusConfigurations += [configurations.provided] // Eclipse users only + test { systemProperties 'property': 'value' } -modifyPom { - project { - name 'cyclops-jackson' - description 'Cyclops integration for Jackson' - url 'https://github.com/oath/cyclops' - inceptionYear '2015' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-jackson-integration' - version "$version" - - scm { - url 'ssh://git@github.com:aol/cyclops.git' - connection 'ssh://git@github.com:aol/cyclops.git' - developerConnection 'ssh://git@github.com:aol/cyclops.git' - } - - licenses { - license { - name 'The MIT License (MIT)' - url 'https://github.com/oath/cyclops/blob/master/licence.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} - -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} - diff --git a/cyclops-jackson-integration/gradle.properties b/cyclops-jackson-integration/gradle.properties new file mode 100644 index 0000000000..93b74143fd --- /dev/null +++ b/cyclops-jackson-integration/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-jackson-integration diff --git a/cyclops-pure/build.gradle b/cyclops-pure/build.gradle index d424db962d..95e8b14bfb 100644 --- a/cyclops-pure/build.gradle +++ b/cyclops-pure/build.gradle @@ -2,16 +2,11 @@ buildscript { repositories { jcenter() } - - dependencies { - classpath 'com.bmuschko:gradle-nexus-plugin:2.3.1' - - } } apply plugin: 'java' apply plugin: 'maven-publish' -apply plugin: 'com.bmuschko.nexus' + sourceCompatibility = 1.8 jar { @@ -30,26 +25,22 @@ configurations { dependencies { - compile project(':cyclops') - compile project(':cyclops-reactive-collections') + api project(':cyclops') + api project(':cyclops-reactive-collections') - provided 'org.projectlombok:lombok:1.16.20' - testCompile project(':cyclops').sourceSets.test.output - testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0' - testCompile 'org.mockito:mockito-core:1.9.5' - testCompile 'io.projectreactor:reactor-core:3.0.7.RELEASE' - testCompile 'org.hamcrest:hamcrest-all:1.3' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile 'org.testng:testng:5.14.10' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' - testCompile 'io.vertx:vertx-core:3.0.0' + compileOnly 'org.projectlombok:lombok:1.16.20' + testImplementation project(':cyclops').sourceSets.test.output + testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.0' + testImplementation 'org.mockito:mockito-core:1.9.5' + testImplementation 'io.projectreactor:reactor-core:3.0.7.RELEASE' + testImplementation 'org.hamcrest:hamcrest-all:1.3' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation 'org.testng:testng:5.14.10' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' + testImplementation 'io.vertx:vertx-core:3.0.0' } -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] -} + test { reports.html.destination = file("$buildDir/reports/test") @@ -59,66 +50,5 @@ test { } } -modifyPom { - project { - name 'cyclops-pure' - description 'Pure funcional programming for Java 8 and beyond' - url 'https://github.com/aol/cyclops-react' - inceptionYear '2017' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-pure' - version "$version" - - scm { - url 'scm:git@github.com:aol/cyclops-react.git' - connection 'scm:git@github.com:aol/cyclops-react.git' - developerConnection 'scm:git@github.com:aol/simple-react.git' - } - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - developer { - id 'kewangie' - name 'Ke Wang' - email 'ke.wang@teamaol.com' - } - - developer { - id 'tkountis' - name 'Thomas Kountis Wang' - email 'thomas.kountis@adtech.com' - } - developer { - id 'colinfkennedy' - name 'Colin Kennedy' - email 'Colin.Kennedy@teamaol.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} diff --git a/cyclops-pure/gradle.properties b/cyclops-pure/gradle.properties new file mode 100644 index 0000000000..6ccc07618c --- /dev/null +++ b/cyclops-pure/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-pure diff --git a/cyclops-reactive-collections/build.gradle b/cyclops-reactive-collections/build.gradle index 986064daeb..d2bb4acbfb 100644 --- a/cyclops-reactive-collections/build.gradle +++ b/cyclops-reactive-collections/build.gradle @@ -11,7 +11,6 @@ buildscript { apply plugin: 'java' apply plugin: 'maven-publish' -apply plugin: 'com.bmuschko.nexus' sourceCompatibility = 1.8 jar { @@ -28,28 +27,24 @@ configurations { provided } dependencies { - compile project(':cyclops') - testCompile project(':cyclops').sourceSets.test.output - provided 'org.projectlombok:lombok:1.16.12' - testCompile project(':cyclops').sourceSets.test.output - testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0' - testCompile group: 'io.projectreactor', name: 'reactor-test', version: '3.2.2.RELEASE' - testCompile 'org.mockito:mockito-core:1.9.5' - testCompile 'io.projectreactor:reactor-core:3.0.7.RELEASE' - testCompile 'org.hamcrest:hamcrest-all:1.3' - testCompile 'com.google.guava:guava:19.0' - testCompile 'com.google.guava:guava-testlib:19.0' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile 'org.testng:testng:5.14.10' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' - testCompile 'io.vertx:vertx-core:3.0.0' -} -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] + api project(':cyclops') + testImplementation project(':cyclops').sourceSets.test.output + compileOnly 'org.projectlombok:lombok:1.16.12' + testImplementation project(':cyclops').sourceSets.test.output + testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.0' + testImplementation group: 'io.projectreactor', name: 'reactor-test', version: '3.2.2.RELEASE' + testImplementation 'org.mockito:mockito-core:1.9.5' + testImplementation 'io.projectreactor:reactor-core:3.0.7.RELEASE' + testImplementation 'org.hamcrest:hamcrest-all:1.3' + testImplementation 'com.google.guava:guava:19.0' + testImplementation 'com.google.guava:guava-testlib:19.0' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation 'org.testng:testng:5.14.10' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' + testImplementation 'io.vertx:vertx-core:3.0.0' } + test { reports.html.destination = file("$buildDir/reports/test") // forkEvery = 1 @@ -57,67 +52,3 @@ test { events "started", "passed", "skipped", "failed"//, "standardOut", "standardError" } } - -modifyPom { - project { - name 'cyclops-reactive-collections' - description 'Reactive collections' - url 'https://github.com/aol/cyclops-react' - inceptionYear '2017' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-reactive-collections' - version "$version" - - scm { - url 'scm:git@github.com:aol/cyclops-react.git' - connection 'scm:git@github.com:aol/cyclops-react.git' - developerConnection 'scm:git@github.com:aol/simple-react.git' - } - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - developer { - id 'kewangie' - name 'Ke Wang' - email 'ke.wang@teamaol.com' - } - - developer { - id 'tkountis' - name 'Thomas Kountis Wang' - email 'thomas.kountis@adtech.com' - } - developer { - id 'colinfkennedy' - name 'Colin Kennedy' - email 'Colin.Kennedy@teamaol.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} - -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} - diff --git a/cyclops-reactive-collections/gradle.properties b/cyclops-reactive-collections/gradle.properties new file mode 100644 index 0000000000..d3a2809c6d --- /dev/null +++ b/cyclops-reactive-collections/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-reactive-collections diff --git a/cyclops-reactor-integration/build.gradle b/cyclops-reactor-integration/build.gradle index 1b2bb8e524..fd6cbe4b5e 100644 --- a/cyclops-reactor-integration/build.gradle +++ b/cyclops-reactor-integration/build.gradle @@ -1,6 +1,5 @@ apply plugin: 'java' apply plugin: 'eclipse' -apply plugin: 'com.bmuschko.nexus' apply plugin: 'maven-publish' buildscript { @@ -21,14 +20,6 @@ jar { } } -if (JavaVersion.current().isJava8Compatible()) { - allprojects { - tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') - } - } -} - repositories { mavenCentral() } @@ -42,35 +33,28 @@ configurations { } dependencies { - compile project(':cyclops') - compile project(':cyclops-pure') - compile project(':cyclops-anym') - compile project(':cyclops-futurestream') - compile project(':cyclops-reactive-collections') - compile 'io.projectreactor:reactor-core:' + reactorVersion - testCompile project(':cyclops-anym').sourceSets.test.output - testCompile project(':cyclops').sourceSets.test.output - provided group: 'org.projectlombok', name: 'lombok', version: lombokVersion - - testCompile 'commons-io:commons-io:2.4' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' - testCompile group: 'org.mockito', name: 'mockito-all', version: '1.9.5' - testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0' - testCompile 'org.assertj:assertj-core:3.2.0' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' - testCompile(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') - testCompile (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') + api project(':cyclops') + api project(':cyclops-pure') + api project(':cyclops-anym') + api project(':cyclops-futurestream') + api project(':cyclops-reactive-collections') + api 'io.projectreactor:reactor-core:' + reactorVersion + testImplementation project(':cyclops-anym').sourceSets.test.output + testImplementation project(':cyclops').sourceSets.test.output + compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion + + testImplementation 'commons-io:commons-io:2.4' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' + testImplementation group: 'org.mockito', name: 'mockito-all', version: '1.9.5' + testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.0' + testImplementation 'org.assertj:assertj-core:3.2.0' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' + testImplementation(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') + testImplementation (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') } -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] -} - -eclipse.classpath.plusConfigurations += [configurations.provided] // Eclipse users only test { systemProperties 'property': 'value' @@ -97,51 +81,4 @@ test { artifacts { testArtifacts packageTests } -//artifacts.archives packageTests - -modifyPom { - project { - name 'cyclops-reactor' - description 'Cyclops integrations for Reactor' - url 'https://github.com/aol/cyclops' - inceptionYear '2016' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-reactor-integration' - version "$version" - - scm { - url 'ssh://git@github.com:aol/cyclops.git' - connection 'ssh://git@github.com:aol/cyclops.git' - developerConnection 'ssh://git@github.com:aol/cyclops.git' - } - - licenses { - license { - name 'The MIT License (MIT)' - url 'https://github.com/oath/cyclops/blob/master/licence.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} diff --git a/cyclops-reactor-integration/gradle.properties b/cyclops-reactor-integration/gradle.properties new file mode 100644 index 0000000000..d885942d20 --- /dev/null +++ b/cyclops-reactor-integration/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-reactor-integration diff --git a/cyclops-rxjava2-integration/build.gradle b/cyclops-rxjava2-integration/build.gradle index f1e3757596..3a5a6c5649 100644 --- a/cyclops-rxjava2-integration/build.gradle +++ b/cyclops-rxjava2-integration/build.gradle @@ -1,17 +1,11 @@ apply plugin: 'java' apply plugin: 'eclipse' -apply plugin: 'com.bmuschko.nexus' apply plugin: 'maven-publish' buildscript { repositories { jcenter() } - - dependencies { - classpath 'com.bmuschko:gradle-nexus-plugin:2.3.1' - - } } sourceCompatibility = 1.8 @@ -32,34 +26,27 @@ configurations { } dependencies { - compile project(':cyclops') - compile project(':cyclops-anym') - compile project(':cyclops-futurestream') - compile project(':cyclops-reactive-collections') - compile group: 'io.reactivex.rxjava2', name: 'rxjava', version: rxJava2Version - provided group: 'org.projectlombok', name: 'lombok', version: lombokVersion - testCompile project(':cyclops-anym').sourceSets.test.output - testCompile project(':cyclops').sourceSets.test.output - testCompile 'io.projectreactor:reactor-core:' + reactorVersion - testCompile 'commons-io:commons-io:2.4' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' - testCompile group: 'org.mockito', name: 'mockito-all', version: '1.9.5' - testCompile 'org.reactivestreams:reactive-streams-tck:1.0.0' - testCompile 'org.assertj:assertj-core:3.2.0' - testCompile 'com.github.stefanbirkner:system-rules:1.10.0' - testCompile(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') - testCompile (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') -} - -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] + api project(':cyclops') + api project(':cyclops-anym') + api project(':cyclops-futurestream') + api project(':cyclops-reactive-collections') + api group: 'io.reactivex.rxjava2', name: 'rxjava', version: rxJava2Version + compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion + testImplementation project(':cyclops-anym').sourceSets.test.output + testImplementation project(':cyclops').sourceSets.test.output + testImplementation 'io.projectreactor:reactor-core:' + reactorVersion + testImplementation 'commons-io:commons-io:2.4' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'junit', name: 'junit', version: '4.12' + testImplementation group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3' + testImplementation group: 'org.mockito', name: 'mockito-all', version: '1.9.5' + testImplementation 'org.reactivestreams:reactive-streams-tck:1.0.0' + testImplementation 'org.assertj:assertj-core:3.2.0' + testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' + testImplementation(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') + testImplementation (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') } -eclipse.classpath.plusConfigurations += [configurations.provided] // Eclipse users only test { systemProperties 'property': 'value' @@ -70,49 +57,3 @@ test { } } -modifyPom { - project { - name 'cyclops-rxjava2' - description 'Cyclops integration with RxJava 2' - url 'https://github.com/oath/cyclops' - inceptionYear '2017' - - groupId 'com.oath.cyclops' - artifactId 'cyclops-rx2-integration' - version "$version" - - scm { - url 'ssh://git@github.com:aol/cyclops.git' - connection 'ssh://git@github.com:aol/cyclops.git' - developerConnection 'ssh://git@github.com:aol/cyclops.git' - } - - licenses { - license { - name 'The MIT License (MIT)' - url 'https://github.com/aol/cyclops/blob/master/licence.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean' - name 'John McClean' - email 'john.mcclean@oath.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} - -nexus { - sign = true - repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' - snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' -} diff --git a/cyclops-rxjava2-integration/gradle.properties b/cyclops-rxjava2-integration/gradle.properties new file mode 100644 index 0000000000..e85866a104 --- /dev/null +++ b/cyclops-rxjava2-integration/gradle.properties @@ -0,0 +1 @@ +POM_NAME=cyclops-rxjava2-integration diff --git a/cyclops/build.gradle b/cyclops/build.gradle index b9df6fff80..3adc208919 100644 --- a/cyclops/build.gradle +++ b/cyclops/build.gradle @@ -37,23 +37,14 @@ repositories { jcenter() } -if (JavaVersion.current().isJava8Compatible()) { - allprojects { - tasks.withType(Javadoc) { - options.addStringOption('Xdoclint:none', '-quiet') - } - } -} -configurations { - provided -} + dependencies { - implementation 'org.agrona:Agrona:0.9.1' - implementation 'org.reactivestreams:reactive-streams:1.0.0' - implementation 'io.kindedj:kindedj:'+kindedJVersion + api 'org.agrona:Agrona:0.9.1' + api 'org.reactivestreams:reactive-streams:1.0.0' + api 'io.kindedj:kindedj:'+kindedJVersion compileOnly 'org.projectlombok:lombok:1.16.20' testImplementation group: 'io.projectreactor', name: 'reactor-test', version: '3.2.2.RELEASE' testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' @@ -73,11 +64,8 @@ dependencies { jmh 'com.google.guava:guava:19.0' } -sourceSets { - main.compileClasspath += [configurations.provided] - test.compileClasspath += [configurations.provided] - test.runtimeClasspath += [configurations.provided] -} + +/** jacocoTestReport { afterEvaluate { classDirectories = files(classDirectories.files.collect { @@ -85,11 +73,11 @@ jacocoTestReport { }) } } - +**/ jmh { jmhVersion = '1.29' humanOutputFile = null - include = ".*scrabble*" + // include = ".*scrabble*" } task testNG(type: Test) { @@ -100,12 +88,6 @@ task testNG(type: Test) { reports.html.destination = file("$buildDir/reports/test") } -task testSuite(type: Test) { - - include '**/*TestSuite.class' - reports.junitXml.destination = "$buildDir/reports/test" - reports.html.destination = "$buildDir/reports/test" -} test { reports.html.destination = file("$buildDir/reports/test") @@ -126,68 +108,12 @@ task packageTests(type: Jar) { artifacts.archives packageTests - -modifyPom { - project { - name 'cyclops' - description 'Platform for Functional Reactive Programming with Java 8' - url 'https://github.com/aol/cyclops-react' - inceptionYear '2015' - - groupId 'com.oath.cyclops' - artifactId 'cyclops' - version "$version" - - scm { - url 'scm:git@github.com:aol/cyclops-react.git' - connection 'scm:git@github.com:aol/cyclops-react.git' - developerConnection 'scm:git@github.com:aol/simple-react.git' - } - - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution 'repo' - } - } - - developers { - developer { - id 'johnmcclean-aol' - name 'John McClean' - email 'john.mcclean@teamaol.com' - } - developer { - id 'kewangie' - name 'Ke Wang' - email 'ke.wang@teamaol.com' - } - - developer { - id 'tkountis' - name 'Thomas Kountis Wang' - email 'thomas.kountis@adtech.com' - } - developer { - id 'colinfkennedy' - name 'Colin Kennedy' - email 'Colin.Kennedy@teamaol.com' - } - } - } -} - -extraArchive { - sources = true - tests = true - javadoc = true -} +/** nexus { sign = true repositoryUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2' snapshotRepositoryUrl = 'https://oss.sonatype.org/content/repositories/snapshots' } -/** - task wrapper(type: Wrapper) {gradleVersion = '2.14.1'}**/ + **/ + diff --git a/cyclops/gradle.properties b/cyclops/gradle.properties new file mode 100644 index 0000000000..0a5186d10f --- /dev/null +++ b/cyclops/gradle.properties @@ -0,0 +1,4 @@ +POM_NAME=cyclops +POM_PACKAGING=jar +POM_DESCRIPTION=Platform for Functional Reactive Programming with Java 8 +POM_URL=https://github.com/aol/cyclops diff --git a/gradle.properties b/gradle.properties index e1165c7446..9c99e27c51 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,3 +7,9 @@ kindedJVersion=1.1.0 hamcrestVersion=1.3 lombokVersion=1.18.4 jacksonVersion=2.10.1 + + +POM_NAME=cyclops +POM_PACKAGING=jar +POM_DESCRIPTION=Platform for Functional Reactive Programming with Java 8 +POM_URL=https://github.com/aol/cyclops From de74896dd377d620f036f112163af2016de6be87 Mon Sep 17 00:00:00 2001 From: John McClean Date: Fri, 13 May 2022 00:32:41 +0100 Subject: [PATCH 3/3] Build passing' --- build.gradle | 23 +++++++++++++++++-- .../java/cyclops/futurestream/LazyReact.java | 5 ++-- cyclops/build.gradle | 18 +++++---------- cyclops/src/jmh/java/cyclops/VectorOps.java | 14 +++++------ .../java/cyclops/data/vector/VectorMap.java | 2 +- .../src/main/java/cyclops/control/Option.java | 4 ++-- gradle.properties | 2 +- 7 files changed, 40 insertions(+), 28 deletions(-) diff --git a/build.gradle b/build.gradle index 34dfabe7fa..767db79ab1 100644 --- a/build.gradle +++ b/build.gradle @@ -33,6 +33,9 @@ subprojects { java { withJavadocJar() withSourcesJar() + + targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_1_8 } /** signing { @@ -40,7 +43,13 @@ subprojects { } **/ - + if (JavaVersion.current().isJava8Compatible()) { + allprojects { + tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + } + } + } javadoc { if(JavaVersion.current().isJava9Compatible()) { options.addBooleanOption('html5', true) @@ -52,6 +61,14 @@ subprojects { signing { sign configurations.archives } + dependencies { + compileOnly "org.projectlombok:lombok:${lombokVersion}" + annotationProcessor "org.projectlombok:lombok:${lombokVersion}" + + // Test Dependencies + testCompileOnly "org.projectlombok:lombok:${lombokVersion}" + testAnnotationProcessor "org.projectlombok:lombok:${lombokVersion}" + } publishing { publications { mavenJava(MavenPublication) { @@ -116,7 +133,7 @@ subprojects { } } - +/** allprojects { tasks.withType(JavaCompile) { options.fork = true @@ -124,3 +141,5 @@ allprojects { } } + + **/ diff --git a/cyclops-futurestream/src/main/java/cyclops/futurestream/LazyReact.java b/cyclops-futurestream/src/main/java/cyclops/futurestream/LazyReact.java index 8e0d8c9188..a17851cc96 100644 --- a/cyclops-futurestream/src/main/java/cyclops/futurestream/LazyReact.java +++ b/cyclops-futurestream/src/main/java/cyclops/futurestream/LazyReact.java @@ -22,6 +22,8 @@ import cyclops.data.Seq; import cyclops.reactive.ReactiveSeq; import cyclops.reactive.Spouts; +import lombok.Builder; +import lombok.experimental.Wither; import org.reactivestreams.Publisher; import com.oath.cyclops.internal.react.FutureStreamImpl; @@ -35,8 +37,7 @@ import lombok.Getter; import lombok.ToString; -import lombok.experimental.Builder; -import lombok.experimental.Wither; + /** * diff --git a/cyclops/build.gradle b/cyclops/build.gradle index 3adc208919..d3a6610bd0 100644 --- a/cyclops/build.gradle +++ b/cyclops/build.gradle @@ -1,14 +1,3 @@ -buildscript { - repositories { - jcenter() - } - - dependencies { - classpath 'com.bmuschko:gradle-nexus-plugin:2.2' - } -} -/** - plugins {id 'me.champeau.gradle.jmh' version '0.2.0'}**/ def custom = { "$rootDir/gradle/${it}.gradle" } //find custom plugins locally @@ -45,7 +34,7 @@ dependencies { api 'org.agrona:Agrona:0.9.1' api 'org.reactivestreams:reactive-streams:1.0.0' api 'io.kindedj:kindedj:'+kindedJVersion - compileOnly 'org.projectlombok:lombok:1.16.20' + testImplementation group: 'io.projectreactor', name: 'reactor-test', version: '3.2.2.RELEASE' testImplementation 'com.github.stefanbirkner:system-rules:1.10.0' testImplementation 'io.projectreactor:reactor-core:3.2.2.RELEASE' @@ -59,6 +48,7 @@ dependencies { testImplementation(group: 'org.hibernate', name: 'hibernate-core', version: '5.1.0.Final') testImplementation (group: 'org.hibernate', name: 'hibernate-entitymanager', version: '5.1.0.Final') testImplementation group: 'org.hsqldb', name: 'hsqldb', version: '2.0.0' + jmh 'com.github.akarnokd:ixjava:1.0.0-RC5' jmh 'io.vavr:vavr:0.9.2' jmh 'com.google.guava:guava:19.0' @@ -95,6 +85,10 @@ test { testLogging { events "started", "passed", "skipped", "failed"//, "standardOut", "standardError" } + minHeapSize = "512m" // initial heap size + maxHeapSize = "1024m" // maximum heap size + jvmArgs '-XX:MaxPermSize=256m' // mem argument for the test JVM + } test { diff --git a/cyclops/src/jmh/java/cyclops/VectorOps.java b/cyclops/src/jmh/java/cyclops/VectorOps.java index 7293f28d9c..5add27705d 100644 --- a/cyclops/src/jmh/java/cyclops/VectorOps.java +++ b/cyclops/src/jmh/java/cyclops/VectorOps.java @@ -1,11 +1,8 @@ package cyclops; -import com.google.common.collect.ImmutableList; import cyclops.data.Vector; -import cyclops.data.tuple.Tuple; -import cyclops.reactive.collections.immutable.VectorX; -import io.vavr.collection.Stream; + import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; @@ -17,7 +14,7 @@ import org.openjdk.jmh.annotations.State; import org.openjdk.jmh.annotations.Warmup; -import java.util.List; + import java.util.concurrent.TimeUnit; @@ -26,13 +23,13 @@ public class VectorOps { Vector vector; - VectorX vectorX; + // VectorX vectorX; io.vavr.collection.Vector js; @Setup public void before() { vector = Vector.range(0, 100_000); - vectorX = VectorX.range(0, 100_000); + // vectorX = VectorX.range(0, 100_000); js = io.vavr.collection.Vector.range(0, 100_000); } @@ -83,7 +80,7 @@ public void vavrOps() { } - +/** @Benchmark @BenchmarkMode(Mode.SampleTime) @OutputTimeUnit(TimeUnit.MILLISECONDS) @@ -110,6 +107,7 @@ public void vectorXOps() { } + **/ } diff --git a/cyclops/src/jmh/java/cyclops/data/vector/VectorMap.java b/cyclops/src/jmh/java/cyclops/data/vector/VectorMap.java index 38a730e9bc..1ae323dd28 100644 --- a/cyclops/src/jmh/java/cyclops/data/vector/VectorMap.java +++ b/cyclops/src/jmh/java/cyclops/data/vector/VectorMap.java @@ -1,7 +1,7 @@ package cyclops.data.vector; import cyclops.data.Vector; -import cyclops.reactive.collections.immutable.VectorX; + import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; import org.openjdk.jmh.annotations.Fork; diff --git a/cyclops/src/main/java/cyclops/control/Option.java b/cyclops/src/main/java/cyclops/control/Option.java index f2ee3cbbdb..f09e4beb3b 100644 --- a/cyclops/src/main/java/cyclops/control/Option.java +++ b/cyclops/src/main/java/cyclops/control/Option.java @@ -36,7 +36,7 @@ @see Maybe is a lazy / reactive sub-class of Option **/ -public interface Option extends To>, +public interface Option extends To>, OrElseValue>, MonadicValue, Zippable, @@ -102,7 +102,7 @@ static Option none() { } static Option some(T value){ - return new Option.Some<>(value); + return new Option.Some(value); } static Option fromFuture(Future future){ diff --git a/gradle.properties b/gradle.properties index 9c99e27c51..fcff491526 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ reactorVersion=3.3.1.RELEASE rxJava2Version=2.2.16 kindedJVersion=1.1.0 hamcrestVersion=1.3 -lombokVersion=1.18.4 +lombokVersion=1.16.20 jacksonVersion=2.10.1