View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2005 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  package ch.elca.el4j.services.remoting.jaxb.hibernate;
18  
19  import java.util.List;
20  
21  import javax.xml.bind.JAXBContext;
22  import javax.xml.bind.JAXBException;
23  
24  import com.sun.xml.bind.api.JAXBRIContext;
25  import com.sun.xml.bind.api.TypeReference;
26  import com.sun.xml.bind.v2.ContextFactory;
27  import com.sun.xml.bind.v2.model.annotation.RuntimeInlineAnnotationReader;
28  import com.sun.xml.ws.api.model.SEIModel;
29  import com.sun.xml.ws.developer.JAXBContextFactory;
30  
31  /**
32   * A customized {@link JAXBContext} that enables the {@link JAXBRIContext#XMLACCESSORFACTORY_SUPPORT}
33   * in order to getting rid of the LazyInitializationException when using JAXB together with Hibernate.
34   *
35   * @svnLink $Revision: 3945 $;$Date: 2009-10-16 09:31:52 +0200 (Fr, 16. Okt 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/remoting_jaxws/src/main/java/ch/elca/el4j/services/remoting/jaxb/hibernate/JAXBContextFactoryImpl.java $
36   *
37   * @author Do Phuong Hoang (PHD)
38   */
39  public class JAXBContextFactoryImpl implements JAXBContextFactory {
40  
41  	@Override
42  	public JAXBRIContext createJAXBContext(SEIModel seiModel, List<Class> classes, List<TypeReference> typeRefs)
43  		throws JAXBException {
44  		return ContextFactory.createContext(classes.toArray(new Class[classes.size()]), typeRefs, null, null, false,
45  			new RuntimeInlineAnnotationReader(), true, false);
46  	}
47  
48  }