[ https://issues.apache.org/jira/browse/MBUILDCACHE-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17839259#comment-17839259 ]
ASF GitHub Bot commented on MBUILDCACHE-86: ------------------------------------------- hboutemy commented on code in PR #104: URL: https://github.com/apache/maven-build-cache-extension/pull/104#discussion_r1573334304 ########## src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java: ########## @@ -92,16 +92,17 @@ import static org.apache.maven.buildcache.xml.CacheConfigImpl.CACHE_ENABLED_PROPERTY_NAME; import static org.apache.maven.buildcache.xml.CacheConfigImpl.CACHE_SKIP; import static org.apache.maven.buildcache.xml.CacheConfigImpl.RESTORE_GENERATED_SOURCES_PROPERTY_NAME; +import static org.apache.maven.buildcache.xml.CacheConfigImpl.RESTORE_ON_DISK_ARTEFACTS_PROPERTY_NAME; Review Comment: s/ARTEFACT/ARTIFACT/ ########## src/main/java/org/apache/maven/buildcache/artifact/OutputType.java: ########## @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.buildcache.artifact; + +public enum OutputType { + // generated project artefact + ARTEFACT(""), Review Comment: yes, ARTIFACT in english, not nice french ARTEFACT :) ########## src/main/java/org/apache/maven/buildcache/xml/CacheConfigImpl.java: ########## @@ -90,6 +91,7 @@ public class CacheConfigImpl implements org.apache.maven.buildcache.xml.CacheCon public static final String FAIL_FAST_PROPERTY_NAME = "maven.build.cache.failFast"; public static final String BASELINE_BUILD_URL_PROPERTY_NAME = "maven.build.cache.baselineUrl"; public static final String LAZY_RESTORE_PROPERTY_NAME = "maven.build.cache.lazyRestore"; + public static final String RESTORE_ON_DISK_ARTEFACTS_PROPERTY_NAME = "maven.build.cache.restoreOnDiskArtefacts"; Review Comment: same ########## src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java: ########## @@ -710,6 +711,18 @@ public static boolean isRestoreGeneratedSources(MavenProject project) { project.getProperties().getProperty(RESTORE_GENERATED_SOURCES_PROPERTY_NAME, "true")); } + /** + * Allow skipping artefacts restoration on a per-project level via a property (which defaults to true) Review Comment: s/artefacts/artifacts/ (in comment, not critical) ########## src/main/java/org/apache/maven/buildcache/CacheControllerImpl.java: ########## @@ -112,13 +114,10 @@ @SuppressWarnings("unused") public class CacheControllerImpl implements CacheController { - public static final String FILE_SEPARATOR_SUBST = "_"; - /** - * Prefix for generated sources stored as a separate artifact in cache - */ - private static final String BUILD_PREFIX = "build" + FILE_SEPARATOR_SUBST; - private static final Logger LOGGER = LoggerFactory.getLogger(CacheControllerImpl.class); + private static final String DEFAULT_FILE_GLOB = "*"; + public static final String ERROR_MSG_RESTORATION_OUTSIDE_PROJECT = + "Blocked an attempt to restore files outside of a project directory : "; Review Comment: in english, no space before `:` (yes, french with non-breaking space is much better, but we must adapt :) ) ########## src/main/java/org/apache/maven/buildcache/xml/CacheConfig.java: ########## @@ -131,5 +132,10 @@ public interface CacheConfig { */ boolean isRestoreGeneratedSources(); + /** + * Flag to restore (default) or not generated artefacts + */ + boolean isRestoreOnDiskArtefacts(); Review Comment: s/artefacts/artifacts/ ########## src/main/java/org/apache/maven/buildcache/CacheControllerImpl.java: ########## @@ -133,6 +132,15 @@ public class CacheControllerImpl implements CacheController { private final RestoredArtifactHandler restoreArtifactHandler; private volatile Scm scm; + /** + * A map dedicated to store the base path of resources stored to the cache which are not original artefacts Review Comment: s/artefacts/artifacts/ > Bugfix and enhancements with the restoration of outputs on disk > --------------------------------------------------------------- > > Key: MBUILDCACHE-86 > URL: https://issues.apache.org/jira/browse/MBUILDCACHE-86 > Project: Maven Build Cache Extension > Issue Type: Improvement > Reporter: Kevin Buntrock > Priority: Major > Labels: pull-request-available > > *Fixes :* > * Files containing an underscore in their name can't be restored in the > cache directory correctly (not in the same directory location). > * The cache is able to extract/restore files in locations outside the > project. I guess the extraction part is not a vulnerability since someone > with commit permissions can guess other ways to extract data. But the > possibility of restoring at any place on the disk looks pretty dangerous to > me if a remote cache server is compromised. > *Enhancements :* > * Possibility to restore artefacts on disk, with a dedicated property : > maven.build.cache.restoreOnDiskArtefacts (default to true). Meaning in the > project directory, as opposed to the cache directory. > ** IDE integration and use of the cache locally in developement is way > easier. It is now possible to retrieve a cached jar in the "target" directory. > * Introduce "globs" to filter extra attached outputs by filenames. -- This message was sent by Atlassian Jira (v8.20.10#820010)