import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Pattern;
/**
* @author Decebal Suiu
public static final String EXTENSIONS_RESOURCE = "META-INF/extensions.idx";
+ private static final Pattern COMMENT = Pattern.compile("#.*");
+ private static final Pattern WHITESPACE = Pattern.compile("\\s+");
+
public LegacyExtensionStorage(ExtensionAnnotationProcessor processor) {
super(processor);
}
String line;
while ((line = bufferedReader.readLine()) != null) {
- entries.add(line);
+ line = COMMENT.matcher(line).replaceFirst("");
+ line = WHITESPACE.matcher(line).replaceAll("");
+ if (line.length() > 0) {
+ entries.add(line);
+ }
}
bufferedReader.close();
}
+
@Override
public Map<String, Set<String>> read() {
Map<String, Set<String>> extensions = new HashMap<>();
FileObject file = getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", EXTENSIONS_RESOURCE);
BufferedWriter writer = new BufferedWriter(file.openWriter());
writer.write("# Generated by PF4J"); // write header
+ writer.newLine();
for (Map.Entry<String, Set<String>> entry : extensions.entrySet()) {
for (String extension : entry.getValue()) {
writer.write(extension);
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.regex.Pattern;
/**
* @author Decebal Suiu
public static final String EXTENSIONS_RESOURCE = "META-INF/services";
+ private static final Pattern COMMENT = Pattern.compile("#.*");
+ private static final Pattern WHITESPACE = Pattern.compile("\\s+");
+
public ServiceProviderExtensionStorage(ExtensionAnnotationProcessor processor) {
super(processor);
}
String line;
while ((line = bufferedReader.readLine()) != null) {
- entries.add(line);
+ line = COMMENT.matcher(line).replaceFirst("");
+ line = WHITESPACE.matcher(line).replaceAll("");
+ if (line.length() > 0) {
+ entries.add(line);
+ }
}
bufferedReader.close();
FileObject file = getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", EXTENSIONS_RESOURCE
+ "/" + extensionPoint);
BufferedWriter writer = new BufferedWriter(file.openWriter());
+ // write header
writer.write("# Generated by PF4J"); // write header
+ writer.newLine();
+ // write extensions
for (String extension : entry.getValue()) {
- if (processor.getOldExtensions().containsKey(extensionPoint))
writer.write(extension);
+ if (!isExtensionOld(extensionPoint, extension)) {
+ writer.write(" # pf4j extension");
+ }
writer.newLine();
}
writer.close();
}
}
+ private boolean isExtensionOld(String extensionPoint, String extension) {
+ return processor.getOldExtensions().containsKey(extensionPoint)
+ && processor.getOldExtensions().get(extensionPoint).contains(extension);
+ }
+
}