Hi Tim,

thanks for your detailed comments. They help to understand the overall situation and raise a couple of new questions - I need some time to check out the references you've given, and then I'll get back.

For now, just a quick remark on using Eclipselink with Aries JPA: I've tried to simply register the Eclipselink PersistenceProvider as an OSGi service, and this seems to do the trick both for Eclipselink 2.1.3 and 2.2.0.

I created a bundle containing nothing but the following Activator as a replacement for org.eclipse.persistence.jpa.osgi.

I haven't checked out more advanced things like weaving, but the sample project I set up a few months ago with Aries and OpenJPA now also works with Eclipselink.

Regards,
Harald

--------

package com.googlecode.osgienterprise.jpa.eclipselink;

import java.util.Hashtable;

import org.eclipse.persistence.jpa.PersistenceProvider;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {

public static final String PERSISTENCE_PROVIDER = "javax.persistence.provider"; public static final String ECLIPSELINK_OSGI_PROVIDER = "org.eclipse.persistence.jpa.PersistenceProvider";
    private static BundleContext context;


    @Override
    public void start(BundleContext context) throws Exception {
        Activator.context = context;
        registerProviderService();
    }

    public void registerProviderService() throws Exception {
        PersistenceProvider providerService = new PersistenceProvider();
        Hashtable<String, String> props = new Hashtable<String, String>();
        props.put(PERSISTENCE_PROVIDER, ECLIPSELINK_OSGI_PROVIDER);

context.registerService("javax.persistence.spi.PersistenceProvider", providerService, props);
    }

    @Override
    public void stop(BundleContext context) throws Exception {
    }

}

Reply via email to