Skip to content

Commit

Permalink
publish to sonatype repo (#41)
Browse files Browse the repository at this point in the history
* upgrade dependency-check plugin

* upgrade gradle and plugins

* temp workaround to NVD's repo issue: jeremylong/DependencyCheck#3306

* clean up the publication

* publish to sonatype repo

* review comment addressed

Co-authored-by: Smruti Ranjan Sahoo <[email protected]>
  • Loading branch information
smrutilal2 and Smruti Ranjan Sahoo authored Apr 23, 2021
1 parent c211d9e commit c3bd02a
Show file tree
Hide file tree
Showing 11 changed files with 118 additions and 86 deletions.
17 changes: 12 additions & 5 deletions benchmark/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,17 @@ publishMavenJavaPublicationToMavenRepository {
enabled = false
}

description = 'Metrics Benchmarks'

dependencies {
jmh project(':core')

jmh group: 'org.openjdk.jmh', name: 'jmh-core', version: '1.21'
jmh group: 'org.openjdk.jmh', name: 'jmh-generator-annprocess', version: '1.21'
jmh group: 'io.dropwizard.metrics', name: 'metrics-core', version: '3.2.2'
jmh group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.1'
jmh group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.11.1'
jmh group: 'org.openjdk.jmh', name: 'jmh-core', version: '1.29'
jmh group: 'org.openjdk.jmh', name: 'jmh-generator-annprocess', version: '1.29'
jmh group: 'io.dropwizard.metrics', name: 'metrics-core', version: '4.1.19'
jmh platform(group: 'org.apache.logging.log4j', name: 'log4j-bom', version: '2.14.1')
jmh group: 'org.apache.logging.log4j', name: 'log4j-core'
jmh group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl'
}

jmh {
Expand All @@ -22,6 +25,10 @@ jmh {
//profilers = ['hs_gc']
}

spotbugsJmh {
enabled = false
}

// XXX Is this still needed if we upgrade jmh plugin to latest?
task deleteEmptyBmList(type: Delete) {
delete "${buildDir}/jmh-generated-classes/META-INF/BenchmarkList"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void setup() {
ultrabrewCounter = ultrabrewRegistry.counter("counter");
ultrabrewTimer = ultrabrewRegistry.timer("timer");
ultrabrewGauge = ultrabrewRegistry.gauge("gauge");
ultrabrewReporter = new SLF4JReporter("ultrabrew");
ultrabrewReporter = SLF4JReporter.builder().withName("ultrabrew").build();
ultrabrewRegistry.addReporter(ultrabrewReporter);

dropwizardRegistry = new com.codahale.metrics.MetricRegistry();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public void setup() {
ultrabrewCounter = ultrabrewRegistry.counter("counter");
ultrabrewTimer = ultrabrewRegistry.timer("timer");
ultrabrewGauge = ultrabrewRegistry.gauge("gauge");
ultrabrewReporter = new SLF4JReporter("ultrabrew");
ultrabrewReporter = SLF4JReporter.builder().withName("ultrabrew").build();
ultrabrewRegistry.addReporter(ultrabrewReporter);

dropwizardRegistry = new com.codahale.metrics.MetricRegistry();
Expand Down
16 changes: 0 additions & 16 deletions benchmark/src/jmh/resources/log4j2.xml

This file was deleted.

126 changes: 80 additions & 46 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ buildscript {
}

dependencies {
classpath group: 'com.bmuschko', name: 'gradle-clover-plugin', version: '2.2.2'
classpath group: 'com.github.ben-manes', name: 'gradle-versions-plugin', version: '0.20.0'
classpath group: 'me.champeau.gradle', name: 'jmh-gradle-plugin', version: '0.4.8'
classpath group: 'org.owasp', name: 'dependency-check-gradle', version: '5.3.2.1'
classpath group: 'gradle.plugin.com.github.spotbugs', name: 'spotbugs-gradle-plugin', version: '2.0.0'
classpath group: 'org.ajoberstar.reckon', name: 'reckon-gradle', version: '0.9.0'
classpath group: 'com.bmuschko', name: 'gradle-clover-plugin', version: '3.0.1'
classpath group: 'com.github.ben-manes', name: 'gradle-versions-plugin', version: '0.38.0'
classpath group: 'me.champeau.gradle', name: 'jmh-gradle-plugin', version: '0.5.3'
classpath group: 'org.owasp', name: 'dependency-check-gradle', version: '6.1.5'
classpath group: 'gradle.plugin.com.github.spotbugs.snom', name: 'spotbugs-gradle-plugin', version: '4.7.0'
classpath group: 'org.ajoberstar.reckon', name: 'reckon-gradle', version: '0.13.0'
}
}

Expand All @@ -20,34 +20,35 @@ apply plugin: 'com.github.ben-manes.versions'
description = """Measure behavior of critical components in production"""

subprojects {
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'signing'
apply plugin: 'maven-publish'
apply plugin: 'com.bmuschko.clover'
apply plugin: 'com.github.spotbugs'
apply plugin: 'org.owasp.dependencycheck'

sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

group = 'io.ultrabrew.' + rootProject.name
archivesBaseName = rootProject.name + '-' + name

repositories {
jcenter()
mavenCentral()
}

dependencies {
compileOnly 'com.github.spotbugs:spotbugs-annotations:3.1.9'

testCompile group: 'org.jmockit', name: 'jmockit', version: '1.44'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.3.2'
testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.3.2'
testRuntime group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.3.2'
testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
testImplementation group: 'org.jmockit', name: 'jmockit', version: '1.44'
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.3.2'
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.3.2'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.3.2'
testImplementation group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'

clover group: 'org.openclover', name: 'clover', version: '4.2.1'

spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.8.0'
spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.11.0'
}

test {
Expand Down Expand Up @@ -83,34 +84,24 @@ subprojects {
skipConfigurations = ['clover', 'jmh', 'spotbugs']
format = 'ALL'
failBuildOnCVSS = 4.0
}

spotbugs {
sourceSets = [sourceSets.main]
cve {
// workaround to the broken NVD files: https://github.com/jeremylong/DependencyCheck/issues/3306
urlModified = "https://freedumbytes.gitlab.io/setup/nist-nvd-mirror/nvdcve-1.1-modified.json.gz"
urlBase = "https://freedumbytes.gitlab.io/setup/nist-nvd-mirror/nvdcve-1.1-%d.json.gz"
}
}

spotbugsMain.reports {
xml.enabled = false
html.enabled = true
}

spotbugsTest.reports {
xml.enabled = false
html.enabled = true
}

task sourceJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
spotbugsTest {
enabled = false
}

javadoc.options {
noQualifiers << 'java.*'
java {
withJavadocJar()
withSourcesJar()
}

reckon {
Expand All @@ -121,32 +112,75 @@ subprojects {
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = archivesBaseName
from components.java
artifact sourceJar
artifact javadocJar

afterEvaluate {
artifactId = archivesBaseName
pom {
name = project.name
description = project.description
url = 'http://ultrabrew.io'
scm {
connection = 'scm:git:git://github.com/ultrabrew/metrics.git'
developerConnection = 'scm:git:ssh://github.com:ultrabrew/metrics.git'
url = 'https://github.com/ultrabrew/metrics.git'
}
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id = 'mmannerm'
name = 'Mika Mannermaa'
}
developer {
id = 'smrutilal2'
name = 'Smruti Ranjan Sahoo'
}
developer {
id = 'lonemeow'
name = 'Ilpo Ruotsalainen'
}
developer {
id = 'manolama'
name = 'Chris Larsen'
}
developer {
id = 'arungupta'
name = 'Arun Gupta'
}
}
}
}
}

repositories {
maven {
def artifactory = 'https://oss.jfrog.org/artifactory/oss-snapshot-local'
def bintray = 'https://api.bintray.com/maven/ultrabrew/m2/' + rootProject.name + '/;publish=1'
def snapshotRepository = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
def stagingRepository = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'

afterEvaluate {
url = version.toString().endsWith('-SNAPSHOT') ? artifactory : bintray
url = version.toString().endsWith('-SNAPSHOT') ? snapshotRepository : stagingRepository
}
credentials {
username = System.getenv('BINTRAY_USER')
password = System.getenv('BINTRAY_API_KEY')
username = System.getenv('OSS_USER')
password = System.getenv('OSS_PASSWORD')
}
}
}
}

signing {
if (project.hasProperty('signingKey') && project.hasProperty('signingPassword')) {
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
useInMemoryPgpKeys(signingKey, signingPassword)

sign publishing.publications.mavenJava
}
}

// disable the tasks for the 'examples' aggregator project
gradle.taskGraph.whenReady {
gradle.taskGraph.allTasks.forEach {
Expand Down
9 changes: 6 additions & 3 deletions core/build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
description = 'A lightweight, high-performance Java instrumentation library'

dependencies {
compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25'
api group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25'

testCompile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.1'
testCompile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.11.1'
testImplementation platform(group: 'org.apache.logging.log4j', name: 'log4j-bom', version: '2.14.1')
testImplementation group: 'org.apache.logging.log4j', name: 'log4j-core'
testImplementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl'
}

/*gitPublish {
Expand Down
10 changes: 5 additions & 5 deletions examples/undertow-httphandler/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ publishMavenJavaPublicationToMavenRepository {
}

dependencies {
compile project(':core')
implementation project(':core')

compile platform(group: 'org.apache.logging.log4j', name: 'log4j-bom', version: '2.13.3')
compile group: 'org.apache.logging.log4j', name: 'log4j-core'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl'
compile group: 'io.undertow', name: 'undertow-core', version: '2.2.7.Final'
implementation platform(group: 'org.apache.logging.log4j', name: 'log4j-bom', version: '2.14.1')
implementation group: 'org.apache.logging.log4j', name: 'log4j-core'
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl'
implementation group: 'io.undertow', name: 'undertow-core', version: '2.2.7.Final'
}
8 changes: 4 additions & 4 deletions examples/webapp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ publishMavenJavaPublicationToMavenRepository {
}

dependencies {
compile project(':core')
implementation project(':core')

compile platform(group: 'org.apache.logging.log4j', name: 'log4j-bom', version: '2.13.3')
compile group: 'org.apache.logging.log4j', name: 'log4j-core'
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl'
implementation platform(group: 'org.apache.logging.log4j', name: 'log4j-bom', version: '2.14.1')
implementation group: 'org.apache.logging.log4j', name: 'log4j-core'
implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl'

providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
}
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
6 changes: 4 additions & 2 deletions reporter-influxdb/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
description = 'Influxdb reporter for Ultrabrew Metrics'

dependencies {
compile project(':core')
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13'
api project(':core')
implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13'
}
6 changes: 4 additions & 2 deletions reporter-opentsdb/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
description = 'Opentsdb reporter for Ultrabrew Metrics'

dependencies {
compile project(':core')
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13'
api project(':core')
implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13'
}

0 comments on commit c3bd02a

Please sign in to comment.