Author: scheu
Date: Sat Nov 6 16:00:29 2010
New Revision: 1032105
URL: http://svn.apache.org/viewvc?rev=1032105&view=rev
Log:
AXIS2-4873
Contributor: Rich Scheuerle
JAXBUtils is incorrectly avoiding the ClassFinder utility.
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java
Modified:
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java?rev=1032105&r1=1032104&r2=1032105&view=diff
==
---
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java
Sat Nov 6 16:00:29 2010
@@ -988,13 +988,27 @@ public class JAXBUtils {
* @throws ClassNotFoundException if error occurs getting package
*/
private static List getAllClassesFromPackage(String pkg,
ClassLoader cl) {
+if (log.isDebugEnabled()) {
+log.debug("Start: getAllClassesFromPackage for " + pkg);
+}
if (pkg == null) {
+if (log.isDebugEnabled()) {
+log.debug("End: getAllClassesFromPackage (package is null)");
+}
return new ArrayList();
}
// See if this is a special package that has a set of known classes.
List knownClasses = specialMap.get(pkg);
if (knownClasses != null) {
+if (log.isDebugEnabled()) {
+try {
+log.debug("End: getAllClassesFromPackage (package is
special) returning: " + knownClasses);
+} catch(Throwable t) {
+// In case classes cannot be toString'd
+log.debug("End: getAllClassesFromPackage (package is
special)");
+}
+}
return knownClasses;
}
@@ -1004,8 +1018,11 @@ public class JAXBUtils {
ArrayList classes = new ArrayList();
+if (log.isDebugEnabled()) {
+log.debug("Start: Obtain packages from similar directory");
+}
try {
-// This will load classes from directory
+//
List classesFromDir = getClassesFromDirectory(pkg, cl);
checkClasses(classesFromDir, pkg);
classes.addAll(classesFromDir);
@@ -1014,25 +1031,42 @@ public class JAXBUtils {
log.debug("getClassesFromDirectory failed to get Classes");
}
}
+if (log.isDebugEnabled()) {
+log.debug("End: Obtain packages from similar directory");
+log.debug("Start: Obtain packages from ClassFinder plugin");
+}
try {
-//If Clases not found in directory then look for jar that has
these classes
-if (classes.size() <= 0) {
-//This will load classes from jar file.
-ClassFinderFactory cff =
-
(ClassFinderFactory)FactoryRegistry.getFactory(ClassFinderFactory.class);
-ClassFinder cf = cff.getClassFinder();
-
-List classesFromJar = cf.getClassesFromJarFile(pkg, cl);
-
-checkClasses(classesFromJar, pkg);
-classes.addAll(classesFromJar);
-}
+//This will load classes from jar file.
+ClassFinderFactory cff =
+
(ClassFinderFactory)FactoryRegistry.getFactory(ClassFinderFactory.class);
+ClassFinder cf = cff.getClassFinder();
+
+List classesFromJar = cf.getClassesFromJarFile(pkg, cl);
+
+checkClasses(classesFromJar, pkg);
+classes.addAll(classesFromJar);
+
} catch (ClassNotFoundException e) {
if (log.isDebugEnabled()) {
log.debug("getClassesFromJarFile failed to get Classes");
}
}
+if (log.isDebugEnabled()) {
+log.debug("End: Obtain packages from ClassFinder plugin");
+}
+if (log.isDebugEnabled()) {
+log.debug("End: Obtain packages from ClassFinder plugin");
+}
+if (log.isDebugEnabled()) {
+
+try {
+log.debug("End: getAllClassesFromPackage for " + pkg + "with
classes " + classes);
+} catch (Throwable e) {
+// In case classes cannot be toString'd
+log.debug("End: getAllClassesFromPackage for " + pkg );
+}
+}
return classes;
}