Skip to content

User Documentation

Gabriel G edited this page Feb 7, 2024 · 1 revision

Project Description

A description of the tool, outlining it’s purpose, expected inputs, and outputs


Overview:

Prophet-evolution is a natural extension of the prophet tool with the purpose of preventing regressive changes to microservice architectures. This tool is currently focused on mapping microservice dependencies in Java Spring Boot projects and preventing changes to the microservice network that might degrade functionality considering these dependencies.

Current Input:

A group of git repositories that represent the microservice. Microservice can be within one repo or across many. The structure of input is shown below: A comma-separated list with this structure: https://github.com/<owner>/<repo1>.git,…

Current Output:

JSON files describing the architecture of the microservice. This contains information on the controllers, services, repositories, and external API calls of the given microservice. This data will be used to analyze what microservices are dependent on each other and in what way.

In the output folder, there are several important files. The first of which is the msFlowList.json file. This describes the flows from the endpoint of one microservice to the resulting repository or API call. The other files such as msRestCall, msMethodList, msMethodCallList, msClassList, and msFieldList list the respective data in an organized way.

Prerequisites:

Requirements and dependencies necessary for using the project or library


  • Maven 3.6+
  • Java 11+ (11 Recommended)

Installation

Instructions for setting up the project locally


  1. Clone the repository:
    git clone https://github.com/cloudhubs/prophet-evolution.git && cd prophet-evolution

To Run

Instructions and examples illustrating how to utilize the project's features and functionalities


Intellij:

  • Provide application arguments
  • Run the main function in SemanticAnalysisCommand.java file

Command Line:

  • Compile:
    mvn clean install -DskipTests
  • Run with specified repositories:
    java -jar target/semantics-1.0-SNAPSHOT-runner.jar 'https://github.com/<owner>/<repo1>.git,https://github.com/<owner>/<repo2>.git,...,https://github.com/<owner>/<repoN>.git'
  • Run with default repositories:
    java -jar target/semantics-1.0-SNAPSHOT-runner.jar
Clone this wiki locally