gnodet commented on code in PR #950:
URL: https://github.com/apache/maven/pull/950#discussion_r1387639811


##########
maven-core/pom.xml:
##########
@@ -144,6 +144,12 @@ under the License.
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
+    <dependency>

Review Comment:
   > the new interceptor is a new proxy basically high level i'd like to ensure 
we don't depend on java version as much as we can cause it starts to hurt all 
the ecosystem and at maven there is no reason we do depend on asm so no new 
usage should be added and ultimately we should drop them all from maven 4.0.0 
IMHO
   
   Due to the way scoping works in guice, the interception is built by wrapping 
the injected bean, not by wrapping the injection point.  The key method is the 
following:
   
https://google.github.io/guice/api-docs/4.2/javadoc/index.html?com/google/inject/Scope.html
   ```
     public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped);
   ```
   So we do wrap the `Provider<T>`, but `T` is the actual bean class, because 
that happens irrespective of where the bean will be injected (the injection 
point).
   So even if the bean is injected into a field which refers to an interface 
the bean implementation provider will be _scope_.
   
   Basically, we can't use JDK proxies here.
   
   I do understand your concerns about avoiding the use of ASM.  We need to 
investigate, but it's actually used by sisu to discover beans.  That sounds 
duplicate work as we usually generate the META-INF files so that discovery 
should not have to scan all classes.
   That said, problems happen only when the following combination happens:
    * the JDK in use is not supported by the ASM version embedded
    * we scan a class file which targets a JDK newer that the one supported by 
ASM
    That's why I've extracted ASM out of guice / sisu, so that we (or even the 
user) can easily upgrade the asm version in the distribution and get rid of 
those problems.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to