[ https://issues.apache.org/jira/browse/MNG-7662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guillaume Nodet updated MNG-7662: --------------------------------- Issue Type: New Feature (was: Bug) > Proxy session scoped components so that they can be injected into singletons > beans > ---------------------------------------------------------------------------------- > > Key: MNG-7662 > URL: https://issues.apache.org/jira/browse/MNG-7662 > Project: Maven > Issue Type: New Feature > Reporter: Christoph Läubrich > Assignee: Guillaume Nodet > Priority: Major > Fix For: 4.0.0-alpha-9 > > > The {{SessionScope}} will now create proxies to wrap beans when there's a > need to inject a bean while the session scope is not yet available. Such > proxies require the use of a {{Typed}} annotation, either the > {{org.eclipse.sisu.Typed}} or {{javax.enterprise.inject.Typed}} annotation, > to be put on the bean that requires to be wrapped by a proxy. > {code:java} > @Named > static class MySingletonBean { > @Inject > BeanItf myBean; > } > interface BeanItf { > Session getSession(); > } > @SessionScoped > @Typed > static class MySessionScopedBean implements BeanItf { > @Inject > Session session; > public Session getSession() { > return session; > } > } > {code} > ======= > Original problem: > Currently DefaultMaven gets the Graphbuilder injected as a strict requirement > at a very early stage. This leads to the problem, that a GraphBuilder > implementation can not use any SessionScoped Components (because the session > scope is not setup yet). > The error then is > {code:java} > 1) Error in custom provider, com.google.inject.OutOfScopeException: Cannot > access Key[type=org.apache.maven.execution.MavenSession, annotation=[none]] > outside of a scoping block > at > org.apache.maven.session.scope.internal.SessionScopeModule.configure(SessionScopeModule.java:64) > (via modules: org.eclipse.sisu.wire.WireModule -> > org.apache.maven.session.scope.internal.SessionScopeModule) > while locating org.apache.maven.execution.MavenSession > for the 1st parameter of > org.eclipse.tycho.helper.PluginRealmHelper.<init>(Unknown Source) > at ClassRealm[coreExtension>org.eclipse.tycho:tycho-build:${tycho-version}, > parent: ClassRealm[plexus.core, parent: null]] (via modules: > org.eclipse.sisu.wire.WireModule -> > org.eclipse.sisu.plexus.PlexusBindingModule) > while locating org.eclipse.tycho.helper.PluginRealmHelper > at ClassRealm[coreExtension>org.eclipse.tycho:tycho-build:${tycho-version}, > parent: ClassRealm[plexus.core, parent: null]] (via modules: > org.eclipse.sisu.wire.WireModule -> > org.eclipse.sisu.plexus.PlexusBindingModule) > while locating org.eclipse.tycho.p2maven.InstallableUnitGenerator > at ClassRealm[coreExtension>org.eclipse.tycho:tycho-build:${tycho-version}, > parent: ClassRealm[plexus.core, parent: null]] (via modules: > org.eclipse.sisu.wire.WireModule -> > org.eclipse.sisu.plexus.PlexusBindingModule) > while locating org.eclipse.tycho.p2maven.MavenProjectDependencyProcessor > while locating org.eclipse.tycho.build.TychoGraphBuilder > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)