PutConfig: move static inner Input class to extension API

Also rename the existing PutDescriptionInput to DescriptionInput.

Change-Id: I8291e970353b8ae6ed4f0cbe5dce746007e25291
This commit is contained in:
David Pursehouse
2016-06-21 13:13:15 +09:00
parent e7b9fb1f64
commit 8219d818a7
13 changed files with 79 additions and 42 deletions

View File

@@ -21,8 +21,8 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.api.projects.BranchInput;
import com.google.gerrit.extensions.api.projects.DescriptionInput;
import com.google.gerrit.extensions.api.projects.ProjectInput;
import com.google.gerrit.extensions.api.projects.PutDescriptionInput;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -91,7 +91,7 @@ public class ProjectIT extends AbstractDaemonTest {
.name(project.get())
.description())
.isEmpty();
PutDescriptionInput in = new PutDescriptionInput();
DescriptionInput in = new DescriptionInput();
in.description = "new project description";
gApi.projects()
.name(project.get())

View File

@@ -0,0 +1,36 @@
// Copyright (C) 2016 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.extensions.api.projects;
import com.google.gerrit.extensions.client.InheritableBoolean;
import com.google.gerrit.extensions.client.ProjectState;
import com.google.gerrit.extensions.client.SubmitType;
import java.util.Map;
public class ConfigInput {
public String description;
public InheritableBoolean useContributorAgreements;
public InheritableBoolean useContentMerge;
public InheritableBoolean useSignedOffBy;
public InheritableBoolean createNewChangeForAllNotInTarget;
public InheritableBoolean requireChangeId;
public InheritableBoolean enableSignedPush;
public InheritableBoolean requireSignedPush;
public String maxObjectSizeLimit;
public SubmitType submitType;
public ProjectState state;
public Map<String, Map<String, ConfigValue>> pluginConfigValues;
}

View File

@@ -0,0 +1,22 @@
// Copyright (C) 2016 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.extensions.api.projects;
import java.util.List;
public class ConfigValue {
public String value;
public List<String> values;
}

View File

@@ -16,7 +16,7 @@ package com.google.gerrit.extensions.api.projects;
import com.google.gerrit.extensions.restapi.DefaultInput;
public class PutDescriptionInput {
public class DescriptionInput {
@DefaultInput
public String description;
public String commitMessage;

View File

@@ -28,7 +28,7 @@ public interface ProjectApi {
ProjectInfo get() throws RestApiException;
String description() throws RestApiException;
void description(PutDescriptionInput in) throws RestApiException;
void description(DescriptionInput in) throws RestApiException;
ProjectAccessInfo access() throws RestApiException;
ProjectAccessInfo access(ProjectAccessInput p) throws RestApiException;
@@ -146,7 +146,7 @@ public interface ProjectApi {
}
@Override
public void description(PutDescriptionInput in)
public void description(DescriptionInput in)
throws RestApiException {
throw new NotImplementedException();
}

View File

@@ -36,9 +36,4 @@ public class ProjectInput {
public InheritableBoolean createNewChangeForAllNotInTarget;
public String maxObjectSizeLimit;
public Map<String, Map<String, ConfigValue>> pluginConfigValues;
public static class ConfigValue {
public String value;
public List<String> values;
}
}

View File

@@ -21,9 +21,9 @@ import com.google.gerrit.extensions.api.access.ProjectAccessInput;
import com.google.gerrit.extensions.api.projects.BranchApi;
import com.google.gerrit.extensions.api.projects.BranchInfo;
import com.google.gerrit.extensions.api.projects.ChildProjectApi;
import com.google.gerrit.extensions.api.projects.DescriptionInput;
import com.google.gerrit.extensions.api.projects.ProjectApi;
import com.google.gerrit.extensions.api.projects.ProjectInput;
import com.google.gerrit.extensions.api.projects.PutDescriptionInput;
import com.google.gerrit.extensions.api.projects.TagApi;
import com.google.gerrit.extensions.api.projects.TagInfo;
import com.google.gerrit.extensions.common.ProjectInfo;
@@ -216,7 +216,7 @@ public class ProjectApiImpl implements ProjectApi {
}
@Override
public void description(PutDescriptionInput in)
public void description(DescriptionInput in)
throws RestApiException {
try {
putDescription.apply(checkExists(), in);

View File

@@ -17,7 +17,7 @@ package com.google.gerrit.server.config;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.google.gerrit.extensions.annotations.ExtensionPoint;
import com.google.gerrit.extensions.api.projects.ProjectInput.ConfigValue;
import com.google.gerrit.extensions.api.projects.ConfigValue;
import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.extensions.registration.DynamicMap.Entry;

View File

@@ -25,6 +25,7 @@ import com.google.gerrit.common.data.GroupReference;
import com.google.gerrit.common.data.Permission;
import com.google.gerrit.common.data.PermissionRule;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.api.projects.ConfigInput;
import com.google.gerrit.extensions.api.projects.ProjectInput;
import com.google.gerrit.extensions.client.InheritableBoolean;
import com.google.gerrit.extensions.client.SubmitType;
@@ -214,7 +215,7 @@ public class CreateProject implements RestModifyView<TopLevelResource, ProjectIn
try {
ProjectControl projectControl =
projectControlFactory.controlFor(p.getNameKey(), currentUser.get());
PutConfig.Input in = new PutConfig.Input();
ConfigInput in = new ConfigInput();
in.pluginConfigValues = input.pluginConfigValues;
putConfig.get().apply(projectControl, in);
} catch (NoSuchProjectException e) {

View File

@@ -18,9 +18,8 @@ import com.google.common.base.CharMatcher;
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.extensions.api.projects.ProjectInput.ConfigValue;
import com.google.gerrit.extensions.client.InheritableBoolean;
import com.google.gerrit.extensions.client.SubmitType;
import com.google.gerrit.extensions.api.projects.ConfigInput;
import com.google.gerrit.extensions.api.projects.ConfigValue;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -41,7 +40,6 @@ import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectConfig;
import com.google.gerrit.server.git.TransferConfig;
import com.google.gerrit.server.project.PutConfig.Input;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
@@ -60,24 +58,9 @@ import java.util.Map.Entry;
import java.util.Objects;
@Singleton
public class PutConfig implements RestModifyView<ProjectResource, Input> {
public class PutConfig implements RestModifyView<ProjectResource, ConfigInput> {
private static final Logger log = LoggerFactory.getLogger(PutConfig.class);
public static class Input {
public String description;
public InheritableBoolean useContributorAgreements;
public InheritableBoolean useContentMerge;
public InheritableBoolean useSignedOffBy;
public InheritableBoolean createNewChangeForAllNotInTarget;
public InheritableBoolean requireChangeId;
public InheritableBoolean enableSignedPush;
public InheritableBoolean requireSignedPush;
public String maxObjectSizeLimit;
public SubmitType submitType;
public com.google.gerrit.extensions.client.ProjectState state;
public Map<String, Map<String, ConfigValue>> pluginConfigValues;
}
private final boolean serverEnableSignedPush;
private final Provider<MetaDataUpdate.User> metaDataUpdateFactory;
private final ProjectCache projectCache;
@@ -122,7 +105,7 @@ public class PutConfig implements RestModifyView<ProjectResource, Input> {
}
@Override
public ConfigInfo apply(ProjectResource rsrc, Input input)
public ConfigInfo apply(ProjectResource rsrc, ConfigInput input)
throws ResourceNotFoundException, BadRequestException,
ResourceConflictException {
if (!rsrc.getControl().isOwner()) {
@@ -131,7 +114,7 @@ public class PutConfig implements RestModifyView<ProjectResource, Input> {
return apply(rsrc.getControl(), input);
}
public ConfigInfo apply(ProjectControl ctrl, Input input)
public ConfigInfo apply(ProjectControl ctrl, ConfigInput input)
throws ResourceNotFoundException, BadRequestException,
ResourceConflictException {
Project.NameKey projectName = ctrl.getProject().getNameKey();

View File

@@ -17,7 +17,7 @@ package com.google.gerrit.server.project;
import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.extensions.api.projects.PutDescriptionInput;
import com.google.gerrit.extensions.api.projects.DescriptionInput;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
@@ -42,7 +42,7 @@ import java.io.IOException;
import java.util.Objects;
@Singleton
public class PutDescription implements RestModifyView<ProjectResource, PutDescriptionInput> {
public class PutDescription implements RestModifyView<ProjectResource, DescriptionInput> {
private final ProjectCache cache;
private final MetaDataUpdate.Server updateFactory;
private final GitRepositoryManager gitMgr;
@@ -64,10 +64,10 @@ public class PutDescription implements RestModifyView<ProjectResource, PutDescri
@Override
public Response<String> apply(ProjectResource resource,
PutDescriptionInput input) throws AuthException,
DescriptionInput input) throws AuthException,
ResourceConflictException, ResourceNotFoundException, IOException {
if (input == null) {
input = new PutDescriptionInput(); // Delete would set description to null.
input = new DescriptionInput(); // Delete would set description to null.
}
ProjectControl ctl = resource.getControl();

View File

@@ -21,8 +21,8 @@ import com.google.common.collect.Lists;
import com.google.gerrit.common.data.GlobalCapability;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.api.GerritApi;
import com.google.gerrit.extensions.api.projects.ConfigValue;
import com.google.gerrit.extensions.api.projects.ProjectInput;
import com.google.gerrit.extensions.api.projects.ProjectInput.ConfigValue;
import com.google.gerrit.extensions.client.InheritableBoolean;
import com.google.gerrit.extensions.client.SubmitType;
import com.google.gerrit.extensions.restapi.RestApiException;

View File

@@ -16,7 +16,7 @@ package com.google.gerrit.sshd.commands;
import static com.google.common.truth.Truth.assertThat;
import com.google.gerrit.extensions.api.projects.ProjectInput.ConfigValue;
import com.google.gerrit.extensions.api.projects.ConfigValue;
import org.junit.Before;
import org.junit.Test;