diff --git a/pom.xml b/pom.xml
index d6dcca8..69d7d67 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,7 +101,16 @@
provided
${querydsl.version}
-
+
+ org.hibernate
+ hibernate-envers
+ 6.1.7.Final
+
+
+ org.springframework
+ spring-tx
+ 5.3.20
+
io.quarkus
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/E3ViolationThirdpartyLayerDependsOnJpaOutsideOfDataaccessLayer.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/E3ViolationThirdpartyLayerDependsOnJpaOutsideOfDataaccessLayer.java
new file mode 100644
index 0000000..4cc8a75
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/E3ViolationThirdpartyLayerDependsOnJpaOutsideOfDataaccessLayer.java
@@ -0,0 +1,8 @@
+package com.devonfw.sample.archunit.thirdparty;
+
+import javax.persistence.EntityManager; // Noncompliant
+
+public class E3ViolationThirdpartyLayerDependsOnJpaOutsideOfDataaccessLayer {
+ // Noncompliant
+ private EntityManager entityManager;
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/E4ViolationThirdpartyLayerDependsOnHibernateOutsideOfDataaccessLayer.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/E4ViolationThirdpartyLayerDependsOnHibernateOutsideOfDataaccessLayer.java
new file mode 100644
index 0000000..f0eb714
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/E4ViolationThirdpartyLayerDependsOnHibernateOutsideOfDataaccessLayer.java
@@ -0,0 +1,13 @@
+package com.devonfw.sample.archunit.thirdparty;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.hibernate.Session; //Noncompliant
+import org.hibernate.annotations.OrderBy; //Noncompliant
+
+public class E4ViolationThirdpartyLayerDependsOnHibernateOutsideOfDataaccessLayer {
+ @OrderBy(clause = "NAME DESC") // Noncompliant
+ Set taskList = new HashSet<>();
+ Session session; //Noncompliant
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/E1ViolationThirdpartyLayerDependsOnDiscouragedTransactionalAnnotation.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/E1ViolationThirdpartyLayerDependsOnDiscouragedTransactionalAnnotation.java
new file mode 100644
index 0000000..001d086
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/E1ViolationThirdpartyLayerDependsOnDiscouragedTransactionalAnnotation.java
@@ -0,0 +1,8 @@
+package com.devonfw.sample.archunit.thirdparty.dataaccess;
+
+import org.springframework.transaction.annotation.Transactional; // Noncompliant the use of JEE standard javax.transaction.Transactional is encouraged.
+
+@Transactional
+public class E1ViolationThirdpartyLayerDependsOnDiscouragedTransactionalAnnotation {
+
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/api/E4ViolationThirdpartyLayerDependsOnHibernateInsideApiLayer.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/api/E4ViolationThirdpartyLayerDependsOnHibernateInsideApiLayer.java
new file mode 100644
index 0000000..29f1f0f
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/api/E4ViolationThirdpartyLayerDependsOnHibernateInsideApiLayer.java
@@ -0,0 +1,7 @@
+package com.devonfw.sample.archunit.thirdparty.dataaccess.api;
+
+import org.hibernate.Session; // Noncompliant
+
+public class E4ViolationThirdpartyLayerDependsOnHibernateInsideApiLayer {
+ Session sessionFactory;
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4HibernatePositiveExample.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4HibernatePositiveExample.java
new file mode 100644
index 0000000..5a792a5
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4HibernatePositiveExample.java
@@ -0,0 +1,10 @@
+package com.devonfw.sample.archunit.thirdparty.dataaccess.impl;
+//The use is compliant because it lies inside dataaccess/impl
+import org.hibernate.Session; //compliant
+import org.hibernate.envers.Audited;
+
+public class E4HibernatePositiveExample {
+ @Audited
+ Long id;
+ Session session;
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4ViolationThirdpartyLayerDependsOnDiscouragedHibernateAnnotation.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4ViolationThirdpartyLayerDependsOnDiscouragedHibernateAnnotation.java
new file mode 100644
index 0000000..69ab719
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4ViolationThirdpartyLayerDependsOnDiscouragedHibernateAnnotation.java
@@ -0,0 +1,11 @@
+package com.devonfw.sample.archunit.thirdparty.dataaccess.impl;
+
+import org.hibernate.annotations.Entity; // Noncompliant
+
+public class E4ViolationThirdpartyLayerDependsOnDiscouragedHibernateAnnotation {
+ // Noncompliant
+ @Entity
+ class NoncompliantInnerClass{
+
+ }
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4ViolationThirdpartyLayerDependsOnHibernateEnversInternalsDirectly.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4ViolationThirdpartyLayerDependsOnHibernateEnversInternalsDirectly.java
new file mode 100644
index 0000000..e6dbb7f
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/impl/E4ViolationThirdpartyLayerDependsOnHibernateEnversInternalsDirectly.java
@@ -0,0 +1,8 @@
+package com.devonfw.sample.archunit.thirdparty.dataaccess.impl;
+
+import org.hibernate.envers.query.internal.impl.EntitiesAtRevisionQuery; // Noncompliant
+
+public class E4ViolationThirdpartyLayerDependsOnHibernateEnversInternalsDirectly {
+ //Noncompliant
+ EntitiesAtRevisionQuery nonCompliantDirectQuery = new EntitiesAtRevisionQuery(null, null, getClass(), null, false);
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/misc/E4ViolationThirdPartyLayerDependsOnHibernateEnversOutsideOfImplLayer.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/misc/E4ViolationThirdPartyLayerDependsOnHibernateEnversOutsideOfImplLayer.java
new file mode 100644
index 0000000..bd78c43
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/dataaccess/misc/E4ViolationThirdPartyLayerDependsOnHibernateEnversOutsideOfImplLayer.java
@@ -0,0 +1,8 @@
+package com.devonfw.sample.archunit.thirdparty.dataaccess.misc;
+
+import org.hibernate.envers.Audited; // Noncompliant
+
+public class E4ViolationThirdPartyLayerDependsOnHibernateEnversOutsideOfImplLayer {
+ @Audited
+ String name;
+}
diff --git a/src/main/java/com/devonfw/sample/archunit/thirdparty/service/api/E1ViolationThirdpartyLayerDependsOnJavaxTransactionalInApiLayer.java b/src/main/java/com/devonfw/sample/archunit/thirdparty/service/api/E1ViolationThirdpartyLayerDependsOnJavaxTransactionalInApiLayer.java
new file mode 100644
index 0000000..0f217e8
--- /dev/null
+++ b/src/main/java/com/devonfw/sample/archunit/thirdparty/service/api/E1ViolationThirdpartyLayerDependsOnJavaxTransactionalInApiLayer.java
@@ -0,0 +1,8 @@
+package com.devonfw.sample.archunit.thirdparty.service.api;
+
+import javax.transaction.Transactional; // Noncompliant
+
+@Transactional
+public class E1ViolationThirdpartyLayerDependsOnJavaxTransactionalInApiLayer {
+
+}