Hi, Sorry, I should have been clearer with my question. What I was trying to find out was the usage pattern for the EntityManager. Why does it need to be extended scope? The number of use cases for extended scope is significantly smaller than the number of use cases for a transaction scope entity manager, which is why transaction scope is the default. As I mentioned before extended scope EntityManagers are not supported by the Aries JPA container, except when injected into stateful EJBs by the Aries EJB component. I'm hoping to help you avoid the next problem I see on the horizon.
Regards, Tim Ward ------------------- Apache Aries PMC member & Enterprise OSGi advocate Enterprise OSGi in Action (http://www.manning.com/cummins) ------------------- Date: Tue, 31 Jan 2012 23:31:05 +0100 Subject: Re: JPA extended persistence exception From: [email protected] To: [email protected] Hi, the goal is simple: configure some JPA properties via ConfigAdmin (so, no need to re-deploy a bundle fo simple tweaks). In the example, the configurable property is javax.persistence.jdbc.url but it could be applied to any property (e.g. it would be nice to set the logging level of the chosen JPA implementation). Luca On Tue, Jan 31, 2012 at 18:00, Timothy Ward <[email protected]> wrote: Hi, That's not an error I have seen before, and it has me a little stumped. I can look into it, but I can also warn you that EXTENDED scope EntityManagers are only supported by the Aries EJB component (Extended scope is defined in terms of Stateful Session Beans). What is it that you are trying to accomplish? Tim Ward ------------------- Apache Aries PMC member & Enterprise OSGi advocate Enterprise OSGi in Action (http://www.manning.com/cummins) ------------------- Date: Tue, 31 Jan 2012 11:51:39 +0100 Subject: JPA extended persistence exception From: [email protected] To: [email protected] Hi, I've deployed the following blueprint xml on Karaf (2.2.5) : <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.1.0" xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"> <cm:property-placeholder persistent-id="DM-CFG"> <cm:default-properties> <cm:property name="jdbc.url" value="jdbc:derby:./data/jpa;create=true"/> </cm:default-properties> </cm:property-placeholder> <bean id="DM" class="lb.sandbox.osgi.jpa.DataManager" init-method="init"> <jpa:context property="em" unitname="LBU" type="EXTENDED"> <map> <entry key="javax.persistence.jdbc.url" value="${jdbc.url}"/> </map> </jpa:context> </bean> <service ref="DM" interface="lb.sandbox.osgi.jpa.IDataManager"/> </blueprint> But I got the following exception even the example has been taken from the Aries webpage : 2012-01-20 15:55:22,471 | ERROR | rint Extender: 1 | BlueprintContainerImpl | container.BlueprintContainerImpl 358 | 9 - org.apache.aries.blueprint - 0.3.1 | Unable to start blueprint container for bundle lb.sandbox.osgi.jpa org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to validate xml at org.apache.aries.blueprint.container.Parser.validate(Parser.java:288)[9:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:275)[9:org.apache.aries.blueprint:0.3.1] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[9:org.apache.aries.blueprint:0.3.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_29] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_29] at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_29] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_29] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_29] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_29] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_29] at java.lang.Thread.run(Thread.java:662)[:1.6.0_29] Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'map'. One of '{"http://aries.apache.org/xmlns/jpa/v1.1.0":map}' is expected. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)[:1.6.0_29] at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)[:1.6.0_29] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)[:1.6.0_29] at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)[:1.6.0_29] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:417)[:1.6.0_29] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3182)[:1.6.0_29] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1806)[:1.6.0_29] at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705)[:1.6.0_29] at com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.beginNode(DOMValidatorHelper.java:273)[:1.6.0_29] at com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:240)[:1.6.0_29] at com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:186)[:1.6.0_29] at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:104)[:1.6.0_29] at javax.xml.validation.Validator.validate(Validator.java:127)[:1.6.0_29] at org.apache.aries.blueprint.container.Parser.validate(Parser.java:285)[9:org.apache.aries.blueprint:0.3.1] ... 10 more What's wrong ?
