mirror of
https://github.com/apache/maven-mvnd.git
synced 2025-09-11 13:39:32 +00:00
Restore ModelCacheFactory
This commit is contained in:
@@ -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>
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
|
5
pom.xml
5
pom.xml
@@ -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>
|
||||||
|
Reference in New Issue
Block a user