/** * Copyright 2015-2016 Red Hat, Inc, and individual contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wildfly.swarm.container; import java.util.List; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.junit.Test; import org.wildfly.swarm.spi.api.JARArchive; import org.wildfly.swarm.spi.api.JBossDeploymentStructureAsset; import org.wildfly.swarm.spi.api.JBossDeploymentStructureContainer; import org.wildfly.swarm.spi.api.Module; import static org.fest.assertions.Assertions.assertThat; /** * @author Bob McWhirter */ public class JARArchiveTest { @Test public void testVirginJBossDeploymentStructure() throws Exception { JARArchive archive = ShrinkWrap.create(JARArchive.class); archive.addModule("com.foo"); archive.addModule("com.bar", "api"); JBossDeploymentStructureAsset asset = archive.getDescriptorAsset(); assertThat(asset).isNotNull(); List<Module> modules = asset.deploymentModules(); assertThat(modules.size()).isEqualTo(2); Module module = modules.get(0); assertThat(module.name()).isEqualTo("com.foo"); assertThat(module.slot()).isEqualTo("main"); module = modules.get(1); assertThat(module.name()).isEqualTo("com.bar"); assertThat(module.slot()).isEqualTo("api"); archive = archive.as(JARArchive.class); asset = archive.getDescriptorAsset(); assertThat(asset).isNotNull(); modules = asset.deploymentModules(); assertThat(modules.size()).isEqualTo(2); module = modules.get(0); assertThat(module.name()).isEqualTo("com.foo"); assertThat(module.slot()).isEqualTo("main"); module = modules.get(1); assertThat(module.name()).isEqualTo("com.bar"); assertThat(module.slot()).isEqualTo("api"); } @Test public void testExistingJBossDeploymentStructure() throws Exception { JARArchive archive = ShrinkWrap.create(JARArchive.class); archive.add(new StringAsset( "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" + "<jboss-deployment-structure xmlns=\"urn:jboss:deployment-structure:1.2\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:jboss:deployment-structure:1.2 jboss-deployment-structure-1_2.xsd\">\n" + " <deployment>\n" + " <dependencies>\n" + " <module name=\"com.foo\" slot=\"main\"/>\n" + " <module name=\"com.bar\" slot=\"api\"/>\n" + " </dependencies>\n" + " </deployment>\n" + "</jboss-deployment-structure>" ), JBossDeploymentStructureContainer.PRIMARY_JBOSS_DEPLOYMENT_DESCRIPTOR_PATH); archive.addModule("com.baz", "api"); JBossDeploymentStructureAsset asset = archive.getDescriptorAsset(); assertThat(asset).isNotNull(); List<Module> modules = asset.deploymentModules(); assertThat(modules.size()).isEqualTo(3); Module module = modules.get(0); assertThat(module.name()).isEqualTo("com.foo"); assertThat(module.slot()).isEqualTo("main"); module = modules.get(1); assertThat(module.name()).isEqualTo("com.bar"); assertThat(module.slot()).isEqualTo("api"); module = modules.get(2); assertThat(module.name()).isEqualTo("com.baz"); assertThat(module.slot()).isEqualTo("api"); archive = archive.as(JARArchive.class); asset = archive.getDescriptorAsset(); assertThat(asset).isNotNull(); modules = asset.deploymentModules(); assertThat(modules.size()).isEqualTo(3); module = modules.get(0); assertThat(module.name()).isEqualTo("com.foo"); assertThat(module.slot()).isEqualTo("main"); module = modules.get(1); assertThat(module.name()).isEqualTo("com.bar"); assertThat(module.slot()).isEqualTo("api"); module = modules.get(2); assertThat(module.name()).isEqualTo("com.baz"); assertThat(module.slot()).isEqualTo("api"); } }