in atomos.utils/atomos.utils.core/src/main/java/org/apache/felix/atomos/utils/core/LauncherImpl.java [275:329]
private void processJar(JarFile j, Context context, URLClassLoader classLoader)
throws IOException
{
Attributes attributes = j.getManifest().getMainAttributes();
String bundleActivatorClassName = attributes.getValue(
org.osgi.framework.Constants.BUNDLE_ACTIVATOR);
if (bundleActivatorClassName == null)
{
bundleActivatorClassName = attributes.getValue(
Constants.EXTENSION_BUNDLE_ACTIVATOR);
}
if (bundleActivatorClassName != null)
{
Class<?> bundleActivatorClass;
try
{
bundleActivatorClass = classLoader.loadClass(
bundleActivatorClassName.trim());
orderdPluginsBy(BundleActivatorPlugin.class)//
.peek(System.out::println)//
.forEachOrdered(plugin -> plugin.doBundleActivator(
bundleActivatorClass, context, classLoader));
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
try
{
List<ComponentMetaDataPlugin<?>> cmdP = new ArrayList<>();
orderdPluginsBy(ComponentMetaDataPlugin.class).forEachOrdered(cmdP::add);
List<ComponentDescription> cds = readComponentDescription(j);
for (ComponentDescription cd : cds)
{
cmdP.forEach(plugin -> {
plugin.doComponentMetaData(cd, context, classLoader);
});
}
}
catch (Exception e)
{
e.printStackTrace();
}
List<RegisterServicepPlugin<?>> rscP = new ArrayList<>();//
orderdPluginsBy(RegisterServicepPlugin.class).forEachOrdered(rscP::add);
List<RegisterServiceCall> rscs = context.getRegisterServiceCalls();
for (RegisterServiceCall rsc : rscs)
{
rscP.forEach(plugin -> {
plugin.doRegisterServiceCall(rsc, context, classLoader);
});
}
}