Skip to content

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/readfiles1
  • nitin/io/fileIO/readfiles2
  • nitin/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:

  1. exact byte-level hashes;
  2. normalized Java hashes excluding package and import differences;
  3. method-level similarity for repeated exercises;
  4. a comparison of comments and Javadocs independent of code;
  5. reference checks across imports, tests, and documentation.

Only files that lack unique code, comments, historical comparison value, and references should be proposed for deletion.