Skip to content

Commit d0eea93

Browse files
authored
feat: new repository and LocalDateTime parsing (#23)
* Feat/local date time (#19) * feat: add local date time * feat: add test case * feat: add publish on groupez (#20) * feat: add target folder (#21) * Fix/publish (#22) * feat: add target folder * feat: update readme * fix publish * fix: remove sha version replacement * feat: test without version * feat: reproduce another lib to try * fix: order in methods * feat: version * Add publishConfig for GitHub package publishing
1 parent 2e06074 commit d0eea93

File tree

10 files changed

+83
-13
lines changed

10 files changed

+83
-13
lines changed

.github/workflows/build.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Build Action
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
types: [ opened, synchronize, reopened ]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
packages: write
13+
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
18+
jobs:
19+
build:
20+
name: Build and Publish Structura
21+
uses: GroupeZ-dev/actions/.github/workflows/build.yml@main
22+
with:
23+
project-name: "Structura"
24+
publish: true
25+
publish-on-discord: false
26+
project-to-publish: "publish"
27+
secrets:
28+
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
29+
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
30+
WEBHOOK_URL: ""

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ build/
55
!**/src/main/**/build/
66
!**/src/test/**/build/
77
CLAUDE.md
8+
target/
89

910
### IntelliJ IDEA ###
1011
.idea/modules.xml

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ Add Structura to your project:
2525

2626
```gradle
2727
repository {
28-
maven { url = "https://jitpack.io" } // JitPack repository for Structura
28+
maven { url = "https://repo.groupez.dev/releases" } // Add Structura repository replace releases with snapshots if needed
2929
}
3030
3131
dependencies {
32-
implementation("com.github.Traqueur-dev:Structura:<VERSION>") // Replace <VERSION> with the latest release
32+
implementation("fr.traqueur:structura:<VERSION>") // Replace <VERSION> with the latest release
3333
implementation("org.yaml:snakeyaml:2.4") // Required for YAML parsing
3434
}
3535
```

build.gradle.kts

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,20 @@ import java.util.*
22

33
plugins {
44
id("java-library")
5-
id("maven-publish")
5+
id("re.alwyn974.groupez.publish") version "1.0.0"
6+
id("com.gradleup.shadow") version "9.0.0-beta11"
67
}
78

89
group = "fr.traqueur"
9-
version = property("version")!!
10+
version = property("version") as String
11+
12+
extra.set("targetFolder", file("target/"))
13+
extra.set("classifier", System.getProperty("archive.classifier"))
14+
extra.set("sha", System.getProperty("github.sha"))
15+
16+
rootProject.extra.properties["sha"]?.let { sha ->
17+
version = sha
18+
}
1019

1120
repositories {
1221
mavenCentral()
@@ -56,6 +65,15 @@ tasks.register("generateVersionProperties") {
5665
}
5766
}
5867

68+
tasks.build {
69+
dependsOn(tasks.shadowJar)
70+
}
71+
72+
tasks.shadowJar {
73+
archiveClassifier.set("")
74+
destinationDirectory.set(rootProject.extra["targetFolder"] as File)
75+
}
76+
5977
tasks.processResources {
6078
dependsOn("generateVersionProperties")
6179
}
@@ -65,10 +83,7 @@ java {
6583
withJavadocJar()
6684
}
6785

68-
publishing {
69-
publications {
70-
create<MavenPublication>("maven") {
71-
from(components["java"])
72-
}
73-
}
86+
publishConfig {
87+
githubOwner = "Traqueur-dev"
88+
useRootProjectName = true
7489
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=1.5.0
1+
version=1.6.0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Tue Mar 25 10:59:06 CET 2025
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

settings.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
11
rootProject.name = "Structura"
2+
3+
pluginManagement {
4+
repositories {
5+
maven {
6+
name = "groupezReleases"
7+
url = uri("https://repo.groupez.dev/releases")
8+
}
9+
gradlePluginPortal()
10+
}
11+
}

src/main/java/fr/traqueur/structura/conversion/ValueConverter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.lang.reflect.ParameterizedType;
1111
import java.lang.reflect.Type;
1212
import java.time.LocalDate;
13+
import java.time.LocalDateTime;
1314
import java.time.format.DateTimeFormatter;
1415
import java.util.*;
1516
import java.util.stream.Collectors;
@@ -21,6 +22,7 @@
2122
public class ValueConverter {
2223

2324
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE;
25+
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
2426

2527
private final RecordInstanceFactory recordFactory;
2628

@@ -277,6 +279,10 @@ private Object convertPrimitive(Object value, Class<?> targetType, String prefix
277279
return LocalDate.parse(value.toString(), DATE_FORMATTER);
278280
}
279281

282+
if(targetType == LocalDateTime.class) {
283+
return LocalDateTime.parse(value.toString(), DATE_TIME_FORMATTER);
284+
}
285+
280286
if (targetType == int.class || targetType == Integer.class) {
281287
return value instanceof Number n ? n.intValue() : Integer.parseInt(value.toString());
282288
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=1.5.0
1+
version=1.6.0

src/test/java/fr/traqueur/structura/conversion/ValueConverterTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
import java.lang.reflect.ParameterizedType;
1111
import java.lang.reflect.Type;
12+
import java.time.LocalDateTime;
1213
import java.util.Collection;
1314
import java.util.List;
1415
import java.util.Map;
@@ -108,6 +109,13 @@ void shouldHandleLocalDateConversion() {
108109
var localDate = java.time.LocalDate.of(2023, 10, 5);
109110
assertEquals(localDate, valueConverter.convert("2023-10-05", java.time.LocalDate.class, "test"));
110111
}
112+
113+
@Test
114+
@DisplayName("Should handle LocalDateTime conversion from string")
115+
void shouldHandleLocalDateTimeConversion() {
116+
var localDate = LocalDateTime.of(2023, 10, 5, 14, 30, 0);
117+
assertEquals(localDate, valueConverter.convert("2023-10-05T14:30:00", LocalDateTime.class, "test"));
118+
}
111119
}
112120

113121
@Nested

0 commit comments

Comments
 (0)