Skip to content

Commit

Permalink
feat: update maven related dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
teletha committed Sep 10, 2024
1 parent 2b7c45b commit d210134
Showing 1 changed file with 32 additions and 28 deletions.
60 changes: 32 additions & 28 deletions src/main/java/bee/api/Repository.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,22 @@
import org.apache.maven.api.di.Named;
import org.apache.maven.api.services.model.ModelVersionParser;
import org.apache.maven.internal.impl.DefaultModelVersionParser;
import org.apache.maven.internal.impl.resolver.MavenSessionBuilderSupplier;
import org.apache.maven.model.building.DefaultModelBuilderFactory;
import org.apache.maven.model.building.ModelBuilder;
import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader;
import org.apache.maven.repository.internal.DefaultModelCacheFactory;
import org.apache.maven.repository.internal.DefaultVersionRangeResolver;
import org.apache.maven.repository.internal.DefaultVersionResolver;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.apache.maven.repository.internal.ModelCacheFactory;
import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory;
import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory;
import org.eclipse.aether.DefaultRepositoryCache;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositoryException;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.CollectRequest;
Expand Down Expand Up @@ -220,8 +221,11 @@ private static final void addRemoteRepository(String name, String url) {
/** The root repository system. */
private final RepositorySystem system;

/** The session builder. */
private final SessionBuilder builder;

/** The session. */
private final DefaultRepositorySystemSession session;
private CloseableSession session;

/** The path to local repository. */
private LocalRepository localRepository;
Expand All @@ -236,37 +240,37 @@ private static final void addRemoteRepository(String name, String url) {
this.project = project;

// ============ RepositorySystem ============ //
system = I.make(RepositorySystem.class);
this.system = I.make(RepositorySystem.class);

// ============ EventListener ============ //
Loader transfers = I.make(Loader.class);

// ==================================================
// Initialize
// ==================================================
setLocalRepository(Platform.BeeLocalRepository);

// ============ RepositorySystemSession ============ //
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
session.setDependencySelector(new AndDependencySelector(OptionalDependencySelector.fromDirect(), ScopeDependencySelector
.fromDirect(null, List
.of(Scope.Test.id, Scope.Provided.id, Scope.Annotation.id)), new ExclusionDependencySelector(project.exclusions)));
session.setDependencyGraphTransformer(new ChainedDependencyGraphTransformer(new ConflictResolver(new ConfigurableVersionSelector(), new JavaScopeSelector(), new SimpleOptionalitySelector(), new BeeScopeDeriver())));
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepository));
session.setUpdatePolicy(BeeOption.Cacheless.value() ? RepositoryPolicy.UPDATE_POLICY_ALWAYS : RepositoryPolicy.UPDATE_POLICY_DAILY);
session.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_WARN);
session.setIgnoreArtifactDescriptorRepositories(true);
session.setCache(new DefaultRepositoryCache());
session.setResolutionErrorPolicy(new SimpleResolutionErrorPolicy(ResolutionErrorPolicy.CACHE_ALL, ResolutionErrorPolicy.CACHE_ALL));
session.setOffline(BeeOption.Offline.value());
session.setSystemProperties(System.getProperties());
session.setConfigProperties(System.getProperties());
session.setConfigProperty("maven.artifact.threads", 24);
session.setConfigProperty("aether.dependencyCollector.impl", "bf");

// event listener
Loader transfers = I.make(Loader.class);
session.setTransferListener(transfers);
session.setRepositoryListener(transfers);

this.session = session;
this.builder = new MavenSessionBuilderSupplier(system).get()
.setDependencySelector(new AndDependencySelector(OptionalDependencySelector.fromDirect(), ScopeDependencySelector
.fromDirect(null, List
.of(Scope.Test.id, Scope.Provided.id, Scope.Annotation.id)), new ExclusionDependencySelector(project.exclusions)))
.setDependencyGraphTransformer(new ChainedDependencyGraphTransformer(new ConflictResolver(new ConfigurableVersionSelector(), new JavaScopeSelector(), new SimpleOptionalitySelector(), new BeeScopeDeriver())))
.setUpdatePolicy(BeeOption.Cacheless.value() ? RepositoryPolicy.UPDATE_POLICY_ALWAYS : RepositoryPolicy.UPDATE_POLICY_DAILY)
.setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_WARN)
.setIgnoreArtifactDescriptorRepositories(true)
.setCache(new DefaultRepositoryCache())
.setResolutionErrorPolicy(new SimpleResolutionErrorPolicy(ResolutionErrorPolicy.CACHE_ALL, ResolutionErrorPolicy.CACHE_ALL))
.setOffline(BeeOption.Offline.value())
.setSystemProperties(System.getProperties())
.setConfigProperties(System.getProperties())
.setConfigProperty("maven.artifact.threads", 24)
.setConfigProperty("aether.dependencyCollector.impl", "bf")
.setTransferListener(transfers)
.setRepositoryListener(transfers)
.withLocalRepositories(localRepository);

this.session = builder.build();
}

/**
Expand Down Expand Up @@ -561,7 +565,7 @@ public final void setLocalRepository(Directory path) {
this.localRepository = new LocalRepository(path.absolutize().toString());

if (session != null) {
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepository));
session = builder.withLocalRepositories(localRepository).build();
}
}

Expand Down

0 comments on commit d210134

Please sign in to comment.