jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BindInfo.java
changeset 16791 fe5141eabb0e
parent 12009 4abb694f273a
child 22679 d785acd84a14
--- a/jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BindInfo.java	Wed Jul 05 18:49:16 2017 +0200
+++ b/jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/BindInfo.java	Tue Apr 09 14:51:13 2013 +0100
@@ -35,6 +35,7 @@
 
 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;
@@ -46,6 +47,7 @@
 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;
@@ -54,8 +56,6 @@
 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;
@@ -69,7 +69,7 @@
  * @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> {
 
@@ -311,33 +311,42 @@
     /**
      * Lazily prepared {@link JAXBContext}.
      */
-    private static JAXBContextImpl customizationContext;
+    private static volatile JAXBContext customizationContext;
 
-    public static JAXBContextImpl getJAXBContext() {
-        synchronized(AnnotationParserFactoryImpl.class) {
-            try {
-                if(customizationContext==null)
-                    customizationContext = new JAXBContextImpl.JAXBContextBuilder().setClasses(
-                        new Class[] {
-                            BindInfo.class, // for xs:annotation
-                            BIClass.class,
-                            BIConversion.User.class,
-                            BIConversion.UserAdapter.class,
-                            BIDom.class,
-                            BIFactoryMethod.class,
-                            BIInlineBinaryData.class,
-                            BIXDom.class,
-                            BIXSubstitutable.class,
-                            BIEnum.class,
-                            BIEnumMember.class,
-                            BIGlobalBinding.class,
-                            BIProperty.class,
-                            BISchemaBinding.class
-                        }).build();
-                return customizationContext;
-            } catch (JAXBException e) {
-                throw new AssertionError(e);
+    public static JAXBContext getCustomizationContext() {
+        try {
+            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,
+                                BIFactoryMethod.class,
+                                BIInlineBinaryData.class,
+                                BIXDom.class,
+                                BIXSubstitutable.class,
+                                BIEnum.class,
+                                BIEnumMember.class,
+                                BIGlobalBinding.class,
+                                BIProperty.class,
+                                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);
         }
     }