package org.jvnet.hudson.plugins.shelveproject;
import hudson.Extension;
import hudson.model.AbstractProject;
import hudson.model.Hudson;
import hudson.model.Item;
import hudson.model.listeners.ItemListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @author Ash Lux
*/
@Extension
public class ItemListenerImpl
extends ItemListener
{
private static final Logger LOGGER = Logger.getLogger( ItemListenerImpl.class.getName() );
@Override
public void onLoaded()
{
for ( AbstractProject<?, ?> project : Hudson.getInstance().getAllItems( AbstractProject.class ) )
{
addShelveProjectProperty( project );
}
}
@Override
public void onCreated( Item item )
{
if ( item instanceof AbstractProject )
{
AbstractProject project = (AbstractProject) item;
addShelveProjectProperty( project );
}
}
private void addShelveProjectProperty( AbstractProject<?, ?> project )
{
try
{
if ( project.getProperty( ShelveProjectProperty.class ) == null )
{
project.addProperty( new ShelveProjectProperty() );
}
}
catch ( IOException e )
{
LOGGER.log( Level.SEVERE, "Failed to persist " + project, e );
}
}
}