Class WadlGeneratorConfig
java.lang.Object
org.glassfish.jersey.server.wadl.config.WadlGeneratorConfig
Provides a configured Existing
WadlGenerator
with all decorations (the default
wadl generator decorated by other generators).
Creating a WadlGeneratorConfig
If you want to create an instance at runtime you can configure the WadlGenerator class and property names/values. A new instance of the Generator is created for each generation action. The first option would look like this:
WadlGeneratorConfig config = WadlGeneratorConfig .generator( MyWadlGenerator.class ) .prop( "someProperty", "someValue" ) .generator( MyWadlGenerator2.class ) .prop( "someProperty", "someValue" ) .prop( "anotherProperty", "anotherValue" ) .build();
If you want to specify the WadlGeneratorConfig
in the web.xml you have
to subclass it and set the servlet init-param ServerProperties.WADL_GENERATOR_CONFIG
to the name of your subclass. This class might look like this:
class MyWadlGeneratorConfig extends WadlGeneratorConfig { public List<WadlGeneratorDescription> configure() { return generator( MyWadlGenerator.class ) .prop( "foo", propValue ) .generator( MyWadlGenerator2.class ) .prop( "bar", propValue2 ) .descriptions(); } }
Configuring the WadlGenerator
The WadlGenerator
properties will be populated with the provided properties like this:
- The types match exactly:
if the WadlGenerator property is of typeorg.example.Foo
and the provided property value is of typeorg.example.Foo
- Types that provide a constructor for the provided type (mostly java.lang.String)
- java.io.InputStream: The
InputStream
can e.g. represent a file. The stream is loaded from the property value (provided by theWadlGeneratorDescription
) viaClassLoader.getResourceAsStream(String)
. It will be closed afterWadlGenerator.init()
was called. - Deprecated, will be removed in future versions:
The WadlGenerator property is of typeFile
and the provided property value is aString
:
the provided property value can contain the prefix classpath: to denote, that the path to the file is relative to the classpath. In this case, the property value is stripped by the prefix classpath: and theFile
is created vianew File( generator.getClass().getResource( strippedFilename ).toURI() )
Notice that the filename is loaded from the classpath in this case, e.g. classpath:test.xml refers to a file in the package of the class (WadlGeneratorDescription.getGeneratorClass()
). The file reference classpath:/test.xml refers to a file that is in the root of the classpath.
Existing WadlGenerator
implementations:
WadlGeneratorApplicationDoc
WadlGeneratorGrammarsSupport
WadlGeneratorJAXBGrammarGenerator
WadlGeneratorResourceDocSupport
A common example for a WadlGeneratorConfig
would be this:
class MyWadlGeneratorConfig extends WadlGeneratorConfig { public List<WadlGeneratorDescription> configure() { return generator( WadlGeneratorApplicationDoc.class ) .prop( "applicationDocsStream", "application-doc.xml" ) .generator( WadlGeneratorGrammarsSupport.class ) .prop( "grammarsStream", "application-grammars.xml" ) .generator( WadlGeneratorResourceDocSupport.class ) .prop( "resourceDocStream", "resourcedoc.xml" ) .descriptions(); .descriptions(); } }
- Author:
- Martin Grotzke (martin.grotzke at freiheit.com)
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract List
createWadlGenerator
(InjectionManager injectionManager) Create a new instance ofWadlGenerator
, based on theWadlGeneratorDescription
s provided byconfigure()
.generator
(Class<? extends WadlGenerator> generatorClass) Start to build an instance ofWadlGeneratorConfig
:
-
Constructor Details
-
WadlGeneratorConfig
public WadlGeneratorConfig()
-
-
Method Details
-
configure
-
createWadlGenerator
Create a new instance ofWadlGenerator
, based on theWadlGeneratorDescription
s provided byconfigure()
.- Returns:
- the initialized
WadlGenerator
-
generator
public static WadlGeneratorConfig.WadlGeneratorConfigDescriptionBuilder generator(Class<? extends WadlGenerator> generatorClass) Start to build an instance ofWadlGeneratorConfig
:generator(<class>) .prop(<name>, <value>) .prop(<name>, <value>) .generator(<class>) .prop(<name>, <value>) .prop(<name>, <value>) .build()
- Parameters:
generatorClass
- the class of the wadl generator to configure- Returns:
- an instance of
WadlGeneratorConfig.WadlGeneratorConfigDescriptionBuilder
.
-