Skip to content

Commit 0332fcc

Browse files
committed
Merge remote-tracking branch 'official/23_performance_measurements' into recovery-enum-const-fix
2 parents 6bad224 + fd8521c commit 0332fcc

3,807 files changed

Lines changed: 17182 additions & 81030 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/build.yml‎

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,36 @@
1-
name: Build Pipeline
2-
3-
on: [push, pull_request, workflow_dispatch]
4-
1+
name: build-wf
2+
on:
3+
pull_request:
4+
workflow_call:
55
jobs:
6-
Palladio-Supporting-EclipseJavaDevelopmentTools:
7-
uses: PalladioSimulator/Palladio-Build-ActionsPipeline/.github/workflows/build.yml@v3.2
8-
with:
9-
use-display-output: true
10-
deploy-updatesite: 'releng/org.palladiosimulator.jdt.updatesite/target/repository'
11-
secrets:
12-
SERVER_SSH_KEY: ${{ secrets.DEPLOYMENT_SERVER_SSH_KEY }}
13-
REMOTE_HOST: ${{ secrets.DEPLOYMENT_REMOTE_HOST }}
14-
REMOTE_PORT: ${{ secrets.DEPLOYMENT_REMOTE_PORT }}
15-
REMOTE_USER: ${{ secrets.DEPLOYMENT_REMOTE_USER }}
16-
REMOTE_TARGET: ${{ secrets.DEPLOYMENT_REMOTE_TARGET }}
6+
build:
7+
strategy:
8+
matrix:
9+
os: [ubuntu-22.04, windows-2022]
10+
runs-on: ${{ matrix.os }}
11+
steps:
12+
- name: Enable Long Paths in Git (Linux)
13+
if: runner.os == 'Linux'
14+
run: sudo git config --system core.longpaths true
15+
- name: Enable Long Paths in Git (Windows)
16+
if: runner.os == 'Windows'
17+
run: git config --system core.longpaths true
18+
- name: Checkout
19+
uses: actions/checkout@v3
20+
with:
21+
submodules: true
22+
- name: Setup JDK
23+
uses: actions/setup-java@v3
24+
with:
25+
distribution: 'temurin'
26+
java-version: 17
27+
cache: 'maven'
28+
- name: Build Packages
29+
run: ./mvnw clean package
30+
- name: Store P2 Repository
31+
if: runner.os == 'Linux'
32+
uses: actions/upload-artifact@v3
33+
with:
34+
name: p2-jamopp
35+
path: jamopp.p2/target/repository
36+
retention-days: 1
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: nightly-on-develop-wf
2+
on:
3+
push:
4+
branches:
5+
- 'develop'
6+
workflow_dispatch:
7+
jobs:
8+
build:
9+
uses: ./.github/workflows/build.yml
10+
deploy-nightly:
11+
needs: build
12+
runs-on: ubuntu-22.04
13+
steps:
14+
- name: Download P2 Repository
15+
uses: actions/download-artifact@v3
16+
with:
17+
name: p2-jamopp
18+
path: p2-jamopp
19+
- name: Build Deploy Path
20+
shell: bash
21+
run: echo "DEPLOY_PATH=$( echo '${{ secrets.DEPLOYMENT_REMOTE_TARGET }}/extended-java-model-parser-and-printer' )" >> $GITHUB_ENV
22+
- name: Deploy to Updatesite
23+
uses: PalladioSimulator/Palladio-Build-ActionsPipeline-Deployment@v3
24+
with:
25+
remote-user: ${{ secrets.DEPLOYMENT_REMOTE_USER }}
26+
remote-host: ${{ secrets.DEPLOYMENT_REMOTE_HOST }}
27+
remote-port: ${{ secrets.DEPLOYMENT_REMOTE_PORT }}
28+
server-ssh-key: ${{ secrets.DEPLOYMENT_SERVER_SSH_KEY }}
29+
local-source: './p2-jamopp/*'
30+
remote-target: '${{ env.DEPLOY_PATH }}/nightly'
31+
release-version: '0.0.0'
32+
link-path: ${{ env.DEPLOY_PATH }}

‎.github/workflows/release.yml‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: release-wf
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
release-version:
6+
description: 'The Version to be released'
7+
required: true
8+
default: '0.0.0'
9+
type: string
10+
jobs:
11+
release:
12+
runs-on: ubuntu-22.04
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v3
16+
- name: Setup JDK
17+
uses: actions/setup-java@v3
18+
with:
19+
distribution: 'temurin'
20+
java-version: 17
21+
cache: 'maven'
22+
- name: Build Packages (without tests)
23+
run: ./mvnw clean package -Dmaven.test.skip=true
24+
- name: Build Deploy Path
25+
shell: bash
26+
run: echo "DEPLOY_PATH=$( echo '${{ secrets.DEPLOYMENT_REMOTE_TARGET }}/extended-java-model-parser-and-printer' )" >> $GITHUB_ENV
27+
- name: Release Update Site
28+
uses: PalladioSimulator/Palladio-Build-ActionsPipeline-Deployment@v3
29+
with:
30+
remote-user: ${{ secrets.DEPLOYMENT_REMOTE_USER }}
31+
remote-host: ${{ secrets.DEPLOYMENT_REMOTE_HOST }}
32+
remote-port: ${{ secrets.DEPLOYMENT_REMOTE_PORT }}
33+
server-ssh-key: ${{ secrets.DEPLOYMENT_SERVER_SSH_KEY }}
34+
local-source: './jamopp.p2/target/repository/*'
35+
remote-target: '${{ env.DEPLOY_PATH }}/release/${{ inputs.release-version }}'
36+
release-version: ${{ inputs.release-version }}
37+
link-path: ${{ env.DEPLOY_PATH }}
38+
- name: Setup Apache Maven Central
39+
uses: actions/setup-java@3.6.0
40+
with:
41+
java-version: 17
42+
distribution: 'temurin'
43+
server-id: ossrh
44+
server-username: OSSRH_USERNAME
45+
server-password: OSSRH_PASSWORD
46+
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
47+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
48+
cache: 'maven'
49+
- name: Deploy to Apache Maven Central
50+
run: mvn -Pdeploy-mvn-central deploy
51+
env:
52+
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
53+
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
54+
MAVEN_GPG_PASSPHRASE: $${{ secrets.MAVEN_GPG_PASSPHRASE }}

‎.gitignore‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ javacore.*
1414
local.properties
1515
src-gen/
1616
tmp/
17+
.project
18+
.classpath
1719

1820
# Maven
1921
.mvn/timing.properties

‎.gitmodules‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
[submodule "tests/org.emftext.language.java.test/JaMoPP-BulkTest"]
2-
path = tests/org.emftext.language.java.test/JaMoPP-BulkTest
2+
path = jamopp.tests/target/src-bulk/JaMoPP-BulkTest
33
url = https://github.com/DevBoost/JaMoPP-BulkTest
44
[submodule "tests/org.emftext.language.java.test/TeaStore"]
5-
path = tests/org.emftext.language.java.test/TeaStore
5+
path = jamopp.tests/target/src-bulk/TeaStore
66
url = https://github.com/DescartesResearch/TeaStore
77
[submodule "tests/org.emftext.language.java.test/teammates"]
8-
path = tests/org.emftext.language.java.test/teammates
8+
path = jamopp.tests/target/src-bulk/teammates
99
url = https://github.com/TEAMMATES/teammates
1010
[submodule "tests/org.emftext.language.java.test/microservice"]
11-
path = tests/org.emftext.language.java.test/microservice
11+
path = jamopp.tests/target/src-bulk/microservice
1212
url = https://github.com/ewolff/microservice
1313
[submodule "tests/org.emftext.language.java.test/esda"]
14-
path = tests/org.emftext.language.java.test/esda
14+
path = jamopp.tests/target/src-bulk/esda
1515
url = https://github.com/kit-sdq/esda
1616
[submodule "tests/org.emftext.language.java.test/acmeair"]
17-
path = tests/org.emftext.language.java.test/acmeair
17+
path = jamopp.tests/target/src-bulk/acmeair
1818
url = https://github.com/acmeair/acmeair.git
1919
[submodule "tests/org.emftext.language.java.test/piggymetrics"]
20-
path = tests/org.emftext.language.java.test/piggymetrics
20+
path = jamopp.tests/target/src-bulk/piggymetrics
2121
url = https://github.com/sqshq/piggymetrics.git
2222
[submodule "tests/org.emftext.language.java.test/petclinic"]
23-
path = tests/org.emftext.language.java.test/petclinic
23+
path = jamopp.tests/target/src-bulk/petclinic
2424
url = https://github.com/spring-petclinic/spring-petclinic-microservices.git

‎.mvn/extensions.xml‎

Lines changed: 0 additions & 13 deletions
This file was deleted.

‎.project‎

Lines changed: 0 additions & 17 deletions
This file was deleted.

‎CHANGELOG.md‎

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) beginning with version [Unreleased].
6+
7+
## [Unreleased]
8+
9+
### Added
10+
11+
- Trivial recovery strategy to generate model elements for unresolved proxy objects
12+
- Parser: `TextBlock`s are converted to `TextBockReference`s so that model elements are generated for text blocks
13+
- Performance Test:
14+
- Performs trivial recovery
15+
- Measures model storage
16+
17+
### Changed
18+
19+
- Minimum required Java version: Java 17
20+
- Supported Eclipse version: 2022-12
21+
- First variant: always returns an empty model (previous implementation resulted in an endless loop)
22+
- Third variant: bindings of parameters and local variables are also resolved
23+
- Migration to MDSD Tools organization
24+
- Converted Maven Tycho-based build to pure Maven build
25+
- Unification and renaming of packages to: `tools.mdsd.jamopp`
26+
- Renaming of meta-model namespace URI to: `https://mdsd.tools/jamopp/6.0.0/java`
27+
- Versioned the meta-model
28+
- GitHub Actions for building and publishing artifacts
29+
- Upgraded dependency versions to:
30+
- Apache Commons Bytecode Engineering Library 6.7.0
31+
- Apache Log4j 2 2.20.0
32+
33+
### Deprecated
34+
35+
### Removed
36+
37+
### Fixed
38+
39+
- First variant: always returns an empty model (temporary fix to not end in an endless loop)
40+
- Class file parser: creates bodies for methods and constructors
41+
42+
### Security
43+
44+
## [5.1.0] - 2022-01-21
45+
46+
From here, independent development by the Modelling for Continuous Software Engineering (MCSE) group at the Institute of Information Security and Dependability (KASTEL) at the Karlsruher Institute of Technology (KIT) resulting in the following changes.
47+
48+
### Added
49+
50+
- Meta-model support for features of Java 7-15:
51+
- Java 7
52+
- Diamond in class instance creation expressions
53+
- `try`-with-resources statements
54+
- Multi-`catch`
55+
- Binary integer literals
56+
- Java 8
57+
- Lambda expressions
58+
- Method reference expressions
59+
- Receiver parameters
60+
- Default interface methods
61+
- Further positions of annotations
62+
- Java 9
63+
- Modules
64+
- Java 10/11
65+
- `var` as local variable type
66+
- Java 14
67+
- Switch expressions
68+
- Java 15
69+
- Text blocks
70+
- Meta-model extensions:
71+
- `origin` field in the `JavaRoot` to represent the source (source file, class file, file from an archive, binding) of a Java model
72+
- `Reference`s include an optional list of `TypeReference`s to store concrete types and type arguments in contexts in which the types are usually inferred
73+
- Manual printer implementation
74+
- Parser implementation based on Eclipse JDT which converts the AST to a model
75+
- First variant for the reference resolution: Eclipse JDT bindings are used to directly set references
76+
- Third variant for the reference resolution (as combination of first and second one): proxy objects which are set for references can be resolved after the parsing (based on the Eclipse JDT bindings) or on demand
77+
78+
### Changed
79+
80+
- Minimum required Java version: Java 11
81+
- Supported Eclipse version: 2021-12
82+
- Update to Apache Commons Byte Code Engineering Library 6.5.0
83+
- Meta-model: `TypeReference` inherits from `ArrayTypeable` so that a type can store information about array dimensions and if it is an array
84+
- Turned the extended reference resolution mechanism from the original version into the second variant for the reference resolution: proxy objects which are set for references are resolved on demand
85+
- Standalone version is based on the first variant
86+
87+
### Removed
88+
89+
- Java syntax definition in CS specification language and the generated parser and printer
90+
91+
### Known Issues
92+
93+
- First variant: ends in `StackOverflowException` because of an endless loop, also affects standalone version
94+
95+
## Original JaMoPP Version - before 2019
96+
97+
Originally, developed by DevBoost GmbH and Software Technology Group, Dresden University of Technology. It consists of the development up to version [1.4.0] and the [development after 1.4.0] resulting in the following features.
98+
99+
- Ecore-based meta-model for the Java programming language covering the syntax up to and including Java 6
100+
- Definition of Java syntax in CS specification language of EMFText to generate a parser (Java source code -> Java model) and printer (Java model -> Java source code)
101+
- Loader for class files which generates Java models from class files (based on Apache Commons Byte Code Engineering Library 6.2.0)
102+
- Extended reference resolution mechanisms of generated EMFText code to connect Java models by language-specific links
103+
- Integration into the Eclipse IDE
104+
- Tests for the parsing (checks if generated model contains the expected elements)
105+
- Tests for the parsing and printing (checks if printed code is equal to parsed code by parsing both source codes with Eclipse JDT and comparing the resulting ASTs)
106+
107+
[Unreleased]: https://github.com/MDSD-Tools/TheExtendedJavaModelParserAndPrinter/compare/releases/5.1.0...HEAD
108+
[5.1.0]: https://github.com/MDSD-Tools/TheExtendedJavaModelParserAndPrinter/compare/8bc07...releases/5.1.0
109+
[development after 1.4.0]: https://github.com/MDSD-Tools/TheExtendedJavaModelParserAndPrinter/compare/e46b0...8bc07
110+
[1.4.0]: https://github.com/MDSD-Tools/TheExtendedJavaModelParserAndPrinter/commit/e46b0003803a8ccda7c3aa380ff2c759937d1ccb

‎Jenkinsfile‎

Lines changed: 0 additions & 4 deletions
This file was deleted.

‎LICENSE.txt‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
Copyright (c) 2020-2023
2+
Modelling for Continuous Software Engineering (MCSE) group, Institute of Information Security and Dependability (KASTEL), Karlsruhe Institute of Technology (KIT).
3+
14
Copyright (c) 2006-2014
25
Software Technology Group, Dresden University of Technology
36
DevBoost GmbH, Berlin, Amtsgericht Charlottenburg, HRB 140026
@@ -11,8 +14,8 @@ Contributors:
1114
Software Technology Group - TU Dresden, Germany;
1215
DevBoost GmbH - Berlin, Germany
1316
- initial API and implementation
14-
Martin Armbruster
15-
- Extension for Java 7-13
17+
MCSE, KASTEL, KIT
18+
- Extension for Java 7-15, further independent maintenance
1619

1720
------------------------------------------------------------------------------
1821

0 commit comments

Comments
 (0)