Repository: cxf Updated Branches: refs/heads/3.0.x-fixes d9083457c -> 23fa3f6d7
[CXF-6191] Optionally avoiding depending on Spring in ClassHelper and ClasspathScanner Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/23fa3f6d Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/23fa3f6d Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/23fa3f6d Branch: refs/heads/3.0.x-fixes Commit: 23fa3f6d7e93159ab3bda7b3b400c34ba48a01b2 Parents: d908345 Author: Sergey Beryozkin <[email protected]> Authored: Wed Jan 14 17:00:25 2015 +0000 Committer: Sergey Beryozkin <[email protected]> Committed: Wed Jan 14 17:01:30 2015 +0000 ---------------------------------------------------------------------- .../org/apache/cxf/common/util/ClassHelper.java | 24 ++++++++++++++------ .../cxf/common/util/ClasspathScanner.java | 24 ++++++++++++++------ 2 files changed, 34 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/23fa3f6d/core/src/main/java/org/apache/cxf/common/util/ClassHelper.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/cxf/common/util/ClassHelper.java b/core/src/main/java/org/apache/cxf/common/util/ClassHelper.java index 98c249b..db2dbdb 100644 --- a/core/src/main/java/org/apache/cxf/common/util/ClassHelper.java +++ b/core/src/main/java/org/apache/cxf/common/util/ClassHelper.java @@ -28,19 +28,29 @@ import org.apache.cxf.BusFactory; public class ClassHelper { static final ClassHelper HELPER; static { - ClassHelper theHelper = null; - try { - theHelper = new SpringAopClassHelper(); - } catch (Throwable ex) { - theHelper = new ClassHelper(); - } - HELPER = theHelper; + HELPER = getClassHelper(); } protected ClassHelper() { } + private static ClassHelper getClassHelper() { + boolean useSpring = true; + String s = SystemPropertyAction.getPropertyOrNull("org.apache.cxf.useSpringClassHelpers"); + if (!StringUtils.isEmpty(s)) { + useSpring = "1".equals(s) || Boolean.parseBoolean(s); + } + if (useSpring) { + try { + return new SpringAopClassHelper(); + } catch (Throwable ex) { + // ignore + } + } + return new ClassHelper(); + } + protected Class<?> getRealClassInternal(Object o) { return o.getClass(); } http://git-wip-us.apache.org/repos/asf/cxf/blob/23fa3f6d/core/src/main/java/org/apache/cxf/common/util/ClasspathScanner.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/cxf/common/util/ClasspathScanner.java b/core/src/main/java/org/apache/cxf/common/util/ClasspathScanner.java index 41a491e..68674a3 100644 --- a/core/src/main/java/org/apache/cxf/common/util/ClasspathScanner.java +++ b/core/src/main/java/org/apache/cxf/common/util/ClasspathScanner.java @@ -37,13 +37,7 @@ public class ClasspathScanner { static final ClasspathScanner HELPER; static { - ClasspathScanner theHelper = null; - try { - theHelper = new SpringClasspathScanner(); - } catch (Throwable ex) { - theHelper = new ClasspathScanner(); - } - HELPER = theHelper; + HELPER = getClasspathScanner(); } // Default packages list to ignore during classpath scanning @@ -53,6 +47,22 @@ public class ClasspathScanner { protected ClasspathScanner() { } + private static ClasspathScanner getClasspathScanner() { + boolean useSpring = true; + String s = SystemPropertyAction.getPropertyOrNull("org.apache.cxf.useSpringClassHelpers"); + if (!StringUtils.isEmpty(s)) { + useSpring = "1".equals(s) || Boolean.parseBoolean(s); + } + if (useSpring) { + try { + return new SpringClasspathScanner(); + } catch (Throwable ex) { + // ignore + } + } + return new ClasspathScanner(); + } + /** * Scans list of base packages for all classes marked with specific annotations. * @param basePackage base package
