@Parts(PropertyFactory.class) protected static PartCollection<PropertyFactory> factories;
@Override public void handle(MutableGlobalContext ctx, Object object, Field field) throws Exception { Parts parts = field.getAnnotation(Parts.class); if (Collection.class.isAssignableFrom(field.getType())) { field.set(object, ctx.getParts(parts.value())); } else if (PartCollection.class.isAssignableFrom(field.getType())) { field.set(object, ctx.getPartCollection(parts.value())); } else { throw new IllegalArgumentException( "Only fields of type Collection or PartCollection are allowed whe using @Parts."); } } }
@Parts(ExceptionHandler.class) private static PartCollection<ExceptionHandler> handlers;
private Orchestration orchestration; @Parts(EveryTenSeconds.class) private PartCollection<EveryTenSeconds> everyTenSeconds; private long lastTenSecondsExecution = 0; @Parts(EveryMinute.class) private PartCollection<EveryMinute> everyMinute; private long lastOneMinuteExecution = 0; @Parts(EveryTenMinutes.class) private PartCollection<EveryTenMinutes> everyTenMinutes; private long lastTenMinutesExecution = 0; @Parts(EveryHour.class) private PartCollection<EveryHour> everyHour; private long lastHourExecution = 0; @Parts(EveryDay.class) private PartCollection<EveryDay> everyDay;
@Parts(BackgroundLoop.class) private static PartCollection<BackgroundLoop> backgroundLoops;
private Tasks tasks; @Parts(BackgroundLoop.class) private PartCollection<BackgroundLoop> loops;
@Parts(LogTap.class) private static PartCollection<LogTap> taps;
private static final String LIMIT_TYPE_ERROR = ".error"; @Parts(MetricProvider.class) private Collection<MetricProvider> providers;
@Parts(Subscriber.class) private PartCollection<Subscriber> subscribers;
private long logQueryThresholdMillis = -1; @Parts(IndexDescription.class) private PartCollection<IndexDescription> indexDescriptions;