src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BindInfo.java
Print this page
@@ -33,10 +33,11 @@
import java.util.Iterator;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlMixed;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@@ -44,20 +45,19 @@
import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import com.sun.codemodel.internal.JDocComment;
+import com.sun.xml.internal.bind.v2.WellKnownNamespace;
import com.sun.tools.internal.xjc.SchemaCache;
import com.sun.tools.internal.xjc.model.CCustomizations;
import com.sun.tools.internal.xjc.model.CPluginCustomization;
import com.sun.tools.internal.xjc.model.Model;
import com.sun.tools.internal.xjc.reader.Ring;
import com.sun.tools.internal.xjc.reader.xmlschema.BGMBuilder;
import com.sun.xml.internal.bind.annotation.XmlLocation;
import com.sun.xml.internal.bind.marshaller.MinimumEscapeHandler;
-import com.sun.xml.internal.bind.v2.WellKnownNamespace;
-import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl;
import com.sun.xml.internal.xsom.XSComponent;
import org.w3c.dom.Element;
import org.xml.sax.Locator;
@@ -67,11 +67,11 @@
* We use JAXB ourselves and parse this object from "xs:annotation".
*
* @author
* Kohsuke Kawaguchi (kohsuke,kawaguchi@sun.com)
*/
-@XmlRootElement(namespace=WellKnownNamespace.XML_SCHEMA,name="annotation")
+@XmlRootElement(namespace= WellKnownNamespace.XML_SCHEMA,name="annotation")
@XmlType(namespace=WellKnownNamespace.XML_SCHEMA,name="foobar")
public final class BindInfo implements Iterable<BIDeclaration> {
private BGMBuilder builder;
@@ -309,18 +309,18 @@
public final static BindInfo empty = new BindInfo();
/**
* Lazily prepared {@link JAXBContext}.
*/
- private static JAXBContextImpl customizationContext;
+ private static volatile JAXBContext customizationContext;
- public static JAXBContextImpl getJAXBContext() {
- synchronized(AnnotationParserFactoryImpl.class) {
+ public static JAXBContext getCustomizationContext() {
try {
- if(customizationContext==null)
- customizationContext = new JAXBContextImpl.JAXBContextBuilder().setClasses(
- new Class[] {
+ if (customizationContext == null) {
+ synchronized (BindInfo.class) {
+ if (customizationContext == null) {
+ customizationContext = JAXBContext.newInstance(
BindInfo.class, // for xs:annotation
BIClass.class,
BIConversion.User.class,
BIConversion.UserAdapter.class,
BIDom.class,
@@ -330,17 +330,26 @@
BIXSubstitutable.class,
BIEnum.class,
BIEnumMember.class,
BIGlobalBinding.class,
BIProperty.class,
- BISchemaBinding.class
- }).build();
+ BISchemaBinding.class);
+ }
+ }
+ }
return customizationContext;
} catch (JAXBException e) {
throw new AssertionError(e);
}
}
+
+ public static Unmarshaller getCustomizationUnmarshaller() {
+ try {
+ return getCustomizationContext().createUnmarshaller();
+ } catch (JAXBException e) {
+ throw new AssertionError(e);
+ }
}
/**
* Lazily parsed schema for the binding file.
*/