Skip to content
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

[DROOLS-7025] Move "efesto" inside "drools" repo #4490

Merged
merged 24 commits into from
Jun 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
dc8e9fd
[DROOLS-7025] Fixing ignores
gitgabrio Jun 21, 2022
7b1d556
[DROOLS-7025] Fixing ignores - update README
gitgabrio Jun 21, 2022
7f71abe
[DROOLS-7025] Fixing module name
gitgabrio Jun 21, 2022
af8afea
[DROOLS-7025] Fix README.md as per PR suggestion
gitgabrio Jun 21, 2022
61e41c0
[DROOLS-7025] Fixing dependencies
gitgabrio Jun 21, 2022
55b3aad
[DROOLS-7025] Disabling jacoco inside efesto/pmml-engine
gitgabrio Jun 21, 2022
202ad4a
[DROOLS-7025] Disabling generate-aggregated-jacoco-report inside efes…
gitgabrio Jun 21, 2022
7aa3f3a
[DROOLS-6918] Introducing Efesto. Build works. Tests not verified.
gitgabrio Jun 20, 2022
1a0c1a2
[DROOLS-6918] Add MiningModelWithDrl.plantuml
gitgabrio Jun 20, 2022
a1f6b32
[DROOLS-6918] Cleanup - begun RuntimePmmlTest
gitgabrio Jun 20, 2022
48206c9
[DROOLS-6918] Minor fix on pom names
gitgabrio Jun 20, 2022
902f5c5
[DROOLS-7025] Fixing ignores
gitgabrio Jun 21, 2022
04a1ac3
[DROOLS-7025] Fixing ignores - update README
gitgabrio Jun 21, 2022
53eac98
[DROOLS-7025] Fixing module name
gitgabrio Jun 21, 2022
7d1eafd
[DROOLS-7025] Fix README.md as per PR suggestion
gitgabrio Jun 21, 2022
3361436
[DROOLS-7025] Fixing dependencies
gitgabrio Jun 21, 2022
f420eb4
[DROOLS-7025] Disabling jacoco inside efesto/pmml-engine
gitgabrio Jun 21, 2022
9cd2bf2
[DROOLS-7025] Disabling generate-aggregated-jacoco-report inside efes…
gitgabrio Jun 21, 2022
0f55949
[DROOLS-7025] Move efesto inside drools repo
gitgabrio Jun 24, 2022
396e3de
[DROOLS-7025] Remove misleading sentence
gitgabrio Jun 24, 2022
a8d21bf
Update efesto/efesto-core/Readme.md
gitgabrio Jun 27, 2022
a505530
Update efesto/efesto-core/Readme.md
gitgabrio Jun 27, 2022
90eeeab
[DROOLS-7025] Fix as per PR suggestion
gitgabrio Jun 27, 2022
91b0335
[DROOLS-7025] Fixed as per PR suggestion
gitgabrio Jun 27, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions bom/efesto-bom/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.kie</groupId>
<artifactId>kie-core-bom</artifactId>
<version>8.24.0-SNAPSHOT</version>
<relativePath>../kie-core-bom/pom.xml</relativePath>
</parent>

<artifactId>efesto-bom</artifactId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not create a new different bom but add the modules to the existing kie-core-bom. I don't expect efesto-bom to be used directly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@danielezonca
For the moment being I think it is better to keep it "isolated" - there will be new modules add/renamed/removed, and make all this modifications inside that specific bom would ease keeping track.

<packaging>pom</packaging>

<name>Efesto BOM (Bill Of Materials)</name>
<description>
Import this BOM in your dependencyManagement if you want to depend on Efesto framework.
</description>

<url>https://www.drools.org</url>

<scm>
<connection>scm:git:https://github.com/kiegroup/drools.git</connection>
<developerConnection>scm:git:git@github.com:kiegroup/drools.git</developerConnection>
<url>https://github.com/kiegroup/drools</url>
</scm>
<issueManagement>
<system>jira</system>
<url>https://issues.jboss.org/browse/DROOLS</url>
</issueManagement>
<developers>
<developer>
<name>All developers are listed on the team website</name>
<url>http://www.drools.org/community/team.html</url>
</developer>
</developers>
<contributors>
<contributor>
<name>All contributors are listed on the team website</name>
<url>http://www.drools.org/community/team.html</url>
</contributor>
</contributors>
<mailingLists>
<mailingList>
<name>setup</name>
<subscribe>https://groups.google.com/forum/#!forum/drools-setup</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/drools-setup</unsubscribe>
</mailingList>
<mailingList>
<name>usage</name>
<subscribe>https://groups.google.com/forum/#!forum/drools-usage</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/drools-usage</unsubscribe>
</mailingList>
<mailingList>
<name>development</name>
<subscribe>https://groups.google.com/forum/#!forum/drools-development</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/drools-development</unsubscribe>
</mailingList>
</mailingLists>

<!-- IMPORTANT: Do not declare any build things here! Declare them in kie-user-bom-parent. -->
<build/>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-common-utils</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-common-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-compilation-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-compilation-manager-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-runtime-manager-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-runtime-manager-core</artifactId>
<version>${project.version}</version>
</dependency>
<!-- ENGINES -->
<!-- External -->
<!-- Kie -->
<!-- <dependency>-->
<!-- <groupId>org.kie</groupId>-->
<!-- <artifactId>kie-api</artifactId>-->
<!-- <version>${project.version}</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.kie</groupId>-->
<!-- <artifactId>kie-memory-compiler</artifactId>-->
<!-- <version>${project.version}</version>-->
<!-- </dependency>-->
<!-- Logging -->
<!-- Test -->
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-runtime-manager-api</artifactId>
<version>${project.version}</version>
<classifier>tests</classifier>
</dependency>
</dependencies>
</dependencyManagement>

</project>
9 changes: 5 additions & 4 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@
<packaging>pom</packaging>

<modules>
<module>kie-core-bom</module>
<module>drools-bom</module>
<module>kie-dmn-bom</module>
<module>kie-pmml-bom</module>
<module>kie-core-bom</module>
<module>drools-bom</module>
<module>efesto-bom</module>
<module>kie-dmn-bom</module>
<module>kie-pmml-bom</module>
</modules>

</project>
7 changes: 7 additions & 0 deletions build-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1543,6 +1543,13 @@
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>efesto-bom</artifactId>
<version>${project.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-dmn-bom</artifactId>
Expand Down
2 changes: 2 additions & 0 deletions efesto/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
!local/
*.bak
48 changes: 48 additions & 0 deletions efesto/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Efesto
-------------------------

This module contains a rewriting of the `drools` framework, that is intended to be used to provide clear separation and composition for each compiler/runtime of the different engines that Drools project contains (Rules engine, DMN engine, PMML engine).
The first step has been to include `efesto` as self-contained module inside `drools`.


The main focus of this project is on:

1. clear separation between "container" and "content" contexts; the "content" is represented by functionalities exposed
by the compile-time and runtime; the "context" is the environment in which such functionalities are invoked (
see [architectural choices](https://docs.google.com/document/d/1n9rKcMh0qnP7R4DUb3xqanFZcN0q7SL8aBRoAdQDSH0) for more
details)
2. clear separation between compile-time and runtime
3. uniform overall management of different models/engines

Regarding the overall module organization/relationship, this project should follow the guidelines of the "Clean
Architecture" principle.
As per the design style, the microkernel-style will be featured, where each model/engine will represent a
specific `plugin`.

Each plugin should provide a `compilation` and a `runtime` component.

The [documentation](./documentation) folder contains diagrams (PUML, Archimate), images, and other resources related to
design/architectural choices.

This effort can not be full-filled by a single person, since it involve decisions at every level and it will have an
impact on the all `drools` codebase; everyone may be interested would be warmly welcomed for ideas, suggestions,
criticism, contribution.


ArchUnit
========
ArchUnit has been introduced to enforce (as much as possible) some general architectural and design guidelines.

See [official documentation](https://www.archunit.org/userguide/html/000_Index.html) and [maven plugin information](https://github.com/societe-generale/arch-unit-maven-plugin) for further details.

JDepend
=======
JDepend is a tool that traverses Java class file directories and generates design quality metrics for each Java package. JDepend allows you to automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to manage package dependencies effectively.
See [official documentation](http://clarkware.com/software/JDepend.html">http://clarkware.com/software/JDepend.html)
for details.






Loading