/*******************************************************************************
* Copyright (c) 2015 IBH SYSTEMS GmbH.
* 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:
* IBH SYSTEMS GmbH - initial API and implementation
*******************************************************************************/
package org.eclipse.packagedrone.repo.importer.aether.web;
import static org.eclipse.packagedrone.repo.importer.aether.AetherImporter.preparePlain;
import java.nio.file.Files;
import java.nio.file.Path;
import org.eclipse.packagedrone.job.AbstractJsonJobFactory;
import org.eclipse.packagedrone.job.JobFactoryDescriptor;
import org.eclipse.packagedrone.job.JobInstance.Context;
import org.eclipse.packagedrone.repo.importer.aether.ImportConfiguration;
import org.eclipse.packagedrone.web.LinkTarget;
import org.eclipse.scada.utils.io.RecursiveDeleteVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class AetherTester extends AbstractJsonJobFactory<ImportConfiguration, AetherResult>
{
private final static Logger logger = LoggerFactory.getLogger ( AetherTester.class );
public static final String ID = "org.eclipse.packagedrone.repo.importer.aether.web.tester";
private static final JobFactoryDescriptor DESCRIPTOR = new JobFactoryDescriptor () {
@Override
public LinkTarget getResultTarget ()
{
return null;
}
};
public AetherTester ()
{
super ( ImportConfiguration.class );
}
@Override
protected String makeLabelFromData ( final ImportConfiguration data )
{
String label = "";
if ( !data.getCoordinates ().isEmpty () )
{
label = data.getCoordinates ().get ( 0 ).toString ();
if ( data.getCoordinates ().size () > 1 )
{
label += String.format ( " (and %s more)", data.getCoordinates ().size () - 1 );
}
}
return String.format ( "Test Maven import: %s", label );
}
@Override
public JobFactoryDescriptor getDescriptor ()
{
return DESCRIPTOR;
}
@Override
protected AetherResult process ( final Context context, final ImportConfiguration cfg ) throws Exception
{
final Path tmpDir = Files.createTempDirectory ( "aether" );
try
{
return preparePlain ( tmpDir, cfg );
}
catch ( final Exception e )
{
logger.warn ( "Failed to test", e );
throw e;
}
finally
{
Files.walkFileTree ( tmpDir, new RecursiveDeleteVisitor () );
Files.deleteIfExists ( tmpDir );
}
}
}