From b5cf2ddc80f4d4ab14e51df22c6cc344e6bcad53 Mon Sep 17 00:00:00 2001 From: EverettHanke Date: Mon, 11 Nov 2024 21:48:27 -0800 Subject: [PATCH] has an injectable constructor that is not public. Please ensure constructor is annotated with @activate. --- .../annotations/AnnotationVisitor.java | 28 +++++++++++++------ .../internal/annotations/messages.properties | 2 +- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/AnnotationVisitor.java b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/AnnotationVisitor.java index b5bfe5df0a..05f72a2599 100644 --- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/AnnotationVisitor.java +++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/AnnotationVisitor.java @@ -241,21 +241,29 @@ public boolean visit(TypeDeclaration type) { || (noDefaultConstructor = !(hasDefaultConstructor(type) || (hasInjectableConstructor = hasInjectableConstructor(type, problemReporter))))) { // interfaces, abstract types, non-static/non-public nested types, or types with no default constructor cannot be components - if (!errorLevel.isIgnore()) { - if (isInterface) { + if (!errorLevel.isIgnore()) + { + if (isInterface) + { problemReporter.reportProblem(annotation, null, NLS.bind(Messages.AnnotationProcessor_invalidCompImplClass_interface, type.getName().getIdentifier()), type.getName().getIdentifier()); - } else if (isAbstract) { + } else if (isAbstract) + { problemReporter.reportProblem(annotation, null, NLS.bind(Messages.AnnotationProcessor_invalidCompImplClass_abstract, type.getName().getIdentifier()), type.getName().getIdentifier()); - } else if (isNested) { + } else if (isNested) + { problemReporter.reportProblem(annotation, null, NLS.bind(Messages.AnnotationProcessor_invalidCompImplClass_notTopLevel, type.getName().getIdentifier()), type.getName().getIdentifier()); - } else if (noDefaultConstructor) { - if (specVersion.isEqualOrHigherThan(DSAnnotationVersion.V1_4)) { + } else if (noDefaultConstructor) + { + if (specVersion.isEqualOrHigherThan(DSAnnotationVersion.V1_4)) + { problemReporter.reportProblem(annotation, null, NLS.bind(Messages.AnnotationProcessor_invalidCompImplClass_compatibleConstructor, type.getName().getIdentifier()), type.getName().getIdentifier()); - } else { - if (hasInjectableConstructor) { + } else + { + if (hasInjectableConstructor) + { // TODO we should add an error marker that offers a quickfix to upgrade the spec // version to 1.4 problemReporter.reportProblem(annotation, null, @@ -269,7 +277,9 @@ public boolean visit(TypeDeclaration type) { type.getName().getIdentifier()), type.getName().getIdentifier()); } - } else { + } + else + { problemReporter.reportProblem(annotation, null, NLS.bind(Messages.AnnotationProcessor_invalidComponentImplementationClass, type.getName().getIdentifier()), type.getName().getIdentifier()); } } diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/messages.properties b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/messages.properties index c731eb2f5f..9e2271bc33 100644 --- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/messages.properties +++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/messages.properties @@ -25,7 +25,7 @@ AnnotationProcessor_invalidCompImplClass_annotation=Invalid component implementa AnnotationProcessor_invalidCompImplClass_enumeration=Invalid component implementation class ''{0}'': enumeration type. AnnotationProcessor_invalidCompImplClass_interface=Invalid component implementation class ''{0}'': interface type. AnnotationProcessor_invalidCompImplClass_noDefaultConstructor=Invalid component implementation class ''{0}'': no default constructor. -AnnotationProcessor_invalidCompImplClass_injectableConstructor=Invalid component implementation class ''{0}'': injectable constructor. +AnnotationProcessor_invalidCompImplClass_injectableConstructor=Invalid component implementation class ''{0}'': has an injectable constructor that is not public. Please ensure constructor is annotated with @activate. AnnotationProcessor_invalidCompImplClass_compatibleConstructor=Invalid component implementation class ''{0}'': no default or @Activate annotated constructor. AnnotationProcessor_invalidCompImplClass_notPublic=Invalid component implementation class ''{0}'': not a public class. AnnotationProcessor_invalidCompImplClass_notTopLevel=Invalid component implementation class ''{0}'': not a primary class or static class nested in primary type.