Example usage for org.eclipse.jgit.lib PersonIdent getTimeZone

List of usage examples for org.eclipse.jgit.lib PersonIdent getTimeZone

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib PersonIdent getTimeZone.

Prototype

public TimeZone getTimeZone() 

Source Link

Document

Get this person's declared time zone

Usage

From source file:com.google.gerrit.acceptance.rest.change.AbstractSubmit.java

License:Apache License

protected void assertPersonEquals(PersonIdent expected, PersonIdent actual) {
    assertThat(actual.getEmailAddress()).isEqualTo(expected.getEmailAddress());
    assertThat(actual.getName()).isEqualTo(expected.getName());
    assertThat(actual.getTimeZone()).isEqualTo(expected.getTimeZone());
}

From source file:com.google.gerrit.gpg.server.DeleteGpgKey.java

License:Apache License

@Override
public Response<?> apply(GpgKey rsrc, Input input)
        throws ResourceConflictException, PGPException, OrmException, IOException {
    PGPPublicKey key = rsrc.getKeyRing().getPublicKey();
    AccountExternalId.Key extIdKey = new AccountExternalId.Key(AccountExternalId.SCHEME_GPGKEY,
            BaseEncoding.base16().encode(key.getFingerprint()));
    db.get().accountExternalIds().deleteKeys(Collections.singleton(extIdKey));

    try (PublicKeyStore store = storeProvider.get()) {
        store.remove(rsrc.getKeyRing().getPublicKey().getFingerprint());

        CommitBuilder cb = new CommitBuilder();
        PersonIdent committer = serverIdent.get();
        cb.setAuthor(rsrc.getUser().newCommitterIdent(committer.getWhen(), committer.getTimeZone()));
        cb.setCommitter(committer);/*from w w w . j  av  a  2s.c  om*/
        cb.setMessage("Delete public key " + keyIdToString(key.getKeyID()));

        RefUpdate.Result saveResult = store.save(cb);
        switch (saveResult) {
        case NO_CHANGE:
        case FAST_FORWARD:
            break;
        default:
            throw new ResourceConflictException("Failed to delete public key: " + saveResult);
        }
    }
    return Response.none();
}

From source file:com.google.gerrit.gpg.server.PostGpgKeys.java

License:Apache License

private void storeKeys(AccountResource rsrc, List<PGPPublicKeyRing> keyRings, Set<Fingerprint> toRemove)
        throws BadRequestException, ResourceConflictException, PGPException, IOException {
    try (PublicKeyStore store = storeProvider.get()) {
        List<String> addedKeys = new ArrayList<>();
        for (PGPPublicKeyRing keyRing : keyRings) {
            PGPPublicKey key = keyRing.getPublicKey();
            // Don't check web of trust; admins can fill in certifications later.
            CheckResult result = checker.check(key);
            if (!result.isOk()) {
                throw new BadRequestException(String.format("Problems with public key %s:\n%s",
                        keyToString(key), Joiner.on('\n').join(result.getProblems())));
            }/*  w w  w. ja va 2 s .  c  o  m*/
            addedKeys.add(PublicKeyStore.keyToString(key));
            store.add(keyRing);
        }
        for (Fingerprint fp : toRemove) {
            store.remove(fp.get());
        }
        CommitBuilder cb = new CommitBuilder();
        PersonIdent committer = serverIdent.get();
        cb.setAuthor(rsrc.getUser().newCommitterIdent(committer.getWhen(), committer.getTimeZone()));
        cb.setCommitter(committer);

        RefUpdate.Result saveResult = store.save(cb);
        switch (saveResult) {
        case NEW:
        case FAST_FORWARD:
        case FORCED:
            try {
                addKeyFactory.create(rsrc.getUser(), addedKeys).send();
            } catch (EmailException e) {
                log.error("Cannot send GPG key added message to "
                        + rsrc.getUser().getAccount().getPreferredEmail(), e);
            }
            break;
        case NO_CHANGE:
            break;
        default:
            // TODO(dborowitz): Backoff and retry on LOCK_FAILURE.
            throw new ResourceConflictException("Failed to save public keys: " + saveResult);
        }
    }
}

From source file:com.google.gerrit.server.change.CherryPickChange.java

License:Apache License

@Inject
CherryPickChange(Provider<ReviewDb> db, Provider<InternalChangeQuery> queryProvider,
        @GerritPersonIdent PersonIdent myIdent, GitRepositoryManager gitManager,
        Provider<CurrentUser> currentUser, CommitValidators.Factory commitValidatorsFactory,
        ChangeInserter.Factory changeInserterFactory, PatchSetInserter.Factory patchSetInserterFactory,
        MergeUtil.Factory mergeUtilFactory, ChangeMessagesUtil changeMessagesUtil,
        ChangeUpdate.Factory updateFactory) {
    this.db = db;
    this.queryProvider = queryProvider;
    this.gitManager = gitManager;
    this.serverTimeZone = myIdent.getTimeZone();
    this.currentUser = currentUser;
    this.commitValidatorsFactory = commitValidatorsFactory;
    this.changeInserterFactory = changeInserterFactory;
    this.patchSetInserterFactory = patchSetInserterFactory;
    this.mergeUtilFactory = mergeUtilFactory;
    this.changeMessagesUtil = changeMessagesUtil;
    this.updateFactory = updateFactory;
}

From source file:com.google.gerrit.server.change.CreateChange.java

License:Apache License

@Inject
CreateChange(Provider<ReviewDb> db, GitRepositoryManager gitManager, @GerritPersonIdent PersonIdent myIdent,
        Provider<CurrentUser> userProvider, ProjectsCollection projectsCollection,
        CommitValidators.Factory commitValidatorsFactory, ChangeInserter.Factory changeInserterFactory,
        ChangeJson.Factory json, ChangeUtil changeUtil, @GerritServerConfig Config config) {
    this.db = db;
    this.gitManager = gitManager;
    this.serverTimeZone = myIdent.getTimeZone();
    this.userProvider = userProvider;
    this.projectsCollection = projectsCollection;
    this.commitValidatorsFactory = commitValidatorsFactory;
    this.changeInserterFactory = changeInserterFactory;
    this.jsonFactory = json;
    this.changeUtil = changeUtil;
    this.allowDrafts = config.getBoolean("change", "allowDrafts", true);
}

From source file:com.google.gerrit.server.change.CreateMergePatchSet.java

License:Apache License

@Inject
CreateMergePatchSet(Provider<ReviewDb> db, GitRepositoryManager gitManager,
        @GerritPersonIdent PersonIdent myIdent, Provider<CurrentUser> user, ChangeJson.Factory json,
        PatchSetUtil psUtil, MergeUtil.Factory mergeUtilFactory, BatchUpdate.Factory batchUpdateFactory,
        PatchSetInserter.Factory patchSetInserterFactory) {
    this.db = db;
    this.gitManager = gitManager;
    this.serverTimeZone = myIdent.getTimeZone();
    this.user = user;
    this.jsonFactory = json;
    this.psUtil = psUtil;
    this.mergeUtilFactory = mergeUtilFactory;
    this.batchUpdateFactory = batchUpdateFactory;
    this.patchSetInserterFactory = patchSetInserterFactory;
}

From source file:com.google.gerrit.server.change.GetPatch.java

License:Apache License

private static String formatDate(PersonIdent author) {
    SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.US);
    df.setCalendar(Calendar.getInstance(author.getTimeZone(), Locale.US));
    return df.format(author.getWhen());
}

From source file:com.google.gerrit.server.change.RebaseChange.java

License:Apache License

@Inject
RebaseChange(ChangeControl.GenericFactory changeControlFactory, Provider<ReviewDb> db,
        @GerritPersonIdent PersonIdent myIdent, GitRepositoryManager gitManager,
        MergeUtil.Factory mergeUtilFactory, PatchSetInserter.Factory patchSetInserterFactory) {
    this.changeControlFactory = changeControlFactory;
    this.db = db;
    this.gitManager = gitManager;
    this.serverTimeZone = myIdent.getTimeZone();
    this.mergeUtilFactory = mergeUtilFactory;
    this.patchSetInserterFactory = patchSetInserterFactory;
}

From source file:com.google.gerrit.server.changedetail.RebaseChange.java

License:Apache License

@Inject
RebaseChange(final ChangeControl.GenericFactory changeControlFactory, final Provider<ReviewDb> db,
        @GerritPersonIdent final PersonIdent myIdent, final GitRepositoryManager gitManager,
        final MergeUtil.Factory mergeUtilFactory, final PatchSetInserter.Factory patchSetInserterFactory) {
    this.changeControlFactory = changeControlFactory;
    this.db = db;
    this.gitManager = gitManager;
    this.serverTimeZone = myIdent.getTimeZone();
    this.mergeUtilFactory = mergeUtilFactory;
    this.patchSetInserterFactory = patchSetInserterFactory;
}

From source file:com.google.gerrit.server.ChangeUtil.java

License:Apache License

public Change.Id revert(ChangeControl ctl, PatchSet.Id patchSetId, String message, PersonIdent myIdent,
        SshInfo sshInfo) throws NoSuchChangeException, OrmException, MissingObjectException,
        IncorrectObjectTypeException, IOException, InvalidChangeOperationException {
    Change.Id changeId = patchSetId.getParentKey();
    PatchSet patch = db.get().patchSets().get(patchSetId);
    if (patch == null) {
        throw new NoSuchChangeException(changeId);
    }/*from  w w w. java 2  s. c om*/
    Change changeToRevert = db.get().changes().get(changeId);

    Project.NameKey project = ctl.getChange().getProject();
    try (Repository git = gitManager.openRepository(project); RevWalk revWalk = new RevWalk(git)) {
        RevCommit commitToRevert = revWalk.parseCommit(ObjectId.fromString(patch.getRevision().get()));

        PersonIdent authorIdent = user().newCommitterIdent(myIdent.getWhen(), myIdent.getTimeZone());

        RevCommit parentToCommitToRevert = commitToRevert.getParent(0);
        revWalk.parseHeaders(parentToCommitToRevert);

        CommitBuilder revertCommitBuilder = new CommitBuilder();
        revertCommitBuilder.addParentId(commitToRevert);
        revertCommitBuilder.setTreeId(parentToCommitToRevert.getTree());
        revertCommitBuilder.setAuthor(authorIdent);
        revertCommitBuilder.setCommitter(authorIdent);

        if (message == null) {
            message = MessageFormat.format(ChangeMessages.get().revertChangeDefaultMessage,
                    changeToRevert.getSubject(), patch.getRevision().get());
        }

        ObjectId computedChangeId = ChangeIdUtil.computeChangeId(parentToCommitToRevert.getTree(),
                commitToRevert, authorIdent, myIdent, message);
        revertCommitBuilder.setMessage(ChangeIdUtil.insertId(message, computedChangeId, true));

        RevCommit revertCommit;
        try (ObjectInserter oi = git.newObjectInserter()) {
            ObjectId id = oi.insert(revertCommitBuilder);
            oi.flush();
            revertCommit = revWalk.parseCommit(id);
        }

        RefControl refControl = ctl.getRefControl();
        Change change = new Change(new Change.Key("I" + computedChangeId.name()),
                new Change.Id(db.get().nextChangeId()), user().getAccountId(), changeToRevert.getDest(),
                TimeUtil.nowTs());
        change.setTopic(changeToRevert.getTopic());
        ChangeInserter ins = changeInserterFactory.create(refControl.getProjectControl(), change, revertCommit);
        PatchSet ps = ins.getPatchSet();

        String ref = refControl.getRefName();
        String cmdRef = MagicBranch.NEW_PUBLISH_CHANGE + ref.substring(ref.lastIndexOf('/') + 1);
        CommitReceivedEvent commitReceivedEvent = new CommitReceivedEvent(
                new ReceiveCommand(ObjectId.zeroId(), revertCommit.getId(), cmdRef),
                refControl.getProjectControl().getProject(), refControl.getRefName(), revertCommit, user());

        try {
            commitValidatorsFactory.create(refControl, sshInfo, git)
                    .validateForGerritCommits(commitReceivedEvent);
        } catch (CommitValidationException e) {
            throw new InvalidChangeOperationException(e.getMessage());
        }

        RefUpdate ru = git.updateRef(ps.getRefName());
        ru.setExpectedOldObjectId(ObjectId.zeroId());
        ru.setNewObjectId(revertCommit);
        ru.disableRefLog();
        if (ru.update(revWalk) != RefUpdate.Result.NEW) {
            throw new IOException(String.format("Failed to create ref %s in %s: %s", ps.getRefName(),
                    change.getDest().getParentKey().get(), ru.getResult()));
        }

        ChangeMessage cmsg = new ChangeMessage(new ChangeMessage.Key(changeId, messageUUID(db.get())),
                user().getAccountId(), TimeUtil.nowTs(), patchSetId);
        StringBuilder msgBuf = new StringBuilder();
        msgBuf.append("Patch Set ").append(patchSetId.get()).append(": Reverted");
        msgBuf.append("\n\n");
        msgBuf.append("This patchset was reverted in change: ").append(change.getKey().get());
        cmsg.setMessage(msgBuf.toString());

        ins.setMessage(cmsg).insert();

        try {
            RevertedSender cm = revertedSenderFactory.create(change.getId());
            cm.setFrom(user().getAccountId());
            cm.setChangeMessage(cmsg);
            cm.send();
        } catch (Exception err) {
            log.error("Cannot send email for revert change " + change.getId(), err);
        }

        return change.getId();
    } catch (RepositoryNotFoundException e) {
        throw new NoSuchChangeException(changeId, e);
    }
}