/*
* Copyright (C) 2011 John Casey.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.redhat.rcm.version.mgr.mod;
import java.util.Collections;
import org.apache.maven.model.Model;
import org.apache.maven.model.Repository;
import org.codehaus.plexus.component.annotations.Component;
import com.redhat.rcm.version.mgr.session.VersionManagerSession;
import com.redhat.rcm.version.model.Project;
@Component( role = ProjectModder.class, hint = "repo-removal" )
public class RepoRemovalModder
implements ProjectModder
{
public String getDescription()
{
return "Remove <repositories/> and <pluginRepostories/> elements from the POM (this is a Maven best practice).";
}
/**
* {@inheritDoc}
*
* @see com.redhat.rcm.version.mgr.mod.ProjectModder#inject(com.redhat.rcm.version.model.Project,
* com.redhat.rcm.version.mgr.session.VersionManagerSession)
*/
@Override
public boolean inject( final Project project, final VersionManagerSession session )
{
final Model model = project.getModel();
boolean changed = false;
if ( model.getRepositories() != null && !model.getRepositories().isEmpty() )
{
model.setRepositories( Collections.<Repository>emptyList() );
changed = true;
}
if ( model.getPluginRepositories() != null && !model.getPluginRepositories().isEmpty() )
{
model.setPluginRepositories( Collections.<Repository>emptyList() );
changed = true;
}
return changed;
}
}