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

Better logging and separate reflect artifact #786

Merged
merged 124 commits into from
Apr 13, 2023
Merged
Show file tree
Hide file tree
Changes from 120 commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
a01905e
Bump version -> `2.0.0-SNAPSHOT.170`
alexander-yevsyukov Mar 13, 2023
91fcbc2
Add `logging` module
alexander-yevsyukov Mar 13, 2023
e5e4b6c
Push plugins down to modules
alexander-yevsyukov Mar 13, 2023
932a0ec
Update config
alexander-yevsyukov Mar 13, 2023
8f33a61
Merge remote-tracking branch 'origin/master' into better-logging
alexander-yevsyukov Mar 13, 2023
3595d82
Simplify Protobuf compile configuration
alexander-yevsyukov Mar 13, 2023
0289a23
Update build time
alexander-yevsyukov Mar 13, 2023
30bf840
Migrate to script plugins
alexander-yevsyukov Mar 13, 2023
e6aae1a
Update build time
alexander-yevsyukov Mar 13, 2023
c071538
Draft multi-platform `logging` module
alexander-yevsyukov Mar 14, 2023
5ae095f
Optimise imports
alexander-yevsyukov Mar 14, 2023
4c48b0c
Update dependencies
alexander-yevsyukov Mar 14, 2023
cfa280d
Optimise imports
alexander-yevsyukov Mar 14, 2023
0a204d9
Bump Protobuf -> `3.22.2`
alexander-yevsyukov Mar 14, 2023
9461ffd
Update version numbers
alexander-yevsyukov Mar 14, 2023
773f3b5
Consolidate `logging` module
alexander-yevsyukov Mar 14, 2023
e238051
Simplify dependencies
alexander-yevsyukov Mar 15, 2023
f90c54a
Do not create `mavenJava` publication if there is already `kotlinMult…
alexander-yevsyukov Mar 15, 2023
1779ccd
Bump version -> `2.0.0-SNAPSHOT.170`
alexander-yevsyukov Mar 15, 2023
6676329
Use `withSourcesJar()` and `withJavadocJar()` syntax
alexander-yevsyukov Mar 15, 2023
2af6add
Apply Javadoc configuration after `kotlin{}`
alexander-yevsyukov Mar 15, 2023
ef55135
Improve script plugin name
alexander-yevsyukov Mar 16, 2023
0736f30
Ignore artifact files
alexander-yevsyukov Mar 16, 2023
cfef3ac
Add new logging API
alexander-yevsyukov Mar 17, 2023
99a813a
Fix missing dependency
alexander-yevsyukov Mar 17, 2023
72a9d5b
Update build time
alexander-yevsyukov Mar 17, 2023
7468883
Use expect/actual arrangement for `LoggerFactory`
alexander-yevsyukov Mar 28, 2023
9e26180
Migrate to Kotest
alexander-yevsyukov Mar 28, 2023
2b14429
Update versions
alexander-yevsyukov Mar 28, 2023
1775e14
Remove redundant suppression
alexander-yevsyukov Mar 28, 2023
26d4702
Use actual `LoggerFactory`
alexander-yevsyukov Mar 28, 2023
34a3ebc
Draft module description
alexander-yevsyukov Mar 28, 2023
b06ec25
Update package description
alexander-yevsyukov Mar 28, 2023
b54667f
Use actual `LoggerFactory` for creating `FluentLogger` too
alexander-yevsyukov Mar 28, 2023
e1ef5ff
Update build time
alexander-yevsyukov Mar 28, 2023
07c26ce
Push `LoggerFactory` to the package level
alexander-yevsyukov Mar 28, 2023
c8d9ae2
Avoid unnecessary `if/else` branch
alexander-yevsyukov Mar 29, 2023
cc05901
Remove redundant parameter
alexander-yevsyukov Mar 29, 2023
41ac203
Add Javadoc JAR to publications
alexander-yevsyukov Mar 29, 2023
483cd62
Improve code layout
alexander-yevsyukov Mar 29, 2023
cbe6bee
Update build time
alexander-yevsyukov Mar 29, 2023
dd267ca
Make return types explicit
alexander-yevsyukov Mar 30, 2023
41619fe
Add project property to pub. handlers
alexander-yevsyukov Mar 30, 2023
5cb91e6
Make return types explicit
alexander-yevsyukov Mar 30, 2023
e2ad105
Consolidate DSL types
alexander-yevsyukov Mar 30, 2023
7516b9b
Make return type explicit
alexander-yevsyukov Mar 30, 2023
d095f9a
Simplify passing JAR flags
alexander-yevsyukov Mar 30, 2023
d502654
Simplify obtaining project extensions
alexander-yevsyukov Mar 30, 2023
f995bea
Simplify custom/standard publications
alexander-yevsyukov Mar 30, 2023
dff4704
Add diagnostics block
alexander-yevsyukov Mar 30, 2023
415e00a
Improve function parameter name
alexander-yevsyukov Mar 30, 2023
0efcaa1
Improve KDoc wording
alexander-yevsyukov Mar 31, 2023
5112cc2
Use import alias
alexander-yevsyukov Mar 31, 2023
22cf339
Consolidate Kotlin extensions related to publishing
alexander-yevsyukov Apr 3, 2023
73e8d04
Optimise imports
alexander-yevsyukov Apr 3, 2023
14beefb
Fix publishing JVM artefacts in KMM
alexander-yevsyukov Apr 3, 2023
de01aae
Update build time
alexander-yevsyukov Apr 3, 2023
e35a89b
Suppress false positive detekt warning
alexander-yevsyukov Apr 3, 2023
7bd8bc9
Add documentation
alexander-yevsyukov Apr 4, 2023
c0efc40
Add Javadoc JAR to artifacts
alexander-yevsyukov Apr 4, 2023
1765a75
Extract configuring `JacocoReport` into a script plugin
alexander-yevsyukov Apr 4, 2023
b085807
Update build time
alexander-yevsyukov Apr 4, 2023
692e91d
Fix private property name
alexander-yevsyukov Apr 4, 2023
d931bab
Accept both Kotlin and Java files in Dokka for Java mode
alexander-yevsyukov Apr 4, 2023
456135c
Fix content of `sourceJar`
alexander-yevsyukov Apr 4, 2023
8141baa
Update build time
alexander-yevsyukov Apr 4, 2023
0df1527
Exclude descriptor files and the descriptor reference
alexander-yevsyukov Apr 4, 2023
fd05d1b
Fix doc publishing for `logging` module
alexander-yevsyukov Apr 5, 2023
53f2041
Add `NoOp` logging API
alexander-yevsyukov Apr 5, 2023
81666f4
Introduce `LoggingDomain`
alexander-yevsyukov Apr 7, 2023
fd966c5
Add KDoc
alexander-yevsyukov Apr 7, 2023
42077fb
Improve work with generics in API
alexander-yevsyukov Apr 7, 2023
6c9cf66
Simplify access to `logger`
alexander-yevsyukov Apr 7, 2023
78de81a
Update build time
alexander-yevsyukov Apr 7, 2023
354cca0
Add documentation
alexander-yevsyukov Apr 7, 2023
f452b31
Improve formatting
alexander-yevsyukov Apr 7, 2023
fb19d57
Add documentation
alexander-yevsyukov Apr 7, 2023
fe202f8
Turn `LoggingDomain` into an annotation
alexander-yevsyukov Apr 8, 2023
b0d1f72
Find annotations for nested classes and via packages
alexander-yevsyukov Apr 10, 2023
6c4abc2
Remove redundant method
alexander-yevsyukov Apr 10, 2023
abdf92a
Update build time
alexander-yevsyukov Apr 10, 2023
1c38eca
Improve non-nullability flow
alexander-yevsyukov Apr 11, 2023
db732d8
Improve wording of `testlib` readme file
alexander-yevsyukov Apr 11, 2023
2bc619e
Extract `reflect` module
alexander-yevsyukov Apr 11, 2023
b443830
Extract `reflect` module
alexander-yevsyukov Apr 11, 2023
0351c4b
Optimise imports
alexander-yevsyukov Apr 11, 2023
f1f44e9
Rename .java to .kt
alexander-yevsyukov Apr 11, 2023
f74e362
Convert tests to Kotlin
alexander-yevsyukov Apr 11, 2023
2d58d6e
Update build time
alexander-yevsyukov Apr 11, 2023
688bbc9
Improve method name
alexander-yevsyukov Apr 11, 2023
755a9bf
Improve code layout
alexander-yevsyukov Apr 11, 2023
93766b2
Improve code layout
alexander-yevsyukov Apr 11, 2023
8309c3f
Cache annotated packages
alexander-yevsyukov Apr 11, 2023
dcb472f
Update build time
alexander-yevsyukov Apr 11, 2023
c86a1ba
Simplify function
alexander-yevsyukov Apr 11, 2023
a08b5ce
Migrate to plain JVM module
alexander-yevsyukov Apr 12, 2023
7a05f9f
Reduce dependency on `reflect`
alexander-yevsyukov Apr 12, 2023
87b704e
Consolidate tests of `Logging`
alexander-yevsyukov Apr 12, 2023
b9910c9
Remove extra trail line
alexander-yevsyukov Apr 12, 2023
7222dc6
Remove extra space
alexander-yevsyukov Apr 12, 2023
c45aa30
Document build settings object
alexander-yevsyukov Apr 12, 2023
be703b0
Fix KDoc layout
alexander-yevsyukov Apr 12, 2023
c302591
Return static imports
alexander-yevsyukov Apr 12, 2023
8022104
Add nullability and return value usage annotations
alexander-yevsyukov Apr 12, 2023
5f9744c
Restore static imports
alexander-yevsyukov Apr 12, 2023
0734267
Optimise imports
alexander-yevsyukov Apr 12, 2023
9b0b4a6
Restore static imports
alexander-yevsyukov Apr 12, 2023
1dc525e
Restore static imports
alexander-yevsyukov Apr 12, 2023
f35b28a
Improve wording of readme
alexander-yevsyukov Apr 12, 2023
863b287
Update build time
alexander-yevsyukov Apr 12, 2023
1d4b24c
Clarify delegation for standard pub. handler
alexander-yevsyukov Apr 13, 2023
1694888
Remove redundant file
alexander-yevsyukov Apr 13, 2023
7f99db7
Correct doc typo
alexander-yevsyukov Apr 13, 2023
1f3685c
Fix display message typo
alexander-yevsyukov Apr 13, 2023
a7ab204
Improve script plugin names and usage
alexander-yevsyukov Apr 13, 2023
d68b53e
Fix display name typo
alexander-yevsyukov Apr 13, 2023
86a8674
Improve script plugin usage
alexander-yevsyukov Apr 13, 2023
d0ca56c
Restore static imports
alexander-yevsyukov Apr 13, 2023
3acb356
Optimise imports
alexander-yevsyukov Apr 13, 2023
1feeac1
Address documentation comments
alexander-yevsyukov Apr 13, 2023
3e2050d
Use static import
alexander-yevsyukov Apr 13, 2023
1b12117
Remove redundant empty line
alexander-yevsyukov Apr 13, 2023
cc45ba2
Restore static imports
alexander-yevsyukov Apr 13, 2023
66014c1
Restore static imports
alexander-yevsyukov Apr 13, 2023
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
4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# IntelliJ IDEA modules and interim config files.
*.iml
.idea/artifacts/**
**/.idea/libraries
**/.idea/shelf
**/.idea/*.xml
Expand Down Expand Up @@ -38,9 +39,6 @@ gradle-app.setting
# Spine internal directory for storing intermediate artifacts
**/.spine/**

# Spine model compiler auto-generated resources
/tools/model-compiler/src/main/resources/spine-protoc.gradle

# Prevent accidental adding of credential files
credentials.tar
credentials.properties
Expand Down
26 changes: 10 additions & 16 deletions base/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,23 +24,25 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

import com.google.protobuf.gradle.protobuf
import io.spine.internal.dependency.AutoService
import io.spine.internal.dependency.Kotlin
import io.spine.internal.dependency.Protobuf
import io.spine.internal.gradle.protobuf.setup
import io.spine.internal.gradle.publish.IncrementGuard
import io.spine.internal.gradle.publish.excludeGoogleProtoFromArtifacts

plugins {
`detekt-code-analysis`
`java-module`
`compile-protobuf`
`kotlin-jvm-module`
}

apply {
plugin<IncrementGuard>()
}
apply<IncrementGuard>()

dependencies {
annotationProcessor(AutoService.processor)
compileOnly(AutoService.annotations)

implementation(project(":logging"))

/* Have `protobuf` dependency instead of `api` or `implementation` so that proto
files from the library are included into the compilation. We need this because we
build our descriptor set files using those standard proto files too.
Expand All @@ -51,16 +53,8 @@ dependencies {
Protobuf.libs.forEach {
protobuf(it)
}
annotationProcessor(AutoService.processor)
compileOnly(AutoService.annotations)
implementation(Kotlin.reflect)
testImplementation(project(":testlib"))
}

protobuf {
generateProtoTasks.all().configureEach {
setup()
}
testImplementation(project(":testlib"))
}

tasks {
Expand Down
91 changes: 0 additions & 91 deletions base/src/main/java/io/spine/logging/FloggerClassValue.java

This file was deleted.

12 changes: 10 additions & 2 deletions base/src/main/java/io/spine/string/StringifierRegistry.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@

import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Maps.newHashMap;
import static io.spine.reflect.Types.isEnumClass;
import static io.spine.reflect.Types.isMessageClass;
import static io.spine.protobuf.Messages.isMessageClass;
import static io.spine.string.Stringifiers.forBoolean;
import static io.spine.string.Stringifiers.forDuration;
import static io.spine.string.Stringifiers.forInteger;
Expand Down Expand Up @@ -200,4 +199,13 @@ private static Class<?> getDataClass(Class<? extends Stringifier> stringifierCla
var typeArgument = typeArguments[0];
return (Class<?>) typeArgument;
}

private static boolean isEnumClass(Type type) {
if (type instanceof Class) {
var cls = (Class<?>) type;
var isEnum = cls.isEnum();
return isEnum;
}
return false;
}
}
12 changes: 12 additions & 0 deletions base/src/main/kotlin/io/spine/protobuf/MessageExts.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import com.google.common.util.concurrent.UncheckedExecutionException
import com.google.protobuf.Any
import com.google.protobuf.Message
import io.spine.annotation.Internal
import java.lang.reflect.Type

/**
* Obtains the default instance of the passed message class.
Expand Down Expand Up @@ -107,3 +108,14 @@ public fun Message.isDefault(): Boolean = (defaultInstanceForType == this)
* @return `true` if the message is not in the default state, `false` otherwise.
*/
public fun Message.isNotDefault(): Boolean = !isDefault()

/**
* Tells if this type is class of [Message].
*/
public fun Type.isMessageClass(): Boolean {
return if (this is Class<*>) {
Message::class.java.isAssignableFrom(this)
} else {
false
}
}
127 changes: 0 additions & 127 deletions base/src/test/java/io/spine/logging/LoggingTest.java

This file was deleted.

Loading