Я рекомендую вам взглянуть на JSR 296 - он еще не завершен, но я думаю, что это удачное место для предоставления определенных базовых функциональных возможностей, которые вам действительно необходимы в каждом приложении с графическим пользовательским интерфейсом Java, не заставляя вас жить в слишком сложных рамках.
Я успешно использовал JSR 296 для создания приложения среднего размера. Для оформления окна в этом приложении мы используем MyDoggy (настоятельно рекомендуется). Для управления макетом мы используем MiGLayout (кроме того, настоятельно рекомендуется). Для привязки данных мы используем модифицированную форму JSR 295 (мы реализовали нечто похожее на PresentationModel поверх JSR 295, которое мы используем для нашей привязки GUI). Я нахожусь в процессе включения Guice в качестве механизма DI, но еще не завершил эту работу (до сих пор, я думаю, он будет «хорошо играть» с JSR 296 с настройкой здесь и там). Давайте посмотрим ... персистентность - это большая недостающая ссылка здесь - в настоящее время я оцениваю Simple для персистентности XML, но сталкиваюсь с проблемами при настройке его работы с контейнерами DI, такими как Guice. У меня Betwixt работает, но зависимости от Betwixt огромны, поэтому мы ищем что-то более упорядоченное.
Мнения о других параметрах RCP для Java:
NetBeans:
У меня есть некоторые фундаментальные философские возражения против подхода, используемого NetBeans (слишком много анти-шаблонов дизайна на мой вкус). В конце концов, среда вынуждает вас принимать плохие проектные решения - и это практически невозможно использовать, если вы не используете NetBeans в качестве IDE (я пытался, но я просто не мог переключиться с Eclipse на NB). Вероятно, это только я, но кажется, что можно написать код для инфраструктуры RCP без использования сложных сложных мастеров и множества автоматически сгенерированного кода и файлов XML. Я потратил столько часов на поиск и устранение неисправностей старого кода Visual C ++, сгенерированного Visual Studio, что я крайне опасаюсь любой инфраструктуры, которую нельзя кодировать вручную.
Spring RCP:
У ребят из Spring хороший хороший дизайн, но документация действительно очень слабая. Это довольно сложно, чтобы набрать скорость (но как только вы это сделаете, вы можете сделать все довольно быстро).
Eclipse RCP:
Не использовал Eclipse только из-за накладных расходов на развертывание (зависит от вашей целевой аудитории - для нас развертывание дополнительных 50 МБ времени выполнения просто не сработало). Без сомнения, Equinox - прекрасная вещь, если вашему приложению требуются значительные функциональные возможности плагинов (конечно, вы также можете запустить Equinox с JSR 296 или использовать шаблоны проектирования, аналогичные шаблонам доски, продвигаемым OSGi).