package org.sonatype.nexus.plugins.tasks.api; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.util.StringUtils; import org.sonatype.nexus.scheduling.AbstractNexusRepositoriesTask; import org.sonatype.scheduling.SchedulerTask; @Component( role = SchedulerTask.class, hint = "SleepRepositoryTask", instantiationStrategy = "per-lookup" ) public class SleepRepositoryTask extends AbstractNexusRepositoriesTask<Object> { @Override protected Object doRun() throws Exception { getLogger().debug( getMessage() ); final int time = getTime(); Thread.sleep( time * 1000 / 2 ); getRepositoryRegistry().getRepository( getRepositoryId() ); Thread.sleep( time * 1000 / 2 ); return null; } private int getTime() { String t = getParameter( "time" ); if ( StringUtils.isEmpty( t ) ) { return 5; } else { return new Integer( t ); } } @Override protected String getAction() { return "Sleeping"; } @Override protected String getMessage() { return "Sleeping for " + getTime() + " seconds!"; } }