public abstract class ODataJPAServiceFactory extends ODataServiceFactory
Extend this factory class and create own instance of ODataService
that
transforms Java Persistence
Models into an OData Service. The factory class instantiates instances of
type EdmProvider
and
ODataSingleProcessor
. The OData
JPA Processor library provides a default implementation for EdmProvider and
OData Single Processor.
The factory implementation is passed as servlet init parameter to a JAX-RS
runtime which will instantiate a ODataService
implementation using this factory.
Mandatory: Implement the abstract method initializeODataJPAContext. Fill
ODataJPAContext
with context
values.
<servlet>
<servlet-name>ReferenceScenarioServlet</servlet-name>
<servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>org.apache.olingo.odata2.core.rest.ODataApplication</param-value>
</init-param>
<init-param>
<param-name>org.apache.olingo.odata2.service.factory</param-name>
<param-value>foo.bar.sample.service.SampleProcessorFactory</param-value>
</init-param>
<init-param>
<param-name>org.apache.olingo.odata2.path.split</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
ACCEPT_FORM_ENCODING, FACTORY_CLASSLOADER_LABEL, FACTORY_INSTANCE_LABEL, FACTORY_LABEL, PATH_SPLIT_LABEL
Constructor and Description |
---|
ODataJPAServiceFactory() |
Modifier and Type | Method and Description |
---|---|
ODataSingleProcessor |
createCustomODataProcessor(ODataJPAContext oDataJPAContext) |
ODataService |
createService(ODataContext ctx)
Creates an OData Service based on the values set in
ODataJPAContext and
ODataContext . |
<T extends ODataCallback> |
getCallback(Class<T> callbackInterface)
A service can return implementation classes for various callback interfaces.
|
ODataJPAContext |
getODataJPAContext() |
abstract ODataJPAContext |
initializeODataJPAContext()
Implement this method and initialize OData JPA Context.
|
protected void |
setDetailErrors(boolean setDetailErrors)
The method sets the context whether a detail error message should be thrown
or a less detail error message should be thrown by the library.
|
protected void |
setODataJPATransaction(ODataJPATransaction oDataJPATransaction)
The methods sets the context with a callback implementation for JPA transaction specific content.
|
protected void |
setOnWriteJPAContent(OnJPAWriteContent onJPAWriteContent)
The methods sets the context with a callback implementation for JPA provider specific content.
|
createODataSingleProcessorService
public abstract ODataJPAContext initializeODataJPAContext() throws ODataJPARuntimeException
EntityManagerFactory
into the context. An exception of type
ODataJPARuntimeException
is thrown if
EntityManagerFactory is not initialized.
public class JPAReferenceServiceFactory extends ODataJPAServiceFactory{
private static final String PUNIT_NAME = "punit";
public ODataJPAContext initializeODataJPAContext() {
ODataJPAContext oDataJPAContext = this.getODataJPAContext();
EntityManagerFactory emf = Persistence.createEntityManagerFactory(PUNIT_NAME);
oDataJPAContext.setEntityManagerFactory(emf);
oDataJPAContext.setPersistenceUnitName(PUNIT_NAME);
return oDataJPAContext;
}
}
ODataJPAContext
ODataJPARuntimeException
public final ODataService createService(ODataContext ctx) throws ODataException
ODataJPAContext
and
ODataContext
.createService
in class ODataServiceFactory
ctx
- OData context objectODataException
- in case of errorpublic ODataSingleProcessor createCustomODataProcessor(ODataJPAContext oDataJPAContext)
public final ODataJPAContext getODataJPAContext() throws ODataJPARuntimeException
ODataJPAContext
ODataJPARuntimeException
public <T extends ODataCallback> T getCallback(Class<T> callbackInterface)
ODataServiceFactory
getCallback
in class ODataServiceFactory
callbackInterface
- a interface type to query for implementationprotected void setOnWriteJPAContent(OnJPAWriteContent onJPAWriteContent)
OnJPAWriteContent
onJPAWriteContent
- is an instance of type
OnJPAWriteContent
protected void setODataJPATransaction(ODataJPATransaction oDataJPATransaction)
ODataJPATransaction
oDataJPATransaction
- is an instance of type
ODataJPATransaction
protected void setDetailErrors(boolean setDetailErrors)
setDetailErrors
- takes
Copyright © 2013-2017 The Apache Software Foundation. All Rights Reserved.