8000 Introduce content read criteria to find contents in Archive · Issue #239 · shrinkwrap/shrinkwrap · GitHub
[go: up one dir, main page]

Skip to content
< 8000 link rel="modulepreload" href="https://github.githubassets.com/assets/jr-c44831dde1d29416.js" crossorigin="anonymous" />

Introduce content read criteria to find contents in Archive #239

Open

Description

@xjusko

The read capabilities on Archive are largely inadequate. You can get the content by an archive path or you can flip through all the content and filter the results by path name. However, there are much more logical structures inside the archive that ShrinkWrap does not expose an API to locate. For instance, I want to pull out one or more WebModules from an EnterpriseArchive.

However, if we were to introduce a closed set of read methods, the user would eventual outgrow them and find themselves in the same position. My recommendation is to follow the lead of Weld Extensions and use an Archive criteria API. I believe it's a good choice because it feels familiar to Java EE developers with it's JPA-like syntax and it's completely extensible.

For example:

ArchiveContentQuery query = ArchiveContentQueries.createQuery(EnterpriseArchive.class)
.addCriteria(new TypedAssetCriteria(WebArchive.class));
List wars = query.getResuiltList();

This is so much simpler than using a filter on a tree walker. It's also crucial for manipulation of the Archive within Arquillian.

see http://docs.jboss.org/weld/extensions/reference/latest/en-US/html/properties.html#d0e917

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0