fix: Remove various compiler warnings

This commit is contained in:
Robin Shen 2025-02-22 22:16:21 +08:00
parent f108734a6f
commit 05ff171fbe
900 changed files with 2094 additions and 2311 deletions

View File

@ -1,5 +1,43 @@
package io.onedev.server.attachment; package io.onedev.server.attachment;
import static io.onedev.commons.utils.LockUtils.read;
import static io.onedev.commons.utils.LockUtils.write;
import static io.onedev.k8shelper.KubernetesHelper.BEARER;
import static io.onedev.server.model.Project.ATTACHMENT_DIR;
import static io.onedev.server.util.DirectoryVersionUtils.isVersionFile;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static javax.ws.rs.core.HttpHeaders.AUTHORIZATION;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.UUID;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.glassfish.jersey.client.ClientProperties;
import org.quartz.CronScheduleBuilder;
import org.quartz.ScheduleBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.onedev.commons.loader.ManagedSerializedForm; import io.onedev.commons.loader.ManagedSerializedForm;
import io.onedev.commons.utils.ExceptionUtils; import io.onedev.commons.utils.ExceptionUtils;
import io.onedev.commons.utils.FileUtils; import io.onedev.commons.utils.FileUtils;
@ -19,7 +57,13 @@ import io.onedev.server.event.project.codecomment.CodeCommentCreated;
import io.onedev.server.event.project.codecomment.CodeCommentEdited; import io.onedev.server.event.project.codecomment.CodeCommentEdited;
import io.onedev.server.event.project.codecomment.CodeCommentReplyCreated; import io.onedev.server.event.project.codecomment.CodeCommentReplyCreated;
import io.onedev.server.event.project.codecomment.CodeCommentReplyEdited; import io.onedev.server.event.project.codecomment.CodeCommentReplyEdited;
import io.onedev.server.event.project.issue.*; import io.onedev.server.event.project.issue.IssueChanged;
import io.onedev.server.event.project.issue.IssueCommentCreated;
import io.onedev.server.event.project.issue.IssueCommentEdited;
import io.onedev.server.event.project.issue.IssueOpened;
import io.onedev.server.event.project.issue.IssuesCopied;
import io.onedev.server.event.project.issue.IssuesImported;
import io.onedev.server.event.project.issue.IssuesMoved;
import io.onedev.server.event.project.pullrequest.PullRequestChanged; import io.onedev.server.event.project.pullrequest.PullRequestChanged;
import io.onedev.server.event.project.pullrequest.PullRequestCommentCreated; import io.onedev.server.event.project.pullrequest.PullRequestCommentCreated;
import io.onedev.server.event.project.pullrequest.PullRequestCommentEdited; import io.onedev.server.event.project.pullrequest.PullRequestCommentEdited;
@ -35,30 +79,8 @@ import io.onedev.server.persistence.annotation.Transactional;
import io.onedev.server.persistence.dao.Dao; import io.onedev.server.persistence.dao.Dao;
import io.onedev.server.taskschedule.SchedulableTask; import io.onedev.server.taskschedule.SchedulableTask;
import io.onedev.server.taskschedule.TaskScheduler; import io.onedev.server.taskschedule.TaskScheduler;
import io.onedev.server.util.IOUtils;
import io.onedev.server.util.artifact.FileInfo; import io.onedev.server.util.artifact.FileInfo;
import org.apache.commons.compress.utils.IOUtils;
import org.glassfish.jersey.client.ClientProperties;
import org.quartz.CronScheduleBuilder;
import org.quartz.ScheduleBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.ws.rs.client.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.io.*;
import java.util.*;
import static io.onedev.commons.utils.LockUtils.read;
import static io.onedev.commons.utils.LockUtils.write;
import static io.onedev.k8shelper.KubernetesHelper.BEARER;
import static io.onedev.server.model.Project.ATTACHMENT_DIR;
import static io.onedev.server.util.DirectoryVersionUtils.isVersionFile;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static javax.ws.rs.core.HttpHeaders.AUTHORIZATION;
@Singleton @Singleton
public class DefaultAttachmentManager implements AttachmentManager, SchedulableTask, Serializable { public class DefaultAttachmentManager implements AttachmentManager, SchedulableTask, Serializable {

View File

@ -1490,6 +1490,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate19(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate19(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1517,6 +1518,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate20(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate20(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specTupleKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specTupleKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1550,6 +1552,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate21(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate21(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1590,6 +1593,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate22(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate22(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1627,6 +1631,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate23(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate23(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1667,6 +1672,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate24(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate24(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1704,6 +1710,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate25(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate25(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1753,6 +1760,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate26(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate26(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1804,6 +1812,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate27(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate27(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode) specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode) specTuple.getKeyNode()).getValue();
@ -1821,6 +1830,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate28(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate28(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode) specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode) specTuple.getKeyNode()).getValue();
@ -1882,6 +1892,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate29(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate29(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -1937,6 +1948,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate30(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate30(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -1964,6 +1976,7 @@ public class BuildSpec implements Serializable, Validatable {
}); });
} }
@SuppressWarnings("unused")
private void migrate31(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate31(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -2000,6 +2013,7 @@ public class BuildSpec implements Serializable, Validatable {
}); });
} }
@SuppressWarnings("unused")
private void migrate32(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate32(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -2056,6 +2070,7 @@ public class BuildSpec implements Serializable, Validatable {
}); });
} }
@SuppressWarnings("unused")
private void migrate33(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate33(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -2105,6 +2120,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
} }
@SuppressWarnings("unused")
private void migrate34(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate34(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -2124,6 +2140,7 @@ public class BuildSpec implements Serializable, Validatable {
}); });
} }
@SuppressWarnings("unused")
private void migrate35(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate35(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -2149,6 +2166,7 @@ public class BuildSpec implements Serializable, Validatable {
}); });
} }
@SuppressWarnings("unused")
private void migrate36(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate36(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) { for (var itStepNode = stepsNode.getValue().iterator(); itStepNode.hasNext();) {
@ -2162,7 +2180,7 @@ public class BuildSpec implements Serializable, Validatable {
} }
}); });
} }
private void migrate37_registryLogins(MappingNode node) { private void migrate37_registryLogins(MappingNode node) {
String accessTokenSecret = null; String accessTokenSecret = null;
for (var itTuple = node.getValue().iterator(); itTuple.hasNext();) { for (var itTuple = node.getValue().iterator(); itTuple.hasNext();) {
@ -2190,7 +2208,8 @@ public class BuildSpec implements Serializable, Validatable {
node.getValue().add(new NodeTuple(new ScalarNode(Tag.STR, "registryLogins"), logins)); node.getValue().add(new NodeTuple(new ScalarNode(Tag.STR, "registryLogins"), logins));
} }
} }
@SuppressWarnings("unused")
private void migrate37(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate37(VersionedYamlDoc doc, Stack<Integer> versions) {
for (NodeTuple specTuple: doc.getValue()) { for (NodeTuple specTuple: doc.getValue()) {
String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue(); String specObjectKey = ((ScalarNode)specTuple.getKeyNode()).getValue();
@ -2207,6 +2226,7 @@ public class BuildSpec implements Serializable, Validatable {
}); });
} }
@SuppressWarnings("unused")
private void migrate38(VersionedYamlDoc doc, Stack<Integer> versions) { private void migrate38(VersionedYamlDoc doc, Stack<Integer> versions) {
migrateSteps(doc, versions, stepsNode -> { migrateSteps(doc, versions, stepsNode -> {
for (var stepNode: stepsNode.getValue()) { for (var stepNode: stepsNode.getValue()) {

View File

@ -1,6 +1,24 @@
package io.onedev.server.buildspec; package io.onedev.server.buildspec;
import com.google.common.base.Throwables; import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Stack;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import javax.validation.ConstraintValidatorContext;
import javax.validation.ConstraintViolation;
import javax.validation.ValidationException;
import javax.validation.Validator;
import javax.validation.constraints.NotEmpty;
import org.apache.shiro.subject.Subject;
import org.eclipse.jgit.revwalk.RevCommit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import edu.emory.mathcs.backport.java.util.Collections; import edu.emory.mathcs.backport.java.util.Collections;
import io.onedev.commons.codeassist.InputSuggestion; import io.onedev.commons.codeassist.InputSuggestion;
import io.onedev.commons.utils.ExplicitException; import io.onedev.commons.utils.ExplicitException;
@ -22,23 +40,6 @@ import io.onedev.server.validation.Validatable;
import io.onedev.server.web.page.project.ProjectPage; import io.onedev.server.web.page.project.ProjectPage;
import io.onedev.server.web.util.SuggestionUtils; import io.onedev.server.web.util.SuggestionUtils;
import io.onedev.server.web.util.WicketUtils; import io.onedev.server.web.util.WicketUtils;
import org.apache.shiro.subject.Subject;
import org.eclipse.jgit.revwalk.RevCommit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import javax.validation.ConstraintValidatorContext;
import javax.validation.ConstraintViolation;
import javax.validation.ValidationException;
import javax.validation.Validator;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Stack;
import java.util.stream.Collectors;
@Editable @Editable
@ClassValidating @ClassValidating

View File

@ -1,25 +1,28 @@
package io.onedev.server.buildspec; package io.onedev.server.buildspec;
import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import io.onedev.commons.codeassist.InputCompletion; import io.onedev.commons.codeassist.InputCompletion;
import io.onedev.commons.codeassist.InputStatus; import io.onedev.commons.codeassist.InputStatus;
import io.onedev.commons.codeassist.InputSuggestion; import io.onedev.commons.codeassist.InputSuggestion;
import io.onedev.k8shelper.ServiceFacade; import io.onedev.k8shelper.ServiceFacade;
import io.onedev.server.annotation.*; import io.onedev.server.annotation.DnsName;
import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.Interpolative;
import io.onedev.server.annotation.RegEx;
import io.onedev.server.annotation.SuggestionProvider;
import io.onedev.server.buildspec.job.EnvVar; import io.onedev.server.buildspec.job.EnvVar;
import io.onedev.server.buildspec.step.RegistryLogin; import io.onedev.server.buildspec.step.RegistryLogin;
import io.onedev.server.model.Build; import io.onedev.server.model.Build;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
@Editable @Editable
public class Service implements NamedElement, Serializable { public class Service implements NamedElement {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,10 +1,40 @@
package io.onedev.server.buildspec.job; package io.onedev.server.buildspec.job;
import static io.onedev.server.model.Build.NAME_BRANCH;
import static io.onedev.server.model.Build.NAME_COMMIT;
import static io.onedev.server.model.Build.NAME_JOB;
import static io.onedev.server.model.Build.NAME_PULL_REQUEST;
import static io.onedev.server.model.Build.NAME_TAG;
import static io.onedev.server.search.entity.build.BuildQuery.getRuleName;
import static io.onedev.server.search.entity.build.BuildQueryLexer.And;
import static io.onedev.server.search.entity.build.BuildQueryLexer.Is;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import javax.validation.ConstraintValidatorContext;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import org.apache.wicket.Component;
import org.eclipse.jgit.lib.ObjectId;
import io.onedev.commons.codeassist.InputCompletion; import io.onedev.commons.codeassist.InputCompletion;
import io.onedev.commons.codeassist.InputStatus; import io.onedev.commons.codeassist.InputStatus;
import io.onedev.commons.codeassist.InputSuggestion; import io.onedev.commons.codeassist.InputSuggestion;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.annotation.*; import io.onedev.server.annotation.ChoiceProvider;
import io.onedev.server.annotation.ClassValidating;
import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.Interpolative;
import io.onedev.server.annotation.RetryCondition;
import io.onedev.server.annotation.SuggestionProvider;
import io.onedev.server.buildspec.BuildSpec; import io.onedev.server.buildspec.BuildSpec;
import io.onedev.server.buildspec.BuildSpecAware; import io.onedev.server.buildspec.BuildSpecAware;
import io.onedev.server.buildspec.NamedElement; import io.onedev.server.buildspec.NamedElement;
@ -29,25 +59,10 @@ import io.onedev.server.validation.Validatable;
import io.onedev.server.web.page.project.blob.ProjectBlobPage; import io.onedev.server.web.page.project.blob.ProjectBlobPage;
import io.onedev.server.web.util.SuggestionUtils; import io.onedev.server.web.util.SuggestionUtils;
import io.onedev.server.web.util.WicketUtils; import io.onedev.server.web.util.WicketUtils;
import org.apache.wicket.Component;
import org.eclipse.jgit.lib.ObjectId;
import javax.annotation.Nullable;
import javax.validation.ConstraintValidatorContext;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.*;
import java.util.stream.Collectors;
import static io.onedev.server.model.Build.*;
import static io.onedev.server.search.entity.build.BuildQuery.getRuleName;
import static io.onedev.server.search.entity.build.BuildQueryLexer.*;
@Editable @Editable
@ClassValidating @ClassValidating
public class Job implements NamedElement, Serializable, Validatable { public class Job implements NamedElement, Validatable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -132,6 +147,7 @@ public class Job implements NamedElement, Serializable, Validatable {
this.jobExecutor = jobExecutor; this.jobExecutor = jobExecutor;
} }
@SuppressWarnings("unused")
private static String getJobExecutorPlaceholder() { private static String getJobExecutorPlaceholder() {
if (OneDev.getInstance(SettingManager.class).getJobExecutors().isEmpty()) if (OneDev.getInstance(SettingManager.class).getJobExecutors().isEmpty())
return "Auto-discovered executor"; return "Auto-discovered executor";
@ -323,9 +339,6 @@ public class Job implements NamedElement, Serializable, Validatable {
public boolean isValid(ConstraintValidatorContext context) { public boolean isValid(ConstraintValidatorContext context) {
boolean isValid = true; boolean isValid = true;
Set<String> keys = new HashSet<>();
Set<String> paths = new HashSet<>();
Set<String> dependencyJobNames = new HashSet<>(); Set<String> dependencyJobNames = new HashSet<>();
for (JobDependency dependency: jobDependencies) { for (JobDependency dependency: jobDependencies) {
if (!dependencyJobNames.add(dependency.getJobName())) { if (!dependencyJobNames.add(dependency.getJobName())) {

View File

@ -1,7 +1,21 @@
package io.onedev.server.buildspec.job; package io.onedev.server.buildspec.job;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import io.onedev.commons.codeassist.InputSuggestion; import io.onedev.commons.codeassist.InputSuggestion;
import io.onedev.server.annotation.*; import io.onedev.server.annotation.ChoiceProvider;
import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.Interpolative;
import io.onedev.server.annotation.OmitName;
import io.onedev.server.annotation.ParamSpecProvider;
import io.onedev.server.annotation.Patterns;
import io.onedev.server.annotation.ShowCondition;
import io.onedev.server.annotation.VariableOption;
import io.onedev.server.buildspec.BuildSpec; import io.onedev.server.buildspec.BuildSpec;
import io.onedev.server.buildspec.param.instance.ParamInstances; import io.onedev.server.buildspec.param.instance.ParamInstances;
import io.onedev.server.buildspec.param.instance.ParamMap; import io.onedev.server.buildspec.param.instance.ParamMap;
@ -9,13 +23,6 @@ import io.onedev.server.buildspec.param.spec.ParamSpec;
import io.onedev.server.util.ComponentContext; import io.onedev.server.util.ComponentContext;
import io.onedev.server.util.EditContext; import io.onedev.server.util.EditContext;
import io.onedev.server.web.editable.BeanEditor; import io.onedev.server.web.editable.BeanEditor;
import io.onedev.server.web.util.WicketUtils;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Editable @Editable
public class JobDependency implements Serializable { public class JobDependency implements Serializable {
@ -78,6 +85,7 @@ public class JobDependency implements Serializable {
this.excludeParamMaps = excludeParamMaps; this.excludeParamMaps = excludeParamMaps;
} }
@SuppressWarnings({ "unused", "unchecked" })
private static boolean isExcludeParamMapsVisible() { private static boolean isExcludeParamMapsVisible() {
var componentContext = ComponentContext.get(); var componentContext = ComponentContext.get();
if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) { if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) {

View File

@ -90,6 +90,7 @@ public class CreateIssueAction extends PostBuildAction {
this.accessTokenSecret = accessTokenSecret; this.accessTokenSecret = accessTokenSecret;
} }
@SuppressWarnings("unused")
private static boolean isProjectSpecified() { private static boolean isProjectSpecified() {
return EditContext.get().getInputValue("projectPath") != null; return EditContext.get().getInputValue("projectPath") != null;
} }

View File

@ -75,6 +75,7 @@ public class RunJobAction extends PostBuildAction {
this.excludeParamMaps = excludeParamMaps; this.excludeParamMaps = excludeParamMaps;
} }
@SuppressWarnings({ "unused", "unchecked" })
private static boolean isExcludeParamMapsVisible() { private static boolean isExcludeParamMapsVisible() {
var componentContext = ComponentContext.get(); var componentContext = ComponentContext.get();
if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) { if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) {

View File

@ -17,6 +17,7 @@ public interface GitCredential extends Serializable {
CloneInfo newCloneInfo(Build build, String jobToken); CloneInfo newCloneInfo(Build build, String jobToken);
@SuppressWarnings("unused")
private static Collection<Class<? extends GitCredential>> getImplementations() { private static Collection<Class<? extends GitCredential>> getImplementations() {
var implementations = Lists.newArrayList(DefaultCredential.class, HttpCredential.class); var implementations = Lists.newArrayList(DefaultCredential.class, HttpCredential.class);
if (OneDev.getInstance(ServerConfig.class).getSshPort() != 0) if (OneDev.getInstance(ServerConfig.class).getSshPort() != 0)

View File

@ -40,6 +40,7 @@ public class IssueInStateTrigger extends JobTrigger {
this.state = state; this.state = state;
} }
@SuppressWarnings("unused")
private static List<String> getStateChoices() { private static List<String> getStateChoices() {
return OneDev.getInstance(SettingManager.class).getIssueSetting() return OneDev.getInstance(SettingManager.class).getIssueSetting()
.getStateSpecs().stream().map(StateSpec::getName).collect(toList()); .getStateSpecs().stream().map(StateSpec::getName).collect(toList());

View File

@ -85,6 +85,7 @@ public abstract class JobTrigger implements Serializable {
this.excludeParamMaps = excludeParamMaps; this.excludeParamMaps = excludeParamMaps;
} }
@SuppressWarnings({ "unused", "unchecked" })
private static boolean isExcludeParamMapsVisible() { private static boolean isExcludeParamMapsVisible() {
var componentContext = ComponentContext.get(); var componentContext = ComponentContext.get();
if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) { if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) {
@ -106,7 +107,6 @@ public abstract class JobTrigger implements Serializable {
return new ArrayList<>(); return new ArrayList<>();
} }
@SuppressWarnings("unused")
@Nullable @Nullable
public TriggerMatch matches(ProjectEvent event, Job job) { public TriggerMatch matches(ProjectEvent event, Job job) {
String projectPath = event.getProject().getPath(); String projectPath = event.getProject().getPath();

View File

@ -41,6 +41,7 @@ public class ParamMap implements Serializable {
this.params = params; this.params = params;
} }
@SuppressWarnings("unused")
private static List<ParamSpec> getParamSpecs() { private static List<ParamSpec> getParamSpecs() {
Component component = ComponentContext.get().getComponent(); Component component = ComponentContext.get().getComponent();
if (WicketUtils.findInnermost(component, JobTriggerEditPanel.class) != null) if (WicketUtils.findInnermost(component, JobTriggerEditPanel.class) != null)

View File

@ -52,7 +52,6 @@ public class ScriptingValue implements ValueProvider {
.toHashCode(); .toHashCode();
} }
@SuppressWarnings("unchecked")
@Override @Override
public List<String> getValue(Build build, ParamCombination paramCombination) { public List<String> getValue(Build build, ParamCombination paramCombination) {
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();

View File

@ -1,5 +1,14 @@
package io.onedev.server.buildspec.step; package io.onedev.server.buildspec.step;
import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import io.onedev.commons.codeassist.InputSuggestion; import io.onedev.commons.codeassist.InputSuggestion;
import io.onedev.k8shelper.StepFacade; import io.onedev.k8shelper.StepFacade;
import io.onedev.server.annotation.Editable; import io.onedev.server.annotation.Editable;
@ -12,19 +21,9 @@ import io.onedev.server.buildspec.param.ParamCombination;
import io.onedev.server.buildspec.step.commandinterpreter.DefaultInterpreter; import io.onedev.server.buildspec.step.commandinterpreter.DefaultInterpreter;
import io.onedev.server.buildspec.step.commandinterpreter.Interpreter; import io.onedev.server.buildspec.step.commandinterpreter.Interpreter;
import io.onedev.server.model.Build; import io.onedev.server.model.Build;
import io.onedev.server.model.Project;
import io.onedev.server.model.support.administration.jobexecutor.JobExecutor; import io.onedev.server.model.support.administration.jobexecutor.JobExecutor;
import io.onedev.server.util.EditContext; import io.onedev.server.util.EditContext;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
@Editable(order=100, name="Execute Commands") @Editable(order=100, name="Execute Commands")
public class CommandStep extends Step { public class CommandStep extends Step {

View File

@ -65,6 +65,7 @@ public class CreateBranchStep extends ServerSideStep {
return BuildSpec.suggestVariables(matchWith, true, true, false); return BuildSpec.suggestVariables(matchWith, true, true, false);
} }
@SuppressWarnings("unused")
private static List<InputSuggestion> suggestRevisions(String matchWith) { private static List<InputSuggestion> suggestRevisions(String matchWith) {
Project project = Project.get(); Project project = Project.get();
if (project != null) if (project != null)

View File

@ -60,6 +60,7 @@ public class RegistryLogin implements Serializable {
.stream().map(it->it.getName()).collect(Collectors.toList()); .stream().map(it->it.getName()).collect(Collectors.toList());
} }
@SuppressWarnings("unused")
private static List<InputSuggestion> suggestVariables(String matchWith) { private static List<InputSuggestion> suggestVariables(String matchWith) {
return BuildSpec.suggestVariables(matchWith, false, false, false); return BuildSpec.suggestVariables(matchWith, false, false, false);
} }

View File

@ -1,5 +1,15 @@
package io.onedev.server.buildspec.step; package io.onedev.server.buildspec.step;
import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Nullable;
import javax.validation.constraints.NotEmpty;
import io.onedev.commons.codeassist.InputSuggestion; import io.onedev.commons.codeassist.InputSuggestion;
import io.onedev.k8shelper.RunContainerFacade; import io.onedev.k8shelper.RunContainerFacade;
import io.onedev.k8shelper.StepFacade; import io.onedev.k8shelper.StepFacade;
@ -12,16 +22,6 @@ import io.onedev.server.buildspec.param.ParamCombination;
import io.onedev.server.model.Build; import io.onedev.server.model.Build;
import io.onedev.server.model.support.administration.jobexecutor.JobExecutor; import io.onedev.server.model.support.administration.jobexecutor.JobExecutor;
import javax.annotation.Nullable;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
@Editable(order=150, name="Run Docker Container", description="Run specified docker container. <a href='https://docs.onedev.io/concepts#job-workspace' target='_blank'>Job workspace</a> " @Editable(order=150, name="Run Docker Container", description="Run specified docker container. <a href='https://docs.onedev.io/concepts#job-workspace' target='_blank'>Job workspace</a> "
+ "is mounted into the container and its path is placed in environment variable <code>ONEDEV_WORKSPACE</code>. " + + "is mounted into the container and its path is placed in environment variable <code>ONEDEV_WORKSPACE</code>. " +
"<b class='text-warning'>Note: </b> this step can only be executed by server docker executor or remote " + "<b class='text-warning'>Note: </b> this step can only be executed by server docker executor or remote " +

View File

@ -42,6 +42,7 @@ public class SCPCommandStep extends CommandStep {
this.privateKeySecret = privateKeySecret; this.privateKeySecret = privateKeySecret;
} }
@SuppressWarnings("unused")
private static List<String> getPrivateKeySecretChoices() { private static List<String> getPrivateKeySecretChoices() {
return Project.get().getHierarchyJobSecrets() return Project.get().getHierarchyJobSecrets()
.stream().map(it->it.getName()).collect(Collectors.toList()); .stream().map(it->it.getName()).collect(Collectors.toList());

View File

@ -67,6 +67,7 @@ public class SSHCommandStep extends CommandStep {
this.privateKeySecret = privateKeySecret; this.privateKeySecret = privateKeySecret;
} }
@SuppressWarnings("unused")
private static List<String> getPrivateKeySecretChoices() { private static List<String> getPrivateKeySecretChoices() {
return Project.get().getHierarchyJobSecrets() return Project.get().getHierarchyJobSecrets()
.stream().map(it->it.getName()).collect(Collectors.toList()); .stream().map(it->it.getName()).collect(Collectors.toList());

View File

@ -3,22 +3,20 @@ package io.onedev.server.buildspec.step;
import java.io.File; import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map;
import java.util.function.Consumer;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import io.onedev.commons.utils.TaskLogger; import io.onedev.commons.utils.TaskLogger;
import io.onedev.k8shelper.ServerStepResult;
import io.onedev.k8shelper.StepFacade;
import io.onedev.k8shelper.KubernetesHelper; import io.onedev.k8shelper.KubernetesHelper;
import io.onedev.k8shelper.ServerSideFacade; import io.onedev.k8shelper.ServerSideFacade;
import io.onedev.k8shelper.ServerStepResult;
import io.onedev.k8shelper.StepFacade;
import io.onedev.server.annotation.Interpolative;
import io.onedev.server.buildspec.param.ParamCombination; import io.onedev.server.buildspec.param.ParamCombination;
import io.onedev.server.model.Build; import io.onedev.server.model.Build;
import io.onedev.server.model.support.administration.jobexecutor.JobExecutor; import io.onedev.server.model.support.administration.jobexecutor.JobExecutor;
import io.onedev.server.util.patternset.PatternSet; import io.onedev.server.util.patternset.PatternSet;
import io.onedev.server.web.editable.EditableStringVisitor; import io.onedev.server.web.editable.EditableStringVisitor;
import io.onedev.server.annotation.Interpolative;
public abstract class ServerSideStep extends Step { public abstract class ServerSideStep extends Step {

View File

@ -68,6 +68,7 @@ public class SetupCacheStep extends Step {
this.loadKeys = loadKeys; this.loadKeys = loadKeys;
} }
@SuppressWarnings("unused")
private static List<InputSuggestion> suggestVariables(String matchWith) { private static List<InputSuggestion> suggestVariables(String matchWith) {
return BuildSpec.suggestVariables(matchWith, true, true, false); return BuildSpec.suggestVariables(matchWith, true, true, false);
} }
@ -111,6 +112,7 @@ public class SetupCacheStep extends Step {
this.changeDetectionExcludes = changeDetectionExcludes; this.changeDetectionExcludes = changeDetectionExcludes;
} }
@SuppressWarnings("unused")
private static boolean isUploadIfChanged() { private static boolean isUploadIfChanged() {
return UPLOAD_IF_CHANGED == EditContext.get().getInputValue("uploadStrategy"); return UPLOAD_IF_CHANGED == EditContext.get().getInputValue("uploadStrategy");
} }
@ -126,6 +128,7 @@ public class SetupCacheStep extends Step {
this.uploadProjectPath = uploadProjectPath; this.uploadProjectPath = uploadProjectPath;
} }
@SuppressWarnings("unused")
private static List<InputSuggestion> suggestStaticVariables(String matchWith) { private static List<InputSuggestion> suggestStaticVariables(String matchWith) {
return BuildSpec.suggestVariables(matchWith, true, false, false); return BuildSpec.suggestVariables(matchWith, true, false, false);
} }
@ -142,6 +145,7 @@ public class SetupCacheStep extends Step {
this.uploadAccessTokenSecret = uploadAccessTokenSecret; this.uploadAccessTokenSecret = uploadAccessTokenSecret;
} }
@SuppressWarnings("unused")
private static List<String> getAccessTokenSecretChoices() { private static List<String> getAccessTokenSecretChoices() {
return Project.get().getHierarchyJobSecrets() return Project.get().getHierarchyJobSecrets()
.stream().map(it->it.getName()).distinct().collect(toList()); .stream().map(it->it.getName()).distinct().collect(toList());

View File

@ -1,5 +1,11 @@
package io.onedev.server.buildspec.step; package io.onedev.server.buildspec.step;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import io.onedev.commons.codeassist.InputCompletion; import io.onedev.commons.codeassist.InputCompletion;
import io.onedev.commons.codeassist.InputStatus; import io.onedev.commons.codeassist.InputStatus;
import io.onedev.server.annotation.Editable; import io.onedev.server.annotation.Editable;
@ -8,14 +14,8 @@ import io.onedev.server.buildspec.BuildSpec;
import io.onedev.server.buildspec.NamedElement; import io.onedev.server.buildspec.NamedElement;
import io.onedev.server.buildspec.param.spec.ParamSpec; import io.onedev.server.buildspec.param.spec.ParamSpec;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@Editable @Editable
public class StepTemplate implements NamedElement, Serializable { public class StepTemplate implements NamedElement {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -74,7 +74,6 @@ public abstract class SyncRepository extends ServerSideStep {
this.passwordSecret = passwordSecret; this.passwordSecret = passwordSecret;
} }
@SuppressWarnings("unused")
static List<String> getSecretChoices() { static List<String> getSecretChoices() {
return Project.get().getHierarchyJobSecrets() return Project.get().getHierarchyJobSecrets()
.stream().map(it->it.getName()).collect(Collectors.toList()); .stream().map(it->it.getName()).collect(Collectors.toList());

View File

@ -76,6 +76,7 @@ public class UseTemplateStep extends CompositeStep {
this.excludeParamMaps = excludeParamMaps; this.excludeParamMaps = excludeParamMaps;
} }
@SuppressWarnings({ "unused", "unchecked" })
private static boolean isExcludeParamMapsVisible() { private static boolean isExcludeParamMapsVisible() {
var componentContext = ComponentContext.get(); var componentContext = ComponentContext.get();
if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) { if (componentContext != null && componentContext.getComponent().findParent(BeanEditor.class) != null) {
@ -86,7 +87,6 @@ public class UseTemplateStep extends CompositeStep {
} }
} }
@SuppressWarnings("unused")
public static List<ParamSpec> getParamSpecs() { public static List<ParamSpec> getParamSpecs() {
String templateName = (String) EditContext.get().getInputValue(PROP_TEMPLATE_NAME); String templateName = (String) EditContext.get().getInputValue(PROP_TEMPLATE_NAME);
if (templateName != null) { if (templateName != null) {

View File

@ -1,5 +1,10 @@
package io.onedev.server.buildspec.step.commandinterpreter; package io.onedev.server.buildspec.step.commandinterpreter;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotEmpty;
import io.onedev.k8shelper.CommandFacade; import io.onedev.k8shelper.CommandFacade;
import io.onedev.k8shelper.RegistryLoginFacade; import io.onedev.k8shelper.RegistryLoginFacade;
import io.onedev.server.annotation.Code; import io.onedev.server.annotation.Code;
@ -7,11 +12,6 @@ import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.Interpolative; import io.onedev.server.annotation.Interpolative;
import io.onedev.server.model.support.administration.jobexecutor.JobExecutor; import io.onedev.server.model.support.administration.jobexecutor.JobExecutor;
import javax.validation.constraints.NotEmpty;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Editable(order=100, name="Default (Shell on Linux, Batch on Windows)") @Editable(order=100, name="Default (Shell on Linux, Batch on Windows)")
public class DefaultInterpreter extends Interpreter { public class DefaultInterpreter extends Interpreter {

View File

@ -1,7 +1,43 @@
package io.onedev.server.cluster; package io.onedev.server.cluster;
import static io.onedev.commons.utils.LockUtils.read;
import static io.onedev.commons.utils.LockUtils.write;
import static io.onedev.server.model.Build.getArtifactsLockName;
import static io.onedev.server.model.Project.SHARE_TEST_DIR;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static javax.ws.rs.core.Response.ok;
import static javax.ws.rs.core.Response.status;
import static javax.ws.rs.core.Response.Status.NO_CONTENT;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.apache.shiro.authz.UnauthorizedException;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import io.onedev.commons.utils.FileUtils; import io.onedev.commons.utils.FileUtils;
import io.onedev.commons.utils.TarUtils; import io.onedev.commons.utils.TarUtils;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
@ -22,34 +58,12 @@ import io.onedev.server.model.PackBlob;
import io.onedev.server.model.Project; import io.onedev.server.model.Project;
import io.onedev.server.rest.annotation.Api; import io.onedev.server.rest.annotation.Api;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.IOUtils;
import io.onedev.server.util.concurrent.PrioritizedRunnable; import io.onedev.server.util.concurrent.PrioritizedRunnable;
import io.onedev.server.util.concurrent.WorkExecutor; import io.onedev.server.util.concurrent.WorkExecutor;
import io.onedev.server.util.patternset.PatternSet; import io.onedev.server.util.patternset.PatternSet;
import io.onedev.server.xodus.CommitInfoManager; import io.onedev.server.xodus.CommitInfoManager;
import io.onedev.server.xodus.VisitInfoManager; import io.onedev.server.xodus.VisitInfoManager;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.shiro.authz.UnauthorizedException;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.io.*;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import static io.onedev.commons.utils.LockUtils.read;
import static io.onedev.commons.utils.LockUtils.write;
import static io.onedev.server.model.Build.getArtifactsLockName;
import static io.onedev.server.model.Project.SHARE_TEST_DIR;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static javax.ws.rs.core.Response.Status.NO_CONTENT;
import static javax.ws.rs.core.Response.ok;
import static javax.ws.rs.core.Response.status;
@Api(internal=true) @Api(internal=true)
@Path("/cluster") @Path("/cluster")

View File

@ -1,10 +1,9 @@
package io.onedev.server.codequality; package io.onedev.server.codequality;
import io.onedev.server.model.Group;
import org.apache.wicket.Component;
import java.io.Serializable; import java.io.Serializable;
import org.apache.wicket.Component;
public abstract class ProblemTarget implements Serializable { public abstract class ProblemTarget implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -29,9 +29,7 @@ public class BackupDatabase extends CommandHandler {
private final DataManager dataManager; private final DataManager dataManager;
private final SessionFactoryManager sessionFactoryManager; private final SessionFactoryManager sessionFactoryManager;
private final HibernateConfig hibernateConfig;
private File backupFile; private File backupFile;
@Inject @Inject
@ -40,7 +38,6 @@ public class BackupDatabase extends CommandHandler {
super(hibernateConfig); super(hibernateConfig);
this.dataManager = dataManager; this.dataManager = dataManager;
this.sessionFactoryManager = sessionFactoryManager; this.sessionFactoryManager = sessionFactoryManager;
this.hibernateConfig = hibernateConfig;
} }
@Override @Override

View File

@ -1,18 +1,20 @@
package io.onedev.server.commandhandler; package io.onedev.server.commandhandler;
import io.onedev.commons.utils.ExplicitException; import static io.onedev.server.persistence.PersistenceUtils.callWithTransaction;
import io.onedev.server.persistence.HibernateConfig;
import io.onedev.server.data.DataManager; import java.sql.SQLException;
import io.onedev.server.persistence.SessionFactoryManager;
import io.onedev.server.security.SecurityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import java.sql.SQLException;
import static io.onedev.server.persistence.PersistenceUtils.callWithTransaction; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.onedev.commons.utils.ExplicitException;
import io.onedev.server.data.DataManager;
import io.onedev.server.persistence.HibernateConfig;
import io.onedev.server.persistence.SessionFactoryManager;
import io.onedev.server.security.SecurityUtils;
@Singleton @Singleton
public class CheckDataVersion extends CommandHandler { public class CheckDataVersion extends CommandHandler {
@ -24,16 +26,13 @@ public class CheckDataVersion extends CommandHandler {
private final SessionFactoryManager sessionFactoryManager; private final SessionFactoryManager sessionFactoryManager;
private final DataManager dataManager; private final DataManager dataManager;
private final HibernateConfig hibernateConfig;
@Inject @Inject
public CheckDataVersion(SessionFactoryManager sessionFactoryManager, DataManager dataManager, public CheckDataVersion(SessionFactoryManager sessionFactoryManager, DataManager dataManager,
HibernateConfig hibernateConfig) { HibernateConfig hibernateConfig) {
super(hibernateConfig); super(hibernateConfig);
this.sessionFactoryManager = sessionFactoryManager; this.sessionFactoryManager = sessionFactoryManager;
this.dataManager = dataManager; this.dataManager = dataManager;
this.hibernateConfig = hibernateConfig;
} }
@Override @Override

View File

@ -1,42 +1,46 @@
package io.onedev.server.data; package io.onedev.server.data;
import com.google.common.base.Preconditions; import static com.google.common.base.Throwables.getStackTraceAsString;
import com.google.common.collect.Lists; import static io.onedev.server.model.User.PROP_DISABLE_WATCH_NOTIFICATIONS;
import com.google.common.collect.Sets; import static io.onedev.server.model.User.PROP_NOTIFY_OWN_EVENTS;
import io.onedev.commons.bootstrap.Bootstrap; import static io.onedev.server.model.support.administration.SystemSetting.PROP_CURL_LOCATION;
import io.onedev.commons.loader.ManagedSerializedForm; import static io.onedev.server.model.support.administration.SystemSetting.PROP_DISABLE_AUTO_UPDATE_CHECK;
import io.onedev.commons.utils.*; import static io.onedev.server.model.support.administration.SystemSetting.PROP_GIT_LOCATION;
import io.onedev.server.OneDev; import static io.onedev.server.model.support.administration.SystemSetting.PROP_SSH_ROOT_URL;
import io.onedev.server.cluster.ClusterManager; import static io.onedev.server.model.support.administration.SystemSetting.PROP_USE_AVATAR_SERVICE;
import io.onedev.server.cluster.ClusterRunnable; import static io.onedev.server.persistence.PersistenceUtils.tableExists;
import io.onedev.server.cluster.ClusterTask; import static org.unbescape.html.HtmlEscape.escapeHtml5;
import io.onedev.server.commandhandler.Upgrade;
import io.onedev.server.data.migration.DataMigrator; import java.io.File;
import io.onedev.server.data.migration.MigrationHelper; import java.io.IOException;
import io.onedev.server.data.migration.VersionedXmlDoc; import java.io.ObjectStreamException;
import io.onedev.server.entitymanager.*; import java.io.Serializable;
import io.onedev.server.event.Listen; import java.lang.reflect.Field;
import io.onedev.server.event.entity.EntityPersisted; import java.nio.charset.Charset;
import io.onedev.server.event.system.SystemStarted; import java.nio.charset.StandardCharsets;
import io.onedev.server.mail.MailManager; import java.sql.Connection;
import io.onedev.server.model.*; import java.sql.ResultSet;
import io.onedev.server.model.Setting.Key; import java.sql.SQLException;
import io.onedev.server.model.support.administration.*; import java.sql.Statement;
import io.onedev.server.model.support.administration.emailtemplates.EmailTemplates; import java.util.ArrayList;
import io.onedev.server.model.support.issue.LinkSpecOpposite; import java.util.Collection;
import io.onedev.server.persistence.HibernateConfig; import java.util.Collections;
import io.onedev.server.persistence.PersistenceUtils; import java.util.EnumSet;
import io.onedev.server.persistence.SessionFactoryManager; import java.util.HashSet;
import io.onedev.server.persistence.TransactionManager; import java.util.LinkedHashMap;
import io.onedev.server.persistence.annotation.Sessional; import java.util.List;
import io.onedev.server.persistence.annotation.Transactional; import java.util.UUID;
import io.onedev.server.persistence.dao.Dao; import java.util.stream.Collectors;
import io.onedev.server.ssh.SshKeyUtils;
import io.onedev.server.taskschedule.SchedulableTask; import javax.inject.Inject;
import io.onedev.server.taskschedule.TaskScheduler; import javax.inject.Singleton;
import io.onedev.server.util.BeanUtils; import javax.persistence.JoinColumn;
import io.onedev.server.util.init.ManualConfig; import javax.persistence.ManyToOne;
import io.onedev.server.web.util.editbean.NewUserBean; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import javax.validation.Validator;
import org.apache.shiro.authc.credential.PasswordService; import org.apache.shiro.authc.credential.PasswordService;
import org.dom4j.DocumentHelper; import org.dom4j.DocumentHelper;
import org.dom4j.Element; import org.dom4j.Element;
@ -57,35 +61,73 @@ import org.quartz.ScheduleBuilder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.inject.Inject; import com.google.common.base.Preconditions;
import javax.inject.Singleton; import com.google.common.collect.Lists;
import javax.persistence.JoinColumn; import com.google.common.collect.Sets;
import javax.persistence.ManyToOne;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import java.io.File;
import java.io.IOException;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import java.util.stream.Collectors;
import static com.google.common.base.Throwables.getStackTraceAsString; import io.onedev.commons.bootstrap.Bootstrap;
import static io.onedev.server.model.User.PROP_DISABLE_WATCH_NOTIFICATIONS; import io.onedev.commons.loader.ManagedSerializedForm;
import static io.onedev.server.model.User.PROP_NOTIFY_OWN_EVENTS; import io.onedev.commons.utils.ExceptionUtils;
import static io.onedev.server.model.support.administration.SystemSetting.*; import io.onedev.commons.utils.ExplicitException;
import static io.onedev.server.persistence.PersistenceUtils.tableExists; import io.onedev.commons.utils.FileUtils;
import static org.unbescape.html.HtmlEscape.escapeHtml5; import io.onedev.commons.utils.StringUtils;
import io.onedev.commons.utils.ZipUtils;
import io.onedev.server.OneDev;
import io.onedev.server.cluster.ClusterManager;
import io.onedev.server.cluster.ClusterRunnable;
import io.onedev.server.cluster.ClusterTask;
import io.onedev.server.commandhandler.Upgrade;
import io.onedev.server.data.migration.DataMigrator;
import io.onedev.server.data.migration.MigrationHelper;
import io.onedev.server.data.migration.VersionedXmlDoc;
import io.onedev.server.entitymanager.AlertManager;
import io.onedev.server.entitymanager.EmailAddressManager;
import io.onedev.server.entitymanager.LinkSpecManager;
import io.onedev.server.entitymanager.RoleManager;
import io.onedev.server.entitymanager.SettingManager;
import io.onedev.server.entitymanager.UserManager;
import io.onedev.server.event.Listen;
import io.onedev.server.event.entity.EntityPersisted;
import io.onedev.server.event.system.SystemStarted;
import io.onedev.server.model.AbstractEntity;
import io.onedev.server.model.EmailAddress;
import io.onedev.server.model.LinkSpec;
import io.onedev.server.model.ModelVersion;
import io.onedev.server.model.Role;
import io.onedev.server.model.Setting;
import io.onedev.server.model.Setting.Key;
import io.onedev.server.model.User;
import io.onedev.server.model.support.administration.AgentSetting;
import io.onedev.server.model.support.administration.AlertSetting;
import io.onedev.server.model.support.administration.BackupSetting;
import io.onedev.server.model.support.administration.BrandingSetting;
import io.onedev.server.model.support.administration.ClusterSetting;
import io.onedev.server.model.support.administration.GlobalBuildSetting;
import io.onedev.server.model.support.administration.GlobalIssueSetting;
import io.onedev.server.model.support.administration.GlobalPackSetting;
import io.onedev.server.model.support.administration.GlobalProjectSetting;
import io.onedev.server.model.support.administration.GlobalPullRequestSetting;
import io.onedev.server.model.support.administration.GpgSetting;
import io.onedev.server.model.support.administration.PerformanceSetting;
import io.onedev.server.model.support.administration.SecuritySetting;
import io.onedev.server.model.support.administration.ServiceDeskSetting;
import io.onedev.server.model.support.administration.SshSetting;
import io.onedev.server.model.support.administration.SystemSetting;
import io.onedev.server.model.support.administration.emailtemplates.EmailTemplates;
import io.onedev.server.model.support.issue.LinkSpecOpposite;
import io.onedev.server.persistence.HibernateConfig;
import io.onedev.server.persistence.PersistenceUtils;
import io.onedev.server.persistence.SessionFactoryManager;
import io.onedev.server.persistence.TransactionManager;
import io.onedev.server.persistence.annotation.Sessional;
import io.onedev.server.persistence.annotation.Transactional;
import io.onedev.server.persistence.dao.Dao;
import io.onedev.server.ssh.SshKeyUtils;
import io.onedev.server.taskschedule.SchedulableTask;
import io.onedev.server.taskschedule.TaskScheduler;
import io.onedev.server.util.BeanUtils;
import io.onedev.server.util.init.ManualConfig;
import io.onedev.server.web.util.editbean.NewUserBean;
@Singleton @Singleton
public class DefaultDataManager implements DataManager, Serializable { public class DefaultDataManager implements DataManager, Serializable {
@ -119,9 +161,7 @@ public class DefaultDataManager implements DataManager, Serializable {
private final UserManager userManager; private final UserManager userManager;
private final SettingManager settingManager; private final SettingManager settingManager;
private final MailManager mailManager;
private final PasswordService passwordService; private final PasswordService passwordService;
private final TaskScheduler taskScheduler; private final TaskScheduler taskScheduler;
@ -143,7 +183,7 @@ public class DefaultDataManager implements DataManager, Serializable {
@Inject @Inject
public DefaultDataManager(PhysicalNamingStrategy physicalNamingStrategy, HibernateConfig hibernateConfig, public DefaultDataManager(PhysicalNamingStrategy physicalNamingStrategy, HibernateConfig hibernateConfig,
Validator validator, Dao dao, SessionFactoryManager sessionFactoryManager, Validator validator, Dao dao, SessionFactoryManager sessionFactoryManager,
SettingManager settingManager, MailManager mailManager, TaskScheduler taskScheduler, SettingManager settingManager, TaskScheduler taskScheduler,
PasswordService passwordService, RoleManager roleManager, LinkSpecManager linkSpecManager, PasswordService passwordService, RoleManager roleManager, LinkSpecManager linkSpecManager,
EmailAddressManager emailAddressManager, UserManager userManager, ClusterManager clusterManager, EmailAddressManager emailAddressManager, UserManager userManager, ClusterManager clusterManager,
TransactionManager transactionManager, AlertManager alertManager) { TransactionManager transactionManager, AlertManager alertManager) {
@ -156,7 +196,6 @@ public class DefaultDataManager implements DataManager, Serializable {
this.userManager = userManager; this.userManager = userManager;
this.settingManager = settingManager; this.settingManager = settingManager;
this.taskScheduler = taskScheduler; this.taskScheduler = taskScheduler;
this.mailManager = mailManager;
this.passwordService = passwordService; this.passwordService = passwordService;
this.roleManager = roleManager; this.roleManager = roleManager;
this.linkSpecManager = linkSpecManager; this.linkSpecManager = linkSpecManager;
@ -468,13 +507,7 @@ public class DefaultDataManager implements DataManager, Serializable {
} }
} }
} }
private void reportError(AbstractEntity entity, ConstraintViolation<?> violation) {
String errorInfo = String.format("Error validating entity (entity class: %s, entity id: %d, entity property: %s, error message: %s)",
entity.getClass(), entity.getId(), violation.getPropertyPath().toString(), violation.getMessage());
throw new RuntimeException(errorInfo);
}
@Override @Override
public void applyConstraints(Connection conn) { public void applyConstraints(Connection conn) {
File tempFile = null; File tempFile = null;
@ -606,7 +639,6 @@ public class DefaultDataManager implements DataManager, Serializable {
emailAddressManager.update(primaryEmailAddress); emailAddressManager.update(primaryEmailAddress);
} }
@SuppressWarnings({"serial"})
@Transactional @Transactional
@Override @Override
public List<ManualConfig> checkData() { public List<ManualConfig> checkData() {

View File

@ -6754,7 +6754,7 @@ public class DataMigrator {
submitTimeGroupsElement.addElement("week").setText(String.valueOf(DateUtils.toLocalDate(submitDate).with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).toEpochDay())); submitTimeGroupsElement.addElement("week").setText(String.valueOf(DateUtils.toLocalDate(submitDate).with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)).toEpochDay()));
submitTimeGroupsElement.addElement("month").setText(String.valueOf(DateUtils.toLocalDate(submitDate).with(TemporalAdjusters.firstDayOfMonth()).toEpochDay())); submitTimeGroupsElement.addElement("month").setText(String.valueOf(DateUtils.toLocalDate(submitDate).with(TemporalAdjusters.firstDayOfMonth()).toEpochDay()));
if (!element.element("status").equals("OPEN")) { if (!element.elementTextTrim("status").equals("OPEN")) {
var closeDate = parseDate(element.element("lastActivity").elementText("date").trim()); var closeDate = parseDate(element.element("lastActivity").elementText("date").trim());
element.addElement("closeDate").addAttribute("class", "sql-timestamp").setText(formatDate(closeDate)); element.addElement("closeDate").addAttribute("class", "sql-timestamp").setText(formatDate(closeDate));
element.addElement("duration").setText(String.valueOf(closeDate.getTime() - submitDate.getTime())); element.addElement("duration").setText(String.valueOf(closeDate.getTime() - submitDate.getTime()));

View File

@ -577,6 +577,7 @@ public final class VersionedXmlDoc implements Document, Externalizable {
} }
} }
@SuppressWarnings("unchecked")
public static <T> T cloneBean(T bean) { public static <T> T cloneBean(T bean) {
return (T) VersionedXmlDoc.fromBean(bean).toBean(); return (T) VersionedXmlDoc.fromBean(bean).toBean();
} }

View File

@ -1,7 +1,6 @@
package io.onedev.server.entitymanager; package io.onedev.server.entitymanager;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import io.onedev.server.model.Issue; import io.onedev.server.model.Issue;
import io.onedev.server.model.IssueSchedule; import io.onedev.server.model.IssueSchedule;

View File

@ -133,6 +133,7 @@ public class DefaultAgentManager extends BaseEntityManager<Agent> implements Age
var cacheInited = hazelcastInstance.getCPSubsystem().getAtomicLong("agentCacheInited"); var cacheInited = hazelcastInstance.getCPSubsystem().getAtomicLong("agentCacheInited");
clusterManager.init(cacheInited, () -> { clusterManager.init(cacheInited, () -> {
@SuppressWarnings("unchecked")
Query<Object[]> query = dao.getSession().createQuery(String.format("select %s, %s from Agent", Query<Object[]> query = dao.getSession().createQuery(String.format("select %s, %s from Agent",
Agent.PROP_OS_NAME, Agent.PROP_OS_ARCH)); Agent.PROP_OS_NAME, Agent.PROP_OS_ARCH));
for (Object[] row: query.list()) { for (Object[] row: query.list()) {

View File

@ -1,6 +1,14 @@
package io.onedev.server.entitymanager.impl; package io.onedev.server.entitymanager.impl;
import com.google.common.base.Preconditions; import static java.util.stream.Collectors.toSet;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.hibernate.criterion.Restrictions;
import io.onedev.server.entitymanager.AgentManager; import io.onedev.server.entitymanager.AgentManager;
import io.onedev.server.entitymanager.AgentTokenManager; import io.onedev.server.entitymanager.AgentTokenManager;
import io.onedev.server.model.Agent; import io.onedev.server.model.Agent;
@ -10,13 +18,6 @@ import io.onedev.server.persistence.annotation.Transactional;
import io.onedev.server.persistence.dao.BaseEntityManager; import io.onedev.server.persistence.dao.BaseEntityManager;
import io.onedev.server.persistence.dao.Dao; import io.onedev.server.persistence.dao.Dao;
import io.onedev.server.persistence.dao.EntityCriteria; import io.onedev.server.persistence.dao.EntityCriteria;
import org.hibernate.criterion.Restrictions;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.List;
import static java.util.stream.Collectors.toSet;
@Singleton @Singleton
public class DefaultAgentTokenManager extends BaseEntityManager<AgentToken> implements AgentTokenManager { public class DefaultAgentTokenManager extends BaseEntityManager<AgentToken> implements AgentTokenManager {
@ -43,7 +44,6 @@ public class DefaultAgentTokenManager extends BaseEntityManager<AgentToken> impl
return find(criteria); return find(criteria);
} }
@SuppressWarnings("unchecked")
@Sessional @Sessional
@Override @Override
public List<AgentToken> queryUnused() { public List<AgentToken> queryUnused() {
@ -53,7 +53,6 @@ public class DefaultAgentTokenManager extends BaseEntityManager<AgentToken> impl
return tokens; return tokens;
} }
@SuppressWarnings("unchecked")
@Transactional @Transactional
@Override @Override
public void deleteUnused() { public void deleteUnused() {

View File

@ -74,7 +74,6 @@ public class DefaultBuildMetricManager implements BuildMetricManager {
return dao.find(criteria); return dao.find(criteria);
} }
@SuppressWarnings("resource")
@Sessional @Sessional
@Override @Override
public <T extends AbstractEntity> Map<Integer, T> queryStats(Project project, Class<T> metricClass, BuildMetricQuery query) { public <T extends AbstractEntity> Map<Integer, T> queryStats(Project project, Class<T> metricClass, BuildMetricQuery query) {

View File

@ -1,6 +1,18 @@
package io.onedev.server.entitymanager.impl; package io.onedev.server.entitymanager.impl;
import com.google.common.base.Preconditions; import static io.onedev.server.model.AbstractEntity.PROP_ID;
import static io.onedev.server.model.IssueQueryPersonalization.PROP_PROJECT;
import java.util.Collection;
import java.util.HashSet;
import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.CriteriaBuilder;
import org.hibernate.criterion.Restrictions;
import io.onedev.server.entitymanager.IssueQueryPersonalizationManager; import io.onedev.server.entitymanager.IssueQueryPersonalizationManager;
import io.onedev.server.entitymanager.ProjectManager; import io.onedev.server.entitymanager.ProjectManager;
import io.onedev.server.model.IssueQueryPersonalization; import io.onedev.server.model.IssueQueryPersonalization;
@ -13,17 +25,6 @@ import io.onedev.server.persistence.dao.BaseEntityManager;
import io.onedev.server.persistence.dao.Dao; import io.onedev.server.persistence.dao.Dao;
import io.onedev.server.persistence.dao.EntityCriteria; import io.onedev.server.persistence.dao.EntityCriteria;
import io.onedev.server.util.ProjectScope; import io.onedev.server.util.ProjectScope;
import org.hibernate.criterion.Restrictions;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.CriteriaBuilder;
import java.util.Collection;
import java.util.HashSet;
import java.util.stream.Collectors;
import static io.onedev.server.model.AbstractEntity.PROP_ID;
import static io.onedev.server.model.IssueQueryPersonalization.PROP_PROJECT;
@Singleton @Singleton
public class DefaultIssueQueryPersonalizationManager extends BaseEntityManager<IssueQueryPersonalization> public class DefaultIssueQueryPersonalizationManager extends BaseEntityManager<IssueQueryPersonalization>

View File

@ -52,6 +52,7 @@ public class DefaultIssueWorkManager extends BaseEntityManager<IssueWork> implem
dao.persist(work); dao.persist(work);
} }
@SuppressWarnings("unchecked")
@Sessional @Sessional
@Override @Override
public List<IssueWork> query(ProjectScope projectScope, EntityQuery<Issue> issueQuery, long fromDay, long toDay) { public List<IssueWork> query(ProjectScope projectScope, EntityQuery<Issue> issueQuery, long fromDay, long toDay) {

View File

@ -167,6 +167,7 @@ public class DefaultJobCacheManager extends BaseEntityManager<JobCache>
}); });
} }
@SuppressWarnings("resource")
@Nullable @Nullable
private InputStream openCacheInputStream(Long projectId, Long cacheId, List<String> cachePaths) { private InputStream openCacheInputStream(Long projectId, Long cacheId, List<String> cachePaths) {
var cacheHome = projectManager.getCacheDir(projectId); var cacheHome = projectManager.getCacheDir(projectId);

View File

@ -1,6 +1,20 @@
package io.onedev.server.entitymanager.impl; package io.onedev.server.entitymanager.impl;
import static io.onedev.server.model.Pack.PROP_PROJECT;
import static io.onedev.server.model.PackBlobReference.PROP_PACK;
import static io.onedev.server.model.PackBlobReference.PROP_PACK_BLOB;
import static io.onedev.server.model.Project.PROP_PENDING_DELETE;
import java.io.ObjectStreamException;
import java.io.Serializable;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.hibernate.criterion.Restrictions;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import io.onedev.commons.loader.ManagedSerializedForm; import io.onedev.commons.loader.ManagedSerializedForm;
import io.onedev.server.entitymanager.PackBlobReferenceManager; import io.onedev.server.entitymanager.PackBlobReferenceManager;
import io.onedev.server.model.Pack; import io.onedev.server.model.Pack;
@ -9,20 +23,6 @@ import io.onedev.server.model.PackBlobReference;
import io.onedev.server.persistence.annotation.Transactional; import io.onedev.server.persistence.annotation.Transactional;
import io.onedev.server.persistence.dao.BaseEntityManager; import io.onedev.server.persistence.dao.BaseEntityManager;
import io.onedev.server.persistence.dao.Dao; import io.onedev.server.persistence.dao.Dao;
import org.hibernate.criterion.Restrictions;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.Root;
import java.io.ObjectStreamException;
import java.io.Serializable;
import static io.onedev.server.model.Pack.PROP_PROJECT;
import static io.onedev.server.model.PackBlobReference.PROP_PACK;
import static io.onedev.server.model.PackBlobReference.PROP_PACK_BLOB;
import static io.onedev.server.model.Project.PROP_PENDING_DELETE;
@Singleton @Singleton
public class DefaultPackBlobReferenceManager extends BaseEntityManager<PackBlobReference> public class DefaultPackBlobReferenceManager extends BaseEntityManager<PackBlobReference>

View File

@ -322,6 +322,7 @@ public class DefaultPackManager extends BaseEntityManager<Pack>
return query(criteria); return query(criteria);
} }
@SuppressWarnings("unchecked")
@Sessional @Sessional
@Override @Override
public List<Pack> queryLatests(Project project, String type, String nameQuery, public List<Pack> queryLatests(Project project, String type, String nameQuery,

View File

@ -1,9 +1,29 @@
package io.onedev.server.entitymanager.impl; package io.onedev.server.entitymanager.impl;
import java.util.Collection;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.persistence.criteria.Subquery;
import org.hibernate.ReplicationMode;
import org.hibernate.criterion.Restrictions;
import org.hibernate.query.Query;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.HazelcastInstance;
import io.onedev.server.cluster.ClusterManager; import io.onedev.server.cluster.ClusterManager;
import io.onedev.server.entitymanager.*; import io.onedev.server.entitymanager.EmailAddressManager;
import io.onedev.server.entitymanager.IssueFieldManager;
import io.onedev.server.entitymanager.ProjectManager;
import io.onedev.server.entitymanager.SettingManager;
import io.onedev.server.entitymanager.UserManager;
import io.onedev.server.event.Listen; import io.onedev.server.event.Listen;
import io.onedev.server.event.entity.EntityPersisted; import io.onedev.server.event.entity.EntityPersisted;
import io.onedev.server.event.entity.EntityRemoved; import io.onedev.server.event.entity.EntityRemoved;
@ -24,16 +44,6 @@ import io.onedev.server.persistence.dao.EntityCriteria;
import io.onedev.server.util.facade.UserCache; import io.onedev.server.util.facade.UserCache;
import io.onedev.server.util.facade.UserFacade; import io.onedev.server.util.facade.UserFacade;
import io.onedev.server.util.usage.Usage; import io.onedev.server.util.usage.Usage;
import org.apache.shiro.authc.credential.PasswordService;
import org.hibernate.ReplicationMode;
import org.hibernate.criterion.Restrictions;
import org.hibernate.query.Query;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.persistence.criteria.*;
import java.util.Collection;
import java.util.List;
@Singleton @Singleton
public class DefaultUserManager extends BaseEntityManager<User> implements UserManager { public class DefaultUserManager extends BaseEntityManager<User> implements UserManager {
@ -47,23 +57,18 @@ public class DefaultUserManager extends BaseEntityManager<User> implements UserM
private final IdManager idManager; private final IdManager idManager;
private final EmailAddressManager emailAddressManager; private final EmailAddressManager emailAddressManager;
private final GroupManager groupManager;
private final TransactionManager transactionManager; private final TransactionManager transactionManager;
private final ClusterManager clusterManager; private final ClusterManager clusterManager;
private final PasswordService passwordService;
private volatile UserCache cache; private volatile UserCache cache;
@Inject @Inject
public DefaultUserManager(Dao dao, ProjectManager projectManager, SettingManager settingManager, public DefaultUserManager(Dao dao, ProjectManager projectManager, SettingManager settingManager,
IssueFieldManager issueFieldManager, IdManager idManager, IssueFieldManager issueFieldManager, IdManager idManager,
GroupManager groupManager, EmailAddressManager emailAddressManager, EmailAddressManager emailAddressManager, TransactionManager transactionManager,
TransactionManager transactionManager, ClusterManager clusterManager, ClusterManager clusterManager) {
PasswordService passwordService) {
super(dao); super(dao);
this.projectManager = projectManager; this.projectManager = projectManager;
@ -72,9 +77,7 @@ public class DefaultUserManager extends BaseEntityManager<User> implements UserM
this.idManager = idManager; this.idManager = idManager;
this.emailAddressManager = emailAddressManager; this.emailAddressManager = emailAddressManager;
this.transactionManager = transactionManager; this.transactionManager = transactionManager;
this.groupManager = groupManager;
this.clusterManager = clusterManager; this.clusterManager = clusterManager;
this.passwordService = passwordService;
} }
@Transactional @Transactional

View File

@ -1,6 +1,24 @@
package io.onedev.server.entityreference; package io.onedev.server.entityreference;
import static java.lang.String.format;
import static java.util.regex.Pattern.CASE_INSENSITIVE;
import static java.util.regex.Pattern.compile;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.function.BiFunction;
import java.util.regex.Pattern;
import javax.annotation.Nullable;
import org.jsoup.nodes.Document;
import org.jsoup.select.NodeTraversor;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import io.onedev.commons.utils.StringUtils; import io.onedev.commons.utils.StringUtils;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.entitymanager.ProjectManager; import io.onedev.server.entitymanager.ProjectManager;
@ -9,18 +27,6 @@ import io.onedev.server.util.HtmlUtils;
import io.onedev.server.util.TextNodeVisitor; import io.onedev.server.util.TextNodeVisitor;
import io.onedev.server.validation.validator.ProjectKeyValidator; import io.onedev.server.validation.validator.ProjectKeyValidator;
import io.onedev.server.validation.validator.ProjectPathValidator; import io.onedev.server.validation.validator.ProjectPathValidator;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.TextNode;
import org.jsoup.select.NodeTraversor;
import javax.annotation.Nullable;
import java.util.*;
import java.util.function.BiFunction;
import java.util.regex.Pattern;
import static java.lang.String.format;
import static java.util.regex.Pattern.CASE_INSENSITIVE;
import static java.util.regex.Pattern.compile;
public class ReferenceUtils { public class ReferenceUtils {

View File

@ -1,16 +1,13 @@
package io.onedev.server.event.project.pack; package io.onedev.server.event.project.pack;
import java.util.Date;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.entitymanager.CodeCommentManager;
import io.onedev.server.entitymanager.PackManager; import io.onedev.server.entitymanager.PackManager;
import io.onedev.server.event.project.ProjectEvent; import io.onedev.server.event.project.ProjectEvent;
import io.onedev.server.model.CodeComment;
import io.onedev.server.model.Pack; import io.onedev.server.model.Pack;
import io.onedev.server.model.User;
import io.onedev.server.web.UrlManager; import io.onedev.server.web.UrlManager;
import java.util.Date;
public abstract class PackEvent extends ProjectEvent { public abstract class PackEvent extends ProjectEvent {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,10 +1,10 @@
package io.onedev.server.exception; package io.onedev.server.exception;
import io.onedev.commons.utils.ExplicitException; import java.util.Map;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import javax.annotation.Nullable; import io.onedev.commons.utils.ExplicitException;
import java.util.Map;
public class HttpResponseAwareException extends ExplicitException { public class HttpResponseAwareException extends ExplicitException {

View File

@ -1,11 +1,9 @@
package io.onedev.server.exception.handler; package io.onedev.server.exception.handler;
import io.onedev.server.exception.HttpResponse;
import io.onedev.server.exception.ServerNotReadyException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import static javax.ws.rs.core.MediaType.TEXT_PLAIN; import io.onedev.server.exception.HttpResponse;
import io.onedev.server.exception.ServerNotReadyException;
public class ServerNotReadyExceptionHandler extends AbstractExceptionHandler<ServerNotReadyException> { public class ServerNotReadyExceptionHandler extends AbstractExceptionHandler<ServerNotReadyException> {

View File

@ -1,17 +1,14 @@
package io.onedev.server.exception.handler; package io.onedev.server.exception.handler;
import io.onedev.server.exception.HttpResponse;
import io.onedev.server.exception.HttpResponseBody;
import org.apache.shiro.authz.UnauthenticatedException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.MultivaluedHashMap; import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.MultivaluedMap;
import java.util.HashMap;
import java.util.Map;
import static javax.ws.rs.core.MediaType.TEXT_PLAIN; import org.apache.shiro.authz.UnauthenticatedException;
import io.onedev.server.exception.HttpResponse;
import io.onedev.server.exception.HttpResponseBody;
public class UnauthenticatedExceptionHandler extends AbstractExceptionHandler<UnauthenticatedException> { public class UnauthenticatedExceptionHandler extends AbstractExceptionHandler<UnauthenticatedException> {

View File

@ -20,7 +20,6 @@ import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@SuppressWarnings("serial")
public abstract class BlobChange implements Serializable { public abstract class BlobChange implements Serializable {
protected final ChangeType type; protected final ChangeType type;

View File

@ -1,5 +1,44 @@
package io.onedev.server.git; package io.onedev.server.git;
import static io.onedev.server.model.Project.decodeFullRepoNameAsPath;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static org.apache.commons.lang3.StringUtils.strip;
import java.io.File;
import java.io.FilterInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.UnauthorizedException;
import org.eclipse.jgit.http.server.GitSmartHttpTools;
import org.eclipse.jgit.http.server.ServletUtils;
import org.eclipse.jgit.transport.PacketLineOut;
import org.glassfish.jersey.client.ClientProperties;
import io.onedev.commons.utils.ExplicitException; import io.onedev.commons.utils.ExplicitException;
import io.onedev.k8shelper.KubernetesHelper; import io.onedev.k8shelper.KubernetesHelper;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
@ -13,34 +52,10 @@ import io.onedev.server.model.Project;
import io.onedev.server.persistence.SessionManager; import io.onedev.server.persistence.SessionManager;
import io.onedev.server.security.CodePullAuthorizationSource; import io.onedev.server.security.CodePullAuthorizationSource;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.IOUtils;
import io.onedev.server.util.OutputStreamWrapper; import io.onedev.server.util.OutputStreamWrapper;
import io.onedev.server.util.concurrent.PrioritizedRunnable; import io.onedev.server.util.concurrent.PrioritizedRunnable;
import io.onedev.server.util.concurrent.WorkExecutor; import io.onedev.server.util.concurrent.WorkExecutor;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.UnauthorizedException;
import org.eclipse.jgit.http.server.GitSmartHttpTools;
import org.eclipse.jgit.http.server.ServletUtils;
import org.eclipse.jgit.transport.PacketLineOut;
import org.glassfish.jersey.client.ClientProperties;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.client.*;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.io.*;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import static io.onedev.server.model.Project.decodeFullRepoNameAsPath;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static org.apache.commons.lang3.StringUtils.strip;
@Singleton @Singleton
public class GitFilter implements Filter { public class GitFilter implements Filter {

View File

@ -1,8 +1,65 @@
package io.onedev.server.git; package io.onedev.server.git;
import static com.google.common.hash.Hashing.sha256;
import static io.onedev.k8shelper.KubernetesHelper.BEARER;
import static io.onedev.server.model.Project.decodeFullRepoNameAsPath;
import static io.onedev.server.util.CollectionUtils.newHashMap;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static javax.servlet.http.HttpServletResponse.SC_CONFLICT;
import static javax.servlet.http.HttpServletResponse.SC_CREATED;
import static javax.servlet.http.HttpServletResponse.SC_FORBIDDEN;
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
import static javax.servlet.http.HttpServletResponse.SC_NOT_ACCEPTABLE;
import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
import static javax.servlet.http.HttpServletResponse.SC_NOT_IMPLEMENTED;
import static javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED;
import static javax.ws.rs.core.HttpHeaders.AUTHORIZATION;
import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
import static org.apache.commons.lang3.StringUtils.substringBeforeLast;
import static org.apache.tika.mime.MimeTypes.OCTET_STREAM;
import static org.glassfish.jersey.client.ClientProperties.REQUEST_ENTITY_PROCESSING;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BooleanSupplier;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.Restrictions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.hash.HashingInputStream; import com.google.common.hash.HashingInputStream;
import io.onedev.commons.utils.ExplicitException; import io.onedev.commons.utils.ExplicitException;
import io.onedev.k8shelper.KubernetesHelper; import io.onedev.k8shelper.KubernetesHelper;
import io.onedev.server.cluster.ClusterManager; import io.onedev.server.cluster.ClusterManager;
@ -15,42 +72,8 @@ import io.onedev.server.persistence.SessionManager;
import io.onedev.server.persistence.dao.EntityCriteria; import io.onedev.server.persistence.dao.EntityCriteria;
import io.onedev.server.security.CodePullAuthorizationSource; import io.onedev.server.security.CodePullAuthorizationSource;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.IOUtils;
import io.onedev.server.util.facade.ProjectFacade; import io.onedev.server.util.facade.ProjectFacade;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.Restrictions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.client.*;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BooleanSupplier;
import static com.google.common.hash.Hashing.sha256;
import static io.onedev.k8shelper.KubernetesHelper.BEARER;
import static io.onedev.server.model.Project.decodeFullRepoNameAsPath;
import static io.onedev.server.util.CollectionUtils.newHashMap;
import static io.onedev.server.util.IOUtils.BUFFER_SIZE;
import static javax.servlet.http.HttpServletResponse.*;
import static javax.ws.rs.core.HttpHeaders.AUTHORIZATION;
import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
import static org.apache.commons.lang3.StringUtils.substringBeforeLast;
import static org.apache.tika.mime.MimeTypes.OCTET_STREAM;
import static org.glassfish.jersey.client.ClientProperties.REQUEST_ENTITY_PROCESSING;
@Singleton @Singleton
public class GitLfsFilter implements Filter { public class GitLfsFilter implements Filter {

View File

@ -12,7 +12,6 @@ import io.onedev.commons.utils.match.Matcher;
import io.onedev.commons.utils.match.PathMatcher; import io.onedev.commons.utils.match.PathMatcher;
import io.onedev.server.util.patternset.PatternSet; import io.onedev.server.util.patternset.PatternSet;
@SuppressWarnings("serial")
public class FileChange implements Serializable { public class FileChange implements Serializable {
private final String oldPath; private final String oldPath;

View File

@ -1,7 +1,11 @@
package io.onedev.server.git.command; package io.onedev.server.git.command;
import java.io.File; import java.io.File;
import java.util.*; import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -9,7 +13,6 @@ import org.eclipse.jgit.util.QuotedString;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.google.common.base.Preconditions;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;
import io.onedev.commons.utils.command.Commandline; import io.onedev.commons.utils.command.Commandline;
@ -17,8 +20,6 @@ import io.onedev.commons.utils.command.LineConsumer;
import io.onedev.server.git.CommandUtils; import io.onedev.server.git.CommandUtils;
import io.onedev.server.git.GitUtils; import io.onedev.server.git.GitUtils;
import javax.annotation.Nullable;
public abstract class LogCommand { public abstract class LogCommand {
private static final Logger logger = LoggerFactory.getLogger(LogCommand.class); private static final Logger logger = LoggerFactory.getLogger(LogCommand.class);

View File

@ -35,7 +35,6 @@ import java.util.List;
import static io.onedev.server.security.SecurityUtils.asPrincipals; import static io.onedev.server.security.SecurityUtils.asPrincipals;
import static io.onedev.server.security.SecurityUtils.asSubject; import static io.onedev.server.security.SecurityUtils.asSubject;
@SuppressWarnings("serial")
@Singleton @Singleton
public class GitPostReceiveCallback extends HttpServlet { public class GitPostReceiveCallback extends HttpServlet {

View File

@ -30,7 +30,6 @@ import java.util.*;
import static io.onedev.server.security.SecurityUtils.*; import static io.onedev.server.security.SecurityUtils.*;
@SuppressWarnings("serial")
@Singleton @Singleton
public class GitPreReceiveCallback extends HttpServlet { public class GitPreReceiveCallback extends HttpServlet {

View File

@ -2,7 +2,6 @@ package io.onedev.server.git.service;
import java.io.Serializable; import java.io.Serializable;
@SuppressWarnings("serial")
public class AheadBehind implements Serializable { public class AheadBehind implements Serializable {
private final int ahead; private final int ahead;

View File

@ -1,12 +1,12 @@
package io.onedev.server.git.service; package io.onedev.server.git.service;
import io.onedev.server.git.GitUtils; import static io.onedev.server.git.GitUtils.abbreviateSHA;
import org.eclipse.jgit.lib.ObjectId;
import javax.annotation.Nullable;
import java.io.Serializable; import java.io.Serializable;
import static io.onedev.server.git.GitUtils.abbreviateSHA; import javax.annotation.Nullable;
import org.eclipse.jgit.lib.ObjectId;
public class CommitMessageError implements Serializable { public class CommitMessageError implements Serializable {

View File

@ -1,10 +1,78 @@
package io.onedev.server.git.service; package io.onedev.server.git.service;
import static io.onedev.server.git.command.LogCommand.Field.BODY;
import static io.onedev.server.git.command.LogCommand.Field.PARENTS;
import static io.onedev.server.git.command.LogCommand.Field.SUBJECT;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReadWriteLock;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.apache.commons.lang3.SerializationUtils;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.eclipse.jgit.api.CreateBranchCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.jgit.errors.MissingObjectException;
import org.eclipse.jgit.errors.RevisionSyntaxException;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.CommitBuilder;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.lib.ObjectDatabase;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.ObjectInserter;
import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Ref;
import org.eclipse.jgit.lib.RefUpdate;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.TagBuilder;
import org.eclipse.jgit.lib.TreeFormatter;
import org.eclipse.jgit.revwalk.LastCommitsOfChildren;
import org.eclipse.jgit.revwalk.LastCommitsOfChildren.Value;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.revwalk.RevWalkUtils;
import org.eclipse.jgit.revwalk.filter.RevFilter;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import io.onedev.commons.loader.ManagedSerializedForm; import io.onedev.commons.loader.ManagedSerializedForm;
import io.onedev.commons.utils.*; import io.onedev.commons.utils.ExceptionUtils;
import io.onedev.commons.utils.ExplicitException;
import io.onedev.commons.utils.FileUtils;
import io.onedev.commons.utils.LinearRange;
import io.onedev.commons.utils.LockUtils;
import io.onedev.commons.utils.StringUtils;
import io.onedev.commons.utils.command.Commandline; import io.onedev.commons.utils.command.Commandline;
import io.onedev.commons.utils.command.LineConsumer; import io.onedev.commons.utils.command.LineConsumer;
import io.onedev.server.cluster.ClusterManager; import io.onedev.server.cluster.ClusterManager;
@ -14,43 +82,32 @@ import io.onedev.server.entitymanager.SettingManager;
import io.onedev.server.event.ListenerRegistry; import io.onedev.server.event.ListenerRegistry;
import io.onedev.server.event.project.DefaultBranchChanged; import io.onedev.server.event.project.DefaultBranchChanged;
import io.onedev.server.event.project.RefUpdated; import io.onedev.server.event.project.RefUpdated;
import io.onedev.server.git.*; import io.onedev.server.git.BlameBlock;
import io.onedev.server.git.command.*; import io.onedev.server.git.Blob;
import io.onedev.server.git.BlobContent;
import io.onedev.server.git.BlobEdits;
import io.onedev.server.git.BlobIdent;
import io.onedev.server.git.BlobIdentFilter;
import io.onedev.server.git.CommandUtils;
import io.onedev.server.git.GitTask;
import io.onedev.server.git.GitUtils;
import io.onedev.server.git.Submodule;
import io.onedev.server.git.command.BlameCommand;
import io.onedev.server.git.command.GetRawCommitCommand;
import io.onedev.server.git.command.GetRawTagCommand;
import io.onedev.server.git.command.ListChangedFilesCommand;
import io.onedev.server.git.command.LogCommand;
import io.onedev.server.git.command.LogCommit;
import io.onedev.server.git.command.RevListCommand;
import io.onedev.server.git.command.RevListOptions;
import io.onedev.server.git.exception.NotFileException; import io.onedev.server.git.exception.NotFileException;
import io.onedev.server.git.exception.NotTreeException; import io.onedev.server.git.exception.NotTreeException;
import io.onedev.server.git.exception.ObjectAlreadyExistsException; import io.onedev.server.git.exception.ObjectAlreadyExistsException;
import io.onedev.server.git.exception.ObjectNotFoundException; import io.onedev.server.git.exception.ObjectNotFoundException;
import io.onedev.server.model.Project; import io.onedev.server.model.Project;
import io.onedev.server.model.User;
import io.onedev.server.model.support.code.BranchProtection; import io.onedev.server.model.support.code.BranchProtection;
import io.onedev.server.persistence.SessionManager; import io.onedev.server.persistence.SessionManager;
import io.onedev.server.persistence.annotation.Sessional; import io.onedev.server.persistence.annotation.Sessional;
import org.apache.commons.lang3.SerializationUtils;
import org.bouncycastle.openpgp.PGPSecretKeyRing;
import org.eclipse.jgit.api.CreateBranchCommand;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.jgit.errors.MissingObjectException;
import org.eclipse.jgit.errors.RevisionSyntaxException;
import org.eclipse.jgit.lib.*;
import org.eclipse.jgit.revwalk.*;
import org.eclipse.jgit.revwalk.LastCommitsOfChildren.Value;
import org.eclipse.jgit.revwalk.filter.RevFilter;
import org.eclipse.jgit.treewalk.TreeWalk;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReadWriteLock;
import static io.onedev.server.git.command.LogCommand.Field.*;
@Singleton @Singleton
public class DefaultGitService implements GitService, Serializable { public class DefaultGitService implements GitService, Serializable {
@ -1166,6 +1223,7 @@ public class DefaultGitService implements GitService, Serializable {
}); });
} }
@SuppressWarnings("unchecked")
@Override @Override
public LastCommitsOfChildren getLastCommitsOfChildren(Project project, ObjectId revId, String path) { public LastCommitsOfChildren getLastCommitsOfChildren(Project project, ObjectId revId, String path) {
Long projectId = project.getId(); Long projectId = project.getId();

View File

@ -1,13 +1,12 @@
package io.onedev.server.imports; package io.onedev.server.imports;
import io.onedev.commons.utils.TaskLogger;
import io.onedev.server.model.Project;
import io.onedev.server.web.component.taskbutton.TaskResult;
import io.onedev.server.web.util.ImportStep;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import io.onedev.commons.utils.TaskLogger;
import io.onedev.server.web.component.taskbutton.TaskResult;
import io.onedev.server.web.util.ImportStep;
public interface IssueImporter extends Serializable { public interface IssueImporter extends Serializable {
String getName(); String getName();

View File

@ -1,9 +1,17 @@
package io.onedev.server.jetty; package io.onedev.server.jetty;
import com.google.inject.servlet.GuiceFilter; import java.util.ArrayList;
import io.onedev.commons.bootstrap.Bootstrap; import java.util.Collections;
import io.onedev.commons.utils.ExceptionUtils; import java.util.EnumSet;
import io.onedev.server.cluster.ClusterManager; import java.util.List;
import java.util.Set;
import javax.inject.Inject;
import javax.inject.Provider;
import javax.inject.Singleton;
import javax.servlet.DispatcherType;
import javax.servlet.http.HttpServletResponse;
import org.apache.tika.mime.MimeTypes; import org.apache.tika.mime.MimeTypes;
import org.eclipse.jetty.http.HttpCookie.SameSite; import org.eclipse.jetty.http.HttpCookie.SameSite;
import org.eclipse.jetty.http.HttpMethod; import org.eclipse.jetty.http.HttpMethod;
@ -13,12 +21,10 @@ import org.eclipse.jetty.server.session.SessionDataStoreFactory;
import org.eclipse.jetty.servlet.ErrorPageErrorHandler; import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletContextHandler;
import javax.inject.Inject; import com.google.inject.servlet.GuiceFilter;
import javax.inject.Provider;
import javax.inject.Singleton; import io.onedev.commons.bootstrap.Bootstrap;
import javax.servlet.DispatcherType; import io.onedev.commons.utils.ExceptionUtils;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@Singleton @Singleton
public class DefaultJettyLauncher implements JettyLauncher, Provider<ServletContextHandler> { public class DefaultJettyLauncher implements JettyLauncher, Provider<ServletContextHandler> {

View File

@ -18,18 +18,17 @@
package io.onedev.server.jetty; package io.onedev.server.jetty;
import io.onedev.server.cluster.ClusterManager;
import org.eclipse.jetty.server.session.AbstractSessionDataStoreFactory;
import org.eclipse.jetty.server.session.SessionDataStore;
import org.eclipse.jetty.server.session.SessionDataStoreFactory;
import org.eclipse.jetty.server.session.SessionHandler;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import org.eclipse.jetty.server.session.AbstractSessionDataStoreFactory;
import org.eclipse.jetty.server.session.SessionDataStore;
import org.eclipse.jetty.server.session.SessionHandler;
import io.onedev.server.cluster.ClusterManager;
@Singleton @Singleton
public class DefaultSessionDataStoreFactory extends AbstractSessionDataStoreFactory public class DefaultSessionDataStoreFactory extends AbstractSessionDataStoreFactory {
implements SessionDataStoreFactory {
private final ClusterManager clusterManager; private final ClusterManager clusterManager;

View File

@ -1,12 +1,17 @@
package io.onedev.server.job; package io.onedev.server.job;
import java.util.Stack;
import org.apache.shiro.subject.Subject;
import org.eclipse.jgit.lib.ObjectId;
import org.jetbrains.annotations.Nullable;
import io.onedev.commons.utils.ExplicitException; import io.onedev.commons.utils.ExplicitException;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.buildspecmodel.inputspec.SecretInput; import io.onedev.server.buildspecmodel.inputspec.SecretInput;
import io.onedev.server.entitymanager.AccessTokenManager; import io.onedev.server.entitymanager.AccessTokenManager;
import io.onedev.server.job.match.JobMatch; import io.onedev.server.job.match.JobMatch;
import io.onedev.server.job.match.JobMatchContext; import io.onedev.server.job.match.JobMatchContext;
import io.onedev.server.job.match.OnBranchCriteria;
import io.onedev.server.model.Project; import io.onedev.server.model.Project;
import io.onedev.server.model.PullRequest; import io.onedev.server.model.PullRequest;
import io.onedev.server.model.User; import io.onedev.server.model.User;
@ -15,11 +20,6 @@ import io.onedev.server.model.support.build.JobSecret;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.ComponentContext; import io.onedev.server.util.ComponentContext;
import io.onedev.server.web.util.WicketUtils; import io.onedev.server.web.util.WicketUtils;
import org.apache.shiro.subject.Subject;
import org.eclipse.jgit.lib.ObjectId;
import org.jetbrains.annotations.Nullable;
import java.util.Stack;
public class JobAuthorizationContext { public class JobAuthorizationContext {

View File

@ -1,14 +1,14 @@
package io.onedev.server.mail; package io.onedev.server.mail;
import io.onedev.server.model.Issue; import java.util.Collection;
import io.onedev.server.model.PullRequest; import java.util.concurrent.Future;
import java.util.function.Consumer;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.mail.Message; import javax.mail.Message;
import java.util.Collection;
import java.util.List; import io.onedev.server.model.Issue;
import java.util.concurrent.Future; import io.onedev.server.model.PullRequest;
import java.util.function.Consumer;
public interface MailManager { public interface MailManager {

View File

@ -1,26 +1,46 @@
package io.onedev.server.model; package io.onedev.server.model;
import static io.onedev.server.model.Agent.PROP_IP_ADDRESS;
import static io.onedev.server.model.Agent.PROP_NAME;
import static io.onedev.server.model.Agent.PROP_OS_ARCH;
import static io.onedev.server.model.Agent.PROP_OS_NAME;
import static io.onedev.server.model.Agent.PROP_OS_VERSION;
import static io.onedev.server.model.Agent.PROP_PAUSED;
import static io.onedev.server.model.AgentLastUsedDate.PROP_VALUE;
import static io.onedev.server.search.entity.EntitySort.Direction.DESCENDING;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import io.onedev.agent.AgentData; import io.onedev.agent.AgentData;
import io.onedev.k8shelper.OsInfo; import io.onedev.k8shelper.OsInfo;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.cluster.ClusterManager; import io.onedev.server.cluster.ClusterManager;
import io.onedev.server.entitymanager.AgentManager; import io.onedev.server.entitymanager.AgentManager;
import io.onedev.server.search.entity.EntitySort;
import io.onedev.server.search.entity.SortField; import io.onedev.server.search.entity.SortField;
import io.onedev.server.util.CollectionUtils;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.util.*;
import static io.onedev.server.model.Agent.*;
import static io.onedev.server.model.AgentLastUsedDate.PROP_VALUE;
import static io.onedev.server.search.entity.EntitySort.Direction.DESCENDING;
@Entity @Entity
@Table(indexes={ @Table(indexes={

View File

@ -1,9 +1,70 @@
package io.onedev.server.model; package io.onedev.server.model;
import static io.onedev.server.model.AbstractEntity.PROP_NUMBER;
import static io.onedev.server.model.Build.PROP_COMMIT_HASH;
import static io.onedev.server.model.Build.PROP_FINISH_DATE;
import static io.onedev.server.model.Build.PROP_FINISH_DAY;
import static io.onedev.server.model.Build.PROP_FINISH_MONTH;
import static io.onedev.server.model.Build.PROP_FINISH_WEEK;
import static io.onedev.server.model.Build.PROP_JOB_NAME;
import static io.onedev.server.model.Build.PROP_PENDING_DATE;
import static io.onedev.server.model.Build.PROP_REF_NAME;
import static io.onedev.server.model.Build.PROP_RUNNING_DATE;
import static io.onedev.server.model.Build.PROP_STATUS;
import static io.onedev.server.model.Build.PROP_SUBMIT_DATE;
import static io.onedev.server.model.Build.PROP_VERSION;
import static io.onedev.server.model.Project.BUILDS_DIR;
import static io.onedev.server.model.support.TimeGroups.PROP_DAY;
import static io.onedev.server.model.support.TimeGroups.PROP_MONTH;
import static io.onedev.server.model.support.TimeGroups.PROP_WEEK;
import static io.onedev.server.search.entity.EntitySort.Direction.DESCENDING;
import java.io.File;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.Stack;
import java.util.UUID;
import javax.annotation.Nullable;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.revwalk.RevCommit;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.base.Preconditions; import com.google.common.base.Preconditions;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import io.onedev.commons.utils.ExplicitException; import io.onedev.commons.utils.ExplicitException;
import io.onedev.commons.utils.WordUtils; import io.onedev.commons.utils.WordUtils;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
@ -28,10 +89,8 @@ import io.onedev.server.model.support.LabelSupport;
import io.onedev.server.model.support.ProjectBelonging; import io.onedev.server.model.support.ProjectBelonging;
import io.onedev.server.model.support.TimeGroups; import io.onedev.server.model.support.TimeGroups;
import io.onedev.server.model.support.build.JobSecret; import io.onedev.server.model.support.build.JobSecret;
import io.onedev.server.search.entity.EntitySort;
import io.onedev.server.search.entity.SortField; import io.onedev.server.search.entity.SortField;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.CollectionUtils;
import io.onedev.server.util.ComponentContext; import io.onedev.server.util.ComponentContext;
import io.onedev.server.util.FilenameUtils; import io.onedev.server.util.FilenameUtils;
import io.onedev.server.util.Input; import io.onedev.server.util.Input;
@ -43,26 +102,6 @@ import io.onedev.server.web.editable.BeanDescriptor;
import io.onedev.server.web.editable.PropertyDescriptor; import io.onedev.server.web.editable.PropertyDescriptor;
import io.onedev.server.web.util.BuildAware; import io.onedev.server.web.util.BuildAware;
import io.onedev.server.web.util.WicketUtils; import io.onedev.server.web.util.WicketUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.revwalk.RevCommit;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import javax.annotation.Nullable;
import javax.persistence.*;
import java.io.File;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.nio.file.Paths;
import java.util.*;
import static io.onedev.server.model.AbstractEntity.PROP_NUMBER;
import static io.onedev.server.model.Build.*;
import static io.onedev.server.model.Project.BUILDS_DIR;
import static io.onedev.server.model.support.TimeGroups.*;
import static io.onedev.server.search.entity.EntitySort.Direction.DESCENDING;
@Entity @Entity
@Table( @Table(

View File

@ -1,7 +1,36 @@
package io.onedev.server.model; package io.onedev.server.model;
import static io.onedev.server.model.CodeComment.PROP_CREATE_DATE;
import static io.onedev.server.search.entity.EntitySort.Direction.DESCENDING;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import javax.annotation.Nullable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jgit.lib.ObjectId;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.attachment.AttachmentStorageSupport; import io.onedev.server.attachment.AttachmentStorageSupport;
import io.onedev.server.entitymanager.UserManager; import io.onedev.server.entitymanager.UserManager;
@ -10,20 +39,9 @@ import io.onedev.server.model.support.CompareContext;
import io.onedev.server.model.support.LastActivity; import io.onedev.server.model.support.LastActivity;
import io.onedev.server.model.support.Mark; import io.onedev.server.model.support.Mark;
import io.onedev.server.model.support.ProjectBelonging; import io.onedev.server.model.support.ProjectBelonging;
import io.onedev.server.search.entity.EntitySort;
import io.onedev.server.search.entity.SortField; import io.onedev.server.search.entity.SortField;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import io.onedev.server.util.CollectionUtils;
import io.onedev.server.xodus.VisitInfoManager; import io.onedev.server.xodus.VisitInfoManager;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.jgit.lib.ObjectId;
import javax.annotation.Nullable;
import javax.persistence.*;
import java.util.*;
import static io.onedev.server.model.CodeComment.PROP_CREATE_DATE;
import static io.onedev.server.search.entity.EntitySort.Direction.DESCENDING;
@Entity @Entity
@Table(indexes={ @Table(indexes={

View File

@ -1065,6 +1065,7 @@ public class Project extends AbstractEntity implements LabelSupport<ProjectLabel
this.timeTracking = timeTracking; this.timeTracking = timeTracking;
} }
@SuppressWarnings("unused")
private static String getTimeTrackingDescription() { private static String getTimeTrackingDescription() {
if (!WicketUtils.isSubscriptionActive()) { if (!WicketUtils.isSubscriptionActive()) {
return "<b class='text-warning'>NOTE: </b><a href='https://docs.onedev.io/tutorials/issue/time-tracking' target='_blank'>Time tracking</a> is an enterprise feature. " + return "<b class='text-warning'>NOTE: </b><a href='https://docs.onedev.io/tutorials/issue/time-tracking' target='_blank'>Time tracking</a> is an enterprise feature. " +
@ -1075,6 +1076,7 @@ public class Project extends AbstractEntity implements LabelSupport<ProjectLabel
} }
} }
@SuppressWarnings("unused")
private static boolean isIssueManagementEnabled() { private static boolean isIssueManagementEnabled() {
return (boolean) EditContext.get().getInputValue(PROP_ISSUE_MANAGEMENT); return (boolean) EditContext.get().getInputValue(PROP_ISSUE_MANAGEMENT);
} }
@ -1084,6 +1086,7 @@ public class Project extends AbstractEntity implements LabelSupport<ProjectLabel
return packManagement; return packManagement;
} }
@SuppressWarnings("unused")
private static String getPackManagementDescription() { private static String getPackManagementDescription() {
return "Enable <a href='https://docs.onedev.io/tutorials/package/working-with-packages' target='_blank'>package management</a> for this project"; return "Enable <a href='https://docs.onedev.io/tutorials/package/working-with-packages' target='_blank'>package management</a> for this project";
} }

View File

@ -380,6 +380,7 @@ public class Role extends AbstractEntity implements BasePermission {
return permissions; return permissions;
} }
@SuppressWarnings("unused")
private static boolean isSubscriptionActive() { private static boolean isSubscriptionActive() {
return WicketUtils.isSubscriptionActive(); return WicketUtils.isSubscriptionActive();
} }

View File

@ -1,5 +1,7 @@
package io.onedev.server.model.support.administration; package io.onedev.server.model.support.administration;
import static io.onedev.server.search.entity.agent.AgentQueryLexer.Is;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -8,12 +10,9 @@ import javax.annotation.Nullable;
import io.onedev.server.model.support.NamedAgentQuery; import io.onedev.server.model.support.NamedAgentQuery;
import io.onedev.server.search.entity.agent.AgentQuery; import io.onedev.server.search.entity.agent.AgentQuery;
import io.onedev.server.search.entity.agent.AgentQueryLexer;
import io.onedev.server.search.entity.agent.NotUsedSinceCriteria; import io.onedev.server.search.entity.agent.NotUsedSinceCriteria;
import io.onedev.server.search.entity.agent.OsCriteria; import io.onedev.server.search.entity.agent.OsCriteria;
import static io.onedev.server.search.entity.agent.AgentQueryLexer.Is;
public class AgentSetting implements Serializable { public class AgentSetting implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -6,7 +6,6 @@ import java.util.List;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import io.onedev.server.model.support.issue.NamedIssueQuery;
import io.onedev.server.model.support.pullrequest.NamedPullRequestQuery; import io.onedev.server.model.support.pullrequest.NamedPullRequestQuery;
public class GlobalPullRequestSetting implements Serializable { public class GlobalPullRequestSetting implements Serializable {

View File

@ -67,6 +67,7 @@ public class SecuritySetting implements Serializable {
this.allowedSelfRegisterEmailDomain = allowedSelfRegisterEmailDomain; this.allowedSelfRegisterEmailDomain = allowedSelfRegisterEmailDomain;
} }
@SuppressWarnings("unused")
private static boolean isEnableSelfRegisterEnabled() { private static boolean isEnableSelfRegisterEnabled() {
return (boolean) EditContext.get().getInputValue("enableSelfRegister"); return (boolean) EditContext.get().getInputValue("enableSelfRegister");
} }

View File

@ -149,6 +149,7 @@ public class SystemSetting implements Serializable, Validatable {
this.disableDashboard = disableDashboard; this.disableDashboard = disableDashboard;
} }
@SuppressWarnings("unused")
private static boolean isDisableDashboardEnabled() { private static boolean isDisableDashboardEnabled() {
return WicketUtils.isSubscriptionActive(); return WicketUtils.isSubscriptionActive();
} }
@ -173,6 +174,7 @@ public class SystemSetting implements Serializable, Validatable {
this.avatarServiceUrl = avatarServiceUrl; this.avatarServiceUrl = avatarServiceUrl;
} }
@SuppressWarnings("unused")
private static boolean isUseAvatarServiceEnabled() { private static boolean isUseAvatarServiceEnabled() {
return (boolean) EditContext.get().getInputValue(PROP_USE_AVATAR_SERVICE); return (boolean) EditContext.get().getInputValue(PROP_USE_AVATAR_SERVICE);
} }

View File

@ -38,6 +38,7 @@ public class RegistryLogin implements Serializable {
this.registryUrl = registryUrl; this.registryUrl = registryUrl;
} }
@SuppressWarnings("unused")
private static List<InputSuggestion> suggestRegistryUrlVariables(String matchWith) { private static List<InputSuggestion> suggestRegistryUrlVariables(String matchWith) {
return SuggestionUtils.suggest(Lists.newArrayList(JobVariable.SERVER_URL.name().toLowerCase()), matchWith); return SuggestionUtils.suggest(Lists.newArrayList(JobVariable.SERVER_URL.name().toLowerCase()), matchWith);
} }
@ -53,6 +54,7 @@ public class RegistryLogin implements Serializable {
this.userName = userName; this.userName = userName;
} }
@SuppressWarnings("unused")
private static List<InputSuggestion> suggestUserNameVariables(String matchWith) { private static List<InputSuggestion> suggestUserNameVariables(String matchWith) {
return SuggestionUtils.suggest(Lists.newArrayList(JobVariable.JOB_TOKEN.name().toLowerCase()), matchWith); return SuggestionUtils.suggest(Lists.newArrayList(JobVariable.JOB_TOKEN.name().toLowerCase()), matchWith);
} }

View File

@ -1,13 +1,13 @@
package io.onedev.server.model.support.administration.mailservice; package io.onedev.server.model.support.administration.mailservice;
import java.io.Serializable;
import java.util.Collection;
import javax.annotation.Nullable;
import io.onedev.server.annotation.Editable; import io.onedev.server.annotation.Editable;
import io.onedev.server.mail.InboxMonitor; import io.onedev.server.mail.InboxMonitor;
import javax.annotation.Nullable;
import java.io.Serializable;
import java.util.Collection;
import java.util.concurrent.Future;
@Editable @Editable
public interface MailService extends Serializable { public interface MailService extends Serializable {

View File

@ -1,11 +1,12 @@
package io.onedev.server.model.support.administration.sso; package io.onedev.server.model.support.administration.sso;
import io.onedev.server.model.User; import java.util.Collection;
import io.onedev.server.model.support.administration.authenticator.Authenticated;
import org.apache.shiro.authc.AuthenticationToken;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collection;
import org.apache.shiro.authc.AuthenticationToken;
import io.onedev.server.model.support.administration.authenticator.Authenticated;
public class SsoAuthenticated extends Authenticated implements AuthenticationToken { public class SsoAuthenticated extends Authenticated implements AuthenticationToken {

View File

@ -1,20 +1,20 @@
package io.onedev.server.model.support.build; package io.onedev.server.model.support.build;
import io.onedev.commons.codeassist.InputCompletion;
import io.onedev.commons.codeassist.InputStatus;
import io.onedev.server.annotation.RegEx;
import io.onedev.server.buildspec.BuildSpec;
import io.onedev.server.buildspec.NamedElement;
import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.SuggestionProvider;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.validation.constraints.NotEmpty;
import io.onedev.commons.codeassist.InputCompletion;
import io.onedev.commons.codeassist.InputStatus;
import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.RegEx;
import io.onedev.server.annotation.SuggestionProvider;
import io.onedev.server.buildspec.BuildSpec;
import io.onedev.server.buildspec.NamedElement;
@Editable @Editable
public class JobProperty implements NamedElement, Serializable { public class JobProperty implements NamedElement {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,6 +1,17 @@
package io.onedev.server.model.support.channelnotification; package io.onedev.server.model.support.channelnotification;
import io.onedev.server.annotation.*; import java.io.Serializable;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import io.onedev.server.annotation.BuildQuery;
import io.onedev.server.annotation.CodeCommentQuery;
import io.onedev.server.annotation.CommitQuery;
import io.onedev.server.annotation.Editable;
import io.onedev.server.annotation.IssueQuery;
import io.onedev.server.annotation.PullRequestQuery;
import io.onedev.server.annotation.ShowCondition;
import io.onedev.server.event.project.ProjectEvent; import io.onedev.server.event.project.ProjectEvent;
import io.onedev.server.event.project.RefUpdated; import io.onedev.server.event.project.RefUpdated;
import io.onedev.server.event.project.build.BuildEvent; import io.onedev.server.event.project.build.BuildEvent;
@ -9,11 +20,6 @@ import io.onedev.server.event.project.issue.IssueEvent;
import io.onedev.server.event.project.pullrequest.PullRequestEvent; import io.onedev.server.event.project.pullrequest.PullRequestEvent;
import io.onedev.server.search.entity.issue.IssueQueryParseOption; import io.onedev.server.search.entity.issue.IssueQueryParseOption;
import io.onedev.server.util.EditContext; import io.onedev.server.util.EditContext;
import org.hibernate.validator.constraints.URL;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
@Editable @Editable
public class ChannelNotification implements Serializable { public class ChannelNotification implements Serializable {

View File

@ -166,6 +166,7 @@ public class BranchProtection implements Serializable {
this.enforceConventionalCommits = enforceConventionalCommits; this.enforceConventionalCommits = enforceConventionalCommits;
} }
@SuppressWarnings("unused")
private static boolean isEnforceConventionalCommitsEnabled() { private static boolean isEnforceConventionalCommitsEnabled() {
return (boolean) EditContext.get().getInputValue("enforceConventionalCommits"); return (boolean) EditContext.get().getInputValue("enforceConventionalCommits");
} }
@ -202,6 +203,7 @@ public class BranchProtection implements Serializable {
this.checkCommitMessageFooter = checkCommitMessageFooter; this.checkCommitMessageFooter = checkCommitMessageFooter;
} }
@SuppressWarnings("unused")
private static boolean isCheckCommitMessageFooterEnabled() { private static boolean isCheckCommitMessageFooterEnabled() {
return (boolean) EditContext.get().getInputValue("checkCommitMessageFooter"); return (boolean) EditContext.get().getInputValue("checkCommitMessageFooter");
} }

View File

@ -1,17 +1,5 @@
package io.onedev.server.model.support.issue; package io.onedev.server.model.support.issue;
import io.onedev.server.OneDev;
import io.onedev.server.annotation.ChoiceProvider;
import io.onedev.server.annotation.Editable;
import io.onedev.server.entitymanager.LinkSpecManager;
import io.onedev.server.entitymanager.SettingManager;
import io.onedev.server.model.support.administration.GlobalIssueSetting;
import io.onedev.server.util.usage.Usage;
import org.apache.commons.lang3.StringUtils;
import javax.validation.ValidationException;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
@ -19,6 +7,18 @@ import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.validation.ValidationException;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import org.apache.commons.lang3.StringUtils;
import io.onedev.server.OneDev;
import io.onedev.server.annotation.ChoiceProvider;
import io.onedev.server.annotation.Editable;
import io.onedev.server.entitymanager.LinkSpecManager;
import io.onedev.server.util.usage.Usage;
@Editable @Editable
public class TimeTrackingSetting implements Serializable { public class TimeTrackingSetting implements Serializable {
@ -69,6 +69,7 @@ public class TimeTrackingSetting implements Serializable {
this.aggregationLink = aggregationLink; this.aggregationLink = aggregationLink;
} }
@SuppressWarnings("unused")
private static List<String> getLinkChoices() { private static List<String> getLinkChoices() {
var choices = new LinkedHashSet<String>(); var choices = new LinkedHashSet<String>();
for (var linkSpec: OneDev.getInstance(LinkSpecManager.class).query()) { for (var linkSpec: OneDev.getInstance(LinkSpecManager.class).query()) {
@ -80,10 +81,6 @@ public class TimeTrackingSetting implements Serializable {
return new ArrayList<>(choices); return new ArrayList<>(choices);
} }
private static GlobalIssueSetting getIssueSetting() {
return OneDev.getInstance(SettingManager.class).getIssueSetting();
}
public Usage onDeleteLink(String linkName) { public Usage onDeleteLink(String linkName) {
Usage usage = new Usage(); Usage usage = new Usage();
if (linkName.equals(aggregationLink)) if (linkName.equals(aggregationLink))

View File

@ -75,6 +75,7 @@ public class TimesheetSetting implements Serializable {
this.groupBy = groupBy; this.groupBy = groupBy;
} }
@SuppressWarnings("unused")
private static List<String> getGroupByChoices() { private static List<String> getGroupByChoices() {
var choices = Lists.newArrayList(NAME_PROJECT); var choices = Lists.newArrayList(NAME_PROJECT);
for (var fieldSpec: OneDev.getInstance(SettingManager.class).getIssueSetting().getFieldSpecs()) { for (var fieldSpec: OneDev.getInstance(SettingManager.class).getIssueSetting().getFieldSpecs()) {

View File

@ -65,6 +65,7 @@ public class GroupChoiceField extends FieldSpec {
this.editEstimatedTime = editEstimatedTime; this.editEstimatedTime = editEstimatedTime;
} }
@SuppressWarnings("unused")
private static boolean isSubscriptionActive() { private static boolean isSubscriptionActive() {
return OneDev.getInstance(SubscriptionManager.class).isSubscriptionActive(); return OneDev.getInstance(SubscriptionManager.class).isSubscriptionActive();
} }

View File

@ -74,6 +74,7 @@ public class UserChoiceField extends FieldSpec {
return EditContext.get().getInputValue("allowMultiple").equals(true); return EditContext.get().getInputValue("allowMultiple").equals(true);
} }
@SuppressWarnings("unused")
private static boolean isSubscriptionActive() { private static boolean isSubscriptionActive() {
return OneDev.getInstance(SubscriptionManager.class).isSubscriptionActive(); return OneDev.getInstance(SubscriptionManager.class).isSubscriptionActive();
} }

View File

@ -1,17 +1,17 @@
package io.onedev.server.model.support.issue.transitionspec; package io.onedev.server.model.support.issue.transitionspec;
import com.google.common.collect.Lists;
import io.onedev.commons.utils.StringUtils;
import io.onedev.server.annotation.ChoiceProvider;
import io.onedev.server.annotation.Editable;
import io.onedev.server.web.component.issue.workflowreconcile.ReconcileUtils;
import io.onedev.server.web.component.issue.workflowreconcile.UndefinedStateResolution;
import javax.validation.constraints.NotEmpty;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.validation.constraints.NotEmpty;
import com.google.common.collect.Lists;
import io.onedev.server.annotation.ChoiceProvider;
import io.onedev.server.annotation.Editable;
import io.onedev.server.web.component.issue.workflowreconcile.UndefinedStateResolution;
@Editable @Editable
public abstract class AutoSpec extends TransitionSpec { public abstract class AutoSpec extends TransitionSpec {

View File

@ -1,5 +1,12 @@
package io.onedev.server.model.support.issue.transitionspec; package io.onedev.server.model.support.issue.transitionspec;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import io.onedev.commons.utils.StringUtils; import io.onedev.commons.utils.StringUtils;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.annotation.ChoiceProvider; import io.onedev.server.annotation.ChoiceProvider;
@ -10,12 +17,12 @@ import io.onedev.server.model.support.issue.StateSpec;
import io.onedev.server.model.support.issue.field.spec.FieldSpec; import io.onedev.server.model.support.issue.field.spec.FieldSpec;
import io.onedev.server.search.entity.issue.IssueQueryUpdater; import io.onedev.server.search.entity.issue.IssueQueryUpdater;
import io.onedev.server.util.usage.Usage; import io.onedev.server.util.usage.Usage;
import io.onedev.server.web.component.issue.workflowreconcile.*; import io.onedev.server.web.component.issue.workflowreconcile.ReconcileUtils;
import io.onedev.server.web.component.issue.workflowreconcile.UndefinedFieldResolution;
import io.onedev.server.web.component.issue.workflowreconcile.UndefinedFieldResolution.FixType; import io.onedev.server.web.component.issue.workflowreconcile.UndefinedFieldResolution.FixType;
import io.onedev.server.web.component.issue.workflowreconcile.UndefinedFieldValue;
import javax.validation.constraints.Size; import io.onedev.server.web.component.issue.workflowreconcile.UndefinedFieldValuesResolution;
import java.io.Serializable; import io.onedev.server.web.component.issue.workflowreconcile.UndefinedStateResolution;
import java.util.*;
@Editable @Editable
public abstract class TransitionSpec implements Serializable { public abstract class TransitionSpec implements Serializable {
@ -60,7 +67,6 @@ public abstract class TransitionSpec implements Serializable {
this.removeFields = removeFields; this.removeFields = removeFields;
} }
@SuppressWarnings("unused")
protected static List<String> getFieldChoices() { protected static List<String> getFieldChoices() {
List<String> fields = new ArrayList<>(); List<String> fields = new ArrayList<>();
for (FieldSpec field: getIssueSetting().getFieldSpecs()) for (FieldSpec field: getIssueSetting().getFieldSpecs())
@ -95,7 +101,6 @@ public abstract class TransitionSpec implements Serializable {
return getQueryUpdater().onDeleteProject(projectPath); return getQueryUpdater().onDeleteProject(projectPath);
} }
@SuppressWarnings("unused")
protected static List<String> getStateChoices() { protected static List<String> getStateChoices() {
List<String> stateNames = new ArrayList<>(); List<String> stateNames = new ArrayList<>();
for (StateSpec state: getIssueSetting().getStateSpecs()) for (StateSpec state: getIssueSetting().getStateSpecs())

View File

@ -7,7 +7,6 @@ import javax.persistence.Column;
import javax.persistence.Embeddable; import javax.persistence.Embeddable;
import java.io.Serializable; import java.io.Serializable;
@SuppressWarnings("serial")
@Embeddable @Embeddable
public class MergePreview implements Serializable { public class MergePreview implements Serializable {

View File

@ -38,6 +38,7 @@ public class ProjectPullRequestSetting implements Serializable {
this.namedQueries = namedQueries; this.namedQueries = namedQueries;
} }
@SuppressWarnings("unused")
private static String getLfsDescription() { private static String getLfsDescription() {
if (!Bootstrap.isInDocker()) { if (!Bootstrap.isInDocker()) {
return "Whether or not to fetch LFS objects if pull request is opened from a different project. " + return "Whether or not to fetch LFS objects if pull request is opened from a different project. " +
@ -69,6 +70,7 @@ public class ProjectPullRequestSetting implements Serializable {
this.defaultAssignees = defaultAssignees; this.defaultAssignees = defaultAssignees;
} }
@SuppressWarnings("unused")
private static List<User> getAssigneeChoices() { private static List<User> getAssigneeChoices() {
var choices = new ArrayList<>(SecurityUtils.getAuthorizedUsers(Project.get(), new WriteCode())); var choices = new ArrayList<>(SecurityUtils.getAuthorizedUsers(Project.get(), new WriteCode()));
Collections.sort(choices, Comparator.comparing(User::getDisplayName)); Collections.sort(choices, Comparator.comparing(User::getDisplayName));

View File

@ -41,6 +41,7 @@ public abstract class ChannelNotificationManager<T extends ChannelNotificationSe
private final Class<T> settingClass; private final Class<T> settingClass;
@SuppressWarnings("unchecked")
public ChannelNotificationManager() { public ChannelNotificationManager() {
List<Class<?>> typeArguments = ReflectionUtils.getTypeArguments(ChannelNotificationManager.class, getClass()); List<Class<?>> typeArguments = ReflectionUtils.getTypeArguments(ChannelNotificationManager.class, getClass());
if (typeArguments.size() == 1 && ChannelNotificationSetting.class.isAssignableFrom(typeArguments.get(0))) { if (typeArguments.size() == 1 && ChannelNotificationSetting.class.isAssignableFrom(typeArguments.get(0))) {

View File

@ -1,20 +1,19 @@
package io.onedev.server.notification; package io.onedev.server.notification;
import static java.nio.charset.StandardCharsets.UTF_8;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton; import javax.inject.Singleton;
import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity; import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -28,9 +27,6 @@ import io.onedev.server.event.project.ProjectEvent;
import io.onedev.server.model.support.WebHook; import io.onedev.server.model.support.WebHook;
import io.onedev.server.persistence.annotation.Sessional; import io.onedev.server.persistence.annotation.Sessional;
import static java.nio.charset.StandardCharsets.UTF_8;
import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
@Singleton @Singleton
public class WebHookManager { public class WebHookManager {

View File

@ -1,7 +1,6 @@
package io.onedev.server.persistence; package io.onedev.server.persistence;
import java.util.Properties; import java.util.Properties;
import java.util.concurrent.ExecutorService;
import org.hibernate.Interceptor; import org.hibernate.Interceptor;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;

View File

@ -98,6 +98,7 @@ public abstract class BaseEntityManager<T extends AbstractEntity> implements Ent
return entityClass; return entityClass;
} }
@SuppressWarnings("rawtypes")
protected void addOrderByIdIfNecessary(CriteriaBuilder builder, From<?, ?> from, List<Order> orders) { protected void addOrderByIdIfNecessary(CriteriaBuilder builder, From<?, ?> from, List<Order> orders) {
boolean orderByIdFound = false; boolean orderByIdFound = false;
for (var order: orders) { for (var order: orders) {

View File

@ -20,7 +20,6 @@ import org.hibernate.transform.ResultTransformer;
import io.onedev.server.model.AbstractEntity; import io.onedev.server.model.AbstractEntity;
@SuppressWarnings("serial")
public class EntityCriteria<T extends AbstractEntity> implements CriteriaSpecification, Serializable { public class EntityCriteria<T extends AbstractEntity> implements CriteriaSpecification, Serializable {
private final CriteriaImpl impl; private final CriteriaImpl impl;

View File

@ -13,7 +13,6 @@ import org.glassfish.jersey.servlet.ServletContainer;
import io.onedev.server.persistence.annotation.Sessional; import io.onedev.server.persistence.annotation.Sessional;
@SuppressWarnings("serial")
@Singleton @Singleton
public class DefaultServletContainer extends ServletContainer { public class DefaultServletContainer extends ServletContainer {

View File

@ -32,7 +32,7 @@ import static javax.ws.rs.client.Entity.entity;
import static javax.ws.rs.core.HttpHeaders.AUTHORIZATION; import static javax.ws.rs.core.HttpHeaders.AUTHORIZATION;
import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM; import static javax.ws.rs.core.MediaType.APPLICATION_OCTET_STREAM;
import static javax.ws.rs.core.Response.ok; import static javax.ws.rs.core.Response.ok;
import static org.apache.commons.compress.utils.IOUtils.copy; import static io.onedev.server.util.IOUtils.copy;
@Api(order=4100, description="In most cases, artifact resource is operated with build id, which is different from build number. " @Api(order=4100, description="In most cases, artifact resource is operated with build id, which is different from build number. "
+ "To get build id of a particular build number, use the <a href='/~help/api/io.onedev.server.rest.BuildResource/queryBasicInfo'>Query Basic Info</a> operation with query for " + "To get build id of a particular build number, use the <a href='/~help/api/io.onedev.server.rest.BuildResource/queryBasicInfo'>Query Basic Info</a> operation with query for "

View File

@ -13,7 +13,6 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response; import javax.ws.rs.core.Response;
import io.onedev.server.model.UserAuthorization;
import org.apache.shiro.authz.UnauthorizedException; import org.apache.shiro.authz.UnauthorizedException;
import io.onedev.server.entitymanager.GroupAuthorizationManager; import io.onedev.server.entitymanager.GroupAuthorizationManager;

View File

@ -1,20 +1,29 @@
package io.onedev.server.rest.resource; package io.onedev.server.rest.resource;
import static io.onedev.server.security.SecurityUtils.canAccessIssue;
import static io.onedev.server.security.SecurityUtils.canModifyOrDelete;
import static io.onedev.server.security.SecurityUtils.getUser;
import static io.onedev.server.security.SecurityUtils.isAdministrator;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.validation.constraints.NotNull;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.shiro.authz.UnauthorizedException;
import io.onedev.server.entitymanager.IssueCommentManager; import io.onedev.server.entitymanager.IssueCommentManager;
import io.onedev.server.model.IssueComment; import io.onedev.server.model.IssueComment;
import io.onedev.server.rest.annotation.Api; import io.onedev.server.rest.annotation.Api;
import io.onedev.server.security.SecurityUtils; import io.onedev.server.security.SecurityUtils;
import org.apache.shiro.authz.UnauthorizedException;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.validation.constraints.NotNull;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import static io.onedev.server.security.SecurityUtils.*;
@Api(order=2300) @Api(order=2300)
@Path("/issue-comments") @Path("/issue-comments")

View File

@ -225,6 +225,7 @@ public class IssueResource {
return issues; return issues;
} }
@SuppressWarnings("unused")
private static List<Map<String, Object>> getIssuesExample() { private static List<Map<String, Object>> getIssuesExample() {
var issues = new ArrayList<Map<String, Object>>(); var issues = new ArrayList<Map<String, Object>>();
var issue = ApiHelpUtils.getExampleValue(Issue.class, ValueInfo.Origin.READ_BODY); var issue = ApiHelpUtils.getExampleValue(Issue.class, ValueInfo.Origin.READ_BODY);
@ -391,6 +392,7 @@ public class IssueResource {
return Response.ok().build(); return Response.ok().build();
} }
@SuppressWarnings("unchecked")
private Map<String, Object> getFieldObjs(Issue issue, Map<String, Serializable> fields) { private Map<String, Object> getFieldObjs(Issue issue, Map<String, Serializable> fields) {
var issueSetting = settingManager.getIssueSetting(); var issueSetting = settingManager.getIssueSetting();
Map<String, Object> fieldObjs = new HashMap<>(); Map<String, Object> fieldObjs = new HashMap<>();
@ -498,6 +500,7 @@ public class IssueResource {
this.fields = fields; this.fields = fields;
} }
@SuppressWarnings("unused")
private static Map<String, Serializable> getFieldsExample() { private static Map<String, Serializable> getFieldsExample() {
return IssueResource.getFieldsExample(); return IssueResource.getFieldsExample();
} }
@ -554,6 +557,7 @@ public class IssueResource {
this.comment = comment; this.comment = comment;
} }
@SuppressWarnings("unused")
private static Map<String, Serializable> getFieldsExample() { private static Map<String, Serializable> getFieldsExample() {
return IssueResource.getFieldsExample(); return IssueResource.getFieldsExample();
} }

View File

@ -292,6 +292,7 @@ public class RepositoryResource {
throw new ObjectNotFoundException("Commit not found"); throw new ObjectNotFoundException("Commit not found");
} }
@SuppressWarnings("unused")
private static List<String> getFieldsExample() { private static List<String> getFieldsExample() {
return EnumSet.allOf(LogCommand.Field.class).stream().map(Enum::name).collect(toList()); return EnumSet.allOf(LogCommand.Field.class).stream().map(Enum::name).collect(toList());
} }

View File

@ -1,13 +1,16 @@
package io.onedev.server.rest.resource; package io.onedev.server.rest.resource;
import java.io.Serializable;
import javax.inject.Singleton;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.rest.annotation.Api; import io.onedev.server.rest.annotation.Api;
import javax.inject.Singleton;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.io.Serializable;
@Api(order=100000, description = "Version info for server and various tools") @Api(order=100000, description = "Version info for server and various tools")
@Path("/version") @Path("/version")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@ -38,21 +41,6 @@ public class VersionResource {
@Api(example = "2.0.0", description = "Maximum version. Null means no upper bound") @Api(example = "2.0.0", description = "Maximum version. Null means no upper bound")
String maxVersion; String maxVersion;
public String getMinVersion() {
return minVersion;
}
public void setMinVersion(String minVersion) {
this.minVersion = minVersion;
}
public String getMaxVersion() {
return maxVersion;
}
public void setMaxVersion(String maxVersion) {
this.maxVersion = maxVersion;
}
} }
} }

View File

@ -235,7 +235,6 @@ public class DefaultCodeSearchManager implements CodeSearchManager, Serializable
private LeafReaderContext context; private LeafReaderContext context;
@SuppressWarnings("unchecked")
@Override @Override
public void collect(int doc) throws IOException { public void collect(int doc) throws IOException {
Document document = searcher.doc(context.docBase+doc); Document document = searcher.doc(context.docBase+doc);

View File

@ -1,28 +1,34 @@
package io.onedev.server.search.commit; package io.onedev.server.search.commit;
import static io.onedev.commons.codeassist.FenceAware.unfence;
import static io.onedev.commons.utils.StringUtils.unescape;
import static org.apache.commons.lang3.StringUtils.join;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import org.antlr.v4.runtime.BailErrorStrategy;
import org.antlr.v4.runtime.BaseErrorListener;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.RecognitionException;
import org.antlr.v4.runtime.Recognizer;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.eclipse.jgit.lib.ObjectId;
import io.onedev.commons.utils.ExplicitException; import io.onedev.commons.utils.ExplicitException;
import io.onedev.server.OneDev; import io.onedev.server.OneDev;
import io.onedev.server.entitymanager.BuildManager; import io.onedev.server.entitymanager.BuildManager;
import io.onedev.server.entityreference.BuildReference; import io.onedev.server.entityreference.BuildReference;
import io.onedev.server.entityreference.IssueReference;
import io.onedev.server.event.project.RefUpdated; import io.onedev.server.event.project.RefUpdated;
import io.onedev.server.git.command.RevListOptions; import io.onedev.server.git.command.RevListOptions;
import io.onedev.server.model.Build; import io.onedev.server.model.Build;
import io.onedev.server.model.Project; import io.onedev.server.model.Project;
import io.onedev.server.search.commit.CommitQueryParser.CriteriaContext; import io.onedev.server.search.commit.CommitQueryParser.CriteriaContext;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.TerminalNode;
import org.apache.commons.lang.math.NumberUtils;
import org.eclipse.jgit.lib.ObjectId;
import javax.annotation.Nullable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import static io.onedev.commons.codeassist.FenceAware.unfence;
import static io.onedev.commons.utils.StringUtils.join;
import static io.onedev.commons.utils.StringUtils.unescape;
public class CommitQuery implements Serializable { public class CommitQuery implements Serializable {

View File

@ -1,19 +1,18 @@
package io.onedev.server.search.commit; package io.onedev.server.search.commit;
import com.google.common.base.Preconditions; import static io.onedev.commons.utils.match.WildcardUtils.matchString;
import com.google.common.collect.Lists;
import io.onedev.commons.utils.StringUtils;
import io.onedev.server.event.project.RefUpdated;
import io.onedev.server.git.command.RevListOptions;
import io.onedev.server.git.service.RefFacade;
import io.onedev.server.model.Project;
import org.eclipse.jgit.revwalk.RevCommit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
import static io.onedev.commons.utils.match.WildcardUtils.matchString; import org.eclipse.jgit.revwalk.RevCommit;
import com.google.common.base.Preconditions;
import io.onedev.commons.utils.StringUtils;
import io.onedev.server.event.project.RefUpdated;
import io.onedev.server.git.command.RevListOptions;
import io.onedev.server.model.Project;
public class FuzzyCriteria extends CommitCriteria { public class FuzzyCriteria extends CommitCriteria {

Some files were not shown because too many files have changed in this diff Show More