You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by eo...@apache.org on 2020/04/05 10:58:08 UTC

[maven-studies] 06/11: [MNG-6867] extract methods, apply SLA

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

eolivelli pushed a commit to branch maven-metrics
in repository https://gitbox.apache.org/repos/asf/maven-studies.git

commit c423a090e385735d2b826860f790077269bbf8ba
Author: Lewinski, Arne <ar...@DE-L072609.groupinfra.com>
AuthorDate: Sun Feb 16 14:54:11 2020 +0100

    [MNG-6867] extract methods, apply SLA
---
 .../plugin/internal/DefaultMavenPluginManager.java | 68 +++++++++++++---------
 1 file changed, 42 insertions(+), 26 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
index 500ead6..eec09ef 100644
--- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
+++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
@@ -328,37 +328,15 @@ public class DefaultMavenPluginManager
 
         if ( plugin.isExtensions() )
         {
-            ExtensionRealmCache.CacheRecord extensionRecord;
-            try
-            {
-                RepositorySystemSession repositorySession = session.getRepositorySession();
-                extensionRecord = setupExtensionsRealm( project, plugin, repositorySession );
-            }
-            catch ( PluginManagerException e )
-            {
-                // extensions realm is expected to be fully setup at this point
-                // any exception means a problem in maven code, not a user error
-                throw new IllegalStateException( e );
-            }
-
-            ClassRealm pluginRealm = extensionRecord.getRealm();
-            List<Artifact> pluginArtifacts = extensionRecord.getArtifacts();
-
-            for ( ComponentDescriptor<?> componentDescriptor : pluginDescriptor.getComponents() )
-            {
-                componentDescriptor.setRealm( pluginRealm );
-            }
-
-            pluginDescriptor.setClassRealm( pluginRealm );
-            pluginDescriptor.setArtifacts( pluginArtifacts );
+            setupPluginDescriptor( pluginDescriptor, session );
         }
         else
         {
             Map<String, ClassLoader> foreignImports = calcImports( project, parent, imports );
 
-            PluginRealmCache.Key cacheKey = pluginRealmCache.createKey( plugin, parent, foreignImports, filter,
-                                                                        project.getRemotePluginRepositories(),
-                                                                        session.getRepositorySession() );
+            PluginRealmCache.Key cacheKey =
+                pluginRealmCache.createKey( plugin, parent, foreignImports, filter,
+                                            project.getRemotePluginRepositories(), session.getRepositorySession() );
 
             PluginRealmCache.CacheRecord cacheRecord = pluginRealmCache.get( cacheKey );
 
@@ -383,6 +361,44 @@ public class DefaultMavenPluginManager
         }
     }
 
+    private void setupPluginDescriptor( PluginDescriptor pluginDescriptor, MavenSession session )
+    {
+        setupPluginDescriptor( pluginDescriptor,
+                               setupExtensionsRealmInternal( session.getCurrentProject(), pluginDescriptor.getPlugin(),
+                                                             session.getRepositorySession() ) );
+    }
+
+    private void setupPluginDescriptor( PluginDescriptor pluginDescriptor,
+                                        ExtensionRealmCache.CacheRecord extensionRecord )
+    {
+        setupComponentDescriptors( extensionRecord, pluginDescriptor.getComponents() );
+        pluginDescriptor.setClassRealm( extensionRecord.getRealm() );
+        pluginDescriptor.setArtifacts( extensionRecord.getArtifacts() );
+    }
+
+    private void setupComponentDescriptors( ExtensionRealmCache.CacheRecord extensionRecord,
+                                            List<ComponentDescriptor<?>> components )
+    {
+        components.stream().forEach( descriptor -> descriptor.setRealm( extensionRecord.getRealm() ) );
+    }
+
+    /**
+     * For internal usage. It is assumed that the prerequisites are met so a setup of the extensions realm can be
+     * processed without any error. Any exception thrown indicates a programming error, not a user error!
+     */
+    private ExtensionRealmCache.CacheRecord setupExtensionsRealmInternal( MavenProject project, Plugin plugin,
+                                                                          RepositorySystemSession repositorySystemSession )
+    {
+        try
+        {
+            return setupExtensionsRealm( project, plugin, repositorySystemSession );
+        }
+        catch ( PluginManagerException e )
+        {
+            throw new IllegalStateException( e );
+        }
+    }
+
     private void createPluginRealm( PluginDescriptor pluginDescriptor, MavenSession session, ClassLoader parent,
                                     Map<String, ClassLoader> foreignImports, DependencyFilter filter )
         throws PluginResolutionException, PluginContainerException