Retention and deletion-candidate report¶
The five generated I/O outputs listed below were deleted after explicit approval, output-path repair, successful compilation, and direct verification of the runnable writer examples. Serialization artifacts and blog backups remain unchanged.
Decision rules¶
| Decision | Meaning |
|---|---|
| Keep | Unique teaching value or required support code |
| Merge | Overlapping lesson whose comments and examples should be consolidated |
| Archive | Historically useful material excluded from the primary reference |
| Regenerate | Output should be created by an example, not maintained as source |
| Delete candidate | Exact duplicate, empty file, stale generated output, or superseded artifact |
| Quarantine | Broken or externally dependent example retained outside the primary path |
Repetition is not sufficient evidence for deletion. Progressive examples, comparisons between Java versions, and files with unique explanatory comments should remain.
High-confidence generated-output candidates¶
| Path | Evidence | Proposed decision | Required prerequisite |
|---|---|---|---|
src/main/java/nitin/io/google/output.txt |
Contained only zyzzyvas; identical visible content to the old resource output |
Deleted | FileWrite now writes under build/example-output/io/google/ |
src/main/resources/output.txt |
Was written directly by nitin.io.google.FileWrite; not an input fixture |
Deleted | Generated output is isolated under build/ |
src/main/resources/output-file-2.txt |
Contained random generated numeric lines | Deleted | WriteFile2 now writes under build/example-output/io/ |
src/main/resources/output-file-3.txt |
Contained generated numeric lines | Deleted | WriteFile3 now writes under build/example-output/io/ |
src/main/resources/file-write-test.txt |
Contained the exact three lines generated by WriteFile1 |
Deleted | WriteFile1 now writes under build/example-output/io/ |
WriteFile1, WriteFile2, and WriteFile3 still reference the removed path src/main/java/nitin/zCoreServletsTraining/t4FileIO/fileIO/..., while similarly named generated files now live under resources. The examples and artifacts have drifted apart.
Serialization artifacts¶
| Path | Evidence | Proposed decision |
|---|---|---|
src/main/java/nitin/serialization/serialObject.txt |
Binary Java serialization output written by S1BasicSerialization |
Regenerate after output-path repair |
src/main/java/nitin/serialization/serialObjectGraph.txt |
Binary output written by S3ObjectGraphSerialization |
Regenerate after output-path repair |
src/main/java/nitin/serialization/serialObjectInherited.txt |
Shared by multiple inheritance examples | Retain temporarily, then regenerate per example |
src/main/java/nitin/serialization/serialObjectTransient.txt |
Used both as Java serialization output and Jackson JSON output | Split outputs, then regenerate |
These files are currently part of runnable behavior, so they are not immediate deletion candidates. The examples should first write to isolated paths under build/example-output/serialization/. The Jackson example must not overwrite a Java serialization fixture with JSON.
Documentation archive candidates¶
src/main/java/nitin/multithreading/blog/BACKUP contains substantial articles on threads, synchronization, locks, semaphores, virtual threads, structured concurrency, scoped values, and related subjects.
Proposed decision: migrate to MkDocs and retain the original backup until link, image, code-block, and content checks pass. The files use Jekyll front matter, include tags, and /assets/... image paths, so direct deletion would lose useful material.
Progressive examples to keep¶
The following overlap intentionally and should not be deduplicated:
nitin/io/fileIO/readfiles1nitin/io/fileIO/readfiles2nitin/io/fileIO/readfiles3
They demonstrate an explicit progression from inline file reading, to extracted methods with repetition, to reusable stream processors. Their comments make the comparison valuable for documentation.
Likewise, legacy and modern date-time, concurrency, iteration, and collection examples should be retained when they support side-by-side comparisons.
Quarantine candidates¶
Examples should be marked for quarantine rather than deletion when they:
- require a database, network service, or unavailable local project;
- intentionally demonstrate invalid syntax or runtime failure;
- rely on internal JDK APIs;
- require a preview feature unavailable to the documentation verifier;
- contain hard-coded paths from an earlier directory structure.
Further duplicate analysis required¶
Before any source-code deletion, run an exact and normalized duplicate analysis:
- exact byte-level hashes;
- normalized Java hashes excluding package and import differences;
- method-level similarity for repeated exercises;
- a comparison of comments and Javadocs independent of code;
- reference checks across imports, tests, and documentation.
Only files that lack unique code, comments, historical comparison value, and references should be proposed for deletion.