вторник, октября 16, 2018

Programmatic generation and runtime loading of EMF EPackages with ClassMaker

Сегодняшний пост - о, не совсем стандартном, использовании EMF, которое предлагает осуществлять автор, надеясь, что в каких-то случаях оно окажется оправданным.
Таковое заключается в том, чтобы программно запускать генератор EMF модели и загружать ее в собственную среду выполнения (runtime environment). API для доступа к сгенерированным экземплярам при этом, в точности совпадает с динамическим EMF, поступившим на вход в роли "чертежа" (blueprint).
В реализации автора библиотека ClassMaker полагается на возможности Eclipse Platform Resources для управления хранением модели в workspace-проектах и даже хранит историю в Git EMF Resource API непосредственно над ресурсами моделей.
По-умолчанию, применяются JET-based Ecore Generator, PDE Plug-in Exporter и Equinox OSGi Container, в качестве run-time environment. Вопросы наличия тех или иных кандидатов для замены остаются открытыми.

Суть технологии, заключающаяся в том, что случаи употребления класса DynamicEObjectImpl заменяются сгенерированными тут же классами по имени EClass#getName(), открывает новые возможности для пересмотра понятия Model-Driven Development. Это не совсем Models@run.time с его интеллектуальной автоматизацией адаптации программного обеспечения, но уже то, что позволяет поставить эти задачи если не перед искусственным интеллектом, то, хотя бы частично, перед пользователем.
Примером может служить ситуация более абстрактного приложения с введенным промежуточным слоем абстракции, промежуточным между техническим и пользовательским концептуальными уровнями понимания взаимодействия логики приложения, которое позволит клиенту запрограммировать манипуляции пользователя наиболее конкретными моделями-экземплярами, оставив программистам определение мета-модели.
В перспективе планируется создать DSL для определения текстового представления мета-модели с грамматикой парсинга ее ввода и шаблоном генерации ее вывода.

В связи с этим, одним из интересных применений ClassMaker может быть трансформация экземпляра мета-модели в класс для последующего инстанцирования в следующем слое конкретизации. Необходимая для этого трансформация QVT пока создается вручную, но в дальнейшем, это планируется автоматизировать, сделав частью DSL.
Мы надеемся, что у проекта много перспектив развития. В данный момент, идет работа над RCP-приложением, работающим с пользовательскими предметными областями и их объектами.













https://github.com/enterpriseDomain/ClassMaker


Проект open-source. Приглашаются со-основатели, единомышленники и пользователи.

четверг, июня 23, 2011

Вышел Eclipse IDE 3.7 Indigo

Indigo включает важные изменения и нововведения для Java-разработчиков, в технологии моделирования, и улучшения в самой платформе Eclipse.
Новые возможности для Java-разработчиков:
  • EGit 1.0 - поддержка Git для Java-разработчиков.
  • WindowBuilder, редактор GUI теперь под патронатом проекта Eclipse и включен в поставку IDE.
  • Плагин для автоматизированного тестирования GUI для Java и HTML приложений Jubula включен в поставку IDE.
  • Плагин m2eclipse, который обеспечивает тесную интеграцию Maven и Eclipse, а также позволяет работать в Maven из-под Eclipse, включен в поставку.
  • Mylyn 3.6 поддерживает наблюдение за процессом сборки через Hudson прямо из Eclipse.
  • Клиент Eclipse Marketplace теперь поддерживает drag and drop установку основанных на Eclipse компонентов прямо в Eclipse.
Update: В комментариях к новости на linux.org.ru активно муссируют тему "CDT 8 тоже вышел/А щито там нового?", потому решил добавить линк на изменения в CDT8: wiki.eclipse.org/CDT/User/NewIn80.

вторник, июня 14, 2011

Результаты опроса разработчиков и пользователей проекта Eclipse

Опубликованы результаты ежегодного опроса, проведенного сообществом Eclipse с середины апреля по середину мая 2011 года на сайтах, блогах и форумах проекта. Исследование ставило перед собой цель установления обратной связи с потребителями, чтобы выяснить, как именно пользователи используют продукты Eclipse и открытое ПО, а также насколько они вовлечены во взаимодействие с сообществом Eclipse и какие из opensource инструментов ими наиболее востребованы. Примечательно, что по сравнению с прошлыми годами, значительно уменьшилось число принимающих участие в опросе разработчиков на языке PHP - если в 2010 году таких разработчиков было 14%, то в 2011 году всего 5%, при этом число разработчиков использующих Eclipse JDT увеличилось с 53% до 68%.


понедельник, января 11, 2010

Word processor in the Eclipse 2

Давно хотел продолжить данную тему, но всё ни как руки не доходили. Как обычно.

Во-первых, как это справедливо заметили в комментариях, я действительно поторопился с выводами. Довольно давно уже существуют различные решения по интеграции серьезного текстового редактора в eclipse. Вот краткий обзор:
  • Office Integration Editor Plugin (NOA4e) — самая что ни есть интеграция OpenOffice в Eclipse (на сайте есть картинка). Очень напоминает интеграцию редактора vim в eclipse — забавно, но не практично, так как не решает тех проблем, о которых я говорил в первоначальном посте, это всего лишь впихнутое одно приложение в другое.
  • Lotus Symphony — целый офисный пакет написан полностью на основе Eclipse RCP. По интерфейсу и не поймешь, но достаточно глянуть в корневой каталог, куда установилось приложение. Это IBM. Прародители. Им сам Бог видел. Но опять же — это очередной офисный пакет, в котором нет удобств привычных в IDE (за исключением расширяемости с помощью массы дополнительных плагинов).
  • Rich Text Editor Project — уже теплее. Очень любопытный плагин для работы с текстом. Я лично с ним не работал, но видео демонстрация впечатляет, может быть как-нибудь попробую.
  • Mylyn WikiText — ещё теплее, но про него я услышал буквально на днях, поэтому сказать толком ни чего не могу, чуть подробнее об этом см. в конце статьи.

среда, октября 21, 2009

JBoss archives tool

В своём прошлом посте я скромно, и для многих не заметно, пообещал написать об утилите "JBoss archives tool". Данное обещание хоть и было сделано давно, но всё же не забыто. И вот я, наконец, созрел, чтобы написать об этом инструменте пост. Более того меня на это сподвигло постоянное "давление" со стороны моих коллег по работе, стало очевидно, что лучше один раз написать инструкцию, чем каждому по отдельности пальцем показывать какие кнопки и сколько раз нажимать ;-).

JBoss archives tool позволяет автоматически в фоновом режиме пакетировать java-библиотеки и выкладывать их в определенных директориях. В отличии от других сборщиков программных проектов, таких как Ant и Maven инструмент прост в обращении и имеет гуй (GUI).


среда, июня 24, 2009

Galileo is here!



Релиз Eclipse 3.5 Galileo вышел в свет. Поздравляем всех!

понедельник, июня 22, 2009

Eclipse Enviroment

В этой статье я хочу немого рассказать о том, как с помощью различных переменных окружения и строк подстановок можно настроить свою Eclipse IDE для удобства, в первую очередь, тем кто ведёт совместную разработку проектов, а также тем, кто просто любит порядок и системность во всем.

Думаю мне не стоит объяснять для чего и как используются системные переменные окружения, а также, что такое строки подстановки и где они применяются... Пользу от переменных значений в программировании сложно переоценить. Но вопрос - насколько значнения системных переменных окружения переменны? Т.е. я хочу сказать - как часто и на сколько легко править системные переменные окружения? Если вы скажите, что редко и эта процедура вполне удобна, то, думаю, эта статья будет вам не особо интересна. Лично я, довольно давно работаю с несколькими проектами, в которых активно используются кое-какие системные перменные, при этом, значения от этих переменных проекты ожидают разные, понятно: пути к библиотекам и ресурсам для разных проектов - разные, а переменная одна. Приходится как-то переключатся. Это можно делать по разному: