Skip to content

Commit c11db68

Browse files
committed
feat: dependency updates
1 parent 28f00c5 commit c11db68

File tree

4 files changed

+214
-27
lines changed

4 files changed

+214
-27
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@ build
2222
private-key.asc
2323
gradle.properties
2424
_gradle.properties
25-
.openapi-generator
25+
.openapi-generator
26+
27+
28+
*.bak

build.gradle

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
}
1010

1111
group = 'co.permify'
12-
version = '1.0.3'
12+
version = '1.4.2'
1313

1414
repositories {
1515
mavenCentral()
@@ -122,18 +122,18 @@ ext {
122122
jackson_version = "2.17.1"
123123
jakarta_annotation_version = "2.1.1"
124124
beanvalidation_version = "3.0.2"
125-
junit_version = "5.10.2"
125+
junit_version = "4.13.2"
126126
}
127127

128128
dependencies {
129-
implementation "com.google.code.findbugs:jsr305:3.0.2"
130-
implementation "com.fasterxml.jackson.core:jackson-core:$jackson_version"
131-
implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
132-
implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
133-
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
134-
implementation "org.openapitools:jackson-databind-nullable:0.2.1"
135-
implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
136-
testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_version"
129+
implementation "com.google.code.findbugs:jsr305:3.0.2"
130+
implementation "com.fasterxml.jackson.core:jackson-core:$jackson_version"
131+
implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
132+
implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
133+
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
134+
implementation "org.openapitools:jackson-databind-nullable:0.2.1"
135+
implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
136+
testImplementation "junit:junit:$junit_version"
137137
}
138138

139139
spotless {
@@ -151,4 +151,4 @@ spotless {
151151
removeUnusedImports()
152152
importOrder()
153153
}
154-
}
154+
}

generator/generate-sdk.sh

Lines changed: 196 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ usage() {
1919
echo " -c, --client NAME Client class name (default: ${DEFAULT_CLIENT_NAME})"
2020
echo " -h, --help Show this help message"
2121
echo ""
22-
echo "This script will update the following directories:"
23-
echo " - ../api"
24-
echo " - ../src"
25-
echo " - ../docs"
22+
echo "This script will update the following:"
23+
echo " - ../api (OpenAPI spec)"
24+
echo " - ../src (generated source code)"
25+
echo " - ../docs (API documentation)"
26+
echo " - ../pom.xml (dependencies and version)"
27+
echo " - ../build.gradle (dependencies and version)"
2628
echo ""
2729
echo "Examples:"
2830
echo " $0 # Use defaults"
@@ -152,6 +154,169 @@ if [[ -d "${TEMP_OUTPUT_DIR}/docs" ]]; then
152154
cp "${TEMP_OUTPUT_DIR}/docs/"*.md "${DOCS_DIR}/"
153155
fi
154156

157+
# Function to update dependencies in pom.xml
158+
update_pom_dependencies() {
159+
local generated_pom="${TEMP_OUTPUT_DIR}/pom.xml"
160+
local target_pom="${PROJECT_ROOT}/pom.xml"
161+
162+
if [[ ! -f "${generated_pom}" ]] || [[ ! -f "${target_pom}" ]]; then
163+
echo " ⚠️ Warning: Generated or target pom.xml not found, skipping dependency update"
164+
return
165+
fi
166+
167+
echo " Extracting and updating dependencies from generated pom.xml"
168+
169+
# Extract dependencies from generated pom.xml (excluding test dependencies)
170+
local temp_deps=$(mktemp)
171+
sed -n '/<dependencies>/,/<\/dependencies>/p' "${generated_pom}" | \
172+
grep -v '<scope>test</scope>' | \
173+
sed -n '/<dependency>/,/<\/dependency>/p' > "${temp_deps}"
174+
175+
if [[ -s "${temp_deps}" ]]; then
176+
# Create a backup of the current pom.xml
177+
cp "${target_pom}" "${target_pom}.bak"
178+
179+
# Remove existing dependencies section and add new ones
180+
if command -v awk &> /dev/null; then
181+
awk '
182+
/<dependencies>/ {
183+
print;
184+
while ((getline line < "'${temp_deps}'") > 0) print line;
185+
close("'${temp_deps}'");
186+
# Skip until end of dependencies
187+
while (getline && !/^[[:space:]]*<\/dependencies>/) continue;
188+
print;
189+
next;
190+
}
191+
{ print }
192+
' "${target_pom}" > "${target_pom}.tmp" && mv "${target_pom}.tmp" "${target_pom}"
193+
echo " ✅ Updated pom.xml dependencies"
194+
else
195+
echo " ⚠️ Warning: awk not available, could not update dependencies"
196+
fi
197+
else
198+
echo " ⚠️ Warning: No dependencies found in generated pom.xml"
199+
fi
200+
201+
rm -f "${temp_deps}"
202+
}
203+
204+
# Function to update dependencies in build.gradle
205+
update_gradle_dependencies() {
206+
local generated_gradle="${TEMP_OUTPUT_DIR}/build.gradle"
207+
local target_gradle="${PROJECT_ROOT}/build.gradle"
208+
209+
if [[ ! -f "${generated_gradle}" ]] || [[ ! -f "${target_gradle}" ]]; then
210+
echo " ⚠️ Warning: Generated or target build.gradle not found, skipping dependency update"
211+
return
212+
fi
213+
214+
echo " Extracting and updating dependencies from generated build.gradle"
215+
216+
# Extract implementation dependencies from generated build.gradle
217+
local temp_deps=$(mktemp)
218+
sed -n '/^dependencies {/,/^}/p' "${generated_gradle}" | \
219+
grep -E '^\s*(implementation|api|compileOnly)\s+' | \
220+
grep -v 'testImplementation\|testCompileOnly' > "${temp_deps}"
221+
222+
if [[ -s "${temp_deps}" ]]; then
223+
# Create a backup of the current build.gradle
224+
cp "${target_gradle}" "${target_gradle}.bak"
225+
226+
# Update dependencies section
227+
if command -v awk &> /dev/null; then
228+
awk '
229+
/^dependencies {/ {
230+
print;
231+
# Add new dependencies
232+
while ((getline line < "'${temp_deps}'") > 0) {
233+
if (line !~ /testImplementation/) print " " line;
234+
}
235+
close("'${temp_deps}'");
236+
# Keep existing testImplementation lines
237+
while (getline && !/^}/) {
238+
if ($0 ~ /testImplementation/) print;
239+
}
240+
print "}";
241+
next;
242+
}
243+
{ print }
244+
' "${target_gradle}" > "${target_gradle}.tmp" && mv "${target_gradle}.tmp" "${target_gradle}"
245+
echo " ✅ Updated build.gradle dependencies"
246+
else
247+
echo " ⚠️ Warning: awk not available, could not update dependencies"
248+
fi
249+
else
250+
echo " ⚠️ Warning: No implementation dependencies found in generated build.gradle"
251+
fi
252+
253+
rm -f "${temp_deps}"
254+
}
255+
256+
# Function to extract and update version properties
257+
update_version_properties() {
258+
local generated_pom="${TEMP_OUTPUT_DIR}/pom.xml"
259+
local target_pom="${PROJECT_ROOT}/pom.xml"
260+
local generated_gradle="${TEMP_OUTPUT_DIR}/build.gradle"
261+
local target_gradle="${PROJECT_ROOT}/build.gradle"
262+
263+
echo " Updating version properties from generated files"
264+
265+
# Update properties in pom.xml
266+
if [[ -f "${generated_pom}" ]] && [[ -f "${target_pom}" ]]; then
267+
local temp_props=$(mktemp)
268+
sed -n '/<properties>/,/<\/properties>/p' "${generated_pom}" | \
269+
grep -E '^\s*<[^>]*-version>' | \
270+
grep -v '<maven.compiler\|<project.build' > "${temp_props}"
271+
272+
if [[ -s "${temp_props}" ]]; then
273+
# Update existing properties with new versions
274+
while IFS= read -r prop_line; do
275+
local prop_name=$(echo "${prop_line}" | sed -n 's/.*<\([^>]*\)>.*/\1/p')
276+
local prop_value=$(echo "${prop_line}" | sed -n 's/.*<[^>]*>\([^<]*\)<.*/\1/p')
277+
278+
if [[ -n "${prop_name}" ]] && [[ -n "${prop_value}" ]]; then
279+
if grep -q "<${prop_name}>" "${target_pom}"; then
280+
if [[ "$OSTYPE" == "darwin"* ]]; then
281+
sed -i '' "s|<${prop_name}>[^<]*</${prop_name}>|<${prop_name}>${prop_value}</${prop_name}>|g" "${target_pom}"
282+
else
283+
sed -i "s|<${prop_name}>[^<]*</${prop_name}>|<${prop_name}>${prop_value}</${prop_name}>|g" "${target_pom}"
284+
fi
285+
fi
286+
fi
287+
done < "${temp_props}"
288+
echo " ✅ Updated version properties in pom.xml"
289+
fi
290+
rm -f "${temp_props}"
291+
fi
292+
293+
# Update ext properties in build.gradle
294+
if [[ -f "${generated_gradle}" ]] && [[ -f "${target_gradle}" ]]; then
295+
local temp_ext=$(mktemp)
296+
sed -n '/^ext {/,/^}/p' "${generated_gradle}" | \
297+
grep -E '^\s*[a-zA-Z_][a-zA-Z0-9_]*\s*=' > "${temp_ext}"
298+
299+
if [[ -s "${temp_ext}" ]]; then
300+
while IFS= read -r ext_line; do
301+
local var_name=$(echo "${ext_line}" | sed -n 's/^\s*\([a-zA-Z_][a-zA-Z0-9_]*\)\s*=.*/\1/p')
302+
local var_value=$(echo "${ext_line}" | sed -n 's/.*=\s*\(.*\)$/\1/p')
303+
304+
if [[ -n "${var_name}" ]] && [[ -n "${var_value}" ]]; then
305+
if grep -q "${var_name} =" "${target_gradle}"; then
306+
if [[ "$OSTYPE" == "darwin"* ]]; then
307+
sed -i '' "s|${var_name} = .*|${var_name} = ${var_value}|g" "${target_gradle}"
308+
else
309+
sed -i "s|${var_name} = .*|${var_name} = ${var_value}|g" "${target_gradle}"
310+
fi
311+
fi
312+
fi
313+
done < "${temp_ext}"
314+
echo " ✅ Updated ext properties in build.gradle"
315+
fi
316+
rm -f "${temp_ext}"
317+
fi
318+
}
319+
155320
# Strip 'v' prefix from version if present
156321
VERSION_WITHOUT_V="${OPENAPI_VERSION#v}"
157322
echo " Updating version in pom.xml to ${VERSION_WITHOUT_V}"
@@ -180,10 +345,36 @@ else
180345
echo " ⚠️ Warning: pom.xml not found at ${POM_FILE}"
181346
fi
182347

348+
# Update build.gradle version
349+
GRADLE_FILE="${PROJECT_ROOT}/build.gradle"
350+
if [[ -f "${GRADLE_FILE}" ]]; then
351+
echo " Updating version in build.gradle to ${VERSION_WITHOUT_V}"
352+
if command -v sed &> /dev/null; then
353+
if [[ "$OSTYPE" == "darwin"* ]]; then
354+
sed -i '' "s|^version = .*|version = '${VERSION_WITHOUT_V}'|g" "${GRADLE_FILE}"
355+
else
356+
sed -i "s|^version = .*|version = '${VERSION_WITHOUT_V}'|g" "${GRADLE_FILE}"
357+
fi
358+
echo " ✅ Updated build.gradle version to ${VERSION_WITHOUT_V}"
359+
else
360+
echo " ⚠️ Warning: sed not available, could not update build.gradle version"
361+
fi
362+
else
363+
echo " ⚠️ Warning: build.gradle not found at ${GRADLE_FILE}"
364+
fi
365+
366+
# Update dependencies and version properties
367+
update_pom_dependencies
368+
update_gradle_dependencies
369+
update_version_properties
370+
183371
echo ""
184372
echo "✅ Java SDK updated successfully!"
185373
echo "📁 Updated directories:"
186374
echo " - ${API_DIR}"
187375
echo " - ${SRC_DIR}"
188376
echo " - ${DOCS_DIR}"
189-
echo "📝 Updated version in pom.xml to ${OPENAPI_VERSION}"
377+
echo "📝 Updated version to ${VERSION_WITHOUT_V}"
378+
echo "🔗 Updated dependencies and version properties in:"
379+
echo " - pom.xml"
380+
echo " - build.gradle"

pom.xml

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -195,8 +195,6 @@
195195
</profiles>
196196

197197
<dependencies>
198-
199-
<!-- JSON processing: jackson -->
200198
<dependency>
201199
<groupId>com.fasterxml.jackson.core</groupId>
202200
<artifactId>jackson-core</artifactId>
@@ -222,8 +220,6 @@
222220
<artifactId>jackson-databind-nullable</artifactId>
223221
<version>${jackson-databind-nullable-version}</version>
224222
</dependency>
225-
226-
<!-- @Nullable annotation -->
227223
<dependency>
228224
<groupId>com.google.code.findbugs</groupId>
229225
<artifactId>jsr305</artifactId>
@@ -235,13 +231,10 @@
235231
<version>${jakarta-annotation-version}</version>
236232
<scope>provided</scope>
237233
</dependency>
238-
239-
<!-- test dependencies -->
240234
<dependency>
241-
<groupId>org.junit.jupiter</groupId>
242-
<artifactId>junit-jupiter-api</artifactId>
235+
<groupId>junit</groupId>
236+
<artifactId>junit</artifactId>
243237
<version>${junit-version}</version>
244-
<scope>test</scope>
245238
</dependency>
246239
</dependencies>
247240

@@ -253,7 +246,7 @@
253246
<jackson-databind-nullable-version>0.2.6</jackson-databind-nullable-version>
254247
<jakarta-annotation-version>2.1.1</jakarta-annotation-version>
255248
<beanvalidation-version>3.0.2</beanvalidation-version>
256-
<junit-version>5.10.2</junit-version>
257249
<spotless.version>2.27.2</spotless.version>
250+
<junit-version>4.13.2</junit-version>
258251
</properties>
259252
</project>

0 commit comments

Comments
 (0)