Hi, Added a configuration for the packages - since we can hit that with some "specific" jars and some signed ones: https://issues.apache.org/jira/browse/OWB-1377 Didn't get a change to run TCK setup but proxied the jakarta package several times so if anyone has enough resources to work on a reproducer I would be happy to refine this particular case if needed. In the mean time I guess tomee can set up the configuration in conf/system.properties and maybe fix its shade.
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 à 19:40, Romain Manni-Bucau <rmannibu...@gmail.com> a écrit : > 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 >> >>