Нам нужна реализация Marshaller-а для фреймворка Resteasy 1.0, под JBoss 6.1 (на Java 6). Более подробную информацию об архитектуре маршаллинга Resteasy можно найти здесь: http://docs.jboss.org/resteasy/docs/1.0.1.GA/userguide/html/Content_Marshalling_Providers.html#Content_Marshalling_with__Provider_classes . Нам нужно только Writer/Serializer. В настоящее время мы используем два из них (стандартные для XML и JSON), но нам нужен ещё один, чтоб возвращать результаты в формате закодированной строки URL (в стиле GET запроса). Ниже приводятся примеры того, что мы пытаемся достичь, нам нужен маршаллер для работы с одним объектом или с коллекцией объектов. Поддержка для смешанного сценария (один объект с коллекцией объектов в нем) не требуется. Необходимо учесть экранирование (encoding) специальных символов (например ' и &).
Context Type: application/xurl. Вы можете использовать существующие XML или Json аннотации; вы также можете ввести дополнительные аннотации, если необходимо.
Результаты:
1) Исходный код компонентов, включая любые необходимые деплоймент дескрипторы
2) Если будут введены дополнительные аннотации, краткое объяснение их использования
3) Необходимые инструкции для деплоймента
Примеры маршалинга:
1) Один объект
Есть:
<person firstName="John" lastName="Smith" birthDate="1972-06-20">
<notes>Great Guy!</notes>
</person>
Нужно:
firstName=John&lastName=Smith&birthDate=1972-06-20¬es=Great+Guy!
2) Коллекция объектов
Есть:
<people>
<person firstName="John" lastName="Smith" birthDate="1972-06-20">
<notes>Great Guy!</notes>
</person>
<person firstName="Jane" lastName="Smith" birthDate="1978-01-27"/>
</people>
Нужно:
person~1.firstName=John&person~1.lastName=Smith&person~1.birthDate=1972-06-20&person~1.notes=Great+Guy!&person~2.firstName=Jane&person~2.lastName=Smith&person~2.birthDate=1978-01-27
