Skip to content

Commit

Permalink
up
Browse files Browse the repository at this point in the history
  • Loading branch information
joshlong committed Mar 19, 2024
1 parent 5ee7205 commit ed6bdd9
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 36 deletions.
35 changes: 35 additions & 0 deletions src/main/java/com/example/demo/ApplicationConfiguration.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.example.demo;

import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.lang.foreign.Linker;
import java.lang.foreign.SymbolLookup;
import java.util.Map;

@SpringBootApplication
public class ApplicationConfiguration {

@Bean
SymbolLookup symbolLookup() {
var nativeLinker = Linker.nativeLinker();
var stdlibLookup = nativeLinker.defaultLookup();
var loaderLookup = SymbolLookup.loaderLookup();
return name -> loaderLookup.find(name).or(() -> stdlibLookup.find(name));
}

@Bean
ApplicationRunner demo(Map<String, LanguageDemonstrationRunner> demos) {
return _ -> demos.forEach((_, demo) -> {
try {
demo.run();
} //
catch (Throwable e) {
throw new RuntimeException(e);
}
});
}

}
38 changes: 3 additions & 35 deletions src/main/java/com/example/demo/DemoApplication.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,7 @@
package com.example.demo;

import org.springframework.boot.ApplicationRunner;
import com.example.demo.ApplicationConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

import java.lang.foreign.Linker;
import java.lang.foreign.SymbolLookup;
import java.util.Map;

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}

@Bean
SymbolLookup symbolLookup() {
var nativeLinker = Linker.nativeLinker();
var stdlibLookup = nativeLinker.defaultLookup();
var loaderLookup = SymbolLookup.loaderLookup();
return name -> loaderLookup.find(name).or(() -> stdlibLookup.find(name));
}

@Bean
ApplicationRunner demo(Map<String, LanguageDemonstrationRunner> demos) {
return _ -> demos.forEach((_, demo) -> {
try {
demo.run();
} //
catch (Throwable e) {
throw new RuntimeException(e);
}
});
}

void main(String[] args) {
SpringApplication.run(ApplicationConfiguration.class, args);
}
3 changes: 2 additions & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
spring.application.name=demo
spring.threads.virtual.enabled=true
spring.sql.init.mode=always
spring.sql.init.mode=always
spring.main.allow-bean-definition-overriding=true

0 comments on commit ed6bdd9

Please sign in to comment.