@@ -9,8 +9,14 @@ The following sections illustrate how both <<tooling-maven-enhancement,bytecode
99Hibernate provides a https://maven.apache.org/[Maven] plugin capable of providing
1010build-time enhancement of the domain model as they are compiled as part of a Maven
1111build. See the section on <<BytecodeEnhancement>> for details
12- on the configuration settings. By default, all enhancements are disabled.
12+ on the configuration settings.
1313
14+ [[maven-enhance-goal]]
15+ ===== *Enhance Goal* =====
16+
17+ An example of using the `enhance` goal of the plugin is shown below. By default the plugin will
18+ perform bytecode enhancement for lazy initialization and dirty tracking. See <<maven-enhance-configuration, below>>
19+ for more details on the available parameters.
1420
1521.Apply the Bytecode Enhancement plugin
1622====
@@ -20,6 +26,138 @@ include::extras/maven-example.pom[]
2026----
2127====
2228
29+ [[maven-enhance-configuration]]
30+ ===== *Enhance Configuration* =====
31+
32+ [[maven-enhance-classesDirectory-parameter]]
33+ ====== `*classesDirectory*` ======
34+ This parameter points to the folder in which to look for classes to enhance.
35+ It defaults to the value of `{project.build.directory}/classes` and thus in most cases to `target/classes`.
36+ If both `classesDirectory` and <<maven-enhance-filesets-parameter,fileSets>> are set,
37+ `fileSets` takes precedence.
38+
39+ ====
40+ [source,xml]
41+ ----
42+ [...]
43+ <execution>
44+ <configuration>
45+ <classesDirectory>path-to-some-folder</classesDirectory>
46+ </configuration>
47+ [...]
48+ </execution>
49+ [...]
50+ ----
51+ ====
52+
53+ [[maven-enhance-filesets-parameter]]
54+ ====== `*fileSets*` ======
55+ This optional parameter comes in handy when you need to filter the classes that you want to enhance.
56+ More information on how to use filesets is to be found on the
57+ https://maven.apache.org/shared/file-management/fileset.html[fileset documentation page].
58+ If both <<maven-enhance-classesDirectory-parameter, classesDirectory>> and `fileSets` are set,
59+ `fileSets` takes precedence.
60+
61+ ====
62+ [source,xml]
63+ ----
64+ [...]
65+ <execution>
66+ <configuration>
67+ <fileSets>
68+ <fileset dir="path-to-some-folder">
69+ <exclude name='Baz.class' />
70+ </fileset>
71+ </fileSets>
72+ </configuration>
73+ [...]
74+ </execution>
75+ [...]
76+ ----
77+ ====
78+
79+ [[maven-enhance-enableLazyInitialization-parameter]]
80+ ===== `*enableLazyInitialization*` =====
81+ This parameter has a default value of `true`. It indicates whether the enhance goal should perform the changes
82+ to enable <<BytecodeEnhancement-lazy-loading,lazy loading>>.
83+ The parameter has been deprecated for removal. After this removal, <<BytecodeEnhancement-lazy-loading,lazy loading>>
84+ will always be enabled.
85+
86+ ====
87+ [source,xml]
88+ ----
89+ [...]
90+ <execution>
91+ <configuration>
92+ <enableLazyInitialization>false</enableLazyInitialization>
93+ </configuration>
94+ [...]
95+ </execution>
96+ [...]
97+ ----
98+ ====
99+
100+ [[maven-enhance-enableDirtyTracking-parameter]]
101+ ===== `*enableDirtyTracking*` =====
102+ This parameter has a default value of `true`. It indicates whether the enhance task should perform the changes
103+ to enable <<BytecodeEnhancement-dirty-tracking,dirty tracking>>.
104+ The parameter has been deprecated for removal. After this removal, <<BytecodeEnhancement-dirty-tracking,dirty tracking>>
105+ will always be enabled.
106+
107+ ====
108+ [source,xml]
109+ ----
110+ [...]
111+ <execution>
112+ <configuration>
113+ <enableDirtyTracking>false</enableDirtyTracking>
114+ </configuration>
115+ [...]
116+ </execution>
117+ [...]
118+ ----
119+ ====
120+
121+ [[maven-enhance-enableAssociationManagement-parameter]]
122+ ===== `*enableAssociationManagement*` =====
123+ This parameter has a default value of `false`. It indicates whether the enhance task should perform the changes
124+ to enable <<BytecodeEnhancement-dirty-tracking-bidirectional,association management>>.
125+
126+ ====
127+ [source,xml]
128+ ----
129+ [...]
130+ <execution>
131+ <configuration>
132+ <enableAssociationManagement>true</enableAssociationManagement>
133+ </configuration>
134+ [...]
135+ </execution>
136+ [...]
137+ ----
138+ ====
139+
140+ [[maven-enhance-enableExtendedEnhancement-paremeter]]
141+ ===== `*enableExtendedEnhancement*` =====
142+ This parameter has a default value of `false`. It indicates whether the enhance task should perform the changes
143+ to enable the extended enhancement: enhancement of non-entities to trigger lazy-loading and inline dirty tracking
144+ even when accessing entity fields directly..
145+
146+ ====
147+ [source,xml]
148+ ----
149+ [...]
150+ <execution>
151+ <configuration>
152+ <enableExtendedEnhancement>true</enableExtendedEnhancement>
153+ </configuration>
154+ [...]
155+ </execution>
156+ [...]
157+ ----
158+ ====
159+
160+
23161[[tooling-maven-modelgen]]
24162==== Static Metamodel Generation
25163
0 commit comments