Example usage for org.eclipse.jgit.lib ProgressMonitor beginTask

List of usage examples for org.eclipse.jgit.lib ProgressMonitor beginTask

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib ProgressMonitor beginTask.

Prototype

void beginTask(String title, int totalWork);

Source Link

Document

Begin processing a single task.

Usage

From source file:com.google.gerrit.pgm.ProtobufImport.java

License:Apache License

@Override
public int run() throws Exception {
    mustHaveValidSite();/*from  w ww  . java 2s. c o m*/

    Injector dbInjector = createDbInjector(SINGLE_USER);
    manager.add(dbInjector);
    manager.start();
    RuntimeShutdown.add(new Runnable() {
        @Override
        public void run() {
            manager.stop();
        }
    });
    dbInjector.injectMembers(this);

    ProgressMonitor progress = new TextProgressMonitor();
    progress.beginTask("Importing entities", ProgressMonitor.UNKNOWN);
    try (ReviewDb db = schemaFactory.open()) {
        for (RelationModel model : new JavaSchemaModel(ReviewDb.class).getRelations()) {
            relations.put(model.getRelationID(), Relation.create(model, db));
        }

        Parser<UnknownFieldSet> parser = UnknownFieldSet.getDefaultInstance().getParserForType();
        try (InputStream in = new BufferedInputStream(new FileInputStream(file))) {
            UnknownFieldSet msg;
            while ((msg = parser.parseDelimitedFrom(in)) != null) {
                Map.Entry<Integer, UnknownFieldSet.Field> e = Iterables.getOnlyElement(msg.asMap().entrySet());
                Relation rel = checkNotNull(relations.get(e.getKey()), "unknown relation ID %s in message: %s",
                        e.getKey(), msg);
                List<ByteString> values = e.getValue().getLengthDelimitedList();
                checkState(values.size() == 1, "expected one string field in message: %s", msg);
                upsert(rel, values.get(0));
                progress.update(1);
            }
        }
        progress.endTask();
    }

    return 0;
}

From source file:com.google.gerrit.pgm.Reindex.java

License:Apache License

private int indexAll() throws Exception {
    ProgressMonitor pm = new TextProgressMonitor();
    pm.start(1);//from ww  w.j a v a 2  s.  c  o  m
    pm.beginTask("Collecting projects", ProgressMonitor.UNKNOWN);
    Set<Project.NameKey> projects = Sets.newTreeSet();
    int changeCount = 0;
    try (ReviewDb db = sysInjector.getInstance(ReviewDb.class)) {
        for (Change change : db.changes().all()) {
            changeCount++;
            if (projects.add(change.getProject())) {
                pm.update(1);
            }
        }
    }
    pm.endTask();

    SiteIndexer batchIndexer = sysInjector.getInstance(SiteIndexer.class);
    SiteIndexer.Result result = batchIndexer.setNumChanges(changeCount).setProgressOut(System.err)
            .setVerboseOut(verbose ? System.out : NullOutputStream.INSTANCE).indexAll(index, projects);
    int n = result.doneCount() + result.failedCount();
    double t = result.elapsed(TimeUnit.MILLISECONDS) / 1000d;
    System.out.format("Reindexed %d changes in %.01fs (%.01f/s)\n", n, t, n / t);
    return result.success() ? 0 : 1;
}

From source file:com.google.gerrit.server.index.account.AllAccountsIndexer.java

License:Apache License

private SiteIndexer.Result reindexAccounts(final AccountIndex index, List<Account.Id> ids,
        ProgressMonitor progress) {
    progress.beginTask("Reindexing accounts", ids.size());
    List<ListenableFuture<?>> futures = new ArrayList<>(ids.size());
    AtomicBoolean ok = new AtomicBoolean(true);
    final AtomicInteger done = new AtomicInteger();
    final AtomicInteger failed = new AtomicInteger();
    Stopwatch sw = Stopwatch.createStarted();
    for (final Account.Id id : ids) {
        final String desc = "account " + id;
        ListenableFuture<?> future = executor.submit(new Callable<Void>() {
            @Override// w  w  w  .j  av  a  2 s  . com
            public Void call() throws Exception {
                try {
                    accountCache.evict(id);
                    index.replace(accountCache.get(id));
                    if (verboseWriter != null) {
                        verboseWriter.println("Reindexed " + desc);
                    }
                    done.incrementAndGet();
                } catch (Exception e) {
                    failed.incrementAndGet();
                    throw e;
                }
                return null;
            }
        });
        addErrorListener(future, desc, progress, ok);
        futures.add(future);
    }

    try {
        Futures.successfulAsList(futures).get();
    } catch (ExecutionException | InterruptedException e) {
        log.error("Error waiting on account futures", e);
        return new Result(sw, false, 0, 0);
    }

    progress.endTask();
    return new Result(sw, ok.get(), done.get(), failed.get());
}

From source file:com.google.gerrit.server.index.account.AllAccountsIndexer.java

License:Apache License

private List<Account.Id> collectAccounts(ProgressMonitor progress) throws OrmException {
    progress.beginTask("Collecting accounts", ProgressMonitor.UNKNOWN);
    List<Account.Id> ids = new ArrayList<>();
    try (ReviewDb db = schemaFactory.open()) {
        for (Account account : db.accounts().all()) {
            ids.add(account.getId());/*from   w w w  .j  ava 2  s  .c  o  m*/
        }
    }
    progress.endTask();
    return ids;
}

From source file:com.google.gerrit.server.index.change.AllChangesIndexer.java

License:Apache License

@Override
public Result indexAll(ChangeIndex index) {
    ProgressMonitor pm = new TextProgressMonitor();
    pm.beginTask("Collecting projects", ProgressMonitor.UNKNOWN);
    Set<Project.NameKey> projects = Sets.newTreeSet();
    int changeCount = 0;
    Stopwatch sw = Stopwatch.createStarted();
    for (Project.NameKey project : projectCache.all()) {
        try (Repository repo = repoManager.openRepository(project)) {
            changeCount += ChangeNotes.Factory.scan(repo).size();
        } catch (IOException e) {
            log.error("Error collecting projects", e);
            return new Result(sw, false, 0, 0);
        }//ww  w . j a va2  s  .  c o m
        projects.add(project);
        pm.update(1);
    }
    pm.endTask();
    setTotalWork(changeCount);
    return indexAll(index, projects);
}

From source file:com.google.gerrit.server.index.group.AllGroupsIndexer.java

License:Apache License

private SiteIndexer.Result reindexGroups(GroupIndex index, List<AccountGroup.UUID> uuids,
        ProgressMonitor progress) {
    progress.beginTask("Reindexing groups", uuids.size());
    List<ListenableFuture<?>> futures = new ArrayList<>(uuids.size());
    AtomicBoolean ok = new AtomicBoolean(true);
    AtomicInteger done = new AtomicInteger();
    AtomicInteger failed = new AtomicInteger();
    Stopwatch sw = Stopwatch.createStarted();
    for (AccountGroup.UUID uuid : uuids) {
        String desc = "group " + uuid;
        ListenableFuture<?> future = executor.submit(() -> {
            try {
                AccountGroup oldGroup = groupCache.get(uuid);
                if (oldGroup != null) {
                    groupCache.evict(oldGroup);
                }/*from   w w w .j ava2 s  .com*/
                index.replace(groupCache.get(uuid));
                verboseWriter.println("Reindexed " + desc);
                done.incrementAndGet();
            } catch (Exception e) {
                failed.incrementAndGet();
                throw e;
            }
            return null;
        });
        addErrorListener(future, desc, progress, ok);
        futures.add(future);
    }

    try {
        Futures.successfulAsList(futures).get();
    } catch (ExecutionException | InterruptedException e) {
        log.error("Error waiting on group futures", e);
        return new SiteIndexer.Result(sw, false, 0, 0);
    }

    progress.endTask();
    return new SiteIndexer.Result(sw, ok.get(), done.get(), failed.get());
}

From source file:com.google.gerrit.server.index.group.AllGroupsIndexer.java

License:Apache License

private List<AccountGroup.UUID> collectGroups(ProgressMonitor progress) throws OrmException {
    progress.beginTask("Collecting groups", ProgressMonitor.UNKNOWN);
    List<AccountGroup.UUID> uuids = new ArrayList<>();
    try (ReviewDb db = schemaFactory.open()) {
        for (AccountGroup group : db.accountGroups().all()) {
            uuids.add(group.getGroupUUID());
        }//from w  w w  .j  a  va  2 s  . c  om
    }
    progress.endTask();
    return uuids;
}

From source file:com.google.gerrit.server.notedb.ChangeRebuilderImpl.java

License:Apache License

@Override
public boolean rebuildProject(ReviewDb db, ImmutableMultimap<Project.NameKey, Change.Id> allChanges,
        Project.NameKey project, Repository allUsersRepo)
        throws NoSuchChangeException, IOException, OrmException, ConfigInvalidException {
    checkArgument(allChanges.containsKey(project));
    boolean ok = true;
    ProgressMonitor pm = new TextProgressMonitor(new PrintWriter(System.out));
    NoteDbUpdateManager manager = updateManagerFactory.create(project);
    pm.beginTask(FormatUtil.elide(project.get(), 50), allChanges.get(project).size());
    try (ObjectInserter allUsersInserter = allUsersRepo.newObjectInserter();
            RevWalk allUsersRw = new RevWalk(allUsersInserter.newReader())) {
        manager.setAllUsersRepo(allUsersRepo, allUsersRw, allUsersInserter, new ChainedReceiveCommands());
        for (Change.Id changeId : allChanges.get(project)) {
            try {
                buildUpdates(manager, ChangeBundle.fromReviewDb(db, changeId));
            } catch (Throwable t) {
                log.error("Failed to rebuild change " + changeId, t);
                ok = false;/*from w w  w .j ava2  s  . c o  m*/
            }
            pm.update(1);
        }
        manager.execute();
    } finally {
        pm.endTask();
    }
    return ok;
}

From source file:com.googlesource.gerrit.plugins.github.git.CreateProjectStep.java

License:Apache License

@Override
public void doImport(ProgressMonitor progress) throws Exception {
    MetaDataUpdate md = null;//from w w  w  .j av a  2  s  .  c  om
    try {
        md = metaDataUpdateFactory.create(getProjectNameKey());
        projectConfig = ProjectConfig.read(md);
        progress.beginTask("Configure Gerrit project", 2);
        setProjectSettings();
        progress.update(1);
        setProjectPermissions();
        progress.update(1);
        md.setMessage("Imported from " + getSourceUri());
        projectConfig.commit(md);
        projectCache.onCreateProject(getProjectNameKey());
    } finally {
        if (md != null) {
            md.close();
        }
        progress.endTask();
    }
}

From source file:com.googlesource.gerrit.plugins.github.git.ReplicateProjectStep.java

License:Apache License

@Override
public void doImport(ProgressMonitor progress) throws Exception {
    progress.beginTask("Setting up Gerrit replication", 2);

    String repositoryName = getOrganisation() + "/" + getRepositoryName();
    progress.update(1);/*from www .  j  av a2 s  . c o m*/
    replicationConfig.addSecureCredentials(getOrganisation(), authUsername, authToken);
    progress.update(1);
    replicationConfig.addReplicationRemote(getOrganisation(), gitHubUrl + "/${name}.git", repositoryName);
    progress.endTask();
}