You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2021/06/14 06:07:40 UTC

[maven-resolver] 01/04: Update Maven in Resolver Demo Snippets

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch update-maven-in-demos
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git

commit d5af0065b18add3a1c343ad310fc9d1977cb703f
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Thu May 20 18:03:26 2021 +0200

    Update Maven in Resolver Demo Snippets
---
 .../maven-resolver-demo-snippets/pom.xml           |  2 +-
 .../examples/guice/DemoResolverModule.java         |  4 +-
 .../resolver/examples/sisu/MavenDemoModule.java    | 77 ----------------------
 .../sisu/SisuRepositorySystemDemoModule.java       |  9 +--
 .../examples/sisu/SisuRepositorySystemFactory.java |  8 +--
 5 files changed, 6 insertions(+), 94 deletions(-)

diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml b/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
index acd153e..c0bc513 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/pom.xml
@@ -38,7 +38,7 @@
 
   <properties>
     <Automatic-Module-Name>org.apache.maven.resolver.demo.snippets</Automatic-Module-Name>
-    <mavenVersion>3.5.4</mavenVersion>
+    <mavenVersion>3.8.1</mavenVersion>
   </properties>
 
   <dependencyManagement>
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java
index 16ee292..0326f9f 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java
@@ -26,6 +26,8 @@ import java.util.Set;
 import javax.inject.Named;
 import javax.inject.Singleton;
 
+import org.apache.maven.model.building.DefaultModelBuilderFactory;
+import org.apache.maven.model.building.ModelBuilder;
 import org.apache.maven.repository.internal.MavenResolverModule;
 import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory;
 import org.eclipse.aether.spi.connector.RepositoryConnectorFactory;
@@ -57,6 +59,7 @@ class DemoResolverModule
                 .to( BasicRepositoryConnectorFactory.class );
         bind( TransporterFactory.class ).annotatedWith( Names.named( "file" ) ).to( FileTransporterFactory.class );
         bind( TransporterFactory.class ).annotatedWith( Names.named( "http" ) ).to( HttpTransporterFactory.class );
+        bind( ModelBuilder.class ).toProvider( () -> new DefaultModelBuilderFactory().newInstance() );
     }
 
     @Provides
@@ -79,5 +82,4 @@ class DemoResolverModule
         factories.add( http );
         return Collections.unmodifiableSet( factories );
     }
-
 }
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/MavenDemoModule.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/MavenDemoModule.java
deleted file mode 100644
index 43f3044..0000000
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/MavenDemoModule.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.apache.maven.resolver.examples.sisu;
-
-/*
- * 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.
- */
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.name.Names;
-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.DefaultVersionRangeResolver;
-import org.apache.maven.repository.internal.DefaultVersionResolver;
-import org.apache.maven.repository.internal.SnapshotMetadataGeneratorFactory;
-import org.apache.maven.repository.internal.VersionsMetadataGeneratorFactory;
-import org.eclipse.aether.impl.ArtifactDescriptorReader;
-import org.eclipse.aether.impl.MetadataGeneratorFactory;
-import org.eclipse.aether.impl.VersionRangeResolver;
-import org.eclipse.aether.impl.VersionResolver;
-
-/**
- * Module with component implementations found in Maven's maven-resolver-provider and maven-model-builder. This module
- * binds ONLY components found OUTSIDE resolver.
- */
-public class MavenDemoModule
-    extends AbstractModule
-{
-    protected void configure()
-    {
-        bind( ArtifactDescriptorReader.class )
-            .to( DefaultArtifactDescriptorReader.class ).in( Singleton.class );
-        bind( VersionResolver.class )
-            .to( DefaultVersionResolver.class ).in( Singleton.class );
-        bind( VersionRangeResolver.class )
-            .to( DefaultVersionRangeResolver.class ).in( Singleton.class );
-        bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "snapshot" ) )
-            .to( SnapshotMetadataGeneratorFactory.class ).in( Singleton.class );
-        bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "versions" ) )
-            .to( VersionsMetadataGeneratorFactory.class ).in( Singleton.class );
-        bind( ModelBuilder.class ).toInstance( ( new DefaultModelBuilderFactory() ).newInstance() );
-    }
-
-    @Provides
-    @Singleton
-    Set<MetadataGeneratorFactory> provideMetadataGeneratorFactories(
-        @Named( "snapshot" ) MetadataGeneratorFactory snapshot,
-        @Named( "versions" ) MetadataGeneratorFactory versions )
-    {
-        Set<MetadataGeneratorFactory> factories = new HashSet( 2 );
-        factories.add( snapshot );
-        factories.add( versions );
-        return Collections.unmodifiableSet( factories );
-    }
-}
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemDemoModule.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemDemoModule.java
index ad1178a..71adb55 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemDemoModule.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemDemoModule.java
@@ -36,14 +36,7 @@ public class SisuRepositorySystemDemoModule implements Module
     public void configure( final Binder binder )
     {
         binder.install( new LifecycleModule() );
-        // NOTE: this module below is needed due following: while maven-resolver-provider:3.5.4 DOES have Sisu index,
-        // the also needed module maven-model-builder:3.5.4 DOES NOT have Sisu index (has plexus/components.xml).
-        // To keep things simple, and not bring in deprecated Plexus, we rather install custom Guicemodule
-        // (MavenDemoModule) to provide the "missing components" (while resolver components are discovered by Sisu)
-        // making resolver complete.
-        // To demo Sisu, resolver is completed with components discovered by Sisu (using Sisu index, that all
-        // resolver modules have), and the handful components registered directly to Guice in MavenDemoModule module.
-        binder.install( new MavenDemoModule() );
+        // NOTE: Maven 3.8.1 used in demo has Sisu Index for ALL components (older Maven does NOT have!)
         binder.bind( ParameterKeys.PROPERTIES ).toInstance( System.getProperties() );
         binder.bind( ShutdownThread.class ).asEagerSingleton();
     }
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemFactory.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemFactory.java
index 721d4a5..1403e12 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemFactory.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/sisu/SisuRepositorySystemFactory.java
@@ -24,7 +24,6 @@ import javax.inject.Named;
 import javax.inject.Provider;
 
 import com.google.inject.Guice;
-import com.google.inject.Injector;
 import com.google.inject.Module;
 import org.apache.maven.model.building.DefaultModelBuilderFactory;
 import org.apache.maven.model.building.ModelBuilder;
@@ -38,7 +37,6 @@ import org.eclipse.sisu.space.BeanScanning;
 @Named
 public class SisuRepositorySystemFactory
 {
-
     @Inject
     private RepositorySystem repositorySystem;
 
@@ -48,20 +46,16 @@ public class SisuRepositorySystemFactory
             BeanScanning.INDEX,
             new SisuRepositorySystemDemoModule()
         );
-        final Injector injector = Guice.createInjector( app );
-        return injector.getInstance( SisuRepositorySystemFactory.class ).repositorySystem;
+        return Guice.createInjector( app ).getInstance( SisuRepositorySystemFactory.class ).repositorySystem;
     }
 
     @Named
     private static class ModelBuilderProvider
         implements Provider<ModelBuilder>
     {
-
         public ModelBuilder get()
         {
             return new DefaultModelBuilderFactory().newInstance();
         }
-
     }
-
 }