/*******************************************************************************
* Copyright (c) 2014 antoniomariasanchez at gmail.com.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* antoniomaria - initial API and implementation
******************************************************************************/
package com.vaadin.cdi;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
import com.vaadin.cdi.access.AccessControl;
import com.vaadin.cdi.access.JaasAccessControl;
import com.vaadin.cdi.internal.BeanStoreContainer;
import com.vaadin.cdi.internal.ContextDeployer;
import com.vaadin.cdi.internal.UIBeanStore;
import com.vaadin.cdi.internal.UIScopedContext;
import com.vaadin.cdi.internal.VaadinExtension;
public class ArchiveProvider {
public final static Class FRAMEWORK_CLASSES[] = new Class[] { AccessControl.class, BeanStoreContainer.class,
CDIUIProvider.class, CDIViewProvider.class, ContextDeployer.class, JaasAccessControl.class,
UIBeanStore.class, UIScopedContext.class, CDIUI.class };
public static WebArchive createWebArchive(String warName, Class... classes) {
WebArchive archive = base(warName);
// archive.addClasses(classes);
// archive.addPackage(Package.getPackage("net.sf.gazpachoquest.questionnaires.resource"));
archive.addPackage(Package.getPackage("net.sf.gazpachoquest.questionnaires"));
// archive.addPackage(Package.getPackage("net.sf.gazpachoquest.questionnaires.resource"));
// archive.addPackage(Package.getPackage("net.sf.gazpachoquest.questionnaires.views"));
System.out.println(archive.toString(true));
return archive;
}
static WebArchive base(String warName) {
PomEquippedResolveStage resolver = Maven.resolver().loadPomFromFile("pom.xml");
return ShrinkWrap
.create(WebArchive.class, warName + ".war")
.addClasses(FRAMEWORK_CLASSES)
.addAsLibraries(resolver.resolve("com.vaadin:vaadin-server:7.1.6").withoutTransitivity().asSingleFile())
.addAsLibraries(resolver.resolve("com.vaadin:vaadin-shared:7.1.6").withoutTransitivity().asSingleFile())
.addAsWebInfResource(new ByteArrayAsset(VaadinExtension.class.getName().getBytes()),
ArchivePaths.create("services/javax.enterprise.inject.spi.Extension"))
.addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
/*-
MavenDependencyResolver resolver = DependencyResolvers.use(MavenDependencyResolver.class).loadMetadataFromPom(
"pom.xml");
return ShrinkWrap
.create(WebArchive.class, warName + ".war")
.addClasses(FRAMEWORK_CLASSES)
.addAsLibraries(resolver.artifact("com.vaadin:vaadin-server:7.1.6").resolveAsFiles())
.addAsLibraries(resolver.artifact("com.vaadin:vaadin-shared:7.1.6").resolveAsFiles())
.addAsWebInfResource(new ByteArrayAsset(VaadinExtension.class.getName().getBytes()),
ArchivePaths.create("services/javax.enterprise.inject.spi.Extension"))
.addAsWebInfResource(EmptyAsset.INSTANCE, ArchivePaths.create("beans.xml"));
*/
}
/*-
public static Archive<?> createWebArchive() {
return Archives
.create("test.jar", JavaArchive.class)
.addClasses(FRAMEWORK_CLASSES)
.addClasses(QuestionnairesUI.class, questionnairesClient.class)
.addManifestResource(
new ByteArrayAsset(
"<decorators><class>net.sf.gazpachoquest.questionnaires</class></decorators>"
.getBytes()), ArchivePaths.create("beans.xml"));
}
*/
}