You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ma...@apache.org on 2010/01/19 18:50:09 UTC
svn commit: r900865 - in /incubator/aries/trunk:
blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/mutable/
jpa/jpa-container-context/
jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/
jpa/jpa-container-con...
Author: mahrwald
Date: Tue Jan 19 17:49:50 2010
New Revision: 900865
URL: http://svn.apache.org/viewvc?rev=900865&view=rev
Log:
ARIES-118 Some fixes to make the stuff actually work :)
Modified:
incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/mutable/MutableServiceReferenceMetadata.java
incubator/aries/trunk/jpa/jpa-container-context/pom.xml
incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/GlobalPersistenceManager.java
incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java
incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java
incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/OSGI-INF/blueprint/jpa.xml
incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/org/apache/aries/jpa/container/context/namespace/jpa.xsd
incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManagerTest.java
incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java
incubator/aries/trunk/jpa/jpa-container/pom.xml
incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java
incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java
incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java
incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoImpl.java
incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
Modified: incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/mutable/MutableServiceReferenceMetadata.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/mutable/MutableServiceReferenceMetadata.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/mutable/MutableServiceReferenceMetadata.java (original)
+++ incubator/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/mutable/MutableServiceReferenceMetadata.java Tue Jan 19 17:49:50 2010
@@ -45,4 +45,5 @@
void setProxyMethod(int proxyMethod);
+ void setFilter(String filter);
}
Modified: incubator/aries/trunk/jpa/jpa-container-context/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/pom.xml?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/pom.xml (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/pom.xml Tue Jan 19 17:49:50 2010
@@ -95,6 +95,14 @@
<include>*.xml</include>
</includes>
</resource>
+ <resource>
+ <targetPath>org/apache/aries/jpa/container/context/namespace</targetPath>
+ <filtering>false</filtering>
+ <directory>${basedir}/src/main/resources/org/apache/aries/jpa/container/context/namespace</directory>
+ <includes>
+ <include>*.xsd</include>
+ </includes>
+ </resource>
</resources>
<plugins>
<plugin>
@@ -103,11 +111,13 @@
<extensions>true</extensions>
<configuration>
<instructions>
- <Bundle-SymbolicName>${pom.groupId}.container</Bundle-SymbolicName>
- <Export-Package>
- org.apache.aries.jpa.container.parsing;version="${pom.version}",
- org.apache.aries.jpa.container;version="${pom.version}"
- </Export-Package>
+ <Bundle-SymbolicName>${pom.groupId}.container.context</Bundle-SymbolicName>
+ <Import-Package>
+ javax.persistence;version="[1.0.0,1.2.0)",
+ javax.persistence.criteria;version="[1.1.0,1.2.0)";resolution:=optional,
+ javax.persistence.metamodel;version="[1.1.0,1.2.0)";resolution:=optional,
+ *
+ </Import-Package>
<_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
<_removeheaders>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</_removeheaders>
</instructions>
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/GlobalPersistenceManager.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/GlobalPersistenceManager.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/GlobalPersistenceManager.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/GlobalPersistenceManager.java Tue Jan 19 17:49:50 2010
@@ -55,6 +55,7 @@
manager = managers.get(frameworkBundle);
} else {
manager = new PersistenceContextManager(frameworkBundle.getBundleContext(), registry);
+ manager.open();
managers.put(frameworkBundle, manager);
frameworkBundle.getBundleContext().addBundleListener(this);
}
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManager.java Tue Jan 19 17:49:50 2010
@@ -233,6 +233,7 @@
Hashtable<String, Object> props = new Hashtable<String, Object>();
props.put(PersistenceUnitConstants.OSGI_UNIT_NAME, name);
+ props.put(PersistenceUnitConstants.OSGI_UNIT_VERSION, unit.getProperty(PersistenceUnitConstants.OSGI_UNIT_VERSION));
props.put(PersistenceUnitConstants.CONTAINER_MANAGED_PERSISTENCE_UNIT, Boolean.TRUE);
props.put(PersistenceUnitConstants.OSGI_UNIT_PROVIDER, unit.getProperty(PersistenceUnitConstants.OSGI_UNIT_PROVIDER));
props.put(PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME, "".equals(name));
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/java/org/apache/aries/jpa/container/context/namespace/NSHandler.java Tue Jan 19 17:49:50 2010
@@ -20,6 +20,7 @@
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -32,9 +33,7 @@
import org.apache.aries.blueprint.NamespaceHandler;
import org.apache.aries.blueprint.ParserContext;
import org.apache.aries.blueprint.PassThroughMetadata;
-import org.apache.aries.blueprint.mutable.MutableBeanProperty;
-import org.apache.aries.blueprint.reflect.BeanPropertyImpl;
-import org.apache.aries.blueprint.reflect.ReferenceMetadataImpl;
+import org.apache.aries.blueprint.mutable.MutableReferenceMetadata;
import org.apache.aries.jpa.container.PersistenceUnitConstants;
import org.apache.aries.jpa.container.context.PersistenceManager;
import org.osgi.framework.Bundle;
@@ -45,6 +44,7 @@
import org.osgi.service.blueprint.reflect.MapEntry;
import org.osgi.service.blueprint.reflect.MapMetadata;
import org.osgi.service.blueprint.reflect.Metadata;
+import org.osgi.service.blueprint.reflect.ReferenceMetadata;
import org.osgi.service.blueprint.reflect.Target;
import org.osgi.service.blueprint.reflect.ValueMetadata;
import org.w3c.dom.Element;
@@ -69,6 +69,8 @@
public static final String EMPTY_UNIT_NAME_FILTER =
"(" + PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME + "=true)";
+
+ private static final String ACTIVATION_EAGER = "EAGER";
private PersistenceManager manager;
@@ -94,7 +96,8 @@
throw new IllegalArgumentException();
final BeanProperty beanProperty = createInjectMetadata(element,
- TAG_UNIT.equals(element.getLocalName()) ? EntityManagerFactory.class : EntityManager.class);
+ TAG_UNIT.equals(element.getLocalName()) ? EntityManagerFactory.class : EntityManager.class,
+ context);
if (TAG_CONTEXT.equals(element.getLocalName())) {
Bundle client = getBlueprintBundle(context);
@@ -173,22 +176,34 @@
throw new UnsupportedOperationException();
}
- private BeanProperty createInjectMetadata(Element element, Class<?> clazz) {
+ private BeanProperty createInjectMetadata(Element element, Class<?> clazz, ParserContext ctx) {
String unitName = parseUnitName(element);
- String property = parseProperty(element);
+ final String property = parseProperty(element);
- ReferenceMetadataImpl refMetadata = new ReferenceMetadataImpl();
- refMetadata.setInterface(clazz.getName());
+ final MutableReferenceMetadata refMetadata = (MutableReferenceMetadata) ctx.createMetadata(ReferenceMetadata.class);
+ refMetadata.setActivation(ACTIVATION_EAGER.equalsIgnoreCase(ctx.getDefaultActivation()) ?
+ ReferenceMetadata.ACTIVATION_EAGER : ReferenceMetadata.ACTIVATION_LAZY);
+ refMetadata.setAvailability(ReferenceMetadata.AVAILABILITY_MANDATORY);
+ refMetadata.setInterface(clazz.getName());
+
if (!"".equals(unitName))
refMetadata.setFilter("(" + PersistenceUnitConstants.OSGI_UNIT_NAME + "=" + unitName + ")");
else
refMetadata.setFilter(EMPTY_UNIT_NAME_FILTER);
- MutableBeanProperty propertyMetadata = new BeanPropertyImpl();
- propertyMetadata.setName(property);
- propertyMetadata.setValue(refMetadata);
-
- return propertyMetadata;
+ refMetadata.setTimeout(Integer.parseInt(ctx.getDefaultTimeout()));
+ refMetadata.setDependsOn((List<String>) Collections.EMPTY_LIST);
+ refMetadata.setId(ctx.generateId());
+
+ return new BeanProperty() {
+ public Metadata getValue() {
+ return refMetadata;
+ }
+
+ public String getName() {
+ return property;
+ }
+ };
}
private Bundle getBlueprintBundle(ParserContext context) {
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/OSGI-INF/blueprint/jpa.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/OSGI-INF/blueprint/jpa.xml?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/OSGI-INF/blueprint/jpa.xml (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/OSGI-INF/blueprint/jpa.xml Tue Jan 19 17:49:50 2010
@@ -30,7 +30,7 @@
</bean>
</service>
- <bean id="persistenceManager" class="org.apache.aries.jpa.container.context">
+ <bean id="persistenceManager" class="org.apache.aries.jpa.container.context.GlobalPersistenceManager">
<property name="registry" ref="JtaPersistenceContextRegistry" />
</bean>
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/org/apache/aries/jpa/container/context/namespace/jpa.xsd
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/org/apache/aries/jpa/container/context/namespace/jpa.xsd?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/org/apache/aries/jpa/container/context/namespace/jpa.xsd (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/main/resources/org/apache/aries/jpa/container/context/namespace/jpa.xsd Tue Jan 19 17:49:50 2010
@@ -32,11 +32,11 @@
<xsd:complexType name="TcontextType">
<xsd:sequence>
- <xsd:element ref="osgi:map" minOccurs="0" maxOccurs="1" />
+ <xsd:element name="map" type="osgi:Tmap" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="property" type="xsd:string" use="required" />
<xsd:attribute name="unitname" type="xsd:string" use="optional" />
- <xsd:attribute name="type" type="contextScopeType" use="optional" />
+ <xsd:attribute name="type" type="TcontextScopeType" use="optional" />
</xsd:complexType>
<xsd:complexType name="TunitType">
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManagerTest.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManagerTest.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/impl/PersistenceContextManagerTest.java Tue Jan 19 17:49:50 2010
@@ -28,7 +28,6 @@
import javax.persistence.EntityManagerFactory;
import org.apache.aries.jpa.container.PersistenceUnitConstants;
-import org.apache.aries.jpa.container.context.impl.PersistenceContextManager;
import org.apache.aries.mocks.BundleContextMock;
import org.apache.aries.mocks.BundleMock;
import org.apache.aries.unittest.mocks.Skeleton;
@@ -40,6 +39,7 @@
import org.osgi.framework.InvalidSyntaxException;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.Version;
public class PersistenceContextManagerTest {
@@ -257,6 +257,7 @@
props.put(PersistenceUnitConstants.CONTAINER_MANAGED_PERSISTENCE_UNIT, managed);
props.put(PersistenceUnitConstants.OSGI_UNIT_PROVIDER, "some.provider.Name");
+ props.put(PersistenceUnitConstants.OSGI_UNIT_VERSION, new Version("1.0.0"));
return context.registerService(
EntityManagerFactory.class.getName(), emf, props);
@@ -273,6 +274,8 @@
assertEquals("Wrong provider name", "some.provider.Name", refs[0].getProperty(PersistenceUnitConstants.OSGI_UNIT_PROVIDER));
+ assertEquals("Wrong unit version", new Version("1.0.0"), refs[0].getProperty(PersistenceUnitConstants.OSGI_UNIT_VERSION));
+
assertEquals("Unit should be managed", Boolean.TRUE, refs[0].getProperty(PersistenceUnitConstants.CONTAINER_MANAGED_PERSISTENCE_UNIT));
}
}
Modified: incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java (original)
+++ incubator/aries/trunk/jpa/jpa-container-context/src/test/java/org/apache/aries/jpa/container/context/namespace/NSHandlerTest.java Tue Jan 19 17:49:50 2010
@@ -35,6 +35,7 @@
import org.apache.aries.blueprint.PassThroughMetadata;
import org.apache.aries.blueprint.container.Parser;
import org.apache.aries.blueprint.reflect.BeanMetadataImpl;
+import org.apache.aries.blueprint.reflect.ReferenceMetadataImpl;
import org.apache.aries.jpa.container.context.PersistenceManager;
import org.apache.aries.unittest.mocks.MethodCall;
import org.apache.aries.unittest.mocks.Skeleton;
@@ -44,6 +45,7 @@
import org.osgi.service.blueprint.reflect.BeanMetadata;
import org.osgi.service.blueprint.reflect.BeanProperty;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
+import org.osgi.service.blueprint.reflect.Metadata;
import org.osgi.service.blueprint.reflect.ReferenceMetadata;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -83,19 +85,27 @@
parserCtx = Skeleton.newMock(new ParserContextMock(), ParserContext.class);
Skeleton.getSkeleton(parserCtx).setReturnValue(
new MethodCall(ParserContext.class,"getComponentDefinitionRegistry"), registry);
+ Skeleton.getSkeleton(parserCtx).setReturnValue(
+ new MethodCall(ParserContext.class, "getDefaultActivation"), "eager");
+ Skeleton.getSkeleton(parserCtx).setReturnValue(
+ new MethodCall(ParserContext.class, "getDefaultTimeout"), "5000");
}
private static class ParserContextMock {
public<T> T parseElement(Class<T> type, ComponentMetadata enclosingComponent, Element element) {
return new Parser().parseElement(type, enclosingComponent, element);
}
+
+ public<T extends Metadata> T createMetadata(Class<T> clazz) {
+ return clazz.cast(new ReferenceMetadataImpl());
+ }
}
@Test
public void testUnit() {
Element e = getTestElement("unit");
BeanMetadata bean =
- (BeanMetadata) sut.decorate(e, Skeleton.newMock(BeanMetadata.class), null);
+ (BeanMetadata) sut.decorate(e, Skeleton.newMock(BeanMetadata.class), parserCtx);
BeanProperty property = (BeanProperty) bean.getProperties().get(0);
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
@@ -110,7 +120,7 @@
public void testUnitNoName() {
Element e = getTestElement("unitNoName");
BeanMetadata bean =
- (BeanMetadata) sut.decorate(e, Skeleton.newMock(BeanMetadata.class), null);
+ (BeanMetadata) sut.decorate(e, Skeleton.newMock(BeanMetadata.class), parserCtx);
BeanProperty property = (BeanProperty) bean.getProperties().get(0);
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
@@ -122,7 +132,7 @@
public void testEmptyUnitName() {
Element e = getTestElement("emptyUnitName");
BeanMetadata bean =
- (BeanMetadata) sut.decorate(e, Skeleton.newMock(BeanMetadata.class), null);
+ (BeanMetadata) sut.decorate(e, Skeleton.newMock(BeanMetadata.class), parserCtx);
BeanProperty property = (BeanProperty) bean.getProperties().get(0);
ReferenceMetadata reference = (ReferenceMetadata) property.getValue();
@@ -137,7 +147,7 @@
oldBean.setId("myid");
oldBean.setProperties(Arrays.asList(Skeleton.newMock(BeanProperty.class)));
- BeanMetadata bean = (BeanMetadata) sut.decorate(e, oldBean, null);
+ BeanMetadata bean = (BeanMetadata) sut.decorate(e, oldBean, parserCtx);
assertEquals("myid", bean.getId());
assertEquals(2, bean.getProperties().size());
Modified: incubator/aries/trunk/jpa/jpa-container/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/pom.xml?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/pom.xml (original)
+++ incubator/aries/trunk/jpa/jpa-container/pom.xml Tue Jan 19 17:49:50 2010
@@ -87,6 +87,11 @@
<configuration>
<instructions>
<Bundle-SymbolicName>${pom.groupId}.container</Bundle-SymbolicName>
+ <Import-Package>
+ javax.persistence;version="[1.0.0,1.2.0)",
+ javax.persistence.spi;version="[1.0.0,1.2.0)",
+ *
+ </Import-Package>
<Export-Package>
org.apache.aries.jpa.container.parsing;version="${pom.version}",
org.apache.aries.jpa.container;version="${pom.version}"
Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/PersistenceUnitConstants.java Tue Jan 19 17:49:50 2010
@@ -26,6 +26,8 @@
public interface PersistenceUnitConstants {
/** The service property key mapped to the persistence unit name */
public static final String OSGI_UNIT_NAME = "osgi.unit.name";
+ /** The version of the persistence bundle as a {@link Version} object*/
+ public static final String OSGI_UNIT_VERSION = "osgi.unit.version";
/** The service property key mapped to the {@link PersistenceProvider} implementation class name */
public static final String OSGI_UNIT_PROVIDER = "osgi.unit.provider";
/** The service property key mapped to a Boolean indicating whether this persistence unit is container managed */
Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerFactoryManager.java Tue Jan 19 17:49:50 2010
@@ -180,6 +180,7 @@
props.put(PersistenceUnitConstants.OSGI_UNIT_NAME, unitName);
props.put(PersistenceUnitConstants.OSGI_UNIT_PROVIDER, providerName);
+ props.put(PersistenceUnitConstants.OSGI_UNIT_VERSION, provider.getBundle().getVersion());
props.put(PersistenceUnitConstants.CONTAINER_MANAGED_PERSISTENCE_UNIT, Boolean.TRUE);
props.put(PersistenceUnitConstants.EMPTY_PERSISTENCE_UNIT_NAME, "".equals(unitName));
try {
Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java Tue Jan 19 17:49:50 2010
@@ -39,7 +39,7 @@
Collection<ManagedPersistenceUnitInfo> managedUnits = new ArrayList<ManagedPersistenceUnitInfo>();
for(ParsedPersistenceUnit unit : persistenceMetadata)
- managedUnits.add(new ManagedPersistenceUnitInfoImpl(persistenceBundle, unit));
+ managedUnits.add(new ManagedPersistenceUnitInfoImpl(persistenceBundle, unit, providerReference));
return managedUnits;
}
Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoImpl.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoImpl.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoImpl.java Tue Jan 19 17:49:50 2010
@@ -25,14 +25,17 @@
import org.apache.aries.jpa.container.ManagedPersistenceUnitInfo;
import org.apache.aries.jpa.container.parsing.ParsedPersistenceUnit;
import org.osgi.framework.Bundle;
+import org.osgi.framework.ServiceReference;
public class ManagedPersistenceUnitInfoImpl implements
ManagedPersistenceUnitInfo {
private final PersistenceUnitInfo info;
+
public ManagedPersistenceUnitInfoImpl(Bundle persistenceBundle,
- ParsedPersistenceUnit unit) {
- info = new PersistenceUnitInfoImpl(persistenceBundle, unit);
+ ParsedPersistenceUnit unit,
+ ServiceReference providerRef) {
+ info = new PersistenceUnitInfoImpl(persistenceBundle, unit, providerRef);
}
public Map<String, Object> getContainerProperties() {
Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java Tue Jan 19 17:49:50 2010
@@ -34,6 +34,7 @@
import org.apache.aries.jpa.container.parsing.ParsedPersistenceUnit;
import org.osgi.framework.Bundle;
+import org.osgi.framework.ServiceReference;
public class PersistenceUnitInfoImpl implements PersistenceUnitInfo {
@@ -43,10 +44,13 @@
private final BundleDelegatingClassLoader cl;
- public PersistenceUnitInfoImpl (Bundle b, ParsedPersistenceUnit parsedData)
+ private final ServiceReference providerRef;
+
+ public PersistenceUnitInfoImpl (Bundle b, ParsedPersistenceUnit parsedData, ServiceReference providerRef)
{
bundle = b;
unit = parsedData;
+ this.providerRef = providerRef;
cl = new BundleDelegatingClassLoader(b);
}
@@ -98,7 +102,7 @@
}
public ClassLoader getNewTempClassLoader() {
- return new TempBundleDelegatingClassLoader(bundle);
+ return new TempBundleDelegatingClassLoader(bundle, new BundleDelegatingClassLoader(providerRef.getBundle()));
}
public DataSource getNonJtaDataSource() {
Modified: incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java?rev=900865&r1=900864&r2=900865&view=diff
==============================================================================
--- incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java (original)
+++ incubator/aries/trunk/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/TempBundleDelegatingClassLoader.java Tue Jan 19 17:49:50 2010
@@ -34,7 +34,8 @@
private final Bundle bundle;
- public TempBundleDelegatingClassLoader(Bundle b) {
+ public TempBundleDelegatingClassLoader(Bundle b, ClassLoader parent) {
+ super(parent);
bundle = b;
}