/*
* JBoss, Home of Professional Open Source
* Copyright 2012, Red Hat Middleware LLC, and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of 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.jboss.arquillian.warp.impl.client.deployment;
import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.spi.LoadableExtension;
import org.jboss.arquillian.test.spi.TestClass;
import org.jboss.arquillian.warp.Inspection;
import org.jboss.arquillian.warp.WarpRemoteExtension;
import org.jboss.arquillian.warp.WarpTest;
import org.jboss.arquillian.warp.impl.testutils.SeparatedClassPath;
import org.jboss.arquillian.warp.impl.testutils.SeparatedClassloaderRunner;
import org.jboss.arquillian.warp.impl.utils.ShrinkWrapUtils;
import org.jboss.arquillian.warp.servlet.AfterServlet;
import org.jboss.arquillian.warp.servlet.BeforeServlet;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.impl.base.ServiceExtensionLoader;
import org.jboss.shrinkwrap.spi.MemoryMapArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(SeparatedClassloaderRunner.class)
public class TestDeploymentEnricherClassPath {
@SeparatedClassPath
public static JavaArchive[] archive() {
JavaArchive coreSpi = ShrinkWrapUtils.getJavaArchiveFromClass(LoadableExtension.class);
JavaArchive coreApi = ShrinkWrapUtils.getJavaArchiveFromClass(Instance.class);
JavaArchive containerTestSpi = ShrinkWrapUtils.getJavaArchiveFromClass(ApplicationArchiveProcessor.class);
JavaArchive testSpi = ShrinkWrapUtils.getJavaArchiveFromClass(TestClass.class);
JavaArchive shrinkWrapSpi = ShrinkWrapUtils.getJavaArchiveFromClass(MemoryMapArchive.class);
JavaArchive shrinkWrapApi = ShrinkWrapUtils.getJavaArchiveFromClass(JavaArchive.class);
JavaArchive shrinkWrapImpl = ShrinkWrapUtils.getJavaArchiveFromClass(ServiceExtensionLoader.class);
JavaArchive base = ShrinkWrap
.create(JavaArchive.class)
.addClasses(DeploymentEnricher.class, WarpTest.class, Inspection.class, BeforeServlet.class,
AfterServlet.class, WarpRemoteExtension.class);
JavaArchive warp = ShrinkWrap.create(JavaArchive.class, "warp.jar");
for (String packageName : DeploymentEnricher.REQUIRED_WARP_PACKAGES) {
warp.addPackage(packageName);
}
base.addAsResource("META-INF/web-fragment-warp.xml", "META-INF/web-fragment-warp.xml");
warp.addClasses(DeploymentEnricher.REQUIRED_WARP_INNER_CLASSES);
return new JavaArchive[] {base, warp, coreApi, coreSpi, containerTestSpi, testSpi, shrinkWrapSpi, shrinkWrapApi,
shrinkWrapImpl};
}
@Test
public void test_that_warp_does_not_require_any_non_required_dependencies_during_packaging() {
DeploymentEnricher deploymentEnricher = new DeploymentEnricher();
deploymentEnricher.createWarpArchive();
}
@WarpTest
private static class TestingClass {
}
}