Author: rmannibucau
Date: Mon Sep 12 20:22:21 2011
New Revision: 1169907

URL: http://svn.apache.org/viewvc?rev=1169907&view=rev
Log:
trying to be more explicit about the library to remove when the API is old

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1169907&r1=1169906&r2=1169907&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 Mon Sep 12 20:22:21 2011
@@ -109,7 +109,6 @@ import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.jee.WebserviceDescription;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.resource.jdbc.DataSourceFactory;
 import org.apache.openejb.util.AnnotationUtil;
 import org.apache.openejb.util.Join;
 import org.apache.openejb.util.LogCategory;
@@ -3747,12 +3746,20 @@ public class AnnotationDeployer implemen
                 return cls.getMethod("lookup", null);
             } catch (NoSuchMethodException e) {
                 logger.error("lookup method is not available for " + 
cls.getName()
-                    + ". You probably have an old API in the classpath."
-                    + "Tomcat is known to have an old annotations-api.jar, 
maybe you should replace it.");
+                    + ". You probably have an old API -" + 
getSourceIfExists(cls) + "- in the classpath. "
+                    + getSourceIfExists(cls));
                 return null;
             }
         }
 
+        private static String getSourceIfExists(Class<?> cls) {
+            if (cls.getProtectionDomain() != null && 
cls.getProtectionDomain().getCodeSource() != null
+                && cls.getProtectionDomain().getCodeSource().getLocation() != 
null) {
+                return 
cls.getProtectionDomain().getCodeSource().getLocation().toString();
+            }
+            return "";
+        }
+
         private static String getLookupName(Resource resource) {
             String value = "";
             Method lookupMethod = getLookupMethod(Resource.class);


Reply via email to