[ 
https://issues.apache.org/jira/browse/MRESOLVER-685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17940928#comment-17940928
 ] 

ASF GitHub Bot commented on MRESOLVER-685:
------------------------------------------

cstamas opened a new pull request, #679:
URL: https://github.com/apache/maven-resolver/pull/679

   Ability to "pipe" connectors one onto another in controlled and configured 
fashion.
   
   The ide is following:
   - first (actually connecting to remote) connector is chosen as today (based 
on priority)
   - next, new type of factories PipelinedRepositoryConnectorFactory is ordered 
(by priority) and they can (but does not have to) wrap the delegate in 
configured order.
   
   Factored out existing RRF connector into new factory, and introduced another 
OfflinePRCF, as so far, "resolver offline" was in fact managed at different 
spots, and user was still able to circumvent offline setting. This now 
connector now wraps connector and refuses going remote if session if offline.
   
   Vanilla resolver does this:
   `offline( rrf( basic(repo) ) )`
   
   ---
   
   https://issues.apache.org/jira/browse/MRESOLVER-685




> Connector pipelining
> --------------------
>
>                 Key: MRESOLVER-685
>                 URL: https://issues.apache.org/jira/browse/MRESOLVER-685
>             Project: Maven Resolver
>          Issue Type: Task
>          Components: Resolver
>            Reporter: Tamas Cservenak
>            Priority: Major
>             Fix For: 2.0.8
>
>
> We need to come up with some solution to "order/pipeline" connectors. 
> Currently existing connectors in Resolver are:
> * basic -- handles transport and checksum validation; the only connector 
> existing in system so far
> * RRF -- wraps another connector and applies remote repository filter rules; 
> if enabled, wraps basic as rrf( basic() )
> Not yet in resolver connector:
> * mimir -- this should be moved into Resolver ("caching-connector"), this 
> connector offers global cache (per workstation) and more (LAN wide caches)
> To be done connector:
> * signature -- connector that validates signatures
> Pipelining (or at least wrapping ordering) would be handy, as we want to 
> achieve something like this:
> {noformat}
> mimir( signature( rrf( basic() ) ) )
> {noformat}
> Flow:
> * mimir onEnter: check caches, if cache have needed payload, swap it out; 
> pass on
> * signature onEnter: pass on (no op)
> * rrf onEnter: check filter rules; if ok pass on
> * basic onEnter: using transport get artifacts
> * basic onExit: validate checksums (according to policies), return result
> * rrf onExit: pass on (no op)
> * signature onExit: validate signatures of artifacts, pass on w/ failure (sig 
> check result)
> * mimir onExit: check is there something new to be cached, cache it, pass on



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to