/*
* Copyright (C) 2014 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.tag.selection.json;
import com.fasterxml.jackson.core.Version;
import com.fasterxml.jackson.databind.AnnotationIntrospector;
import com.fasterxml.jackson.databind.Module;
import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
import com.intel.mtwilson.tag.selection.xml.AttributeType;
import com.intel.mtwilson.tag.selection.xml.CacheModeAttribute;
import com.intel.mtwilson.tag.selection.xml.DefaultType;
import com.intel.mtwilson.tag.selection.xml.SelectionType;
import com.intel.mtwilson.tag.selection.xml.SelectionsType;
import com.intel.mtwilson.tag.selection.xml.TextAttributeType;
/**
*
* @author jbuhacoff
*/
public class TagSelectionModule extends Module {
@Override
public String getModuleName() {
return "TagSelectionModule";
}
@Override
public Version version() {
return new Version(1,0,0,"com.intel.mtwilson.integration","mtwilson-tag-selection-json",null);
}
@Override
public void setupModule(SetupContext sc) {
sc.setMixInAnnotations(CacheModeAttribute.class, CacheModeAttributeMixIn.class);
sc.setMixInAnnotations(SelectionsType.class, SelectionsTypeMixIn.class);
sc.setMixInAnnotations(DefaultType.class, DefaultTypeMixIn.class);
sc.setMixInAnnotations(SelectionType.class, SelectionTypeMixIn.class);
sc.setMixInAnnotations(AttributeType.class, AttributeTypeMixIn.class);
sc.setMixInAnnotations(TextAttributeType.class, TextAttributeTypeMixIn.class);
// sc.appendAnnotationIntrospector(new JaxbAnnotationIntrospector(sc.getTypeFactory())); // still get <attribute><text><value>Country=US</value></text><oid>2.5.4.789.1</oid></attribute> with oid as a child tag of attribute instead of as a... attribute of attribute.
// sc.insertAnnotationIntrospector(new JaxbAnnotationIntrospector(sc.getTypeFactory())); // still get <attributes><text><value>Country=US</value></text><oid>2.5.4.789.1</oid></attributes>
}
}