List of usage examples for com.fasterxml.jackson.databind InjectableValues InjectableValues
InjectableValues
From source file:com.sonatype.nexus.perftest.PerformanceTestRunner.java
public static void main(String[] args) throws Exception { final Nexus nexus = new Nexus(); ObjectMapper mapper = new XmlMapper(); mapper.setInjectableValues(new InjectableValues() { @Override/*from w ww . j a v a 2s .c om*/ public Object findInjectableValue(Object valueId, DeserializationContext ctxt, BeanProperty forProperty, Object beanInstance) { if (Nexus.class.getName().equals(valueId)) { return nexus; } return null; } }); File src = new File(args[0]).getCanonicalFile(); System.out.format("Using test configuration %s\n", src); PerformanceTest test = mapper.readValue(src, PerformanceTest.class); test.run(); System.out.println("Exit"); System.exit(0); }
From source file:com.sonatype.nexus.perftest.PerformanceTestAsserter.java
public static void main(String[] args) throws Exception { final Nexus nexus = new Nexus(); ObjectMapper mapper = new XmlMapper(); mapper.setInjectableValues(new InjectableValues() { @Override/*from w w w. j a v a 2 s .c o m*/ public Object findInjectableValue(Object valueId, DeserializationContext ctxt, BeanProperty forProperty, Object beanInstance) { if (Nexus.class.getName().equals(valueId)) { return nexus; } return null; } }); File src = new File(args[0]).getCanonicalFile(); String name = src.getName().substring(0, src.getName().lastIndexOf(".")); Collection<ClientSwarm> swarms = mapper.readValue(src, PerformanceTest.class).getSwarms(); List<Metric> metrics = new ArrayList<>(); for (ClientSwarm swarm : swarms) { metrics.add(swarm.getMetric()); } System.out.println("Test " + name + " metrics:" + metrics); assertTest(name, metrics); System.out.println("Exit"); System.exit(0); }
From source file:com.netflix.suro.jackson.TestJackson.java
@Test public void test() throws IOException { String spec = "{\"a\":\"aaa\", \"b\":\"bbb\"}"; ObjectMapper mapper = new DefaultObjectMapper(); final Map<String, Object> injectables = Maps.newHashMap(); injectables.put("test", "test"); injectables.put("b", "binjected"); mapper.setInjectableValues(new InjectableValues() { @Override/*from ww w . j a v a2s .c om*/ public Object findInjectableValue(Object valueId, DeserializationContext ctxt, BeanProperty forProperty, Object beanInstance) { return injectables.get(valueId); } }); TestClass test = mapper.readValue(spec, new TypeReference<TestClass>() { }); assertEquals(test.getTest(), "test"); assertEquals(test.getB(), "bbb"); }
From source file:com.netflix.suro.jackson.DefaultObjectMapper.java
@Inject public DefaultObjectMapper(final Injector injector, Set<TypeHolder> crossInjectable) { SimpleModule serializerModule = new SimpleModule("SuroServer default serializers"); serializerModule.addSerializer(ByteOrder.class, ToStringSerializer.instance); serializerModule.addDeserializer(ByteOrder.class, new JsonDeserializer<ByteOrder>() { @Override/*from www . j a v a 2s . c o m*/ public ByteOrder deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { if (ByteOrder.BIG_ENDIAN.toString().equals(jp.getText())) { return ByteOrder.BIG_ENDIAN; } return ByteOrder.LITTLE_ENDIAN; } }); registerModule(serializerModule); registerModule(new GuavaModule()); if (injector != null) { setInjectableValues(new InjectableValues() { @Override public Object findInjectableValue(Object valueId, DeserializationContext ctxt, BeanProperty forProperty, Object beanInstance) { LOG.info("Looking for " + valueId); try { return injector.getInstance( Key.get(forProperty.getType().getRawClass(), Names.named((String) valueId))); } catch (Exception e) { try { return injector.getInstance(forProperty.getType().getRawClass()); } catch (Exception ex) { LOG.info("No implementation found, returning null"); } return null; } } }); } configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); configure(MapperFeature.AUTO_DETECT_GETTERS, false); configure(MapperFeature.AUTO_DETECT_CREATORS, false); configure(MapperFeature.AUTO_DETECT_FIELDS, false); configure(MapperFeature.AUTO_DETECT_IS_GETTERS, false); configure(MapperFeature.AUTO_DETECT_SETTERS, false); configure(SerializationFeature.INDENT_OUTPUT, false); if (crossInjectable != null) { for (TypeHolder entry : crossInjectable) { LOG.info("Registering subtype : " + entry.getName() + " -> " + entry.getRawType().getCanonicalName()); registerSubtypes(new NamedType(entry.getRawType(), entry.getName())); } } }