Skip to content

Commit c39aac8

Browse files
committed
Test of dependency loading capability
1 parent 6c08611 commit c39aac8

File tree

3 files changed

+93
-4
lines changed

3 files changed

+93
-4
lines changed

pom.xml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>org.nasdanika</groupId>
6-
<version>2024.8.0</version>
6+
<version>2024.9.0-SNAPSHOT</version>
77
<artifactId>cli-launcher</artifactId>
88
<packaging>jar</packaging>
99
<name>Nasdanika CLI launcher</name>
@@ -27,7 +27,7 @@
2727
<dependency>
2828
<groupId>org.nasdanika.html</groupId>
2929
<artifactId>app-model-gen-cli</artifactId>
30-
<version>2024.8.0</version>
30+
<version>2024.9.0-SNAPSHOT</version>
3131
</dependency>
3232
<dependency>
3333
<groupId>org.nasdanika.models.java</groupId>
@@ -47,7 +47,12 @@
4747
<dependency>
4848
<groupId>org.nasdanika.core</groupId>
4949
<artifactId>http</artifactId>
50-
<version>2024.8.0</version>
50+
<version>2024.9.0-SNAPSHOT</version>
51+
</dependency>
52+
<dependency>
53+
<groupId>org.nasdanika.core</groupId>
54+
<artifactId>maven</artifactId>
55+
<version>2024.9.0-SNAPSHOT</version>
5156
</dependency>
5257
<dependency>
5358
<groupId>org.nasdanika.models.echarts</groupId>
@@ -58,8 +63,15 @@
5863
<groupId>org.nasdanika.models.ecore</groupId>
5964
<artifactId>cli</artifactId>
6065
<version>2024.8.0</version>
61-
</dependency>
66+
</dependency>
6267

68+
<dependency>
69+
<groupId>org.apache.groovy</groupId>
70+
<artifactId>groovy-all</artifactId>
71+
<version>4.0.22</version>
72+
<type>pom</type>
73+
</dependency>
74+
6375
<!-- To prevent slf4j complaining -->
6476
<!--
6577
<dependency>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.nasdanika.launcher.tests;
2+
3+
import java.io.File;
4+
import java.util.Collection;
5+
6+
import org.junit.jupiter.api.Test;
7+
import org.nasdanika.capability.CapabilityLoader;
8+
import org.nasdanika.capability.CapabilityProvider;
9+
import org.nasdanika.capability.maven.DependencyRequestRecord;
10+
import org.nasdanika.common.PrintStreamProgressMonitor;
11+
import org.nasdanika.common.ProgressMonitor;
12+
13+
public class TestDependencyAndObjectLoading {
14+
15+
@Test
16+
public void testDependencyLoading() {
17+
CapabilityLoader capabilityLoader = new CapabilityLoader();
18+
DependencyRequestRecord requirement = new DependencyRequestRecord(
19+
new String[] { "org.apache.groovy:groovy-all:pom:4.0.22" },
20+
null,
21+
null,
22+
"target/test-repo");
23+
24+
ProgressMonitor progressMonitor = new PrintStreamProgressMonitor();
25+
Iterable<CapabilityProvider<Object>> cpi = capabilityLoader.load(requirement, progressMonitor);
26+
for (CapabilityProvider<Object> cp: cpi) {
27+
@SuppressWarnings("unchecked")
28+
Collection<File> result = (Collection<File>) cp.getPublisher().blockFirst();
29+
System.out.println(result);
30+
}
31+
}
32+
33+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.nasdanika.launcher.tests;
2+
3+
import java.lang.annotation.Annotation;
4+
import java.lang.reflect.Method;
5+
6+
import javax.script.ScriptEngine;
7+
import javax.script.ScriptEngineManager;
8+
import javax.script.ScriptException;
9+
10+
import org.junit.jupiter.api.Test;
11+
12+
public class TestGroovy {
13+
14+
@Test
15+
public void testAnnotations() throws ScriptException {
16+
String source = """
17+
18+
class MyProcessor {
19+
20+
@org.nasdanika.graph.processor.Processor
21+
def annotatedMethod() {
22+
z
23+
}
24+
25+
}
26+
27+
new MyProcessor();
28+
29+
""";
30+
31+
ScriptEngineManager sem = new ScriptEngineManager();
32+
ScriptEngine scriptEngine = sem.getEngineByName("groovy");
33+
scriptEngine.put("z", 185);
34+
Object result = scriptEngine.eval(source);
35+
System.out.println(result);
36+
for (Method method: result.getClass().getDeclaredMethods()) {
37+
System.out.println(method);
38+
for (Annotation annotation: method.getAnnotations()) {
39+
System.out.println("\t" + annotation);
40+
}
41+
}
42+
}
43+
44+
}

0 commit comments

Comments
 (0)