@Retention(value=RUNTIME) @Target(value=TYPE) public @interface Recorder
Recorder classes must be non final and have a public no-arg constructor.
At deployment time proxies of the recorder can be injected into BuildStep methods that
have been annotated with @Record
. Any invocations made on these proxies will be
recorded, and bytecode will be written out to be executed at runtime to make the same
sequence of invocations with the same parameters on the actual recorder objects.
Recorders can only have objects of the following types passed in:
There are some limitations on what can be recorded. Only the following objects are allowed as parameters to
recording proxies:
- primitives
- String
- Class
- Objects returned from a previous recorder invocation
- Objects with a no-arg constructor and getter/setters for all properties (or public fields)
- Objects with a constructor annotated with @RecordableConstructor with parameter names that match field names
- Any arbitrary object via the
io.quarkus.deployment.recording.RecorderContext#registerSubstitution(Class, Class, Class)
mechanism
- arrays, lists and maps of the above
Copyright © 2021 JBoss by Red Hat. All rights reserved.