Skip to content

Commit 71da5df

Browse files
authored
Add the doma.trace option (#1246)
2 parents 61a0a4c + d4d44ab commit 71da5df

File tree

11 files changed

+41
-3
lines changed

11 files changed

+41
-3
lines changed

doma-core/src/main/java/org/seasar/doma/message/Message.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -930,6 +930,7 @@ public enum Message implements MessageResource {
930930
"If a method annotated with @MultiInsert targets immutable entities for insertion, the return type must be org.seasar.doma.jdbc.MultiResult."
931931
+ "The type argument of org.seasar.doma.jdbc.MultiResult must be the immutable entity class."),
932932
DOMA4462("The property \"{0}\" is not found in the entity class \"{1}\"."),
933+
DOMA4463("'{'\"execTimeMillis\": {0}, \"processor\": \"{1}\", \"element\": \"{2}\"'}'"),
933934

934935
// other
935936
DOMA5001(

doma-processor/src/main/java/org/seasar/doma/internal/apt/Options.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public final class Options {
2727

2828
public static final String DEBUG = "doma.debug";
2929

30+
public static final String TRACE = "doma.trace";
31+
3032
public static final String DAO_PACKAGE = "doma.dao.package";
3133

3234
public static final String DAO_SUBPACKAGE = "doma.dao.subpackage";
@@ -122,6 +124,11 @@ public Date getDate() {
122124
return new Date();
123125
}
124126

127+
public boolean isTraceEnabled() {
128+
String trace = getOption(TRACE);
129+
return Boolean.parseBoolean(trace);
130+
}
131+
125132
public boolean isDebugEnabled() {
126133
String debug = getOption(DEBUG);
127134
return Boolean.parseBoolean(debug);

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/AbstractProcessor.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.io.StringWriter;
55
import java.io.Writer;
66
import java.lang.annotation.Annotation;
7+
import java.util.concurrent.TimeUnit;
78
import java.util.function.Consumer;
89
import java.util.function.Supplier;
910
import javax.annotation.processing.ProcessingEnvironment;
@@ -63,7 +64,18 @@ private <E extends Element> void handleElement(
6364
.debug(Message.DOMA4090, new Object[] {getClass().getName(), elementNameSupplier.get()});
6465
}
6566
try {
66-
handler.accept(element);
67+
if (ctx.getOptions().isTraceEnabled()) {
68+
long startTime = System.nanoTime();
69+
handler.accept(element);
70+
long endTime = System.nanoTime();
71+
long execTimeMillis = TimeUnit.NANOSECONDS.toMillis(endTime - startTime);
72+
ctx.getReporter()
73+
.debug(
74+
Message.DOMA4463,
75+
new Object[] {execTimeMillis, getClass().getName(), elementNameSupplier.get()});
76+
} else {
77+
handler.accept(element);
78+
}
6779
} catch (AptException e) {
6880
ctx.getReporter().report(e);
6981
} catch (AptIllegalOptionException e) {

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/DaoProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
@SupportedAnnotationTypes({"org.seasar.doma.Dao"})
2525
@SupportedOptions({
2626
Options.TEST,
27+
Options.TRACE,
2728
Options.DEBUG,
2829
Options.DAO_PACKAGE,
2930
Options.DAO_SUBPACKAGE,

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/DataTypeProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
Options.VERSION_VALIDATION,
1313
Options.RESOURCES_DIR,
1414
Options.TEST,
15+
Options.TRACE,
1516
Options.DEBUG,
1617
Options.CONFIG_PATH
1718
})

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/DomainConvertersProcessor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,13 @@
1919
* @since 1.25.0
2020
*/
2121
@SupportedAnnotationTypes({"org.seasar.doma.DomainConverters"})
22-
@SupportedOptions({Options.RESOURCES_DIR, Options.TEST, Options.DEBUG, Options.CONFIG_PATH})
22+
@SupportedOptions({
23+
Options.RESOURCES_DIR,
24+
Options.TEST,
25+
Options.TRACE,
26+
Options.DEBUG,
27+
Options.CONFIG_PATH
28+
})
2329
public class DomainConvertersProcessor extends AbstractProcessor {
2430

2531
public DomainConvertersProcessor() {

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/DomainProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
Options.RESOURCES_DIR,
1414
Options.LOMBOK_VALUE,
1515
Options.TEST,
16+
Options.TRACE,
1617
Options.DEBUG,
1718
Options.CONFIG_PATH
1819
})

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/EmbeddableProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
Options.LOMBOK_VALUE,
2525
Options.LOMBOK_ALL_ARGS_CONSTRUCTOR,
2626
Options.TEST,
27+
Options.TRACE,
2728
Options.DEBUG,
2829
Options.CONFIG_PATH,
2930
Options.METAMODEL_ENABLED,

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/EntityProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
Options.LOMBOK_VALUE,
3333
Options.LOMBOK_ALL_ARGS_CONSTRUCTOR,
3434
Options.TEST,
35+
Options.TRACE,
3536
Options.DEBUG,
3637
Options.CONFIG_PATH,
3738
Options.METAMODEL_ENABLED,

doma-processor/src/main/java/org/seasar/doma/internal/apt/processor/ExternalDomainProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
Options.VERSION_VALIDATION,
2222
Options.RESOURCES_DIR,
2323
Options.TEST,
24+
Options.TRACE,
2425
Options.DEBUG,
2526
Options.CONFIG_PATH
2627
})

0 commit comments

Comments
 (0)