Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
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.
@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; } }
=======
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
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