Автор (ы) | Говард Льюис Шип |
---|---|
Разработчик (и) | Apache Software Foundation |
Стабильная версия | 5.5.0 / 20 марта 2020 г.; 7 месяцев назад (2020-03-20) |
Репозиторий | Репозиторий гобеленов |
Написано на | Java |
Операционная система | Кросс-платформенная (Виртуальная машина Java ) |
Тип | Структура веб-приложения |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | гобелен.apache.org |
Гобелен Apache - это с открытым исходным кодом компонентно-ориентированная Java структура веб-приложений концептуально похожа на JavaServer Faces и Apache Wicket. Гобелен был создан Говарда Льюиса Шипа, и был принят Apache Software Foundation в качестве проекта высшего уровня в 2006 году.
Tapestry подчеркивает простоту, удобство использования и продуктивность разработчика. Он придерживается Соглашение по парадигме конфигурации, устраняющее почти всю конфигурацию XML. Tapestry использует модульный подход к веб-разработке, имея сильную привязку между каждым компонентом (объектом) пользовательского интерфейса на веб-страницу и соответствующий ей класс Java. Этот компонент-b Созданная архитектура заимствует многие идеи из WebObjects.
Минимальному шаблонному приложению Tapestry требуется только t hree файлы:
Здравствуйте, $ {username}
package org.example.demo.pages; / ** Класс страницы (автоматически связанный с одноименным файлом шаблона) * / public class HelloWorld {/ ** Обычный метод получения * / public String getUsername () {return "World"; }}
Tapestry Example гобелен. app-package org.example.demo app org.apache.tapestry5.TapestryFilter app /*
Tapestry использует манипуляции с байт-кодом для преобразования классов страниц и компонентов во время выполнения. Этот подход позволяет записывать классы страниц и компонентов как простые POJO с несколькими соглашениями об именах и аннотациями, потенциально вызывающими существенное дополнительное поведение во время загрузки класса. Версии 5.0, 5.1 и 5.2 гобелена использовали библиотеку обработки байт-кода Javassist. Последующие версии заменили Javassist новым слоем манипулирования байт-кодом под названием Plastic, который основан на ObjectWeb ASM.
Версии Tapestry 5 до 5.3, объединяли Prototype и script.aculo.us Фреймворки JavaScript вместе со специальной библиотекой Tapestry для поддержки операций Ajax в качестве первоклассных граждан. Доступны сторонние модули для интеграции jQuery вместо или в дополнение к Prototype / Scriptaculous.
Начиная с версии 5.4, Tapestry включает новый уровень JavaScript, который устраняет зависимость встроенных компонентов от Prototype, позволяя подключать jQuery или другую среду JavaScript.
Версия 5.4 также включает поддержку для модулей JavaScript с использованием системы загрузки модулей RequireJS.
Документация по проекту Tapestry цитирует четыре «принципа», которые управляют всеми решениями по разработке для Tapestry, начиная с версии 5 в 2008 году:
Tapestry раскритиковали за то, что он не имеет обратной совместимости с основными версиями, особенно это было отмечено при переходе с версии 4 на версию 5, где нет чистой путь миграции был доступен для r существующие приложения. Члены команды проекта признали это серьезной проблемой для пользователей Tapestry в прошлом, и обратная совместимость стала основной целью разработки Tapestry в будущем. С самого начала разработки версии 5 обратная совместимость была указана в качестве одного из четырех новых «Основных принципов» Tapestry, а два из трех других были предназначены для того, чтобы сделать развитие фреймворка возможным без ущерба для обратной совместимости. Члены команды проекта утверждают, что все выпуски Tapestry, начиная с 5.0, имеют высокую обратную совместимость.
Ранняя критика Tapestry 5 также упоминала документацию как недостаток. Участники проекта теперь заявляют, что этот недостаток в значительной степени устранен с помощью тщательно пересмотренного и обновленного Руководства пользователя и другой документации.
Начиная с версии 5.0, Tapestry объединяет библиотеки Prototype и Scriptaculous JavaScript. По словам Говарда Льюиса Шипа, в период 2008–2009 годов это был разумный выбор. Однако с тех пор популярность Prototype снизилась, а количество jQuery резко выросло. В ответ сообщество Tapestry разработало модули, позволяющие использовать jQuery в дополнение к Prototype или вместо него. Между тем, текущая версия Tapestry, 5.4, полностью удаляет зависимость от Prototype, заменяя ее уровнем совместимости, к которому можно подключить jQuery или Prototype (или, возможно, любую другую среду JavaScript).
Согласно Говарду Льюису Шипу, Tapestry изначально задумывалась как попытка реализовать на Java некоторые из общих концепций и подходов, найденных в WebObjects, которые в то время были написаны в Objective-C и с закрытым исходным кодом.
Apache Wicket был разработан как ответ на сложность ранних версий Tapestry, по словам создателя Wicket Джонатана Локка.
Facelets, технология просмотра по умолчанию в JavaServer Faces, как сообщается, была вдохновлена ранними версиями Tapestry, как попытка удовлетворить потребность в «фреймворке, подобном Tapestry, поддерживаемом JavaServer Faces в качестве отраслевого стандарта».
Версия | Дата | Описание |
---|---|---|
Старая версия, больше не поддерживается: 1.0 | 2000 | Разработано Howard Lewis Ship для внутреннего использования |
Старая версия, больше не поддерживается: 2.0 | 2002-04 | Впервые стала доступна на SourceForge в рамках GNU Lesser Широкая публика Лицензия. |
Старая версия, больше не поддерживается: 3.0 | 2004-04 | Первый выпуск под Apache, как подпроект Джакарты. |
Старая версия, больше не поддерживается: 4.0 | 2006-01 | Добавлена поддержка аннотаций JDK 1.5, новая подсистема проверки ввода и улучшенная система отчетов об ошибках |
Старая версия, но все еще поддерживается: 5.0 | 2008-12 | Практически полностью переделанный из Tapestry 4, представляющий новую компонентную модель на основе POJO, подчеркивающую конвенцию над конфигурацией, и заменяющий Hivemind новым слоем управления без XML-инверсии. |
Более старая версия, но все еще поддерживается: 5.1 | 2009-04 | Улучшения производительности и памяти, автоматическое сжатие GZIP, агрегация JavaScript, но оставалась обратно совместимой с Tapestry 5.0. |
Более старая версия, но все еще поддерживается: 5.2 | 2010-12 | Добавлен JSR 303 Bean Validation. Расширенная перезагрузка живого класса для реализации служб. Удален пул страниц. |
Старая версия, но все еще поддерживается: 5.3 | 2011-11 | Добавлена поддержка типа документа HTML5, аннотации JSR-330 для внедрения, улучшения производительности и памяти, новые компоненты, переключился с JavaAssist на управление байт-кодом ASM |
Более старая версия, но все еще поддерживается: 5.3.1 - 5.3.8 | 2012-2014 | Исправлены ошибки и незначительные улучшения |
Текущая стабильная версия: 5.4-5.4.5 | 2015-2019 | Основные улучшения на стороне клиента. Новый уровень JavaScript для переключаемой поддержки jQuery / Prototype, использует Require.js для своей модульной системы JavaScript, Twitter Bootstrap для стиля по умолчанию. |
Текущая стабильная версия: 5.5 | 2020-03 | Текущая стабильная версия. Поддержка байт-кода Java 12, Typescript и Bootstrap 4. |