Я написал специальную аннотацию, содержащую метаданные для свойства и AnnotationProcessor
:
@SupportedAnnotationTypes({"<package>.Property"})
public class PropertyProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
// Get messager object
Messager messager = processingEnv.getMessager();
// Iterate through the annotations
for(TypeElement typeElement : annotations) {
// Iterate through the annotated elements
for(Element element : roundEnv.getElementsAnnotatedWith(typeElement)) {
// Get Property annotation
Property property = element.getAnnotation(Property.class);
}
}
return false;
}
}
Вот вопрос, я использовал Javassist раньше, но это зависело от класса загрузчик, и я думаю, что он не подходит для приложений OSGi. Я хочу изменить сгенерированный байт-код при компиляции класса с аннотацией Property
.