Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Lyo/OSLC4JAnnotations"
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == Service Description Documents == | ||
+ | |||
OSLC4J will generate an OSLC service description document for you if you've properly annotated your code. You should have an @OslcService annotation on every JAX-RS resource you want to use with OSLC4J, even if you only have one service description document. | OSLC4J will generate an OSLC service description document for you if you've properly annotated your code. You should have an @OslcService annotation on every JAX-RS resource you want to use with OSLC4J, even if you only have one service description document. | ||
− | + | === Query Capabilities and Creation Factories === | |
To use @OslcQueryCapability and @OslcCreationFactory, simply add those annotations to the @GET and @POST methods for each resource that handles those requests. The URIs are added to the service description document calculated from the JAX-RS @Path annotation. | To use @OslcQueryCapability and @OslcCreationFactory, simply add those annotations to the @GET and @POST methods for each resource that handles those requests. The URIs are added to the service description document calculated from the JAX-RS @Path annotation. | ||
Line 12: | Line 14: | ||
title = "Change Request Query Capability", | title = "Change Request Query Capability", | ||
label = "Change Request Catalog Query", | label = "Change Request Catalog Query", | ||
− | resourceShape = | + | resourceShape = "shapes/changeRequest", |
− | resourceTypes = { | + | resourceTypes = {"http://open-services.net/ns/cm#ChangeRequest"}, |
− | usages = { | + | usages = {"http://open-services.net/ns/core#default"} |
) | ) | ||
@GET | @GET | ||
− | @Produces({ | + | @Produces({"application/rdf+xml", "application/xml", "application/json", "text/turtle"}) |
− | + | ||
public ChangeRequest[] getChangeRequests(@QueryParam("oslc.where") final String where) | public ChangeRequest[] getChangeRequests(@QueryParam("oslc.where") final String where) | ||
{ | { | ||
Line 32: | Line 33: | ||
title = "Change Request Creation Factory", | title = "Change Request Creation Factory", | ||
label = "Change Request Creation", | label = "Change Request Creation", | ||
− | + | resourceShape = "shapes/changeRequest", | |
− | resourceTypes = { | + | resourceTypes = {"http://open-services.net/ns/cm#ChangeRequest"}, |
− | usages = { | + | usages = {"http://open-services.net/ns/core#default"} |
) | ) | ||
@POST | @POST | ||
− | @Consumes({ | + | @Consumes({"application/rdf+xml", "application/xml", "application/json", "text/turtle"}) |
− | + | @Produces({"application/rdf+xml", "application/xml", "application/json", "text/turtle"}) | |
− | @Produces({ | + | |
− | + | ||
public Response addChangeRequest(ChangeRequest changeRequest) | public Response addChangeRequest(ChangeRequest changeRequest) | ||
{ | { | ||
Line 47: | Line 46: | ||
</code> | </code> | ||
− | + | === Dialogs === | |
* For selection dialogs, the @OslcDialogs or @OslcDialog annotation has to be on a @GET method, usually the query capability. | * For selection dialogs, the @OslcDialogs or @OslcDialog annotation has to be on a @GET method, usually the query capability. | ||
Line 66: | Line 65: | ||
) | ) | ||
</code> | </code> | ||
+ | |||
+ | === Creating the ServiceProvider === | ||
To create the ServiceProvider, call org.eclipse.lyo.oslc4j.core.model.ServiceProviderFactory.createServiceProvider(). You might need to set a few properties manually, such as the details URI and prefix definitions. | To create the ServiceProvider, call org.eclipse.lyo.oslc4j.core.model.ServiceProviderFactory.createServiceProvider(). You might need to set a few properties manually, such as the details URI and prefix definitions. |
Latest revision as of 13:33, 8 March 2014
Contents
Service Description Documents
OSLC4J will generate an OSLC service description document for you if you've properly annotated your code. You should have an @OslcService annotation on every JAX-RS resource you want to use with OSLC4J, even if you only have one service description document.
Query Capabilities and Creation Factories
To use @OslcQueryCapability and @OslcCreationFactory, simply add those annotations to the @GET and @POST methods for each resource that handles those requests. The URIs are added to the service description document calculated from the JAX-RS @Path annotation.
Here is an example @OslcQueryCapability:
@OslcQueryCapability ( title = "Change Request Query Capability", label = "Change Request Catalog Query", resourceShape = "shapes/changeRequest", resourceTypes = {"http://open-services.net/ns/cm#ChangeRequest"}, usages = {"http://open-services.net/ns/core#default"} ) @GET @Produces({"application/rdf+xml", "application/xml", "application/json", "text/turtle"}) public ChangeRequest[] getChangeRequests(@QueryParam("oslc.where") final String where) { // ... implementation here ... }
Here is an example @OslcCreationFactory:
@OslcCreationFactory ( title = "Change Request Creation Factory", label = "Change Request Creation", resourceShape = "shapes/changeRequest", resourceTypes = {"http://open-services.net/ns/cm#ChangeRequest"}, usages = {"http://open-services.net/ns/core#default"} ) @POST @Consumes({"application/rdf+xml", "application/xml", "application/json", "text/turtle"}) @Produces({"application/rdf+xml", "application/xml", "application/json", "text/turtle"}) public Response addChangeRequest(ChangeRequest changeRequest) { // ... implementation here ... }
Dialogs
- For selection dialogs, the @OslcDialogs or @OslcDialog annotation has to be on a @GET method, usually the query capability.
- For creation dialogs, the annotation has to be on an @POST method, usually the creation factory.
The @OslcDialog "uri" determines the URI for the dialog, and you can use path parameters. For instance, the Bugzilla adapter has this selection dialog:
@OslcDialog ( title = "Change Request Selection Dialog", label = "Change Request Selection Dialog", uri = "/{productId}/changeRequests/selector", hintWidth = "525px", hintHeight = "325px", resourceTypes = {Constants.TYPE_CHANGE_REQUEST}, usages = {OslcConstants.OSLC_USAGE_DEFAULT} )
Creating the ServiceProvider
To create the ServiceProvider, call org.eclipse.lyo.oslc4j.core.model.ServiceProviderFactory.createServiceProvider(). You might need to set a few properties manually, such as the details URI and prefix definitions.