Package org.apache.cxf.jaxrs.model.wadl
Class WadlGenerator
- java.lang.Object
-
- org.apache.cxf.jaxrs.model.wadl.WadlGenerator
-
- All Implemented Interfaces:
javax.ws.rs.container.ContainerRequestFilter
public class WadlGenerator extends Object implements javax.ws.rs.container.ContainerRequestFilter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interfaceWadlGenerator.SchemaWriter
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_WADL_SCHEMA_LOCstatic StringWADL_NSstatic StringWADL_QUERYstatic javax.ws.rs.core.MediaTypeWADL_TYPE
-
Constructor Summary
Constructors Constructor Description WadlGenerator()WadlGenerator(Bus bus)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanaddSchemaDocument(SchemaCollection col, List<String> tnsList, Document d, String systemId, boolean hackAroundEmptyNamespaceIssue)protected booleancompareOperations(OperationResourceInfo ori1, OperationResourceInfo ori2)protected ElementQNameResolvercreateElementQNameResolver(javax.xml.bind.JAXBContext context)protected WadlGenerator.SchemaWritercreateSchemaWriter(ResourceTypes resourceTypes, javax.xml.bind.JAXBContext context, javax.ws.rs.core.UriInfo ui)protected voiddoFilter(javax.ws.rs.container.ContainerRequestContext context, Message m)protected voiddoHandleClassParams(OperationResourceInfo ori, StringBuilder sb, Map<Parameter,Object> params, boolean isJson, ParameterType... pType)protected voiddoHandleJaxrsBeanParamClassParams(OperationResourceInfo ori, StringBuilder sb, Map<Parameter,Object> params, boolean isJson, ParameterType... pType)protected voiddoWriteParam(OperationResourceInfo ori, StringBuilder sb, Parameter pm, Class<?> type, Type genericType, String paramName, Annotation[] anns, boolean isJson)protected voidendMethodRequestTag(StringBuilder sb, OperationResourceInfo ori)protected voidendMethodResponseTag(StringBuilder sb, OperationResourceInfo ori)protected voidendMethodTag(StringBuilder sb, OperationResourceInfo ori)protected voidendResourceTag(StringBuilder sb, OperationResourceInfo ori)voidfilter(javax.ws.rs.container.ContainerRequestContext context)StringBuildergenerateWADL(String baseURI, List<ClassResourceInfo> cris, boolean isJson, Message m, javax.ws.rs.core.UriInfo ui)List<String>getAllowList()protected StringgetBaseURI(Message m, javax.ws.rs.core.UriInfo ui)javax.ws.rs.core.ResponsegetExistingResource(Message m, javax.ws.rs.core.UriInfo ui, String href)javax.ws.rs.core.ResponsegetExistingWadl(Message m, javax.ws.rs.core.UriInfo ui, javax.ws.rs.core.MediaType mt)protected StringgetPath(String path)List<String>getPrivateAddresses()List<ClassResourceInfo>getResourcesList(Message m, javax.ws.rs.core.UriInfo ui)protected voidhandleClassJavaDocs(ClassResourceInfo cri, StringBuilder sb)protected booleanhandleDocs(Annotation[] anns, StringBuilder sb, String category, boolean allowDefault, boolean isJson)protected voidhandleDynamicSubresource(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, ClassResourceInfo subcri, boolean isJson)protected voidhandleGrammars(StringBuilder sbApp, StringBuilder sbGrammars, WadlGenerator.SchemaWriter writer, Map<Class<?>,QName> clsMap)protected booleanhandleOperation(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, Map<Parameter,Object> classParams, OperationResourceInfo nextOp, boolean resourceTagOpened, boolean isJson, int index)protected voidhandleOperJavaDocs(OperationResourceInfo ori, StringBuilder sb)protected voidhandleOperParamJavaDocs(OperationResourceInfo ori, int paramIndex, StringBuilder sb)protected voidhandleOperResponseJavaDocs(OperationResourceInfo ori, StringBuilder sb)protected voidhandleParameter(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, Parameter pm, boolean isJson)protected voidhandleParams(StringBuilder sb, OperationResourceInfo ori, ParameterType type, boolean isJson)protected voidhandlePathAndMatrixClassParams(OperationResourceInfo ori, StringBuilder sb, Map<Parameter,Object> params, boolean isJson)protected voidhandlePathAndMatrixParams(StringBuilder sb, OperationResourceInfo ori, boolean isJson)protected voidhandleRepresentation(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, Class<?> type, boolean isJson, boolean inbound)protected voidhandleResource(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, ClassResourceInfo cri, Set<ClassResourceInfo> visitedResources, boolean isJson)voidsetAddResourceAndMethodIds(boolean addResourceAndMethodIds)voidsetAllowList(List<String> allowList)voidsetApplicationTitle(String applicationTitle)voidsetApplyStylesheetLocally(boolean applyStylesheetLocally)voidsetCheckAbsolutePathSlash(boolean checkAbsolutePathSlash)voidsetConvertResourcesToDOM(boolean convertResourcesToDOM)voidsetDefaultMediaType(String mt)Set the default WADL response media type.voidsetDefaultRepresentationMediaType(String mt)Set the default representation media type to be used if JAX-RS Produces or Consumes annotation is missing.voidsetDocumentationProvider(List<DocumentationProvider> ps)voidsetDocumentationProvider(DocumentationProvider p)voidsetExternalLinks(List<String> externalLinks)voidsetExtraClasses(List<Class<?>> extraClasses)The list of classes which should be added to the generated scheme also.voidsetIgnoreForwardSlash(boolean ignoreForwardSlash)voidsetIgnoreMessageWriters(boolean ignoreMessageWriters)voidsetIgnoreOverloadedMethods(boolean ignore)voidsetIgnoreRequests(boolean ignoreRequests)voidsetIncludeDefaultWadlSchemaLocation(boolean inc)voidsetIncrementNamespacePrefix(boolean incrementNamespacePrefix)voidsetJavaDocPath(String path)voidsetJavaDocPaths(String... paths)voidsetJavaDocURLs(URL[] javaDocURLs)voidsetJaxbContextProperties(Map<String,Object> jaxbContextProperties)voidsetKeepRelativeDocLinks(boolean keepRelativeDocLinks)voidsetLinkAnyMediaTypeToXmlSchema(boolean link)voidsetLinkJsonToXmlSchema(boolean link)Deprecated.voidsetNamespacePrefix(String prefix)voidsetPrivateAddresses(List<String> privateAddresses)voidsetResolver(ElementQNameResolver resolver)voidsetResourceIdGenerator(ResourceIdGenerator idGen)voidsetSchemaLocations(List<String> locations)voidsetSingleResourceMultipleMethods(boolean singleResourceMultipleMethods)voidsetStylesheetReference(String stylesheetReference)voidsetSupportCollections(boolean support)voidsetSupportJaxbSubstitutions(boolean supportJaxbSubstitutions)voidsetSupportJaxbXmlType(boolean supportJaxbXmlType)voidsetUseJaxbContextForQnames(boolean checkJaxbOnly)voidsetUsePathParamsToCompareOperations(boolean usePathParamsToCompareOperations)voidsetUseSingleSlashResource(boolean useSingleSlashResource)voidsetWadlNamespace(String namespace)voidsetWadlSchemaLocation(String loc)protected List<OperationResourceInfo>sortOperationsByPath(Set<OperationResourceInfo> ops)protected voidstartMethodRequestTag(StringBuilder sb, OperationResourceInfo ori)protected voidstartMethodResponseTag(StringBuilder sb, OperationResourceInfo ori)protected voidstartMethodTag(StringBuilder sb, OperationResourceInfo ori)protected voidstartResourceTag(StringBuilder sb, ClassResourceInfo cri, String path)protected voidstartResourceTag(StringBuilder sb, OperationResourceInfo ori, String path)
-
-
-
Field Detail
-
WADL_QUERY
public static final String WADL_QUERY
- See Also:
- Constant Field Values
-
WADL_TYPE
public static final javax.ws.rs.core.MediaType WADL_TYPE
-
WADL_NS
public static final String WADL_NS
- See Also:
- Constant Field Values
-
DEFAULT_WADL_SCHEMA_LOC
public static final String DEFAULT_WADL_SCHEMA_LOC
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
WadlGenerator
public WadlGenerator()
-
WadlGenerator
public WadlGenerator(Bus bus)
-
-
Method Detail
-
setExtraClasses
public void setExtraClasses(List<Class<?>> extraClasses)
The list of classes which should be added to the generated scheme also.
-
filter
public void filter(javax.ws.rs.container.ContainerRequestContext context)
- Specified by:
filterin interfacejavax.ws.rs.container.ContainerRequestFilter
-
doFilter
protected void doFilter(javax.ws.rs.container.ContainerRequestContext context, Message m)
-
generateWADL
public StringBuilder generateWADL(String baseURI, List<ClassResourceInfo> cris, boolean isJson, Message m, javax.ws.rs.core.UriInfo ui)
-
handleGrammars
protected void handleGrammars(StringBuilder sbApp, StringBuilder sbGrammars, WadlGenerator.SchemaWriter writer, Map<Class<?>,QName> clsMap)
-
handleResource
protected void handleResource(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, ClassResourceInfo cri, Set<ClassResourceInfo> visitedResources, boolean isJson)
-
startResourceTag
protected void startResourceTag(StringBuilder sb, ClassResourceInfo cri, String path)
-
startMethodTag
protected void startMethodTag(StringBuilder sb, OperationResourceInfo ori)
-
endMethodTag
protected void endMethodTag(StringBuilder sb, OperationResourceInfo ori)
-
startMethodRequestTag
protected void startMethodRequestTag(StringBuilder sb, OperationResourceInfo ori)
-
startMethodResponseTag
protected void startMethodResponseTag(StringBuilder sb, OperationResourceInfo ori)
-
endMethodRequestTag
protected void endMethodRequestTag(StringBuilder sb, OperationResourceInfo ori)
-
endMethodResponseTag
protected void endMethodResponseTag(StringBuilder sb, OperationResourceInfo ori)
-
startResourceTag
protected void startResourceTag(StringBuilder sb, OperationResourceInfo ori, String path)
-
endResourceTag
protected void endResourceTag(StringBuilder sb, OperationResourceInfo ori)
-
handleOperation
protected boolean handleOperation(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, Map<Parameter,Object> classParams, OperationResourceInfo nextOp, boolean resourceTagOpened, boolean isJson, int index)
-
compareOperations
protected boolean compareOperations(OperationResourceInfo ori1, OperationResourceInfo ori2)
-
handleDynamicSubresource
protected void handleDynamicSubresource(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, ClassResourceInfo subcri, boolean isJson)
-
handlePathAndMatrixClassParams
protected void handlePathAndMatrixClassParams(OperationResourceInfo ori, StringBuilder sb, Map<Parameter,Object> params, boolean isJson)
-
doHandleClassParams
protected void doHandleClassParams(OperationResourceInfo ori, StringBuilder sb, Map<Parameter,Object> params, boolean isJson, ParameterType... pType)
-
doHandleJaxrsBeanParamClassParams
protected void doHandleJaxrsBeanParamClassParams(OperationResourceInfo ori, StringBuilder sb, Map<Parameter,Object> params, boolean isJson, ParameterType... pType)
-
handlePathAndMatrixParams
protected void handlePathAndMatrixParams(StringBuilder sb, OperationResourceInfo ori, boolean isJson)
-
handleParameter
protected void handleParameter(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, Parameter pm, boolean isJson)
-
handleParams
protected void handleParams(StringBuilder sb, OperationResourceInfo ori, ParameterType type, boolean isJson)
-
doWriteParam
protected void doWriteParam(OperationResourceInfo ori, StringBuilder sb, Parameter pm, Class<?> type, Type genericType, String paramName, Annotation[] anns, boolean isJson)
-
handleRepresentation
protected void handleRepresentation(StringBuilder sb, Set<Class<?>> jaxbTypes, ElementQNameResolver qnameResolver, Map<Class<?>,QName> clsMap, OperationResourceInfo ori, Class<?> type, boolean isJson, boolean inbound)
-
sortOperationsByPath
protected List<OperationResourceInfo> sortOperationsByPath(Set<OperationResourceInfo> ops)
-
getResourcesList
public List<ClassResourceInfo> getResourcesList(Message m, javax.ws.rs.core.UriInfo ui)
-
getExistingWadl
public javax.ws.rs.core.Response getExistingWadl(Message m, javax.ws.rs.core.UriInfo ui, javax.ws.rs.core.MediaType mt)
-
getExistingResource
public javax.ws.rs.core.Response getExistingResource(Message m, javax.ws.rs.core.UriInfo ui, String href)
-
addSchemaDocument
public boolean addSchemaDocument(SchemaCollection col, List<String> tnsList, Document d, String systemId, boolean hackAroundEmptyNamespaceIssue)
-
setIgnoreMessageWriters
public void setIgnoreMessageWriters(boolean ignoreMessageWriters)
-
handleClassJavaDocs
protected void handleClassJavaDocs(ClassResourceInfo cri, StringBuilder sb)
-
handleOperJavaDocs
protected void handleOperJavaDocs(OperationResourceInfo ori, StringBuilder sb)
-
handleOperResponseJavaDocs
protected void handleOperResponseJavaDocs(OperationResourceInfo ori, StringBuilder sb)
-
handleOperParamJavaDocs
protected void handleOperParamJavaDocs(OperationResourceInfo ori, int paramIndex, StringBuilder sb)
-
handleDocs
protected boolean handleDocs(Annotation[] anns, StringBuilder sb, String category, boolean allowDefault, boolean isJson)
-
setWadlNamespace
public void setWadlNamespace(String namespace)
-
setSingleResourceMultipleMethods
public void setSingleResourceMultipleMethods(boolean singleResourceMultipleMethods)
-
setUseSingleSlashResource
public void setUseSingleSlashResource(boolean useSingleSlashResource)
-
setLinkJsonToXmlSchema
@Deprecated public void setLinkJsonToXmlSchema(boolean link)
Deprecated.
-
setLinkAnyMediaTypeToXmlSchema
public void setLinkAnyMediaTypeToXmlSchema(boolean link)
-
setUseJaxbContextForQnames
public void setUseJaxbContextForQnames(boolean checkJaxbOnly)
-
createElementQNameResolver
protected ElementQNameResolver createElementQNameResolver(javax.xml.bind.JAXBContext context)
-
createSchemaWriter
protected WadlGenerator.SchemaWriter createSchemaWriter(ResourceTypes resourceTypes, javax.xml.bind.JAXBContext context, javax.ws.rs.core.UriInfo ui)
-
setResolver
public void setResolver(ElementQNameResolver resolver)
-
setAddResourceAndMethodIds
public void setAddResourceAndMethodIds(boolean addResourceAndMethodIds)
-
setResourceIdGenerator
public void setResourceIdGenerator(ResourceIdGenerator idGen)
-
setApplicationTitle
public void setApplicationTitle(String applicationTitle)
-
setNamespacePrefix
public void setNamespacePrefix(String prefix)
-
setIgnoreForwardSlash
public void setIgnoreForwardSlash(boolean ignoreForwardSlash)
-
setIgnoreRequests
public void setIgnoreRequests(boolean ignoreRequests)
-
setSupportCollections
public void setSupportCollections(boolean support)
-
setDefaultMediaType
public void setDefaultMediaType(String mt)
Set the default WADL response media type. For example, a browser may display WADL better if Content-Type is set to application/xml which is a default response content type. Users may set it to application/vnd.sun.wadl+xml or other type.- Parameters:
mt- WADL response media type
-
setDefaultRepresentationMediaType
public void setDefaultRepresentationMediaType(String mt)
Set the default representation media type to be used if JAX-RS Produces or Consumes annotation is missing. Wild-card media type is used by default in such cases.- Parameters:
mt- the default representation media type
-
setSupportJaxbXmlType
public void setSupportJaxbXmlType(boolean supportJaxbXmlType)
-
setSupportJaxbSubstitutions
public void setSupportJaxbSubstitutions(boolean supportJaxbSubstitutions)
-
setCheckAbsolutePathSlash
public void setCheckAbsolutePathSlash(boolean checkAbsolutePathSlash)
-
setJavaDocURLs
public void setJavaDocURLs(URL[] javaDocURLs)
-
setDocumentationProvider
public void setDocumentationProvider(DocumentationProvider p)
-
setDocumentationProvider
public void setDocumentationProvider(List<DocumentationProvider> ps)
-
setStylesheetReference
public void setStylesheetReference(String stylesheetReference)
-
setWadlSchemaLocation
public void setWadlSchemaLocation(String loc)
-
setIncludeDefaultWadlSchemaLocation
public void setIncludeDefaultWadlSchemaLocation(boolean inc)
-
setIgnoreOverloadedMethods
public void setIgnoreOverloadedMethods(boolean ignore)
-
setKeepRelativeDocLinks
public void setKeepRelativeDocLinks(boolean keepRelativeDocLinks)
-
setApplyStylesheetLocally
public void setApplyStylesheetLocally(boolean applyStylesheetLocally)
-
setUsePathParamsToCompareOperations
public void setUsePathParamsToCompareOperations(boolean usePathParamsToCompareOperations)
-
setConvertResourcesToDOM
public void setConvertResourcesToDOM(boolean convertResourcesToDOM)
-
setIncrementNamespacePrefix
public void setIncrementNamespacePrefix(boolean incrementNamespacePrefix)
-
setJaxbContextProperties
public void setJaxbContextProperties(Map<String,Object> jaxbContextProperties)
-
-