{"id":16561395,"url":"https://github.com/iandarwin/cjp-examples","last_synced_at":"2025-09-07T14:07:50.648Z","repository":{"id":29902181,"uuid":"33447860","full_name":"IanDarwin/cjp-examples","owner":"IanDarwin","description":"Testing example programs from the Checking Java Programs book and videos","archived":false,"fork":false,"pushed_at":"2025-01-31T21:28:58.000Z","size":3492,"stargazers_count":8,"open_issues_count":4,"forks_count":10,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-31T22:26:13.513Z","etag":null,"topics":["arquillian","coverage","findbugs","junit","junit5","mock","mockito","pageunit","pmd","spock","testing","unit","webtest"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IanDarwin.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-04-05T16:52:09.000Z","updated_at":"2025-01-31T21:28:55.000Z","dependencies_parsed_at":"2022-08-08T16:00:04.819Z","dependency_job_id":"798f0cb0-d448-4536-adc2-ddf9f2aa8207","html_url":"https://github.com/IanDarwin/cjp-examples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanDarwin%2Fcjp-examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanDarwin%2Fcjp-examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanDarwin%2Fcjp-examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IanDarwin%2Fcjp-examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IanDarwin","download_url":"https://codeload.github.com/IanDarwin/cjp-examples/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238737844,"owners_count":19522263,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["arquillian","coverage","findbugs","junit","junit5","mock","mockito","pageunit","pmd","spock","testing","unit","webtest"],"created_at":"2024-10-11T20:32:52.371Z","updated_at":"2025-02-13T21:31:05.177Z","avatar_url":"https://github.com/IanDarwin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= CJP-Examples: files for _Checking Java Programs_\n\nI've been an advocate of advanced techniques and strong testing for most of my life as a software developer.\nThis repository was first set up in 2007 (in CVS; moved to GitHub in 2015).\nIt was originally built with Ant but has mostly been moved to Maven to simplify classpath.\nClasspath is also the reason I chose to split this repo into\n*multiple projects*, each an Eclipse project and a Maven-buildable project.\nOtherwise the classpath (and the Maven pom file) would become overly large.\n\nThis repo has been used as examples in:\n\n* The 2007 book Checking Java Programs;\n* The 2015 Video Series.\n* The forthcoming 2022 book Checking Java Programs.\n\nEverything that is enabled as a module builds and passes its tests;\nthe other modules do not pass at the moment: patches welcome; complaints, not so much.\nA few parts of this will indeed likely stay on Ant because\none or two of the tools are only available as Ant plugins.\nWhile I do know about the maven-ant-plugin, it's still just easier this way.\n\nNote that at present the JDK level is set to 11 and will soon move to 17.\nSeveral modules don't work on Java 11 because of the well-known restrictions on the Reflection API,\nbut have been kludged around with the common workaround:\n\n\t--add-opens java.base/java.lang=ALL-UNNAMED\n\nThere are several main directories:\n\n. _general_ is the catch-all containing various demos\n. _arquillian_ - arquillian is a server-side web component tester from JBoss\n. _coverage_ shows test coverage using https://cobertura.github.io/cobertura/[Cobertura]\n. _cucumber_ shows a bit of the tech used in Behaviour-Driven Development\n. _fbmining_ - Not a Maven module - post-processing of findbugs (now spotbugs) results\n. _jpf_ - not yet updated, contains https://github.com/javapathfinder/[Java PathFinder] examples\n. _junit4_ contains JUnit 4 examples\n. _junit5_ contains JUnit 5 examples\n. _mockery_ contains mock-object (mockito and powermock)\n. _pmd_ contains some examples of PMD\n. _spock_ contains the https://spockframework.org[Spock framework] examples;\n. _spotbugs_ contains some examples of https://spotbugs.github.io/[SpotBugs], the follow-on project to FindBugs\n. _static_ - static code analysis.\n. _web_ - some general web tests\n. _webtest-canoo_ - the Canoo web test framework\n\nOf these, the current list of broken directories is:\njpf, webtest-canoo.\nPlus, the arquillian folder has a race condition that only manifests on some platforms,\nand I've not yet tracked down if it's in my code or the framework.\nAnd, the web folder has two tests disabled due to dependency issues.\nSigh.\n\n== JPF: Java PathFinder\n\nJavaPathFinder (JPF) is a really nice set of tools for examine state modelling of your Java code.\nIt was created at NASA to verify the software used in the Mars Rover control program \n(not the embedded software in the device, but the ground-based controller software).\nUnfortunately, it has never been easy to get started with, nor has it made the leap from\nAnt to Maven.\nJPF seemed for a while like _abandonware_, but has been revived and is being modernized\nand even expanded.\n\n== Attention Users of the 2007 Book Version\n\nThe head commit of the master branch  will be totally wrong for you if you try to follow\nthe directions in the 2007 edition of the book. If you still want to follow a\ndecade-old book you should only have to do `git checkout a1ad04` after cloning the git repo.\n\nWhen you install that version YOU WILL HAVE TO SET some Eclipse variables\nbefore it will work! This is expected. Emails asking why it doesn't\nwork out of the box when you haven't read this file are probably going\nto be ignored, but you won't know that if you didn't read\nthis file; that's why it's called a README file, I suppose.\nThe details are in the 2007 book.\n\n== Contact\n\nThanks for reading/watching my book and/or my video series.\n\nIan Darwin\n\nhttp://cjp.darwinsys.com/[Book website]\n\nhttp://shop.oreilly.com/product/0636920042723.do[Java Testing for Developers], videocast Learning Path\n\nhttp://shop.oreilly.com/product/9780596510237.do[Order the 2007 book from O'Reilly]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiandarwin%2Fcjp-examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiandarwin%2Fcjp-examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiandarwin%2Fcjp-examples/lists"}