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


The following commit(s) were added to refs/heads/maven-metrics by this push:
     new c6a369b  Add metrics
c6a369b is described below

commit c6a369becc1e174041bdee039b81c5ae8bf98ae1
Author: Enrico Olivelli <eolive...@apache.org>
AuthorDate: Sat Apr 25 10:05:14 2020 +0200

    Add metrics
---
 .../maven/artifact/installer/DefaultArtifactInstaller.java    |  9 +++++++++
 .../org/apache/maven/lifecycle/internal/MojoExecutor.java     |  8 ++++++++
 .../plugin/internal/DefaultPluginDependenciesResolver.java    | 10 +++++++++-
 .../java/org/apache/maven/project/DefaultProjectBuilder.java  | 11 +++++++++++
 4 files changed, 37 insertions(+), 1 deletion(-)

diff --git 
a/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
 
b/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
index a252975..abdae8b 100644
--- 
a/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
+++ 
b/maven-compat/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java
@@ -31,6 +31,7 @@ import 
org.apache.maven.artifact.repository.metadata.MetadataBridge;
 import org.apache.maven.artifact.repository.metadata.Snapshot;
 import 
org.apache.maven.artifact.repository.metadata.SnapshotArtifactRepositoryMetadata;
 import org.apache.maven.artifact.repository.metadata.Versioning;
+import org.apache.maven.metrics.MetricsSystem;
 import org.apache.maven.plugin.LegacySupport;
 import org.apache.maven.project.artifact.ProjectArtifactMetadata;
 import org.codehaus.plexus.component.annotations.Component;
@@ -58,6 +59,9 @@ public class DefaultArtifactInstaller
     @Requirement
     private LegacySupport legacySupport;
 
+    @Requirement( hint = MetricsSystem.HINT )
+    private MetricsSystem metricsSystem;
+
     /** @deprecated we want to use the artifact method only, and ensure 
artifact.file is set correctly. */
     @Deprecated
     public void install( String basedir, String finalName, Artifact artifact, 
ArtifactRepository localRepository )
@@ -72,6 +76,7 @@ public class DefaultArtifactInstaller
     public void install( File source, Artifact artifact, ArtifactRepository 
localRepository )
         throws ArtifactInstallationException
     {
+        long startInstall = System.currentTimeMillis();
         RepositorySystemSession session =
             LegacyLocalRepositoryManager.overlay( localRepository, 
legacySupport.getRepositorySession(), repoSystem );
 
@@ -130,6 +135,10 @@ public class DefaultArtifactInstaller
             versioning.setRelease( artifact.getBaseVersion() );
         }
         artifact.addMetadata( new ArtifactRepositoryMetadata( artifact, 
versioning ) );
+        metricsSystem
+                .getMetricsContext()
+                .getSummary("installArtifact", "Time to install an artifact 
(ms)")
+                .add(System.currentTimeMillis() - startInstall);
     }
 
 }
diff --git 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
index 89fadfd..36421d4 100644
--- 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
+++ 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/MojoExecutor.java
@@ -39,6 +39,7 @@ import org.apache.maven.execution.ExecutionEvent;
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.LifecycleExecutionException;
 import org.apache.maven.lifecycle.MissingProjectException;
+import org.apache.maven.metrics.MetricsSystem;
 import org.apache.maven.plugin.BuildPluginManager;
 import org.apache.maven.plugin.MavenPluginManager;
 import org.apache.maven.plugin.MojoExecution;
@@ -79,6 +80,9 @@ public class MojoExecutor
     @Inject
     private ExecutionEventCatapult eventCatapult;
 
+    @Inject
+    private MetricsSystem metricsSystem;
+
     public MojoExecutor()
     {
     }
@@ -164,6 +168,7 @@ public class MojoExecutor
                           DependencyContext dependencyContext )
         throws LifecycleExecutionException
     {
+        long startExecute = System.currentTimeMillis();
         MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
 
         try
@@ -211,6 +216,9 @@ public class MojoExecutor
             try
             {
                 pluginManager.executeMojo( session, mojoExecution );
+                metricsSystem.getMetricsContext()
+                    .getSummarySet("executeMojo", "Time to execute a mojo 
(ms)")
+                    
.add(mojoExecution.getLifecyclePhase()+"_"+mojoExecution.getGoal(), 
System.currentTimeMillis() - startExecute);
             }
             catch ( MojoFailureException | PluginManagerException | 
PluginConfigurationException
                 | MojoExecutionException e )
diff --git 
a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
 
b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
index d1f2834..9ea1f52 100644
--- 
a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
+++ 
b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java
@@ -30,6 +30,7 @@ import javax.inject.Named;
 import javax.inject.Singleton;
 
 import org.apache.maven.RepositoryUtils;
+import org.apache.maven.metrics.MetricsSystem;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.PluginResolutionException;
@@ -86,6 +87,9 @@ public class DefaultPluginDependenciesResolver
     @Inject
     private RepositorySystem repoSystem;
 
+    @Inject
+    private MetricsSystem metricsSystem;
+
     private Artifact toArtifact( Plugin plugin, RepositorySystemSession 
session )
     {
         return new DefaultArtifact( plugin.getGroupId(), 
plugin.getArtifactId(), null, "jar", plugin.getVersion(),
@@ -95,6 +99,7 @@ public class DefaultPluginDependenciesResolver
     public Artifact resolve( Plugin plugin, List<RemoteRepository> 
repositories, RepositorySystemSession session )
         throws PluginResolutionException
     {
+        long startResolve = System.currentTimeMillis();
         RequestTrace trace = RequestTrace.newChild( null, plugin );
 
         Artifact pluginArtifact = toArtifact( plugin, session );
@@ -134,7 +139,10 @@ public class DefaultPluginDependenciesResolver
         {
             throw new PluginResolutionException( plugin, e );
         }
-
+        metricsSystem
+                .getMetricsContext()
+                .getSummary("resolvePluginDependency", "Time to resolve 
dependencies of a plugin (ms)")
+                .add(System.currentTimeMillis() - startResolve);
         return pluginArtifact;
     }
 
diff --git 
a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java 
b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index 1ebc1fc..c204c8e 100644
--- 
a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ 
b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -44,6 +44,7 @@ import org.apache.maven.artifact.InvalidRepositoryException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
 import org.apache.maven.bridge.MavenRepositorySystem;
+import org.apache.maven.metrics.MetricsSystem;
 import org.apache.maven.model.Build;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
@@ -114,6 +115,10 @@ public class DefaultProjectBuilder
     @Inject
     private ProjectDependenciesResolver dependencyResolver;
 
+    @Inject
+    @Named( MetricsSystem.HINT )
+    private MetricsSystem metricsSystem;
+
     private final ReactorModelCache modelCache = new ReactorModelCache();
 
     // ----------------------------------------------------------------------
@@ -318,8 +323,14 @@ public class DefaultProjectBuilder
             ArtifactRequest pomRequest = new ArtifactRequest();
             pomRequest.setArtifact( pomArtifact );
             pomRequest.setRepositories( config.repositories );
+            long startResolvePom = System.currentTimeMillis();
             ArtifactResult pomResult = repoSystem.resolveArtifact( 
config.session, pomRequest );
 
+            metricsSystem
+                .getMetricsContext()
+                .getSummary("resolvePom", "Time to resolve pom artifact (ms)")
+                .add(System.currentTimeMillis() - startResolvePom);
+
             pomArtifact = pomResult.getArtifact();
             localProject = pomResult.getRepository() instanceof 
WorkspaceRepository;
         }

Reply via email to