package org.jboss.loom.migrators.classloading; import java.io.File; import org.jboss.arquillian.container.test.api.RunAsClient; import org.jboss.arquillian.junit.Arquillian; import org.jboss.as.controller.client.ModelControllerClient; import org.jboss.loom.*; import org.jboss.loom.categories.EAP; import org.jboss.loom.conf.AS7Config; import org.jboss.loom.conf.Configuration; import org.jboss.loom.conf.ConfigurationValidator; import org.jboss.loom.utils.as7.AS7CliUtils; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.api.exporter.ZipExporter; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; /** * * @author Ondrej Zizka, ozizka at redhat.com */ @RunWith(Arquillian.class) public class ClassloadingTest { public static File createDeploymentJar() { JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "classloading.jar"); jar.addAsManifestResource(new StringAsset("Manifest-Version: 1.0\n" + "Dependencies: org.hornetq\n"), "MANIFEST.MF"); jar.addAsResource(ClassloadingTest.class.getPackage(), "jboss-classloading.xml", "META-INF/jboss-classloading.xml"); File file = new File("target/classloading.jar"); jar.as( ZipExporter.class ).exportTo( file, true ); return file; } public static File createDeploymentWar() { WebArchive war = ShrinkWrap.create( WebArchive.class, "classloading.war"); war.addAsResource(EmptyAsset.INSTANCE, "WEB-INF/web.xml"); war.addAsResource(ClassloadingTest.class.getPackage(), "jboss-classloading.xml", "WEB-INF/jboss-classloading.xml"); File file = new File("target/classloading.war"); war.as( ZipExporter.class ).exportTo( file, true ); return file; } /** * With EAP 5.2.0. config. */ @Test @Category( EAP.class ) @RunAsClient public void testClassloadingMigrator( ) throws Exception { Configuration conf = TestAppConfig.createTestConfig_EAP_520("production"); conf.getGlobal().addDeploymentPath( createDeploymentJar().getPath() ); conf.getGlobal().addDeploymentPath( createDeploymentWar().getPath() ); AS7Config as7Config = conf.getGlobal().getAS7Config(); ModelControllerClient as7client = ModelControllerClient.Factory.create(as7Config.getHost(), as7Config.getManagementPort()); // Query for the server path. String as7Dir = AS7CliUtils.queryServerHomeDir( as7client ); if( as7Dir != null ) // AS 7.1.1 doesn't define it. conf.getGlobal().getAS7Config().setDir( as7Dir ); TestUtils.announceMigration( conf ); ConfigurationValidator.validate( conf ); MigrationEngine migrator = new MigrationEngine(conf); migrator.doMigration(); } }// class