aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java182
1 files changed, 182 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java b/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
new file mode 100644
index 00000000..2edbe754
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleDebugLogger.java
@@ -0,0 +1,182 @@
+package org.apache.maven.lifecycle.internal;
+
+/*
+ * 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 org.apache.maven.lifecycle.MavenExecutionPlan;
+import org.apache.maven.lifecycle.internal.builder.BuilderCommon;
+import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.util.StringUtils;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * Logs debug output from the various lifecycle phases.
+ *
+ * @since 3.0
+ * @author Benjamin Bentmann
+ * @author Jason van Zyl
+ * @author Kristian Rosenvold (extracted class only)
+ * <p/>
+ * NOTE: This class is not part of any public api and can be changed or deleted without prior notice.
+ */
+@Component( role = LifecycleDebugLogger.class )
+public class LifecycleDebugLogger
+{
+ @Requirement
+ private Logger logger;
+
+
+ public LifecycleDebugLogger()
+ {
+ }
+
+ public LifecycleDebugLogger( Logger logger )
+ {
+ this.logger = logger;
+ }
+
+
+ public void debug( String s )
+ {
+ logger.debug( s );
+ }
+
+ public void info( String s )
+ {
+ logger.info( s );
+ }
+
+ public void debugReactorPlan( ProjectBuildList projectBuilds )
+ {
+ if ( !logger.isDebugEnabled() )
+ {
+ return;
+ }
+
+ logger.debug( "=== REACTOR BUILD PLAN ================================================" );
+
+ for ( Iterator<ProjectSegment> it = projectBuilds.iterator(); it.hasNext(); )
+ {
+ ProjectSegment projectBuild = it.next();
+
+ logger.debug( "Project: " + projectBuild.getProject().getId() );
+ logger.debug( "Tasks: " + projectBuild.getTaskSegment().getTasks() );
+ logger.debug( "Style: " + ( projectBuild.getTaskSegment().isAggregating() ? "Aggregating" : "Regular" ) );
+
+ if ( it.hasNext() )
+ {
+ logger.debug( "-----------------------------------------------------------------------" );
+ }
+ }
+
+ logger.debug( "=======================================================================" );
+ }
+
+
+ public void debugProjectPlan( MavenProject currentProject, MavenExecutionPlan executionPlan )
+ {
+ if ( !logger.isDebugEnabled() )
+ {
+ return;
+ }
+
+ logger.debug( "=== PROJECT BUILD PLAN ================================================" );
+ logger.debug( "Project: " + BuilderCommon.getKey( currentProject ) );
+
+ debugDependencyRequirements( executionPlan.getMojoExecutions() );
+
+ logger.debug( "Repositories (dependencies): " + currentProject.getRemoteProjectRepositories() );
+ logger.debug( "Repositories (plugins) : " + currentProject.getRemotePluginRepositories() );
+
+ for ( ExecutionPlanItem mojoExecution : executionPlan )
+ {
+ debugMojoExecution( mojoExecution.getMojoExecution() );
+ }
+
+ logger.debug( "=======================================================================" );
+ }
+
+ private void debugMojoExecution( MojoExecution mojoExecution )
+ {
+ String mojoExecId =
+ mojoExecution.getGroupId() + ':' + mojoExecution.getArtifactId() + ':' + mojoExecution.getVersion() + ':'
+ + mojoExecution.getGoal() + " (" + mojoExecution.getExecutionId() + ')';
+
+ Map<String, List<MojoExecution>> forkedExecutions = mojoExecution.getForkedExecutions();
+ if ( !forkedExecutions.isEmpty() )
+ {
+ for ( Map.Entry<String, List<MojoExecution>> fork : forkedExecutions.entrySet() )
+ {
+ logger.debug( "--- init fork of " + fork.getKey() + " for " + mojoExecId + " ---" );
+
+ debugDependencyRequirements( fork.getValue() );
+
+ for ( MojoExecution forkedExecution : fork.getValue() )
+ {
+ debugMojoExecution( forkedExecution );
+ }
+
+ logger.debug( "--- exit fork of " + fork.getKey() + " for " + mojoExecId + " ---" );
+ }
+ }
+
+ logger.debug( "-----------------------------------------------------------------------" );
+ logger.debug( "Goal: " + mojoExecId );
+ logger.debug(
+ "Style: " + ( mojoExecution.getMojoDescriptor().isAggregator() ? "Aggregating" : "Regular" ) );
+ logger.debug( "Configuration: " + mojoExecution.getConfiguration() );
+ }
+
+ private void debugDependencyRequirements( List<MojoExecution> mojoExecutions )
+ {
+ Set<String> scopesToCollect = new TreeSet<String>();
+ Set<String> scopesToResolve = new TreeSet<String>();
+
+ for ( MojoExecution mojoExecution : mojoExecutions )
+ {
+ MojoDescriptor mojoDescriptor = mojoExecution.getMojoDescriptor();
+
+ String scopeToCollect = mojoDescriptor.getDependencyCollectionRequired();
+ if ( StringUtils.isNotEmpty( scopeToCollect ) )
+ {
+ scopesToCollect.add( scopeToCollect );
+ }
+
+ String scopeToResolve = mojoDescriptor.getDependencyResolutionRequired();
+ if ( StringUtils.isNotEmpty( scopeToResolve ) )
+ {
+ scopesToResolve.add( scopeToResolve );
+ }
+ }
+
+ logger.debug( "Dependencies (collect): " + scopesToCollect );
+ logger.debug( "Dependencies (resolve): " + scopesToResolve );
+ }
+
+} \ No newline at end of file