Repository navigation
Initial Documentation #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
51f707e
Added a reduced skeleton for docusaurus (#10).
HansMartinA 71f68e5
Configured docusaurus (#10).
HansMartinA b2aba3b
Added content on the landing page (#10).
HansMartinA 084348a
Added a getting started documentation (#10).
HansMartinA 693032b
Added the example code for the getting started documentation (#10).
HansMartinA 3ff890e
Added guides as documentation (#10).
HansMartinA 88c8af9
Added release notes for the documentation (#10).
HansMartinA c67d893
Added an overview over publications related to JaMoPP (#10).
HansMartinA 70c0464
Added documentation for the development of the extended JaMoPP.
HansMartinA 7a16e07
Migrated Docusaurus from version 2 to 3 (#10).
HansMartinA 90e3016
Updated the README (#27).
HansMartinA 92cca88
Added documentation about the architecture (#10).
HansMartinA ce25342
Merge remote-tracking branch 'origin/develop' into 10_initial_documen…
HansMartinA 709d9a0
Renamed the whole documentation directory for the upcoming layout res…
HansMartinA c648f27
Updated the dependencies (#10).
HansMartinA ca6d2b5
Added an icon for the documentation page.
HansMartinA 63280b6
Extended the GitHub Actions workflows with a build and deployment of …
HansMartinA File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| name: docu-wf | ||
| on: | ||
| push: | ||
| branches: | ||
| - 'develop' | ||
| jobs: | ||
| build-docu: | ||
| runs-on: ubuntu-24.04 | ||
| defaults: | ||
| run: | ||
| working-directory: ./jamopp-ext.doc | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v6 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Setup Node | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: 22 | ||
| - name: Build Documentation | ||
| run: npm ci | ||
| - run: npm run build | ||
| - name: Upload Docu Artifacts | ||
| uses: actions/upload-pages-artifact@v4 | ||
| with: | ||
| path: build | ||
| deploy-docu: | ||
| runs-on: ubuntu-24.04 | ||
| needs: build-docu | ||
| permissions: | ||
| pages: write | ||
| id-token: write | ||
| environment: | ||
| name: github-pages | ||
| url: ${{ steps.deployment.outputs.page_url }} | ||
| steps: | ||
| - name: Deploy Docu to GitHub Pages | ||
| uses: actions/deploy-pages@v4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| # Dependencies | ||
| /node_modules | ||
|
|
||
| # Production | ||
| /build | ||
|
|
||
| # Generated files | ||
| .docusaurus | ||
| .cache-loader | ||
|
|
||
| # Misc | ||
| .DS_Store | ||
| .env.local | ||
| .env.development.local | ||
| .env.test.local | ||
| .env.production.local | ||
|
|
||
| npm-debug.log* | ||
| yarn-debug.log* | ||
| yarn-error.log* |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| # Website | ||
|
|
||
| This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. | ||
|
|
||
| ### Installation | ||
|
|
||
| ``` | ||
| $ npm | ||
| ``` | ||
|
|
||
| ### Local Development | ||
|
|
||
| ``` | ||
| $ npm start | ||
| ``` | ||
|
|
||
| This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. | ||
|
|
||
| ### Build | ||
|
|
||
| ``` | ||
| $ npm build | ||
| ``` | ||
|
|
||
| This command generates static content into the `build` directory and can be served using any static contents hosting service. | ||
|
|
||
| ### Deployment | ||
|
|
||
| Using SSH: | ||
|
|
||
| ``` | ||
| $ USE_SSH=true npm deploy | ||
| ``` | ||
|
|
||
| Not using SSH: | ||
|
|
||
| ``` | ||
| $ GIT_USER=<Your GitHub username> npm deploy | ||
| ``` | ||
|
|
||
| If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| module.exports = { | ||
| presets: [require.resolve('@docusaurus/core/lib/babel/preset')], | ||
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| # Development | ||
|
|
||
| Interested in contributing to / developing the extended JaMoPP? Within this section, we provide guidance on its development. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| { | ||
| "position": 5, | ||
| "label": "Development" | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| --- | ||
| sidebar_position: 2 | ||
| sidebar_label: Architecture | ||
| --- | ||
|
|
||
| # Architecture | ||
|
|
||
| This document provides an overview over the architecture of the extended JaMoPP. | ||
|
|
||
| ```mermaid | ||
| block | ||
| columns 5 | ||
| space space model space space | ||
|
|
||
| space:5 | ||
|
|
||
| model.edit | ||
| model.edit --> model | ||
|
|
||
| parser | ||
| parser --> model | ||
|
|
||
| parser.bcel | ||
| parser.bcel --> model | ||
|
|
||
| resolution | ||
| resolution --> model | ||
|
|
||
| printer | ||
| printer --> model | ||
|
|
||
| space:5 | ||
|
|
||
| space parser.jdt.singlefile space resource space | ||
|
|
||
| parser.jdt.singlefile --> parser | ||
| parser.jdt.singlefile --> resolution | ||
|
|
||
| resource --> printer | ||
| resource --> resolution | ||
| resource --> parser.jdt.singlefile | ||
| resource --> parser.bcel | ||
| ``` | ||
|
|
||
| The diagram shows the different components and their connections. Each component corresponds to one Maven module. | ||
|
|
||
| * **model** contains the defined metamodel for Java. | ||
| * **model.edit** provides generated code to support edit operations within the EMF. | ||
| * **parser** defines an interface for [parsing Java source code to models](../guides/parsing.md). | ||
| * **parser.jdt.singlefile** implements the interface from the **parser** component by parsing Java source code with the Eclipse Java Development Tools (JDT) and converting the resulting ASTs to models. This component also supports the parsing of single files without all dependencies. | ||
| * **parser.bcel** implements the class-to-model converter based on [Apache BCEL](https://commons.apache.org/proper/commons-bcel/). | ||
| * **printer** enables the [printing of models](../guides/printing.md) as Java source code. | ||
| * **resolution** contains the [reference resolution mechanisms](../guides/resolution.md) and [trivial recovery](../guides/recovery.md) for the parsed models. | ||
| * **resource** provides an EMF `Resource` implementation for the extended JaMoPP, combining features from the previous components. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| --- | ||
| sidebar_position: 1 | ||
| sidebar_label: Setup | ||
| --- | ||
|
|
||
| # Setup | ||
|
|
||
| To setup your system / IDEs for developing the extended JaMoPP, you can follow these instructions. | ||
|
|
||
| ## Eclipse IDE (for Code) | ||
|
|
||
| Currently, only the Eclipse IDE is supported for developing the extended JaMoPP. | ||
|
|
||
| 1. The code requires Java 17 and the Eclipse Modeling Tools 2022-12 with the Maven plugin (needs manual installation) since the project is organized with pure Maven modules. | ||
|
|
||
| Hint: You can install the Maven plugin by opening the software installation panel (menu "Help" -> "Install New Software"). Then, you can show a list of update sites for the field "Work with:". From this list, select "2022-12 - https://download.eclipse.org/releases/2022-12", search for "Maven", and select "M2E - Maven Integration for Eclipse" for installation. Afterward, proceed with the installation. | ||
| 1. After Eclipse is prepared, the Maven modules of the extended JaMoPP can be easily imported from the top-level directory into Eclipse. However, the source code for the Java metamodel is not generated yet. | ||
| 1. There are two possibilities to (re-)generate the source code for the metamodel. | ||
|
|
||
| a. Run the build pipeline locally by executing the command `./mvnw clean package` (Linux) or `.\mvnw.cmd clean package` (Windows). | ||
|
|
||
| b. In Eclipse, open the file `jamopp.model/src/main/resources/metamodel/java.genmodel`, and execute `Generate Model` (available on right click on "Java" if the EMF Generator editor is opened and only showing a tree view). | ||
|
|
||
| ## For Documentation | ||
|
|
||
| The raw content of this documentation is located in the top-level directory `jamopp.doc`. It uses [Docusaurus](https://docusaurus.io/) as documentation framework. | ||
|
|
||
| 1. Thus, the documentation requires Node.js 18.16.0 or higher installed on your system. | ||
| 1. If it is installed, you can run `npm i` in the documentation directory to install the necessary dependencies. | ||
| 1. Then, `npm start` opens the generated documentation in the browser (defaults to `http://localhost:3000`), which is automatically updated on changes in the documentation files. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| --- | ||
| sidebar_position: 3 | ||
| sidebar_label: Workflow | ||
| --- | ||
|
|
||
| # Workflow | ||
|
|
||
| For the development of the extended JaMoPP, we base the workflow on the Gitflow (cf., [the original](https://nvie.com/posts/a-successful-git-branching-model/) or [Atlassian blog post](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) for more information). | ||
|
|
||
| 1. While the `main` branch hosts the source code of all releases with Git tags, all changes are primarily merged into the (default) `develop` branch. | ||
| 1. For every bug, feature, release, and other issue, a [GitHub issue](https://github.com/MDSD-Tools/TheExtendedJavaModelParserAndPrinter/issues) needs to be created. | ||
| 1. For the resolution of an issue (except releases), there should be a separate feature branch, usually branched from the current `develop` branch, with the name `<issue_number>_<meaningful_short_issue_description_with_words_separated_by_underscores>`. Please consider the `CHANGELOG.md` and this documentation, and update them if necessary. | ||
| 1. If the changes are ready for merging, a pull request needs to be created for meging the feature branch into the `develop` branch. It is reviewed by at least one person. After all comments and issues within the pull request are resolved and the pull request is approved, it is merged, closing the pull request and corresponding GitHub issue. | ||
| 1. For a release: | ||
| 1. The following parts should be adapted on the `develop` branch: | ||
| * The version number (at least removing the SNAPSHOT part). | ||
| * The `CHANGELOG.md`. | ||
| * The documentation. | ||
| 1. Then, merge `develop` into the `main` branch, and create a tag for the new release. | ||
| 1. Run the `release` GitHub action workflow to build and push the artifacts to the MDSD tools update site and Maven central. | ||
| 1. Update the version number on the `develop` branch once again (select an appropriate higher version number and re-add the SNAPSHOT part). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # Getting Started | ||
|
|
||
| Welcome to the documentation of the extended Java Model Parser and Printer (JaMoPP). It provides tutorials, information about implemented features, and information for developers of JaMoPP. | ||
|
|
||
| This section contains tutorials to get started with using the extended JaMoPP. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| { | ||
| "position": 1, | ||
| "label": "Getting Started" | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be reasonable to add a legend explaining the semantics of the arrows?