diff --git a/pom.xml b/pom.xml
index ef38464611e..88f25adca02 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,7 +61,7 @@
1.0.0.Final
2.0.1
- 4.0.10
+ 4.1.0-SNAPSHOT
@@ -90,7 +90,7 @@
2.0.0
3.1.4
7.4.0
- 5.0.SP3
+ 6.0-SNAPSHOT
1.0.3.Final
5.0.0.Alpha5
diff --git a/porting-package/src/main/java/org/jboss/weld/tck/ContextualsImpl.java b/porting-package/src/main/java/org/jboss/weld/tck/ContextualsImpl.java
new file mode 100644
index 00000000000..5a34165e662
--- /dev/null
+++ b/porting-package/src/main/java/org/jboss/weld/tck/ContextualsImpl.java
@@ -0,0 +1,52 @@
+package org.jboss.weld.tck;
+
+import jakarta.enterprise.context.spi.Context;
+import jakarta.enterprise.context.spi.CreationalContext;
+
+import org.jboss.cdi.tck.spi.Contextuals;
+
+public class ContextualsImpl implements Contextuals {
+ @Override
+ public Inspectable create(T instance, Context context) {
+ return new InspectableContextual<>(instance);
+ }
+
+ static class InspectableContextual implements Inspectable {
+ private final T instance;
+
+ private CreationalContext creationalContextPassedToCreate;
+ private T instancePassedToDestroy;
+ private CreationalContext creationalContextPassedToDestroy;
+
+ InspectableContextual(T instance) {
+ this.instance = instance;
+ }
+
+ @Override
+ public T create(CreationalContext creationalContext) {
+ creationalContextPassedToCreate = creationalContext;
+ return instance;
+ }
+
+ @Override
+ public void destroy(T instance, CreationalContext creationalContext) {
+ instancePassedToDestroy = instance;
+ creationalContextPassedToDestroy = creationalContext;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToCreate() {
+ return creationalContextPassedToCreate;
+ }
+
+ @Override
+ public T getInstancePassedToDestroy() {
+ return instancePassedToDestroy;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToDestroy() {
+ return creationalContextPassedToDestroy;
+ }
+ }
+}
diff --git a/porting-package/src/main/java/org/jboss/weld/tck/CreationalContextsImpl.java b/porting-package/src/main/java/org/jboss/weld/tck/CreationalContextsImpl.java
new file mode 100644
index 00000000000..47bc57ce3a2
--- /dev/null
+++ b/porting-package/src/main/java/org/jboss/weld/tck/CreationalContextsImpl.java
@@ -0,0 +1,57 @@
+package org.jboss.weld.tck;
+
+import jakarta.enterprise.context.spi.Contextual;
+
+import org.jboss.cdi.tck.spi.CreationalContexts;
+import org.jboss.weld.contexts.CreationalContextImpl;
+
+public class CreationalContextsImpl implements CreationalContexts {
+ @Override
+ public Inspectable create(Contextual contextual) {
+ return new InspectableCreationalContext<>(contextual);
+ }
+
+ static class InspectableCreationalContext extends CreationalContextImpl implements Inspectable {
+ private Object lastBeanPushed = null;
+ private boolean pushCalled = false;
+ private boolean releaseCalled = false;
+
+ public InspectableCreationalContext(Contextual contextual) {
+ super(contextual);
+ }
+
+ public void push(T incompleteInstance) {
+ pushCalled = true;
+ lastBeanPushed = incompleteInstance;
+ super.push(incompleteInstance);
+ }
+
+ public Object getLastBeanPushed() {
+ return lastBeanPushed;
+ }
+
+ public boolean isPushCalled() {
+ return pushCalled;
+ }
+
+ public boolean isReleaseCalled() {
+ return releaseCalled;
+ }
+
+ /**
+ * We need to override this method because internally, Weld uses this enhanced method to release CCs so long
+ * as the CC is instance of {@link org.jboss.weld.contexts.WeldCreationalContext} which will hold true for
+ * this impl as well.
+ */
+ public void release(Contextual contextual, T instance) {
+ releaseCalled = true;
+ super.release(contextual, instance);
+ }
+
+ public void release() {
+ releaseCalled = true;
+ super.release();
+ }
+
+ }
+}
diff --git a/porting-package/src/main/resources/META-INF/cdi-tck.properties b/porting-package/src/main/resources/META-INF/cdi-tck.properties
index d1ffa0c5255..6f27d807c2f 100644
--- a/porting-package/src/main/resources/META-INF/cdi-tck.properties
+++ b/porting-package/src/main/resources/META-INF/cdi-tck.properties
@@ -1,4 +1,6 @@
# CDI TCK configuration - porting package
org.jboss.cdi.tck.spi.Beans=org.jboss.weld.tck.BeansImpl
org.jboss.cdi.tck.spi.Contexts=org.jboss.weld.tck.ContextsImpl
-org.jboss.cdi.tck.spi.EL=org.jboss.weld.tck.ELImpl
\ No newline at end of file
+org.jboss.cdi.tck.spi.EL=org.jboss.weld.tck.ELImpl
+org.jboss.cdi.tck.spi.CreationalContexts=org.jboss.weld.tck.CreationalContextsImpl
+org.jboss.cdi.tck.spi.Contextuals=org.jboss.weld.tck.ContextualsImpl
\ No newline at end of file