Skip to content

Commit

Permalink
Merge pull request #50 from PalladioSimulator/rename_to_retriever
Browse files Browse the repository at this point in the history
Rename to Retriever
  • Loading branch information
dr6817 authored Jan 12, 2024
2 parents 92a437a + 0a75796 commit b48303e
Show file tree
Hide file tree
Showing 364 changed files with 9,439 additions and 8,893 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ name: Build Pipeline
on: [push, pull_request, workflow_dispatch]

jobs:
Palladio-ReverseEngineering-SoMoX-RuleEngine:
Palladio-ReverseEngineering-Retriever:
uses: PalladioSimulator/Palladio-Build-ActionsPipeline/.github/workflows/[email protected]
with:
use-display-output: true
no-caching: true
deploy-updatesite: 'releng/org.palladiosimulator.somox.updatesite/target/repository'
deploy-updatesite: 'releng/org.palladiosimulator.retriever.updatesite/target/repository'
secrets:
SERVER_SSH_KEY: ${{ secrets.DEPLOYMENT_SERVER_SSH_KEY }}
REMOTE_HOST: ${{ secrets.DEPLOYMENT_REMOTE_HOST }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/product.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ jobs:
- name: Release Products
uses: softprops/action-gh-release@v1
with:
files: products/org.palladiosimulator.somox.analyzer.rules.product/target/products/*
files: products/org.palladiosimulator.retriever.product/target/products/*
tag_name: ${{ env.release_tag }}
2 changes: 1 addition & 1 deletion .project
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Palladio-ReverseEngineering-SoMoX-RuleEngine</name>
<name>Palladio-ReverseEngineering-Retriever</name>
<comment></comment>
<projects>
</projects>
Expand Down
38 changes: 38 additions & 0 deletions Palladio-ReverseEngineering-Retriever-MavenBuild.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration
type="org.eclipse.m2e.Maven2LaunchConfigurationType">
<intAttribute key="M2_COLORS" value="0" />
<booleanAttribute key="M2_DEBUG_OUTPUT" value="false" />
<stringAttribute key="M2_GOALS" value="clean verify" />
<booleanAttribute key="M2_NON_RECURSIVE" value="false" />
<booleanAttribute key="M2_OFFLINE" value="false" />
<stringAttribute key="M2_PROFILES" value="" />
<listAttribute key="M2_PROPERTIES" />
<stringAttribute key="M2_RUNTIME" value="EMBEDDED" />
<booleanAttribute key="M2_SKIP_TESTS" value="false" />
<intAttribute key="M2_THREADS" value="1" />
<booleanAttribute key="M2_UPDATE_SNAPSHOTS"
value="false" />
<stringAttribute key="M2_USER_SETTINGS" value="" />
<booleanAttribute key="M2_WORKSPACE_RESOLUTION"
value="false" />
<booleanAttribute
key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING"
value="false" />
<stringAttribute
key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}" />
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.run" />
</listAttribute>
<booleanAttribute
key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false" />
<booleanAttribute
key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES"
value="true" />
<booleanAttribute
key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR"
value="false" />
<stringAttribute
key="org.eclipse.jdt.launching.WORKING_DIRECTORY"
value="${project_loc:Palladio-ReverseEngineering-Retriever}" />
</launchConfiguration>
25 changes: 0 additions & 25 deletions Palladio-ReverseEngineering-SoMoX-RuleEngine-MavenBuild.launch

This file was deleted.

37 changes: 18 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,33 @@
# Rule Engine for Reverse Engineering
# Retriever
> Eclipse plugin for model-driven reverse engineering
[![Build Pipeline](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/actions/workflows/build.yml/badge.svg)](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/actions/workflows/build.yml) [![Continual Improvement Process](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/actions/workflows/quality.yml/badge.svg)](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/actions/workflows/quality.yml) [![Continuous Product Integration](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/actions/workflows/product.yml/badge.svg)](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/actions/workflows/product.yml)
[![Build Pipeline](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/actions/workflows/build.yml/badge.svg)](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/actions/workflows/build.yml) [![Continual Improvement Process](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/actions/workflows/quality.yml/badge.svg)](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/actions/workflows/quality.yml) [![Continuous Product Integration](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/actions/workflows/product.yml/badge.svg)](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/actions/workflows/product.yml)

Reverse engineering of software component models from [heterogeneous artifacts](#discoverers) of the software development process. For this purpose, [technology-specific rules](#rules) are used within the rule engine to automatically extract static components of a system. For this purpose, the heterogeneous artifacts of a software project are first transformed into a model representation. Based on the model, the rule engine applies mappings specified in rule artifacts to each model instance to identify components for the final software architecture model.
Reverse engineering of software component models from [heterogeneous artifacts](#discoverers) of the software development process. For this purpose, [technology-specific rules](#rules) are used within Retriever to automatically extract static components of a system. For this purpose, the heterogeneous artifacts of a software project are first transformed into a model representation. Based on the model, Retriever applies mappings specified in rule artifacts to each model instance to identify components for the final software architecture model.

This component extraction supports base components, composite structures, interfaces, ports, and connectors. The candidate components are then used to generate the elements of the target software architecture model, which can then be used for quality prediction purposes in the [Palladio](https://www.palladio-simulator.com/) context. The extracted models are suitable for improving the understanding of existing software and enabling further quality analyses. Software performance, reliability, and maintenance analyses are already available as part of a complementary tool chain.

## Status
The rules engine is currently under active development. If you are interested in further information or would like to contribute your personal thoughts or requirements, please do not hesitate to contact us.

## Built With
The rule engine for reverse engineering is implemented with the [Eclipse Modeling Framework (EMF)](https://www.eclipse.org/modeling/emf/). It is thus provided as a plug-in for the [Eclipse platform](https://www.eclipse.org/eclipse/).
Retriever is implemented with the [Eclipse Modeling Framework (EMF)](https://www.eclipse.org/modeling/emf/). It is thus provided as a plug-in for the [Eclipse platform](https://www.eclipse.org/eclipse/).

Source code based on EMF metamodels is generated during the build process and is therefore not added to the repository. To generate the source code, either the Maven build or the [EMF generation workflow](https://www.eclipse.org/modeling/emf/docs/2.x/tutorials/clibmod/clibmod_emf2.0.html#step2) must be run.

The rules for the model-to-model transformations are implemented in [Xtend](https://www.eclipse.org/xtend/), which can be compiled into Java-compatible source code.

### Discoverers
* [CSV Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/blob/master/bundles/org.palladiosimulator.somox.analyzer.rules.main/src/org/palladiosimulator/somox/discoverer/CsvDiscoverer.java)
* [Java Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/blob/master/bundles/org.palladiosimulator.somox.analyzer.rules.main/src/org/palladiosimulator/somox/discoverer/JavaDiscoverer.java)
* [JSON Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/blob/master/bundles/org.palladiosimulator.somox.analyzer.rules.main/src/org/palladiosimulator/somox/discoverer/JsonDiscoverer.java)
* [XML Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/blob/master/bundles/org.palladiosimulator.somox.analyzer.rules.main/src/org/palladiosimulator/somox/discoverer/XmlDiscoverer.java)
* [YAML Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/blob/master/bundles/org.palladiosimulator.somox.analyzer.rules.main/src/org/palladiosimulator/somox/discoverer/YamlDiscoverer.java)
* [CSV Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/blob/master/bundles/org.palladiosimulator.retriever.extraction.discoverers/src/org/palladiosimulator/retriever/extraction/discoverers/CsvDiscoverer.java)
* [Java Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/blob/master/bundles/org.palladiosimulator.retriever.extraction.discoverers/src/org/palladiosimulator/retriever/extraction/discoverers/JavaDiscoverer.java)
* [JSON Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/blob/master/bundles/org.palladiosimulator.retriever.extraction.discoverers/src/org/palladiosimulator/retriever/extraction/discoverers/JsonDiscoverer.java)
* [XML Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/blob/master/bundles/org.palladiosimulator.retriever.extraction.discoverers/src/org/palladiosimulator/retriever/extraction/discoverers/XmlDiscoverer.java)
* [YAML Discoverer](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/blob/master/bundles/org.palladiosimulator.retriever.extraction.discoverers/src/org/palladiosimulator/retriever/extraction/discoverers/YamlDiscoverer.java)

### Rules
* [Spring Boot and Framework](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/tree/master/bundles/org.palladiosimulator.somox.analyzer.rules.spring)
* [Jakarta RESTful Web Services](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/tree/master/bundles/org.palladiosimulator.somox.analyzer.rules.jax_rs)
* [Maven Project Object Model](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine/tree/master/bundles/org.palladiosimulator.somox.analyzer.rules.maven)

* [Spring Boot and Framework](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/tree/master/bundles/org.palladiosimulator.retriever.extraction.rules/src/org/palladiosimulator/retriever/extraction/rules/SpringRules.xtend)
* [Jakarta RESTful Web Services](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/tree/master/bundles/org.palladiosimulator.retriever.extraction.rules/src/org/palladiosimulator/retriever/extraction/rules/JaxRSRules.xtend)
* [Maven Project Object Model](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever/tree/master/bundles/org.palladiosimulator.retriever.extraction.rules/src/org/palladiosimulator/retriever/extraction/rules/MavenRules.xtend)

### Analyzer
* [Docker Vulnerability](https://github.com/FluidTrust/Palladio-ReverseEngineering-Docker-Vulnerability)
Expand All @@ -45,19 +44,19 @@ The rules for the model-to-model transformations are implemented in [Xtend](http
* Install the [Fluent Api Model Generator](https://github.com/PalladioSimulator/Palladio-Addons-FluentApiModelGenerator) from the [update site](https://updatesite.palladio-simulator.com/palladio-addons-fluentapimodelgenerator/nightly/)
* Install the [Xtend IDE](https://www.eclipse.org/xtend/download.html) from the [update site](https://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/)
* Keep the current installation and, if necessary, change the items to be installed so that they are compatible
* Check out [this repository](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-SoMoX-RuleEngine.git) and [import the existing projects](https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm) into Eclipse
* Check out [this repository](https://github.com/PalladioSimulator/Palladio-ReverseEngineering-Retriever.git) and [import the existing projects](https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.user/tasks/tasks-importproject.htm) into Eclipse
* Make changes to the imported code in Eclipse
* Locally verify all projects in the repository with [Maven](https://maven.apache.org/): `mvn clean verify`
* Launch a new [Eclipse runtime application](https://help.eclipse.org/latest/topic/org.eclipse.pde.doc.user/guide/tools/launchers/eclipse_application_launcher.htm)

#### For Direct Use
* [Adding these update sites](https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.user/tasks/tasks-127.htm), without any further installation:
* The [update site](https://updatesite.palladio-simulator.com/palladio-addons-fluentapimodelgenerator/nightly/) for the [Fluent Api Model Generator](https://github.com/PalladioSimulator/Palladio-Addons-FluentApiModelGenerator)
* Install this Rule Engine from the [update site](https://updatesite.palladio-simulator.com/palladio-reverseengineering-somox-ruleengine/nightly/)
* Install Retriever from the [update site](https://updatesite.palladio-simulator.com/palladio-reverseengineering-retriever/nightly/)
* This will automatically install all the required dependencies

### Usage
* Create a new run configuration to launch the rule engine
* Create a new run configuration to launch Retriever
* Specify the root directory of the project to be analyzed
* Select the technology used there
* Specify the directory for saving the PCM instances
Expand All @@ -78,9 +77,9 @@ Alternatively, you can read the GitHub documentation on how to [create a pull re
* Palladio homepage: https://www.palladio-simulator.com/home/
* Comprehensive documentation: https://sdqweb.ipd.kit.edu/wiki/Palladio_Component_Model
* Issue tracker: https://palladio-simulator.atlassian.net/jira/
* Update site: https://updatesite.palladio-simulator.com/palladio-reverseengineering-somox-ruleengine/nightly/
* Javadoc: https://updatesite.palladio-simulator.com/palladio-reverseengineering-somox-ruleengine/nightly/javadoc/
* Deprecated build server: https://build.palladio-simulator.com/job/PalladioSimulator/job/Palladio-ReverseEngineering-SoMoX-RuleEngine/
* Update site: https://updatesite.palladio-simulator.com/palladio-reverseengineering-retriever/nightly/
* Javadoc: https://updatesite.palladio-simulator.com/palladio-reverseengineering-retriever/nightly/javadoc/
* Deprecated build server: https://build.palladio-simulator.com/job/PalladioSimulator/job/Palladio-ReverseEngineering-Retriever/

## Licensing
The code in this project is licensed under the [EPL-2.0 License](LICENSE).
Loading

0 comments on commit b48303e

Please sign in to comment.