Created https://issues.apache.org/jira/browse/MRESOLVER-585
On Fri, Jul 12, 2024 at 12:36 PM Nick Hensel <nickhense...@icloud.com> wrote: > I switched to Codeberg actually, the class would be here: > https://codeberg.org/goldmensch/jack/src/branch/dependencies-and-lockfile/src/main/java/io/github/goldmensch/cache/CacheLocalRepositoryManager.java > > So, I have to create a root session, without any LocalRepositoryManager > set and then create a sub session from that root, which has the > LocalRepositoryManager set. Did I get this right? > > Additionally, both sessions should only exist for the time of this > dependency fetch task or should the root session exists for the whole > lifespan of the application? > On 12.07.24 12:25, Tamás Cservenák wrote: > > Yes, in that case, if you want to go "full resolver 2" way in Jack, I'd do > following: > - create a "root" session > - derive your own session from root (nested/derived session) > - used derived session > - once done, close derived and close root session > > I don't see what CacheLocalRepositoryManager does, I guess it is new? > Is not in https://github.com/Goldmensch/jack > > T > > On Fri, Jul 12, 2024 at 12:17 PM Nick Hensel <nickhense...@icloud.com> > wrote: > >> Thanks for the fast reply :) >> >> Actually the examples set the paths of the local repository instead of >> the LocalRepositoryManager directly. My problem here is, that I'm actually >> >> using an own implementation of LocalRepositoryManager that wraps 2 >> instances of EnhancedLocalRepositoryManager. I forgot to include that in >> my example code, my bad. >> >> >> Here's an update version of the code I want to run: >> >> ```java >> >> RepositorySystemSession session = repositorySystem.createSessionBuilder() >> >> .setLocalRepositoryManager(new >> CacheLocalRepositoryManager(userConf.caching().global(), SESSION, >> repositorySystem)).build(); >> ``` >> >> >> The contructor of CacheLocalRepositoryManager looks like that: >> >> ```java >> >> CacheLocalRepositoryManager(Global conf, RepositorySystemSession >> session, RepositorySystem system) { >> >> this.conf = conf; >> >> this.local = system.newLocalRepositoryManager(session, new >> LocalRepository(SpecialPaths.JACK_DIR.resolve(MAVEN_DIR))); >> >> this.global = system.newLocalRepositoryManager(session, new >> LocalRepository(SpecialPaths.GLOBAL_JACK_DIR.resolve(MAVEN_DIR))); } >> ``` >> >> I don't know where to get the SESSION from at this early point. >> >> On 12.07.24 11:50, Tamás Cservenák wrote: >> > Also, check out demo snippets: >> > >> https://github.com/apache/maven-resolver/blob/d13019ce5fa38c0951ca0fb0c62a3f5f1254cffc/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java#L68 >> > >> > T >> > >> > On Fri, Jul 12, 2024 at 11:45 AM Tamás Cservenák <ta...@cservenak.net> >> > wrote: >> > >> >> Howdy, >> >> >> >> see here and below: >> >> >> >> >> https://github.com/apache/maven-resolver/blob/d13019ce5fa38c0951ca0fb0c62a3f5f1254cffc/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystemSession.java#L439 >> >> >> >> >> >> T >> >> >> >> On Fri, Jul 12, 2024 at 11:29 AM Nick Hensel >> >> <nickhense...@icloud.com.invalid> wrote: >> >> >> >>> Hi, >> >>> I'm currently migrating my Maven Artifact Resolver 1.x code to 2.0. >> >>> As of version 2.0 the recommend way to create a >> RepositorySystemSession >> >>> is through a SessionBuilder. >> >>> In my case, I need to set an own LocalRepositoryManager, which wraps >> two >> >>> EnhancedLocalRepositoryManager instanced. The problem here is, that in >> >>> order to create an instance of it I have to call >> >>> RepositorySystem#newLocalRepositoryManager which needs a >> >>> RepositorySystemSession, which I obviously cannot pass before >> creating it. >> >>> >> >>> To demonstrate this problem, here's a piece of code. >> >>> ```java >> >>> RepositorySystemSession session = >> >>> repositorySystem.createSessionBuilder() >> >>> >> .setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(SESSION, >> >>> new LocalRepository(...)) // where should I get SESSION from? >> >>> ``` >> >>> >> >>> Best regards, >> >>> >> >