BundleUtils.getBundleClassLoader() is utterly complicated.
----------------------------------------------------------

                 Key: OPENJPA-1924
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1924
             Project: OpenJPA
          Issue Type: Improvement
          Components: osgi
    Affects Versions: 2.0.1
         Environment: apache-karaf-2.1.2, openjdk-1.6.0b18
            Reporter: Wolfgang Glas
            Priority: Minor


I reviewed the code in

  org.apache.openjpa.persistence.osgi

and could not find a point, why the code in BundleUtils.getBundleClassLoader() 
uses yet-another implmementation of a class loader 
(BundleDelegatingClassLoader) in order to acces the class laoder of the openjpa 
bundle.

IMHO, BundleUtils.getBundleClassLoader() should simply read

    public static ClassLoader getBundleClassLoader() {
   
        if (runningUnderOSGi()) {
           return BundleUtils.class.getClassLoader();
        }
       else {
           return null;
       }
    }

rendering the BundleDelegatindClassLoader class and the 
PersistenceActivator.getBundleClassLoader() method useless.

Rationale: BundleUtils is a class, that lives inside the openjpa bundle and 
therefore has been loaded by the OSGi framework using a class loader, which 
knows the bundle's class and furthermore delegates to the imported packages 
from other bundles or the OSGi framework, aka the bundle class loader.

Simplifying the code like suggested is not a big leap, but it helps to keep the 
code small and readable ;-)

  Best regards,

    Wolfgang

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to