Skip to content
This repository was archived by the owner on Dec 4, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions src/main/java/com/ly/doc/extension/json/PropertyNameHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,12 @@
*/
package com.ly.doc.extension.json;

import com.ly.doc.builder.ProjectDocConfigBuilder;
import com.ly.doc.constants.DocAnnotationConstants;
import com.ly.doc.utils.DocUtil;
import com.power.common.util.StringUtil;
import com.thoughtworks.qdox.model.JavaAnnotation;
import com.thoughtworks.qdox.model.expression.AnnotationValue;

import java.util.List;

Expand Down Expand Up @@ -79,16 +82,23 @@ private PropertyNameHelper() {

/**
* Translates Java annotations to property naming strategies.
* @param projectBuilder the project builder
* @param javaAnnotations List of Java annotations on a property
* @return The property naming strategy, or null if no matching strategy is found
*/
public static PropertyNamingStrategies.NamingBase translate(List<JavaAnnotation> javaAnnotations) {
public static PropertyNamingStrategies.NamingBase translate(ProjectDocConfigBuilder projectBuilder,
List<JavaAnnotation> javaAnnotations) {
for (JavaAnnotation annotation : javaAnnotations) {
String simpleAnnotationName = annotation.getType().getValue();
// jackson
// jackson JsonNaming
if (DocAnnotationConstants.JSON_NAMING.equalsIgnoreCase(simpleAnnotationName)) {
String value = annotation.getProperty("value").getParameterValue().toString().toLowerCase();
return jackSonTranslate(value);
// annotationValue (Fix issues #1103)
AnnotationValue annotationValue = annotation.getProperty(DocAnnotationConstants.VALUE_PROP);
// get value
String value = DocUtil.resolveAnnotationValue(projectBuilder.getApiConfig().getClassLoader(),
annotationValue);

return jackSonTranslate(value.toLowerCase());
}

}
Expand Down
3 changes: 2 additions & 1 deletion src/main/java/com/ly/doc/handler/JaxrsPathHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
package com.ly.doc.handler;

import com.ly.doc.builder.ProjectDocConfigBuilder;
import com.ly.doc.constants.DocAnnotationConstants;
import com.ly.doc.constants.DocGlobalConstants;
import com.ly.doc.constants.JAXRSAnnotations;
import com.ly.doc.constants.JakartaJaxrsAnnotations;
Expand Down Expand Up @@ -93,7 +94,7 @@ public JaxrsPathMapping handle(ProjectDocConfigBuilder projectBuilder, String ba
// method level annotation will override class level annotation
if (annotationName.equals(JakartaJaxrsAnnotations.JAX_CONSUMES_FULLY)
|| annotationName.equals(JAXRSAnnotations.JAX_CONSUMES_FULLY)) {
Object value = annotation.getNamedParameter("value");
Object value = annotation.getNamedParameter(DocAnnotationConstants.VALUE_PROP);
if (Objects.nonNull(value)) {
mediaType = MediaType.valueOf(value.toString());
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/ly/doc/helper/ParamsBuildHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ private static List<ApiParam> processFields(String className, String pre, int le
// ignore
if (Objects.nonNull(cls)) {
List<JavaAnnotation> clsAnnotation = cls.getAnnotations();
fieldNameConvert = PropertyNameHelper.translate(clsAnnotation);
fieldNameConvert = PropertyNameHelper.translate(projectBuilder, clsAnnotation);
}

String[] globGicName = DocClassUtil.getSimpleGicName(className);
Expand Down
38 changes: 33 additions & 5 deletions src/main/java/com/ly/doc/template/SpringBootDocBuildTemplate.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,33 @@
package com.ly.doc.template;

import com.ly.doc.builder.ProjectDocConfigBuilder;
import com.ly.doc.constants.*;
import com.ly.doc.constants.DocAnnotationConstants;
import com.ly.doc.constants.DocGlobalConstants;
import com.ly.doc.constants.DocTags;
import com.ly.doc.constants.FrameworkEnum;
import com.ly.doc.constants.Methods;
import com.ly.doc.constants.SpringMvcAnnotations;
import com.ly.doc.constants.SpringMvcRequestAnnotationsEnum;
import com.ly.doc.handler.SpringMVCRequestHeaderHandler;
import com.ly.doc.handler.SpringMVCRequestMappingHandler;
import com.ly.doc.model.*;
import com.ly.doc.model.annotation.*;
import com.ly.doc.model.ApiConfig;
import com.ly.doc.model.ApiDoc;
import com.ly.doc.model.ApiExceptionStatus;
import com.ly.doc.model.ApiParam;
import com.ly.doc.model.ApiReqParam;
import com.ly.doc.model.ApiSchema;
import com.ly.doc.model.ExceptionAdviceMethod;
import com.ly.doc.model.WebSocketDoc;
import com.ly.doc.model.annotation.EntryAnnotation;
import com.ly.doc.model.annotation.ExceptionAdviceAnnotation;
import com.ly.doc.model.annotation.FrameworkAnnotations;
import com.ly.doc.model.annotation.HeaderAnnotation;
import com.ly.doc.model.annotation.MappingAnnotation;
import com.ly.doc.model.annotation.PathVariableAnnotation;
import com.ly.doc.model.annotation.RequestBodyAnnotation;
import com.ly.doc.model.annotation.RequestParamAnnotation;
import com.ly.doc.model.annotation.RequestPartAnnotation;
import com.ly.doc.model.annotation.ServerEndpointAnnotation;
import com.ly.doc.model.request.RequestMapping;
import com.ly.doc.utils.JavaClassValidateUtil;
import com.power.common.util.DateTimeUtil;
Expand All @@ -35,7 +57,13 @@
import com.thoughtworks.qdox.model.JavaMethod;

import java.time.ZonedDateTime;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;

Expand Down Expand Up @@ -270,7 +298,7 @@ public ExceptionAdviceMethod processExceptionAdviceMethod(JavaMethod method) {
isExceptionHandlerMethod = true;
}
if (SpringMvcAnnotations.RESPONSE_STATUS.equals(annotationName)) {
Object consumes = annotation.getNamedParameter("value");
Object consumes = annotation.getNamedParameter(DocAnnotationConstants.VALUE_PROP);
if (Objects.nonNull(consumes)) {
status = consumes.toString();
}
Expand Down
Loading