You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by be...@apache.org on 2010/06/14 23:57:15 UTC
svn commit: r954658 -
/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java
Author: bergmark
Date: Mon Jun 14 21:57:15 2010
New Revision: 954658
URL: http://svn.apache.org/viewvc?rev=954658&view=rev
Log:
[OWB-397] Additional debug and new helper method inside WebBeansFinder
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java?rev=954658&r1=954657&r2=954658&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/config/WebBeansFinder.java Mon Jun 14 21:57:15 2010
@@ -22,6 +22,7 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.webbeans.exception.WebBeansException;
+import org.apache.webbeans.logger.WebBeansLogger;
import org.apache.webbeans.util.Asserts;
import org.apache.webbeans.util.WebBeansUtil;
@@ -34,6 +35,8 @@ import org.apache.webbeans.util.WebBeans
*/
public final class WebBeansFinder
{
+ private static WebBeansLogger logger = WebBeansLogger.getLogger(WebBeansFinder.class);
+
/**
* Keys --> ClassLoaders
* Values --> Maps of singleton class name with object
@@ -89,7 +92,12 @@ public final class WebBeansFinder
//Create instance
object = clazz.newInstance();
-
+
+ if (logger.wblWillLogDebug())
+ {
+ logger.debug("creating a new " + singletonName + ", object " + object.hashCode() + " in classloader " + formatClassloader(classLoader));
+ }
+
//Save it
managerMap.put(singletonName, object);
@@ -107,12 +115,40 @@ public final class WebBeansFinder
throw new WebBeansException("Class not found exception in creating instance with class : " + singletonName, e);
}
}
+ else if (logger.wblWillLogDebug())
+ {
+ logger.debug("returning existing object (" + object.hashCode() + ") for " + singletonName + " in classloader " + classLoader);
+ }
}
return object;
}
/**
+ * Gets singleton instance if one already exists
+ * @param singletonName singleton class name
+ * @param cl classloader of the deployment
+ * @return singleton instance or null if one doesn't already exist
+ */
+ public static Object getExistingSingletonInstance(String singletonName, ClassLoader cl)
+ {
+ Object object = null;
+ synchronized (singletonMap)
+ {
+ Map<String, Object> managerMap = singletonMap.get(cl);
+ if (managerMap == null)
+ {
+ return null;
+ }
+ else
+ {
+ object = managerMap.get(singletonName);
+ }
+ }
+ return object;
+ }
+
+ /**
* Clear all deployment instances when the application is undeployed.
* @param classloader of the deployment
*/
@@ -123,5 +159,15 @@ public final class WebBeansFinder
{
singletonMap.remove(classLoader);
}
- }
+ }
+
+ /**
+ * Formats the toString method of Classloader to a single line
+ * @param cl classloader to be formatted
+ * @return formatted string
+ */
+ public static String formatClassloader(ClassLoader cl)
+ {
+ return cl.toString().replaceAll("\\s\\s+|\\n|\\r", " ");
+ }
}
\ No newline at end of file