private void handlePotentialEclipseLink()

in jpa-container-eclipselink-adapter/src/main/java/org/apache/aries/jpa/eclipselink/adapter/Activator.java [97:122]


    private void handlePotentialEclipseLink(Bundle b) {
        if (!ECLIPSELINK_JPA_PROVIDER_BUNDLE_SYMBOLIC_NAME.equals(b.getSymbolicName())) {
            return;
        }
        if (registeredProviders.containsKey(b)) {
            return;
        }
        
        PersistenceProvider provider = createEclipselinkProvider(b);
        if (provider == null) {
            return;
        }

        LOG.debug("Adding new EclipseLink provider for bundle {}", b);
        PersistenceProvider proxiedProvider = new EclipseLinkPersistenceProvider(provider, b);
        
        Dictionary<String, Object> props = new Hashtable<String, Object>(); // NOSONAR
        props.put("org.apache.aries.jpa.container.weaving.packages", getJPAPackages(b));
        props.put("javax.persistence.provider", ECLIPSELINK_JPA_PROVIDER_CLASS_NAME);
        ServiceRegistration<?> reg = context.registerService(PersistenceProvider.class, proxiedProvider, props);
        
        ServiceRegistration<?> old = registeredProviders.putIfAbsent(b, reg);
        if (old != null) {
            reg.unregister();
        }
    }