Here you can find the source of isSunCanonicalization(@Nonnull final Marshaller aMarshaller)
public static boolean isSunCanonicalization(@Nonnull final Marshaller aMarshaller)
//package com.java2s; /**/*from ww w . j ava 2s. co m*/ * Copyright (C) 2014-2017 Philip Helger (www.helger.com) * philip[at]helger[dot]com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.xml.bind.Marshaller; import javax.xml.bind.PropertyException; public class Main { private static final String JAXB_INTERNAL_CLASS_NAME = "com.sun.xml.internal.bind.v2.runtime.MarshallerImpl"; private static final String SUN_C14N = "com.sun.xml.bind.c14n"; private static final String SUN_C14N_INTERNAL = "com.sun.xml.internal.bind.c14n"; public static boolean isSunCanonicalization(@Nonnull final Marshaller aMarshaller) { final String sPropertyName = isInternalSunJAXB2Marshaller(aMarshaller) ? SUN_C14N_INTERNAL : SUN_C14N; return _getBooleanProperty(aMarshaller, sPropertyName); } /** * Check if the passed marshaller is an internal one contained in the runtime. * * @param aMarshaller * The marshaller to check. May be <code>null</code>. * @return <code>true</code> if it is a JAXB marshaller from the runtime * library package */ public static boolean isInternalSunJAXB2Marshaller(@Nullable final Marshaller aMarshaller) { return aMarshaller != null && aMarshaller.getClass().getName().equals(JAXB_INTERNAL_CLASS_NAME); } private static boolean _getBooleanProperty(@Nonnull final Marshaller aMarshaller, @Nonnull final String sPropertyName) throws IllegalArgumentException { return ((Boolean) _getProperty(aMarshaller, sPropertyName)).booleanValue(); } @Nullable private static Object _getProperty(@Nonnull final Marshaller aMarshaller, @Nonnull final String sPropertyName) throws IllegalArgumentException { try { return aMarshaller.getProperty(sPropertyName); } catch (final PropertyException ex) { throw new IllegalArgumentException("Failed to get JAXB property '" + sPropertyName + "'", ex); } } }