]> source.dussan.org Git - pf4j.git/commitdiff
improve *ExtensionStorage.read methods, remove comments and whitespaces
authorDecebal Suiu <decebal.suiu@gmail.com>
Mon, 4 Jan 2016 10:00:33 +0000 (12:00 +0200)
committerDecebal Suiu <decebal.suiu@gmail.com>
Mon, 4 Jan 2016 10:00:33 +0000 (12:00 +0200)
pf4j/src/main/java/ro/fortsoft/pf4j/processor/LegacyExtensionStorage.java
pf4j/src/main/java/ro/fortsoft/pf4j/processor/ServiceProviderExtensionStorage.java

index 84f9720738118a0408afa1a68461cd83c76a578c..e742178032e228ebe02a85b66d362f8fc7affd81 100644 (file)
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 /**
  * @author Decebal Suiu
@@ -34,6 +35,9 @@ public class LegacyExtensionStorage extends ExtensionStorage {
 
     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);
     }
@@ -43,11 +47,16 @@ public class LegacyExtensionStorage extends ExtensionStorage {
 
         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<>();
@@ -73,6 +82,7 @@ public class LegacyExtensionStorage extends ExtensionStorage {
             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);
index 0cb1264afc2343f223de6343b17a1fd1705e314f..8fb6b358dce8b3c8a4f531ea293edca1b7770ec0 100644 (file)
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 /**
  * @author Decebal Suiu
@@ -34,6 +35,9 @@ public class ServiceProviderExtensionStorage extends ExtensionStorage {
 
     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);
     }
@@ -43,7 +47,11 @@ public class ServiceProviderExtensionStorage extends ExtensionStorage {
 
         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();
@@ -78,10 +86,15 @@ public class ServiceProviderExtensionStorage extends ExtensionStorage {
                 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();
@@ -93,4 +106,9 @@ public class ServiceProviderExtensionStorage extends ExtensionStorage {
         }
     }
 
+    private boolean isExtensionOld(String extensionPoint, String extension) {
+        return processor.getOldExtensions().containsKey(extensionPoint)
+            && processor.getOldExtensions().get(extensionPoint).contains(extension);
+    }
+
 }