HHH-17882 accept a list of warnings to suppress in addSuppressWarningsAnnotation
Signed-off-by: Gavin King <gavin@hibernate.org>
This commit is contained in:
parent
b88d496c76
commit
3cfec2fd91
|
@ -120,5 +120,5 @@ part of the `javac` execution using standard link:{ann-proc-options}[-A] options
|
||||||
`-AlazyXmlParsing=[true|false]`:: Controls whether the processor should attempt to determine whether any `orm.xml` files have changed.
|
`-AlazyXmlParsing=[true|false]`:: Controls whether the processor should attempt to determine whether any `orm.xml` files have changed.
|
||||||
`-AaddGeneratedAnnotation=[true|false]`:: Controls whether the processor should add `@jakarta.annotation.Generated` to the generated classes.
|
`-AaddGeneratedAnnotation=[true|false]`:: Controls whether the processor should add `@jakarta.annotation.Generated` to the generated classes.
|
||||||
`-addGenerationDate=[true|false]`:: Controls whether the processor should add `@jakarta.annotation.Generated#date`.
|
`-addGenerationDate=[true|false]`:: Controls whether the processor should add `@jakarta.annotation.Generated#date`.
|
||||||
`-addSuppressWarningsAnnotation=[true|false]`:: Controls whether the processor should add `@SuppressWarnings({"deprecation","rawtypes"})` to the generated classes.
|
`-addSuppressWarningsAnnotation=[warning[,warning]*|true]`:: A comma-separated list of warnings to suppress, or simply `true` if `@SuppressWarnings({"deprecation","rawtypes"})` should be added to the generated classes.
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ public final class ClassWriter {
|
||||||
pw.println( writeGeneratedAnnotation( entity, context ) );
|
pw.println( writeGeneratedAnnotation( entity, context ) );
|
||||||
}
|
}
|
||||||
if ( context.addSuppressWarningsAnnotation() ) {
|
if ( context.addSuppressWarningsAnnotation() ) {
|
||||||
pw.println( writeSuppressWarnings() );
|
pw.println( writeSuppressWarnings(context) );
|
||||||
}
|
}
|
||||||
entity.inheritedAnnotations().forEach(pw::println);
|
entity.inheritedAnnotations().forEach(pw::println);
|
||||||
|
|
||||||
|
@ -200,8 +200,14 @@ public final class ClassWriter {
|
||||||
return generatedAnnotation.toString();
|
return generatedAnnotation.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String writeSuppressWarnings() {
|
private static String writeSuppressWarnings(Context context) {
|
||||||
return "@SuppressWarnings({\"deprecation\", \"rawtypes\"})";
|
final StringBuilder annotation = new StringBuilder("@SuppressWarnings({");
|
||||||
|
final String[] warnings = context.getSuppressedWarnings();
|
||||||
|
for (int i = 0; i < warnings.length; i++) {
|
||||||
|
if ( i>0 ) annotation.append(", ");
|
||||||
|
annotation.append('"').append(warnings[i]).append('"');
|
||||||
|
}
|
||||||
|
return annotation.append("})").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String writeScopeAnnotation(Metamodel entity) {
|
private static String writeScopeAnnotation(Metamodel entity) {
|
||||||
|
|
|
@ -83,7 +83,7 @@ public final class Context {
|
||||||
private boolean addNonnullAnnotation = false;
|
private boolean addNonnullAnnotation = false;
|
||||||
private boolean addGeneratedAnnotation = true;
|
private boolean addGeneratedAnnotation = true;
|
||||||
private boolean addGenerationDate;
|
private boolean addGenerationDate;
|
||||||
private boolean addSuppressWarningsAnnotation;
|
private String[] suppressedWarnings;
|
||||||
private boolean addTransactionScopedAnnotation;
|
private boolean addTransactionScopedAnnotation;
|
||||||
private AccessType persistenceUnitDefaultAccessType;
|
private AccessType persistenceUnitDefaultAccessType;
|
||||||
private boolean generateJakartaDataStaticMetamodel;
|
private boolean generateJakartaDataStaticMetamodel;
|
||||||
|
@ -185,11 +185,15 @@ public final class Context {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addSuppressWarningsAnnotation() {
|
public boolean addSuppressWarningsAnnotation() {
|
||||||
return addSuppressWarningsAnnotation;
|
return suppressedWarnings != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAddSuppressWarningsAnnotation(boolean addSuppressWarningsAnnotation) {
|
public String[] getSuppressedWarnings() {
|
||||||
this.addSuppressWarningsAnnotation = addSuppressWarningsAnnotation;
|
return suppressedWarnings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSuppressedWarnings(String[] suppressedWarnings) {
|
||||||
|
this.suppressedWarnings = suppressedWarnings;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addTransactionScopedAnnotation() {
|
public boolean addTransactionScopedAnnotation() {
|
||||||
|
|
|
@ -124,7 +124,9 @@ public class HibernateProcessor extends AbstractProcessor {
|
||||||
public static final String ADD_GENERATION_DATE = "addGenerationDate";
|
public static final String ADD_GENERATION_DATE = "addGenerationDate";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls whether {@code @SuppressWarnings({"deprecation","rawtypes"})} should be added to the generated classes
|
* A comma-separated list of warnings to suppress, or simply {@code true}
|
||||||
|
* if {@code @SuppressWarnings({"deprecation","rawtypes"})} should be
|
||||||
|
* added to the generated classes.
|
||||||
*/
|
*/
|
||||||
public static final String ADD_SUPPRESS_WARNINGS_ANNOTATION = "addSuppressWarningsAnnotation";
|
public static final String ADD_SUPPRESS_WARNINGS_ANNOTATION = "addSuppressWarningsAnnotation";
|
||||||
|
|
||||||
|
@ -213,7 +215,16 @@ public class HibernateProcessor extends AbstractProcessor {
|
||||||
|
|
||||||
context.setAddGenerationDate( parseBoolean( options.get( ADD_GENERATION_DATE ) ) );
|
context.setAddGenerationDate( parseBoolean( options.get( ADD_GENERATION_DATE ) ) );
|
||||||
|
|
||||||
context.setAddSuppressWarningsAnnotation( parseBoolean( options.get( ADD_SUPPRESS_WARNINGS_ANNOTATION ) ) );
|
String suppressedWarnings = options.get( ADD_SUPPRESS_WARNINGS_ANNOTATION );
|
||||||
|
if ( suppressedWarnings != null ) {
|
||||||
|
if ( parseBoolean(suppressedWarnings) ) {
|
||||||
|
// legacy behavior from HHH-12068
|
||||||
|
context.setSuppressedWarnings(new String[] {"deprecation", "rawtypes"});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
context.setSuppressedWarnings( suppressedWarnings.replace(" ","").split(",") );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return parseBoolean( options.get( FULLY_ANNOTATION_CONFIGURED_OPTION ) );
|
return parseBoolean( options.get( FULLY_ANNOTATION_CONFIGURED_OPTION ) );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue