Hallo!
Ich probiere mich zur Zeit in OSGi einzuarbeiten, tue mich dabei aber an einigen Stellen relativ schwer.
Folgende Situation:
Ich habe einen eigenen Launcher, das ist nur ein "simples" Java-Projekt, momentan auch nur mit der Main-Klasse:
public class Main {
public static void main(String[] args) {
Map<String, String> props = new HashMap<>();
try {
Framework fw = getFactory().newFramework(props);
fw.init();
BundleContext ctx = fw.getBundleContext();
AutoProcessor.process(props, ctx);
// Install core bundles
// Hier!
fw.start();
fw.waitForStop(0);
System.exit(0);
}
catch(Exception e) {
e.printStackTrace(System.err);
System.exit(1);
}
}
public static FrameworkFactory getFactory() {
return ServiceLoader.load(FrameworkFactory.class).iterator().next();
}
}
Dann habe ich noch ein OSGi-Bundle, dass nicht viel mehr macht als ein Interface bereitzustellen.
public interface ArgumentsProvider {
public String[] getArguments();
}
Da sollen dann Argumente, die über die main(String[] args) ankommen bereit gestellt werden. Allerdings habe ich keine Ahnung wie ich nun die Dependencies setzen muss.
An der Stelle die ich im Launcher mit // Hier!
markiert hab, hab ich mir etwas in der Art vorgestellt:
ctx.registerService(
ArgumentsProvider.class.getName(),
new ArgumentsProvider() {
public String[] getArguments() {
return args;
}
},
null
);
Könnt ihr mir sagen, wie ich die Dependencies setzen muss?
MfG kackb00n