Allow XCIs to be provided "by reference" (i.e. by providing a crx or file path)

Open
#41 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Domain
api, backend

Research direction

The issue mentions modifying the setXci() method in ArgumentBuilders across OutputService and FormsService, and updating rest-services.client, rest-services.server, and fluentforms libraries. Start by locating these ArgumentBuilder classes to understand the current implementation. Investigate how PathOrUrl objects are handled elsewhere in the codebase for reading from CRX or file paths. The goal is to allow XCI input via reference, so check existing validation and reading logic for similar patterns.

Written by the indexing model from the issue text.

Description

enhancement

The Adobe APIs (FormsService and OutputService) only allow custom XCIs to be provided as Document objects. It would be more flexible if a client could provide a crx or file path instead. That would allow them to store the XCI on the AEM server instead of on the client and would prevent having to repeatedly send the XCI with each request (although the XCI would likely still be re-read on each request).

This would mean changing the setXci() method on each of the 4 ArgumentBuilders in the OutputService and the ArgumentBuilder on the FormsService. It would also mean adding code to the rest-services.client, rest-services.server and fluentforms libraries to handle this.

The setXci() method would likely have to be overloaded to also accept a PathOrUrl object. On the server side, the PathOrUrl would be checked for being either a CRX Url or a file path. If it's something else, then an exception would be thrown (unless the implementer wants to implement code to read from any URL). If the PathOrUrl validation passes, then the code would read from the specified location.

Implementing the file reading code would be pretty trivial. The CRX reading code may require more work.

Dominant language
Java
Stars
7
Forks
8
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from 4PointSolutions/FluentFormsAPI

All issues in 4PointSolutions/FluentFormsAPI

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.