Merged
Conversation
b24bf2f to
f1d87b8
Compare
- Added retry mechanism (3 attempts) for policy creation to handle E0000009 errors - Similar to existing retry logic for policy replacement - Handles intermittent Okta API server errors during policy creation
…(.mvn/) for large YAML file parsing support
- Add serializeWithType() to GroupProfileSerializer to fix 'Type id handling not implemented for type GroupProfile' errors in GroupsIT and AppsIT tests - Change UserGetSingleton to User in UsersIT and ClientProvider since getUser API returns User, not UserGetSingleton (fixes cast exceptions) - Add try-catch for AssignRoleToUser response deserialization in roleAssignTest and groupTargetRoleTest to handle oneOf discriminator issues where StandardRole is not a subtype of AssignRoleToUser201Response
…ncreasing-code-coverage
manmohan-shaw-okta
previously approved these changes
Dec 23, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request: Release v25.0.0 - Major SDK Refactoring and Enhanced Test Coverage
📋 Summary
This PR introduces Okta Java SDK v25.0.0, a major release that significantly improves the SDK's architecture, test coverage, and developer experience based on the updated Okta Admin Management API (OpenAPI spec v5.1.0).
🎯 Key Highlights
Version Updates
🔴 Breaking Changes
Summary
Key Breaking Change: User Object Schema
The
Userobject no longer includes thetypeproperty and its sub-properties in API responses.Affected endpoints include:
GET /api/v1/usersPOST /api/v1/usersGET /api/v1/groups/{groupId}/usersMigration Required: Applications using
user.getType()must be updated. See MIGRATION-v25.0.0.md.🆕 New Components
Custom Deserializers (9 Total)
Added to handle polymorphic API responses properly:
RoleAssignmentDeserializerListGroupAssignedRoles200ResponseInnerAssignRoleToGroupResponseDeserializerAssignRoleToGroup200ResponseAssignRoleToUserResponseDeserializerAssignRoleToUser201ResponseAssignRoleToClientResponseDeserializerAssignRoleToClient200ResponseJwkResponseDeserializerListJwk200ResponseInnerGroupOwnerDeserializerGroupOwnerFlexibleOffsetDateTimeDeserializerOffsetDateTimeAbstractRoleAssignmentDeserializerIgnoreTypeInfoMixInNew Integration Test Suites (28 Total)
User Management APIs (12 Suites)
UserLifecycleIT.groovy- Lifecycle operationsUserCredIT.groovy- Password/credential operationsUserGrantIT.groovy- User grants managementUserOAuthIT.groovy- OAuth token operationsUserSessionsIT.groovy- Session managementUserLinkedObjectIT.groovy- Linked objectsUserResourcesIT.groovy- App links, assigned appsUserAuthenticatorEnrollmentsIT.groovy- Authenticator enrollmentsUserClassificationIT.groovy- User classificationUserRiskIT.groovy- Risk level operationsUserFactorIT.groovy- Factor enrollment/verificationUserTypeIT.groovy- User type managementApplication APIs (9 Suites)
ApplicationGrantsIT.groovy- OAuth grantsApplicationLogosIT.groovy- Logo managementApplicationPoliciesIT.groovy- Policy assignmentsApplicationSSOIT.groovy- SSO operationsApplicationSSOCredentialKeyIT.groovy- SSO credential keysApplicationSSOFederatedClaimIT.groovy- Federated claimsApplicationTokensIT.groovy- Token managementApplicationUsersIT.groovy- User assignmentsOktaApplicationSettingsIT.groovy- App settingsOrganization & Settings APIs (7 Suites)
AgentPoolsIT.groovy- Agent pool managementApiServiceIntegrationsIT.groovy- Service integrationsApiTokenIT.groovy- API token operationsGroupPushMappingIT.groovy- Group push mappingsProfileMappingIT.groovy- Profile mappingsRealmsIT.groovy- Realm operationsPolicyCleanupIT.groovy- Policy cleanup utilitiesNew Unit Tests (8 Files)
RoleAssignmentDeserializerTest.javaDPoPInterceptorTest.javaRetryUtilTest.javaApiExceptionHelperTest.javaHelperConstantsTest.javaPaginationUtilTest.javaNew Configuration Files
.mvn/jvm.config.mvn/maven.config📊 Integration Test Coverage
Total Test Suites: 35
Test Enhancements
🔧 Technical Improvements
DefaultClientBuilder Updates
Pagination Improvements
New
PagedIterable<T>class for automatic, thread-safe pagination:Note:
PaginationUtil.getAfter()is deprecated (@Deprecated(forRemoval = true, since = "24.1.0"))Code Quality Improvements
📚 Documentation
New/Updated Files
MIGRATION-v25.0.0.mdCHANGELOG-v25.0.0.mdMIGRATION-GUIDE-v25.0.0.mdREADME.md🧪 Testing
Test Verification
How to Test
🔄 Migration Path
user.typeproperties✅ Checklist
PR Checklist
Files Changed Categories
🔗 Related Links