Search in sources :

Example 1 with CharacterEscapeHandler

use of org.eclipse.persistence.oxm.CharacterEscapeHandler in project eclipselink by eclipse-ee4j.

the class PropertyTestCases method testMarshallerCharacterEscapeHandler2.

public void testMarshallerCharacterEscapeHandler2() throws Exception {
    String SUN_CHARACTER_ESCAPE_HANDLER = "org.glassfish.jaxb.characterEscapeHandler";
    String SUN_JSE_CHARACTER_ESCAPE_HANDLER = "com.sun.xml.internal.bind.characterEscapeHandler";
    CharacterEscapeHandler handler = new CustomCharacterEscapeHandler();
    m.setProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER, handler);
    assertEquals(handler, m.getProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER));
    m.setProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER, null);
    assertNull(m.getProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER));
    m.setProperty(SUN_CHARACTER_ESCAPE_HANDLER, handler);
    assertEquals(handler, m.getProperty(SUN_CHARACTER_ESCAPE_HANDLER));
    m.setProperty(SUN_CHARACTER_ESCAPE_HANDLER, null);
    assertNull(m.getProperty(SUN_CHARACTER_ESCAPE_HANDLER));
    m.setProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER, handler);
    assertEquals(handler, m.getProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER));
    m.setProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER, null);
    assertNull(m.getProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER));
}
Also used : CharacterEscapeHandler(org.eclipse.persistence.oxm.CharacterEscapeHandler) CustomCharacterEscapeHandler(org.eclipse.persistence.testing.jaxb.xmlmarshaller.CustomCharacterEscapeHandler) CustomCharacterEscapeHandler(org.eclipse.persistence.testing.jaxb.xmlmarshaller.CustomCharacterEscapeHandler)

Example 2 with CharacterEscapeHandler

use of org.eclipse.persistence.oxm.CharacterEscapeHandler in project eclipselink by eclipse-ee4j.

the class XMLMarshalTestCases method testMarshalWithCharacterEscapeHandlerToFormattedOutputStreamRecord.

/**
 * Test for custom CharacterEscapeHandler and FormattedOutputStreamRecord with custom ByteArrayOutputStream output.
 */
public void testMarshalWithCharacterEscapeHandlerToFormattedOutputStreamRecord() {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    FormattedOutputStreamRecord record = new FormattedOutputStreamRecord();
    record.setOutputStream(byteArrayOutputStream);
    EmailAddress emailAddress = new EmailAddress();
    emailAddress.setDomain("%domain%%%");
    emailAddress.setUserID("%user%%%");
    marshaller.setFormattedOutput(false);
    marshaller.setFragment(true);
    CharacterEscapeHandler characterEscapeHandler = new CustomCharacterEscapeHandler();
    marshaller.setCharacterEscapeHandler(characterEscapeHandler);
    marshaller.marshal(emailAddress, record);
    assertEquals("<user-id>*user***</user-id><domain>*domain***</domain>", removeWhiteSpaceFromString(byteArrayOutputStream.toString()));
}
Also used : FormattedOutputStreamRecord(org.eclipse.persistence.oxm.record.FormattedOutputStreamRecord) CharacterEscapeHandler(org.eclipse.persistence.oxm.CharacterEscapeHandler) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 3 with CharacterEscapeHandler

use of org.eclipse.persistence.oxm.CharacterEscapeHandler in project eclipselink by eclipse-ee4j.

the class JAXBMarshaller method setProperty.

/**
 * Set a property on the JAXBMarshaller. Attempting to set any unsupported
 * property will result in a jakarta.xml.bind.PropertyException
 * @see org.eclipse.persistence.jaxb.MarshallerProperties
 */
@Override
public void setProperty(String key, Object value) throws PropertyException {
    try {
        if (key == null) {
            throw new IllegalArgumentException();
        } else {
            SessionLog logger = AbstractSessionLog.getLog();
            if (logger.shouldLog(SessionLog.FINE, SessionLog.MOXY)) {
                logger.log(SessionLog.FINE, SessionLog.MOXY, "moxy_set_marshaller_property", new Object[] { key, value });
            }
            if (MOXySystemProperties.moxyLogPayload != null && xmlMarshaller.isLogPayload() == null) {
                xmlMarshaller.setLogPayload(MOXySystemProperties.moxyLogPayload);
            }
            if (Constants.JAXB_FRAGMENT.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                Boolean fragment = (Boolean) value;
                xmlMarshaller.setFragment(fragment);
            } else if (JAXB_FORMATTED_OUTPUT.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                Boolean formattedOutput = (Boolean) value;
                xmlMarshaller.setFormattedOutput(formattedOutput);
            } else if (JAXB_ENCODING.equals(key)) {
                xmlMarshaller.setEncoding((String) value);
            } else if (JAXB_SCHEMA_LOCATION.equals(key)) {
                xmlMarshaller.setSchemaLocation((String) value);
            } else if (JAXB_NO_NAMESPACE_SCHEMA_LOCATION.equals(key)) {
                xmlMarshaller.setNoNamespaceSchemaLocation((String) value);
            } else if (MarshallerProperties.NAMESPACE_PREFIX_MAPPER.equals(key)) {
                if (value == null) {
                    xmlMarshaller.setNamespacePrefixMapper(null);
                } else if (value instanceof Map) {
                    NamespacePrefixMapper namespacePrefixMapper = new MapNamespacePrefixMapper((Map) value);
                    xmlMarshaller.setNamespacePrefixMapper(namespacePrefixMapper);
                } else {
                    xmlMarshaller.setNamespacePrefixMapper((NamespacePrefixMapper) value);
                }
            } else if (SUN_NAMESPACE_PREFIX_MAPPER.equals(key) || SUN_JSE_NAMESPACE_PREFIX_MAPPER.equals(key)) {
                if (value == null) {
                    xmlMarshaller.setNamespacePrefixMapper(null);
                } else {
                    xmlMarshaller.setNamespacePrefixMapper(new NamespacePrefixMapperWrapper(value));
                }
            } else if (MarshallerProperties.INDENT_STRING.equals(key) || SUN_INDENT_STRING.equals(key) || SUN_JSE_INDENT_STRING.equals(key)) {
                xmlMarshaller.setIndentString((String) value);
            } else if (MarshallerProperties.JSON_MARSHAL_EMPTY_COLLECTIONS.equals(key)) {
                xmlMarshaller.setMarshalEmptyCollections((Boolean) value);
            } else if (MarshallerProperties.JSON_REDUCE_ANY_ARRAYS.equals(key)) {
                xmlMarshaller.setReduceAnyArrays((Boolean) value);
            } else if (MarshallerProperties.JSON_WRAPPER_AS_ARRAY_NAME.equals(key)) {
                xmlMarshaller.setWrapperAsCollectionName((Boolean) value);
            } else if (MarshallerProperties.JSON_USE_XSD_TYPES_WITH_PREFIX.equals(key)) {
                xmlMarshaller.getJsonTypeConfiguration().setUseXsdTypesWithPrefix((Boolean) value);
            } else if (MarshallerProperties.JSON_TYPE_COMPATIBILITY.equals(key)) {
                xmlMarshaller.getJsonTypeConfiguration().setJsonTypeCompatibility((Boolean) value);
            } else if (MarshallerProperties.JSON_TYPE_ATTRIBUTE_NAME.equals(key)) {
                xmlMarshaller.getJsonTypeConfiguration().setJsonTypeAttributeName((String) value);
            } else if (MarshallerProperties.JSON_DISABLE_NESTED_ARRAY_NAME.equals(key)) {
                xmlMarshaller.getJsonTypeConfiguration().setJsonDisableNestedArrayName((Boolean) value);
            } else if (MarshallerProperties.CHARACTER_ESCAPE_HANDLER.equals(key)) {
                xmlMarshaller.setCharacterEscapeHandler((CharacterEscapeHandler) value);
            } else if (MarshallerProperties.MOXY_LOG_PAYLOAD.equals(key)) {
                xmlMarshaller.setLogPayload(((Boolean) value));
            } else if (MarshallerProperties.MOXY_LOGGING_LEVEL.equals(key)) {
                if (value instanceof String) {
                    AbstractSessionLog.getLog().setLevel(LogLevel.toValue((String) value).getId(), SessionLog.MOXY);
                } else {
                    AbstractSessionLog.getLog().setLevel(((LogLevel) value).getId(), SessionLog.MOXY);
                }
            } else if (SUN_CHARACTER_ESCAPE_HANDLER.equals(key) || SUN_JSE_CHARACTER_ESCAPE_HANDLER.equals(key) || SUN_CHARACTER_ESCAPE_HANDLER_MARSHALLER.equals(key) || SUN_JSE_CHARACTER_ESCAPE_HANDLER_MARSHALLER.equals(key)) {
                if (value == null) {
                    xmlMarshaller.setCharacterEscapeHandler(null);
                } else {
                    xmlMarshaller.setCharacterEscapeHandler(new CharacterEscapeHandlerWrapper(value));
                }
            } else if (XML_DECLARATION.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                Boolean fragment = !(Boolean) value;
                xmlMarshaller.setFragment(fragment);
            } else if (XML_HEADERS.equals(key)) {
                xmlMarshaller.setXmlHeader((String) value);
            } else if (OBJECT_IDENTITY_CYCLE_DETECTION.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                xmlMarshaller.setEqualUsingIdenity((Boolean) value);
            } else if (MarshallerProperties.MEDIA_TYPE.equals(key)) {
                MediaType mType = null;
                if (value instanceof MediaType) {
                    mType = (MediaType) value;
                } else if (value instanceof String) {
                    mType = MediaType.getMediaType((String) value);
                }
                if (mType == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                xmlMarshaller.setMediaType(mType);
            } else if (MarshallerProperties.JSON_ATTRIBUTE_PREFIX.equals(key)) {
                xmlMarshaller.setAttributePrefix((String) value);
            } else if (MarshallerProperties.JSON_INCLUDE_ROOT.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                xmlMarshaller.setIncludeRoot((Boolean) value);
            } else if (MarshallerProperties.JSON_VALUE_WRAPPER.equals(key)) {
                if (value == null || (((String) value).length() == 0)) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                xmlMarshaller.setValueWrapper((String) value);
            } else if (MarshallerProperties.JSON_NAMESPACE_SEPARATOR.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                xmlMarshaller.setNamespaceSeparator((Character) value);
            } else if (MarshallerProperties.OBJECT_GRAPH.equals(key)) {
                if (value == null) {
                    xmlMarshaller.setMarshalAttributeGroup(null);
                } else if (value instanceof ObjectGraphImpl) {
                    xmlMarshaller.setMarshalAttributeGroup(((ObjectGraphImpl) value).getAttributeGroup());
                } else if (value.getClass() == ClassConstants.STRING) {
                    xmlMarshaller.setMarshalAttributeGroup(value);
                } else {
                    throw org.eclipse.persistence.exceptions.JAXBException.invalidValueForObjectGraph(value);
                }
            } else if (MarshallerProperties.BEAN_VALIDATION_MODE.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                this.beanValidationMode = ((BeanValidationMode) value);
            } else if (MarshallerProperties.BEAN_VALIDATION_FACTORY.equals(key)) {
                // noinspection StatementWithEmptyBody
                if (value == null) {
                // Allow null value for preferred validation factory.
                }
                this.prefValidatorFactory = value;
            } else if (MarshallerProperties.BEAN_VALIDATION_GROUPS.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                this.beanValidationGroups = ((Class<?>[]) value);
            } else if (MarshallerProperties.BEAN_VALIDATION_NO_OPTIMISATION.equals(key)) {
                if (value == null) {
                    throw new PropertyException(key, Constants.EMPTY_STRING);
                }
                this.bvNoOptimisation = ((boolean) value);
            } else {
                throw new PropertyException(key, value);
            }
        }
    } catch (ClassCastException exception) {
        throw new PropertyException(key, exception);
    }
}
Also used : MapNamespacePrefixMapper(org.eclipse.persistence.internal.oxm.record.namespaces.MapNamespacePrefixMapper) PropertyException(jakarta.xml.bind.PropertyException) CharacterEscapeHandler(org.eclipse.persistence.oxm.CharacterEscapeHandler) ObjectGraphImpl(org.eclipse.persistence.internal.jaxb.ObjectGraphImpl) LogLevel(org.eclipse.persistence.logging.LogLevel) SessionLog(org.eclipse.persistence.logging.SessionLog) AbstractSessionLog(org.eclipse.persistence.logging.AbstractSessionLog) MediaType(org.eclipse.persistence.oxm.MediaType) NamespacePrefixMapperWrapper(org.eclipse.persistence.internal.oxm.record.namespaces.NamespacePrefixMapperWrapper) Map(java.util.Map) HashMap(java.util.HashMap) NamespacePrefixMapper(org.eclipse.persistence.oxm.NamespacePrefixMapper) MapNamespacePrefixMapper(org.eclipse.persistence.internal.oxm.record.namespaces.MapNamespacePrefixMapper)

Example 4 with CharacterEscapeHandler

use of org.eclipse.persistence.oxm.CharacterEscapeHandler in project eclipselink by eclipse-ee4j.

the class PropertyTestCases method testMarshallerCharacterEscapeHandler.

public void testMarshallerCharacterEscapeHandler() throws Exception {
    String SUN_CHARACTER_ESCAPE_HANDLER_MARSHALLER = "org.glassfish.jaxb.marshaller.CharacterEscapeHandler";
    String SUN_JSE_CHARACTER_ESCAPE_HANDLER_MARSHALLER = "com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler";
    CharacterEscapeHandler handler = new CustomCharacterEscapeHandler();
    m.setProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER, handler);
    assertEquals(handler, m.getProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER));
    m.setProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER, null);
    assertNull(m.getProperty(MarshallerProperties.CHARACTER_ESCAPE_HANDLER));
    m.setProperty(SUN_CHARACTER_ESCAPE_HANDLER_MARSHALLER, handler);
    assertEquals(handler, m.getProperty(SUN_CHARACTER_ESCAPE_HANDLER_MARSHALLER));
    m.setProperty(SUN_CHARACTER_ESCAPE_HANDLER_MARSHALLER, null);
    assertNull(m.getProperty(SUN_CHARACTER_ESCAPE_HANDLER_MARSHALLER));
    m.setProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER_MARSHALLER, handler);
    assertEquals(handler, m.getProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER_MARSHALLER));
    m.setProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER_MARSHALLER, null);
    assertNull(m.getProperty(SUN_JSE_CHARACTER_ESCAPE_HANDLER_MARSHALLER));
}
Also used : CharacterEscapeHandler(org.eclipse.persistence.oxm.CharacterEscapeHandler) CustomCharacterEscapeHandler(org.eclipse.persistence.testing.jaxb.xmlmarshaller.CustomCharacterEscapeHandler) CustomCharacterEscapeHandler(org.eclipse.persistence.testing.jaxb.xmlmarshaller.CustomCharacterEscapeHandler)

Aggregations

CharacterEscapeHandler (org.eclipse.persistence.oxm.CharacterEscapeHandler)4 CustomCharacterEscapeHandler (org.eclipse.persistence.testing.jaxb.xmlmarshaller.CustomCharacterEscapeHandler)2 PropertyException (jakarta.xml.bind.PropertyException)1 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 ObjectGraphImpl (org.eclipse.persistence.internal.jaxb.ObjectGraphImpl)1 MapNamespacePrefixMapper (org.eclipse.persistence.internal.oxm.record.namespaces.MapNamespacePrefixMapper)1 NamespacePrefixMapperWrapper (org.eclipse.persistence.internal.oxm.record.namespaces.NamespacePrefixMapperWrapper)1 AbstractSessionLog (org.eclipse.persistence.logging.AbstractSessionLog)1 LogLevel (org.eclipse.persistence.logging.LogLevel)1 SessionLog (org.eclipse.persistence.logging.SessionLog)1 MediaType (org.eclipse.persistence.oxm.MediaType)1 NamespacePrefixMapper (org.eclipse.persistence.oxm.NamespacePrefixMapper)1 FormattedOutputStreamRecord (org.eclipse.persistence.oxm.record.FormattedOutputStreamRecord)1