Restore ModelCacheFactory

This commit is contained in:
Guillaume Nodet
2024-11-07 19:10:14 +01:00
parent 31c765e0d4
commit f191c652f5
4 changed files with 27 additions and 15 deletions

View File

@@ -33,6 +33,7 @@
<properties> <properties>
<!-- If using release, sun.misc is not reachable (see SignalHelper) --> <!-- If using release, sun.misc is not reachable (see SignalHelper) -->
<!-- <maven.compiler.release />--> <!-- <maven.compiler.release />-->
<maven.compiler.proc>full</maven.compiler.proc>
</properties> </properties>
<dependencies> <dependencies>
@@ -60,6 +61,10 @@
<groupId>org.apache.maven</groupId> <groupId>org.apache.maven</groupId>
<artifactId>maven-cli</artifactId> <artifactId>maven-cli</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-api-di</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.codehaus.plexus</groupId> <groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-interactivity-api</artifactId> <artifactId>plexus-interactivity-api</artifactId>

View File

@@ -21,8 +21,8 @@ package org.apache.maven.project;
import java.util.Objects; import java.util.Objects;
import java.util.function.Supplier; import java.util.function.Supplier;
import org.apache.maven.building.Source; import org.apache.maven.api.services.Source;
import org.apache.maven.model.building.ModelCache; import org.apache.maven.api.services.model.ModelCache;
public class SnapshotModelCache implements ModelCache { public class SnapshotModelCache implements ModelCache {
@@ -44,6 +44,11 @@ public class SnapshotModelCache implements ModelCache {
return reactorCache.computeIfAbsent(path, tag, data); return reactorCache.computeIfAbsent(path, tag, data);
} }
@Override
public void clear() {
reactorCache.clear();
}
private ModelCache getDelegate(String version) { private ModelCache getDelegate(String version) {
return version.contains("SNAPSHOT") || version.contains("${") ? reactorCache : globalCache; return version.contains("SNAPSHOT") || version.contains("${") ? reactorCache : globalCache;
} }

View File

@@ -18,16 +18,13 @@
*/ */
package org.apache.maven.project; package org.apache.maven.project;
import javax.inject.Inject; import org.apache.maven.api.di.Inject;
import javax.inject.Named; import org.apache.maven.api.di.Named;
import javax.inject.Singleton; import org.apache.maven.api.di.Priority;
import org.apache.maven.api.di.Singleton;
import org.apache.maven.model.building.ModelCache; import org.apache.maven.api.services.model.ModelCache;
import org.apache.maven.repository.internal.DefaultModelCacheFactory; import org.apache.maven.api.services.model.ModelCacheFactory;
import org.apache.maven.repository.internal.ModelCacheFactory; import org.apache.maven.internal.impl.model.DefaultModelCacheFactory;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.sisu.Priority;
import static org.mvndaemon.mvnd.common.Environment.MVND_NO_MODEL_CACHE; import static org.mvndaemon.mvnd.common.Environment.MVND_NO_MODEL_CACHE;
@@ -42,14 +39,14 @@ public class SnapshotModelCacheFactory implements ModelCacheFactory {
@Inject @Inject
public SnapshotModelCacheFactory(DefaultModelCacheFactory factory) { public SnapshotModelCacheFactory(DefaultModelCacheFactory factory) {
this.factory = factory; this.factory = factory;
this.globalCache = factory.createCache(new DefaultRepositorySystemSession()); this.globalCache = factory.newInstance();
} }
@Override @Override
public ModelCache createCache(RepositorySystemSession session) { public ModelCache newInstance() {
boolean noModelCache = boolean noModelCache =
Boolean.parseBoolean(MVND_NO_MODEL_CACHE.asOptional().orElse(MVND_NO_MODEL_CACHE.getDefault())); Boolean.parseBoolean(MVND_NO_MODEL_CACHE.asOptional().orElse(MVND_NO_MODEL_CACHE.getDefault()));
ModelCache reactorCache = factory.createCache(session); ModelCache reactorCache = factory.newInstance();
ModelCache globalCache = noModelCache ? reactorCache : this.globalCache; ModelCache globalCache = noModelCache ? reactorCache : this.globalCache;
return new SnapshotModelCache(globalCache, reactorCache); return new SnapshotModelCache(globalCache, reactorCache);
} }

View File

@@ -178,6 +178,11 @@
<artifactId>maven-cli</artifactId> <artifactId>maven-cli</artifactId>
<version>${maven.version}</version> <version>${maven.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-api-di</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.maven</groupId> <groupId>org.apache.maven</groupId>
<artifactId>maven-jline</artifactId> <artifactId>maven-jline</artifactId>