All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.safelayer.rap.json.ObjectMapperFactory Maven / Gradle / Ivy

Go to download

The PKI Connector RESTAPI is a library that helps developing new PKI Connectors for TrustedX

The newest version!

package com.safelayer.rap.json;

import java.security.PublicKey;
import java.security.cert.X509Certificate;

import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;

public class ObjectMapperFactory {
	private static class MySingletonHolder {
		private static final ObjectMapperFactory INSTANCE = new ObjectMapperFactory();
	}

	private static Exception initError = null;

	private ObjectMapper objectMapper;
	private SimpleModule serializationModule;

	private ObjectMapperFactory() {
		try {
			objectMapper = new ObjectMapper();
			objectMapper.setSerializationInclusion(Include.NON_NULL);
			
			serializationModule = new SimpleModule(ObjectMapperFactory.class.getName(), new Version(1, 0, 0, null, null, null));
			serializationModule.addDeserializer(PublicKey.class, new PublicKeyDeserializer());
			serializationModule.addSerializer(PublicKey.class, new PublicKeySerializer());
			serializationModule.addDeserializer(X509Certificate.class, new X509CertificateDeserializer());
			serializationModule.addSerializer(X509Certificate.class, new X509CertificateSerializer());
			objectMapper.registerModule(serializationModule);
			
			objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
			objectMapper.configure(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE, false);
		}
		catch (Exception e) {
			initError = e;
		}
	}

	public ObjectMapper getObjectMapper() {
		return objectMapper;
	}

	public SimpleModule getSerializationModule() {
		return serializationModule;
	}

	public static ObjectMapperFactory getInstance() throws Exception {
		if (MySingletonHolder.INSTANCE == null)
			throw initError;

		return MySingletonHolder.INSTANCE;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy