Author: ppoddar
Date: Wed Sep 27 20:00:31 2006
New Revision: 450674

URL: http://svn.apache.org/viewvc?view=rev&rev=450674
Log:
Adding informative messages when non-default Persistence Provider is configured.

Modified:
    
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
    
incubator/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties

Modified: 
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java?view=diff&rev=450674&r1=450673&r2=450674
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
 (original)
+++ 
incubator/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProductDerivation.java
 Wed Sep 27 20:00:31 2006
@@ -248,6 +248,8 @@
                 rsrc, String.valueOf(name)).getMessage(), 
getClass().getName(), 
                 rsrc);
         } else if (!isOpenJPAPersistenceProvider(pinfo, loader)) {
+            if (!explicit)
+                return Boolean.FALSE;
             throw new MissingResourceException(_loc.get("unknown-provider", 
                 rsrc, name, pinfo.getPersistenceProviderClassName()).
                 getMessage(), getClass().getName(), rsrc);
@@ -307,19 +309,31 @@
      */
     private static boolean isOpenJPAPersistenceProvider
         (PersistenceUnitInfo pinfo, ClassLoader loader) {
-        String name = pinfo.getPersistenceProviderClassName();
-        if (StringUtils.isEmpty(name) 
-            || PersistenceProviderImpl.class.getName().equals(name))
+        String provider = pinfo.getPersistenceProviderClassName();
+        if (StringUtils.isEmpty(provider) 
+            || PersistenceProviderImpl.class.getName().equals(provider))
             return true;
 
         if (loader == null)
             loader = Thread.currentThread().getContextClassLoader();
         try {
-            return PersistenceProviderImpl.class.isAssignableFrom
-                (Class.forName(name, false, loader));
+            if (PersistenceProviderImpl.class.isAssignableFrom
+                (Class.forName(provider, false, loader))) {
+                // log not configured yet
+                warn(_loc.get("extended-provider", provider).getMessage());
+                return true;
+            }
         } catch (Throwable t) {
+            warn(_loc.get("unloadable-provider", provider, t).
+                getMessage());
             return false;
         }
+        warn(_loc.get("unrecognized-provider", provider).getMessage());
+        return false;
+    }
+    
+    private static void warn(String msg) {
+        System.err.println(msg);
     }
 
     /**

Modified: 
incubator/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
URL: 
http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties?view=diff&rev=450674&r1=450673&r2=450674
==============================================================================
--- 
incubator/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
 (original)
+++ 
incubator/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
 Wed Sep 27 20:00:31 2006
@@ -93,7 +93,12 @@
 missing-no-arg-constructor: Entity listener class "{0}" must declare a no-arg \
        constructor. "AllowsNoArgConstructorCallback" property of 
MetaDataDefaults \
        can be set to true to ignore this exception.      
-
+extended-provider: WARNING: Configured to use extended Persistence Provider \
+       "{0}".
+unloadable-provider: WARNING: Can not load configured Persistence Provider \
+       "{0}" due to "{1}"
+unrecognized-provider: WARNING: Configured to use non-recognized Persistence \
+       Provider "{0}" 
 EntityManagerFactory-name: EntityManagerFactory implementation
 EntityManagerFactory-desc: Allows extension of standard \
     org.apache.openjpa.persistence.EntityManagerFactoryImpl for custom 
behavior.


Reply via email to