You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2006/09/28 05:00:32 UTC

svn commit: r450674 - in /incubator/openjpa/trunk/openjpa-persistence/src/main: java/org/apache/openjpa/persistence/PersistenceProductDerivation.java resources/org/apache/openjpa/persistence/localizer.properties

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.