Example usage for org.eclipse.jgit.lib Constants OBJ_TREE

List of usage examples for org.eclipse.jgit.lib Constants OBJ_TREE

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Constants OBJ_TREE.

Prototype

int OBJ_TREE

To view the source code for org.eclipse.jgit.lib Constants OBJ_TREE.

Click Source Link

Document

In-pack object type: tree.

Usage

From source file:com.chungkwong.jgitgui.CommitTreeItem.java

License:Open Source License

@Override
public Node getContentPage() {
    RevCommit rev = (RevCommit) getValue();
    Repository repository = ((Git) getParent().getParent().getValue()).getRepository();
    SplitPane page = new SplitPane();
    page.setOrientation(Orientation.VERTICAL);
    StringBuilder buf = new StringBuilder();
    buf.append(java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text").getString("PARENTS:"));
    for (int i = 0; i < rev.getParentCount(); i++)
        buf.append(rev.getParent(i)).append('\n');
    buf.append(java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text").getString("MESSAGE:"));
    buf.append(rev.getFullMessage());/*w  w w .  j  a v  a2  s  .c o m*/
    TextArea msg = new TextArea(buf.toString());
    msg.setEditable(false);
    page.getItems().add(msg);
    SplitPane fileViewer = new SplitPane();
    fileViewer.setOrientation(Orientation.HORIZONTAL);
    TreeView tree = new TreeView(new TreeItem());
    tree.setShowRoot(false);
    TextArea content = new TextArea();
    content.setEditable(false);
    try (TreeWalk walk = new TreeWalk(repository)) {
        walk.addTree(rev.getTree());
        walk.setRecursive(true);
        LinkedList<TreeItem> items = new LinkedList<>();
        items.add(tree.getRoot());
        while (walk.next()) {
            TreeItem item = new FileTreeItem(walk.getObjectId(0), walk.getPathString());
            /*while(walk.getDepth()<items.size()-1)
               items.removeLast();
            if(walk.getDepth()>items.size()-1)
               items.addLast(item);*/
            items.getLast().getChildren().add(item);
        }
    } catch (Exception ex) {
        Logger.getLogger(CommitTreeItem.class.getName()).log(Level.SEVERE, null, ex);
        Util.informUser(ex);
    }
    tree.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue ov, Object t, Object t1) {
            if (t1 != null) {
                try {
                    ObjectLoader obj = repository.open(((FileTreeItem) t1).getId());
                    if (obj.getType() != Constants.OBJ_TREE) {
                        StringBuilder buf = new StringBuilder();
                        BufferedReader in = new BufferedReader(
                                new InputStreamReader(obj.openStream(), rev.getEncoding()));
                        content.setText(in.lines().collect(Collectors.joining("\n")));
                    }
                } catch (Exception ex) {
                    Logger.getLogger(CommitTreeItem.class.getName()).log(Level.SEVERE, null, ex);
                    Util.informUser(ex);
                }
            }
        }
    });
    fileViewer.getItems().add(tree);
    fileViewer.getItems().add(content);
    page.getItems().add(fileViewer);
    page.setDividerPositions(0.2, 0.8);
    return page;
}

From source file:com.gitblit.wicket.pages.TagPage.java

License:Apache License

public TagPage(PageParameters params) {
    super(params);

    Repository r = getRepository();//from  w ww .  ja  va  2s .  c  o  m

    // Find tag in repository
    List<RefModel> tags = JGitUtils.getTags(r, true, -1);
    RefModel tagRef = null;
    for (RefModel tag : tags) {
        if (tag.getName().equals(objectId) || tag.getObjectId().getName().equals(objectId)) {
            tagRef = tag;
            break;
        }
    }

    // Failed to find tag!
    if (tagRef == null) {
        error(MessageFormat.format(getString("gb.couldNotFindTag"), objectId), true);
    }

    // Display tag.
    Class<? extends WebPage> linkClass;
    PageParameters linkParameters = newCommitParameter(tagRef.getReferencedObjectId().getName());
    String typeKey;
    switch (tagRef.getReferencedObjectType()) {
    case Constants.OBJ_BLOB:
        typeKey = "gb.blob";
        linkClass = BlobPage.class;
        break;
    case Constants.OBJ_TREE:
        typeKey = "gb.tree";
        linkClass = TreePage.class;
        break;
    case Constants.OBJ_COMMIT:
    default:
        typeKey = "gb.commit";
        linkClass = CommitPage.class;
        break;
    }
    add(new AvatarImage("taggerAvatar", tagRef.getAuthorIdent()));

    add(new RefsPanel("tagName", repositoryName, Arrays.asList(tagRef)));
    add(new Label("tagId", tagRef.getObjectId().getName()));
    add(new LinkPanel("taggedObject", "list", tagRef.getReferencedObjectId().getName(), linkClass,
            linkParameters));
    add(new Label("taggedObjectType", getString(typeKey)));

    add(createPersonPanel("tagger", tagRef.getAuthorIdent(), com.gitblit.Constants.SearchType.AUTHOR));
    Date when = new Date(0);
    if (tagRef.getAuthorIdent() != null) {
        when = tagRef.getAuthorIdent().getWhen();
    }
    add(WicketUtils.createTimestampLabel("tagDate", when, getTimeZone(), getTimeUtils()));

    addFullText("fullMessage", tagRef.getFullMessage());
}

From source file:com.gitblit.wicket.panels.TagsPanel.java

License:Apache License

public TagsPanel(String wicketId, final String repositoryName, Repository r, final int maxCount) {
    super(wicketId);

    // header/*from  w  w w.  ja  va 2 s .c  om*/
    List<RefModel> tags = JGitUtils.getTags(r, false, maxCount);
    if (maxCount > 0) {
        // summary page
        // show tags page link
        add(new LinkPanel("header", "title", new StringResourceModel("gb.tags", this, null), TagsPage.class,
                WicketUtils.newRepositoryParameter(repositoryName)));
    } else {
        // tags page
        add(new Label("header", new StringResourceModel("gb.tags", this, null)));
    }

    ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags);
    DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) {
        private static final long serialVersionUID = 1L;
        int counter;

        @Override
        public void populateItem(final Item<RefModel> item) {
            RefModel entry = item.getModelObject();

            item.add(WicketUtils.createDateLabel("tagDate", entry.getDate(), getTimeZone(), getTimeUtils()));

            Class<? extends WebPage> linkClass;
            switch (entry.getReferencedObjectType()) {
            case Constants.OBJ_BLOB:
                linkClass = BlobPage.class;
                break;
            case Constants.OBJ_TREE:
                linkClass = TreePage.class;
                break;
            case Constants.OBJ_COMMIT:
            default:
                linkClass = CommitPage.class;
                break;
            }
            item.add(new LinkPanel("tagName", "list name", entry.displayName, linkClass,
                    WicketUtils.newObjectParameter(repositoryName, entry.getReferencedObjectId().getName())));

            // workaround for RevTag returning a lengthy shortlog. :(
            String message = StringUtils.trimString(entry.getShortMessage(),
                    com.gitblit.Constants.LEN_SHORTLOG);

            if (linkClass.equals(BlobPage.class)) {
                // Blob Tag Object
                item.add(WicketUtils.newImage("tagIcon", "file_16x16.png"));
                LinkPanel messageLink = new LinkPanel("tagDescription", "list", message, TagPage.class,
                        WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName()));
                if (!entry.getShortMessage().equals(message)) {
                    messageLink.setTooltip(entry.getShortMessage());
                }
                item.add(messageLink);

                Fragment fragment = new Fragment("tagLinks", "blobLinks", TagsPanel.this);
                fragment.add(new BookmarkablePageLink<Void>("tag", TagPage.class,
                        WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName()))
                                .setEnabled(entry.isAnnotatedTag()));

                fragment.add(new BookmarkablePageLink<Void>("blob", linkClass, WicketUtils
                        .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName())));

                String contextUrl = GitBlitRequestUtils.getRelativePathPrefixToContextRoot();
                String rawUrl = RawServlet.asLink(contextUrl, repositoryName, entry.displayName,
                        entry.getReferencedObjectId().getName());
                fragment.add(new ExternalLink("raw", rawUrl));
                item.add(fragment);
            } else {
                // TODO Tree Tag Object
                // Standard Tag Object
                if (entry.isAnnotatedTag()) {
                    item.add(WicketUtils.newImage("tagIcon", "tag_16x16.png"));
                    LinkPanel messageLink = new LinkPanel("tagDescription", "list", message, TagPage.class,
                            WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName()));
                    if (!message.equals(entry.getShortMessage())) {
                        messageLink.setTooltip(entry.getShortMessage());
                    }
                    item.add(messageLink);

                    Fragment fragment = new Fragment("tagLinks", "annotatedLinks", TagsPanel.this);
                    fragment.add(new BookmarkablePageLink<Void>("tag", TagPage.class,
                            WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName()))
                                    .setEnabled(entry.isAnnotatedTag()));

                    fragment.add(new BookmarkablePageLink<Void>("commit", linkClass, WicketUtils
                            .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName())));

                    fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class,
                            WicketUtils.newObjectParameter(repositoryName, entry.getName())));
                    item.add(fragment);
                } else {
                    item.add(WicketUtils.newBlankImage("tagIcon"));
                    item.add(new LinkPanel("tagDescription", "list", message, CommitPage.class,
                            WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())));
                    Fragment fragment = new Fragment("tagLinks", "lightweightLinks", TagsPanel.this);
                    fragment.add(new BookmarkablePageLink<Void>("commit", CommitPage.class, WicketUtils
                            .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName())));
                    fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class,
                            WicketUtils.newObjectParameter(repositoryName, entry.getName())));
                    item.add(fragment);
                }
            }

            WicketUtils.setAlternatingBackground(item, counter);
            counter++;
        }
    };
    add(tagView);
    if (tags.size() < maxCount || maxCount <= 0) {
        add(new Label("allTags", "").setVisible(false));
    } else {
        add(new LinkPanel("allTags", "link", new StringResourceModel("gb.allTags", this, null), TagsPage.class,
                WicketUtils.newRepositoryParameter(repositoryName)));
    }

    hasTags = tags.size() > 0;
}

From source file:com.github.kaitoy.goslings.server.dao.jgit.ObjectDaoImpl.java

License:Open Source License

@Override
@Cacheable/*from  www .  java2  s  .  c  om*/
public Tree[] getTrees(String token, String[] objectIds) throws DaoException {
    try (RevWalk walk = new RevWalk(resolver.getRepository(token))) {
        List<Tree> trees = new ArrayList<>(objectIds.length);
        for (String objectId : objectIds) {
            try {
                RevObject obj = walk.parseAny(ObjectId.fromString(objectId));
                if (obj.getType() != Constants.OBJ_TREE) {
                    String message = new StringBuilder().append("Failed to get a tree in the repository ")
                            .append(token).append(". ").append(objectId).append(" is not a tree.").toString();
                    LOG.error(message + "It's {}.", obj.getClass());
                    throw new DaoException(message);
                }
                trees.add(convertToTree(token, (RevTree) obj));
            } catch (MissingObjectException e) {
                String message = new StringBuilder().append("Failed to get a tree in the repository ")
                        .append(token).append(". ").append(objectId).append(" doesn't exist.").toString();
                LOG.error(message);
                throw new DaoException(message, e);
            } catch (IOException e) {
                String message = new StringBuilder().append("Failed to get a tree ").append(objectId)
                        .append(" in the repository ").append(token).append(" due to an I/O error.").toString();
                LOG.error(message);
                throw new DaoException(message, e);
            }
        }
        return trees.toArray(new Tree[objectIds.length]);
    }
}

From source file:com.github.kaitoy.goslings.server.dao.jgit.ObjectDaoImpl.java

License:Open Source License

@Override
@Cacheable//from w w  w  .j av a 2  s  .co  m
public String getContents(String token, String objectId) {
    RawContents rawContents = getRawContents(token, objectId);
    if (rawContents.type == Constants.OBJ_TREE) {
        try {
            List<TreeEntry> entries = parseTree(rawContents.contents);
            StringBuilder sb = new StringBuilder();
            for (TreeEntry entry : entries) {
                sb.append(entry.mode).append(entry.isTree() ? " tree " : " blob ").append(entry.id).append(" ")
                        .append(entry.name).append("\n");
            }
            return sb.toString();
        } catch (IOException e) {
            String message = new StringBuilder().append("Filed to get contents of the tree ").append(objectId)
                    .append(" in the repository ").append(token).append(" due to an I/O error.").toString();
            LOG.error(message, e);
            throw new DaoException(message, e);
        }
    } else {
        return new String(rawContents.contents);
    }
}

From source file:com.google.gerrit.server.account.AccountsUpdate.java

License:Apache License

private static ObjectId emptyTree(ObjectInserter oi) throws IOException {
    return oi.insert(Constants.OBJ_TREE, new byte[] {});
}

From source file:com.google.gerrit.server.patch.PatchListLoader.java

License:Apache License

private static ObjectId emptyTree(final Repository repo) throws IOException {
    try (ObjectInserter oi = repo.newObjectInserter()) {
        ObjectId id = oi.insert(Constants.OBJ_TREE, new byte[] {});
        oi.flush();//w  w w  . j a  v a2 s  . c om
        return id;
    }
}

From source file:com.google.gerrit.server.project.CreateProject.java

License:Apache License

private void createEmptyCommits(Repository repo, Project.NameKey project, List<String> refs)
        throws IOException {
    try (ObjectInserter oi = repo.newObjectInserter()) {
        CommitBuilder cb = new CommitBuilder();
        cb.setTreeId(oi.insert(Constants.OBJ_TREE, new byte[] {}));
        cb.setAuthor(metaDataUpdateFactory.getUserPersonIdent());
        cb.setCommitter(serverIdent);/*from ww w  .j a  va2  s. c  om*/
        cb.setMessage("Initial empty repository\n");

        ObjectId id = oi.insert(cb);
        oi.flush();

        for (String ref : refs) {
            RefUpdate ru = repo.updateRef(ref);
            ru.setNewObjectId(id);
            Result result = ru.update();
            switch (result) {
            case NEW:
                referenceUpdated.fire(project, ru, ReceiveCommand.Type.CREATE);
                break;
            default: {
                throw new IOException(String.format("Failed to create ref \"%s\": %s", ref, result.name()));
            }
            }
        }
    } catch (IOException e) {
        log.error("Cannot create empty commit for " + project.get(), e);
        throw e;
    }
}

From source file:com.google.gerrit.server.project.PerformCreateProject.java

License:Apache License

private void createEmptyCommits(final Repository repo, final Project.NameKey project, final List<String> refs)
        throws IOException {
    ObjectInserter oi = repo.newObjectInserter();
    try {/*  w w  w . j a  v  a2  s .  c  o m*/
        CommitBuilder cb = new CommitBuilder();
        cb.setTreeId(oi.insert(Constants.OBJ_TREE, new byte[] {}));
        cb.setAuthor(metaDataUpdateFactory.getUserPersonIdent());
        cb.setCommitter(serverIdent);
        cb.setMessage("Initial empty repository\n");

        ObjectId id = oi.insert(cb);
        oi.flush();

        for (String ref : refs) {
            RefUpdate ru = repo.updateRef(ref);
            ru.setNewObjectId(id);
            final Result result = ru.update();
            switch (result) {
            case NEW:
                referenceUpdated.fire(project, ru);
                break;
            default: {
                throw new IOException(String.format("Failed to create ref \"%s\": %s", ref, result.name()));
            }
            }
        }
    } catch (IOException e) {
        log.error("Cannot create empty commit for " + createProjectArgs.getProjectName(), e);
        throw e;
    } finally {
        oi.release();
    }
}

From source file:com.google.gerrit.server.tools.hooks.CommitMsgHookTest.java

License:Apache License

private void setHEAD() throws Exception {
    try (ObjectInserter oi = repository.newObjectInserter()) {
        final CommitBuilder commit = new CommitBuilder();
        commit.setTreeId(oi.insert(Constants.OBJ_TREE, new byte[] {}));
        commit.setAuthor(author);/*from  w  ww . ja v a 2  s  .  c o  m*/
        commit.setCommitter(committer);
        commit.setMessage("test\n");
        ObjectId commitId = oi.insert(commit);

        final RefUpdate ref = repository.updateRef(Constants.HEAD);
        ref.setNewObjectId(commitId);
        Result result = ref.forceUpdate();
        assert_().withFailureMessage(Constants.HEAD + " did not change: " + ref.getResult()).that(result)
                .isAnyOf(Result.FAST_FORWARD, Result.FORCED, Result.NEW, Result.NO_CHANGE);
    }
}