You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2024/07/09 09:52:24 UTC
(maven-resolver) branch master updated: [MRESOLVER-582] Use Google JIMFS for demos (#526)
This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git
The following commit(s) were added to refs/heads/master by this push:
new 9ad2bb82 [MRESOLVER-582] Use Google JIMFS for demos (#526)
9ad2bb82 is described below
commit 9ad2bb82fc6e383a5337432b80e5423069679072
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Tue Jul 9 11:52:19 2024 +0200
[MRESOLVER-582] Use Google JIMFS for demos (#526)
This PR showcases how Maven4+Resolver2 can now run
on custom (even in memory like JIMFS is) FileSystem
---
https://issues.apache.org/jira/browse/MRESOLVER-582
---
.../maven-resolver-demo-snippets/pom.xml | 6 ++---
.../maven/resolver/examples/util/Booter.java | 30 ++++++++++++----------
.../resources/META-INF/sisu/javax.inject.Named | 29 +++++++++++++++++++++
3 files changed, 49 insertions(+), 16 deletions(-)
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml b/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
index bbca5cc5..05e31084 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
@@ -81,17 +81,17 @@
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-supplier-mvn3</artifactId>
+ <artifactId>maven-resolver-supplier-mvn4</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-resolver-provider</artifactId>
- <version>${maven3Version}</version>
+ <version>${maven4Version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model-builder</artifactId>
- <version>${maven3Version}</version>
+ <version>${maven4Version}</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java
index b5539845..2fa93e80 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java
@@ -18,12 +18,16 @@
*/
package org.apache.maven.resolver.examples.util;
-import java.nio.file.Path;
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.nio.file.FileSystem;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import com.google.common.jimfs.Configuration;
+import com.google.common.jimfs.Jimfs;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession.SessionBuilder;
@@ -62,12 +66,10 @@ public class Booter {
}
public static SessionBuilder newRepositorySystemSession(RepositorySystem system) {
- Path localRepo = Paths.get("target/local-repo");
- // FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
- return new SessionBuilderSupplier(system)
+ FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
+ SessionBuilder result = new SessionBuilderSupplier(system)
.get()
- // .withLocalRepositoryBaseDirectories(fs.getPath("local-repo"))
- .withLocalRepositoryBaseDirectories(localRepo)
+ .withLocalRepositoryBaseDirectories(fs.getPath("local-repo"))
.setRepositoryListener(new ConsoleRepositoryListener())
.setTransferListener(new ConsoleTransferListener())
.setConfigProperty("aether.generator.gpg.enabled", Boolean.TRUE.toString())
@@ -77,16 +79,18 @@ public class Booter {
.toAbsolutePath()
.toString())
.setConfigProperty("aether.syncContext.named.factory", "noop");
- // result.addOnSessionEndedHandler(() -> {
- // try {
- // fs.close();
- // } catch (IOException e) {
- // throw new UncheckedIOException(e);
- // }
- // });
+ result.addOnSessionEndedHandler(() -> {
+ try {
+ fs.close();
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ });
// uncomment to generate dirty trees
// session.setDependencyGraphTransformer( null );
+
+ return result;
}
public static List<RemoteRepository> newRepositories(RepositorySystem system, RepositorySystemSession session) {
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/resources/META-INF/sisu/javax.inject.Named b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/resources/META-INF/sisu/javax.inject.Named
new file mode 100644
index 00000000..2b8442db
--- /dev/null
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/resources/META-INF/sisu/javax.inject.Named
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+org.apache.maven.repository.internal.DefaultArtifactDescriptorReader
+org.apache.maven.repository.internal.DefaultModelCacheFactory
+org.apache.maven.repository.internal.DefaultModelVersionParser
+org.apache.maven.repository.internal.DefaultVersionRangeResolver
+org.apache.maven.repository.internal.DefaultVersionResolver
+org.apache.maven.repository.internal.DefaultVersionSchemeProvider
+org.apache.maven.repository.internal.PluginsMetadataGeneratorFactory
+org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory
+org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory
+org.apache.maven.repository.internal.relocation.DistributionManagementArtifactRelocationSource
+org.apache.maven.repository.internal.relocation.UserPropertiesArtifactRelocationSource
+org.apache.maven.repository.internal.type.DefaultTypeProvider