Skip to content

Commit 61eacfc

Browse files
committed
ArC: remove incorrect annotation literals for memberless annotations
1 parent 01156c3 commit 61eacfc

File tree

17 files changed

+53
-48
lines changed

17 files changed

+53
-48
lines changed

independent-projects/arc/processor/src/test/java/io/quarkus/arc/processor/AnnotationLiteralProcessorTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,12 @@ public void memberless() throws ReflectiveOperationException {
379379
assertEquals(incorrectLiteral, annotation);
380380
assertEquals(annotation, incorrectLiteral);
381381

382+
assertEquals(correctLiteral, incorrectLiteral);
383+
assertEquals(incorrectLiteral, correctLiteral);
384+
382385
assertEquals(correctLiteral.hashCode(), annotation.hashCode());
383386
assertEquals(incorrectLiteral.hashCode(), annotation.hashCode());
387+
assertEquals(correctLiteral.hashCode(), incorrectLiteral.hashCode());
384388

385389
assertEquals("@io.quarkus.arc.processor.AnnotationLiteralProcessorTest$MemberlessAnnotation()",
386390
annotation.toString());

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/MyQualifier.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@
1010
import java.lang.annotation.Retention;
1111
import java.lang.annotation.Target;
1212

13+
import jakarta.enterprise.util.AnnotationLiteral;
1314
import jakarta.inject.Qualifier;
1415

1516
@Qualifier
1617
@Inherited
1718
@Target({ TYPE, METHOD, FIELD, PARAMETER })
1819
@Retention(RUNTIME)
1920
public @interface MyQualifier {
20-
21+
class Literal extends AnnotationLiteral<MyQualifier> implements MyQualifier {
22+
}
2123
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package io.quarkus.arc.test;
2+
3+
import jakarta.enterprise.util.AnnotationLiteral;
4+
5+
import org.junit.jupiter.api.Test;
6+
7+
public class TestLiteral extends AnnotationLiteral<Test> implements Test {
8+
}

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/all/ListAllTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import jakarta.annotation.Priority;
1313
import jakarta.enterprise.context.Dependent;
1414
import jakarta.enterprise.inject.spi.InjectionPoint;
15-
import jakarta.enterprise.util.AnnotationLiteral;
1615
import jakarta.inject.Inject;
1716
import jakarta.inject.Singleton;
1817

@@ -23,6 +22,7 @@
2322
import io.quarkus.arc.InstanceHandle;
2423
import io.quarkus.arc.test.ArcTestContainer;
2524
import io.quarkus.arc.test.MyQualifier;
25+
import io.quarkus.arc.test.TestLiteral;
2626

2727
public class ListAllTest {
2828

@@ -52,8 +52,7 @@ public void testSelectAll() {
5252
assertThatExceptionOfType(IllegalStateException.class)
5353
.isThrownBy(() -> bravoHandle.get());
5454
assertThatExceptionOfType(IllegalArgumentException.class)
55-
.isThrownBy(() -> Arc.container().listAll(Service.class, new AnnotationLiteral<Test>() {
56-
}));
55+
.isThrownBy(() -> Arc.container().listAll(Service.class, new TestLiteral()));
5756
}
5857

5958
interface Service {

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/beanmanager/BeanManagerTest.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,7 @@ public void testResolveInterceptors() {
189189
assertTrue(interceptors.isEmpty());
190190
// alpha is @Nonbinding
191191
interceptors = beanManager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new DummyBinding.Literal(false, true),
192-
new AnnotationLiteral<UselessBinding>() {
193-
});
192+
new UselessBinding.Literal());
194193
assertEquals(2, interceptors.size());
195194
assertEquals(DummyInterceptor.class, interceptors.get(0).getBeanClass());
196195
assertEquals(LowPriorityInterceptor.class, interceptors.get(1).getBeanClass());
@@ -224,8 +223,7 @@ public void testIsScope() {
224223
public void testResolveObservers() {
225224
BeanManager beanManager = Arc.container().beanManager();
226225
Set<ObserverMethod<? super Long>> observers = beanManager.resolveObserverMethods(Long.valueOf(1),
227-
new AnnotationLiteral<High>() {
228-
});
226+
new High.Literal());
229227
assertEquals(1, observers.size());
230228
assertEquals(Number.class, observers.iterator().next().getObservedType());
231229
}
@@ -254,6 +252,8 @@ static class BeanWithCustomQualifier {
254252
@Documented
255253
@Qualifier
256254
public @interface High {
255+
class Literal extends AnnotationLiteral<High> implements High {
256+
}
257257
}
258258

259259
@Target({ TYPE, METHOD, PARAMETER, FIELD })
@@ -332,7 +332,7 @@ static class LowFool extends Fool {
332332
boolean bravo();
333333

334334
@SuppressWarnings("serial")
335-
static class Literal extends AnnotationLiteral<DummyBinding> implements DummyBinding {
335+
class Literal extends AnnotationLiteral<DummyBinding> implements DummyBinding {
336336

337337
private final boolean alpha;
338338
private final boolean bravo;
@@ -361,7 +361,8 @@ public boolean bravo() {
361361
@Documented
362362
@InterceptorBinding
363363
public @interface UselessBinding {
364-
364+
class Literal extends AnnotationLiteral<UselessBinding> implements UselessBinding {
365+
}
365366
}
366367

367368
@DummyBinding(alpha = true, bravo = true)

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/buildextension/observers/ObservertransformerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ public void testTransformedObserver() {
5959

6060
@SuppressWarnings("serial")
6161
Event<String> event = Arc.container().beanManager().getEvent().select(String.class,
62-
new AnnotationLiteral<AlphaQualifier>() {
63-
});
62+
new AlphaQualifier.Literal());
6463
event.fire("foo");
6564
// Reception was transformed to IF_EXISTS so test1() is not invoked
6665
assertEquals(List.of("foo_MyObserver2"), MyObserver.EVENTS);
@@ -91,7 +90,8 @@ void test2(@Observes @Priority(10) String event) {
9190
@Target({ TYPE, METHOD, FIELD, PARAMETER })
9291
@Retention(RUNTIME)
9392
public @interface AlphaQualifier {
94-
93+
class Literal extends AnnotationLiteral<AlphaQualifier> implements AlphaQualifier {
94+
}
9595
}
9696

9797
}

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/decorators/qualifiers/DelegateQualifiersTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import jakarta.decorator.Delegate;
88
import jakarta.enterprise.context.ApplicationScoped;
99
import jakarta.enterprise.context.Dependent;
10-
import jakarta.enterprise.util.AnnotationLiteral;
1110
import jakarta.inject.Inject;
1211

1312
import org.junit.jupiter.api.Test;
@@ -27,8 +26,7 @@ public class DelegateQualifiersTest {
2726
public void testDecoration() {
2827
@SuppressWarnings("serial")
2928
ToUpperCaseConverter converter = Arc.container()
30-
.instance(ToUpperCaseConverter.class, new AnnotationLiteral<MyQualifier>() {
31-
}).get();
29+
.instance(ToUpperCaseConverter.class, new MyQualifier.Literal()).get();
3230
assertEquals("HOLA!", converter.convert(" holA!"));
3331
assertEquals(" HOLA!", converter.convertNoDelegation(" holA!"));
3432
}

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/event/select/EventSelectTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.quarkus.arc.test.event.select;
22

3-
import jakarta.enterprise.util.AnnotationLiteral;
43
import jakarta.enterprise.util.TypeLiteral;
54

65
import org.junit.jupiter.api.Assertions;
@@ -61,17 +60,15 @@ public void testEventSelectWithSubtypeThrowsExceptionForDuplicateBindingType() {
6160
public void testEventSelectThrowsExceptionIfAnnotationIsNotBindingType() {
6261
Assertions.assertThrows(IllegalArgumentException.class, () -> {
6362
SecuritySensor sensor = Arc.container().select(SecuritySensor.class).get();
64-
sensor.securityEvent.select(new AnnotationLiteral<NotABindingType>() {
65-
});
63+
sensor.securityEvent.select(new NotABindingType.Literal());
6664
}, "Event#select should throw IllegalArgumentException if the annotation is not a binding type.");
6765
}
6866

6967
@Test
7068
public void testEventSelectWithSubtypeThrowsExceptionIfAnnotationIsNotBindingType() {
7169
Assertions.assertThrows(IllegalArgumentException.class, () -> {
7270
SecuritySensor sensor = Arc.container().select(SecuritySensor.class).get();
73-
sensor.securityEvent.select(BreakInEvent.class, new AnnotationLiteral<NotABindingType>() {
74-
});
71+
sensor.securityEvent.select(BreakInEvent.class, new NotABindingType.Literal());
7572
}, "Event#select should throw IllegalArgumentException when selecting a subtype and using annotation that is not a binding type.");
7673
}
7774
}

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/event/select/NotABindingType.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@
66
import java.lang.annotation.RetentionPolicy;
77
import java.lang.annotation.Target;
88

9+
import jakarta.enterprise.util.AnnotationLiteral;
10+
911
@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD })
1012
@Retention(RetentionPolicy.RUNTIME)
1113
@Documented
1214
public @interface NotABindingType {
15+
class Literal extends AnnotationLiteral<NotABindingType> implements NotABindingType {
16+
}
1317
}

independent-projects/arc/tests/src/test/java/io/quarkus/arc/test/inheritance/QualifiersInheritanceTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ public void testInheritance() {
3232
// Bravo is not eligible because it has @InheritedQualifier("bravo")
3333
assertTrue(container.select(SuperBean.class, new InheritedQualifier.Literal("super")).isResolvable());
3434
// @NonInheritedQualifier is not inherited
35-
assertFalse(container.select(SuperBean.class, new AnnotationLiteral<NonInheritedQualifier>() {
36-
}).isResolvable());
35+
assertFalse(container.select(SuperBean.class, new NonInheritedQualifier.Literal()).isResolvable());
3736
}
3837

3938
@InheritedQualifier("super")
@@ -84,6 +83,7 @@ public String value() {
8483
@Qualifier
8584
@Retention(RUNTIME)
8685
@interface NonInheritedQualifier {
87-
86+
class Literal extends AnnotationLiteral<NonInheritedQualifier> implements NonInheritedQualifier {
87+
}
8888
}
8989
}

0 commit comments

Comments
 (0)