private String buildName(JobActuatorHandle jobActuator) { String errorMessage = jobActuator.getClass().getName() + " Missing @Name annotation"; Name actuatorName = jobActuator.getClass().getAnnotation(Name.class); String name = requireNonNull(actuatorName, errorMessage).value(); checkState(name.length() > 0, errorMessage); return name; }
static void injectConfig(PluginConfig pluginConfig, Map config) throws IllegalAccessException { Class<?> typeClass = pluginConfig.getClass(); for (Field field : typeClass.getDeclaredFields()) { Name name = field.getAnnotation(Name.class); if (name != null) { field.setAccessible(true); Object value = config.get(name.value()); if (value != null) { field.set(pluginConfig, value); } else if (field.get(pluginConfig) == null) { // Unable to inject via config, and there is no default value if (logger.isDebugEnabled()) { logger.debug("[PluginConfig] {} field {}[{}] unable to inject ,and there is no default value, config only {}", typeClass, field.getName(), name.value(), config); } } } } logger.info("inject pluginConfig Class [{}], outObj is {}", typeClass, pluginConfig); }
Object defaultValue = field.get(pluginConfig); return ImmutableMap.of( "key", name.value(), "description", description == null ? "" : description.value(), "default", defaultValue == null ? "" : defaultValue
private static PipelinePluginInfo getPluginInfo( File pluginFile, Class<? extends PipelinePlugin> javaClass, boolean realTime, //is realTime ? TypeArgument[] javaGenerics) { Name name = javaClass.getAnnotation(Name.class); String[] nameArr = ImmutableSet.<String>builder() .add(name == null ? javaClass.getName() : name.value()) .build().toArray(new String[0]); String isRealTime = realTime ? "RealTime" : "Not RealTime"; logger.info("loading {} Pipeline Plugin:{} ,the name is {}", isRealTime, javaClass, nameArr); Description description = javaClass.getAnnotation(Description.class); Version version = javaClass.getAnnotation(Version.class); return new PipelinePluginInfo( nameArr, description == null ? "" : description.value(), version == null ? "" : version.value(), realTime, javaClass.getName(), javaGenerics, pluginFile, parserDriverType(javaClass) ); }
field.setAccessible(true); Assert.assertNotNull(name); field.set(pluginConfig, "@Name[" + name.value() + "]");