DATACMNS-365 - Enhanced auditing subsystem to work with accessor annotations.

Added a MappingAuditableBeanWrapperFactory to be able to use themapping metamodel to lookup annotations on persistent properties. This propagates into AuditingHandler and IsNewAwareAuditingHandler getting new constructors taking a MappingContext to set themselves up correctly. This will probably need store specific updates in the setup of the auditing infrastructure for namespace implementations and annotation based JavaConfig.

Introduced ….getPersistentProperty(Class<? extends Annotation> annotationType) on PersistentEntity to be able to access properties with a given annotation.

Updated SonarGraph architecture description and moved auditing related config classes into auditing.config package.
This commit is contained in:
Oliver Gierke
2014-03-18 15:52:19 +01:00
parent 0e7a444aba
commit e9bcca11be
14 changed files with 680 additions and 158 deletions

View File

@@ -99,6 +99,20 @@
<dependency toName="Project|spring-data-commons::Layer|Core" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Mapping" type="AllowedDependency"/>
</element>
<element type="Layer" name="Auditing">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.auditing.**"/>
</element>
<element type="Subsystem" name="Configuration">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.config.**"/>
</element>
</element>
<dependency toName="External|External" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Application" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Core" type="AllowedDependency"/>
<dependency toName="Project|spring-data-commons::Layer|Mapping" type="AllowedDependency"/>
</element>
<element type="Layer" name="Mapping">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.mapping.**"/>
@@ -135,12 +149,6 @@
<element type="IncludeTypePattern" name="**.authentication.**"/>
</element>
</element>
<element type="Subsystem" name="Configuration">
<element type="TypeFilter" name="Assignment">
<element type="WeakTypePattern" name="**.config.**"/>
</element>
<stereotype name="Unrestricted"/>
</element>
<element type="Subsystem" name="History">
<element type="TypeFilter" name="Assignment">
<element type="WeakTypePattern" name="**.history.**"/>
@@ -151,18 +159,24 @@
<element type="WeakTypePattern" name="**.support.**"/>
</element>
</element>
<element type="Subsystem" name="Auditing">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.auditing.**"/>
</element>
<stereotype name="Unrestricted"/>
</element>
<element type="Subsystem" name="Transactions">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.transaction.**"/>
</element>
<stereotype name="Unrestricted"/>
</element>
<element type="Subsystem" name="Configuration">
<element type="TypeFilter" name="Assignment">
<element type="WeakTypePattern" name="**.config.**"/>
</element>
<stereotype name="Unrestricted"/>
</element>
<element type="Subsystem" name="Geo">
<element type="TypeFilter" name="Assignment">
<element type="IncludeTypePattern" name="**.geo.**"/>
</element>
<stereotype name="Unrestricted"/>
</element>
<dependency toName="Project|spring-data-commons::Layer|Application" type="AllowedDependency"/>
</element>
<element type="Layer" name="Application">