/*******************************************************************************
*
* Copyright (c) 2010-2011 Sonatype, Inc.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*
*
*
*
*******************************************************************************/
package org.hudsonci.maven.eventspy_30.handler;
import org.apache.maven.execution.ExecutionEvent;
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.model.Profile;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Map.Entry;
public class ProfileLogger
{
private static final Logger log = LoggerFactory.getLogger(ProfileLogger.class);
private static final boolean disabled = true;
@SuppressWarnings("unused")
public static void log( final ExecutionEvent event )
{
if( disabled ) return;
for (MavenProject project : event.getSession().getProjects()) {
log.debug("*** Examining profiles for {}.", project.getName());
logProfileList( project.getActiveProfiles(), "active" );
logProfileList( project.getModel().getProfiles(), "model");
//logProfiles( event.getSession().getProjectBuildingRequest().getProfiles(), "ProjectBuildingRequest" );
logProfileList( project.getProjectBuildingRequest().getProfiles(), "ProjectBuildingRequest" );
log.debug( "InjectedProfileIds" );
for ( Entry<String, List<String>> entry : project.getInjectedProfileIds().entrySet() )
{
log.debug( " from {} are {}", entry.getKey(), entry.getValue() );
}
Settings settings = event.getSession().getSettings();
logSettingsProfileList( settings.getProfiles(), "session-settings" );
log.debug( "Collected projects: {}", project.getCollectedProjects() );
log.debug( "Project references: {}", project.getProjectReferences() );
}
}
@SuppressWarnings("unused")
public static void logRequestProfiles( final MavenExecutionRequest event )
{
if( disabled ) return;
log.debug( "*** Examinig Request profiles." );
logProfileList( event.getProfiles(), "profiles" );
log.debug( " active {}", event.getActiveProfiles() );
log.debug( " inactive {}", event.getInactiveProfiles() );
}
private static void logProfileList( List<Profile> profiles, String type )
{
log.debug( String.format( "%s %s profiles.", type, profiles.size() ) );
for ( Profile profile : profiles )
{
log.debug( " {}", profile );
}
}
private static void logSettingsProfileList( List<org.apache.maven.settings.Profile> profiles, String type )
{
log.debug( String.format( "%s %s profiles.", type, profiles.size() ) );
for ( org.apache.maven.settings.Profile profile : profiles )
{
log.debug( " {}", String.format("Profile {id: %s, source: %s}", profile.getId(), profile.getSourceLevel() ) );
}
}
}