kbuntrock commented on code in PR #91:
URL: 
https://github.com/apache/maven-build-cache-extension/pull/91#discussion_r1315095649


##########
src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java:
##########
@@ -165,45 +185,101 @@ public MavenProjectInput(
         this.repoSystem = repoSystem;
         this.remoteCache = remoteCache;
         Properties properties = project.getProperties();
-        this.dirGlob = properties.getProperty(CACHE_INPUT_GLOB_NAME, 
config.getDefaultGlob());
+        this.projectGlob = properties.getProperty(CACHE_INPUT_GLOB_NAME, 
config.getDefaultGlob());
         this.processPlugins =
                 
Boolean.parseBoolean(properties.getProperty(CACHE_PROCESS_PLUGINS, 
config.isProcessPlugins()));
         this.tmpDir = System.getProperty("java.io.tmpdir");
 
-        org.apache.maven.model.Build build = project.getBuild();
-        filteredOutPaths = new ArrayList<>(Arrays.asList(
-                normalizedPath(build.getDirectory()), // target by default
-                normalizedPath(build.getOutputDirectory()),
-                normalizedPath(build.getTestOutputDirectory())));
+        this.baseDirectoryGlobPrefix = baseDirPath.toString().replace("\\", 
"/") + "/";
+
+        addDefaultExcludeSection(project);
 
         List<Exclude> excludes = config.getGlobalExcludePaths();
         for (Exclude excludePath : excludes) {
-            filteredOutPaths.add(Paths.get(excludePath.getValue()));
+            addToExcludedSection(excludePath.getValue(), true);
         }
 
         for (String propertyName : properties.stringPropertyNames()) {
             if (propertyName.startsWith(CACHE_EXCLUDE_NAME)) {
                 String propertyValue = properties.getProperty(propertyName);
-                Path path = Paths.get(propertyValue);
-                filteredOutPaths.add(path);
+                addToExcludedSection(propertyValue, true);
+
                 if (LOGGER.isDebugEnabled()) {
                     LOGGER.debug(
-                            "Adding an excludePath from property '{}', values 
is '{}', path is '{}' ",
-                            propertyName,
-                            propertyValue,
-                            path);
+                            "Adding an excludePath from property '{}', value 
is '{}'", propertyName, propertyValue);
                 }
             }
         }
         CacheUtils.debugPrintCollection(
-                LOGGER,
-                filteredOutPaths,
-                "List of excluded paths (checked either by fileName or by 
startsWith prefix)",
-                "Path entry");
+                LOGGER, inputExcludePathMatcherString, "List of excluded glob 
patterns", "Pattern");
 
         this.fileComparator = new PathIgnoringCaseComparator();
     }
 
+    private void addDefaultExcludeSection(MavenProject project) {
+
+        Build build = project.getBuild();
+        Path buildDirectoryPath = normalizedPath(build.getDirectory());
+        Path outputDirectoryPath = normalizedPath(build.getOutputDirectory());
+        Path testOutputDirectoryPath = 
normalizedPath(build.getTestOutputDirectory());
+        addToExcludedSection(
+                
convertToPathMatcherFileSeperator(buildDirectoryPath.toString()) + 
GLOB_SX_FULL_SUB_TREE,
+                false); // target by default
+
+        if (!outputDirectoryPath.startsWith(buildDirectoryPath)) {
+            addToExcludedSection(
+                    
convertToPathMatcherFileSeperator(outputDirectoryPath.toString()) + 
GLOB_SX_FULL_SUB_TREE,
+                    false); // target/classes by default
+        }
+        if (!testOutputDirectoryPath.startsWith(buildDirectoryPath)) {
+            addToExcludedSection(
+                    
convertToPathMatcherFileSeperator(testOutputDirectoryPath.toString()) + 
GLOB_SX_FULL_SUB_TREE,
+                    false); // target/test-classes by default
+        }
+    }
+
+    private String convertToPathMatcherFileSeperator(String path) {
+        return path.replace("\\", "/");
+    }
+
+    /**
+     * Add a value from the excluded section list to the directories and/or 
the filenames ban list.
+     * @param excludedValue a value from the exclude list
+     */
+    private void addToExcludedSection(String excludedValue, boolean 
addProjectBaseDir) {

Review Comment:
   it's because of the default exclude sections. Their values have already the 
project dir prepended. But I'm open to suggestions.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to