Example usage for org.eclipse.jgit.lib SymbolicRef SymbolicRef

List of usage examples for org.eclipse.jgit.lib SymbolicRef SymbolicRef

Introduction

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

Prototype

public SymbolicRef(@NonNull String refName, @NonNull Ref target) 

Source Link

Document

Create a new ref pairing.

Usage

From source file:com.benhumphreys.jgitcassandra.store.RefStore.java

License:Apache License

/**
 * Parses a Cassandra refs table row and converts it to a Ref
 *
 * @param row a single Cassandra row to parse
 * @return a ref, or null if the "row" parameter is null
 * @throws IOException           if an exception occurs when communicating to the
 *                               database
 * @throws IllegalStateException if the "type" field read back from the
 *                               database is not one of the four handled
 *                               types (@see RefType).
 *//*from w ww . j  a  v  a 2 s  .co m*/
private Ref rowToRef(Row row) throws IOException {
    if (row == null) {
        return null;
    }

    final String name = row.getString("name");
    final String value = row.getString("value");
    final int refType = row.getInt("type");

    if (refType == RefType.PEELED_NONTAG.getValue()) {
        return new ObjectIdRef.PeeledNonTag(Ref.Storage.NETWORK, name, ObjectId.fromString(value));
    } else if (refType == RefType.PEELED_TAG.getValue()) {
        final String auxValue = row.getString("aux_value");
        return new ObjectIdRef.PeeledTag(Ref.Storage.NETWORK, name, ObjectId.fromString(value),
                ObjectId.fromString(auxValue));
    } else if (refType == RefType.UNPEELED.getValue()) {
        return new ObjectIdRef.Unpeeled(Ref.Storage.NETWORK, name, ObjectId.fromString(value));
    } else if (refType == RefType.SYMBOLIC.getValue()) {
        return new SymbolicRef(name, get(value));
    } else {
        throw new IllegalStateException("Unhandled ref type: " + refType);
    }
}

From source file:com.google.gerrit.httpd.rpc.project.ListBranchesTest.java

License:Apache License

@Test
public void testSortByName() throws Exception {
    Map<String, Ref> u = new LinkedHashMap<String, Ref>();
    u.put("foo", new ObjectIdRef.Unpeeled(LOOSE, R_HEADS + "foo", idA));
    u.put("bar", new ObjectIdRef.Unpeeled(LOOSE, R_HEADS + "bar", idA));
    u.put(HEAD, new SymbolicRef(HEAD, new ObjectIdRef.Unpeeled(LOOSE, R_HEADS + "master", null)));

    validate().andReturn(pc);//w  w  w  .j a  va2 s. co m
    expect(grm.openRepository(eq(name))).andReturn(mockDb);
    expect(mockDb.getAllRefs()).andReturn(u);
    for (Ref ref : u.values()) {
        assumeVisible(ref, true, targets(u));
    }
    expect(pc.canAddRefs()).andReturn(true);
    mockDb.close();
    expectLastCall();

    doReplay();
    final ListBranchesResult r = new ListBranches(pcf, grm, name).call();
    doVerify();
    assertNotNull(r);

    assertEquals(3, r.getBranches().size());
    assertEquals(HEAD, r.getBranches().get(0).getShortName());
    assertEquals("bar", r.getBranches().get(1).getShortName());
    assertEquals("foo", r.getBranches().get(2).getShortName());
}

From source file:com.google.gerrit.httpd.rpc.project.ListBranchesTest.java

License:Apache License

@Test
public void testHeadNotVisible() throws Exception {
    ObjectIdRef.Unpeeled bar = new ObjectIdRef.Unpeeled(LOOSE, R_HEADS + "bar", idA);
    Map<String, Ref> u = new LinkedHashMap<String, Ref>();
    u.put(bar.getName(), bar);/*w  ww .j av a2s  .  c  o  m*/
    u.put(HEAD, new SymbolicRef(HEAD, bar));

    validate().andReturn(pc);
    expect(grm.openRepository(eq(name))).andReturn(mockDb);
    expect(mockDb.getAllRefs()).andReturn(u);
    assumeVisible(bar, false, targets(u));
    assumeVisible(bar, false, targets(u));
    expect(pc.canAddRefs()).andReturn(true);
    mockDb.close();
    expectLastCall();

    doReplay();
    final ListBranchesResult r = new ListBranches(pcf, grm, name).call();
    doVerify();
    assertNotNull(r);
    assertTrue(r.getBranches().isEmpty());
}

From source file:com.google.gerrit.httpd.rpc.project.ListBranchesTest.java

License:Apache License

@Test
public void testHeadVisibleButBranchHidden() throws Exception {
    ObjectIdRef.Unpeeled bar = new ObjectIdRef.Unpeeled(LOOSE, R_HEADS + "bar", idA);
    ObjectIdRef.Unpeeled foo = new ObjectIdRef.Unpeeled(LOOSE, R_HEADS + "foo", idA);

    Map<String, Ref> u = new LinkedHashMap<String, Ref>();
    u.put(bar.getName(), bar);// w  w w . j a v  a 2  s .c o m
    u.put(HEAD, new SymbolicRef(HEAD, bar));
    u.put(foo.getName(), foo);

    validate().andReturn(pc);
    expect(grm.openRepository(eq(name))).andReturn(mockDb);
    expect(mockDb.getAllRefs()).andReturn(u);
    assumeVisible(bar, true, targets(u));
    assumeVisible(bar, true, targets(u));
    assumeVisible(foo, false, targets(u));
    expect(pc.canAddRefs()).andReturn(true);
    mockDb.close();
    expectLastCall();

    doReplay();
    final ListBranchesResult r = new ListBranches(pcf, grm, name).call();
    doVerify();
    assertNotNull(r);

    assertEquals(2, r.getBranches().size());

    assertEquals(HEAD, r.getBranches().get(0).getShortName());
    assertFalse(r.getBranches().get(0).getCanDelete());

    assertEquals("bar", r.getBranches().get(1).getShortName());
    assertFalse(r.getBranches().get(1).getCanDelete());
}

From source file:it.com.atlassian.labs.speakeasy.util.jgit.FixedTransportHttp.java

License:Eclipse Distribution License

private FetchConnection newDumbConnection(InputStream in) throws IOException, PackProtocolException {
    HttpObjectDB d = new HttpObjectDB(objectsUrl);
    BufferedReader br = toBufferedReader(in);
    Map<String, Ref> refs;
    try {//from ww  w.j av a2s. c  o m
        refs = d.readAdvertisedImpl(br);
    } finally {
        br.close();
    }

    if (!refs.containsKey(Constants.HEAD)) {
        // If HEAD was not published in the info/refs file (it usually
        // is not there) download HEAD by itself as a loose file and do
        // the resolution by hand.
        //
        HttpURLConnection conn = httpOpen(new URL(baseUrl, Constants.HEAD));
        int status = HttpSupport.response(conn);
        switch (status) {
        case HttpURLConnection.HTTP_OK: {
            br = toBufferedReader(openInputStream(conn));
            try {
                String line = br.readLine();
                if (line != null && line.startsWith(RefDirectory.SYMREF)) {
                    String target = line.substring(RefDirectory.SYMREF.length());
                    Ref r = refs.get(target);
                    if (r == null)
                        r = new ObjectIdRef.Unpeeled(Ref.Storage.NEW, target, null);
                    r = new SymbolicRef(Constants.HEAD, r);
                    refs.put(r.getName(), r);
                } else if (line != null && ObjectId.isId(line)) {
                    Ref r = new ObjectIdRef.Unpeeled(Ref.Storage.NETWORK, Constants.HEAD,
                            ObjectId.fromString(line));
                    refs.put(r.getName(), r);
                }
            } finally {
                br.close();
            }
            break;
        }

        case HttpURLConnection.HTTP_NOT_FOUND:
            break;

        default:
            throw new TransportException(uri,
                    MessageFormat.format(JGitText.get().cannotReadHEAD, status, conn.getResponseMessage()));
        }
    }

    WalkFetchConnection wfc = new WalkFetchConnection(this, d);
    wfc.available(refs);
    return wfc;
}

From source file:org.chodavarapu.jgitaws.repositories.RefRepository.java

License:Eclipse Distribution License

public Observable<Ref> getAllRefsSorted(String repositoryName) {
    return configuration.getDynamoClient()
            .getAllItems(configuration.getRefsTableName(), new QuerySpec()
                    .withHashKey(REPOSITORY_NAME_ATTRIBUTE, repositoryName).withScanIndexForward(true))
            .map(item -> {/*from ww  w.j  a  v a2  s .  co m*/
                String name = item.getString(NAME_ATTRIBUTE);
                String target = item.getString(TARGET_ATTRIBUTE);
                boolean isSymbolic = item.getBoolean(IS_SYMBOLIC_ATTRIBUTE);
                boolean isPeeled = item.getBoolean(IS_PEELED_ATTRIBUTE);
                String peeledTarget = item.getString(PEELED_TARGET_ATTRIBUTE);

                if (isSymbolic) {
                    return new SymbolicRef(name, new ObjectIdRef.Unpeeled(Ref.Storage.PACKED, target, null));
                } else {
                    if (isPeeled) {
                        if (peeledTarget == null) {
                            return new ObjectIdRef.PeeledNonTag(Ref.Storage.PACKED, name,
                                    ObjectId.fromString(target));
                        } else {
                            return new ObjectIdRef.PeeledTag(Ref.Storage.PACKED, name,
                                    ObjectId.fromString(target), ObjectId.fromString(peeledTarget));
                        }
                    } else {
                        return new ObjectIdRef.Unpeeled(Ref.Storage.PACKED, name, ObjectId.fromString(target));
                    }
                }
            });
}

From source file:org.uberfire.java.nio.fs.jgit.util.commands.RefTreeUpdateCommand.java

License:Apache License

private void symRef(final Git git, final String name, final String dst) throws java.io.IOException {
    commit(git.getRepository(), null, (reader, tree) -> {
        Ref old = tree.exactRef(reader, name);
        Ref newx = tree.exactRef(reader, dst);
        final Command n;
        if (newx != null) {
            n = new Command(old, new SymbolicRef(name, newx));
        } else {/*from w  w w.  j  a va  2 s  .  co  m*/
            n = new Command(old, new SymbolicRef(name, new ObjectIdRef.Unpeeled(Ref.Storage.NEW, dst, null)));
        }
        return tree.apply(Collections.singleton(n));
    });
}