Skip to content

Commit cb6817f

Browse files
authored
Prepare v2.0.0 release on Maven Central (#11)
* Bumped dependencies - moved to version catalogue * Deployment works * Renamed `uk.co.alt236.*` packages to `dev.alt236.*` * bump version to 2.0.0
1 parent 00b3fc3 commit cb6817f

127 files changed

Lines changed: 1557 additions & 1348 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[*.{kt,kts}]
2+
ktlint_standard_no-wildcard-imports = disabled
3+
ktlint_standard_value-argument-comment = disabled
4+
ktlint_standard_value-parameter-comment = disabled

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,4 @@ gradle-app.setting
182182

183183
# End of https://www.toptal.com/developers/gitignore/api/gradle,kotlin,java,intellij
184184
/local.properties
185+
/.kotlin/

.idea/.gitignore

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LICENSE-2.0.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@
3131
<link href="/css/min.bootstrap.css" rel="stylesheet">
3232
<link href="/css/styles.css" rel="stylesheet">
3333
<style>
34-
.headerlink {
35-
visibility: hidden;
36-
}
37-
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
38-
visibility: visible
39-
}
34+
.headerlink {
35+
visibility: hidden;
36+
}
37+
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
38+
visibility: visible
39+
}
4040

4141
</style>
4242

README.md

Lines changed: 8 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -61,28 +61,14 @@ README.
6161

6262
### Adding the dependency:
6363

64-
To add this library as a dependency you need to:
65-
66-
* Add the github package repo in your `build.gradle`:
67-
68-
```groovy
69-
repositories {
70-
maven {
71-
url = "https://maven.pkg.github.com/alt236/codeplasterage"
72-
}
73-
}
74-
```
75-
76-
* Add the dependency itself:
64+
This library is hosted on Maven Central so just add it:
7765

7866
```groovy
7967
dependencies {
80-
testImplementation 'uk.co.alt236:codeplasterage:{latest-version}'
68+
testImplementation 'dev.alt236:codeplasterage:{latest-version}'
8169
}
8270
```
8371

84-
You can find the latest version here: https://github.com/alt236/codeplasterage/packages/
85-
8672
## Configuration
8773

8874
Tests can be configured on both class and method level via the `@Config` annotation.
@@ -107,12 +93,12 @@ There are two parts in the config, the inclusion/exclusion filters and general c
10793

10894
There are four different filters you can use to target (and exclude classes). They can be all be used at the same time.
10995

110-
| Field Name | Priority | Input | Example |
111-
|----------------------------|------------|--------------------------------------|--------------------------------------------|
112-
| `forceIncludeClassNames` | 1, Highest | Array of fully qualified class names | `uk.co.alt236.codeplasteragetestapp.FOO$1` |
113-
| `forceExcludeClassNames` | 2 | Array of fully qualified class names | `uk.co.alt236.codeplasteragetestapp.FOO$1` |
114-
| `excludeClassNamePatterns` | 3 | Array of RegEx Pattern | `.*codeplasteragetestapp.*` |
115-
| `includeClassNamePatterns` | 4, Lowest | Array of RegEx Pattern | `.*codeplasteragetestapp.*` |
96+
| Field Name | Priority | Input | Example |
97+
|----------------------------|------------|--------------------------------------|-----------------------------------------|
98+
| `forceIncludeClassNames` | 1, Highest | Array of fully qualified class names | `dev.alt236codeplasteragetestapp.FOO$1` |
99+
| `forceExcludeClassNames` | 2 | Array of fully qualified class names | `dev.alt236codeplasteragetestapp.FOO$1` |
100+
| `excludeClassNamePatterns` | 3 | Array of RegEx Pattern | `.*codeplasteragetestapp.*` |
101+
| `includeClassNamePatterns` | 4, Lowest | Array of RegEx Pattern | `.*codeplasteragetestapp.*` |
116102

117103
Note 1: It is always better to add the patterns for your own code in `includeClassNamePatterns` instead of just running
118104
everything. Otherwise, any 3rd party libraries included in your project will be instantiated and many of them do no not

build.gradle

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
plugins {
22
id 'java'
3-
id "org.jetbrains.kotlin.jvm" version "${kotlin_version}"
4-
id "org.jlleitschuh.gradle.ktlint" version "${jlleitschuh_ktlint_version}"
5-
id 'com.adarshr.test-logger' version "${test_logger_version}"
6-
id 'org.jetbrains.kotlinx.kover' version "${kover_version}"
3+
alias(libs.plugins.kotlin.jvm) apply false
4+
alias(libs.plugins.kotlin.kapt) apply false
5+
alias(libs.plugins.gradle.ktlint)
6+
alias(libs.plugins.testlogger)
7+
alias(libs.plugins.kover)
78
}
89

910
apply from: "$rootDir/buildsystem/kover.gradle"
1011
apply from: "$rootDir/buildsystem/printcoverage.gradle"
1112

12-
group = "uk.co.alt236.codeplasterage"
13-
version = "1.0-SNAPSHOT"
13+
group = "dev.alt236"
14+
version = "0.0.1-SNAPSHOT"
1415

1516
repositories {
1617
mavenCentral()
@@ -28,4 +29,7 @@ subprojects {
2829
showStandardStreams true
2930
}
3031

32+
ktlint {
33+
version.set("1.4.1")
34+
}
3135
}

codeplasterage/build.gradle

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,87 @@
1+
import com.vanniktech.maven.publish.SonatypeHost
2+
13
plugins {
2-
id 'java'
3-
id 'kotlin'
4-
id 'maven-publish'
4+
id 'java-library'
5+
alias(libs.plugins.kotlin.jvm)
6+
alias(libs.plugins.kotlin.kapt)
7+
alias(libs.plugins.vanniktech.maven.publish)
58
}
69

710
def project_name = "Code Plasterage"
811
def github_owner_and_repo = "alt236/codeplasterage"
9-
def group_id = 'uk.co.alt236'
12+
def group_id = 'dev.alt236'
1013
def artifact_id = 'codeplasterage'
11-
def artifact_version = '1.1-SNAPSHOT'
14+
def artifact_version = '2.0.0'
1215

1316
group group_id
1417
version artifact_version
1518

1619
repositories {
1720
mavenCentral()
21+
gradlePluginPortal()
1822
}
1923

20-
publishing {
21-
publications {
22-
mavenJava(MavenPublication) {
23-
artifactId = artifact_id
24-
groupId = group_id
25-
version = artifact_version
24+
dependencies {
25+
implementation libs.commons.lang3
26+
implementation libs.kotlin.reflect
27+
implementation libs.guava
28+
implementation libs.kotlin.reflect
29+
implementation libs.junit4
30+
31+
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
32+
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.1'
33+
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
34+
}
35+
36+
test {
37+
useJUnitPlatform()
38+
}
39+
40+
ktlint {
41+
disabledRules = ["no-wildcard-imports"]
42+
}
2643

27-
from components.java
44+
mavenPublishing { // This is for the 'vanniktech-maven-publish' plugin
45+
var automaticRelease = false
46+
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease)
47+
signAllPublications()
2848

29-
pom {
30-
name = project_name
31-
description = 'A library to artificially inflate code coverage stats via reflection'
32-
url = "https://github.com/$github_owner_and_repo"
33-
licenses {
34-
license {
35-
name = 'The Apache License, Version 2.0'
36-
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
37-
}
38-
}
39-
developers {
40-
developer {
41-
id = 'alt236'
42-
name = 'Alexandros Schillings'
43-
}
44-
}
45-
scm {
46-
url = "https://github.com/$github_owner_and_repo"
47-
}
49+
coordinates(group_id, artifact_id, artifact_version)
50+
pom {
51+
name = project_name
52+
description = 'A library to artificially inflate code coverage stats via reflection'
53+
url = "https://github.com/$github_owner_and_repo"
54+
licenses {
55+
license {
56+
name = 'The Apache License, Version 2.0'
57+
url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
58+
distribution = "http://www.apache.org/licenses/LICENSE-2.0.txt"
4859
}
4960
}
50-
}
51-
repositories {
52-
maven {
53-
name = project_name.replace(" ", "")
54-
url = uri("https://maven.pkg.github.com/$github_owner_and_repo")
55-
credentials {
56-
username = project.findProperty("gpr.user")
57-
?: project.findProperty("GITHUB_ALT236_PUBLISH_USERNAME")
58-
?: System.getenv("GITHUB_ALT236_PUBLISH_USERNAME")
59-
password = project.findProperty("gpr.key")
60-
?: project.findProperty("GITHUB_ALT236_PUBLISH_KEY")
61-
?: System.getenv("GITHUB_ALT236_PUBLISH_KEY")
61+
developers {
62+
developer {
63+
id = 'alt236'
64+
name = 'Alexandros Schillings'
65+
url = "https://github.com/alt236/"
6266
}
6367
}
68+
scm {
69+
url = "https://github.com/$github_owner_and_repo"
70+
}
6471
}
6572
}
6673

67-
dependencies {
68-
implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"
69-
implementation 'org.apache.commons:commons-lang3:3.12.0'
70-
implementation "com.google.guava:guava:31.1-jre"
71-
implementation "junit:junit:4.13.2"
72-
73-
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
74-
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.1'
75-
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
76-
}
74+
// Fix for dependency order issue: https://github.com/vanniktech/gradle-maven-publish-plugin/issues/814
75+
afterEvaluate {
76+
var sigDependentTasks = [
77+
"publishMavenPublicationToMavenCentralRepository",
78+
]
7779

78-
test {
79-
useJUnitPlatform()
80+
for (taskName in sigDependentTasks) {
81+
tasks.named(taskName) {
82+
println("Found: " + it.name)
83+
dependsOn("signMavenPublication")
84+
}
85+
}
8086
}
8187

codeplasterage/src/main/java/uk/co/alt236/codeplasterage/CodeplasterageTestRunner.kt renamed to codeplasterage/src/main/java/dev/alt236/codeplasterage/CodeplasterageTestRunner.kt

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
1-
package uk.co.alt236.codeplasterage
2-
1+
package dev.alt236.codeplasterage
2+
3+
import dev.alt236.codeplasterage.config.ConfigFactory
4+
import dev.alt236.codeplasterage.config.TesterConfig
5+
import dev.alt236.codeplasterage.datafactory.CustomDataFactoryFactory
6+
import dev.alt236.codeplasterage.datafactory.DummyDataFactory
7+
import dev.alt236.codeplasterage.datafactory.stats.DataFactoryRequestRecorder
8+
import dev.alt236.codeplasterage.datafactory.stats.DataFactoryStatsPrinter
9+
import dev.alt236.codeplasterage.reflection.classfinder.ClassFinder
10+
import dev.alt236.codeplasterage.reflection.instantiation.Instantiator
11+
import dev.alt236.codeplasterage.testers.reflection.EqualsTester
12+
import dev.alt236.codeplasterage.testers.reflection.HashCodeTester
13+
import dev.alt236.codeplasterage.testers.reflection.MethodCallingTester
14+
import dev.alt236.codeplasterage.testers.reflection.ToStringTester
315
import org.junit.Ignore
416
import org.junit.Test
517
import org.junit.runner.Description
618
import org.junit.runner.Runner
719
import org.junit.runner.notification.Failure
820
import org.junit.runner.notification.RunNotifier
9-
import uk.co.alt236.codeplasterage.config.ConfigFactory
10-
import uk.co.alt236.codeplasterage.config.TesterConfig
11-
import uk.co.alt236.codeplasterage.datafactory.CustomDataFactoryFactory
12-
import uk.co.alt236.codeplasterage.datafactory.DummyDataFactory
13-
import uk.co.alt236.codeplasterage.datafactory.stats.DataFactoryRequestRecorder
14-
import uk.co.alt236.codeplasterage.datafactory.stats.DataFactoryStatsPrinter
15-
import uk.co.alt236.codeplasterage.reflection.classfinder.ClassFinder
16-
import uk.co.alt236.codeplasterage.reflection.instantiation.Instantiator
17-
import uk.co.alt236.codeplasterage.testers.reflection.EqualsTester
18-
import uk.co.alt236.codeplasterage.testers.reflection.HashCodeTester
19-
import uk.co.alt236.codeplasterage.testers.reflection.MethodCallingTester
20-
import uk.co.alt236.codeplasterage.testers.reflection.ToStringTester
2121
import java.lang.reflect.Method
2222

23-
class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
23+
class CodeplasterageTestRunner(
24+
private val testClass: Class<Any>,
25+
) : Runner() {
2426
private val dataFactoryStatsPrinter = DataFactoryStatsPrinter()
2527
private val configFactory = ConfigFactory()
2628

27-
override fun getDescription(): Description {
28-
return Description.createTestDescription(testClass, "***** Code Plasterage Test Runner *****")
29-
}
29+
override fun getDescription(): Description = Description.createTestDescription(testClass, "***** Code Plasterage Test Runner *****")
3030

3131
override fun run(notifier: RunNotifier) {
3232
println("${CodeplasterageTestRunner::class.java.simpleName}: Running tests on $testClass")
@@ -85,7 +85,7 @@ class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
8585

8686
private fun createAssembleDummyDataFactory(
8787
config: TesterConfig,
88-
requestRecorded: DataFactoryRequestRecorder
88+
requestRecorded: DataFactoryRequestRecorder,
8989
): DummyDataFactory {
9090
val extraFactoriesFactory = CustomDataFactoryFactory(config.debug)
9191
val extraFactories = extraFactoriesFactory.createSubDataFactories(config.customDummyDataFactories)
@@ -96,7 +96,7 @@ class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
9696
dummyDataFactory: DummyDataFactory,
9797
config: TesterConfig,
9898
notifier: RunNotifier,
99-
method: Method
99+
method: Method,
100100
) {
101101
val instantiator = Instantiator(dummyDataFactory, config.debug)
102102

@@ -111,7 +111,7 @@ class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
111111
dummyDataFactory: DummyDataFactory,
112112
config: TesterConfig,
113113
notifier: RunNotifier,
114-
method: Method
114+
method: Method,
115115
) {
116116
val instantiator = Instantiator(dummyDataFactory, config.debug)
117117

@@ -126,7 +126,7 @@ class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
126126
dummyDataFactory: DummyDataFactory,
127127
config: TesterConfig,
128128
notifier: RunNotifier,
129-
method: Method
129+
method: Method,
130130
) {
131131
val instantiator = Instantiator(dummyDataFactory, config.debug)
132132

@@ -141,7 +141,7 @@ class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
141141
dummyDataFactory: DummyDataFactory,
142142
config: TesterConfig,
143143
notifier: RunNotifier,
144-
method: Method
144+
method: Method,
145145
) {
146146
val instantiator = Instantiator(dummyDataFactory, config.debug)
147147

@@ -152,7 +152,11 @@ class CodeplasterageTestRunner(private val testClass: Class<Any>) : Runner() {
152152
tester.test(classes, notifier, method)
153153
}
154154

155-
private fun runTest(notifier: RunNotifier, classInstance: Any, method: Method) {
155+
private fun runTest(
156+
notifier: RunNotifier,
157+
classInstance: Any,
158+
method: Method,
159+
) {
156160
val description = Description.createTestDescription(testClass, method.name)
157161

158162
notifier.fireTestStarted(description)

codeplasterage/src/main/java/uk/co/alt236/codeplasterage/Consts.kt renamed to codeplasterage/src/main/java/dev/alt236/codeplasterage/Consts.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package uk.co.alt236.codeplasterage
1+
package dev.alt236.codeplasterage
22

33
internal object Consts {
44
val ROOT_PACKAGE: String = Consts::class.java.`package`.name

codeplasterage/src/main/java/uk/co/alt236/codeplasterage/config/Config.kt renamed to codeplasterage/src/main/java/dev/alt236/codeplasterage/config/Config.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
@file:Suppress("unused")
22

3-
package uk.co.alt236.codeplasterage.config
3+
package dev.alt236.codeplasterage.config
44

5-
import uk.co.alt236.codeplasterage.config.DefaultConfigValues.DEBUG
6-
import uk.co.alt236.codeplasterage.config.DefaultConfigValues.IGNORE_ERRORS
7-
import uk.co.alt236.codeplasterage.datafactory.SubDataFactory
5+
import dev.alt236.codeplasterage.config.DefaultConfigValues.DEBUG
6+
import dev.alt236.codeplasterage.config.DefaultConfigValues.IGNORE_ERRORS
7+
import dev.alt236.codeplasterage.datafactory.SubDataFactory
88
import kotlin.reflect.KClass
99

1010
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
@@ -15,7 +15,7 @@ annotation class Config(
1515
val forceExcludeClassNames: Array<String> = [],
1616
val customDummyDataFactories: Array<KClass<out SubDataFactory>> = [],
1717
val ignoreErrors: Boolean = IGNORE_ERRORS,
18-
val debug: Boolean = DEBUG
18+
val debug: Boolean = DEBUG,
1919
)
2020

2121
internal object DefaultConfigValues {

0 commit comments

Comments
 (0)