Skip to content

Commit 8adb39c

Browse files
committed
Make MMR usable without context
1 parent 7d33fac commit 8adb39c

File tree

2 files changed

+30
-36
lines changed

2 files changed

+30
-36
lines changed

extensions/mmr/src/main/java/eu/maveniverse/maven/mima/extensions/mmr/MavenModelReader.java

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@
1111

1212
import eu.maveniverse.maven.mima.context.Context;
1313
import eu.maveniverse.maven.mima.extensions.mmr.internal.MavenModelReaderImpl;
14+
import org.apache.maven.model.building.ModelBuilder;
15+
import org.apache.maven.model.interpolation.StringVisitorModelInterpolator;
1416
import org.eclipse.aether.RepositorySystemSession;
1517
import org.eclipse.aether.artifact.Artifact;
18+
import org.eclipse.aether.impl.RemoteRepositoryManager;
19+
import org.eclipse.aether.impl.RepositoryEventDispatcher;
1620
import org.eclipse.aether.resolution.ArtifactDescriptorException;
1721
import org.eclipse.aether.resolution.ArtifactResolutionException;
1822
import org.eclipse.aether.resolution.VersionResolutionException;
@@ -42,21 +46,30 @@
4246
*/
4347
public class MavenModelReader {
4448
private final Logger logger = LoggerFactory.getLogger(getClass());
49+
private final Context context;
4550
private final MavenModelReaderImpl mavenModelReaderImpl;
4651

47-
/**
48-
* Creates instance using passed in impl instance.
49-
*/
50-
public MavenModelReader(MavenModelReaderImpl mavenModelReaderImpl) {
51-
this.mavenModelReaderImpl = requireNonNull(mavenModelReaderImpl);
52-
}
53-
5452
/**
5553
* Creates instance using passed in context. As context carries "root" remote repositories, they are used
5654
* by default, but can be overridden in {@link ModelRequest}.
5755
*/
5856
public MavenModelReader(Context context) {
59-
this(new MavenModelReaderImpl(context));
57+
this.context = requireNonNull(context);
58+
this.mavenModelReaderImpl = new MavenModelReaderImpl(
59+
context.repositorySystem(),
60+
context.lookup()
61+
.lookup(RemoteRepositoryManager.class)
62+
.orElseThrow(() -> new IllegalStateException("RemoteRepositoryManager not available")),
63+
context.lookup()
64+
.lookup(RepositoryEventDispatcher.class)
65+
.orElseThrow(() -> new IllegalStateException("RepositoryEventDispatcher not available")),
66+
context.lookup()
67+
.lookup(ModelBuilder.class)
68+
.orElseThrow(() -> new IllegalStateException("ModelBuilder not available")),
69+
context.lookup()
70+
.lookup(StringVisitorModelInterpolator.class)
71+
.orElseThrow(() -> new IllegalStateException("StringVisitorModelInterpolator not available")),
72+
context.remoteRepositories());
6073
}
6174

6275
/**
@@ -69,6 +82,13 @@ public MavenModelReader(Context context) {
6982
public ModelResponse readModel(ModelRequest request)
7083
throws VersionResolutionException, ArtifactResolutionException, ArtifactDescriptorException {
7184
requireNonNull(request, "request");
72-
return mavenModelReaderImpl.readModel(request);
85+
return mavenModelReaderImpl.readModel(context.repositorySystemSession(), request);
86+
}
87+
88+
/**
89+
* Just to allow easier testing.
90+
*/
91+
public MavenModelReaderImpl getImpl() {
92+
return mavenModelReaderImpl;
7393
}
7494
}

extensions/mmr/src/main/java/eu/maveniverse/maven/mima/extensions/mmr/internal/MavenModelReaderImpl.java

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
import static java.util.Objects.requireNonNull;
1111

12-
import eu.maveniverse.maven.mima.context.Context;
1312
import eu.maveniverse.maven.mima.extensions.mmr.ModelRequest;
1413
import eu.maveniverse.maven.mima.extensions.mmr.ModelResponse;
1514
import java.nio.file.Paths;
@@ -74,7 +73,6 @@
7473
*/
7574
public class MavenModelReaderImpl {
7675
private final RepositorySystem repositorySystem;
77-
private final RepositorySystemSession session;
7876
private final RemoteRepositoryManager remoteRepositoryManager;
7977
private final RepositoryEventDispatcher repositoryEventDispatcher;
8078
private final ModelBuilder modelBuilder;
@@ -88,44 +86,20 @@ public class MavenModelReaderImpl {
8886
*/
8987
public MavenModelReaderImpl(
9088
RepositorySystem repositorySystem,
91-
RepositorySystemSession session,
9289
RemoteRepositoryManager remoteRepositoryManager,
9390
RepositoryEventDispatcher repositoryEventDispatcher,
9491
ModelBuilder modelBuilder,
9592
StringVisitorModelInterpolator stringVisitorModelInterpolator,
9693
List<RemoteRepository> repositories) {
9794
this.repositorySystem = requireNonNull(repositorySystem);
98-
this.session = requireNonNull(session);
9995
this.remoteRepositoryManager = requireNonNull(remoteRepositoryManager);
10096
this.repositoryEventDispatcher = requireNonNull(repositoryEventDispatcher);
10197
this.modelBuilder = requireNonNull(modelBuilder);
10298
this.stringVisitorModelInterpolator = requireNonNull(stringVisitorModelInterpolator);
10399
this.repositories = requireNonNull(repositories);
104100
}
105101

106-
/**
107-
* Ctor to be used with {@link Context} when available. Fully initializes instance with remote repositories as well.
108-
*/
109-
public MavenModelReaderImpl(Context context) {
110-
this(
111-
context.repositorySystem(),
112-
context.repositorySystemSession(),
113-
context.lookup()
114-
.lookup(RemoteRepositoryManager.class)
115-
.orElseThrow(() -> new IllegalStateException("RemoteRepositoryManager not available")),
116-
context.lookup()
117-
.lookup(RepositoryEventDispatcher.class)
118-
.orElseThrow(() -> new IllegalStateException("RepositoryEventDispatcher not available")),
119-
context.lookup()
120-
.lookup(ModelBuilder.class)
121-
.orElseThrow(() -> new IllegalStateException("ModelBuilder not available")),
122-
context.lookup()
123-
.lookup(StringVisitorModelInterpolator.class)
124-
.orElseThrow(() -> new IllegalStateException("StringVisitorModelInterpolator not available")),
125-
context.remoteRepositories());
126-
}
127-
128-
public ModelResponse readModel(ModelRequest request)
102+
public ModelResponse readModel(RepositorySystemSession session, ModelRequest request)
129103
throws VersionResolutionException, ArtifactResolutionException, ArtifactDescriptorException {
130104
return loadPom(session, request);
131105
}

0 commit comments

Comments
 (0)