{"id":37016169,"url":"https://github.com/wniemiec-task-java/checkpoint","last_synced_at":"2026-01-14T01:48:49.708Z","repository":{"id":57735223,"uuid":"395132927","full_name":"wniemiec-task-java/checkpoint","owner":"wniemiec-task-java","description":"A checkpoint is a class and method marker, and it is used when you want a piece of code, even if executed by several independent processes, to be executed only once.","archived":false,"fork":false,"pushed_at":"2021-08-12T01:52:26.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-07T05:05:45.084Z","etag":null,"topics":["checkpoint","class-marker","java","method-marker","processes","tasj","wniemiec","wniemiec-task-java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wniemiec-task-java.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-11T22:42:06.000Z","updated_at":"2021-08-12T01:52:28.000Z","dependencies_parsed_at":"2022-09-06T11:12:04.228Z","dependency_job_id":null,"html_url":"https://github.com/wniemiec-task-java/checkpoint","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/wniemiec-task-java/checkpoint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wniemiec-task-java%2Fcheckpoint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wniemiec-task-java%2Fcheckpoint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wniemiec-task-java%2Fcheckpoint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wniemiec-task-java%2Fcheckpoint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wniemiec-task-java","download_url":"https://codeload.github.com/wniemiec-task-java/checkpoint/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wniemiec-task-java%2Fcheckpoint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408689,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T00:40:43.272Z","status":"ssl_error","status_checked_at":"2026-01-14T00:40:42.636Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["checkpoint","class-marker","java","method-marker","processes","tasj","wniemiec","wniemiec-task-java"],"created_at":"2026-01-14T01:48:49.079Z","updated_at":"2026-01-14T01:48:49.698Z","avatar_url":"https://github.com/wniemiec-task-java.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://github.com/wniemiec-task-java/checkpoint/blob/master/docs/img/logo/logo.jpg)\n\n\u003ch1 align='center'\u003eCheckpoint\u003c/h1\u003e\n\u003cp align='center'\u003eA checkpoint is a class and method marker, and it is used when you want a piece of code, even if executed by several independent processes, to be executed only once.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/wniemiec-task-java/checkpoint/actions/workflows/windows.yml\"\u003e\u003cimg src=\"https://github.com/wniemiec-task-java/checkpoint/actions/workflows/windows.yml/badge.svg\" alt=\"\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/wniemiec-task-java/checkpoint/actions/workflows/macos.yml\"\u003e\u003cimg src=\"https://github.com/wniemiec-task-java/checkpoint/actions/workflows/macos.yml/badge.svg\" alt=\"\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/wniemiec-task-java/checkpoint/actions/workflows/ubuntu.yml\"\u003e\u003cimg src=\"https://github.com/wniemiec-task-java/checkpoint/actions/workflows/ubuntu.yml/badge.svg\" alt=\"\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://codecov.io/gh/wniemiec-task-java/checkpoint\"\u003e\u003cimg src=\"https://codecov.io/gh/wniemiec-task-java/checkpoint/branch/master/graph/badge.svg?token=R2SFS4SP86\" alt=\"Coverage status\"\u003e\u003c/a\u003e\n\t\u003ca href=\"http://java.oracle.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/java-11+-D0008F.svg\" alt=\"Java compatibility\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://mvnrepository.com/artifact/io.github.wniemiec-task-java/checkpoint\"\u003e\u003cimg src=\"https://img.shields.io/maven-central/v/io.github.wniemiec-task-java/checkpoint\" alt=\"Maven Central release\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/wniemiec-task-java/checkpoint/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/wniemiec-task-java/checkpoint\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003chr /\u003e\n\n## ❇ Introduction\nIf you need to know if a piece of code has already been executed by another process, then this is the perfect library for you. A checkpoint is a class and method marker, and it is used when you want a piece of code, even if executed by several independent processes, to be executed only once.\n\n## ❓ How to use\n1. Add one of the options below to the pom.xml file: \n\n#### Using Maven Central (recomended):\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.github.wniemiec-task-java\u003c/groupId\u003e\n  \u003cartifactId\u003echeckpoint\u003c/artifactId\u003e\n  \u003cversion\u003eLATEST\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n#### Using GitHub Packages:\n```\n\u003cdependency\u003e\n  \u003cgroupId\u003ewniemiec.task.java\u003c/groupId\u003e\n  \u003cartifactId\u003echeckpoint\u003c/artifactId\u003e\n  \u003cversion\u003eLATEST\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n2. Run\n```\n$ mvn install\n```\n\n3. Use it\n```\n[...]\n\nimport wniemiec.task.java.Checkpoint;\n\n[...]\n\npublic class CheckpointExample {\n\n[...]\n\nCheckpoint checkpoint = new Checkpoint(tmpDir, \"checkpoint-example\");\n\nSystem.out.println(\"Trying to access piece of code...\");\n\nif (checkpoint.isEnabled()) {\n\tSystem.out.println(\"Piece of code already executed\");\n}\nelse {\n\tSystem.out.println(\"Piece of code executed for the first time\");\n\tcheckpoint.enable();\n}\n\nSystem.out.println(\"...\");\n\nwhile (true) {\n}\n\n[...]\n```\n\n```\nProcess one\n\n$ java CheckpointExample\nTrying to access piece of code...\nPiece of code executed for the first time\n...\n```\n\n```\nProcess two\n\n$ java CheckpointExample\nTrying to access piece of code...\nPiece of code already executed\n...\n```\n\n## 📖 Documentation\n|        Property        |Parameter type|Return type|Description|Default parameter value|\n|----------------|-------------------------------|------|-----------------------|--------|\n|enable |`void`|`void`|Starts a new checkpoint| - |\n|disable |`void`|`void`|Disables checkpoint| - |\n|exists |`void`|`boolean`|Checks if a checkpoint was created.| - |\n|isEnabled |`void`|`boolean`|Checks if the checkpoint is active.| - |\n|delete | `void`|`void`|Checks if the checkpoint is active.| - |\n\n## 🚩 Changelog\nDetails about each version are documented in the [releases section](https://github.com/williamniemiec/wniemiec-task-java/checkpoint/releases).\n\n## 🤝 Contribute!\nSee the documentation on how you can contribute to the project [here](https://github.com/wniemiec-task-java/checkpoint/blob/master/CONTRIBUTING.md).\n\n## 📁 Files\n\n### /\n|        Name        |Type|Description|\n|----------------|-------------------------------|-----------------------------|\n|dist |`Directory`|Released versions|\n|docs |`Directory`|Documentation files|\n|src     |`Directory`| Source files|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwniemiec-task-java%2Fcheckpoint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwniemiec-task-java%2Fcheckpoint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwniemiec-task-java%2Fcheckpoint/lists"}