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

Reply via email to