Если только планеты и Луну — то важнее увеличение, чем апертура.
А вообще — телескоп — это такой подарок, которым обычно пользуются первую неделю, а потом стоит в кладовке… Если это не человеку, который очень увлечен астрономией
Сделайте колонку с порядковым номером дня в году для дня рождения. Тогда сможете индекс сделать и условие простое будет. Ну только, как указали выше, отдельно учесть переход через границу года
Наследуете URLClassLoader, останется сказать откуда брать классы. При загрузке плагина создаёте новый класслоадер и заносите его в свой список доступных класслоадеров, при выгрузке — удаляете из списка.
Когда надо что то сделать ищете (уже не знаю что именно вам нужно — по имени плагина? класса?) нужный класслоадер у себя в списке и создаёте оттуда инстанс нужного класса.
Список класслоадеров держите у себя где нибудь — ServletContext или что нибудь такое
как выше уже сказали — аспекты
посмотрите на aspectj, запустите приложение с аспектом, который запишет в файл лога все вызываемые методы, потом решите какие методы вам интересны, сделайте аспекты, которые их аргументы пишут и т.д.