public class GroovyResourcePublisher extends Object
ResourceBinder Groovy based RESTful services.| Modifier and Type | Field and Description |
|---|---|
protected ResourceBinder |
binder |
protected GroovyClassLoaderProvider |
classLoaderProvider |
protected Comparator<Constructor<?>> |
CONSTRUCTOR_COMPARATOR |
protected static Charset |
DEFAULT_CHARSET
Default character set.
|
protected static String |
DEFAULT_CHARSET_NAME
Default character set name.
|
protected DependencySupplier |
dependencies |
protected Map<ResourceId,String> |
resources |
| Modifier | Constructor and Description |
|---|---|
|
GroovyResourcePublisher(ResourceBinder binder,
DependencySupplier dependencies)
Create GroovyJaxrsPublisher which is able publish per-request and singleton resources.
|
protected |
GroovyResourcePublisher(ResourceBinder binder,
GroovyClassLoaderProvider classLoaderProvider,
DependencySupplier dependencies)
Create GroovyJaxrsPublisher which is able publish per-request and singleton resources.
|
| Modifier and Type | Method and Description |
|---|---|
protected groovy.lang.GroovyCodeSource |
createCodeSource(InputStream in,
String name)
Create
GroovyCodeSource from given stream and name. |
protected Object |
createInstance(Class<?> clazz) |
ObjectFactory<AbstractResourceDescriptor> |
getResource(ResourceId resourceId)
Get resource corresponded to specified id
resourceId . |
boolean |
isPublished(ResourceId resourceId)
Check is groovy resource with specified id is published or not
|
void |
publishPerRequest(InputStream in,
ResourceId resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> properties,
SourceFolder[] src,
SourceFile[] files)
Parse given stream and publish result as per-request RESTful service.
|
void |
publishPerRequest(String source,
ResourceId resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> properties,
SourceFolder[] src,
SourceFile[] files)
Parse given
source and publish result as per-request RESTful service. |
void |
publishPerRequest(String source,
String charset,
ResourceId resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> properties,
SourceFolder[] src,
SourceFile[] files)
Parse given
source and publish result as per-request RESTful
service. |
void |
publishSingleton(InputStream in,
ResourceId resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> properties,
SourceFolder[] src,
SourceFile[] files)
Parse given stream and publish result as singleton RESTful service.
|
void |
publishSingleton(String source,
ResourceId resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> properties,
SourceFolder[] src,
SourceFile[] files)
Parse given
source and publish result as singleton RESTful service. |
void |
publishSingleton(String source,
String charset,
ResourceId resourceId,
javax.ws.rs.core.MultivaluedMap<String,String> properties,
SourceFolder[] src,
SourceFile[] files)
Parse given
source and publish result as singleton RESTful service. |
ObjectFactory<AbstractResourceDescriptor> |
unpublishResource(ResourceId resourceId)
Unpublish resource with specified id.
|
protected static final String DEFAULT_CHARSET_NAME
protected static final Charset DEFAULT_CHARSET
protected final ResourceBinder binder
protected final Map<ResourceId,String> resources
protected final GroovyClassLoaderProvider classLoaderProvider
protected final DependencySupplier dependencies
protected final Comparator<Constructor<?>> CONSTRUCTOR_COMPARATOR
protected GroovyResourcePublisher(ResourceBinder binder, GroovyClassLoaderProvider classLoaderProvider, DependencySupplier dependencies)
PerRequestObjectFactory.binder - resource binderclassLoaderProvider - GroovyClassLoaderProviderdependencies - dependencies resolverDependencySupplierpublic GroovyResourcePublisher(ResourceBinder binder, DependencySupplier dependencies)
PerRequestObjectFactory.binder - resource binderdependencies - dependencies resolverDependencySupplierpublic ObjectFactory<AbstractResourceDescriptor> getResource(ResourceId resourceId)
resourceId .resourceId - resource idnullpublic boolean isPublished(ResourceId resourceId)
resourceId - id of resource to be checkedtrue if resource is published and false* otherwisepublic void publishPerRequest(InputStream in, ResourceId resourceId, javax.ws.rs.core.MultivaluedMap<String,String> properties, SourceFolder[] src, SourceFile[] files)
in - stream which contains groovy source code of RESTful serviceresourceId - id to be assigned to resourceproperties - optional resource properties. This parameter may be nullsrc - additional path to Groovy sourcesfiles - Groovy source files to be added in build path directlyResourcePublicationException - see ResourceBinder.addResource(Class, MultivaluedMap)public final void publishPerRequest(String source, ResourceId resourceId, javax.ws.rs.core.MultivaluedMap<String,String> properties, SourceFolder[] src, SourceFile[] files)
source and publish result as per-request RESTful service.source - groovy source code of RESTful serviceresourceId - id to be assigned to resourceproperties - optional resource properties. This parameter may be nullsrc - additional path to Groovy sourcesfiles - Groovy source files to be added in build path directlyResourcePublicationException - see ResourceBinder.addResource(Class, MultivaluedMap)public final void publishPerRequest(String source, String charset, ResourceId resourceId, javax.ws.rs.core.MultivaluedMap<String,String> properties, SourceFolder[] src, SourceFile[] files)
source and publish result as per-request RESTful
service.source - groovy source code of RESTful servicecharset - source string charset. May be null than default charset will be in useresourceId - id to be assigned to resourceproperties - optional resource properties. This parameter may be null.src - additional path to Groovy sourcesfiles - Groovy source files to be added in build path directlyUnsupportedCharsetException - if charset is unsupportedResourcePublicationException - see ResourceBinder.addResource(Class, MultivaluedMap)public void publishSingleton(InputStream in, ResourceId resourceId, javax.ws.rs.core.MultivaluedMap<String,String> properties, SourceFolder[] src, SourceFile[] files)
in - stream which contains groovy source code of RESTful serviceresourceId - id to be assigned to resourceproperties - optional resource properties. This parameter may be nullsrc - additional path to Groovy sourcesfiles - Groovy source files to be added in build path directlyResourcePublicationException - see ResourceBinder.addResource(Object, MultivaluedMap)public final void publishSingleton(String source, ResourceId resourceId, javax.ws.rs.core.MultivaluedMap<String,String> properties, SourceFolder[] src, SourceFile[] files)
source and publish result as singleton RESTful service.source - groovy source code of RESTful serviceresourceId - name of resourceproperties - optional resource properties. This parameter may be
null.src - additional path to Groovy sourcesfiles - Groovy source files to be added in build path directlyResourcePublicationException - see ResourceBinder.addResource(Object, MultivaluedMap)public final void publishSingleton(String source, String charset, ResourceId resourceId, javax.ws.rs.core.MultivaluedMap<String,String> properties, SourceFolder[] src, SourceFile[] files)
source and publish result as singleton RESTful service.source - groovy source code of RESTful servicecharset - source string charset. May be null than default charset will be in useresourceId - name of resourceproperties - optional resource properties. This parameter may be null.src - additional path to Groovy sourcesfiles - Groovy source files to be added in build path directlyUnsupportedCharsetException - if charset is unsupportedResourcePublicationException - see ResourceBinder.addResource(Object, MultivaluedMap)public ObjectFactory<AbstractResourceDescriptor> unpublishResource(ResourceId resourceId)
resourceId - id of resource to be unpublishedtrue if resource was published and false otherwise, e.g. because there is not resource corresponded
to supplied resourceIdprotected Object createInstance(Class<?> clazz) throws IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException
protected groovy.lang.GroovyCodeSource createCodeSource(InputStream in, String name)
GroovyCodeSource from given stream and name. Code base 'file:/groovy/script/jaxrs' will be used.in - groovy source code streamname - code source nameCopyright © 2015. All rights reserved.