Renamed GerritServert to GitRepositoryManager and moved it to git package.

After all refactorings that happened GerritServer has been reduced to
class that simply manages (opens and closes) Git repositories. Therefore it
makes sense to change its name and package that represents its purpose.

Apart from, removed some arguments to constructor (dependencies) which
were never used.

Change-Id: I1ca63b928013bc07220cc70adbd774856bd07bb4
Signed-off-by: Grzegorz Kossakowski <grek@google.com>
This commit is contained in:
Grzegorz Kossakowski
2009-09-09 18:56:54 -07:00
parent 7f6d46e8d6
commit fd00f1f678
15 changed files with 64 additions and 70 deletions

View File

@@ -12,10 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.server;
package com.google.gerrit.git;
import com.google.gerrit.client.reviewdb.SystemConfig;
import com.google.gerrit.server.config.AuthConfig;
import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.SitePath;
import com.google.inject.Inject;
@@ -34,16 +32,15 @@ import org.spearce.jgit.lib.RepositoryCache.FileKey;
import java.io.File;
import java.io.IOException;
/** Global server-side state for Gerrit. */
/** Class managing Git repositories. */
@Singleton
public class GerritServer {
private static final Logger log = LoggerFactory.getLogger(GerritServer.class);
public class GitRepositoryManager {
private static final Logger log = LoggerFactory.getLogger(GitRepositoryManager.class);
private final File sitePath;
private final File basepath;
@Inject
GerritServer(final SystemConfig sConfig, @SitePath final File path,
@GerritServerConfig final Config cfg, final AuthConfig authConfig) {
GitRepositoryManager(@SitePath final File path, @GerritServerConfig final Config cfg) {
sitePath = path;
final String basePath = cfg.getString("gerrit", null, "basepath");

View File

@@ -27,7 +27,6 @@ import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.config.CanonicalWebUrl;
import com.google.gerrit.server.config.Nullable;
@@ -110,7 +109,7 @@ public class MergeOp {
private static final FooterKey REVIEWED_ON = new FooterKey("Reviewed-on");
private static final FooterKey CHANGE_ID = new FooterKey("Change-Id");
private final GerritServer server;
private final GitRepositoryManager repoManager;
private final SchemaFactory<ReviewDb> schemaFactory;
private final ProjectCache projectCache;
private final FunctionState.Factory functionState;
@@ -137,7 +136,7 @@ public class MergeOp {
private RefUpdate branchUpdate;
@Inject
MergeOp(final GerritServer gs, final SchemaFactory<ReviewDb> sf,
MergeOp(final GitRepositoryManager grm, final SchemaFactory<ReviewDb> sf,
final ProjectCache pc, final FunctionState.Factory fs,
final ReplicationQueue rq, final MergedSender.Factory msf,
final MergeFailSender.Factory mfsf,
@@ -146,7 +145,7 @@ public class MergeOp {
final IdentifiedUser.GenericFactory iuf,
@GerritPersonIdent final PersonIdent myIdent,
@Assisted final Branch.NameKey branch) {
server = gs;
repoManager = grm;
schemaFactory = sf;
functionState = fs;
projectCache = pc;
@@ -215,7 +214,7 @@ public class MergeOp {
private void openRepository() throws MergeException {
final String name = destBranch.getParentKey().get();
try {
db = server.openRepository(name);
db = repoManager.openRepository(name);
} catch (RepositoryNotFoundException notGit) {
final String m = "Repository \"" + name + "\" unknown.";
throw new MergeException(m, notGit);

View File

@@ -14,7 +14,6 @@
package com.google.gerrit.git;
import com.google.gerrit.server.GerritServer;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
@@ -58,7 +57,7 @@ class PushOp implements Runnable {
private static final Logger log = PushReplication.log;
static final String MIRROR_ALL = "..all..";
private final GerritServer server;
private final GitRepositoryManager repoManager;
private final PushReplication.ReplicationConfig pool;
private final RemoteConfig config;
@@ -70,9 +69,9 @@ class PushOp implements Runnable {
private Repository db;
@Inject
PushOp(final GerritServer gs, final PushReplication.ReplicationConfig p,
PushOp(final GitRepositoryManager grm, final PushReplication.ReplicationConfig p,
final RemoteConfig c, @Assisted final String d, @Assisted final URIish u) {
server = gs;
repoManager = grm;
pool = p;
config = c;
projectName = d;
@@ -99,7 +98,7 @@ class PushOp implements Runnable {
// created and scheduled for a future point in time.)
//
pool.notifyStarting(this);
db = server.openRepository(projectName);
db = repoManager.openRepository(projectName);
runImpl();
} catch (RepositoryNotFoundException e) {
log.error("Cannot replicate " + projectName + "; " + e.getMessage());

View File

@@ -20,6 +20,7 @@ import static com.google.inject.Stage.PRODUCTION;
import com.google.gerrit.client.data.ApprovalTypes;
import com.google.gerrit.client.reviewdb.AuthType;
import com.google.gerrit.git.ChangeMergeQueue;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.git.MergeOp;
import com.google.gerrit.git.MergeQueue;
import com.google.gerrit.git.PatchSetImporter;
@@ -32,7 +33,6 @@ import com.google.gerrit.server.AnonymousUser;
import com.google.gerrit.server.FileTypeRegistry;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.GerritPersonIdentProvider;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.MimeUtilFileTypeRegistry;
import com.google.gerrit.server.account.AccountByEmailCache;
@@ -134,7 +134,7 @@ public class GerritGlobalModule extends FactoryModule {
factory(AccountInfoCacheFactory.Factory.class);
bind(GerritServer.class);
bind(GitRepositoryManager.class);
bind(FileTypeRegistry.class).to(MimeUtilFileTypeRegistry.class);
bind(WorkQueue.class);

View File

@@ -19,8 +19,8 @@ import com.google.gerrit.client.reviewdb.Patch;
import com.google.gerrit.client.reviewdb.PatchSet;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.FileTypeRegistry;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gwtorm.client.OrmException;
@@ -66,16 +66,16 @@ import javax.servlet.http.HttpServletResponse;
public class CatServlet extends HttpServlet {
private static final MimeType ZIP = new MimeType("application/zip");
private final Provider<ReviewDb> requestDb;
private final GerritServer server;
private final GitRepositoryManager repoManager;
private final SecureRandom rng;
private final FileTypeRegistry registry;
private final ChangeControl.Factory changeControl;
@Inject
CatServlet(final GerritServer gs, final Provider<ReviewDb> sf,
CatServlet(final GitRepositoryManager grm, final Provider<ReviewDb> sf,
final FileTypeRegistry ftr, final ChangeControl.Factory ccf) {
requestDb = sf;
server = gs;
repoManager = grm;
rng = new SecureRandom();
registry = ftr;
changeControl = ccf;
@@ -155,7 +155,7 @@ public class CatServlet extends HttpServlet {
final Repository repo;
try {
repo = server.openRepository(project.getNameKey().get());
repo = repoManager.openRepository(project.getNameKey().get());
} catch (RepositoryNotFoundException e) {
getServletContext().log("Cannot open repository", e);
rsp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);

View File

@@ -25,8 +25,8 @@ import com.google.gerrit.client.reviewdb.PatchSetInfo;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.client.reviewdb.StarredChange;
import com.google.gerrit.client.reviewdb.UserIdentity;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.config.CanonicalWebUrl;
@@ -81,7 +81,7 @@ public abstract class OutgoingEmail {
protected ReviewDb db;
@Inject
protected GerritServer server;
protected GitRepositoryManager server;
@Inject
private ProjectCache projectCache;

View File

@@ -20,7 +20,7 @@ import com.google.gerrit.client.data.PatchScriptSettings.Whitespace;
import com.google.gerrit.client.reviewdb.Change;
import com.google.gerrit.client.reviewdb.PatchSet;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.cache.Cache;
import com.google.gerrit.server.cache.CacheModule;
import com.google.gerrit.server.cache.EvictionPolicy;
@@ -65,13 +65,13 @@ public class PatchListCache {
};
}
private final GerritServer server;
private final GitRepositoryManager repoManager;
private final SelfPopulatingCache<PatchListKey, PatchList> self;
@Inject
PatchListCache(final GerritServer gs,
PatchListCache(final GitRepositoryManager grm,
@Named(CACHE_NAME) final Cache<PatchListKey, PatchList> raw) {
server = gs;
repoManager = grm;
self = new SelfPopulatingCache<PatchListKey, PatchList>(raw) {
@Override
protected PatchList createEntry(final PatchListKey key) throws Exception {
@@ -98,7 +98,7 @@ public class PatchListCache {
private PatchList compute(final PatchListKey key)
throws MissingObjectException, IncorrectObjectTypeException, IOException {
final Repository repo = server.openRepository(key.projectKey.get());
final Repository repo = repoManager.openRepository(key.projectKey.get());
try {
return readPatchList(key, repo);
} finally {

View File

@@ -21,7 +21,7 @@ import com.google.gerrit.client.reviewdb.PatchSetInfo;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.client.reviewdb.UserIdentity;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.account.AccountByEmailCache;
import com.google.gwtorm.client.OrmException;
import com.google.gwtorm.client.SchemaFactory;
@@ -44,15 +44,15 @@ import java.util.Set;
*/
@Singleton
public class PatchSetInfoFactory {
private final GerritServer gs;
private final GitRepositoryManager repoManager;
private final SchemaFactory<ReviewDb> schemaFactory;
private final AccountByEmailCache byEmailCache;
@Inject
public PatchSetInfoFactory(final GerritServer gs,
public PatchSetInfoFactory(final GitRepositoryManager grm,
final SchemaFactory<ReviewDb> schemaFactory,
final AccountByEmailCache byEmailCache) {
this.gs = gs;
this.repoManager = grm;
this.schemaFactory = schemaFactory;
this.byEmailCache = byEmailCache;
}
@@ -77,7 +77,7 @@ public class PatchSetInfoFactory {
final Change change = db.changes().get(patchSet.getId().getParentKey());
final Project.NameKey projectKey = change.getProject();
final String projectName = projectKey.get();
repo = gs.openRepository(projectName);
repo = repoManager.openRepository(projectName);
final RevWalk rw = new RevWalk(repo);
final RevCommit src =
rw.parseCommit(ObjectId.fromString(patchSet.getRevision().get()));

View File

@@ -25,8 +25,8 @@ import com.google.gerrit.client.reviewdb.PatchLineComment;
import com.google.gerrit.client.reviewdb.PatchSet;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.FileTypeRegistry;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.config.Nullable;
import com.google.gerrit.server.patch.PatchList;
@@ -60,7 +60,7 @@ class PatchScriptFactory extends Handler<PatchScript> {
private static final Logger log =
LoggerFactory.getLogger(PatchScriptFactory.class);
private final GerritServer server;
private final GitRepositoryManager repoManager;
private final FileTypeRegistry registry;
private final PatchListCache patchListCache;
private final ReviewDb db;
@@ -87,14 +87,14 @@ class PatchScriptFactory extends Handler<PatchScript> {
private ObjectId bId;
@Inject
PatchScriptFactory(final GerritServer gs, final FileTypeRegistry ftr,
PatchScriptFactory(final GitRepositoryManager grm, final FileTypeRegistry ftr,
final PatchListCache patchListCache, final ReviewDb db,
final ChangeControl.Factory changeControlFactory,
@Assisted final Patch.Key patchKey,
@Assisted("patchSetA") @Nullable final PatchSet.Id patchSetA,
@Assisted("patchSetB") final PatchSet.Id patchSetB,
@Assisted final PatchScriptSettings settings) {
this.server = gs;
this.repoManager = grm;
this.registry = ftr;
this.patchListCache = patchListCache;
this.db = db;
@@ -126,7 +126,7 @@ class PatchScriptFactory extends Handler<PatchScript> {
bId = toObjectId(db, psb);
try {
git = server.openRepository(projectKey.get());
git = repoManager.openRepository(projectKey.get());
} catch (RepositoryNotFoundException e) {
log.error("Repository " + projectKey + " not found", e);
throw new NoSuchChangeException(changeId, e);

View File

@@ -19,8 +19,8 @@ import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.client.rpc.InvalidNameException;
import com.google.gerrit.client.rpc.InvalidRevisionException;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.git.ReplicationQueue;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.project.ProjectControl;
@@ -57,7 +57,7 @@ class AddBranch extends Handler<List<Branch>> {
private final ProjectControl.Factory projectControlFactory;
private final ListBranches.Factory listBranchesFactory;
private final IdentifiedUser identifiedUser;
private final GerritServer gerritServer;
private final GitRepositoryManager repoManager;
private final ReplicationQueue replication;
private final ReviewDb db;
@@ -68,7 +68,7 @@ class AddBranch extends Handler<List<Branch>> {
@Inject
AddBranch(final ProjectControl.Factory projectControlFactory,
final ListBranches.Factory listBranchesFactory,
final IdentifiedUser identifiedUser, final GerritServer gerritServer,
final IdentifiedUser identifiedUser, final GitRepositoryManager repoManager,
final ReplicationQueue replication, final ReviewDb db,
@Assisted Project.NameKey projectName,
@@ -77,7 +77,7 @@ class AddBranch extends Handler<List<Branch>> {
this.projectControlFactory = projectControlFactory;
this.listBranchesFactory = listBranchesFactory;
this.identifiedUser = identifiedUser;
this.gerritServer = gerritServer;
this.repoManager = repoManager;
this.replication = replication;
this.db = db;
@@ -108,7 +108,7 @@ class AddBranch extends Handler<List<Branch>> {
}
final Branch.NameKey name = new Branch.NameKey(projectName, refname);
final Repository repo = gerritServer.openRepository(projectName.get());
final Repository repo = repoManager.openRepository(projectName.get());
try {
final ObjectId revid = parseStartingRevision(repo);
final RevWalk rw = verifyConnected(repo, revid);

View File

@@ -17,7 +17,7 @@ package com.google.gerrit.server.rpc.project;
import com.google.gerrit.client.admin.ProjectDetail;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectControl;
@@ -37,7 +37,7 @@ class ChangeProjectSettings extends Handler<ProjectDetail> {
private final ProjectControl.Factory projectControlFactory;
private final ProjectCache projectCache;
private final ReviewDb db;
private final GerritServer server;
private final GitRepositoryManager repoManager;
private final Project update;
@@ -46,14 +46,13 @@ class ChangeProjectSettings extends Handler<ProjectDetail> {
final ProjectDetailFactory.Factory projectDetailFactory,
final ProjectControl.Factory projectControlFactory,
final ProjectCache projectCache, final ReviewDb db,
final GerritServer server,
final GitRepositoryManager grm,
@Assisted final Project update) {
this.projectDetailFactory = projectDetailFactory;
this.projectControlFactory = projectControlFactory;
this.projectCache = projectCache;
this.db = db;
this.server = server;
this.repoManager = grm;
this.update = update;
}
@@ -74,7 +73,7 @@ class ChangeProjectSettings extends Handler<ProjectDetail> {
projectCache.evict(proj);
if (!projectControl.getProjectState().isSpecialWildProject()) {
server.setProjectDescription(projectName.get(), update.getDescription());
repoManager.setProjectDescription(projectName.get(), update.getDescription());
}
return projectDetailFactory.create(projectName).call();

View File

@@ -17,8 +17,8 @@ package com.google.gerrit.server.rpc.project;
import com.google.gerrit.client.reviewdb.Branch;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.git.ReplicationQueue;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.project.ProjectControl;
import com.google.gerrit.server.rpc.Handler;
@@ -47,7 +47,7 @@ class DeleteBranches extends Handler<Set<Branch.NameKey>> {
}
private final ProjectControl.Factory projectControlFactory;
private final GerritServer gerritServer;
private final GitRepositoryManager repoManager;
private final ReplicationQueue replication;
private final ReviewDb db;
@@ -56,12 +56,12 @@ class DeleteBranches extends Handler<Set<Branch.NameKey>> {
@Inject
DeleteBranches(final ProjectControl.Factory projectControlFactory,
final GerritServer gerritServer, final ReplicationQueue replication,
final GitRepositoryManager repoManager, final ReplicationQueue replication,
final ReviewDb db,
@Assisted Project.NameKey name, @Assisted Set<Branch.NameKey> toRemove) {
this.projectControlFactory = projectControlFactory;
this.gerritServer = gerritServer;
this.repoManager = repoManager;
this.replication = replication;
this.db = db;
@@ -86,7 +86,7 @@ class DeleteBranches extends Handler<Set<Branch.NameKey>> {
}
final Set<Branch.NameKey> deleted = new HashSet<Branch.NameKey>();
final Repository r = gerritServer.openRepository(projectName.get());
final Repository r = repoManager.openRepository(projectName.get());
try {
for (final Branch.NameKey branchKey : toRemove) {
final Branch b = db.branches().get(branchKey);

View File

@@ -16,7 +16,7 @@ package com.google.gerrit.server.rpc.project;
import com.google.gerrit.client.reviewdb.Branch;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.project.ProjectControl;
import com.google.gerrit.server.rpc.Handler;
@@ -39,17 +39,17 @@ class ListBranches extends Handler<List<Branch>> {
}
private final ProjectControl.Factory projectControlFactory;
private final GerritServer gerritServer;
private final GitRepositoryManager repoManager;
private final Project.NameKey projectName;
@Inject
ListBranches(final ProjectControl.Factory projectControlFactory,
final GerritServer gerritServer,
final GitRepositoryManager repoManager,
@Assisted final Project.NameKey name) {
this.projectControlFactory = projectControlFactory;
this.gerritServer = gerritServer;
this.repoManager = repoManager;
this.projectName = name;
}
@@ -62,7 +62,7 @@ class ListBranches extends Handler<List<Branch>> {
| ProjectControl.VISIBLE);
final List<Branch> branches = new ArrayList<Branch>();
final Repository db = gerritServer.openRepository(projectName.get());
final Repository db = repoManager.openRepository(projectName.get());
try {
for (final Ref ref : db.getAllRefs().values()) {
final String name = ref.getOrigName();

View File

@@ -15,7 +15,7 @@
package com.google.gerrit.server.ssh.commands;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.server.project.ProjectControl;
import com.google.gerrit.server.ssh.BaseCommand;
import com.google.inject.Inject;
@@ -31,7 +31,7 @@ abstract class AbstractGitCommand extends BaseCommand {
protected ProjectControl projectControl;
@Inject
protected GerritServer server;
protected GitRepositoryManager repoManager;
protected Repository repo;
protected Project project;
@@ -52,7 +52,7 @@ abstract class AbstractGitCommand extends BaseCommand {
final String name = project.getName();
try {
repo = server.openRepository(name);
repo = repoManager.openRepository(name);
} catch (RepositoryNotFoundException e) {
throw new Failure(1, "fatal: '" + name + "': not a git archive", e);
}

View File

@@ -21,8 +21,8 @@ import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.client.reviewdb.ProjectRight;
import com.google.gerrit.client.reviewdb.ReviewDb;
import com.google.gerrit.client.reviewdb.Project.SubmitType;
import com.google.gerrit.git.GitRepositoryManager;
import com.google.gerrit.git.ReplicationQueue;
import com.google.gerrit.server.GerritServer;
import com.google.gerrit.server.account.GroupCache;
import com.google.gerrit.server.config.AuthConfig;
import com.google.gerrit.server.ssh.AdminCommand;
@@ -62,7 +62,7 @@ final class AdminCreateProject extends BaseCommand {
private ReviewDb db;
@Inject
private GerritServer gs;
private GitRepositoryManager repoManager;
@Inject
private GroupCache groupCache;
@@ -94,9 +94,9 @@ final class AdminCreateProject extends BaseCommand {
createProject(txn);
Repository repo = gs.createRepository(projectName);
Repository repo = repoManager.createRepository(projectName);
repo.create(true);
gs.setProjectDescription(projectName, projectDescription);
repoManager.setProjectDescription(projectName, projectDescription);
txn.commit();