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 { + +}