Skip to content

Commit 6ae275d

Browse files
authored
Merge branch 'master' into qualified-members
2 parents ea541c0 + 15c5f25 commit 6ae275d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1508
-783
lines changed

blackbox-aspect/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>avaje-inject-parent</artifactId>
77
<groupId>io.avaje</groupId>
8-
<version>9.11-RC1</version>
8+
<version>9.11-RC2</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

blackbox-other/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>avaje-inject-parent</artifactId>
88
<groupId>io.avaje</groupId>
9-
<version>9.11-RC1</version>
9+
<version>9.11-RC2</version>
1010
</parent>
1111

1212
<artifactId>blackbox-other</artifactId>

blackbox-test-inject/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>avaje-inject-parent</artifactId>
77
<groupId>io.avaje</groupId>
8-
<version>9.11-RC1</version>
8+
<version>9.11-RC2</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.example.myapp.assist;
2+
3+
public interface CssFactory {
4+
5+
Scanner scanner(String path);
6+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.example.myapp.assist;
2+
3+
import io.avaje.inject.Component;
4+
5+
@Component
6+
public class CssThing {
7+
8+
private final CssFactory factory;
9+
10+
CssThing(CssFactory factory) {
11+
this.factory = factory;
12+
}
13+
14+
public String scan(String file) {
15+
Scanner scanner = factory.scanner(file);
16+
return scanner.scan();
17+
}
18+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.example.myapp.assist;
2+
3+
public interface JsFactory {
4+
5+
Scanner scanner(String path);
6+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.example.myapp.assist;
2+
3+
import io.avaje.inject.Component;
4+
import jakarta.inject.Named;
5+
6+
@Component
7+
public class JsThing {
8+
9+
final JsFactory nameFactory;
10+
final JsFactory qualFactory;
11+
12+
public JsThing(@Named("withName") JsFactory nameFactory, @MyJsName JsFactory qualFactory) {
13+
this.nameFactory = nameFactory;
14+
this.qualFactory = qualFactory;
15+
}
16+
17+
public String nameScan(String input) {
18+
var scanner = nameFactory.scanner(input);
19+
return scanner.scan();
20+
}
21+
22+
public String qualScan(String input) {
23+
var scanner = qualFactory.scanner(input);
24+
return scanner.scan();
25+
}
26+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.example.myapp.assist;
2+
3+
import jakarta.inject.Qualifier;
4+
5+
import java.lang.annotation.Retention;
6+
import java.lang.annotation.RetentionPolicy;
7+
8+
@Qualifier
9+
@Retention(RetentionPolicy.RUNTIME)
10+
public @interface MyJsName {
11+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.example.myapp.assist;
2+
3+
public interface Scanner {
4+
5+
String scan();
6+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.example.myapp.assist;
2+
3+
import io.avaje.inject.Component;
4+
5+
@Component
6+
public class Somthin {
7+
public String hi() {
8+
return "hi";
9+
}
10+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.example.myapp.assist.css;
2+
3+
import io.avaje.inject.AssistFactory;
4+
import io.avaje.inject.Assisted;
5+
import org.example.myapp.assist.CssFactory;
6+
import org.example.myapp.assist.Scanner;
7+
import org.example.myapp.assist.Somthin;
8+
9+
@AssistFactory(CssFactory.class)
10+
class CssScanner implements Scanner {
11+
12+
private final String path;
13+
private final Somthin somthin;
14+
15+
CssScanner(@Assisted String path, Somthin somthin) {
16+
this.path = path;
17+
this.somthin = somthin;
18+
}
19+
20+
@Override
21+
public String scan() {
22+
return "scanWith|path=" + path + " | somethin=" + somthin.hi();
23+
}
24+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.example.myapp.assist.css;
2+
3+
import io.avaje.inject.AssistFactory;
4+
import io.avaje.inject.Assisted;
5+
import jakarta.inject.Named;
6+
import org.example.myapp.assist.*;
7+
8+
@Named("withName")
9+
@AssistFactory(JsFactory.class)
10+
class JsWithNameScanner implements Scanner {
11+
12+
private final String path;
13+
private final Somthin somthin;
14+
15+
JsWithNameScanner(@Assisted String path, Somthin somthin) {
16+
this.path = path;
17+
this.somthin = somthin;
18+
}
19+
20+
@Override
21+
public String scan() {
22+
return "jsScanNamed|path=" + path + " | somethin=" + somthin.hi();
23+
}
24+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.example.myapp.assist.css;
2+
3+
import io.avaje.inject.AssistFactory;
4+
import io.avaje.inject.Assisted;
5+
import jakarta.inject.Named;
6+
import org.example.myapp.assist.JsFactory;
7+
import org.example.myapp.assist.MyJsName;
8+
import org.example.myapp.assist.Scanner;
9+
import org.example.myapp.assist.Somthin;
10+
11+
@MyJsName
12+
@AssistFactory(JsFactory.class)
13+
class JsWithQualScanner implements Scanner {
14+
15+
private final String path;
16+
private final Somthin somthin;
17+
18+
JsWithQualScanner(@Assisted String path, Somthin somthin) {
19+
this.path = path;
20+
this.somthin = somthin;
21+
}
22+
23+
@Override
24+
public String scan() {
25+
return "jsScanQual|path=" + path + " | somethin=" + somthin.hi();
26+
}
27+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import java.util.List;
4+
5+
import io.avaje.inject.AssistFactory;
6+
import io.avaje.inject.Assisted;
7+
import io.avaje.lang.Nullable;
8+
import jakarta.inject.Named;
9+
10+
@Named("tomato")
11+
@AssistFactory(CarFactory.class)
12+
public class Car {
13+
public Car(@Assisted Paint paint, @Assisted List<String> type, @Nullable Engine engine) {}
14+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import java.util.List;
4+
5+
public interface CarFactory {
6+
7+
Car create(Paint paint, List<String> type);
8+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import io.avaje.inject.Assisted;
4+
import io.avaje.inject.AssistFactory;
5+
import jakarta.inject.Named;
6+
7+
@Named("android")
8+
@AssistFactory(DroidFactory.class)
9+
public class DroidConstructor implements DroidFactory.Droid {
10+
11+
private final int personality;
12+
private final Model model;
13+
private final Engine wiring;
14+
private final Radio radio;
15+
16+
public DroidConstructor(@Assisted int personality, @Assisted Model model, Engine wiring, @Named("red") Radio radio) {
17+
this.personality = personality;
18+
this.model = model;
19+
this.wiring = wiring;
20+
this.radio = radio;
21+
}
22+
23+
public int personality() {
24+
return personality;
25+
}
26+
27+
public Model model() {
28+
return model;
29+
}
30+
31+
@Override
32+
public boolean dependenciesAreWired() {
33+
return wiring != null && radio != null;
34+
}
35+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.example.myapp.assist.droid;
2+
3+
public interface DroidFactory {
4+
5+
Droid createDroid(int personality, Model model);
6+
7+
interface Droid {
8+
9+
int personality();
10+
11+
Model model();
12+
13+
boolean dependenciesAreWired();
14+
}
15+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import io.avaje.inject.Assisted;
4+
import io.avaje.inject.AssistFactory;
5+
import jakarta.inject.Inject;
6+
import jakarta.inject.Named;
7+
8+
@Named("androidfield")
9+
@AssistFactory(DroidFactory.class)
10+
public class DroidField implements DroidFactory.Droid {
11+
@Assisted int personality;
12+
@Assisted Model model;
13+
@Inject Engine wiring;
14+
15+
@Named("red") @Inject Radio radio;
16+
17+
public int personality() {
18+
return personality;
19+
}
20+
21+
public Model model() {
22+
return model;
23+
}
24+
25+
@Override
26+
public boolean dependenciesAreWired() {
27+
return wiring != null && radio != null;
28+
}
29+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import io.avaje.inject.Assisted;
4+
import io.avaje.inject.AssistFactory;
5+
import jakarta.inject.Inject;
6+
import jakarta.inject.Named;
7+
8+
@Named("androidmethod")
9+
@AssistFactory(DroidFactory.class)
10+
public class DroidMethod implements DroidFactory.Droid {
11+
12+
private int personality;
13+
private Model model;
14+
private Engine wiring;
15+
16+
private Radio radio;
17+
@Inject
18+
public void inject(@Assisted int personality, @Assisted Model model, Engine wiring, @Named("red") Radio radio) {
19+
this.personality = personality;
20+
this.model = model;
21+
this.wiring = wiring;
22+
this.radio = radio;
23+
}
24+
25+
@Override
26+
public int personality() {
27+
return personality;
28+
}
29+
30+
@Override
31+
public Model model() {
32+
return model;
33+
}
34+
35+
@Override
36+
public boolean dependenciesAreWired() {
37+
return wiring != null && radio != null;
38+
}
39+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import io.avaje.inject.Component;
4+
import jakarta.inject.Named;
5+
6+
@Component
7+
public class DroidThing {
8+
9+
10+
final DroidFactory factoryViaField;
11+
12+
final DroidFactory factoryViaMethod;
13+
14+
15+
final DroidFactory factoryViaConstructor;
16+
17+
public DroidThing(@Named("androidfield") DroidFactory factoryViaField,
18+
@Named("androidmethod") DroidFactory factoryViaMethod,
19+
@Named("android") DroidFactory factoryViaConstructor) {
20+
this.factoryViaField = factoryViaField;
21+
this.factoryViaMethod = factoryViaMethod;
22+
this.factoryViaConstructor = factoryViaConstructor;
23+
}
24+
25+
public DroidFactory.Droid viaField(int p, Model m) {
26+
return factoryViaField.createDroid(p, m);
27+
}
28+
29+
public DroidFactory.Droid viaMethod(int p, Model m) {
30+
return factoryViaMethod.createDroid(p, m);
31+
}
32+
public DroidFactory.Droid viaCtor(int p, Model m) {
33+
return factoryViaConstructor.createDroid(p, m);
34+
}
35+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.example.myapp.assist.droid;
2+
3+
import jakarta.inject.Singleton;
4+
5+
@Singleton
6+
public class Engine {}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.example.myapp.assist.droid;
2+
public enum Model {
3+
SCANNER,
4+
BATTLE,
5+
EXECUTION,
6+
OPERATOR
7+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package org.example.myapp.assist.droid;
2+
3+
public interface Paint {}

0 commit comments

Comments
 (0)