{"id":26713695,"url":"https://github.com/absint/app4mc-plugin","last_synced_at":"2026-06-30T05:31:35.968Z","repository":{"id":82367892,"uuid":"196984783","full_name":"AbsInt/app4mc-plugin","owner":"AbsInt","description":"APP4MC plugin","archived":false,"fork":false,"pushed_at":"2019-09-18T11:29:31.000Z","size":125,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T12:37:12.398Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/AbsInt.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-15T11:23:10.000Z","updated_at":"2023-04-20T08:22:36.000Z","dependencies_parsed_at":"2023-03-12T15:29:24.668Z","dependency_job_id":null,"html_url":"https://github.com/AbsInt/app4mc-plugin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AbsInt/app4mc-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsInt%2Fapp4mc-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsInt%2Fapp4mc-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsInt%2Fapp4mc-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsInt%2Fapp4mc-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbsInt","download_url":"https://codeload.github.com/AbsInt/app4mc-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbsInt%2Fapp4mc-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34954283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-03-27T12:29:49.810Z","updated_at":"2026-06-30T05:31:35.962Z","avatar_url":"https://github.com/AbsInt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# APP4MC plugin\n\nThis repository contains a plugin for the [Eclipse APP4MC](https://projects.eclipse.org/projects/technology.app4mc) framework.\nIt implements a prototypical coupling between AMALTHEA meta models and [XML Timing Cookies (XTC)](https://www.absint.com/xtc/).\nThe plugin has been implemented as a Java class extending the WorkflowComponent in the APP4MC framework.\nThe component can be used inside scripted workflows in the EASE framework. An example for such an usage is shown below:\n\n    var xtc = new XTCConnector()\n    xtc.setWorkingDirectory(WORKING_DIRECTORY);\n    xtc.setModelName(MODEL_NAME)\n    xtc.ignoreRunnable(\"Runnable_3\");\n    xtc.mapRunnable(\"Runnable_0\",\"Mangeled_Name_0\");\n    xtc.setXtcLocation(XTC_FILE_LOCATION);\n    xtc.setXmlReportLocation(XML_REPORT_FILE_LOCATION);\n    xtc.setElfLocation(EXECUTABLE_FILE_LOCATION);\n    xtc.setAisLocation(AIS_FILE_LOCATION);\n    xtc.setTraceLocation(TRACE_FILE_LOCATION);\n    xtc.setXtcRequestType(XTC_REQUEST_TYPE);\n    xtc.setXtcRequestTarget(XTC_REQUEST_CPU, XTC_REQUEST_TARGET);\n    xtc.setXtcRequestTraceFormat(XTC_REQUEST_TRACE_FORMAT);\n    xtc.setFrequencyInMHz(300.0);\n    xtc.run(ctx)\n\nWhen the workflow is executed, it iterates over all `Runnables` in the AMALTHEA model and generates an analysis request for each of them.\nThe resulting XTC file is then processed by AbsInt's tool launcher.\nAfter that, the XTC file contains a response for each successful analysis.\nAs a last step, these responses are parsed by the workflow component and written back into the AMALTHEA model such that each runnable in the model contains a `Ticks` element storing the timing analysis result.\n\n## Possible configuration options of the `XTCConnector` workflow component\n\n| OPTION | POSSIBLE VALUES | NOTE |\n| ------ | --------------- | ---- |\n| ignoreRunnable | String | The name of a runnable for which no analysis shall be performed. Can be used multiple times.\n| mapRunnable | (String, String) | Maps the name of a runnable in the model to its name in the binary executable. Can be used multiple times.\n| setAisLocation | String | The path to the AIS file. Corresponds to the request option a3:global_ais_file.\n| setElfLocation | String | The path to the ELF file. Corresponds to the file attribute of the CPU tag in the XTC file.\n| setFrequencyInMHz | Float | The frequency of the CPU. Is used to convert results in physical time units into CPU cycles.\n| setModelName | String | The model name is used in the description tags of the generated XTC file.\n| setTraceLocation | String | The path to the trace file. Corresponds to the XTC request option a3:traces.\n| setWorkingDirectory | String | The directory where temporary files are stored.\n| setXmlReportLocation | String | The path where the XML report file shall be stored. Corresponds to the XTC request option a3:xml_report_file.\n| setXtcLocation | String | The path where the XTC file shall be stored.\n| setXtcRequestTarget | (\"tricore\", \"Generic TriCore v1.6.x\") | Corresponds to the XTC request options a3:cpu and a3:target.\n| setXtcRequestTraceFormat | \"NexusLauterbachExport\" | Corresponds to the XTC request option a3:trace_format.\n| setXtcRequestType | \"TimingProfiler\", \"TimeWeaver\", or \"WCET\" | Corresponds to the type attribute of an XTC request.\n\n## Elements of the AMALTHEA SW model used in the `XTCConnector` workflow component\n\n| AMALTHEA ELEMENT    | NOTE |\n| ------------------- | ---- |\n| Runnables           | An analysis is performed for each runnable in the software model.\n| Ticks               | This element is used to represent the execution time of a runnable. It is appended to the list of runnable items of a runnable in case of a successful timing analysis.\n| CustomProperties    | The custom properties *GeneratedBy* and *GeneratedAt* are added to the `Ticks` in order to mark the origin of the timing analysis results.\n\n## Versions\n\nThe plugin supports AMALTHEA versions [`v0.8.2`](https://github.com/AbsInt/app4mc-plugin/tree/amalthea_v0.8.2) and [`v0.9.3`](https://github.com/AbsInt/app4mc-plugin/tree/amalthea_v0.9.3).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabsint%2Fapp4mc-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabsint%2Fapp4mc-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabsint%2Fapp4mc-plugin/lists"}