Skip to content

[codex] Add Apollon feature model entry#15

Merged
JTNing merged 5 commits into
mvpfrom
model/weekly-update-1806
Jun 18, 2026
Merged

[codex] Add Apollon feature model entry#15
JTNing merged 5 commits into
mvpfrom
model/weekly-update-1806

Conversation

@JTNing

@JTNing JTNing commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Added Apollon as an optional Platform Integrations feature in functional-feature-model.json.
  • Added a guided workflow option for Apollon and included it in integration review/template references.
  • Kept changes limited to JSON resources under src/main/resources/feature-model.

Artemis Evidence

  • src/main/java/de/tum/cit/aet/artemis/core/config/Constants.java: MODULE_FEATURE_APOLLON and APOLLON_ENABLED_PROPERTY_NAME = "artemis.apollon.enabled".
  • src/main/resources/config/application-core.yml: artemis.apollon.enabled defaults to false and documents the Apollon conversion service requirement.
  • src/main/java/de/tum/cit/aet/artemis/modeling/config/ApollonEnabled.java: Spring condition for Apollon-controlled beans.
  • src/main/java/de/tum/cit/aet/artemis/modeling/config/ModelingWithApollonEnabled.java: confirms Apollon is tied to Modeling workflows.
  • src/main/java/de/tum/cit/aet/artemis/modeling/web/ApollonConversionResource.java: exposes UML model PDF conversion when Apollon is enabled.
  • src/main/webapp/app/modeling/manage/detail/modeling-exercise-detail.component.ts: checks MODULE_FEATURE_APOLLON for modeling exercise details.

Candidate Decisions

  • Added: Apollon. It is teacher-visible, functionally separable, controlled by explicit Artemis module/config anchors, and comparable to existing optional integration features such as EduIDE and Sharing Platform.
  • Not added: LDAP, SAML2, and passkey module switches. They are authentication/security infrastructure rather than teacher-facing functional model choices at the current granularity.
  • Not added: Weaviate/global search. It has explicit technical anchors, but the evidence points to a search backend/runtime feature toggle rather than a stable course/module-level functional feature for this model.
  • Not added: TumLive. It is an optional video-source condition, but it is narrower than the current coarse feature model groups and needs stronger metadata before adding.

Verification

  • jq empty src/main/resources/feature-model/*.json
  • ./gradlew test --rerun-tasks
  • npm run test
  • npm run build

Known Uncertainties

  • Artemis does not currently contain .artemis-feature-model/ source-controlled metadata, so this update relies on source/config evidence only.

@JTNing

JTNing commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator Author

Correction to the previous follow-up comment: the shell stripped inline-code formatting from that comment.

Follow-up update for Apollon semantics:

  • Added apollon-requires-modeling as a requires constraint (apollon -> modeling) because Apollon PDF conversion is only meaningful for modeling exercise UML models in this functional model.
  • Updated the guided configurator to hide options that would select a feature while leaving its requires constraints unsatisfied. This hides Apollon unless Modeling is selected.
  • Added cleanup so if Modeling is later deselected, an already-selected Apollon guided option is removed from the selection instead of leaving a hidden invalid choice.
  • Updated backend/API tests for the non-empty constraints array and added frontend coverage for the Apollon visibility/cleanup behavior.

Verification after the follow-up:

  • jq empty src/main/resources/feature-model/*.json
  • ./gradlew test --rerun-tasks
  • npm run test
  • npm run build

@JTNing JTNing marked this pull request as ready for review June 18, 2026 04:54
@JTNing JTNing merged commit 32d3d17 into mvp Jun 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant