diff --git a/.travis.yml b/.travis.yml index 84e87e5..99a151c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,4 @@ jdk: - oraclejdk11 script: - - ./gradlew clean build -x test \ No newline at end of file + - ./gradlew clean build \ No newline at end of file diff --git a/build.gradle b/build.gradle index c9ee01e..667be6b 100644 --- a/build.gradle +++ b/build.gradle @@ -1 +1,32 @@ -defaultTasks 'clean', 'build', 'distZip', 'distTar' \ No newline at end of file +plugins { + id 'org.sonarqube' version "$sonarQubeVersion" + id 'distribution' +} + +configure(subprojects) { + apply(plugin: 'java') + + java { + withSourcesJar() + } + + repositories { + mavenCentral() + } + + dependencies { + implementation "org.apache.logging.log4j:log4j-api:$log4jVersion" + implementation "org.apache.logging.log4j:log4j-core:$log4jVersion" + runtimeOnly "org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion" + implementation "net.openhft:chronicle-bytes:$openhftBytesVersion" + implementation "net.openhft:chronicle-core:$openhftCoreVersion" + implementation "commons-configuration:commons-configuration:$commonsCfgVersion" + + testImplementation "junit:junit:$junitVersion" + } +} + +group "$projectGroup" +version "$projectVersion" + +defaultTasks 'clean', 'build', 'distZip', 'distTar' diff --git a/core/build.gradle b/core/build.gradle index 15b5850..5023dc5 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,33 +1,4 @@ -group 'com.epam.cme' -version '2.1.4' - -apply plugin: 'java' - -sourceCompatibility = 1.8 - -repositories { - mavenCentral() -} - -jar { - baseName 'b2bits-jmdp3-core' -} - -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource - baseName 'b2bits-jmdp3-core' -} - -artifacts { - archives sourcesJar -} - -task copyToLib(type: Copy) { - into "$buildDir/libs" - from configurations.runtime -} -build.dependsOn(copyToLib) +archivesBaseName = "$moduleNamePrefix-core" dependencies { implementation "javax.xml.bind:jaxb-api:2.3.1" @@ -35,9 +6,5 @@ dependencies { implementation "com.sun.xml.bind:jaxb-impl:2.3.0" implementation "javax.activation:activation:1.1.1" implementation group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2' - - compile group: 'net.openhft', name: 'chronicle-bytes', version: '1.7.17' - compile group: 'commons-configuration', name: 'commons-configuration', version: '1.10' - runtime group: 'commons-collections', name: 'commons-collections', version: '3.2.2' - testCompile group: 'junit', name: 'junit', version: '4.12' + runtimeOnly group: 'commons-collections', name: 'commons-collections', version: "$commonsCollectionsVersion" } diff --git a/core/src/main/java/com/epam/cme/mdp3/sbe/message/SbeBufferImpl.java b/core/src/main/java/com/epam/cme/mdp3/sbe/message/SbeBufferImpl.java index ebdd83b..d252f14 100644 --- a/core/src/main/java/com/epam/cme/mdp3/sbe/message/SbeBufferImpl.java +++ b/core/src/main/java/com/epam/cme/mdp3/sbe/message/SbeBufferImpl.java @@ -80,7 +80,7 @@ public void wrapForParse(final ByteBuffer bb) { @Override public void release() { - this.bytes.release(); + this.bytes.releaseLast(); } @Override diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8626bf5..41dfb87 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Tue Jul 16 09:58:55 MSK 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip diff --git a/mbp-only/build.gradle b/mbp-only/build.gradle index 7aba9ff..7915fda 100644 --- a/mbp-only/build.gradle +++ b/mbp-only/build.gradle @@ -1,22 +1,9 @@ plugins { - id "java" - id "maven" - id "java-library-distribution" - id "org.sonarqube" version "2.7.1" id "me.champeau.gradle.jmh" version "0.5.0-rc-1" + id 'distribution' } -group = 'com.epam.cme' -version = '2.1.4' -sourceCompatibility = 1.8 -targetCompatibility = 1.8 -repositories { - mavenCentral() -} - -jar { - baseName 'b2bits-jmdp3' -} +archivesBaseName = "$moduleNamePrefix-mbp" configurations { cucumberRuntime { @@ -25,26 +12,14 @@ configurations { } dependencies { - compile project(':core') - compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5' - compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5' - compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - runtime group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.5' - compile group: 'net.openhft', name: 'koloboke-api-jdk8', version: '0.6.8' - runtime group: 'net.openhft', name: 'koloboke-impl-jdk8', version: '0.6.8' - compile group: 'net.openhft', name: 'chronicle-core', version: '1.7.6' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'uk.co.real-logic', name: 'sbe-tool', version: '1.6.0' + implementation project(':core') + implementation group: 'org.apache.commons', name: 'commons-lang3', version: "$commonsLang3Version" + implementation group: 'net.openhft', name: 'koloboke-api-jdk8', version: "$openhftKolobokeVersion" + runtimeOnly group: 'net.openhft', name: 'koloboke-impl-jdk8', version: "$openhftKolobokeVersion" + testImplementation group: 'uk.co.real-logic', name: 'sbe-tool', version: '1.6.0' testImplementation 'io.cucumber:cucumber-java:4.3.1' } -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource - baseName 'b2bits-jmdp3' -} - - task cucumber() { dependsOn assemble, compileTestJava doLast { @@ -56,21 +31,16 @@ task cucumber() { } } -artifacts { - archives sourcesJar -} - -task copyToLib(type: Copy) { - into "$buildDir/libs/lib" - from configurations.runtime -} -build.dependsOn(copyToLib) - distributions { main { - baseName = 'b2bits-jmdp3' + distributionBaseName = "$archivesBaseName" contents { from { '../dist' } + from jar + from sourcesJar + into('libs') { + from(project.configurations.runtimeClasspath) + } } } } diff --git a/mbp-only/src/jmh/java/com/epam/cme/mdp3/test/perf/IncrementalRefreshPerfTest.java b/mbp-only/src/jmh/java/com/epam/cme/mdp3/test/perf/IncrementalRefreshPerfTest.java index efb3873..e18b391 100644 --- a/mbp-only/src/jmh/java/com/epam/cme/mdp3/test/perf/IncrementalRefreshPerfTest.java +++ b/mbp-only/src/jmh/java/com/epam/cme/mdp3/test/perf/IncrementalRefreshPerfTest.java @@ -26,7 +26,7 @@ import com.epam.cme.mdp3.sbe.message.meta.SbePrimitiveType; import com.epam.cme.mdp3.sbe.schema.MdpMessageTypeBuildException; import com.epam.cme.mdp3.test.SbeDataDumpHelper; -import net.openhft.chronicle.bytes.NativeBytesStore; +import net.openhft.chronicle.bytes.internal.NativeBytesStore; import org.openjdk.jmh.annotations.*; import java.net.URISyntaxException; diff --git a/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/IncrementalRefreshHolder.java b/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/IncrementalRefreshHolder.java index 3560425..235d962 100644 --- a/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/IncrementalRefreshHolder.java +++ b/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/IncrementalRefreshHolder.java @@ -16,7 +16,7 @@ import com.epam.cme.mdp3.MutableMdpGroupEntry; import com.epam.cme.mdp3.sbe.message.SbeBuffer; import com.epam.cme.mdp3.sbe.message.meta.SbeGroupType; -import net.openhft.chronicle.bytes.NativeBytesStore; +import net.openhft.chronicle.bytes.internal.NativeBytesStore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.epam.cme.mdp3.core.control.IncrementalRefreshQueue.IncrementalRefreshQueueEntry; @@ -43,7 +43,7 @@ public boolean put(final IncrementalRefreshQueueEntry queueEntry, final long rpt this.incrPcktSeqNum = queueEntry.incrPcktSeqNum; if (store.capacity() < entrySize) { - store.release(); + store.releaseLast(); store = NativeBytesStore.nativeStoreWithFixedCapacity(entrySize); } incrEntry.buffer().copyTo(incrEntry.getAbsoluteEntryOffset(), this.store, entrySize); @@ -81,6 +81,6 @@ public void reset() { public void release() { rptSeqNumHolder = 0; - this.store.release(); + this.store.releaseLast(); } } diff --git a/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/PacketHolder.java b/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/PacketHolder.java index 0b0425b..bdabe3e 100644 --- a/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/PacketHolder.java +++ b/mbp-only/src/main/java/com/epam/cme/mdp3/core/control/PacketHolder.java @@ -13,7 +13,7 @@ package com.epam.cme.mdp3.core.control; import com.epam.cme.mdp3.MdpPacket; -import net.openhft.chronicle.bytes.NativeBytesStore; +import net.openhft.chronicle.bytes.internal.NativeBytesStore; import org.slf4j.LoggerFactory; import org.slf4j.Logger; @@ -34,7 +34,7 @@ public boolean put(final MdpPacket mdpPacket, final long seqNum) { packetSize = mdpPacket.getPacketSize(); if (store.capacity() < packetSize) { - store.release(); + store.releaseLast(); store = NativeBytesStore.nativeStoreWithFixedCapacity(packetSize); } mdpPacket.buffer().copyTo(this.store); @@ -65,6 +65,6 @@ public void reset() { public void release() { seqNumHolder = 0; - this.store.release(); + this.store.releaseLast(); } } diff --git a/mbp-with-mbo/build.gradle b/mbp-with-mbo/build.gradle index 1f4877a..9f18d4c 100644 --- a/mbp-with-mbo/build.gradle +++ b/mbp-with-mbo/build.gradle @@ -1,63 +1,34 @@ plugins { - id "java" - id "maven" - id "java-library-distribution" id "me.champeau.gradle.jmh" version "0.5.0-rc-1" + id 'distribution' } -group = 'com.epam.cme' -version = '2.1.4' -sourceCompatibility = 1.8 -targetCompatibility = 1.8 - -repositories { - mavenCentral() -} - -jar { - baseName 'b2bits-jmdp3' -} +archivesBaseName = "$moduleNamePrefix-mbo" dependencies { - compile project(':core') - compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.5' - compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.5' - compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' - runtime group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.5' - compile group: 'net.openhft', name: 'koloboke-api-jdk8', version: '0.6.8' - runtime group: 'net.openhft', name: 'koloboke-impl-jdk8', version: '0.6.8' - compile group: 'net.openhft', name: 'chronicle-core', version: '1.7.6' - compile group: 'org.agrona', name: 'agrona', version: '0.9.5' - testCompile group: 'junit', name: 'junit', version: '4.12' - testCompile group: 'uk.co.real-logic', name: 'sbe-tool', version: '1.6.0' - testCompile group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2' + implementation project(':core') + implementation group: 'org.apache.commons', name: 'commons-lang3', version: "$commonsLang3Version" + implementation group: 'org.agrona', name: 'agrona', version: "$agronaVersion" + implementation group: 'net.openhft', name: 'koloboke-api-jdk8', version: "$openhftKolobokeVersion" + runtimeOnly group: 'net.openhft', name: 'koloboke-impl-jdk8', version: "$openhftKolobokeVersion" + testImplementation group: 'uk.co.real-logic', name: 'sbe-tool', version: '1.6.0' + testImplementation group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2' } distributions { main { - baseName = 'b2bits-jmdp3' + distributionBaseName = "$archivesBaseName" contents { from { '../dist' } + from jar + from sourcesJar + into('libs') { + from(project.configurations.runtimeClasspath) + } } } } -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource - baseName 'b2bits-jmdp3' -} - -artifacts { - archives sourcesJar -} - -task copyToLib(type: Copy) { - into "$buildDir/libs/lib" - from configurations.runtime -} -build.dependsOn(copyToLib) - task testJar(type: Jar) { classifier = 'tests' from sourceSets.test.output diff --git a/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/MDPOffHeapBuffer.java b/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/MDPOffHeapBuffer.java index 946ab8e..6039eeb 100644 --- a/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/MDPOffHeapBuffer.java +++ b/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/MDPOffHeapBuffer.java @@ -14,8 +14,7 @@ import com.epam.cme.mdp3.MdpPacket; import com.epam.cme.mdp3.sbe.message.SbeConstants; -import net.openhft.chronicle.bytes.NativeBytesStore; - +import net.openhft.chronicle.bytes.internal.NativeBytesStore; import static com.epam.cme.mdp3.sbe.message.SbeConstants.MESSAGE_SEQ_NUM_OFFSET; public class MDPOffHeapBuffer implements IMDPOffHeapBuffer { diff --git a/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/OffHeapSnapshotCycleHandler.java b/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/OffHeapSnapshotCycleHandler.java index f0ee0b8..15a2004 100644 --- a/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/OffHeapSnapshotCycleHandler.java +++ b/mbp-with-mbo/src/main/java/com/epam/cme/mdp3/control/OffHeapSnapshotCycleHandler.java @@ -13,7 +13,7 @@ package com.epam.cme.mdp3.control; import net.openhft.chronicle.bytes.BytesStore; -import net.openhft.chronicle.bytes.NativeBytesStore; +import net.openhft.chronicle.bytes.internal.NativeBytesStore; import org.agrona.collections.Long2ObjectHashMap; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; @@ -132,7 +132,7 @@ public LongArray(long length) { } public void reInit(long length){ - bytes.release(); + bytes.releaseLast(); this.bytes = NativeBytesStore.nativeStore(length * Long.BYTES); this.length = length; } diff --git a/mbp-with-mbo/src/test/java/com/epam/cme/mdp3/test/ModelUtils.java b/mbp-with-mbo/src/test/java/com/epam/cme/mdp3/test/ModelUtils.java index 1891809..be0d929 100644 --- a/mbp-with-mbo/src/test/java/com/epam/cme/mdp3/test/ModelUtils.java +++ b/mbp-with-mbo/src/test/java/com/epam/cme/mdp3/test/ModelUtils.java @@ -2,7 +2,7 @@ import com.epam.cme.mdp3.test.gen.*; -import net.openhft.chronicle.bytes.NativeBytesStore; +import net.openhft.chronicle.bytes.internal.NativeBytesStore; import org.agrona.ExpandableArrayBuffer; import org.agrona.MutableDirectBuffer; diff --git a/settings.gradle b/settings.gradle index 4e7b80a..7af6482 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,5 @@ +rootProject.name = 'java-cme-mdp3-handler' + include 'core' include 'mbp-only' include 'mbp-with-mbo'