You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jl...@apache.org on 2017/09/21 18:08:56 UTC

[11/12] incubator-netbeans-tools git commit: Testing bat files.

Testing bat files.


Project: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/commit/864dfc5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/tree/864dfc5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/diff/864dfc5b

Branch: refs/heads/master
Commit: 864dfc5b1987226ad3561c7c07e77b3ea9962b42
Parents: 9bea96e
Author: Jan Lahoda <jl...@netbeans.org>
Authored: Sun Sep 17 10:18:02 2017 +0200
Committer: Jan Lahoda <jl...@netbeans.org>
Committed: Sun Sep 17 10:18:02 2017 +0200

----------------------------------------------------------------------
 convert/src/convert/CategorizeLicenses.java     | 48 ++++++++++----------
 convert/src/convert/Convert.java                | 38 ++++++++++++++++
 .../test/convert/CategorizeLicensesTest.java    |  4 +-
 3 files changed, 65 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/blob/864dfc5b/convert/src/convert/CategorizeLicenses.java
----------------------------------------------------------------------
diff --git a/convert/src/convert/CategorizeLicenses.java b/convert/src/convert/CategorizeLicenses.java
index a492a17..ee22b8c 100644
--- a/convert/src/convert/CategorizeLicenses.java
+++ b/convert/src/convert/CategorizeLicenses.java
@@ -36,6 +36,7 @@ import java.util.function.Function;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 public class CategorizeLicenses {
 
@@ -123,7 +124,7 @@ public class CategorizeLicenses {
         }
     }
     
-    private static final Map<String, Function<String, Description>> extension2Convertor = new HashMap<>();
+    private static final Map<String, Collection<Function<String, Description>>> extension2Convertor = new HashMap<>();
     
     static {
         enterExtensions(code -> snipLicense(code, "/\\*+", "\\*+/", "^[ \t]*\\**[ \t]*", CommentType.JAVA),
@@ -131,33 +132,30 @@ public class CategorizeLicenses {
         enterExtensions(code -> snipLicense(code, "<!--+", "-+->", "^[ \t]*(-[ \t]*)?", CommentType.XML),
                         "html", "xsd", "xsl", "dtd", "settings", "wstcgrp", "wstcref",
                         "wsgrp", "xml", "xslt");
-        enterExtensions(code -> snipLicenseBundle(code, "#!.*"), "sh");
-        enterExtensions(code -> snipLicenseBundle(code, null), "properties");
+        enterExtensions(code -> snipLicenseBundle(code, "#!.*", "#", CommentType.PROPERTIES), "sh");
+        enterExtensions(code -> snipLicenseBundle(code, null, "#", CommentType.PROPERTIES), "properties");
+        enterExtensions(code -> snipLicenseBundle(code, null, "rem", CommentType.BAT1), "bat");
+        enterExtensions(code -> snipLicenseBundle(code, null, "@rem", CommentType.BAT2), "bat");
     }
     
     private static void enterExtensions(Function<String, Description> convertor, String... extensions) {
         for (String ext : extensions) {
-            extension2Convertor.put(ext, convertor);
+            extension2Convertor.computeIfAbsent(ext, x -> new ArrayList<>()).add(convertor);
         }
     }
 
     public static Description snipUnifiedLicenseOrNull(String code, Path file) {
         String fn = file.getFileName().toString();
         String ext = fn.substring(fn.lastIndexOf('.') + 1);
-        Function<String, Description> preferredConvertor = extension2Convertor.get(ext);
-        Description desc = preferredConvertor != null ? preferredConvertor.apply(code) : null;
-        
-        if (desc == null) {
-            for (Function<String, Description> convertor : extension2Convertor.values()) {
-                desc = convertor.apply(code);
-                
-                if (desc != null) {
-                    return desc;
-                }
-            }
-        }
-        
-        return desc;
+        return Stream.concat(extension2Convertor.getOrDefault(ext, Collections.emptyList())
+                                                .stream(),
+                             extension2Convertor.values()
+                                                .stream()
+                                                .flatMap(c -> c.stream()))
+              .map(c -> c.apply(code))
+              .filter(desc -> desc != null)
+              .findFirst()
+              .orElse(null);
     }
 
     private static Description snipLicense(String code, String commentStart, String commentEnd, String normalizeLines, CommentType commentType) {
@@ -176,7 +174,7 @@ public class CategorizeLicenses {
         return createUnifiedDescriptionOrNull(startM.start(), endM.end(), lic, commentType);
     }
     
-    public static Description snipLicenseBundle(String code, String firstLinePattern) {
+    public static Description snipLicenseBundle(String code, String firstLinePattern, String commentMarker, CommentType commentType) {
         StringBuilder res = new StringBuilder();
         boolean firstLine = true;
         int start = -1;
@@ -193,8 +191,8 @@ public class CategorizeLicenses {
                 continue;
             if (firstLine && line.trim().isEmpty())
                 continue;
-            if (line.startsWith("#")) {
-                String part = line.substring(1).trim();
+            if (line.startsWith(commentMarker)) {
+                String part = line.substring(commentMarker.length()).trim();
                 if (firstLine && part.isEmpty())
                     continue;
                 if (firstLine) {
@@ -207,10 +205,10 @@ public class CategorizeLicenses {
                     end = next;
                 }
             } else {
-                return createUnifiedDescriptionOrNull(start, end, res.toString(), CommentType.PROPERTIES);
+                return createUnifiedDescriptionOrNull(start, end, res.toString(), commentType);
             }
         }
-        return createUnifiedDescriptionOrNull(start, end, res.toString(), CommentType.PROPERTIES);
+        return createUnifiedDescriptionOrNull(start, end, res.toString(), commentType);
     }
 
     private static Description createUnifiedDescriptionOrNull(int start, int end, String lic, CommentType commentType) {
@@ -249,6 +247,8 @@ public class CategorizeLicenses {
     public enum CommentType {
         JAVA,
         XML,
-        PROPERTIES;
+        PROPERTIES,
+        BAT1,
+        BAT2;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/blob/864dfc5b/convert/src/convert/Convert.java
----------------------------------------------------------------------
diff --git a/convert/src/convert/Convert.java b/convert/src/convert/Convert.java
index 1cd72f2..240c5a6 100644
--- a/convert/src/convert/Convert.java
+++ b/convert/src/convert/Convert.java
@@ -138,6 +138,42 @@ public class Convert {
             "# specific language governing permissions and limitations\n" +
             "# under the License.\n";
 
+    private static final String BAT1_OUTPUT =
+            "rem Licensed to the Apache Software Foundation (ASF) under one\n" +
+            "rem or more contributor license agreements.  See the NOTICE file\n" +
+            "rem distributed with this work for additional information\n" +
+            "rem regarding copyright ownership.  The ASF licenses this file\n" +
+            "rem to you under the Apache License, Version 2.0 (the\n" +
+            "rem \"License\"); you may not use this file except in compliance\n" +
+            "rem with the License.  You may obtain a copy of the License at\n" +
+            "rem\n" +
+            "rem   http://www.apache.org/licenses/LICENSE-2.0\n" +
+            "rem\n" +
+            "rem Unless required by applicable law or agreed to in writing,\n" +
+            "rem software distributed under the License is distributed on an\n" +
+            "rem \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n" +
+            "rem KIND, either express or implied.  See the License for the\n" +
+            "rem specific language governing permissions and limitations\n" +
+            "rem under the License.\n";
+
+    private static final String BAT2_OUTPUT =
+            "@rem Licensed to the Apache Software Foundation (ASF) under one\n" +
+            "@rem or more contributor license agreements.  See the NOTICE file\n" +
+            "@rem distributed with this work for additional information\n" +
+            "@rem regarding copyright ownership.  The ASF licenses this file\n" +
+            "@rem to you under the Apache License, Version 2.0 (the\n" +
+            "@rem \"License\"); you may not use this file except in compliance\n" +
+            "@rem with the License.  You may obtain a copy of the License at\n" +
+            "@rem\n" +
+            "@rem   http://www.apache.org/licenses/LICENSE-2.0\n" +
+            "@rem\n" +
+            "@rem Unless required by applicable law or agreed to in writing,\n" +
+            "@rem software distributed under the License is distributed on an\n" +
+            "@rem \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n" +
+            "@rem KIND, either express or implied.  See the License for the\n" +
+            "@rem specific language governing permissions and limitations\n" +
+            "@rem under the License.\n";
+
     public static void main(String[] args) throws IOException {
         if (args.length != 1) {
             System.err.println("Use: Convert <source-directory>");
@@ -176,6 +212,8 @@ public class Convert {
             case JAVA: outputLicense = JAVA_OUTPUT; break;
             case XML: outputLicense = XML_OUTPUT; break;
             case PROPERTIES: outputLicense = BUNDLE_OUTPUT; break;
+            case BAT1: outputLicense = BAT1_OUTPUT; break;
+            case BAT2: outputLicense = BAT2_OUTPUT; break;
             default:
                 System.err.println("cannot rewrite: " + file);
                 return ;

http://git-wip-us.apache.org/repos/asf/incubator-netbeans-tools/blob/864dfc5b/convert/test/convert/CategorizeLicensesTest.java
----------------------------------------------------------------------
diff --git a/convert/test/convert/CategorizeLicensesTest.java b/convert/test/convert/CategorizeLicensesTest.java
index e77e4f9..960b2a3 100644
--- a/convert/test/convert/CategorizeLicensesTest.java
+++ b/convert/test/convert/CategorizeLicensesTest.java
@@ -41,7 +41,9 @@ public class CategorizeLicensesTest {
                             "\n";
         CategorizeLicenses.Description desc =
                 CategorizeLicenses.snipLicenseBundle(code,
-                                                     null);
+                                                     null,
+                                                     "#",
+                                                     CategorizeLicenses.CommentType.PROPERTIES);
         assertEquals("CDDL\nlic", desc.header);
         assertEquals("#CDDL\n#\n#lic\n", code.substring(desc.start, desc.end));
     }