package blade.migrate.provider;
import blade.migrate.api.Migration;
import blade.migrate.api.NullProgressMonitor;
import blade.migrate.api.Problem;
import blade.migrate.api.ProgressMonitor;
import java.io.File;
import java.util.List;
import org.apache.felix.service.command.CommandProcessor;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
@Component(
property = {
CommandProcessor.COMMAND_SCOPE + "=blade",
CommandProcessor.COMMAND_FUNCTION + "=migrate"
},
service = Object.class
)
public class MigrateCommand {
public void migrate(File projectDir) {
List<Problem> problems = projectMigrationService.findProblems(projectDir, npm);
projectMigrationService.reportProblems(problems, Migration.DETAIL_LONG, "console");
}
public void migrate(File projectDir, String format, File outputFile) {
List<Problem> problems = projectMigrationService.findProblems(projectDir, npm);
projectMigrationService.reportProblems(problems, Migration.DETAIL_LONG, format, outputFile);
}
@Reference
public void setProjectMigration(Migration projectMigration) {
this.projectMigrationService = projectMigration;
}
private volatile Migration projectMigrationService;
private final ProgressMonitor npm = new NullProgressMonitor();
}