Hi David,

are you able to reproduce it in a test?
Concretely proxies can be created for jakarta classes, you can validate it
with this trivial test:

@Test
public void jakartaProxyTest()
{
    final WebBeansContext webBeansContext = new WebBeansContext();
    final NormalScopeProxyFactory pf = new
NormalScopeProxyFactory(webBeansContext);
    final Object proxy = pf.createNormalScopeProxy(new
OwbBean<CompletionListener>() {
        @Override
        public Set<Type> getTypes() {
            return null;
        }

        @Override
        public Set<Annotation> getQualifiers() {
            return null;
        }

        @Override
        public Class<? extends Annotation> getScope() {
            return ApplicationScoped.class;
        }

        @Override
        public String getName() {
            return null;
        }

        @Override
        public boolean isNullable() {
            return false;
        }

        @Override
        public Set<InjectionPoint> getInjectionPoints() {
            return null;
        }

        @Override
        public Class<?> getBeanClass() {
            return null; // this is what we test
        }

        @Override
        public Set<Class<? extends Annotation>> getStereotypes() {
            return null;
        }

        @Override
        public boolean isAlternative() {
            return false;
        }

        @Override
        public CompletionListener create(final
CreationalContext<CompletionListener> context) {
            return null;
        }

        @Override
        public void destroy(final CompletionListener instance, final
CreationalContext<CompletionListener> context) {

        }

        @Override
        public Producer<CompletionListener> getProducer() {
            return null;
        }

        @Override
        public WebBeansType getWebBeansType() {
            return null;
        }

        @Override
        public Class<CompletionListener> getReturnType() {
            return CompletionListener.class;
        }

        @Override
        public void setSpecializedBean(boolean specialized) {

        }

        @Override
        public boolean isSpecializedBean() {
            return false;
        }

        @Override
        public void setEnabled(boolean enabled) {

        }

        @Override
        public boolean isEnabled() {
            return false;
        }

        @Override
        public String getId() {
            return null;
        }

        @Override
        public boolean isPassivationCapable() {
            return false;
        }

        @Override
        public boolean isDependent() {
            return false;
        }

        @Override
        public WebBeansContext getWebBeansContext() {
            return null;
        }
    });
    assertNotNull(proxy);
    System.out.println(asList(proxy.getClass().getDeclaredFields()));
}

This method only affects in which package the proxy is created so it must
be useless and revertable.

Also tested the runtime and it works too it seems so would be great to at
least add one unit test of the breaking change if real or fix the actual
issue and revert this if the source is something else (like jakarta jar
endorsing the jvm or so which is not normal).

Can you help to refine it please?

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le sam. 13 mars 2021 à 18:46, David Blevins <david.blev...@gmail.com> a
écrit :

> > On Mar 12, 2021, at 11:57 PM, Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
> >
> > Hi,
> >
> > Likely more a question for David: why is jakarta considered as a
> forbidden
> > package (
> >
> https://github.com/apache/openwebbeans/commit/6ede81da26a4a65dc0c88fda7e438f29114fea37
> )
> > ?
> >
> > To explain why I ask: jakarta is a module as any other, and we shouldn't
> > get abused by the presence of javax just before which is there for the
> java
> > *se* part of javax api and not EE one so not sure I get the rational
> there,
> > any test/sample I can run to understand?
>
> A javax-to-jakarta namespace switch in bytecode doesn't appear to work
> without this change.  For TomEE 9 80% of the TCK will fail with due to
> deployment errors.
>
> If you revert this change locally and rebuild these repos
>
>  - https://github.com/apache/tomee
>  - https://github.com/apache/tomee-jakarta
>
> here's a tck test that shows it:
>
>   ./runtests --web tomee-plume
> com.sun.ts.tests.ejb30.lite.appexception.singleton.annotated
>
> That script is in this branch.  Here's also the TCK download URL.
>
>  - https://github.com/apache/tomee-tck/tree/jakartaee9-tck
>  -
> https://download.eclipse.org/jakartaee/platform/9/jakarta-jakartaeetck-9.0.2.zip
>
> Wherever the TCK is unpacked you add this to your ~/.m2/settings.xml.
> Here are my settings for reference:
>
>     <profile>
>       <id>jakartaee-tck</id>
>       <activation>
>         <activeByDefault>true</activeByDefault>
>       </activation>
>       <properties>
>
> <jakartaee9.cts.home>/Users/dblevins/work/tcks/jakartaeetck-9.0.2</jakartaee9.cts.home>
>
> <jakartaee9.ri.home>/Users/dblevins/work/tcks/glassfish6/glassfish</jakartaee9.ri.home>
>       </properties>
>     </profile>
>
> The final thing to get setup is copy an Ant install into this location of
> the TCK.
>
>  -  jakartaeetck-9.0.2/tools/ant/
>
> Here's how mine looks:
>
>     $ ls /Users/dblevins/work/tcks/jakartaeetck-9.0.2/tools/ant
>     CONTRIBUTORS                LICENSE                 WHATSNEW
>       etc                     lib
>     INSTALL                     NOTICE                  bin
>      fetch.xml               manual
>     KEYS                        README                  contributors.xml
>       get-m2.xml              patch.xml
>
> Use Java 8 as the TCK itself doesn't run with Java 11 yet.
>
>
> -David
>
>

Reply via email to