{"id":13706253,"url":"https://github.com/PeterJudgeZA/InjectABL","last_synced_at":"2025-05-05T20:30:36.766Z","repository":{"id":10101457,"uuid":"12164222","full_name":"PeterJudgeZA/InjectABL","owner":"PeterJudgeZA","description":"ABL Dependency Injection Container","archived":false,"fork":false,"pushed_at":"2021-12-03T18:17:01.000Z","size":398,"stargazers_count":8,"open_issues_count":1,"forks_count":7,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2024-08-03T22:16:57.817Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"OpenEdge ABL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PeterJudgeZA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-08-16T17:33:27.000Z","updated_at":"2021-12-03T18:17:05.000Z","dependencies_parsed_at":"2022-07-11T04:46:11.627Z","dependency_job_id":null,"html_url":"https://github.com/PeterJudgeZA/InjectABL","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterJudgeZA%2FInjectABL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterJudgeZA%2FInjectABL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterJudgeZA%2FInjectABL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PeterJudgeZA%2FInjectABL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PeterJudgeZA","download_url":"https://codeload.github.com/PeterJudgeZA/InjectABL/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224465725,"owners_count":17315863,"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":[],"created_at":"2024-08-02T22:00:53.578Z","updated_at":"2024-11-13T14:30:42.488Z","avatar_url":"https://github.com/PeterJudgeZA.png","language":"OpenEdge ABL","readme":"# OpenEdge InjectABL Inversion of Control container/Dependency Injection module #\n\nInjectABL is an Inversion of Control container/Dependency Injection module that was created as part of the [AutoEdge|TheFactory reference implementation](http://communities.progress.com/pcom/community/psdn/openedge/architecture/autoedgethefactory). This project breaks separates the InjectABL module from the larger AutoEdge code, and makes it available for independent use.\n\nThe InjectABL IoC component is inspired by, and largely based - conceptually and to a lesser degree code - on the [Ninject](http://wiki.github.com/enkari/ninject) DI container. While many DI/IoC products provide mapping facilities, the majority of them are XML based; Ninject starts with source code-based mappings, which can be extended to use XML. This provides more readability; in addition Ninject has usable defaults, and is relatively simple to use and understand. It is also itself easily extensible.\n\nThe [wiki](https://github.com/PeterJudge-PSC/InjectABL/wiki) contains more details.\n\n## Installation/setup ##\n\nThis project assumes that it will run against OpenEdge version 11.7.0+.\n\nThe project follows a pretty standard Maven layout.\n\n|Folder|Contents|\n--- | ---\n|`src/main/abl` | Contains the library's sourceABL source code\n|`src/main/resources` | Contains non-source-code resources used to compile and/or build\n|`src/test/abl` | Contains unit tests. The project uses ABLUnit for unit testing\n|`src/test/resources` | Contains non-source-code resources used to build and run unit tests\n|`build/**` | Created by the Gradle build; should be considered transient (ie liable to be deleted)\n|`build/dist` | Contains the source ZIP and rcode PL files created by the build. These are named `injectabl-\u003cversion\u003e-[sources|tty].[zip|pl]` . The ZIP file contains the source code.\n|`build/rcode` | Contains the project's compiled rcode (from `src/main/abl`).\n|`build/lib/**` | Contains any source code dependencies\n|`build/tests` | Contains ABLUnit test results in `results.xml` \n\nIt is built using Gradle. To run the build, run `gradlew` from the project's root directory. The location of an OpenEdge install must be known; this is specified either by using a `DLC` environment variable, or specifying a path in the `gradle.properties` file.\n\n## Running/development ##\n\nTo develop in an IDE, make sure that `src/main/abl` is added to `PROPATH` \nTo run, either add the rcode PL to `PROPATH`, or add the rcode fodler (`build/rcode`), or to run from source code, add `/src/main/abl`.\n\n","funding_links":[],"categories":["Tools and libraries"],"sub_categories":["Zed"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPeterJudgeZA%2FInjectABL","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPeterJudgeZA%2FInjectABL","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPeterJudgeZA%2FInjectABL/lists"}