-
-
Notifications
You must be signed in to change notification settings - Fork 193
Mixin Java System Properties
Mumfrey edited this page Jun 4, 2015
·
5 revisions
The following table summaries the Java System Properties
supported by Mixin to enable the various debugging and auditing features. Set any property to true
to enable the option:
System Property | Description |
---|---|
mixin.debug |
Enables all mixin debug options |
mixin.debug.export |
The export debug option causes the mixin processor to emit post-mixin bytecode to disk for all mixin targets. The bytecode data are output to a typical package/class structure under the .mixin.out directory under your run directory. |
mixin.debug.verify |
The verify option runs ASM's CheckClassAdapter on the post-mixin bytecode in order to check that mixin transformations have been applied correctly. This option is only intended for use when working on the Mixin library itself and it is not recommended to enable it during general debugging of mixins themselves. |
mixin.debug.verbose |
The verbose option promotes all DEBUG -level logging messages generated by the mixin processor to INFO level so they are emitted to the console at runtime. This is a useful option to enabled when developing with mixins as it allows more interactive monitoring of the mixin application process. |
mixin.dumpTargetOnFailure |
Sometimes a mixin will fail with a cryptic message such as a shadow target not being present in the target or other unexpected error which indicates the target class is not in the state expected by a particular mixin. Sometimes this may be because another transformer is mutating the bytecode in the way that the mixin transformer cannot anticipate, or other unexpected changes to the target class have happened. Enabling this option causes InvalidMixinException and other runtime mixin failures to dump the incoming (un-mixed-in) class bytecode to disk. This allows the target class bytecode to then be inspected with javap or a Java Disassembler to determine the cause of the mismatch. |
mixin.checks |
Enables all mixin check operations |
mixin.checks.interfaces |
Enables Interface Implementation Audit Mode. With this mode enabled, the mixin processor will output an audit report for every mixin applied which provides a summary of which interface methods are declared by class methods but are not implemented by the class or any superclasses, in essence which methods will cause an The report is generated to |
mixin.ignoreConstraints |
Disables constraint checking, demotes constraint violations from fatal errors to only output a warning. Useful in development or for in-the-wild testing of out-of-band targets. |