/*
* Copyright (C) 2014 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.launcher;
import com.intel.dcsg.cpg.extensions.AnnotationRegistrar;
import com.intel.dcsg.cpg.extensions.Extensions;
import com.intel.dcsg.cpg.extensions.ImplementationRegistrar;
import com.intel.dcsg.cpg.extensions.Registrar;
import com.intel.mtwilson.launcher.ws.ext.V2;
import java.io.File;
import java.util.List;
import org.junit.Test;
/**
*
* @author jbuhacoff
*/
public class ExtensionDirectoryLauncherTest {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ExtensionDirectoryLauncherTest.class);
@Test
public void testExtensionLauncher() {
ExtensionDirectoryLauncher launcher = new ExtensionDirectoryLauncher();
File[] applicationJars = launcher.getApplicationJars();
for(int i=0; i<applicationJars.length; i++) {
log.debug("App Jar: {}", applicationJars[i].getAbsolutePath());
}
File[] applicationExtensionJars = launcher.getApplicationExtensionJars();
for(int i=0; i<applicationExtensionJars.length; i++) {
log.debug("App Ext Jar: {}", applicationExtensionJars[i].getAbsolutePath());
}
launcher.setRegistrars(new Registrar[] { new ImplementationRegistrar(), new AnnotationRegistrar(V2.class) });
launcher.run(); // loads and scans the jars
List<Object> v2s = Extensions.findAllAnnotated(V2.class);
for(Object v2 : v2s) {
log.debug("V2 extension {} classloader {}", v2.getClass().getName(), v2.getClass().getClassLoader().getClass().getName());
}
}
}