List of usage examples for org.eclipse.jgit.lib ProgressMonitor beginTask
void beginTask(String title, int totalWork);
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(); }