Skip to content

Commit 438feef

Browse files
committed
feat: bundle native-image metadata
1 parent b136fb9 commit 438feef

File tree

4 files changed

+180
-4
lines changed

4 files changed

+180
-4
lines changed

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# PostHog Java Client
22

33
[![license](https://img.shields.io/github/license/hollow-cube/posthog-java.svg)](LICENSE)
4+
![native image supported](https://img.shields.io/badge/native--image-supported-blue)
45

56
## Features
67

@@ -158,8 +159,8 @@ done using `identify`, the following is equivalent.
158159
```java
159160
public void sample() {
160161
PostHog.identify("distinct_id",
161-
Map.of("name", "Max Hedgehog"), // $set
162-
Map.of("initial_url", "/blog") // $set_once
162+
Map.of("name", "Max Hedgehog"), // $set
163+
Map.of("initial_url", "/blog") // $set_once
163164
);
164165
}
165166
```

build.gradle.kts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
`java-library`
3+
alias(libs.plugins.nativeimage)
34

45
`maven-publish`
56
signing
@@ -27,13 +28,31 @@ java {
2728
withSourcesJar()
2829
withJavadocJar()
2930

30-
toolchain.languageVersion = JavaLanguageVersion.of(21)
31+
toolchain {
32+
languageVersion = JavaLanguageVersion.of(21)
33+
nativeImageCapable = true
34+
}
3135
}
3236

3337
tasks.test {
3438
useJUnitPlatform()
3539
}
3640

41+
graalvmNative {
42+
binaries {
43+
named("test") {
44+
buildArgs.addAll("--verbose", "-O0")
45+
}
46+
}
47+
48+
agent {
49+
enabled = true
50+
51+
defaultMode = "standard"
52+
trackReflectionMetadata = true
53+
}
54+
}
55+
3756
nmcpAggregation {
3857
centralPortal {
3958
username = System.getenv("SONATYPE_USERNAME")

gradle/libs.versions.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ slf4j = "2.0.16"
66
gson = "2.12.1"
77
junit = "5.10.0"
88

9+
nativeimage = "0.10.6"
910
nmcp = "1.0.0-rc.1"
1011

1112
[libraries]
@@ -16,4 +17,5 @@ gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
1617
junit = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit" }
1718

1819
[plugins]
19-
nmcp-aggregation = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }
20+
nativeimage = { id = "org.graalvm.buildtools.native", version.ref = "nativeimage" }
21+
nmcp-aggregation = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
[
2+
{
3+
"name": "net.hollowcube.posthog.FeatureFlagsResponse",
4+
"allDeclaredFields": true,
5+
"methods": [
6+
{
7+
"name": "<init>",
8+
"parameterTypes": ["java.util.List", "java.util.Map", "java.util.Map"]
9+
}, {
10+
"name": "cohorts",
11+
"parameterTypes": []
12+
}, {
13+
"name": "flags",
14+
"parameterTypes": []
15+
}, {
16+
"name": "groupTypeMapping",
17+
"parameterTypes": []
18+
}
19+
]
20+
},
21+
{
22+
"name": "net.hollowcube.posthog.FeatureFlagsResponse$Condition",
23+
"allDeclaredFields": true,
24+
"methods": [
25+
{
26+
"name": "<init>",
27+
"parameterTypes": ["java.util.List", "java.lang.Integer", "java.lang.String"]
28+
}, {
29+
"name": "properties",
30+
"parameterTypes": []
31+
}, {
32+
"name": "rolloutPercentage",
33+
"parameterTypes": []
34+
}, {
35+
"name": "variant",
36+
"parameterTypes": []
37+
}
38+
]
39+
},
40+
{
41+
"name": "net.hollowcube.posthog.FeatureFlagsResponse$Filters",
42+
"allDeclaredFields": true,
43+
"methods": [
44+
{
45+
"name": "<init>",
46+
"parameterTypes": [
47+
"java.lang.Integer", "java.util.List", "net.hollowcube.posthog.FeatureFlagsResponse$Variants", "java.util.Map"
48+
]
49+
}, {
50+
"name": "aggregationGroupTypeIndex",
51+
"parameterTypes": []
52+
}, {
53+
"name": "groups",
54+
"parameterTypes": []
55+
}, {
56+
"name": "multivariate",
57+
"parameterTypes": []
58+
}, {
59+
"name": "payloads",
60+
"parameterTypes": []
61+
}
62+
]
63+
},
64+
{
65+
"name": "net.hollowcube.posthog.FeatureFlagsResponse$Flag",
66+
"allDeclaredFields": true,
67+
"methods": [
68+
{
69+
"name": "<init>",
70+
"parameterTypes": [
71+
"java.lang.String", "boolean", "java.lang.Integer", "boolean",
72+
"net.hollowcube.posthog.FeatureFlagsResponse$Filters", "java.lang.Boolean"
73+
]
74+
}, {
75+
"name": "active",
76+
"parameterTypes": []
77+
}, {
78+
"name": "ensureExperienceContinuity",
79+
"parameterTypes": []
80+
}, {
81+
"name": "filters",
82+
"parameterTypes": []
83+
}, {
84+
"name": "isSimpleFlag",
85+
"parameterTypes": []
86+
}, {
87+
"name": "key",
88+
"parameterTypes": []
89+
}, {
90+
"name": "rolloutPercentage",
91+
"parameterTypes": []
92+
}
93+
]
94+
},
95+
{
96+
"name": "net.hollowcube.posthog.FeatureFlagsResponse$Property",
97+
"allDeclaredFields": true,
98+
"methods": [
99+
{
100+
"name": "<init>",
101+
"parameterTypes": [
102+
"java.lang.String", "java.lang.String", "com.google.gson.JsonElement", "java.lang.String", "boolean"
103+
]
104+
}, {
105+
"name": "key",
106+
"parameterTypes": []
107+
}, {
108+
"name": "negation",
109+
"parameterTypes": []
110+
}, {
111+
"name": "operator",
112+
"parameterTypes": []
113+
}, {
114+
"name": "type",
115+
"parameterTypes": []
116+
}, {
117+
"name": "value",
118+
"parameterTypes": []
119+
}
120+
]
121+
},
122+
{
123+
"name": "net.hollowcube.posthog.FeatureFlagsResponse$Variant",
124+
"allDeclaredFields": true,
125+
"methods": [
126+
{
127+
"name": "<init>",
128+
"parameterTypes": ["java.lang.String", "java.lang.String", "java.lang.Integer"]
129+
}, {
130+
"name": "key",
131+
"parameterTypes": []
132+
}, {
133+
"name": "name",
134+
"parameterTypes": []
135+
}, {
136+
"name": "rolloutPercentage",
137+
"parameterTypes": []
138+
}
139+
]
140+
},
141+
{
142+
"name": "net.hollowcube.posthog.FeatureFlagsResponse$Variants",
143+
"allDeclaredFields": true,
144+
"methods": [
145+
{
146+
"name": "<init>",
147+
"parameterTypes": ["java.util.List"]
148+
}, {
149+
"name": "variants",
150+
"parameterTypes": []
151+
}
152+
]
153+
}
154+
]

0 commit comments

Comments
 (0)