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