-
Notifications
You must be signed in to change notification settings - Fork 0
Improvements to Javadocumentation and Database Deserialization #15
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
Open
ic0ns
wants to merge
26
commits into
main
Choose a base branch
from
json
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
Enhanced documentation for key classes and interfaces: - CommonMain: Application entry point with usage examples - ScanTarget: Target parsing with format specifications and RFC references - BulkScan: Bulk scan coordination with lifecycle documentation - BulkScanWorker: Abstract worker framework with thread safety notes Provides developer-friendly documentation appropriate for TLS/Java developers with detailed API descriptions, usage examples, and cross-references.
Added comprehensive JavaDoc for all remaining public methods in BulkScan: - All 13 getter methods with detailed descriptions - All 16 setter methods with parameter documentation - Special attention to MongoDB serialization requirements Now all 4 core classes have 100% complete JavaDoc documentation for all public and protected members.
…ntroller Added comprehensive JavaDoc documentation for core distributed system classes: BulkScanWorkerManager: - Singleton pattern and worker lifecycle management - Guava cache configuration and thread safety - Worker creation, caching, and cleanup strategies - Usage examples and architectural integration Controller: - Central orchestration and scheduling system - Quartz scheduler integration and lifecycle - Architecture integration with multiple providers - Scheduling options (cron, simple, one-time) - Progress monitoring and automatic shutdown Both classes now have complete documentation for all public methods, fields, and architectural considerations for distributed TLS scanning.
Complete method-level documentation for all public and private methods in MongoPersistenceProvider.java, achieving 100% JavaDoc coverage: - Static registration methods (registerSerializer, registerModule) - Constructor with detailed initialization sequence - Database and collection factory methods - CRUD operations (insertBulkScan, updateBulkScan, insertScanResult) - Internal helper methods for database operations Enhanced documentation includes: - MongoDB storage architecture and caching strategy - Error handling and recovery mechanisms - Performance optimization details - Thread safety considerations - Usage examples and cross-references Continues progress toward 100% documentation coverage across all classes.
Complete documentation for all public and private methods in the RabbitMQ orchestration provider, achieving 100% JavaDoc coverage: - Enhanced class-level documentation with architecture overview - Constructor documentation with initialization sequence details - All interface method implementations with comprehensive descriptions - Private helper method documentation for queue management - Message handling and error recovery strategy documentation Documentation covers: - Distributed messaging architecture using RabbitMQ - Queue setup and TTL management for notifications - Connection management with TLS and authentication support - Job distribution and load balancing mechanisms - Progress monitoring and completion notification workflows - Error handling and resource cleanup procedures Continues systematic progress toward 100% documentation coverage.
Complete documentation for the abstract configuration class, achieving 100% JavaDoc coverage for all methods, inner classes, and extension points: - Enhanced class-level documentation with configuration overview - Constructor documentation with delegate initialization details - Comprehensive validation method documentation with rules and dependencies - Inner validator classes with complete method documentation - All getter/setter methods with parameter descriptions and defaults - Factory methods with detailed component explanations - Abstract method documentation with implementation requirements Documentation covers: - JCommander command-line parsing architecture - Target source priority logic and provider selection - Configuration validation rules and parameter dependencies - Extension points for scanner-specific implementations - BulkScan factory method with metadata components - Parameter validators for positive integers and cron expressions Continues systematic progress toward 100% documentation coverage.
Complete documentation for the real-time progress monitoring system, achieving 100% JavaDoc coverage for all methods and inner classes: - Enhanced class-level documentation with monitoring system overview - Constructor documentation with dependency responsibilities - Inner BulkscanMonitor class with complete method documentation - Progress tracking methods with workflow and feature explanations - Notification system documentation with HTTP integration details - Performance analysis methods with algorithm explanations Documentation covers: - Real-time scan job completion tracking and statistics - Performance metrics including global and moving averages - ETA calculation with adaptive alpha smoothing algorithms - HTTP notification system for external integration - Automatic cleanup and controller shutdown coordination - Time formatting utilities with adaptive unit selection - Error handling and thread interruption management Continues systematic progress toward 100% documentation coverage.
This commit achieves 100% JavaDoc documentation coverage for the Crawler-Core project by adding comprehensive class-level and method-level documentation to all public APIs and implementations. Key improvements: - Added missing class documentation for 15+ core classes - Documented all enum constants and methods in CruxListNumber and JobStatus - Added comprehensive field documentation for data classes - Created constructors with documentation for delegate and utility classes - Enhanced functional interface documentation with usage examples - Fixed HTML formatting issues and invalid cross-references - Added architectural context and usage patterns throughout The documentation now provides complete coverage of: - Distributed TLS scanning architecture and components - Target list provider system and implementations - Message queue orchestration patterns - Database persistence layer abstractions - Security filtering and denylist functionality - Utility classes for cancellable execution All JavaDoc generation completes successfully with no errors or warnings. All existing tests continue to pass after documentation additions.
- Enhanced target string parsing to properly handle IPv6 addresses with ports - Added support for bracket notation: [2001:db8::1]:8080 - Preserved existing IPv4 and hostname parsing functionality - Improved port validation with proper range checking (1-65535) - Added comprehensive test suite covering IPv6, IPv4, and hostname parsing scenarios - Removed debug System.out.println statement - Updated JavaDoc to reflect full IPv6 support The fix resolves the FIXME comment by implementing RFC-compliant IPv6 address parsing that distinguishes between colons in IPv6 addresses and port separators using bracket notation, while maintaining backward compatibility with existing formats. Closes #10
Resolves #11 - Modified ScanTarget.fromTargetString() to return List<Pair<ScanTarget, JobStatus>> - Implemented InetAddress.getAllByName() to resolve all IP addresses for hostnames - Updated JobSubmitter to handle multiple targets per hostname string - Added comprehensive test for multiple IP resolution - Updated ControllerTest to accommodate variable job counts based on DNS resolution - Each resolved IP creates separate ScanTarget for complete multi-homed host coverage - Preserves hostname, port, and Tranco rank across all IP instances - Maintains backward compatibility for direct IP address inputs Features: - Support for IPv4 and IPv6 multi-homed hosts - Individual denylist checking per resolved IP - Debug logging for hostname resolution counts - Efficient parallel processing of resolved targets
Resolves #12 Enhanced ScanResult.fromException to store structured exception data: - Exception type, message, cause, and timestamp - Target context (hostname, IP, port) for debugging - Added overloaded method with additional error context parameter - Eliminated serialization issues with raw exception objects Added error tracking to ScanTarget: - New errorMessage and errorType fields with getters/setters - Detailed error information for DNS resolution failures - Specific denylist rejection context with IP and hostname details - Enhanced error propagation from target parsing to scan results Created ErrorContext utility class: - Standardized error context formatting - Support for DNS, denylist, parsing, and processing failures - Consistent error message patterns for analysis Improved JobSubmitter exception handling: - Enhanced error context for target parsing failures - Better integration with structured error reporting Features: - Structured error documents with separable fields - Comprehensive debugging information preservation - Backward compatible with existing error handling - Detailed failure analysis for large-scale scanning operations
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.
No description provided.