Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to slf4j 2.0 #12

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,39 +1,38 @@
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.android.tools.build:gradle:8.3.2'
}
}

allprojects {
repositories {
google()
mavenCentral()
jcenter()
}
}

ext {
minSdkVersion = 9
targetSdkVersion = 28
compileSdkVersion = 28
targetSdkVersion = 33
compileSdkVersion = 33
sourceCompatibilityVersion = JavaVersion.VERSION_1_7
targetCompatibilityVersion = JavaVersion.VERSION_1_7
}

ext.deps = [
// Compile dependencies
slf4j : 'org.slf4j:slf4j-api:1.7.25',
timber : 'com.jakewharton.timber:timber:4.7.1',
slf4j : 'org.slf4j:slf4j-api:2.0.13',
timber : 'com.jakewharton.timber:timber:5.0.1',

// Test dependencies testImplementation 'org.junit.vintage:junit-vintage-engine:5.3.1'

junit : 'org.junit.vintage:junit-vintage-engine:5.3.1',
junit : 'org.junit.vintage:junit-vintage-engine:5.10.2',
festassert : 'org.easytesting:fest-assert-core:2.0M10',
festandroid: 'com.squareup:fest-android:1.0.8',
mockitocore: 'org.mockito:mockito-core:2.23.0',
robolectric: 'org.robolectric:robolectric:3.8',
robolectric: 'org.robolectric:robolectric:4.12',
]
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
android.useAndroidX=true

GROUP=com.arcao
VERSION_NAME=3.2-SNAPSHOT

Expand Down
135 changes: 56 additions & 79 deletions gradle/gradle-mvn-push.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,101 +14,78 @@
* limitations under the License.
*/

apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'signing'

def isReleaseBuild() {
return VERSION_NAME.contains("SNAPSHOT") == false
}

def getRepositoryUsername() {
return hasProperty('SONATYPE_NEXUS_USERNAME') ? SONATYPE_NEXUS_USERNAME : ""
android {
publishing {
singleVariant("release") {
withSourcesJar()
withJavadocJar()
}
}
}

def getRepositoryPassword() {
return hasProperty('SONATYPE_NEXUS_PASSWORD') ? SONATYPE_NEXUS_PASSWORD : ""
def isReleaseBuild() {
return VERSION_NAME.contains("SNAPSHOT") == false
}

afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

pom.groupId = GROUP
pom.artifactId = POM_ARTIFACT_ID
pom.version = VERSION_NAME

repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
publishing {
publications {
release(MavenPublication) {
groupId = GROUP
artifactId = POM_ARTIFACT_ID
version = VERSION_NAME

pom {
name = POM_NAME
description = POM_DESCRIPTION
url = POM_URL

scm {
url = POM_SCM_URL
connection = POM_SCM_CONNECTION
developerConnection = POM_SCM_DEV_CONNECTION
}
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: getRepositoryUsername(), password: getRepositoryPassword())
}

pom.project {
name POM_NAME
packaging POM_PACKAGING
description POM_DESCRIPTION
url POM_URL

scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEV_CONNECTION
}

licenses {
license {
name POM_LICENCE_NAME
url POM_LICENCE_URL
distribution POM_LICENCE_DIST
}
licenses {
license {
name = POM_LICENCE_NAME
url = POM_LICENCE_URL
distribution = POM_LICENCE_DIST
}
}

developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
email POM_DEVELOPER_EMAIL
url POM_DEVELOPER_URL
}
developers {
developer {
id = POM_DEVELOPER_ID
name = POM_DEVELOPER_NAME
email = POM_DEVELOPER_EMAIL
url = POM_DEVELOPER_URL
}
}
}
}
}

signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}

task androidJavadocs(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))

if (JavaVersion.current().isJava8Compatible()) {
allprojects {
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
afterEvaluate {
from components.release
}
}
}

task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
classifier = 'javadoc'
from androidJavadocs.destinationDir
}

task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}

artifacts {
archives androidSourcesJar
archives androidJavadocsJar
repositories {
maven {
if (isReleaseBuild()) {
url = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
} else {
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
credentials {
username hasProperty('SONATYPE_NEXUS_USERNAME') ? SONATYPE_NEXUS_USERNAME : ""
password hasProperty('SONATYPE_NEXUS_PASSWORD') ? SONATYPE_NEXUS_PASSWORD : ""
}
}
}
}
signing {
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign publishing.publications.release
}
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-4.10.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
64 changes: 34 additions & 30 deletions slf4j-timber/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,45 +2,49 @@ apply plugin: 'com.android.library'
apply plugin: 'checkstyle'

task checkstyle(type: Checkstyle) {
configFile rootProject.file('checkstyle.xml')
source 'src/main/java'
ignoreFailures false
showViolations true
include '**/*.java'
configFile rootProject.file('checkstyle.xml')
source 'src/main/java'
ignoreFailures false
showViolations true
include '**/*.java'

classpath = files()
classpath = files()
}

afterEvaluate {
if (project.tasks.findByName('check')) {
check.dependsOn('checkstyle')
}
if (project.tasks.findByName('check')) {
check.dependsOn('checkstyle')
}
}

android {
compileSdkVersion rootProject.ext.compileSdkVersion

defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
consumerProguardFiles 'consumer-proguard-rules.pro'
}

lintOptions {
textReport true
textOutput 'stdout'
}
namespace = 'com.arcao.slf4j.timber'
compileSdkVersion = rootProject.ext.compileSdkVersion

defaultConfig {
aarMetadata {
minCompileSdk = rootProject.ext.minSdkVersion
}
minSdkVersion rootProject.ext.minSdkVersion
consumerProguardFiles 'consumer-proguard-rules.pro'
}

lintOptions {
textReport true
textOutput 'stdout'
}
}

dependencies {
compileOnly 'org.jetbrains:annotations:16.0.1'
implementation deps.slf4j
implementation deps.timber

testImplementation deps.festandroid
testImplementation deps.festassert
testImplementation deps.junit
testImplementation deps.robolectric
compileOnly 'org.jetbrains:annotations:16.0.1'

implementation deps.slf4j
implementation deps.timber

testImplementation deps.festandroid
testImplementation deps.festassert
testImplementation deps.junit
testImplementation deps.robolectric
}

apply from: rootProject.file('gradle/gradle-mvn-push.gradle')
apply from: rootProject.file('gradle/gradle-mvn-push.gradle')
3 changes: 0 additions & 3 deletions slf4j-timber/src/main/AndroidManifest.xml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.arcao.slf4j.timber;

import org.slf4j.ILoggerFactory;
import org.slf4j.IMarkerFactory;
import org.slf4j.helpers.BasicMarkerFactory;
import org.slf4j.helpers.NOPMDCAdapter;
import org.slf4j.spi.MDCAdapter;
import org.slf4j.spi.SLF4JServiceProvider;

/**
* The binding of {@link org.slf4j.LoggerFactory} class with an actual instance of
* {@link ILoggerFactory} is performed using information returned by this class.
*
* @author Martin Sloup <[email protected]>
*/
public class TimberLoggerServiceProvider implements SLF4JServiceProvider {
/**
* Declare the version of the SLF4J API this implementation is compiled against.
* The value of this field is modified with each major release.
*/
public static String REQUESTED_API_VERSION = "2.0.99".intern(); /* avoid constant folding by the compiler */

private final ILoggerFactory loggerFactory = new TimberLoggerFactory();
private final IMarkerFactory markerFactory = new BasicMarkerFactory();
private final MDCAdapter mdcAdapter = new NOPMDCAdapter();

@Override
public ILoggerFactory getLoggerFactory() {
return loggerFactory;
}

@Override
public IMarkerFactory getMarkerFactory() {
return markerFactory;
}

@Override
public MDCAdapter getMDCAdapter() {
return mdcAdapter;
}

@Override
public String getRequestedApiVersion() {
return REQUESTED_API_VERSION;
}

@Override
public void initialize() {

}
}
Loading