This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/openwebbeans.git
commit f7411b833da3bb3dfb7abbec70272a618f4beb2c Author: Mark Struberg <[email protected]> AuthorDate: Tue Jan 24 19:06:02 2023 +0100 OWB-1417 fix atinject TCK --- atinject-tck/pom.xml | 23 ++++------ ...roducer.java => AtinjectTckSetupExtension.java} | 52 ++++++---------------- .../atinject/tck/specific/SpecificProducer.java | 11 ++--- .../webbeans/atinject/tck/specific/TckNew.java | 37 +++++++++++++++ .../jakarta.enterprise.inject.spi.Extension | 18 ++++++++ pom.xml | 1 + 6 files changed, 84 insertions(+), 58 deletions(-) diff --git a/atinject-tck/pom.xml b/atinject-tck/pom.xml index 56c2ddabf..9847e747d 100644 --- a/atinject-tck/pom.xml +++ b/atinject-tck/pom.xml @@ -28,9 +28,9 @@ </parent> <artifactId>atinject-tck</artifactId> - <name>OWB JSR-330 TCK</name> + <name>OWB JSR-330 Jakarta version TCK</name> <packaging>jar</packaging> - <description>Apache OpenWebBeans JSR-330 TCK Suite</description> + <description>Apache OpenWebBeans Jakarta-Inject TCK Suite</description> <build> <plugins> @@ -52,7 +52,7 @@ <dependency> <groupId>jakarta.inject</groupId> <artifactId>jakarta.inject-tck</artifactId> - <version>1</version> + <version>2.0.1</version> <scope>test</scope> <exclusions> <exclusion> @@ -66,34 +66,27 @@ <groupId>jakarta.annotation</groupId> <artifactId>jakarta.annotation-api</artifactId> </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-atinject_1.0_spec</artifactId> - <version>${geronimo_atinject.version}</version> - <scope>provided</scope> + <groupId>jakarta.inject</groupId> + <artifactId>jakarta.inject-api</artifactId> </dependency> - <dependency> <groupId>jakarta.enterprise</groupId> <artifactId>jakarta.enterprise.cdi-api</artifactId> </dependency> - <dependency> <groupId>jakarta.interceptor</groupId> <artifactId>jakarta.interceptor-api</artifactId> </dependency> - <dependency> - <groupId>org.apache.geronimo.specs</groupId> - <artifactId>geronimo-el_2.2_spec</artifactId> + <groupId>jakarta.el</groupId> + <artifactId>jakarta.el-api</artifactId> </dependency> - + <dependency> <groupId>org.apache.openwebbeans</groupId> <artifactId>openwebbeans-spi</artifactId> </dependency> - <dependency> <groupId>org.apache.openwebbeans</groupId> <artifactId>openwebbeans-impl</artifactId> diff --git a/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java b/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/AtinjectTckSetupExtension.java similarity index 53% copy from atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java copy to atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/AtinjectTckSetupExtension.java index cb10c7a26..44a2ea66c 100644 --- a/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java +++ b/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/AtinjectTckSetupExtension.java @@ -18,49 +18,25 @@ */ package org.apache.webbeans.atinject.tck.specific; +import jakarta.enterprise.event.Observes; import jakarta.enterprise.inject.Typed; -import jakarta.enterprise.inject.Default; -import jakarta.enterprise.inject.New; -import jakarta.enterprise.inject.Produces; -import jakarta.inject.Named; - -import org.atinject.tck.auto.Drivers; +import jakarta.enterprise.util.AnnotationLiteral; +import jakarta.enterprise.inject.spi.BeforeBeanDiscovery; +import jakarta.enterprise.inject.spi.Extension; import org.atinject.tck.auto.DriversSeat; -import org.atinject.tck.auto.Seat; import org.atinject.tck.auto.accessories.SpareTire; - -public class SpecificProducer +/** + * Fixes some setup weirdness which got created after removal of @New + */ +public class AtinjectTckSetupExtension implements Extension { - public SpecificProducer() - { - - } - - @Produces @Drivers - public Seat produceDrivers(@New DriversSeat seat) - { - return seat; - } - - - @Produces @DriverBinding @Typed(value={DriversSeat.class}) - public DriversSeat produceDriverSeat(@New DriversSeat seat) - { - return seat; - } - - - @Produces @Named("spare") @SpareBinding - public SpareTire produceSpare(@New SpareTire tire) + public void initTckBeans(@Observes BeforeBeanDiscovery bbd) { - return tire; - } - - @Produces @Default @Typed(value={SpareTire.class}) - public SpareTire produceSpareTire(@New SpareTire tire) - { - return tire; + bbd.addAnnotatedType(DriversSeat.class, "tck") + .add(Typed.Literal.of(new Class[]{DriversSeat.class})); + + bbd.addAnnotatedType(SpareTire.class, "tck") + .add(new AnnotationLiteral<TckNew>() {}); } - } diff --git a/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java b/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java index cb10c7a26..1c54231bf 100644 --- a/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java +++ b/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/SpecificProducer.java @@ -18,9 +18,9 @@ */ package org.apache.webbeans.atinject.tck.specific; +import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.inject.Typed; import jakarta.enterprise.inject.Default; -import jakarta.enterprise.inject.New; import jakarta.enterprise.inject.Produces; import jakarta.inject.Named; @@ -30,6 +30,7 @@ import org.atinject.tck.auto.Seat; import org.atinject.tck.auto.accessories.SpareTire; +@ApplicationScoped public class SpecificProducer { public SpecificProducer() @@ -38,27 +39,27 @@ public class SpecificProducer } @Produces @Drivers - public Seat produceDrivers(@New DriversSeat seat) + public Seat produceDrivers(DriversSeat seat) { return seat; } @Produces @DriverBinding @Typed(value={DriversSeat.class}) - public DriversSeat produceDriverSeat(@New DriversSeat seat) + public DriversSeat produceDriverSeat(DriversSeat seat) { return seat; } @Produces @Named("spare") @SpareBinding - public SpareTire produceSpare(@New SpareTire tire) + public SpareTire produceSpare(SpareTire tire) { return tire; } @Produces @Default @Typed(value={SpareTire.class}) - public SpareTire produceSpareTire(@New SpareTire tire) + public SpareTire produceSpareTire(@TckNew SpareTire tire) { return tire; } diff --git a/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/TckNew.java b/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/TckNew.java new file mode 100644 index 000000000..8aa02c807 --- /dev/null +++ b/atinject-tck/src/test/java/org/apache/webbeans/atinject/tck/specific/TckNew.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.webbeans.atinject.tck.specific; + + +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import jakarta.inject.Qualifier; + +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +@Target({METHOD, TYPE, PARAMETER}) +@Retention(RUNTIME) +@Qualifier +public @interface TckNew +{ +} diff --git a/atinject-tck/src/test/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension b/atinject-tck/src/test/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension new file mode 100644 index 000000000..d7dc824b8 --- /dev/null +++ b/atinject-tck/src/test/resources/META-INF/services/jakarta.enterprise.inject.spi.Extension @@ -0,0 +1,18 @@ +#Licensed to the Apache Software Foundation (ASF) under one +#or more contributor license agreements. See the NOTICE file +#distributed with this work for additional information +#regarding copyright ownership. The ASF licenses this file +#to you under the Apache License, Version 2.0 (the +#"License"); you may not use this file except in compliance +#with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +#Unless required by applicable law or agreed to in writing, +#software distributed under the License is distributed on an +#"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +#KIND, either express or implied. See the License for the +#specific language governing permissions and limitations +#under the License. + +org.apache.webbeans.atinject.tck.specific.AtinjectTckSetupExtension \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9b3421bd9..a3f206177 100644 --- a/pom.xml +++ b/pom.xml @@ -764,6 +764,7 @@ <module>webbeans-gradle</module> <module>webbeans-junit5</module> <module>webbeans-porting</module> + <module>atinject-tck</module> <!--X TODO re-enable <module>webbeans-ee-common</module> <module>webbeans-ee</module>
