mirror of
https://github.com/apache/maven-mvnd.git
synced 2025-09-10 04:59:54 +00:00
Restore ModelCacheFactory
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
<properties>
|
||||
<!-- If using release, sun.misc is not reachable (see SignalHelper) -->
|
||||
<!-- <maven.compiler.release />-->
|
||||
<maven.compiler.proc>full</maven.compiler.proc>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
@@ -60,6 +61,10 @@
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-cli</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-api-di</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-interactivity-api</artifactId>
|
||||
|
@@ -21,8 +21,8 @@ package org.apache.maven.project;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.apache.maven.building.Source;
|
||||
import org.apache.maven.model.building.ModelCache;
|
||||
import org.apache.maven.api.services.Source;
|
||||
import org.apache.maven.api.services.model.ModelCache;
|
||||
|
||||
public class SnapshotModelCache implements ModelCache {
|
||||
|
||||
@@ -44,6 +44,11 @@ public class SnapshotModelCache implements ModelCache {
|
||||
return reactorCache.computeIfAbsent(path, tag, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
reactorCache.clear();
|
||||
}
|
||||
|
||||
private ModelCache getDelegate(String version) {
|
||||
return version.contains("SNAPSHOT") || version.contains("${") ? reactorCache : globalCache;
|
||||
}
|
||||
|
@@ -18,16 +18,13 @@
|
||||
*/
|
||||
package org.apache.maven.project;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.apache.maven.model.building.ModelCache;
|
||||
import org.apache.maven.repository.internal.DefaultModelCacheFactory;
|
||||
import org.apache.maven.repository.internal.ModelCacheFactory;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.sisu.Priority;
|
||||
import org.apache.maven.api.di.Inject;
|
||||
import org.apache.maven.api.di.Named;
|
||||
import org.apache.maven.api.di.Priority;
|
||||
import org.apache.maven.api.di.Singleton;
|
||||
import org.apache.maven.api.services.model.ModelCache;
|
||||
import org.apache.maven.api.services.model.ModelCacheFactory;
|
||||
import org.apache.maven.internal.impl.model.DefaultModelCacheFactory;
|
||||
|
||||
import static org.mvndaemon.mvnd.common.Environment.MVND_NO_MODEL_CACHE;
|
||||
|
||||
@@ -42,14 +39,14 @@ public class SnapshotModelCacheFactory implements ModelCacheFactory {
|
||||
@Inject
|
||||
public SnapshotModelCacheFactory(DefaultModelCacheFactory factory) {
|
||||
this.factory = factory;
|
||||
this.globalCache = factory.createCache(new DefaultRepositorySystemSession());
|
||||
this.globalCache = factory.newInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelCache createCache(RepositorySystemSession session) {
|
||||
public ModelCache newInstance() {
|
||||
boolean noModelCache =
|
||||
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;
|
||||
return new SnapshotModelCache(globalCache, reactorCache);
|
||||
}
|
||||
|
5
pom.xml
5
pom.xml
@@ -178,6 +178,11 @@
|
||||
<artifactId>maven-cli</artifactId>
|
||||
<version>${maven.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-api-di</artifactId>
|
||||
<version>${maven.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-jline</artifactId>
|
||||
|
Reference in New Issue
Block a user