Use Project.NameKey in GitRepositoryManager
This simplifies all of the calling sites, where they have a
Project.NameKey on hand and would prefer not to invoke .get() to
convert it into a String.
Change-Id: If661fc07cff542a57af3c28f27ab401ce7b3a656
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java
index 8c1e5df..eacd0cf 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/ProjectServlet.java
@@ -171,7 +171,7 @@
}
req.setAttribute(ATT_CONTROL, pc);
- return manager.openRepository(pc.getProject().getName());
+ return manager.openRepository(pc.getProject().getNameKey());
}
}
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
index 8991ea9..2d7ed09 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
@@ -323,9 +323,9 @@
name = name.substring(0, name.length() - 4);
}
+ final Project.NameKey nameKey = new Project.NameKey(name);
final ProjectControl project;
try {
- final Project.NameKey nameKey = new Project.NameKey(name);
project = projectControl.validateFor(nameKey);
if (!project.allRefsAreVisible()) {
// Pretend the project doesn't exist
@@ -338,7 +338,7 @@
final Repository repo;
try {
- repo = repoManager.openRepository(name);
+ repo = repoManager.openRepository(nameKey);
} catch (RepositoryNotFoundException e) {
getServletContext().log("Cannot open repository", e);
rsp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/CatServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/CatServlet.java
index 832ae99..b4c3519 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/CatServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/CatServlet.java
@@ -157,7 +157,7 @@
final Repository repo;
try {
- repo = repoManager.openRepository(project.getNameKey().get());
+ repo = repoManager.openRepository(project.getNameKey());
} catch (RepositoryNotFoundException e) {
getServletContext().log("Cannot open repository", e);
rsp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/IncludedInDetailFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/IncludedInDetailFactory.java
index 7d6f764..398ca7e 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/IncludedInDetailFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/IncludedInDetailFactory.java
@@ -77,7 +77,7 @@
final PatchSet patch =
db.patchSets().get(control.getChange().currentPatchSetId());
final Repository repo =
- repoManager.openRepository(control.getProject().getName());
+ repoManager.openRepository(control.getProject().getNameKey());
try {
final RevWalk rw = new RevWalk(repo);
try {
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptFactory.java
index fcaa0c5..9ad8e3a 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/patch/PatchScriptFactory.java
@@ -137,7 +137,7 @@
final Repository git;
try {
- git = repoManager.openRepository(projectKey.get());
+ git = repoManager.openRepository(projectKey);
} catch (RepositoryNotFoundException e) {
log.error("Repository " + projectKey + " not found", e);
throw new NoSuchChangeException(changeId, e);
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddBranch.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddBranch.java
index d4698c2..4bd873a 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddBranch.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/AddBranch.java
@@ -107,7 +107,7 @@
final Branch.NameKey name = new Branch.NameKey(projectName, refname);
final RefControl refControl = projectControl.controlForRef(name);
- final Repository repo = repoManager.openRepository(projectName.get());
+ final Repository repo = repoManager.openRepository(projectName);
try {
final ObjectId revid = parseStartingRevision(repo);
final RevWalk rw = verifyConnected(repo, revid);
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectSettings.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectSettings.java
index 8831e90..88c85b8f 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectSettings.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectSettings.java
@@ -73,7 +73,7 @@
projectCache.evict(proj);
if (!projectControl.getProjectState().isSpecialWildProject()) {
- repoManager.setProjectDescription(projectName.get(), update.getDescription());
+ repoManager.setProjectDescription(projectName, update.getDescription());
}
return projectDetailFactory.create(projectName).call();
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/DeleteBranches.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/DeleteBranches.java
index fffc126..d3eae24 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/DeleteBranches.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/DeleteBranches.java
@@ -88,7 +88,7 @@
}
final Set<Branch.NameKey> deleted = new HashSet<Branch.NameKey>();
- final Repository r = repoManager.openRepository(projectName.get());
+ final Repository r = repoManager.openRepository(projectName);
try {
for (final Branch.NameKey branchKey : toRemove) {
final String refname = branchKey.get();
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ListBranches.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ListBranches.java
index 7b22de0..011e2ab 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ListBranches.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ListBranches.java
@@ -70,7 +70,7 @@
final Repository db;
try {
- db = repoManager.openRepository(projectName.get());
+ db = repoManager.openRepository(projectName);
} catch (RepositoryNotFoundException noGitRepository) {
return new ListBranchesResult(branches, false, true);
}
diff --git a/gerrit-httpd/src/test/java/com/google/gerrit/httpd/rpc/project/ListBranchesTest.java b/gerrit-httpd/src/test/java/com/google/gerrit/httpd/rpc/project/ListBranchesTest.java
index e05f811..1eb04e2 100644
--- a/gerrit-httpd/src/test/java/com/google/gerrit/httpd/rpc/project/ListBranchesTest.java
+++ b/gerrit-httpd/src/test/java/com/google/gerrit/httpd/rpc/project/ListBranchesTest.java
@@ -128,7 +128,7 @@
validate().andReturn(pc);
- expect(grm.openRepository(eq(name.get()))).andReturn(mockDb);
+ expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andDelegateTo(realDb);
if (getHead) {
expect(mockDb.getRef(HEAD)).andDelegateTo(realDb);
@@ -263,7 +263,7 @@
+ "master", null)));
validate().andReturn(pc);
- expect(grm.openRepository(eq(name.get()))).andReturn(mockDb);
+ expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andReturn(u);
for (Ref ref : u.values()) {
assumeVisible(ref, true);
@@ -291,7 +291,7 @@
u.put(HEAD, new SymbolicRef(HEAD, bar));
validate().andReturn(pc);
- expect(grm.openRepository(eq(name.get()))).andReturn(mockDb);
+ expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andReturn(u);
assumeVisible(bar, false);
assumeVisible(bar, false);
@@ -318,7 +318,7 @@
u.put(foo.getName(), foo);
validate().andReturn(pc);
- expect(grm.openRepository(eq(name.get()))).andReturn(mockDb);
+ expect(grm.openRepository(eq(name))).andReturn(mockDb);
expect(mockDb.getAllRefs()).andReturn(u);
assumeVisible(bar, true);
assumeVisible(bar, true);
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ScanTrackingIds.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ScanTrackingIds.java
index 16c72d4..beeed24 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ScanTrackingIds.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ScanTrackingIds.java
@@ -116,7 +116,7 @@
final Project.NameKey project = change.getDest().getParentKey();
final Repository git;
try {
- git = gitManager.openRepository(project.get());
+ git = gitManager.openRepository(project);
} catch (RepositoryNotFoundException e) {
return;
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java b/gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java
index c7c51b6..1a4a863 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/common/ChangeHookRunner.java
@@ -191,7 +191,7 @@
*/
private Repository openRepository(final Project.NameKey name) {
try {
- return repoManager.openRepository(name.get());
+ return repoManager.openRepository(name);
} catch (RepositoryNotFoundException err) {
log.warn("Cannot open repository " + name.get(), err);
return null;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/GitProjectImporter.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/GitProjectImporter.java
index 4a33999..3f2ff0d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/GitProjectImporter.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/GitProjectImporter.java
@@ -105,7 +105,7 @@
final Project.NameKey nameKey = new Project.NameKey(name);
final Project p = new Project(nameKey);
- p.setDescription(repositoryManager.getProjectDescription(name));
+ p.setDescription(repositoryManager.getProjectDescription(nameKey));
p.setSubmitType(SubmitType.MERGE_IF_NECESSARY);
p.setUseContributorAgreements(false);
p.setUseSignedOffBy(false);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/GitRepositoryManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/GitRepositoryManager.java
index 4ac55ba..701716d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/GitRepositoryManager.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/GitRepositoryManager.java
@@ -14,6 +14,7 @@
package com.google.gerrit.server.git;
+import com.google.gerrit.reviewdb.Project;
import com.google.inject.Singleton;
import org.eclipse.jgit.errors.RepositoryNotFoundException;
@@ -42,7 +43,7 @@
* @throws RepositoryNotFoundException the name does not denote an existing
* repository, or the name cannot be read as a repository.
*/
- public abstract Repository openRepository(String name)
+ public abstract Repository openRepository(Project.NameKey name)
throws RepositoryNotFoundException;
/**
@@ -54,7 +55,7 @@
* @throws RepositoryNotFoundException the name does not denote an existing
* repository, or the name cannot be read as a repository.
*/
- public abstract Repository createRepository(String name)
+ public abstract Repository createRepository(Project.NameKey name)
throws RepositoryNotFoundException;
/**
@@ -69,7 +70,7 @@
* @throws IOException the description file exists, but is not readable by
* this process.
*/
- public abstract String getProjectDescription(final String name)
+ public abstract String getProjectDescription(Project.NameKey name)
throws RepositoryNotFoundException, IOException;
/**
@@ -81,6 +82,6 @@
* @param name the repository name, relative to the base directory.
* @param description new description text for the repository.
*/
- public abstract void setProjectDescription(final String name,
+ public abstract void setProjectDescription(Project.NameKey name,
final String description);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
index c644ca8..7e98348 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/LocalDiskRepositoryManager.java
@@ -15,6 +15,7 @@
package com.google.gerrit.server.git;
import com.google.gerrit.lifecycle.LifecycleListener;
+import com.google.gerrit.reviewdb.Project;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePaths;
import com.google.inject.Inject;
@@ -84,14 +85,18 @@
return basePath;
}
- public Repository openRepository(String name)
+ private File gitDirOf(Project.NameKey name) {
+ return new File(getBasePath(), name.get());
+ }
+
+ public Repository openRepository(Project.NameKey name)
throws RepositoryNotFoundException {
if (isUnreasonableName(name)) {
throw new RepositoryNotFoundException("Invalid name: " + name);
}
try {
- final FileKey loc = FileKey.lenient(new File(basePath, name), FS.DETECTED);
+ final FileKey loc = FileKey.lenient(gitDirOf(name), FS.DETECTED);
return RepositoryCache.open(loc);
} catch (IOException e1) {
final RepositoryNotFoundException e2;
@@ -101,14 +106,14 @@
}
}
- public Repository createRepository(String name)
+ public Repository createRepository(final Project.NameKey name)
throws RepositoryNotFoundException {
if (isUnreasonableName(name)) {
throw new RepositoryNotFoundException("Invalid name: " + name);
}
try {
- File dir = FileKey.resolve(new File(basePath, name), FS.DETECTED);
+ File dir = FileKey.resolve(gitDirOf(name), FS.DETECTED);
FileKey loc;
if (dir != null) {
// Already exists on disk, use the repository we found.
@@ -118,10 +123,11 @@
// It doesn't exist under any of the standard permutations
// of the repository name, so prefer the standard bare name.
//
- if (!name.endsWith(".git")) {
- name = name + ".git";
+ String n = name.get();
+ if (!n.endsWith(Constants.DOT_GIT_EXT)) {
+ n = n + Constants.DOT_GIT_EXT;
}
- loc = FileKey.exact(new File(basePath, name), FS.DETECTED);
+ loc = FileKey.exact(new File(basePath, n), FS.DETECTED);
}
return RepositoryCache.open(loc, false);
} catch (IOException e1) {
@@ -132,7 +138,7 @@
}
}
- public String getProjectDescription(final String name)
+ public String getProjectDescription(final Project.NameKey name)
throws RepositoryNotFoundException, IOException {
final Repository e = openRepository(name);
try {
@@ -160,7 +166,8 @@
}
}
- public void setProjectDescription(final String name, final String description) {
+ public void setProjectDescription(final Project.NameKey name,
+ final String description) {
// Update git's description file, in case gitweb is being used
//
try {
@@ -193,7 +200,9 @@
}
}
- private boolean isUnreasonableName(final String name) {
+ private boolean isUnreasonableName(final Project.NameKey nameKey) {
+ final String name = nameKey.get();
+
if (name.length() == 0) return true; // no empty paths
if (name.indexOf('\\') >= 0) return true; // no windows/dos stlye paths
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
index 2efb1f4..e402728 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
@@ -240,11 +240,11 @@
}
private void openRepository() throws MergeException {
- final String name = destBranch.getParentKey().get();
+ final Project.NameKey name = destBranch.getParentKey();
try {
db = repoManager.openRepository(name);
} catch (RepositoryNotFoundException notGit) {
- final String m = "Repository \"" + name + "\" unknown.";
+ final String m = "Repository \"" + name.get() + "\" unknown.";
throw new MergeException(m, notGit);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/PushOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/PushOp.java
index 043e7c4..4fc2648 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/PushOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/PushOp.java
@@ -158,7 +158,7 @@
// since the canceled flag would be set locking the queue.
if (!canceled) {
try {
- db = repoManager.openRepository(projectName.get());
+ db = repoManager.openRepository(projectName);
runImpl();
} catch (RepositoryNotFoundException e) {
log.error("Cannot replicate " + projectName + "; " + e.getMessage());
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java
index 0377291..3725a3c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/ChangeEmail.java
@@ -48,12 +48,11 @@
/** Sends an email to one or more interested parties. */
public abstract class ChangeEmail extends OutgoingEmail {
protected final Change change;
- protected String projectName;
protected PatchSet patchSet;
protected PatchSetInfo patchSetInfo;
protected ChangeMessage changeMessage;
- private ProjectState projectState;
+ protected ProjectState projectState;
protected ChangeData changeData;
protected ChangeEmail(EmailArguments ea, final Change c, final String mc) {
@@ -105,11 +104,8 @@
protected void init() throws EmailException {
if (args.projectCache != null) {
projectState = args.projectCache.get(change.getProject());
- projectName =
- projectState != null ? projectState.getProject().getName() : null;
} else {
projectState = null;
- projectName = null;
}
if (patchSet == null) {
@@ -399,7 +395,8 @@
velocityContext.put("coverLetter", getCoverLetter());
velocityContext.put("branch", change.getDest());
velocityContext.put("fromName", getNameFor(fromId));
- velocityContext.put("projectName", projectName);
+ velocityContext.put("projectName", //
+ projectState != null ? projectState.getProject().getName() : null);
velocityContext.put("patchSet", patchSet);
velocityContext.put("patchSetInfo", patchSetInfo);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java
index 0425121..062d14b 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java
@@ -136,7 +136,7 @@
private Repository getRepository() {
try {
- return args.server.openRepository(projectName);
+ return args.server.openRepository(projectState.getProject().getNameKey());
} catch (RepositoryNotFoundException e) {
return null;
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
index d75aec6..44e2e89 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
@@ -58,7 +58,7 @@
@Override
public PatchList createEntry(final PatchListKey key) throws Exception {
- final Repository repo = repoManager.openRepository(key.projectKey.get());
+ final Repository repo = repoManager.openRepository(key.projectKey);
try {
return readPatchList(key, repo);
} finally {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchSetInfoFactory.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchSetInfoFactory.java
index 840e76f..1c2c97d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchSetInfoFactory.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchSetInfoFactory.java
@@ -76,8 +76,7 @@
final PatchSet patchSet = db.patchSets().get(patchSetId);
final Change change = db.changes().get(patchSet.getId().getParentKey());
final Project.NameKey projectKey = change.getProject();
- final String projectName = projectKey.get();
- repo = repoManager.openRepository(projectName);
+ repo = repoManager.openRepository(projectKey);
final RevWalk rw = new RevWalk(repo);
try {
final RevCommit src =
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java
index 0490127..20b777d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/MessagePredicate.java
@@ -92,7 +92,7 @@
}
try {
- final Repository repo = repoManager.openRepository(projectName.get());
+ final Repository repo = repoManager.openRepository(projectName);
try {
final RevWalk rw = new RevWalk(repo);
try {
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/AbstractGitCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/AbstractGitCommand.java
index eca28d8..a72b50e 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/AbstractGitCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/AbstractGitCommand.java
@@ -93,11 +93,10 @@
private void service() throws IOException, Failure {
project = projectControl.getProjectState().getProject();
- final String name = project.getName();
try {
- repo = repoManager.openRepository(name);
+ repo = repoManager.openRepository(project.getNameKey());
} catch (RepositoryNotFoundException e) {
- throw new Failure(1, "fatal: '" + name + "': not a git archive", e);
+ throw new Failure(1, "fatal: '" + project.getName() + "': not a git archive", e);
}
try {
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java
index 5269e43..e353ba6 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProject.java
@@ -119,6 +119,8 @@
@GerritPersonIdent
private PersonIdent serverIdent;
+ private Project.NameKey nameKey;
+
@Override
public void start(final Environment env) {
startThread(new CommandRunnable() {
@@ -130,9 +132,10 @@
try {
validateParameters();
+ nameKey = new Project.NameKey(projectName);
if (!permissionsOnly) {
- final Repository repo = repoManager.createRepository(projectName);
+ final Repository repo = repoManager.createRepository(nameKey);
try {
repo.create(true);
@@ -140,14 +143,12 @@
u.disableRefLog();
u.link(branch);
- repoManager
- .setProjectDescription(projectName, projectDescription);
+ repoManager.setProjectDescription(nameKey, projectDescription);
- final Project.NameKey project = new Project.NameKey(projectName);
- rq.replicateNewProject(project, branch);
+ rq.replicateNewProject(nameKey, branch);
if (createEmptyCommit) {
- createEmptyCommit(repo, project, branch);
+ createEmptyCommit(repo, nameKey, branch);
}
} finally {
repo.close();
@@ -198,12 +199,10 @@
}
private void createProject() throws OrmException {
- final Project.NameKey newProjectNameKey = new Project.NameKey(projectName);
-
List<RefRight> access = new ArrayList<RefRight>();
for (AccountGroup.Id ownerId : ownerIds) {
final RefRight.Key prk =
- new RefRight.Key(newProjectNameKey, new RefRight.RefPattern(
+ new RefRight.Key(nameKey, new RefRight.RefPattern(
RefRight.ALL), ApprovalCategory.OWN, ownerId);
final RefRight pr = new RefRight(prk);
pr.setMaxValue((short) 1);
@@ -212,7 +211,7 @@
}
db.refRights().insert(access);
- final Project newProject = new Project(newProjectNameKey);
+ final Project newProject = new Project(nameKey);
newProject.setDescription(projectDescription);
newProject.setSubmitType(submitType);
newProject.setUseContributorAgreements(contributorAgreements);
@@ -227,9 +226,9 @@
}
private void validateParameters() throws Failure {
- if (projectName.endsWith(".git")) {
- projectName =
- projectName.substring(0, projectName.length() - ".git".length());
+ if (projectName.endsWith(Constants.DOT_GIT_EXT)) {
+ projectName = projectName.substring(0, //
+ projectName.length() - Constants.DOT_GIT_EXT.length());
}
if (!CollectionsUtil.isAnyIncludedIn(currentUser.getEffectiveGroups(), projectCreatorGroups)) {
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ListProjects.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ListProjects.java
index 7618432..bb04f7a 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ListProjects.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ListProjects.java
@@ -170,7 +170,7 @@
private Ref getBranchRef(Project.NameKey projectName) {
try {
- final Repository r = repoManager.openRepository(projectName.get());
+ final Repository r = repoManager.openRepository(projectName);
try {
return r.getRef(showBranch);
} finally {