public class AnnotationScanner {
private static List<Class<?>> scannedClasses = new ArrayList<>();
public static void scanClasses(File directory) {
for (File file : directory.listFiles()) {
if (file.isDirectory()) {
scanClasses(file);
} else if (file.getName().endsWith(".class")) {
Class<?> clazz = parseClass(file);
scannedClasses.add(clazz);
}
}
}
public static boolean isClassScanned(Class<?> clazz) {
return scannedClasses.contains(clazz);
}
}
@Activate
public class MyAnnotationProcessor {
private boolean initialized = false;
@Reference
private MyService myService;
@PostConstruct
public void init() {
if (shouldLoad()) {
initialized = true;
}
}
public void processAnnotations() {
if (!initialized) {
return;
}
}
private boolean shouldLoad() {
}
}
public class MyCache {
private static Map<String, Object> cache = new HashMap<>();
public static <T> T get(String key) {
return (T) cache.get(key);
}
public static void put(String key, Object value) {
cache.put(key, value);
}
}