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

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

Introduction

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

Prototype

void endTask();

Source Link

Document

Finish the current task, so the next can begin.

Usage

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

License:Apache License

@Override
public int run() throws Exception {
    mustHaveValidSite();//from w w w  . j av  a  2  s .  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 w  ww. j ava  2s.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/*from  w  w  w . ja va 2  s . c  om*/
            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());/* w ww .  j  ava2s .  com*/
        }
    }
    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);
        }/*from w  w  w. j a  v a 2  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);
                }//w w w. ja v a  2  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 ww  .  j av a  2  s .  c o m
    }
    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 ww.  jav  a 2 s  . co 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;/*w  ww  .j  a  v  a2  s .c o  m*/
    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);/*  www  .j a v a2s  . c  o m*/
    replicationConfig.addSecureCredentials(getOrganisation(), authUsername, authToken);
    progress.update(1);
    replicationConfig.addReplicationRemote(getOrganisation(), gitHubUrl + "/${name}.git", repositoryName);
    progress.endTask();
}