cd-inject-weld module-info
Signed-off-by: jansupol <jan.supol@oracle.com>
diff --git a/core-client/src/main/java/module-info.java b/core-client/src/main/java/module-info.java
index 1174c16..ee94e3a 100644
--- a/core-client/src/main/java/module-info.java
+++ b/core-client/src/main/java/module-info.java
@@ -30,6 +30,7 @@
exports org.glassfish.jersey.client.inject;
exports org.glassfish.jersey.client.spi;
exports org.glassfish.jersey.client.internal;
+ exports org.glassfish.jersey.client.internal.inject to org.glassfish.jersey.incubator.cdi.inject.weld;
exports org.glassfish.jersey.client.innate to
org.glassfish.jersey.apache5.connector,
diff --git a/core-common/src/main/java/module-info.java b/core-common/src/main/java/module-info.java
index 96d99e1..5020acd 100644
--- a/core-common/src/main/java/module-info.java
+++ b/core-common/src/main/java/module-info.java
@@ -61,7 +61,8 @@
org.glassfish.jersey.container.servlet,
org.glassfish.jersey.container.jetty.http,
org.glassfish.jersey.netty.connector,
- org.glassfish.jersey.ext.mp.rest.client;
+ org.glassfish.jersey.ext.mp.rest.client,
+ org.glassfish.jersey.incubator.cdi.inject.weld;
exports org.glassfish.jersey.innate.inject to org.glassfish.jersey.inject.hk2,
org.glassfish.jersey.inject.cdi2.se,
@@ -80,6 +81,7 @@
org.glassfish.jersey.ext.entity.filtering,
org.glassfish.jersey.ext.metainf.services,
org.glassfish.jersey.ext.mvc,
+ org.glassfish.jersey.incubator.cdi.inject.weld,
org.glassfish.jersey.gf.ejb,
org.glassfish.jersey.security.oauth1.signature;
exports org.glassfish.jersey.innate.virtual to org.glassfish.jersey.container.grizzly2.http,
@@ -104,6 +106,7 @@
opens org.glassfish.jersey.innate.spi to org.glassfish.jersey.media.multipart;
opens org.glassfish.jersey.internal;
+ opens org.glassfish.jersey.internal.util.collection;
opens org.glassfish.jersey.message.internal;
opens org.glassfish.jersey.spi;
@@ -111,7 +114,6 @@
uses jakarta.ws.rs.container.DynamicFeature;
uses jakarta.ws.rs.ext.RuntimeDelegate;
- uses org.glassfish.jersey.innate.BootstrapPreinitialization;
uses org.glassfish.jersey.innate.spi.EntityPartBuilderProvider;
uses org.glassfish.jersey.internal.ServiceFinder;
uses org.glassfish.jersey.internal.inject.InjectionManagerFactory;
diff --git a/core-server/src/main/java/module-info.java b/core-server/src/main/java/module-info.java
index 187c595..de75462 100644
--- a/core-server/src/main/java/module-info.java
+++ b/core-server/src/main/java/module-info.java
@@ -47,7 +47,10 @@
exports org.glassfish.jersey.server.wadl.internal.generators.resourcedoc;
exports org.glassfish.jersey.server.wadl.internal.generators.resourcedoc.model;
exports org.glassfish.jersey.server.filter;
- exports org.glassfish.jersey.server.filter.internal to org.glassfish.hk2.locator, org.glassfish.hk2.utilities;
+ exports org.glassfish.jersey.server.filter.internal to
+ org.glassfish.hk2.locator,
+ org.glassfish.hk2.utilities,
+ org.glassfish.jersey.incubator.cdi.inject.weld;
exports org.glassfish.jersey.server.monitoring;
exports org.glassfish.jersey.server.internal;
@@ -76,11 +79,18 @@
opens org.glassfish.jersey.server;
opens org.glassfish.jersey.server.filter;
- opens org.glassfish.jersey.server.internal to org.glassfish.hk2.utilities;
+ opens org.glassfish.jersey.server.filter.internal to
+ org.glassfish.hk2.locator,
+ org.glassfish.hk2.utilities,
+ weld.core.impl;
+ opens org.glassfish.jersey.server.internal to org.glassfish.hk2.utilities, weld.core.impl;
opens org.glassfish.jersey.server.internal.inject;
opens org.glassfish.jersey.server.internal.monitoring to org.glassfish.hk2.utilities;
opens org.glassfish.jersey.server.internal.monitoring.jmx to org.glassfish.hk2.utilities;
- opens org.glassfish.jersey.server.internal.process to org.glassfish.hk2.locator, org.glassfish.hk2.utilities;
+ opens org.glassfish.jersey.server.internal.process to
+ org.glassfish.hk2.locator,
+ org.glassfish.hk2.utilities,
+ weld.core.impl;
opens org.glassfish.jersey.server.internal.routing to org.glassfish.hk2.utilities;
opens org.glassfish.jersey.server.model;
opens org.glassfish.jersey.server.wadl.processor;
diff --git a/incubator/cdi-inject-weld/pom.xml b/incubator/cdi-inject-weld/pom.xml
index 2a68ef1..e9123c8 100644
--- a/incubator/cdi-inject-weld/pom.xml
+++ b/incubator/cdi-inject-weld/pom.xml
@@ -32,6 +32,16 @@
<description>CDI InjectionManager implementation</description>
+ <properties>
+ <!-- test packages -->
+ <surefire.security.argline>
+ --add-exports org.glassfish.jersey.incubator.cdi.inject.weld/org.glassfish.jersey.inject.weld.binder.client=org.glassfish.jersey.core.common
+ --add-exports org.glassfish.jersey.incubator.cdi.inject.weld/org.glassfish.jersey.inject.weld.binder.client=weld.core.impl
+ --add-exports org.glassfish.jersey.incubator.cdi.inject.weld/org.glassfish.jersey.inject.weld=weld.core.impl
+ --add-opens org.glassfish.jersey.incubator.cdi.inject.weld/org.glassfish.jersey.inject.weld.binder.client=weld.core.impl
+ </surefire.security.argline>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
@@ -73,7 +83,7 @@
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>${project.version}</version>
- <scope>provided</scope>
+ <scope>test</scope>
</dependency>
<dependency>
@@ -82,11 +92,27 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.jboss.weld.se</groupId>
- <artifactId>weld-se-core</artifactId>
+ <groupId>org.jboss.weld</groupId>
+ <artifactId>weld-api</artifactId>
<scope>provided</scope>
</dependency>
-
+ <dependency>
+ <groupId>org.jboss.weld</groupId>
+ <artifactId>weld-spi</artifactId>
+ <version>${weld.api.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.weld</groupId>
+ <artifactId>weld-core-impl</artifactId>
+ <version>${weld.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.weld.se</groupId>
+ <artifactId>weld-se-core</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
@@ -140,7 +166,6 @@
org.glassfish.jersey.inject.weld.managed.*;version=${project.version}
</Export-Package>
<Import-Package>
- jakarta.servlet.*;version="[6.0,7.0)",
sun.misc.*;resolution:=optional,
${jakarta.annotation.osgi.version},
${cdi.osgi.version},
diff --git a/incubator/cdi-inject-weld/src/main/java/module-info.java b/incubator/cdi-inject-weld/src/main/java/module-info.java
new file mode 100644
index 0000000..3bbb797
--- /dev/null
+++ b/incubator/cdi-inject-weld/src/main/java/module-info.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+module org.glassfish.jersey.incubator.cdi.inject.weld {
+ requires jakarta.annotation;
+ requires jakarta.cdi;
+ requires jakarta.inject;
+ requires jakarta.interceptor;
+ requires jakarta.ws.rs;
+
+ requires java.logging;
+
+ requires weld.api;
+ requires weld.core.impl;
+ requires weld.spi;
+
+ requires org.glassfish.jersey.core.common;
+ requires org.glassfish.jersey.core.client;
+ requires org.glassfish.jersey.core.server;
+
+ exports org.glassfish.jersey.inject.weld.internal.managed to
+ org.glassfish.jersey.core.common,
+ weld.core.impl;
+ exports org.glassfish.jersey.inject.weld.managed to org.glassfish.jersey.core.common;
+
+ opens org.glassfish.jersey.inject.weld.internal.managed to weld.core.impl;
+ opens org.glassfish.jersey.inject.weld.internal.scope to weld.core.impl;
+ opens org.glassfish.jersey.inject.weld.managed to weld.core.impl;
+ opens org.glassfish.jersey.inject.weld.internal.injector to weld.core.impl;
+
+ uses org.glassfish.jersey.innate.BootstrapPreinitialization;
+
+ provides jakarta.enterprise.inject.spi.Extension with
+ org.glassfish.jersey.inject.weld.internal.managed.BinderRegisterExtension;
+
+ provides org.glassfish.jersey.internal.inject.InjectionManagerFactory with
+ org.glassfish.jersey.inject.weld.managed.CdiInjectionManagerFactory;
+}
\ No newline at end of file
diff --git a/incubator/cdi-inject-weld/src/main/java/module-info.txt b/incubator/cdi-inject-weld/src/main/java/module-info.txt
deleted file mode 100644
index 136324d..0000000
--- a/incubator/cdi-inject-weld/src/main/java/module-info.txt
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v. 2.0, which is available at
- * http://www.eclipse.org/legal/epl-2.0.
- *
- * This Source Code may also be made available under the following Secondary
- * Licenses when the conditions for such availability set forth in the
- * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
- * version 2 with the GNU Classpath Exception, which is available at
- * https://www.gnu.org/software/classpath/license.html.
- *
- * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
- */
-
-module org.glassfish.jersey.incubator.cdi.inject.weld {
- requires jakarta.annotation;
- requires jakarta.cdi;
- requires jakarta.inject;
- requires jakarta.interceptor;
- requires jakarta.servlet;
-// requires jakarta.persistence;
- requires jakarta.ws.rs;
-
- requires java.logging;
-
- requires weld.api;
- requires weld.spi;
- requires weld.core.impl;
- requires weld.se.core;
- requires weld.probe.core;
- requires org.glassfish.grizzly.http.server;
-
- requires org.glassfish.jersey.core.common;
- requires org.glassfish.jersey.core.client;
- requires org.glassfish.jersey.core.server;
- requires org.glassfish.jersey.container.servlet;
-
- opens org.glassfish.jersey.inject.weld.internal.data;
- opens org.glassfish.jersey.inject.weld.internal.bean;
- opens org.glassfish.jersey.inject.weld.internal.inject;
- opens org.glassfish.jersey.inject.weld.internal.managed;
- opens org.glassfish.jersey.inject.weld.internal.scope;
- opens org.glassfish.jersey.inject.weld.internal.type;
- opens org.glassfish.jersey.inject.weld.spi;
- opens org.glassfish.jersey.inject.weld.managed;
-
- exports org.glassfish.jersey.inject.weld.internal.data;
- exports org.glassfish.jersey.inject.weld.internal.bean;
- exports org.glassfish.jersey.inject.weld.internal.inject;
- exports org.glassfish.jersey.inject.weld.internal.managed;
- exports org.glassfish.jersey.inject.weld.internal.scope;
- exports org.glassfish.jersey.inject.weld.internal.type;
- exports org.glassfish.jersey.inject.weld.spi;
- exports org.glassfish.jersey.inject.weld.managed;
-}
\ No newline at end of file
diff --git a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/bean/JerseyBean.java b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/bean/JerseyBean.java
index deaa049..1d9a9e3 100644
--- a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/bean/JerseyBean.java
+++ b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/bean/JerseyBean.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -41,7 +41,7 @@
import org.glassfish.jersey.internal.inject.PerLookup;
import org.glassfish.jersey.internal.inject.PerThread;
-import org.jboss.weld.environment.se.contexts.ThreadScoped;
+//import org.jboss.weld.environment.se.contexts.ThreadScoped;
/**
* Jersey-specific abstract class which implements {@link Bean} interface. Class particularly contains default implementations
@@ -88,7 +88,7 @@
if (scope == PerLookup.class) {
return Dependent.class;
} else if (scope == PerThread.class) {
- return ThreadScoped.class;
+ return RequestScoped.class; // ThreadScoped.class;
} else if (scope == org.glassfish.jersey.process.internal.RequestScoped.class) {
return RequestScoped.class;
}
diff --git a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/injector/JerseyInjectionTarget.java b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/injector/JerseyInjectionTarget.java
index be93ad6..94fd307 100644
--- a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/injector/JerseyInjectionTarget.java
+++ b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/injector/JerseyInjectionTarget.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -19,8 +19,10 @@
import java.lang.reflect.Modifier;
import java.util.Collection;
import java.util.List;
+import java.util.logging.Logger;
import jakarta.enterprise.context.Dependent;
+import jakarta.enterprise.inject.spi.DeploymentException;
import jakarta.ws.rs.WebApplicationException;
import jakarta.enterprise.context.spi.CreationalContext;
@@ -32,9 +34,9 @@
import org.glassfish.jersey.inject.weld.internal.bean.BeanHelper;
import org.glassfish.jersey.inject.weld.internal.bean.JerseyBean;
+import org.glassfish.jersey.inject.weld.internal.l10n.LocalizationMessages;
import org.glassfish.jersey.inject.weld.managed.CdiInjectionManagerFactory;
import org.glassfish.jersey.internal.inject.InjectionManager;
-import org.glassfish.jersey.internal.inject.InjectionManagerFactory;
import org.glassfish.jersey.internal.inject.InjectionResolver;
import org.glassfish.jersey.internal.util.collection.LazyValue;
import org.glassfish.jersey.internal.util.collection.Value;
@@ -56,7 +58,6 @@
import org.jboss.weld.injection.producer.SubclassDecoratorApplyingInstantiator;
import org.jboss.weld.injection.producer.SubclassedComponentInstantiator;
import org.jboss.weld.interceptor.spi.model.InterceptionModel;
-import org.jboss.weld.logging.BeanLogger;
import org.jboss.weld.resources.ClassTransformer;
import org.jboss.weld.util.reflection.Formats;
@@ -70,6 +71,8 @@
*/
public class JerseyInjectionTarget<T> extends BasicInjectionTarget<T> {
+ private static final Logger LOGGER = Logger.getLogger(JerseyInjectionTarget.class.getName());
+
private final Bean<T> bean;
private final Class<T> clazz;
private final LazyValue<JerseyInstanceInjector<T>> injector;
@@ -78,6 +81,7 @@
private BasicInjectionTarget delegate; // for managed beans the initializeAfterBeanDiscovery is called for it
private final Instantiator<T> instantiator;
+
/**
* Creates a new injection target which is able to delegate an injection to {@code delegate injection target} and inject
* the fields that are Jersey-specific. The resolvers must be set later on. CDI will select its own constructor.
@@ -156,8 +160,7 @@
} catch (WebApplicationException wae) {
throw wae;
} catch (Throwable cause) {
- throw new InjectionException(
- "Exception occurred during Jersey/JAX-RS annotations processing in the class: " + clazz, cause);
+ throw injectionException(LocalizationMessages.IT_PROCESSING_ANNOTATION_EXCEPTION(clazz.getName()), cause);
}
/*
@@ -194,7 +197,7 @@
if (hasNonConstructorInterceptors || hasDecorators) {
if (!(getInstantiator() instanceof DefaultInstantiator<?>)) {
- throw new IllegalStateException("Unexpected instantiator " + getInstantiator());
+ throw illegalStateException(LocalizationMessages.IT_UNEXPECTED_INSTANTIATOR(getInstantiator()));
}
/*
@@ -232,16 +235,16 @@
}
EnhancedAnnotatedConstructor<T> constructor = type.getNoArgsEnhancedConstructor();
if (constructor == null) {
- throw BeanLogger.LOG.decoratedHasNoNoargsConstructor(this);
+ throw deploymentException(LocalizationMessages.IT_DECORATED_HAS_NO_NOARGS_CONSTRUCTOR(type));
} else if (constructor.isPrivate()) {
- throw BeanLogger.LOG
- .decoratedNoargsConstructorIsPrivate(this, Formats.formatAsStackTraceElement(constructor.getJavaMember()));
+ String stackTraceElement = Formats.formatAsStackTraceElement(constructor.getJavaMember());
+ throw deploymentException(LocalizationMessages.IT_DECORATED_NOARGS_CONSTRUCTOR_PRIVATE(type, stackTraceElement));
}
}
private void checkDecoratedMethods(EnhancedAnnotatedType<T> type, List<Decorator<?>> decorators) {
if (type.isFinal()) {
- throw BeanLogger.LOG.finalBeanClassWithDecoratorsNotAllowed(this);
+ throw deploymentException(LocalizationMessages.IT_FINAL_BEAN_CLASS_WITH_DECORATORS_NOT_ALLOWED(type));
}
checkNoArgsConstructor(type);
for (Decorator<?> decorator : decorators) {
@@ -253,13 +256,13 @@
} else if (decorator instanceof CustomDecoratorWrapper<?>) {
decoratorClass = ((CustomDecoratorWrapper<?>) decorator).getEnhancedAnnotated();
} else {
- throw BeanLogger.LOG.nonContainerDecorator(decorator);
+ throw illegalStateException(LocalizationMessages.IT_NON_CONTAINER_DECORATOR(decorator));
}
for (EnhancedAnnotatedMethod<?, ?> decoratorMethod : decoratorClass.getEnhancedMethods()) {
EnhancedAnnotatedMethod<?, ?> method = type.getEnhancedMethod(decoratorMethod.getSignature());
if (method != null && !method.isStatic() && !method.isPrivate() && method.isFinal()) {
- throw BeanLogger.LOG.finalBeanClassWithInterceptorsNotAllowed(this);
+ throw deploymentException(LocalizationMessages.IT_FINAL_BEAN_CLASS_WITH_INTERCEPTORS_NOT_ALLOWED(type));
}
}
}
@@ -292,6 +295,21 @@
return !isInterceptor() && !isDecorator() && !Modifier.isAbstract(getType().getJavaClass().getModifiers());
}
+ private static IllegalStateException illegalStateException(String message) {
+ LOGGER.warning(message);
+ return new IllegalStateException(message);
+ }
+
+ private static DeploymentException deploymentException(String message) {
+ LOGGER.warning(message);
+ return new DeploymentException(message);
+ }
+
+ private static InjectionException injectionException(String message, Throwable cause) {
+ LOGGER.warning(message);
+ return new InjectionException(message, cause);
+ }
+
@Override
public T produce(CreationalContext<T> ctx) {
T instance;
diff --git a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/BinderRegisterExtension.java b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/BinderRegisterExtension.java
index a8692e4..505bd73 100644
--- a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/BinderRegisterExtension.java
+++ b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/BinderRegisterExtension.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -33,6 +33,7 @@
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
+import java.util.logging.Logger;
import java.util.stream.Collectors;
import jakarta.annotation.Priority;
@@ -105,7 +106,9 @@
* CDI extension that handles CDI bootstrap events and registers Jersey's internally used components and components registered
* using {@link Application}.
*/
-class BinderRegisterExtension implements Extension {
+public class BinderRegisterExtension implements Extension {
+
+ private static final Logger LOGGER = Logger.getLogger(BinderRegisterExtension.class.getName());
private final AtomicBoolean registrationDone = new AtomicBoolean(false);
private Supplier<BeanManager> beanManagerSupplier;
@@ -679,6 +682,7 @@
Constructor<T> constructor = createMe.getConstructor();
return constructor.newInstance();
} catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) {
+ LOGGER.warning(e.getMessage());
return null;
}
}
diff --git a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/CdiInjectionManager.java b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/CdiInjectionManager.java
index c0a31f6..522533f 100644
--- a/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/CdiInjectionManager.java
+++ b/incubator/cdi-inject-weld/src/main/java/org/glassfish/jersey/inject/weld/internal/managed/CdiInjectionManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -44,6 +44,7 @@
import org.glassfish.jersey.inject.weld.internal.inject.InitializableSupplierInstanceBinding;
import org.glassfish.jersey.inject.weld.internal.bean.JerseyBean;
import org.glassfish.jersey.inject.weld.internal.inject.MatchableBinding;
+import org.glassfish.jersey.inject.weld.internal.l10n.LocalizationMessages;
import org.glassfish.jersey.inject.weld.managed.CdiInjectionManagerFactory;
import org.glassfish.jersey.innate.inject.InternalBinding;
import org.glassfish.jersey.innate.inject.Bindings;
diff --git a/incubator/cdi-inject-weld/src/main/resources/org/glassfish/jersey/inject/weld/internal/l10n/localization.properties b/incubator/cdi-inject-weld/src/main/resources/org/glassfish/jersey/inject/weld/internal/l10n/localization.properties
new file mode 100644
index 0000000..47ea08c
--- /dev/null
+++ b/incubator/cdi-inject-weld/src/main/resources/org/glassfish/jersey/inject/weld/internal/l10n/localization.properties
@@ -0,0 +1,27 @@
+#
+# Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v. 2.0, which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# This Source Code may also be made available under the following Secondary
+# Licenses when the conditions for such availability set forth in the
+# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+# version 2 with the GNU Classpath Exception, which is available at
+# https://www.gnu.org/software/classpath/license.html.
+#
+# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+#
+
+# {0} - full classname
+cdi2.provider.not.registrable=Provider registered to CdiInjectionManager cannot be process because of incompatible type: {0}.
+it.processing.annotation.exception=Exception occurred during Jersey/JAX-RS annotations processing in the class: {0}.
+it.unexpected.instantiator=Unexpected instantiator {0}.
+it.decorated.has.no.noargs.constructor=Bean class which has decorators must have a public constructor without parameters: {0}
+it.decorated.noargs.constructor.private=Constructor without parameters cannot be private in bean class which has decorators: {0} at {1} StackTrace.
+it.final.bean.class.with.decorators.not.allowed=Bean class which has decorators cannot be declared final: {0}.
+it.non.container.decorator=Cannot operate on non container provided decorator {0}.
+it.final.bean.class.with.interceptors.not.allowed=Bean class which has interceptors cannot be declared final: {0}.
+
+
diff --git a/incubator/cdi-inject-weld/src/main/resources/org/glassfish/jersey/inject/weld/internal/managed/localization.properties b/incubator/cdi-inject-weld/src/main/resources/org/glassfish/jersey/inject/weld/internal/managed/localization.properties
deleted file mode 100644
index 8716ee6..0000000
--- a/incubator/cdi-inject-weld/src/main/resources/org/glassfish/jersey/inject/weld/internal/managed/localization.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
-#
-# This program and the accompanying materials are made available under the
-# terms of the Eclipse Public License v. 2.0, which is available at
-# http://www.eclipse.org/legal/epl-2.0.
-#
-# This Source Code may also be made available under the following Secondary
-# Licenses when the conditions for such availability set forth in the
-# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
-# version 2 with the GNU Classpath Exception, which is available at
-# https://www.gnu.org/software/classpath/license.html.
-#
-# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-#
-
-# {0} - full classname
-cdi2.provider.not.registrable=Provider registered to CdiInjectionManager cannot be process because of incompatible type: {0}.
diff --git a/incubator/cdi-inject-weld/src/test/java/module-info.txt b/incubator/cdi-inject-weld/src/test/java/module-info.java.txt
similarity index 69%
rename from incubator/cdi-inject-weld/src/test/java/module-info.txt
rename to incubator/cdi-inject-weld/src/test/java/module-info.java.txt
index e9c2e19..b1b05eb 100644
--- a/incubator/cdi-inject-weld/src/test/java/module-info.txt
+++ b/incubator/cdi-inject-weld/src/test/java/module-info.java.txt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2022, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,18 +14,23 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-open module org.glassfish.jersey.incubator.cdi.inject.weld {
+open module org.glassfish.jersey.incubator.cdi.inject.weld.test {
requires jakarta.annotation;
requires jakarta.cdi;
+ requires jakarta.cdi.el;
+ requires jakarta.el;
requires jakarta.inject;
requires jakarta.ws.rs;
requires java.logging;
-
- requires junit;
+ requires org.jboss.logging;
+ requires org.junit.jupiter.api;
requires org.glassfish.jersey.core.common;
requires org.glassfish.jersey.core.client;
requires org.glassfish.jersey.core.server;
+ requires org.glassfish.jersey.incubator.cdi.inject.weld;
requires org.hamcrest;
+
+ exports org.glassfish.jersey.inject.weld.binder.client to org.glassfish.jersey.core.common;
}
\ No newline at end of file
diff --git a/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/SingleArchiveDiscoveryStrategy.java b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/SingleArchiveDiscoveryStrategy.java
new file mode 100644
index 0000000..52e9d86
--- /dev/null
+++ b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/SingleArchiveDiscoveryStrategy.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2025 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package org.glassfish.jersey.inject.weld;
+
+import org.jboss.weld.bootstrap.api.Bootstrap;
+import org.jboss.weld.bootstrap.spi.BeanDiscoveryMode;
+import org.jboss.weld.environment.deployment.WeldBeanDeploymentArchive;
+import org.jboss.weld.environment.deployment.discovery.DiscoveryStrategy;
+import org.jboss.weld.environment.deployment.discovery.ReflectionDiscoveryStrategy;
+import org.jboss.weld.resources.spi.ResourceLoader;
+
+import java.lang.annotation.Annotation;
+import java.util.Set;
+
+/**
+ * Prevent loading the archives multiple times, once from the classpath, once from the module path.
+ * Done by Thread.currentThread().getContextClassLoader().getResource("META-INF/beans.xml")
+ */
+public class SingleArchiveDiscoveryStrategy extends ReflectionDiscoveryStrategy implements DiscoveryStrategy {
+
+ public SingleArchiveDiscoveryStrategy(){
+ super(null, null, null, null);
+ }
+
+ public SingleArchiveDiscoveryStrategy(ResourceLoader resourceLoader,
+ Bootstrap bootstrap,
+ Set<Class<? extends Annotation>> initialBeanDefiningAnnotations,
+ BeanDiscoveryMode emptyBeansXmlDiscoveryMode) {
+ super(resourceLoader, bootstrap, initialBeanDefiningAnnotations, emptyBeansXmlDiscoveryMode);
+ }
+
+ @Override
+ public Set<WeldBeanDeploymentArchive> performDiscovery() {
+ if (scanner == null) {
+ scanner = new SingleArchiveScanner(resourceLoader, bootstrap, BeanDiscoveryMode.ANNOTATED);
+ }
+ return super.performDiscovery();
+ }
+}
diff --git a/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/SingleArchiveScanner.java b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/SingleArchiveScanner.java
new file mode 100644
index 0000000..29816a2
--- /dev/null
+++ b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/SingleArchiveScanner.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2025 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package org.glassfish.jersey.inject.weld;
+
+import org.jboss.weld.bootstrap.api.Bootstrap;
+import org.jboss.weld.bootstrap.spi.BeanDiscoveryMode;
+import org.jboss.weld.environment.deployment.discovery.DefaultBeanArchiveScanner;
+import org.jboss.weld.resources.spi.ResourceLoader;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+
+class SingleArchiveScanner extends DefaultBeanArchiveScanner {
+ /**
+ *
+ * @param resourceLoader
+ * @param bootstrap
+ * @param emptyBeansXmlDiscoveryMode
+ */
+ public SingleArchiveScanner(ResourceLoader resourceLoader,
+ Bootstrap bootstrap,
+ BeanDiscoveryMode emptyBeansXmlDiscoveryMode) {
+ super(resourceLoader, bootstrap, emptyBeansXmlDiscoveryMode);
+ }
+
+ @Override
+ public List<ScanResult> scan() {
+ HashSet<String> beanArchives = new HashSet<>();
+ return super.scan().stream()
+ .filter(scanResult -> !beanArchives.contains(scanResult.getBeanArchiveRef().toLowerCase(Locale.ROOT)))
+ .peek(scanResult -> beanArchives.add(scanResult.getBeanArchiveRef().toLowerCase(Locale.ROOT)))
+ .toList();
+ }
+}
diff --git a/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/internal/managed/TestParent.java b/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/internal/managed/TestParent.java
deleted file mode 100644
index e69de29..0000000
--- a/incubator/cdi-inject-weld/src/test/java/org/glassfish/jersey/inject/weld/internal/managed/TestParent.java
+++ /dev/null
diff --git a/incubator/cdi-inject-weld/src/test/resources/META-INF/beans.xml b/incubator/cdi-inject-weld/src/test/resources/META-INF/beans.xml
index 678e3dc..89484ca 100644
--- a/incubator/cdi-inject-weld/src/test/resources/META-INF/beans.xml
+++ b/incubator/cdi-inject-weld/src/test/resources/META-INF/beans.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v. 2.0, which is available at
@@ -16,5 +16,9 @@
SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
-->
-
-<beans bean-discovery-mode="annotated" />
+<beans xmlns="https://jakarta.ee/xml/ns/jakartaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd"
+ version="4.0"
+ bean-discovery-mode="annotated">
+</beans>
\ No newline at end of file
diff --git a/incubator/cdi-inject-weld/src/test/resources/META-INF/services/org.jboss.weld.environment.deployment.discovery.DiscoveryStrategy b/incubator/cdi-inject-weld/src/test/resources/META-INF/services/org.jboss.weld.environment.deployment.discovery.DiscoveryStrategy
new file mode 100644
index 0000000..1d2ac45
--- /dev/null
+++ b/incubator/cdi-inject-weld/src/test/resources/META-INF/services/org.jboss.weld.environment.deployment.discovery.DiscoveryStrategy
@@ -0,0 +1 @@
+org.glassfish.jersey.inject.weld.SingleArchiveDiscoveryStrategy
\ No newline at end of file
diff --git a/tests/e2e-inject/cdi-inject-weld/pom.xml b/tests/e2e-inject/cdi-inject-weld/pom.xml
index a53512c..2c9c334 100644
--- a/tests/e2e-inject/cdi-inject-weld/pom.xml
+++ b/tests/e2e-inject/cdi-inject-weld/pom.xml
@@ -32,12 +32,25 @@
<description>Jersey E2E Inject CDI SE tests</description>
+ <properties>
+ <surefire.security.argline>
+ --add-reads org.jboss.logging=weld.core.impl
+ --add-reads org.jboss.logging=weld.se.core
+ --add-reads org.jboss.logging=weld.environment.common
+ </surefire.security.argline>
+ </properties>
+
<dependencies>
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
</dependency>
<dependency>
+ <groupId>org.jboss.weld</groupId>
+ <artifactId>weld-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<scope>test</scope>
diff --git a/tests/e2e-inject/cdi-inject-weld/src/main/java/module-info.java b/tests/e2e-inject/cdi-inject-weld/src/main/java/module-info.java
new file mode 100644
index 0000000..71baa3b
--- /dev/null
+++ b/tests/e2e-inject/cdi-inject-weld/src/main/java/module-info.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2025 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+module org.glassfish.jersey.tests.e2e.inject.cdi.inject.weld.main {
+ requires jakarta.annotation;
+ requires jakarta.cdi;
+ requires jakarta.inject;
+ requires jakarta.interceptor;
+ requires jakarta.ws.rs;
+ requires org.glassfish.jersey.core.common;
+ requires org.glassfish.jersey.core.server;
+ requires weld.api;
+
+ exports org.glassfish.jersey.tests.e2e.inject.cdi.weld;
+ exports org.glassfish.jersey.tests.e2e.inject.cdi.weld.scopes;
+ exports org.glassfish.jersey.tests.e2e.inject.cdi.weld.subresources;
+
+ opens org.glassfish.jersey.tests.e2e.inject.cdi.weld to
+ org.glassfish.jersey.incubator.cdi.inject.weld,
+ weld.core.impl;
+ opens org.glassfish.jersey.tests.e2e.inject.cdi.weld.scopes to
+ org.glassfish.jersey.incubator.cdi.inject.weld,
+ weld.core.impl;
+ opens org.glassfish.jersey.tests.e2e.inject.cdi.weld.subresources to weld.core.impl;
+}
\ No newline at end of file
diff --git a/incubator/cdi-inject-weld/src/test/java/module-info.txt b/tests/e2e-inject/cdi-inject-weld/src/test/java/module-info.java
similarity index 67%
copy from incubator/cdi-inject-weld/src/test/java/module-info.txt
copy to tests/e2e-inject/cdi-inject-weld/src/test/java/module-info.java
index e9c2e19..684bbe0 100644
--- a/incubator/cdi-inject-weld/src/test/java/module-info.txt
+++ b/tests/e2e-inject/cdi-inject-weld/src/test/java/module-info.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,18 +14,15 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-open module org.glassfish.jersey.incubator.cdi.inject.weld {
- requires jakarta.annotation;
+open module org.glassfish.jersey.tests.e2e.inject.cdi.inject.weld.test {
requires jakarta.cdi;
- requires jakarta.inject;
requires jakarta.ws.rs;
-
requires java.logging;
-
- requires junit;
-
requires org.glassfish.jersey.core.common;
- requires org.glassfish.jersey.core.client;
requires org.glassfish.jersey.core.server;
- requires org.hamcrest;
+ requires org.glassfish.jersey.inject.hk2;
+ requires org.glassfish.jersey.tests.e2e.inject.cdi.inject.weld.main;
+ requires org.glassfish.jersey.tests.framework.core;
+ requires org.junit.jupiter.api;
+ requires weld.core.impl;
}
\ No newline at end of file
diff --git a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/EventsTest.java b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/EventsTest.java
similarity index 92%
rename from tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/EventsTest.java
rename to tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/EventsTest.java
index c93a71d..e423f7c 100644
--- a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/EventsTest.java
+++ b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/EventsTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,7 +14,7 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-package org.glassfish.jersey.tests.e2e.inject.cdi.weld;
+package org.glassfish.jersey.tests.e2e.inject.cdi.weld.test;
import jakarta.ws.rs.client.Entity;
import jakarta.ws.rs.core.Application;
@@ -24,6 +24,7 @@
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.AccountResource;
import org.jboss.weld.environment.se.Weld;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assumptions;
diff --git a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/InterceptorDecoratorTest.java b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/InterceptorDecoratorTest.java
similarity index 90%
rename from tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/InterceptorDecoratorTest.java
rename to tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/InterceptorDecoratorTest.java
index f789edc..0d91f4c 100644
--- a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/InterceptorDecoratorTest.java
+++ b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/InterceptorDecoratorTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,7 +14,7 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-package org.glassfish.jersey.tests.e2e.inject.cdi.weld;
+package org.glassfish.jersey.tests.e2e.inject.cdi.weld.test;
import jakarta.ws.rs.core.Application;
import jakarta.ws.rs.core.Response;
@@ -23,6 +23,8 @@
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.HelloResource;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.NameService;
import org.jboss.weld.environment.se.Weld;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assumptions;
diff --git a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/RequestContextBuilder.java b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/RequestContextBuilder.java
similarity index 98%
rename from tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/RequestContextBuilder.java
rename to tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/RequestContextBuilder.java
index 5eb8dd2..d48cf0f 100644
--- a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/RequestContextBuilder.java
+++ b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/RequestContextBuilder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,7 +14,7 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-package org.glassfish.jersey.tests.e2e.inject.cdi.weld;
+package org.glassfish.jersey.tests.e2e.inject.cdi.weld.test;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/scopes/ScopesTest.java b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/scopes/ScopesTest.java
similarity index 90%
rename from tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/scopes/ScopesTest.java
rename to tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/scopes/ScopesTest.java
index f88b1e2..6c6a7c8 100644
--- a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/scopes/ScopesTest.java
+++ b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/scopes/ScopesTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,11 +14,13 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-package org.glassfish.jersey.tests.e2e.inject.cdi.weld.scopes;
+package org.glassfish.jersey.tests.e2e.inject.cdi.weld.test.scopes;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.test.JerseyTest;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.scopes.RequestScopedResource;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.scopes.SingletonScopedResource;
import org.jboss.weld.environment.se.Weld;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
diff --git a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/subresources/ModelProcessorScopeTest.java b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/subresources/ModelProcessorScopeTest.java
similarity index 92%
rename from tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/subresources/ModelProcessorScopeTest.java
rename to tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/subresources/ModelProcessorScopeTest.java
index 58d2e5b..f4b4872 100644
--- a/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/subresources/ModelProcessorScopeTest.java
+++ b/tests/e2e-inject/cdi-inject-weld/src/test/java/org/glassfish/jersey/tests/e2e/inject/cdi/weld/test/subresources/ModelProcessorScopeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2021, 2025 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -14,14 +14,17 @@
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
-package org.glassfish.jersey.tests.e2e.inject.cdi.weld.subresources;
+package org.glassfish.jersey.tests.e2e.inject.cdi.weld.test.subresources;
import java.util.concurrent.ExecutionException;
import org.glassfish.jersey.server.ApplicationHandler;
import org.glassfish.jersey.server.ContainerResponse;
import org.glassfish.jersey.server.ResourceConfig;
-import org.glassfish.jersey.tests.e2e.inject.cdi.weld.RequestContextBuilder;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.subresources.ModelProcessorFeature;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.subresources.RootResource;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.subresources.RootSingletonResource;
+import org.glassfish.jersey.tests.e2e.inject.cdi.weld.test.RequestContextBuilder;
import org.jboss.weld.environment.se.Weld;
import org.junit.jupiter.api.AfterEach;