Delete ProjectAdminService visibleProjects, suggestParentCandidates

This has been replaced by the REST API /projects/ and is not
necessary anymore. Clients should use the REST API over HTTP,
and the `gerrit ls-projects` API over SSH.

Change-Id: I22ea50c77a07de3ac635b2567d5b7b6aa6697459
This commit is contained in:
Shawn O. Pearce
2012-04-04 19:05:39 -07:00
parent f93b3eecec
commit 71695538e5
6 changed files with 0 additions and 180 deletions

View File

@@ -28,10 +28,7 @@ import java.util.Set;
@RpcImpl(version = Version.V2_0) @RpcImpl(version = Version.V2_0)
public interface ProjectAdminService extends RemoteJsonService { public interface ProjectAdminService extends RemoteJsonService {
void visibleProjects(AsyncCallback<ProjectList> callback);
void visibleProjectDetails(AsyncCallback<List<ProjectDetail>> callback); void visibleProjectDetails(AsyncCallback<List<ProjectDetail>> callback);
void suggestParentCandidates(AsyncCallback<List<Project>> callback);
void projectDetail(Project.NameKey projectName, void projectDetail(Project.NameKey projectName,
AsyncCallback<ProjectDetail> callback); AsyncCallback<ProjectDetail> callback);

View File

@@ -1,43 +0,0 @@
// Copyright (C) 2011 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License
package com.google.gerrit.common.data;
import com.google.gerrit.reviewdb.client.Project;
import java.util.List;
public class ProjectList {
protected List<Project> projects;
protected boolean canCreateProject;
public ProjectList() {
}
public List<Project> getProjects() {
return projects;
}
public void setProjects(List<Project> projects) {
this.projects = projects;
}
public boolean canCreateProject() {
return canCreateProject;
}
public void setCanCreateProject(boolean canCreateProject) {
this.canCreateProject = canCreateProject;
}
}

View File

@@ -19,7 +19,6 @@ import com.google.gerrit.common.data.ListBranchesResult;
import com.google.gerrit.common.data.ProjectAccess; import com.google.gerrit.common.data.ProjectAccess;
import com.google.gerrit.common.data.ProjectAdminService; import com.google.gerrit.common.data.ProjectAdminService;
import com.google.gerrit.common.data.ProjectDetail; import com.google.gerrit.common.data.ProjectDetail;
import com.google.gerrit.common.data.ProjectList;
import com.google.gerrit.reviewdb.client.Branch; import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.Project;
import com.google.gwtjsonrpc.common.AsyncCallback; import com.google.gwtjsonrpc.common.AsyncCallback;
@@ -37,12 +36,10 @@ class ProjectAdminServiceImpl implements ProjectAdminService {
private final ChangeProjectSettings.Factory changeProjectSettingsFactory; private final ChangeProjectSettings.Factory changeProjectSettingsFactory;
private final DeleteBranches.Factory deleteBranchesFactory; private final DeleteBranches.Factory deleteBranchesFactory;
private final ListBranches.Factory listBranchesFactory; private final ListBranches.Factory listBranchesFactory;
private final VisibleProjects.Factory visibleProjectsFactory;
private final VisibleProjectDetails.Factory visibleProjectDetailsFactory; private final VisibleProjectDetails.Factory visibleProjectDetailsFactory;
private final ProjectAccessFactory.Factory projectAccessFactory; private final ProjectAccessFactory.Factory projectAccessFactory;
private final CreateProjectHandler.Factory createProjectHandlerFactory; private final CreateProjectHandler.Factory createProjectHandlerFactory;
private final ProjectDetailFactory.Factory projectDetailFactory; private final ProjectDetailFactory.Factory projectDetailFactory;
private final SuggestParentCandidatesHandler.Factory suggestParentCandidatesHandlerFactory;
@Inject @Inject
ProjectAdminServiceImpl(final AddBranch.Factory addBranchFactory, ProjectAdminServiceImpl(final AddBranch.Factory addBranchFactory,
@@ -50,28 +47,19 @@ class ProjectAdminServiceImpl implements ProjectAdminService {
final ChangeProjectSettings.Factory changeProjectSettingsFactory, final ChangeProjectSettings.Factory changeProjectSettingsFactory,
final DeleteBranches.Factory deleteBranchesFactory, final DeleteBranches.Factory deleteBranchesFactory,
final ListBranches.Factory listBranchesFactory, final ListBranches.Factory listBranchesFactory,
final VisibleProjects.Factory visibleProjectsFactory,
final VisibleProjectDetails.Factory visibleProjectDetailsFactory, final VisibleProjectDetails.Factory visibleProjectDetailsFactory,
final ProjectAccessFactory.Factory projectAccessFactory, final ProjectAccessFactory.Factory projectAccessFactory,
final ProjectDetailFactory.Factory projectDetailFactory, final ProjectDetailFactory.Factory projectDetailFactory,
final SuggestParentCandidatesHandler.Factory parentCandidatesFactory,
final CreateProjectHandler.Factory createNewProjectFactory) { final CreateProjectHandler.Factory createNewProjectFactory) {
this.addBranchFactory = addBranchFactory; this.addBranchFactory = addBranchFactory;
this.changeProjectAccessFactory = changeProjectAccessFactory; this.changeProjectAccessFactory = changeProjectAccessFactory;
this.changeProjectSettingsFactory = changeProjectSettingsFactory; this.changeProjectSettingsFactory = changeProjectSettingsFactory;
this.deleteBranchesFactory = deleteBranchesFactory; this.deleteBranchesFactory = deleteBranchesFactory;
this.listBranchesFactory = listBranchesFactory; this.listBranchesFactory = listBranchesFactory;
this.visibleProjectsFactory = visibleProjectsFactory;
this.visibleProjectDetailsFactory = visibleProjectDetailsFactory; this.visibleProjectDetailsFactory = visibleProjectDetailsFactory;
this.projectAccessFactory = projectAccessFactory; this.projectAccessFactory = projectAccessFactory;
this.projectDetailFactory = projectDetailFactory; this.projectDetailFactory = projectDetailFactory;
this.createProjectHandlerFactory = createNewProjectFactory; this.createProjectHandlerFactory = createNewProjectFactory;
this.suggestParentCandidatesHandlerFactory = parentCandidatesFactory;
}
@Override
public void visibleProjects(final AsyncCallback<ProjectList> callback) {
visibleProjectsFactory.create().to(callback);
} }
@Override @Override
@@ -79,11 +67,6 @@ class ProjectAdminServiceImpl implements ProjectAdminService {
visibleProjectDetailsFactory.create().to(callback); visibleProjectDetailsFactory.create().to(callback);
} }
@Override
public void suggestParentCandidates(AsyncCallback<List<Project>> callback) {
suggestParentCandidatesHandlerFactory.create().to(callback);
}
@Override @Override
public void projectDetail(final Project.NameKey projectName, public void projectDetail(final Project.NameKey projectName,
final AsyncCallback<ProjectDetail> callback) { final AsyncCallback<ProjectDetail> callback) {

View File

@@ -34,11 +34,9 @@ public class ProjectModule extends RpcServletModule {
factory(ChangeProjectSettings.Factory.class); factory(ChangeProjectSettings.Factory.class);
factory(DeleteBranches.Factory.class); factory(DeleteBranches.Factory.class);
factory(ListBranches.Factory.class); factory(ListBranches.Factory.class);
factory(VisibleProjects.Factory.class);
factory(VisibleProjectDetails.Factory.class); factory(VisibleProjectDetails.Factory.class);
factory(ProjectAccessFactory.Factory.class); factory(ProjectAccessFactory.Factory.class);
factory(ProjectDetailFactory.Factory.class); factory(ProjectDetailFactory.Factory.class);
factory(SuggestParentCandidatesHandler.Factory.class);
} }
}); });
rpc(ProjectAdminServiceImpl.class); rpc(ProjectAdminServiceImpl.class);

View File

@@ -1,40 +0,0 @@
// Copyright (C) 2011 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License
package com.google.gerrit.httpd.rpc.project;
import com.google.gerrit.httpd.rpc.Handler;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.project.SuggestParentCandidates;
import com.google.inject.Inject;
import java.util.List;
public class SuggestParentCandidatesHandler extends Handler<List<Project>> {
interface Factory {
SuggestParentCandidatesHandler create();
}
private final SuggestParentCandidates suggestParentCandidates;
@Inject
SuggestParentCandidatesHandler(final SuggestParentCandidates suggestParentCandidates) {
this.suggestParentCandidates = suggestParentCandidates;
}
@Override
public List<Project> call() throws Exception {
return suggestParentCandidates.getProjects();
}
}

View File

@@ -1,75 +0,0 @@
// Copyright (C) 2009 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.httpd.rpc.project;
import com.google.gerrit.common.data.ProjectList;
import com.google.gerrit.httpd.rpc.Handler;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectControl;
import com.google.inject.Inject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class VisibleProjects extends Handler<ProjectList> {
interface Factory {
VisibleProjects create();
}
private final ProjectControl.Factory projectControlFactory;
private final ProjectCache projectCache;
private final CurrentUser user;
@Inject
VisibleProjects(final ProjectControl.Factory projectControlFactory,
final ProjectCache projectCache, final CurrentUser user) {
this.projectControlFactory = projectControlFactory;
this.projectCache = projectCache;
this.user = user;
}
@Override
public ProjectList call() {
ProjectList result = new ProjectList();
result.setProjects(getProjects());
result.setCanCreateProject(user.getCapabilities().canCreateProject());
return result;
}
private List<Project> getProjects() {
List<Project> result = new ArrayList<Project>();
for (Project.NameKey p : projectCache.all()) {
try {
ProjectControl c = projectControlFactory.controlFor(p);
if (c.isVisible() || c.isOwner()) {
result.add(c.getProject());
}
} catch (NoSuchProjectException e) {
continue;
}
}
Collections.sort(result, new Comparator<Project>() {
public int compare(final Project a, final Project b) {
return a.getName().compareTo(b.getName());
}
});
return result;
}
}