Return-Path: Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: (qmail 52784 invoked from network); 30 Dec 2010 12:23:02 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 30 Dec 2010 12:23:02 -0000 Received: (qmail 18913 invoked by uid 500); 30 Dec 2010 12:23:01 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 18686 invoked by uid 500); 30 Dec 2010 12:22:59 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 18344 invoked by uid 99); 30 Dec 2010 12:22:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Dec 2010 12:22:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Dec 2010 12:22:56 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 983C123889E7; Thu, 30 Dec 2010 12:22:34 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1053868 - /cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Date: Thu, 30 Dec 2010 12:22:34 -0000 To: commits@cxf.apache.org From: sergeyb@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101230122234.983C123889E7@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: sergeyb Date: Thu Dec 30 12:22:34 2010 New Revision: 1053868 URL: http://svn.apache.org/viewvc?rev=1053868&view=rev Log: [JAX-RS] Minor update to AbstractJAXBProvider to simplify the checks and minimise the noise to do with the creation of package contexts Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java?rev=1053868&r1=1053867&r2=1053868&view=diff ============================================================================== --- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java (original) +++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java Thu Dec 30 12:22:34 2010 @@ -385,7 +385,7 @@ public abstract class AbstractJAXBProvid JAXBContext context = packageContexts.get(packageName); if (context == null) { try { - if (type.getClassLoader() != null) { + if (type.getClassLoader() != null && objectFactoryOrIndexAvailable(type)) { context = JAXBContext.newInstance(packageName, type.getClassLoader(), cProperties); packageContexts.put(packageName, context); } @@ -406,24 +406,19 @@ public abstract class AbstractJAXBProvid } return type.getAnnotation(XmlRootElement.class) != null || JAXBElement.class.isAssignableFrom(type) - || objectFactoryForClass(type) + || objectFactoryOrIndexAvailable(type) || (type != genericType && objectFactoryForType(genericType)) - || getAdapter(type, anns) != null - || type.getResource("jaxb.index") != null; + || getAdapter(type, anns) != null; } - protected boolean objectFactoryForClass(Class type) { - try { - return type.getClassLoader().loadClass(PackageUtils.getPackageName(type) - + ".ObjectFactory") != null; - } catch (Exception ex) { - return false; - } + protected boolean objectFactoryOrIndexAvailable(Class type) { + return type.getResource("ObjectFactory.class") != null + || type.getResource("jaxb.index") != null; } private boolean objectFactoryForType(Type genericType) { - return objectFactoryForClass(InjectionUtils.getActualType(genericType)); + return objectFactoryOrIndexAvailable(InjectionUtils.getActualType(genericType)); } protected Unmarshaller createUnmarshaller(Class cls, Type genericType)