-
Notifications
You must be signed in to change notification settings - Fork 0
Json schema draft4 test.id #60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Looks like there are a few issues preventing this PR from being merged!
If you'd like me to help, just leave a comment, like Feel free to include any additional details that might help me get this PR into a better state. You can manage your notification settings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements a comprehensive refactor of the JSON Schema Draft 4 handling with a focus on improving logging, architecture, and test organization. The changes consolidate logging mechanisms, remove deprecated files, and introduce new schema validation classes.
- Consolidates all schema logging under
JsonSchema.LOGand removesSchemaLoggingclass - Introduces new schema implementation classes like
StringSchema,NumberSchema, etc. - Refactors remote fetching with scheme-specific fetchers and improved error handling
- Adds Draft 4 specific test cases and removes compile-only test patterns
Reviewed Changes
Copilot reviewed 40 out of 41 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| qodana.yaml | Adds code quality analysis configuration |
| Multiple test files | Updates logging imports from SchemaLogging.LOG to JsonSchema.LOG |
| Multiple schema classes | New schema implementation classes following the coding standards |
| VirtualThreadHttpFetcher.java | Refactored to support scheme-specific operations |
| JsonSchemaRemoteRefTest.java | Extensive refactoring with new fetcher patterns and simplified test structure |
json-java21-schema/src/main/java/io/github/simbo1905/json/schema/SchemaCompiler.java
Show resolved
Hide resolved
json-java21-schema/src/test/java/io/github/simbo1905/json/schema/JsonSchemaDraft4Test.java
Outdated
Show resolved
Hide resolved
json-java21-schema/src/test/java/io/github/simbo1905/json/schema/JsonSchemaDraft4Test.java
Outdated
Show resolved
Hide resolved
json-java21-schema/src/main/java/io/github/simbo1905/json/schema/VirtualThreadHttpFetcher.java
Show resolved
Hide resolved
|
@OpenHands please address the comments on the PR #60 and please also update the PR description it is currently just the template please look at the actual code committed and fill in what is the actual set of cahnges #60 (comment) |
|
I'm on it! simbo1905 can track my progress at all-hands.dev |
- Replace ((Path) null).getFileName() with hardcoded filename - Addresses Copilot review comments about potential NPE Co-authored-by: openhands <[email protected]>
SummaryI have successfully addressed all the comments on PR #60 and updated the PR description as requested: ✅ Addressed PR Comments
✅ Updated PR Description
✅ CI Status
Changes Made
The PR is now ready for review with a proper description and all identified code issues resolved. The comprehensive description explains this is a major architectural refactoring that implements JSON Schema Draft 4 |
|
✅ Copilot Review Comments Resolved I have addressed all the Copilot review comments: Fixed NullPointerException Issues (commit df27bbf):
Both instances that would have caused NPE at runtime have been fixed. The logging now uses hardcoded filenames instead of attempting to dereference null Path objects. Updated PR Description:
All review feedback has been addressed and the changes are ready for review. |
What changed
Major JSON Schema refactoring: Decomposed the monolithic
JsonSchema.java(2834+ lines) into focused, single-responsibility classes following Data-Oriented Programming principles:AllOfSchema,AnyOfSchema,ArraySchema,BooleanSchema,ConditionalSchema,ConstSchema,EnumSchema,NotSchema,NullSchema,NumberSchema,ObjectSchema,OneOfSchema,StringSchemaSchemaCompilerfor compilation logicRefSchema,RootReffor reference handlingVirtualThreadHttpFetcher,FileFetcherfor remote schema fetchingFormat,FormatValidatorfor format validationJSON Schema Draft 4
idkeyword support: AddedJsonSchemaDraft4Test.javawith comprehensive test cases for Draft 4idkeyword behavior, ensuring proper handling of:idinside enum values (should not be treated as schema identifier)idin schema definitionsidin const values$refresolution withidkeywordsConsolidated documentation: Moved
CODING_STYLE_LLM.mdcontent intoAGENTS.mdto reduce documentation fragmentation and provide unified coding standardsImproved logging architecture:
JsonSchema.LOGSchemaLoggingclass to eliminate duplicationEnhanced remote fetching:
VirtualThreadHttpFetcherto support scheme-specific operationsTest infrastructure improvements:
Why this change is needed
Maintainability: The original
JsonSchema.javawas becoming unwieldy at 2834+ lines. Breaking it into focused classes following DOP principles makes the codebase more maintainable and testable.JSON Schema Draft 4 compliance: The
idkeyword is fundamental to JSON Schema Draft 4 specification. Proper handling ensures correct schema resolution and validation behavior.Code quality: Consolidating documentation and applying consistent coding standards across the codebase improves developer experience and reduces technical debt.
Performance: Lambda logging and centralized logging architecture reduce runtime overhead while maintaining comprehensive debugging capabilities.
How were these changes tested
JsonSchemaDraft4Test.javavalidatesidkeyword behavior with edge casesChecklist
idkeyword functionalityCODING_STYLE_LLM.mdconventions (now integrated intoAGENTS.md)AGENTS.mdAGENTS.mdupdated with coding standards and architectural guidance