You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/09/05 23:18:07 UTC

svn commit: r1381379 - /cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java

Author: dkulp
Date: Wed Sep  5 21:18:07 2012
New Revision: 1381379

URL: http://svn.apache.org/viewvc?rev=1381379&view=rev
Log:
[CXF-4497] Ability to skip the JAXB package scanning
Patch from Jason Pell applied

Modified:
    cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java

Modified: cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java?rev=1381379&r1=1381378&r2=1381379&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java (original)
+++ cxf/trunk/rt/databinding/jaxb/src/main/java/org/apache/cxf/jaxb/JAXBDataBinding.java Wed Sep  5 21:18:07 2012
@@ -99,6 +99,8 @@ public class JAXBDataBinding extends Abs
 
     public static final String USE_JAXB_BRIDGE = "use.jaxb.bridge";
 
+    public static final String JAXB_SCAN_PACKAGES = "jaxb.scanPackages";
+
     private static final Logger LOG = LogUtils.getLogger(JAXBDataBinding.class);
 
     private static final Class<?> SUPPORTED_READER_FORMATS[] = new Class<?>[] {Node.class,
@@ -194,7 +196,7 @@ public class JAXBDataBinding extends Abs
     private ValidationEventHandler validationEventHandler;
 
     private boolean unwrapJAXBElement = true;
-
+    private boolean scanPackages = true;
     private boolean qualifiedSchemas;
 
     private ModCountCopyOnWriteArrayList<Interceptor<? extends Message>> in
@@ -229,6 +231,9 @@ public class JAXBDataBinding extends Abs
             extraClass = (Class[])o;
         }
 
+        if (props != null && "false".equalsIgnoreCase((String) props.get(JAXB_SCAN_PACKAGES))) {
+            scanPackages = false;
+        }
     }
 
     public JAXBDataBinding(JAXBContext context) {
@@ -448,13 +453,14 @@ public class JAXBDataBinding extends Abs
                 classes.add(clz);
             }
         }
-        JAXBContextCache.scanPackages(classes);
+        if (scanPackages) {
+            JAXBContextCache.scanPackages(classes);
+        }
         addWsAddressingTypes(classes);
-
+        
         return JAXBContextCache.getCachedContextAndSchemas(classes, defaultNs,  
                                                           contextProperties, 
                                                           typeRefs, true);
-
     }