From 37eaab449059fb6d7519a7efeee3472d9547e17e Mon Sep 17 00:00:00 2001 From: Nate Jensen Date: Thu, 31 Oct 2013 18:23:00 -0500 Subject: [PATCH] Issue #2361 move ebxml away from using SerializationUtil for XML processing Change-Id: I04decec05b44a9c1881963f1a902adf6742aafa9 Former-commit-id: 5efd1b7218c7d9ccd2ca3b0c7df09d64887be1a6 [formerly 2413c854c05693c25a44cf1cfa88a5ee70713a75 [formerly ebf2c3c32945fefe8fd8c054b163fba238ac0ee5]] Former-commit-id: 2413c854c05693c25a44cf1cfa88a5ee70713a75 Former-commit-id: 2e28d72fb798047406cbb30097e6b810418a0046 --- .../registry/ebxml/encoder/JaxbEncoder.java | 8 +- .../META-INF/MANIFEST.MF | 3 +- ...f.common.serialization.ISerializableObject | 64 ----------- .../schemas/ebxml/util/EbxmlJaxbManager.java | 103 ++++++++++++++++++ .../schemas/ebxml/util/SerializedType.java | 41 ++++++- .../uf/edex/registry/ebxml/dao/DbInit.java | 27 +++-- .../query/adhoc/AdhocQueryExpression.java | 3 +- .../adhoc/AdhocQueryExpressionManager.java | 9 +- 8 files changed, 171 insertions(+), 87 deletions(-) delete mode 100644 edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject create mode 100644 edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/EbxmlJaxbManager.java diff --git a/edexOsgi/com.raytheon.uf.common.registry.ebxml/src/com/raytheon/uf/common/registry/ebxml/encoder/JaxbEncoder.java b/edexOsgi/com.raytheon.uf.common.registry.ebxml/src/com/raytheon/uf/common/registry/ebxml/encoder/JaxbEncoder.java index 3fae40334a..bf351c11f7 100644 --- a/edexOsgi/com.raytheon.uf.common.registry.ebxml/src/com/raytheon/uf/common/registry/ebxml/encoder/JaxbEncoder.java +++ b/edexOsgi/com.raytheon.uf.common.registry.ebxml/src/com/raytheon/uf/common/registry/ebxml/encoder/JaxbEncoder.java @@ -23,8 +23,8 @@ import static com.raytheon.uf.common.registry.ebxml.encoder.RegistryEncoders.Typ import javax.xml.bind.JAXBException; +import com.raytheon.uf.common.registry.schemas.ebxml.util.EbxmlJaxbManager; import com.raytheon.uf.common.serialization.SerializationException; -import com.raytheon.uf.common.serialization.SerializationUtil; /** * A {@link StringBasedEncoder} implementation that uses JAXB. Package-private @@ -38,6 +38,7 @@ import com.raytheon.uf.common.serialization.SerializationUtil; * ------------ ---------- ----------- -------------------------- * Sep 07, 2012 1102 djohnson Initial creation * Jun 03, 2013 2038 djohnson Add equals/hashcode. + * Oct 31, 2013 2361 njensen Use specific JAXBManager instead of SerializationUtil * * * @@ -60,7 +61,7 @@ class JaxbEncoder extends StringBasedEncoder { @Override Object decodeContent(String content) throws SerializationException { try { - return SerializationUtil.unmarshalFromXml(Object.class, content); + return EbxmlJaxbManager.getJaxbManager().unmarshalFromXml(content); } catch (JAXBException e) { throw new SerializationException("Unable to decode the object!", e); } @@ -72,7 +73,8 @@ class JaxbEncoder extends StringBasedEncoder { @Override String encodeContent(Object objectToEncode) throws SerializationException { try { - return new String(SerializationUtil.marshalToXml(objectToEncode)); + return new String(EbxmlJaxbManager.getJaxbManager().marshalToXml( + objectToEncode)); } catch (JAXBException e) { throw new SerializationException("Unable to encode the object!", e); } diff --git a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/MANIFEST.MF b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/MANIFEST.MF index 5fe77199b3..399a674add 100644 --- a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/MANIFEST.MF +++ b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/MANIFEST.MF @@ -12,7 +12,8 @@ Require-Bundle: javax.persistence;bundle-version="1.0.0", com.raytheon.uf.edex.database;bundle-version="1.0.0", org.apache.commons.cxf;bundle-version="1.0.0", com.raytheon.uf.common.status;bundle-version="1.12.1174", - com.raytheon.uf.common.util;bundle-version="1.12.1174" + com.raytheon.uf.common.util;bundle-version="1.12.1174", + org.reflections;bundle-version="0.9.9" Export-Package: com.raytheon.uf.common.registry, com.raytheon.uf.common.registry.schemas.ebxml.util, com.raytheon.uf.common.registry.schemas.ebxml.util.annotations, diff --git a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject deleted file mode 100644 index 527302bcff..0000000000 --- a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/META-INF/services/com.raytheon.uf.common.serialization.ISerializableObject +++ /dev/null @@ -1,64 +0,0 @@ -oasis.names.tc.ebxml.regrep.xsd.lcm.v4.ObjectFactory -oasis.names.tc.ebxml.regrep.xsd.query.v4.ObjectFactory -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ObjectFactory -oasis.names.tc.ebxml.regrep.xsd.rs.v4.ObjectFactory -oasis.names.tc.ebxml.regrep.xsd.spi.v4.ObjectFactory -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ActionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.AnyValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.AssociationType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.AuditableEventType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.BooleanValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ClassificationNodeType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ClassificationSchemeType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ClassificationType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.CollectionValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.DateTimeValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.DeliveryInfoType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.DurationValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.EmailAddressType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.EntryType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExternalIdentifierType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExternalLinkType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ExtrinsicObjectType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.FederationType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.FloatValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.IntegerValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.InternationalStringType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.InternationalStringValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.LocalizedStringType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.MapType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.MapValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.NotificationType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ObjectRefListType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ObjectRefType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.OrganizationType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ParameterType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.PersonNameType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.PersonType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.PostalAddressType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.QueryDefinitionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.QueryExpressionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.QueryType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectListType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryObjectType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryPackageType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.RegistryType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.RoleType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceBindingType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceEndpointType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceInterfaceType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ServiceType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.SimpleLinkType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.SlotType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.SlotValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.StringQueryExpressionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.StringValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.SubscriptionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.TaxonomyElementType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.TelephoneNumberType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.ValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.VocabularyTermType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.VocabularyTermValueType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.WorkflowActionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.XMLQueryExpressionType -oasis.names.tc.ebxml.regrep.xsd.rim.v4.DynamicObjectRefType \ No newline at end of file diff --git a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/EbxmlJaxbManager.java b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/EbxmlJaxbManager.java new file mode 100644 index 0000000000..e11abcba09 --- /dev/null +++ b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/EbxmlJaxbManager.java @@ -0,0 +1,103 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ +package com.raytheon.uf.common.registry.schemas.ebxml.util; + +import java.util.Set; + +import javax.xml.bind.JAXBException; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRegistry; + +import org.reflections.Reflections; +import org.reflections.scanners.TypeAnnotationsScanner; +import org.reflections.util.ClasspathHelper; +import org.reflections.util.ConfigurationBuilder; + +import com.raytheon.uf.common.serialization.JAXBManager; + +/** + * A JAXB Manager for transforming EBXML objects to/from XML. + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * Oct 30, 2013 2361       njensen     Initial creation
+ * 
+ * 
+ * + * @author njensen + * @version 1.0 + */ + +public class EbxmlJaxbManager { + + private static JAXBManager jaxb; + + /** + * Uses reflections to scan for ebxml datadelivery registry classes that can + * be transformed to/from xml, and then adds in the ebxml object factories. + * + * @return the classes it found without any duplicates + */ + private static Class[] getClasses() { + String[] packageNames = new String[] { + "com.raytheon.uf.common.datadelivery.registry" }; + + long t0 = System.currentTimeMillis(); + ConfigurationBuilder cb = new ConfigurationBuilder(); + for (String pkg : packageNames) { + cb.addUrls(ClasspathHelper.forPackage(pkg)); + } + cb.setScanners(new TypeAnnotationsScanner()); + // the call to build() will do the actual scanning so the separate + // calls to getTypesAnnotatedWith(class, false) will not slow it down + Reflections reflecs = cb.build(); + Set> set = reflecs.getTypesAnnotatedWith( + XmlAccessorType.class, false); + set.addAll(reflecs.getTypesAnnotatedWith(XmlRegistry.class, false)); + long t1 = System.currentTimeMillis(); + System.out.println("Found " + set.size() + " classes for ebxml in " + + (t1 - t0) + " ms"); + + set.add(oasis.names.tc.ebxml.regrep.xsd.lcm.v4.ObjectFactory.class); + set.add(oasis.names.tc.ebxml.regrep.xsd.query.v4.ObjectFactory.class); + set.add(oasis.names.tc.ebxml.regrep.xsd.rim.v4.ObjectFactory.class); + set.add(oasis.names.tc.ebxml.regrep.xsd.rs.v4.ObjectFactory.class); + set.add(oasis.names.tc.ebxml.regrep.xsd.spi.v4.ObjectFactory.class); + + return set.toArray(new Class[0]); + } + + public static synchronized JAXBManager getJaxbManager() + throws JAXBException { + if (jaxb == null) { + jaxb = new JAXBManager(getClasses()); + } + return jaxb; + } + + private EbxmlJaxbManager() { + + } + +} diff --git a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/SerializedType.java b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/SerializedType.java index 0e9f5fe1e8..f6c7944b3c 100644 --- a/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/SerializedType.java +++ b/edexOsgi/com.raytheon.uf.common.registry.schemas.ebxml/src/com/raytheon/uf/common/registry/schemas/ebxml/util/SerializedType.java @@ -1,3 +1,23 @@ +/** + * This software was developed and / or modified by Raytheon Company, + * pursuant to Contract DG133W-05-CQ-1067 with the US Government. + * + * U.S. EXPORT CONTROLLED TECHNICAL DATA + * This software product contains export-restricted data whose + * export/transfer/disclosure is restricted by U.S. law. Dissemination + * to non-U.S. persons whether in the United States or abroad requires + * an export license or other authorization. + * + * Contractor Name: Raytheon Company + * Contractor Address: 6825 Pine Street, Suite 340 + * Mail Stop B8 + * Omaha, NE 68106 + * 402.291.0100 + * + * See the AWIPS II Master Rights File ("Master Rights File.pdf") for + * further licensing information. + **/ + package com.raytheon.uf.common.registry.schemas.ebxml.util; import java.io.Serializable; @@ -11,8 +31,21 @@ import javax.xml.datatype.XMLGregorianCalendar; import org.hibernate.HibernateException; import org.hibernate.usertype.UserType; -import com.raytheon.uf.common.serialization.SerializationUtil; - +/** + * A serialized type + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * --/--/----                          Initial creation
+ * Oct 31, 2013 2361      njensen      Use specific JAXBManager instead of SerializationUtil
+ * 
+ * 
+ * + */ public class SerializedType implements UserType { /** Stored as a varchar in the databse */ @@ -60,7 +93,7 @@ public class SerializedType implements UserType { if (obj != null) { try { - return SerializationUtil.getJaxbManager().unmarshalFromXml(obj); + return EbxmlJaxbManager.getJaxbManager().unmarshalFromXml(obj); } catch (Exception e) { throw new HibernateException("Error retrieving AnyType data", e); } @@ -77,7 +110,7 @@ public class SerializedType implements UserType { } else { try { ; - statement.setString(index, SerializationUtil.getJaxbManager() + statement.setString(index, EbxmlJaxbManager.getJaxbManager() .marshalToXml(value)); } catch (Exception e) { throw new HibernateException("Error storing AnyType data", e); diff --git a/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/dao/DbInit.java b/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/dao/DbInit.java index a6e881f0b7..e0df2cef1d 100644 --- a/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/dao/DbInit.java +++ b/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/dao/DbInit.java @@ -36,6 +36,8 @@ import java.util.Map; import java.util.jar.JarEntry; import java.util.jar.JarFile; +import javax.xml.bind.JAXBException; + import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.LifecycleManager; import oasis.names.tc.ebxml.regrep.wsdl.registry.services.v4.MsgRegistryException; import oasis.names.tc.ebxml.regrep.xsd.lcm.v4.SubmitObjectsRequest; @@ -57,8 +59,8 @@ import com.google.common.annotations.VisibleForTesting; import com.raytheon.uf.common.localization.LocalizationFile; import com.raytheon.uf.common.localization.PathManagerFactory; import com.raytheon.uf.common.registry.ebxml.RegistryUtil; +import com.raytheon.uf.common.registry.schemas.ebxml.util.EbxmlJaxbManager; import com.raytheon.uf.common.serialization.SerializationException; -import com.raytheon.uf.common.serialization.SerializationUtil; import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.util.ReflectionUtil; @@ -79,13 +81,14 @@ import com.raytheon.uf.edex.registry.ebxml.init.RegistryInitializedListener; * ------------ ---------- ----------- -------------------------- * 2/9/2012 184 bphillip Initial Coding * 3/18/2013 1082 bphillip Changed to use transactional boundaries and spring injection - * 4/9/2013 1802 bphillip Changed submitObjects method call from submitObjectsInternal - * Apr 15, 2013 1693 djohnson Use a strategy to verify the database is up to date. + * 4/9/2013 1802 bphillip Changed submitObjects method call from submitObjectsInternal + * Apr 15, 2013 1693 djohnson Use a strategy to verify the database is up to date. * Apr 30, 2013 1960 djohnson Extend the generalized DbInit. - * 5/21/2013 2022 bphillip Using TransactionTemplate for database initialization - * May 29, 2013 1650 djohnson Reference LifecycleManager as interface type. - * Jun 24, 2013 2106 djohnson Invoke registry initialized listeners in their own transaction so + * 5/21/2013 2022 bphillip Using TransactionTemplate for database initialization + * May 29, 2013 1650 djohnson Reference LifecycleManager as interface type. + * Jun 24, 2013 2106 djohnson Invoke registry initialized listeners in their own transaction so * they can't fail the ebxml schema creation/population. + * Nov 01, 2013 2361 njensen Use EbxmlJaxbManager instead of SerializationUtil * * * @author bphillip @@ -162,9 +165,15 @@ public class DbInit extends com.raytheon.uf.edex.database.init.DbInit implements statusHandler.info("Populating RegRep database from file: " + fileList[i].getName()); - SubmitObjectsRequest obj = SerializationUtil - .jaxbUnmarshalFromXmlFile(SubmitObjectsRequest.class, - fileList[i]); + SubmitObjectsRequest obj = null; + try { + obj = EbxmlJaxbManager.getJaxbManager().unmarshalFromXmlFile( + SubmitObjectsRequest.class, fileList[i]); + } catch (JAXBException e) { + throw new SerializationException( + "Error unmarshalling from file: " + + fileList[i].getPath(), e); + } // Ensure an owner is assigned for (RegistryObjectType regObject : obj.getRegistryObjectList() diff --git a/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpression.java b/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpression.java index d4ebc97c42..cbf0885d5f 100644 --- a/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpression.java +++ b/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpression.java @@ -35,7 +35,8 @@ import javax.xml.bind.annotation.XmlRootElement; * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Feb 29, 2012 bphillip Initial creation + * Feb 29, 2012 bphillip Initial creation + * Oct 31, 2013 2361 njensen Use specific JAXBManager instead of SerializationUtil * * * diff --git a/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpressionManager.java b/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpressionManager.java index 8dd5a2e735..7b3d0f962e 100644 --- a/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpressionManager.java +++ b/edexOsgi/com.raytheon.uf.edex.registry.ebxml/src/com/raytheon/uf/edex/registry/ebxml/services/query/adhoc/AdhocQueryExpressionManager.java @@ -25,8 +25,7 @@ import java.util.Map; import com.raytheon.uf.common.localization.LocalizationFile; import com.raytheon.uf.common.localization.PathManagerFactory; -import com.raytheon.uf.common.serialization.SerializationException; -import com.raytheon.uf.common.serialization.SerializationUtil; +import com.raytheon.uf.common.registry.schemas.ebxml.util.EbxmlJaxbManager; import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.UFStatus; @@ -83,9 +82,9 @@ public class AdhocQueryExpressionManager { AdhocQueryExpression obj = null; try { - obj = (AdhocQueryExpression) SerializationUtil - .jaxbUnmarshalFromXmlFile(fileList[i]); - } catch (SerializationException e) { + obj = EbxmlJaxbManager.getJaxbManager().unmarshalFromXmlFile( + AdhocQueryExpression.class, fileList[i]); + } catch (Exception e) { statusHandler.error("Error getting predefined adhoc queries.", e); }